Permalink
Find file Copy path
1866 lines (1216 sloc) 127 KB

1.10.0 (2018-12-25)

Bug Fixes

  • react-chart: fix resizing of the axes (#1685) (7c409f0)
  • react-chart: fix-pie-legend (#1714) (d662409)
  • react-core-demos: fix the 'Template Overriding' demo (#1729) (a119cb4)
  • react-grid: apply wordWrapEnabled property to TableTreeColumn (#1721) (336c88a)
  • react-grid: fix header layout when middle band column is fixed (#1619) (504f434)
  • react-grid: pass actual properties to a tableLayout in VirtualTable (#1690) (ac609f2)
  • react-grid: prevent animation flicker on column visibility change (#1674) (2cbb72a)
  • react-grid: prevent virtual table from setting a width to flex column (#1691) (6d28bfb)
  • react-grid: specify table fixed columns plugin optional dependencies (#1693) (3564212)
  • react-scheduler: add to AllDayPanel another cell template name (#1719) (386728f)
  • react-scheduler: fix date navigator button width (#1699) (7093d7b)
  • update @material-ui/core to 3.7.0 (#1718) (ce5d4fe)

Code Refactoring

  • react-chart: replace Scale plugin with ArgumentScale and ValueScale (#1650) (1f2e0b2)
  • react-chart: rename "showGrids" Axis property (#1696) (f8087da)
  • react-chart: property to customize scale domain (#1711) (b09e439)

BREAKING CHANGES

  • react-chart: Previously the ArgumentAxis, ValueAxis, and Scale plugins allowed you to customize argument and value scales. In this release, we have implemented the ArgumentScale and ValueScale plugins for this purpose.

  • react-chart: The showGrids Axis property is renamed to showGrid.

  • react-chart: The min and max scale properties are replaced with the modifyDomain property because the band scale domain cannot be customized in min and max terms.

    Replace this

    <ArgumentScale min={0} max={10} ... />

    with this

    const modifyDomain = () => [0, 10];
    
    <ArgumentScale modifyDomain={modifyDomain} ... />

1.9.1 (2018-12-07)

Bug Fixes

  • docs: correct the Appointments plugin docs (#1633) (87b2988)
  • docs: correct the table summary row plugin docs (#1632) (0ab1145)
  • react-grid: fix the 'no data' message alignment (#1597) (663685a), closes #1600
  • react-grid: fix virtual table layout in Edge (#1593) (65fdf63)
  • react-grid: normalize scroll position in Edge browser (#1605) (7e313ce)
  • react-grid-bootstrap4: prevent edge from overlapping a scrollbar (#1612) (2fc8a6b)
  • react-scheduler: add cursor pointer to appointment template (#1594) (d5db46d)
  • react-scheduler: fix TypeScript definitions for the 'dx-react-scheduler-material-ui' package (#1644) (aa93cd1)
  • react-scheduler: remove excess events from an appointment (#1591) (ceba7de)
  • site: fix the 'Why We Use Cookies' message (#1655) (3e66474)

Code Refactoring

  • react-scheduler: simplify the ViewSwitcher.Switcher component API (#1660) (6c5d5ca)
  • react-scheduler: simplify the onNavigate function arguments (#1659) (7e4104)
  • react-chart: make grid part of the axis (#1646) (4d99c93)

Features

  • react-chart: add tooltip plugin (#1611) (1f9322c)
  • react-grid: provide a way to customize a group cell (#1596) (d95a0cb)
  • react-grid: provide a way to customize a summary item (#1567) (f131c1c)
  • react-scheduler: highlight today DayScale cell (#1653) (eb42d14)

BREAKING CHANGES

  • react-scheduler: We have changed the onChange function's argument type to make the ViewSwitcher's API more clear.

    Previously:

    onChange({ nextViewName: string }) => void
    

    Now:

    onChange(nextViewName: string) => void
    
  • react-scheduler: We changed the onNavigate function's argument type to make the DateNavigator's API more clear.

    Previously:

    onNavigate({ back: boolean }) => void
    

    Now:

    onNavigate(direction: 'forward' | 'back') => void
    
  • react-chart:

  1. In the ArgumentAxis and ValueAxis plugins lineComponent and tickComponent render identical svg-path elements. Previously, they require different properties for drawing: width and height for lineComponent and x1, x2, y1, y2 for tickComponent. Now, for more consistency the lineComponent requires the same properties as tickComponent.

  2. Previously, there were ArgumentGrid and ValueGrid plugins that render grid lines for axes. Now, grids are part of the axes:

    <ArgumentAxis showGrids />
    <ValueAxis />
    

    For grid customization, use gridComponent as follows:

    <ArgumentAxis gridComponent={...} />
    <ValueAxis gridComponent={...} />
    

1.9.0 (2018-11-07)

Bug Fixes

  • react-chart: fix indent from axis for label w/o tick and line components (#1528) (e8b2ccb)
  • react-chart: fix stacks processing (#1535) (9660d5f)
  • react-grid: correct order of fixed right columns (#1533) (00ccebd)
  • react-grid: pass undefined as empty value to filter editorComponent (#1522) (e69813f)
  • react-grid: use a column filter operation as a filter selector value (#1479) (70e26fa), closes #1474
  • react-grid-bootstrap3/4: prevent sorting for disabled columns (#1490) (086242d)
  • react-grid-bootstrap4: fix position of dragged column header (#1513) (8e0893c)
  • react-grid-bootstrap4: prevent filter popup cut off on fixed columns (#1576) (979476e)

Features

  • react-scheduler: add the React Scheduler component
  • react-chart: add animation plugin (#1469) (3c41352)
  • update dependencies (#1542) (f32f1b2)

Code Refactoring

  • react-chart: remove "groupWidth" property from BarSeries (0a15e87)

BREAKING CHANGES

  • react-chart: The groupWidth property configures a band scale for arguments - it is not a property of a particular bar series. To configure a band scale, use the Scale plugin as follows:
<Scale extensions={[{ type: 'band', constructor: d3.scaleBand().paddingOuter(0.1).paddingInner(0.2) }]} />

1.8.0 (2018-10-04)

Bug Fixes

  • grid: add missed props to documentation (#1414) (e7fe289), closes #1412
  • grid: fix nullable values sorting (#1432) (f75deb1), closes #1428
  • react: handle event changes correctly (#1405) (61732a1)
  • react-chart: fix crash in production caused by PropTypes reference (fd386f5)
  • react-chart: bind default domain names for argument and value axes (#1435) (0a5fdf1)
  • react-grid: add lost border to bands (#1440) (f051c69)
  • react-grid: fix virtual scrolling in desktop Safari (#1397) (d353edf)
  • react-grid-material-ui: update MUI (#1430) (c6ef66c), closes #1413

Features

  • react-chart: add legend for pie chart (#1393) (088767c)
  • react-chart: add palette plugin (#1408) (a025bb0)
  • react-grid: extract ToggleButton component in TableFilterRow (#1403) (687fe3b)

BREAKING CHANGES

  • react-chart: Previously, there was a single Grid plugin. Now there are ArgumentGrid and ValueGrid plugins. ArgumentGrid is bound to an argument domain. ValueGrid is bound to a value domain specified by the name property or to a default domain.

  • react-chart: Previously, the Chart component configured scales internally. Starting with this release, we extracted the scale customization logic to a separate plugin to enable a user to customize a scale. Now, you need to manually add the Scale plugin to the Chart component to draw a chart.

1.8.0-beta.1 (2018-09-07)

Bug Fixes

  • react-chart: fix console errors about equal keys in axis (#1375) (cc9d9f9)
  • react-chart: fix domain calculation with zero values (#1383) (1b514db)
  • react-chart: fix style applying in legend label in material-ui (#1374) (38e3ed4)
  • react-chart: fix wrong position of scatter points (#1384) (8f8ae54)

Features

BREAKING CHANGES

  • react-grid: Because we extracted the sorting control, the getMessage property was moved from the TableHeaderRow.CellProps interface to TableHeaderRow.SortLabelProps. This property returns the sort label's text.

1.7.2 (2018-08-31)

Bug Fixes

1.7.1 (2018-08-31)

Bug Fixes

  • grid: fix group row level key calculation (#1359) (dfec46e), closes #1355
  • react: prevent the 'process.env' value usage in umd bundles (#1363) (29468da)

1.7.0 (2018-08-23)

Bug Fixes

Chores

BREAKING CHANGES

  • react-chart: Previously, we had the pointComponent property for drawing and customizing LineSeries, SplineSeries, and AreaSeries plugin points. But since we have a scatter series, this property has become unnecessary. Use the ScatterSeries plugin or customize the pathComponent of the corresponding plugin.

1.6.1 (2018-08-21)

Bug Fixes

1.6.0 (2018-08-17)

Bug Fixes

  • grid: add missed action argument (#1292) (f60e162)
  • grid: correct types for the commit changes event (#1291) (2f02936)
  • react-grid: fix word wrap behavior with the SortingControl (#1280) (45d5729), closes #1278

Features

  • react-grid: allow showing row summaries (#1216) (e2397d1), closes #1024
  • react-grid: export nested component interfaces in theme packages (#1299) (788bac9)

1.5.1 (2018-07-31)

Bug Fixes

  • react-grid: fix incorrect filter operation updating (#1270) (ed9fa16), closes #1269

1.5.0 (2018-07-26)

Bug Fixes

  • core: fix incorrect template rendering on mount/unmount (#1232) (cd03c72)
  • docs: correct the 'EditingState' plugin docs (#1226) (b8735b6), closes #1223
  • grid: add missed operation field in Filter config (#1233) (dc6114b)
  • grid: allow use word wrap with the Sorting feature (#1238) (adc2d19), closes #1237
  • grid: fix VirtualTable with non-standard browser zooming (#1243) (412ba38)
  • grid-core: fix incorrect filter updating (#1267) (16580ab), closes #1262
  • react-grid-material-ui: get rid old palette syntax (#1247) (1a7218f), closes #1246
  • react-grid-material-ui: rotate grid pagination arrows for RTL layouts (#1244) (f96501a)

Features

  • react-chart: add API to manage series in stacks (#1227) (4239e7f)
  • react-grid: support stretching virtual table to parent element (#1261) (ded7357), closes #996
  • vue-grid: support tree data structuries (#1115) (3ce296c)

Performance Improvements

BREAKING CHANGES

  • react-chart: The 'SeriesFamily' plugin has been renamed to 'Stack' to make it meaning more transparent.

1.4.0 (2018-06-22)

Bug Fixes

Features

  • react-chart: add a capability to stretch the Chart component (#1166) (c038e7c)
  • vue-grid: add column chooser (#1150) (ae6fdd0)
  • vue-grid: add the Advanced filtering feature (#1186) (b5a468c)
  • vue-grid: add the banded columns support (#1131) (71bd847)
  • vue-grid: add the Virtual Scrolling feature (#1047) (d0ba194)

Performance Improvements

1.3.0 (2018-06-04)

Bug Fixes

  • grid-core: remove excess property from TableRow component (#1128) (2c6ed12)
  • react-grid: fix double event call in strict mode (#1157) (e280eac)
  • vue-grid-bootstrap4: change grouping indent (#1127) (a450470)

Features

  • react-grid: support filtering operations (#976) (5151d78)

1.3.0-beta.2 (2018-05-24)

Bug Fixes

1.3.0-beta.1 (2018-05-16)

Bug Fixes

  • react-grid: always pass the whole Filter object to the filter table cells (#1011) (8fa802d)
  • react-grid: change default prop type (#1056) (34c44e8)
  • react-grid: correct filtering predicate type (#1062) (b8367ee)
  • react-grid-material-ui: reverse detail toggle icons (#1044) (06e7dcd)

1.2.0 (2018-05-04)

Bug Fixes

  • react-grid: correct Table.NoDataCell reference (#903) (e3c8de2)
  • react-grid: correct TableFilterRow.CellProps types (#926) (639f35f)
  • react-grid: correct types for components (#910) (f5546b8)
  • react-grid: do not pass the row property to the table edit command cell (#890) (610343c)
  • react-grid-material-ui: rename column chooser button component (#871) (42ef0ab)
  • react-grid-material-ui: update material-ui to 1.0.0-beta.41 (#901) (2447c4c)
  • react-grid: fix incorrect prop types for CustomGrouping (#946) (fdf492f), closes #941
  • react-grid: fix ts for TableColumnResizing (#955) (d2cfcd6), closes #951
  • react-grid-material-ui: change detail toggle icon (#957) (ce9b453)
  • react-grid-material-ui: prevent click on disabled grouping control (#935) (95fc44a)
  • react-grid: fix the 'selectByRowClick' prop processing (#1000) (8dc1337), closes #998
  • react-grid: improve className and style types (#930) (0132e12)

Features

  • react-grid: allow word wrapping in table cells (#875) (5febc85)
  • react-grid: support the Band Columns feature (#826) (6f935a8)
  • react-grid: support tree data structures (#730) (d069c71)
  • react-grid: support column virtualization (#892) (67dc486)

Performance Improvements

  • react-grid: optimize column resizing (#878) (b3f264b)

1.2.0-beta.3 (2018-04-28)

Bug Fixes

  • react-grid: fix the 'selectByRowClick' prop processing (#1000) (8dc1337), closes #998
  • react-grid: improve className and style types (#930) (0132e12)

1.2.0-beta.2 (2018-04-19)

Bug Fixes

  • react-grid: fix incorrect prop types for CustomGrouping (#946) (fdf492f), closes #941
  • react-grid: fix ts for TableColumnResizing (#955) (d2cfcd6), closes #951
  • react-grid-material-ui: change detail toggle icon (#957) (ce9b453)
  • react-grid-material-ui: prevent click on disabled grouping control (#935) (95fc44a)

Features

  • react-grid: support column virtualization (#892) (67dc486)

1.2.0-beta.1 (2018-04-12)

Bug Fixes

  • react-grid: correct Table.NoDataCell reference (#903) (e3c8de2)
  • react-grid: correct TableFilterRow.CellProps types (#926) (639f35f)
  • react-grid: correct types for components (#910) (f5546b8)
  • react-grid: do not pass the row property to the table edit command cell (#890) (610343c)
  • react-grid-material-ui: rename column chooser button component (#871) (42ef0ab)
  • react-grid-material-ui: update material-ui to 1.0.0-beta.41 (#901) (2447c4c)

Features

  • react-grid: allow word wrapping in table cells (#875) (5febc85)
  • react-grid: support the Band Columns feature (#826) (6f935a8)
  • react-grid: support tree data structures (#730) (d069c71)

Performance Improvements

  • react-grid: optimize column resizing (#878) (b3f264b)

1.1.2 (2018-04-11)

Bug Fixes

  • react-grid: correct Table.NoDataCell reference (#899) (aaa2c4c)
  • react-grid: correct types for components (#902) (3666b7e)
  • react-grid-material-ui: rename column chooser button component (#872) (65b3a34)
  • react-grid-material-ui: update material-ui to 1.0.0-beta.41 (#900) (1715803)

1.1.1 (2018-03-20)

Bug Fixes

  • react-grid: correct empty value passed to filter cell editors (#857) (66e47d0)
  • react-grid: correct TableHeaderRow.CellProps types (#858) (8ed9b8a)

1.1.0 (2018-03-15)

Bug Fixes

  • grid-core: repair column reordering after grouping (#831) (edf32d0)
  • react-demos: get rid of warnings in the Featured Controlled demos (#821) (6c24a1b)
  • react-grid: cancel handling of bubbled scroll event in the virtual table (#829) (8a9a731), closes #805
  • react-grid-material-ui: fix sorting in MUI v1.0.0-beta.37 (#830) (47ba974), closes #825

1.1.0-beta.3 (2018-03-07)

Bug Fixes

  • react-grid-bootstrap4: fix the 'Nothing to show' message (#816) (34167bb)
  • react-grid-bootstrap4: get rid cursor poiner on disabled item (#799) (1d59052)

Features

  • react-grid: add search panel plugin (#726) (c8e79fb)
  • react-grid: extract the Table plugin components (#766) (e626a66)
  • react-grid: support center alignment for columns (#804) (209d1c9)

1.1.0-beta.2 (2018-03-02)

Bug Fixes

  • react-grid: fix empty message styles (#776) (f814360)

Features

  • react-grid-bootstrap4: support the bootstrap4 theme (#681) (c3d58f0)

1.0.3 (2018-03-02)

Bug Fixes

  • react-grid: fix incorrect initial options handling (#797) (1220664)
  • react-grid: make EditingState pure (#796) (b409c11)

1.0.2 (2018-03-01)

  • react-grid: rework controlled mode (#779) (a412dda), closes #762
  • react-grid-material-ui: update material-ui and material-ui-icons version to 1.0.0-beta.35 (#784) (d96b1be)

1.1.0-beta.1 (2018-02-22)

Bug Fixes

  • react-grid: allow adding custom styles to some components (#728) (7580410)
  • react-grid: fix reordering after grouping (#744) (4de38d7)
  • react-grid-bootstrap3: repair column chooser positioning (#740) (4c4ed15)
  • react-grid-material-ui: remove PagingPanel's border-top (#751) (353e486)

Features

  • react-grid: add the ability to prevent column filtering (#702) (f3d3f10)
  • react-grid: add the ability to prevent column visibility toggling (#705) (2cdfe06)
  • react-grid: add the ability to prevent editing by a column (#729) (3c88c4c)
  • react-grid: add the ability to sort/group by the particular column (#692) (b5d0e2f)
  • react-grid: add TypeScript definitions (#710) (7dfc052)

1.0.1 (2018-02-16)

Bug Fixes

  • react-grid: calculate visible rows when rendering VirtualTable (#749) (424a48c), closes #748
  • react-grid: fix hidden tall rows in VirtualTable (#747) (dc02bd5), closes #745
  • react-grid-material-ui: update material-ui version to 1.0.0-beta.33 (#750) (4bf8810)

1.0.0 (2018-02-02)

Code Refactoring

  • react-core: rename PluginContainer to Plugin (#712) (30734d8)
  • react-grid: rename expanded details getter (#713) (771eb3f)

BREAKING CHANGES

  • react-core: The PluginContainer component has been renamed to Plugin.
  • react-grid: The expandedRowIds getter of the RowDetailState plugin has been renamed to expandedDetailRowIds.

1.0.0-rc.2 (2018-01-26)

Bug Fixes

  • react-core: fix crash when using with webpack-dev-server and Hot Module Reloading (#694) (bdc944b)
  • react-grid-bootstrap3: align header and data cell texts (#687) (b34f142)
  • react-grid-bootstrap3: correct grouping icon alignment (#686) (fb30cc3)
  • react-grid-material-ui: use long paths for modules (#684) (b32f79c)

1.0.0-rc.1 (2018-01-18)

Bug Fixes

  • react-core: clear text selection when dragging (#669) (b7c2eac)
  • react-grid: display empty message when all data columns are hidden (#670) (44d7622)
  • react-grid: set higher precedence to props in state plugins (#663) (bb5ef97), closes #662
  • react-grid: update render component in correct lifecycle hook (#655) (c56ff88), closes #649
  • react-grid-bootstrap3: repair keyboard navigation in column chooser (#666) (7f2b461)
  • react-grid-material-ui: disable ripple on active page button (#682) (c75078d)
  • react-grid-material-ui: import 'VisibilityOff' icon from separate file (#640) (7b71ebc)

Code Refactoring

  • react-grid: change columnWidth type from object to array (#613) (6f4d19f)
  • react-grid: change the 'expandedGroups' Getter data type (#661) (f078d3a)
  • react-grid: change the 'selection' Getter data type (#656) (262d169)
  • react-grid: rename the *hiddenColumns getters and props (#651) (068604d)
  • react-grid: rename the changedRows Getter and dependent properties (#657) (26735c7)
  • react-grid: rename the deletedRows Getter and dependent properties (#652) (ae78d23)
  • react-grid: rename the expandedRows Getter and dependent properties (#653) (db56cad)
  • react-grid: rename the groupByColumn action to changeColumnGrouping (#660) (a3974bd)
  • react-grid: rename the setColumnFilter action to changeColumnFilter (#659) (eec6c41)
  • react-grid: rename the setColumnSorting action to changeColumnSorting (#658) (e4f9c12)
  • react-grid: rename the setDetailRowExpanded action (#648) (1285a14)
  • react-grid: standardize draft change actions in GroupingState (#668) (43593eb)
  • react-grid: standardize draft change actions in TableColumnResizing (#665) (3fec37a)
  • react-grid: use the 'state' name as a parameter in toggle actions (#645) (6c3f15d)
  • react-grid: rename the EditingState plugin properties (#650) (4d7fe82)

BREAKING CHANGES

  • react-grid: The draftGrouping getter does not contain information about draft mode anymore. The draftGroupingChange, and cancelGroupingChange actions have been renamed to draftColumnGrouping, and cancelColumnGroupingDraft.

  • react-grid: The type of the TableColumnResizing plugin's columnWidths and defaultColumnWidths properties has been changed from object to array to improve API consistency.

    Before:

    <Grid>
      <TableColumnResizing columnWidths={{ a: 120 }} />
    </Grid>

    After:

    <Grid>
      <TableColumnResizing columnWidths={[{ columnName: a, width: 120 }]} />
    </Grid>
  • react-grid: The changeDraftTableColumnWidth action has been renamed to draftTableColumnWidth. The functionality that resets draft column width has been moved from from the draftTableColumnWidth action into the separate cancelTableColumnWidthDraft action.

    The onDraftWidthChange event of the TableHeaderRow's cellComponent has been renamed to onWidthDraft. The functionality that cancels draft width changes has been extracted to the onWidthDraftCancel event.

  • react-grid: The the GroupingState plugin's groupByColumn action has been renamed to changeColumnGrouping.

  • react-grid: We changed the selection getter's data type from Set to Array to improve the API consistency.

  • react-grid: We renamed the following TableColumnVisibility plugin's properties to improve the API consistency:

    • hiddenColumns => hiddenColumnNames
    • defaultHiddenColumns => defaultHiddenColumnNames
    • onHiddenColumnsChange => onHiddenColumnNamesChange

    The hiddenColumns getter has been renamed to hiddenColumnNames.

  • react-grid: The following RowDetailState plugin's properties have been renamed to improve the API consistency:

    • expandedRows => expandedRowIds
    • defaultExpandedRows => defaultExpandedRowIds
    • onExpandedRowsChange => onExpandedRowIdsChange

    The expandedRows getter has been renamed to expandedRowIds.

  • react-grid: The following EditingState plugin's properties have been renamed to improve the API consistency:

    • changedRows => rowChanges
    • defaultChangedRows => defaultRowChanges
    • onChangedRowsChange => onRowChangesChange

    The changedRows getter has been renamed to rowChanges.

  • react-grid: The FilteringState plugin's setColumnFilter action has been renamed to changeColumnFilter.

  • react-grid: The RowDetailState plugin's setDetailRowExpanded action has been renamed to toggleDetailRowExpanded.

  • react-grid: The toggleSelection action's selected parameter has been renamed to state.

  • react-grid: We changed the expandedGroups getter's data type from Set to Array to improve the API consistency.

  • react-grid: The following EditingState plugin's properties have been renamed to improve the API consistency:

    • deletedRows => deletedRowIds
    • defaultDeletedRows => defaultDeletedRowIds
    • onDeletedRowsChange => onDeletedRowIdsChange
    • editingRows => editingRowIds
    • defaultEditingRows => defaultEditingRowIds
    • onEditingRowsChange => onEditingRowIdsChange

    The deletedRows getter has been renamed to deletedRowIds. The editingRows getter has been renamed to editingRowIds.

  • react-grid: The SortingState plugin's setColumnSorting action has been renamed to changeColumnSorting.

1.0.0-beta.3 (2017-12-28)

Bug Fixes

  • grid-core: fix blinks when reordering group items (#573) (739c664)
  • react-grid: correct state helper & editing state (#623) (3cd07bd)
  • react-grid: fix blinks when reordering header-cell items (#590) (e94b824)
  • react-grid: fix incorrect applying of several actions in a batch (#560) (7c3ff9b), closes #549
  • react-grid: remove outline from header cell when mouse click (#576) (807597b)
  • react-grid-material-ui: add border beetwin rows and pager panel (#622) (d7cb9c7)
  • react-grid-material-ui: use theme constant in the table header background (#602) (797e134)

Code Refactoring

  • react-grid: add the toolbar (#585) (70fdc25)
  • react-grid: cancel column sorting by passing null to the direction argument (#620) (3abe8f9)
  • react-grid: extract table column extension (#586) (7f57be2)
  • react-grid: get rid of explicit column resizing enabling (#597) (f215103)
  • react-grid: get rid of explicit dragging enabling (#583) (60797c2)
  • react-grid: give column properties greater precedence (#617) (4a2924c)
  • react-grid: remove totalCount property from PagingState to CustomPaging (#555) (95fe97d)
  • react-grid: rename data processing plugins (#612) (468dde4)
  • react-grid: rename DragDropContext to DragDropProvider (#611) (26d303e)
  • react-grid: rename properties from allow* to *Enabled (#618) (6c291e8)
  • react-grid: rename some group and paging properties (#581) (6300249)
  • react-grid: specify typed columns directly in DataTypeProvider (#591) (6ed28e4)
  • react-grid: swap args in the createRowChange function (#619) (1178ee1)
  • react-grid: switch to column extensions in EditingState (#604) (d56b3f0)
  • react-grid: switch to column extensions in LocalFiltering (#594) (955da48)
  • react-grid: switch to column extensions in LocalGrouping (#601) (9efc007)
  • react-grid: switch to column extensions in LocalSorting (#603) (08c96da)
  • react-grid: switch to column extensions in TableGroupRow (#609) (373d4d8)

Features

  • react-grid: add the ColumnChooser plugin (#607) (16eb588)

BREAKING CHANGES

  • react-grid: We have moved the PagingState plugin's totalCount property to the CustomPaging plugin to improve API consistency. Now, you can add the CustomPaging plugin to a project and specify its totalCount property to implement remote paging.

    Before:

    <Grid>
      <...>
      <PagingState totalCount={10} />
    </Grid>

    After:

    <Grid>
      <...>
      <PagingState />
      <CustomPaging totalCount={10} />
    </Grid>
  • react-grid: To simplify working and make consistent API, some plugins properties have been renamed.

    • The TableHeaderRow plugin's allowGroupingByClick property has been renamed to showGroupingControls.
    • The GroupingPanel plugin's allowUngroupingByClick property has been renamed to showGroupingControls.
    • The PagingPanel plugin's allowedPageSizes property has been renamed to pageSizes .
  • react-grid: A column's getCellValue function has gotten higher priority than that defined in the Grid component.

  • react-grid: The createRowChange function arguments order has been changed to (row: any, value: any, columnName: string) to improve the API consistency. Now, the EditingState plugin's createRowChange function has the same signature as the column extension's one.

  • react-grid: We have renamed the following plugins that process data to make the Grid API more consistent:

    • LocalFiltering => IntegratedFiltering
    • LocalGrouping => IntegratedGrouping
    • LocalPaging => IntegratedPaging
    • LocalSelection => IntegratedSelection
    • LocalSorting => IntegratedSorting
  • react-grid: We removed the LocalSorting plugin's getColumnIdentity property to improve API consistency. Now, use the column extension's criteria property to specify an individual column's grouping criteria.

    Before:

    const columns = [{ name: 'field' }, { name: 'field2' }];
    const fieldGroupCriteria = /* custom group criteria */;
    const getColumnIdentity = (columnName) => {
      if (name === 'field') return fieldGroupCriteria;
    };
    
    <Grid columns={columns}>
      <LocalGrouping getColumnIdentity={getColumnIdentity} />
    </Grid>

    After:

    const columns= [{ name: 'field' }, { name: 'field2' }];
    const fieldGroupCriteria = /* custom group criteria */;
    const integratedGroupingColumnExtensions = [
      { columnName: 'field', criteria: fieldGroupCriteria },
    ];
    
    <Grid columns={columns}>
      <IntegratedGrouping columnExtensions={integratedGroupingColumnExtensions} />
    </Grid>
  • react-grid: We removed the cancel argument from the SortingState plugin's setColumnSorting action and from the onSort event of the TableHeaderCellProps and GroupPanelItemProps component properties. Now, you can pass null to the direction argument to cancel sorting by column.

  • react-grid: The TableHeaderCellProps interface's allowResizing property has been renamed to resizingEnabled to improve the API consistency.

  • react-grid: We removed the getColumnCompare property from the LocalSorting plugin to improve API consistency. Now, use the columnExtension property to specify individual column sorting options.

    Before:

    const columns = [{ name: 'field' }, { name: 'field2' }];
    const fieldCompare = /* custom sort compare */;
    const getColumnCompare = (columnName) => {
      if (name === 'field') return fieldCompare;
    };
    
    <Grid columns={columns}>
      <LocalSorting getColumnCompare={getColumnCompare} />
    </Grid>

    After:

    const columns= [{ name: 'field' }, { name: 'field2' }];
    const fieldCompare = /* custom sort compare */;
    const integratedSortingColumnExtensions = [
      { columnName: 'field', compare: fieldIdentity },
    ];
    
    <Grid columns={columns}>
      <IntegratedSorting columnExtensions={integratedSortingColumnExtensions} />
    </Grid>
  • react-grid: We have integrated the column chooser into the Grid as a plugin to simplify the API. Now, use the column chooser as follows:

    <Grid>
      {/* ... */}
      <TableColumnVisibility
        /* props */
      />
      <Toolbar />
      <ColumnChooser />
    </Grid>

    For details, see Controlling Column Visibility.

  • react-grid: We extracted the column's showWhenGrouped property that the TableGroupRow plugin handles to a column extension to improve the API readability. The TableGroupRow plugin's showColumnsWhenGrouped property type has been changed to boolean and this property affects all columns. If you need to control specific columns' visibility, use column extensions.

    Before:

    const columns = [{ name: 'field', showWhenGrouped: true }, { name: 'field2' }];
    
    <Grid columns={columns}>
      <TableGroupRow />
    </Grid>

    After:

    const columns= [{ name: 'field' }, { name: 'field2' }];
    const tableGroupColumnExtensions = [
      { columnName: 'field', showWhenGrouped: true },
    ];
    
    <Grid columns={columns}>
      <TableGroupRow columnExtensions={tableGroupColumnExtensions} />
    </Grid>

    Note that column extension properties have higher priority than corresponding plugin properties.

  • react-grid: We renamed the DragDropContext plugin to DragDropProvider to improve API consistency.

  • react-grid: We removed the allowResizing property from the TableHeaderRow plugin to simplify the API. Now, adding the TableColumnResizing plugin enables column resizing.

  • react-grid: In order to improve API readability, we extracted the width and align column properties that the Table and VirtualTable plugins handle into a separate property. Now, the width and align properties in the Grid columns are no longer supported. Use a TableColumnExtension instead:

    Before:

    const columns= [{ name: 'field', width: 100 }, { name: 'field2' }];
    
    <Grid columns={columns}>
      <Table />
    </Grid>

    After:

    const columns= [{ name: 'field1' }, { name: 'field2' }];
    const tableColumnExtensions = [{ columnName: 'field1', width: 100 }];
    
    <Grid columns={columns}>
      <Table columnExtensions={tableColumnExtensions} />
    </Grid>
  • react-grid: In order to simplify API, we changed the way the DataTypeProvider plugin detects columns associated with a type. Now, to associate a custom formatter and editor with a column, pass a column array to the DataTypeProvider's for field:

    Before:

    const columns= [{ name: 'field', dataType: 'boolean' }, { name: 'field2' }];
    
    <Grid columns={columns}>
      <DataTypeProvider type="boolean" />
    </Grid>

    After:

    const columns= [{ name: 'field1' }, { name: 'field2' }];
    const booleanColumns = ['field1'];
    
    <Grid columns={columns}>
      <DataTypeProvider for={booleanColumns} />
    </Grid>
  • react-grid: In order to improve API consistency, we've decided to replace the getColumnPredicate function in the LocalFiltering plugin with the LocalFilteringColumnExtension.

    Before:

    const columns = [{ name: 'field' }, { name: 'field2' }];
    const fieldPredicate = /* custom filtering predicate */;
    const getColumnPredicate = (columnName) => {
      if (name === 'field') return fieldPredicate;
    };
    
    <Grid columns={columns}>
      <LocalFiltering getColumnPredicate={getColumnPredicate} />
    </Grid>

    After:

    const columns= [{ name: 'field' }, { name: 'field2' }];
    const fieldPredicate = /* custom filtering predicate */;
    const integratedFilteringColumnExtensions = [
      { columnName: 'field', predicate: fieldPredicate },
    ];
    
    <Grid columns={columns}>
      <IntegratedFiltering columnExtensions={integratedFilteringColumnExtensions} />
    </Grid>
  • react-grid: In order to simplify API, we've decided to remove allowDragging properties in TableHeaderRow and GroupingPanel plugins. Now, to enable dragging it is enough to add the DragDropContext plugin.

  • react-grid:   To provide a more convenient and flexible way to render elements that are placed within a Grid header we add the Toolbar plugin. For this reason, the GroupingPanel plugin has the Toolbar dependency:  

    import {
      // ...
      Toolbar,
      GroupingPanel
    } from '@devexpress/dx-react-grid-material-ui';
    
    <Grid>
      {/* ... */}
      <Toolbar />
      <GroupingPanel />
    </Grid>

      To simplify Grid's markup we removed header placeholder and footer placeholder components. If you're customizing Grid appearance using the headerPlaceholderComponent and footerPlaceholderComponent properties, your code should be updated as follows:   Before:

    <Grid
      headerPlaceholderTemplate={() => (<div />)}
      footerPlaceholderTemplate={() => (<div />)}
    >
    {/* ... */}
    </Grid>

    After:

    import { Template, TemplatePlaceholder } from '@devexpress/dx-react-core';
    
    <Grid>
      <Template name="header">
        <TemplatePlaceholder />
        {/* Custom markup */}
      </Template>
      <Template name="footer">
        <TemplatePlaceholder />
        {/* Custom markup */}
      </Template>
      {/* ... */}
    </Grid>
  • react-grid: We extracted the column's createRowChange property that the EditingState plugin handles to a column extension to improve API readability.

    Before:

    const columns = [{ name: 'field', createRowChange: (row, value) => { /* logic */ } }, { name: 'field2' }];
    
    <Grid columns={columns}>
      <EditingState />
    </Grid>

    After:

    const columns= [{ name: 'field' }, { name: 'field2' }];
    const editingColumnExtensions = [
      { columnName: 'field', createRowChange: (row, value) => { /* logic */ } },
    ];
    
    <Grid columns={columns}>
      <EditingState columnExtensions={editingColumnExtensions} />
    </Grid>

    Note that column extension properties have higher priority than corresponding plugin properties.

1.0.0-beta.2 (2017-12-14)

Bug Fixes

  • grid-core: allow to place TableColumnVisibility after another table plugins (#557) (6788ba6)
  • grid-core: fix problem when grouped columns are hidden (#562) (8fbc2c9)
  • react-core: fix drag by mouse on a touch-enabled devices (#541) (fd9b7f9), closes #535
  • react-core: remove redundant markup elements (#544) (f5e24a6)
  • react-demos: fix the Featured Remote Data demo (#548) (35729d1)
  • react-grid: clean drag-drop grouping variables (#479) (fdfab56)
  • react-grid: get rid of console error during column dragging (#570) (c508953)
  • react-grid: prevent click event propagation on detail toggle (#494) (f5b861b), closes #492
  • react-grid-material-ui: correct header cell width (#536) (858ee1c)
  • react-grid-material-ui: replace click action from Cell to CheckBox (#490) (8a12806)
  • react-grid-material-ui: rework cell paddings (#480) (1bc29f2)

Code Refactoring

  • react-grid: replace render functions with components in TableEditRow (#518) (9bc0993)
  • react-grid: replace render functions with components in TableEditColumn (#522) (9273e04)
  • react-grid: replace render functions with components in TableFilterRow (#512) (1b95ae5)
  • react-grid: replace Watcher with the Getter (#545) (138c7c0)
  • react-grid: get rid of internal seamless-immutable support (#556) (195ad79)
  • react-grid: rename TableView and VirtualTableView components to Table and VirtualTable (#482) (3874da9)
  • react-grid: replace render functions with components in Grid (#486) (cb409a1)
  • react-grid: replace render functions with components in GroupingPanel (#540) (fbca230)
  • react-grid: replace render functions with components in TableGroupRow (#511) (7d7d3a1)
  • react-grid: replace render functions with components in TableHeaderRow (#508) (255e729)
  • react-grid: replace render functions with components in TableRowDetail (#505) (844330b)
  • react-grid: replace render functions with components in TableSelection (#502) (f9e3c88)
  • react-grid: replace render functions with components in TableView (#485) (f5bd4e0)
  • react-grid: split SelectionState to SelectionState and LocalSelection (#506) (e49ad0d)
  • react-grid: split SelectionState to SelectionState and LocalSelection (#552) (be42695)
  • react-grid-material-ui: get rid of the Paper wrapper (#487) (2e40de9)

Features

  • react-grid: add components for ColumnChooser (#543) (7c24c91)
  • react-grid: add components for DragDropContext plugin (#526) (49d9662)
  • react-grid: add components for the Grid component (#553) (314f0d8)
  • react-grid: add components for the GroupingPanel plugin (#565) (e79ba9c)
  • react-grid: add components for the PagingPanel plugin (#542) (3d226bb)
  • react-grid: add components for the Table plugin (#516) (37b4393)
  • react-grid: add components for the TableColumnVisibility plugin (#539) (2d12091)
  • react-grid: add components for the TableEditColumn plugin (#534) (a24a9ce)
  • react-grid: add components for the TableEditRow plugin (#529) (5615ecf)
  • react-grid: add components for the TableFilterRow plugin (#523) (06afae1)
  • react-grid: add components for the TableGroupRow plugin (#520) (dc9903c)
  • react-grid: add components for the TableRowDetail plugin (#538) (a721d36)
  • react-grid: add components for the TableSelection plugin (#521) (4574aaf)
  • react-grid: add components for the VirtualTable plugin (#566) (d67ec6f)
  • react-grid: add table header row & cell components (#507) (826cda8)

BREAKING CHANGES

  • react-core: To get rid of redundant 'div' elements in markup, we have updated the minimum React version the grid requires to 16.2.0.

  • react-grid: Some times ago, we created a pull request that allows using our React Grid with the seamless-immutable library. The main change is that we switched from the Array.prototype.slice() function to the Array.from() one to copy arrays. It was not a good decision, because Array.from() is slower than Array.prototype.slice(). Now we return back to Array.prototype.slice() for performance reasons.

    If you are using the seamless-immutable library, change your code as follows:

    const state = {
      data: Immutable({
        selection: [],
      })
    };
    
    <Grid>
      { /* ...*/ }
      <SelectionState
        // selection: this.state.data.selection -> before
        selection: this.state.data.selection.asMutable() // now
      />
    </Grid>

    The related guide is updated as well.

  • react-grid-material-ui: To make Grid for Material-UI more flexible we've stopped using the Paper component inside the Grid's layout.   It allows placing our Grid to an existing Paper with other components. For example:

    <Paper>
      <Button>Products</Button>
      <Button>Customers</Button>
      <Button>Sales</Button>
      <Grid
        /* ... */
      >
        {/* ... */}
      </Grid>
    </Paper>
  • react-grid: To simplify working with selection features and make the selection plugin's purposes clearer, the functionality that computes the selection state has been moved from the SelectionState plugin to the LocalSelection one:

    • The availableToSelect getter has been deleted from the SelectionState plugin, while the selectAllAvailable, allSelected, and someSelected getters have been added to the LocalSelection plugin.
    • The SelectionState plugin's setRowsSelection action has been renamed to toggleSelection.
    • The selection getter's return value type has been changed to Set.
    • The default value of the TableSelection plugin's showSelectAll property has been changed to false.

    Both plugins are available from the @devexpress/dx-react-grid package. Note that LocalSelection should be linked after SelectionState if you use the TableSelection plugin.

  • react-core: To simplify working with plugins, we have got rid of the Watcher. Now, you can use a Getter instead.

    Before:

    ...
    <Watcher
      watch={
        getter = getter('someGetter')
      }
      onChange={(action, someGetter) => {
        action('someAction')(someGetter);
      }}
    />
    ...
    

    After:

    ...
    <Getter
      name="someGetter"
      computed={(getters, actions) => {
          actions.someAction(getters.someGetter);
        return getters.someGetter;
      }}
    />
    ...
    
  • react-grid: Such plugin names as TableView and VirtualTableView don't correspond to other plugins like TableFilterRow, TableGroupRow, TableSelection, which do not have "view" in their names. To keep the names of plugins consistent, the following changes have been introduced:

    • the TableView plugin has been renamed to Table;
    • the VirtualTableView plugin has been renamed to VirtualTable;
  • react-grid: The TableEditRow plugin's editCellTemplate, and editRowTemplate properties have been replaced with cellComponent, and rowComponent ones, which accept components instead of render functions. Find more details here: #496

  • react-grid: The GroupingPanel plugin's groupPanelTemplate, and groupPanelItemTemplate properties have been replaced with containerComponent, and itemComponent ones, which accept components instead of render functions. Find more details here: #496

    containerComponent takes on the children property instead of all arguments passed to the groupPanelTemplate function.

    The onSort, and onGroup properties passed to itemComponent are used instead of the changeSortingDirection, and groupByColumn arguments passed to the groupPanelItemTemplate function. The item, and draft properties are no longer available, use the item property instead.

  • react-grid: The TableEditColumn plugin's commandTemplate, cellTemplate and headingCellTemplate properties have been replaced with commandComponent, cellComponent, and headerCellComponent ones, which accept components instead of render functions. Find more details here: #496

    Properties passed to a component returned from commandComponent have the same names as arguments passed to the commandTemplate function with the following exception. The onExecute property is used instead of the executeCommand argument.

    All properties passed to the cellComponent except row have been replaced by the children property providing configured commands.

    All properties passed to the headingCellComponent have been replaced by the children property providing configured commands.

  • react-grid: The TableGroupRow plugin's groupIndentColumnWidth property has been renamed to indentColumnWidth. The groupCellTemplate, groupRowTemplate and groupIndentCellTemplate properties have been replaced with cellComponent, rowComponent, and indentCellComponent ones, which accept components instead of render functions. Find more details here: #496

    Properties passed to cellComponent have the same names as arguments passed to the groupCellTemplate function with the following exceptions:

    • The onToggle property is used instead of the toggleGroupExpanded argument.
    • The expanded property is used instead of the isExpanded argument.
  • react-grid: The TableFilterRow plugin's filterCellTemplate and filterRowTemplate properties have been replaced with cellComponent, and rowComponent ones, which accept components instead of render functions. Find more details here: #496

    Properties passed to cellComponent have the same names as arguments passed to the filterCellTemplate function except for the onFilter property, which is used instead of the setFilter argument.

  • react-grid: The TableHeaderRow's headerCellTemplate, and headerRowTemplate properties have been replaced with cellComponent, and rowComponent, which accept components instead of render functions. Find more details here: #496

    Properties passed to cellComponent have the same names as arguments passed to the headerCellTemplate function with the following exceptions: the onSort, onGroup, onWidthChange and onDraftWidthChange properties are used instead of the changeSortingDirection, groupByColumn, changeColumnWidth and changeDraftColumnWidth arguments respectively.

  • react-grid: The TableRowDetail plugin's detailToggleCellWidth property has been renamed to toggleColumnWidth. The template, detailCellTemplate, detailRowTemplate, and detailToggleCellTemplate properties have been replaced with contentComponent, cellComponent, rowComponent, and toggleCellComponent ones, which accept components instead of render functions. Find more details here: #496

    Properties passed to cellComponent have the same names as arguments passed to the detailCellTemplate function except for the children property, which is used instead of the template argument.

    Properties passed to toggleCellComponent have the same names as arguments passed to the detailToggleCellTemplate function except for the onToggle property, which is used instead of the toggleExpanded argument.

  • react-grid: The TableSelection plugin's highlightSelected property has been renamed to highlightRow. The selectCellTemplate and selectAllCellTemplate properties have been replaced with cellComponent, and headerCellComponent ones, which accept components instead of render functions. Find more details here: #496

    Properties passed to headerCellComponent have the same names as arguments passed to the selectAllCellTemplate function with the following exceptions:

    • The onToggle property is used instead of the toggleAll argument.
    • The disabled property is used instead of the selectionAvailable argument and it's value is inverted.

    Properties passed to cellComponent have the same names as arguments passed to the selectCellTemplate function except for the onToggle property, which is used instead of the changeSelected argument.

  • react-grid: The Table's tableLayoutTemplate, tableCellTemplate, tableRowTemplate, tableNoDataCellTemplate, tableNoDataRowTemplate, tableStubCellTemplate, and tableStubHeaderCellComponent properties have been replaced with layoutComponent, cellComponent, rowComponent, noDataCellComponent, noDataRowComponent, stubCellComponent and stubHeaderCellComponent. This also means that they accept components instead of render functions. Find more details here: #496

  • react-grid: The Grid's rootTemplate, headerPlaceholderTemplate, and footerPlaceholderTemplate properties have been replaced with rootComponent, headerPlaceholderComponent, and footerPlaceholderComponent. This also means that they accept components instead of render functions. Find more details here: #496

    The headerTemplate, bodyTemplate, and footerTemplate properties have been replaced with the children property in rootTemplate.

1.0.0-beta.1 (2017-11-10)

Bug Fixes

  • react-grid: cancel find of nested groups within an empty childRows array (#460) (c1c3982)
  • react-grid: correct focus behavior when switching to row edit mode (#455) (aceada7)
  • react-grid: repair group rows keys (#456) (f3021b9)
  • react-grid-bootstrap3: adjust vertical align of controls inside cells (#466) (d982f31)
  • react-grid-material-ui: normalize checkboxes size (#450) (10b61d9)
  • react-grid-material-ui: normalize heights of rows with checkboxes (#445) (123ed27)

Code Refactoring

  • react-grid: export TableColumnResizing from theme packages (#438) (4be4ebf)
  • rect-grid: refactor table column reordering (#424) (dc28366), closes #154

Features

  • react-grid: add localization messages (#385) (c7581bd)
  • react-grid: add the capability to filter/sort grouped rows (#443) (292d429)
  • react-grid: allow to change sorting of the grouped columns by keyboard (#461) (e50c973)
  • react-grid: allow to focus each column and change sorting (#448) (0550848)
  • react-grid: rework virtual table (#454) (b28e365), closes #33 #280 #401
  • react-grid: support expanding/collapsing detail rows with keyboard (#446) (47ab49d)
  • react-grid: support expanding/collapsing group rows with keyboard (#439) (4176d9a)

BREAKING CHANGES

  • rect-grid: The ColumnOrderState plugin has been renamed to TableColumnReordering and is now available via the @devexpress/dx-react-grid-bootstrap3 and @devexpress/dx-react-grid-material-ui packages.

    The TableView plugin's allowColumnReordering property has been removed and the TableColumnReordering plugin now depends on the TableView plugin. Thus, it is enough to link the TableColumnReordering plugin below the TableView plugin to enable column reordering.

    Before:

    import {
      // ...
      ColumnOrderState
    } from '@devexpress/dx-react-grid';
    
    // ...
    
    <ColumnOrderState defaultOrder={[/* ... */]} />
    <TableView allowColumnReordering />

    After:

    import {
      // ...
      TableColumnReordering
    } from '@devexpress/dx-react-grid-bootstrap3';
    // } from '@devexpress/dx-react-grid-material-ui';
    
    // ...
    
    <TableView />
    <TableColumnReordering defaultOrder={[/* ... */]} />
  • react-grid: The TableColumnResizing plugin is now available in the "@devexpress/dx-react-grid-bootstrap3" and "@devexpress/dx-react-grid-material-ui" packages.

    Use the following code to import the plugin.

    import {
      TableColumnResizing,
    } from from '@devexpress/dx-react-grid-bootstrap3'/* or '@devexpress/dx-react-grid-material-ui' */;
    

1.0.0-alpha.14 (2017-10-25)

Bug Fixes

  • react-grid: remove header cell title offset if grouping by click isn't allowed (#434) (60285d4), closes #432
  • react-grid-bootstrap3: do not allow to focus column chooser item checkbox (728ea23)

Features

  • react-grid: support custom grouping processing (#395) (4fb92d0)

1.0.0-alpha.13 (2017-10-19)

Bug Fixes

  • react-grid: remove a redundant SelectionState dependency on LocalGrouping (#429) (50ee891), closes #428

1.0.0-alpha.12 (2017-10-19)

Bug Fixes

  • react-grid: add 'overflow: hidden' for MUI TableCell (#406) (69fd88c), closes #403
  • react-grid: allow to use Grid with react@16 (#389) (9f292fe)
  • react-grid: correlate sorting order with grouping order (#414) (db3377c), closes #398
  • react-grid: optimize table selection rendering (#412) (b0dfae1), closes #397
  • react-grid-bootstrap3: fix server side rendering issue with VirtualTable (#420) (207e81b), closes #415

Features

  • react-grid: implement column chooser (#366) (74b99c1)

Performance Improvements

  • react-core: batch updates on draggable events (#384) (51efef1)

BREAKING CHANGES

  • react-grid: The scope parameter of the setColumnSorting action has been removed.

    The GroupingState plugin now has an optional dependency on the SortingState plugin. So, GroupingState should be placed after SortingState.

    Before:

    <GroupingState /* ... */ />
    <SortingState /* ... */ />

    After:

    <SortingState /* ... */ />
    <GroupingState /* ... */ />

1.0.0-alpha.11 (2017-10-04)

Bug Fixes

  • react-core: update TemplatePlacholder on placeholder func change (#370) (69659c8)
  • react-grid: add 'pointer' cursor on group icon in the HeaderCell (#369) (8d1de4a)

Code Refactoring

  • react-grid: change custom filtering function signature (#354) (67cfdc9)
  • react-grid: rename getCellData to getCellValue (#349) (8f8e41d)

Features

  • react-grid: add custom grouping functions to LocalGrouping (#376) (2c31af1)
  • react-grid: add the functionality to define a custom sorting algorithm (#371) (4ac8ab8)
  • react-grid: support column data types (#336) (1528800)

Performance Improvements

  • react-grid: optimize internal state calculation (#356) (be890b4)
  • react-grid: suppress redundant render (#355) (695aacd)

BREAKING CHANGES

  • react-grid: The filterFn property of the LocalFiltering has been renamed to getColumnPredicate. The argument list has been changed from filterFn(row: Row, filter: Filter) => boolean to getColumnPredicate(columnName: string) => Function. The returning function has the following signature (value: any, filter, row: Row) => boolean.
  • react-grid: The getCellData property of the TableView plugin and the getCellData field of the Column interface have been renamed to getCellValue.

1.0.0-alpha.10 (2017-09-18)

Bug Fixes

  • react-core: use correct params within template chain (#322) (64a9991)

Code Refactoring

  • react-core: remove embedded Template connection (#331) (f90955d)
  • react-grid: rename tableTemplate to tableLayoutTemplate (#310) (def4a97)

Features

  • react-core: implement TemplateConnector (#314) (1e9bcfc)
  • react-grid: add tableRowTemplate to the TableView plugin (#317) (24d9446)
  • react-grid: implement row templates (#333) (bc960d4)
  • react-grid: implement table column resizing (#297) (a377d3c)
  • react-grid: make grouped and ungrouped column sorting independent (#292) (c812fa3)

BREAKING CHANGES

  • react-grid: The tableExtraProps getter was removed from the TableView and TableSelection plugins.
  • react-core: connectGetters and connectActions properties have been removed from the Template component. From now on, you can connect Getters and Actions using the TemplateConnector component.

Before:

<Template name="templateName"
  connectGetters={getter => ({ value: getter('value') })}
  connectActions={action => ({ changeValue: action('changeValue') })}
>
  {({ value, changeValue }) => /* ... */}
</Template>

After:

<Template name="templateName">
  <TemplateConnector>
    {({ value }, { changeValue }) =>  /* ... */}
  </TemplateConnector>
</Template>
  • react-grid: The tableTemplate property has been renamed to tableLayoutTemplate to make the TableView plugin API more eloquent.

1.0.0-alpha.9 (2017-09-04)

Bug Fixes

  • react-grid: display a correct message in an empty grouping panel (#274) (46b5291)
  • react-grid: fix the editing state mutation (#279) (a120730)
  • react-grid: update MUI to the 1.0.0-beta.6 version (#275) (9032c34), closes #271
  • react-grid: update MUI to the 1.0.0-beta.7 version (#296) (7d7d649)

1.0.0-alpha.8 (2017-08-21)

Bug Fixes

  • react-grid: correct pager rendering within an empty grid (#251) (eb13a8b)
  • react-grid: get rid of the exception thrown on a column ungrouping by drag and drop (#260) (8fc2990)
  • react-grid: preserve group panel height when no grouping is specified (#261) (9116e92)

Code Refactoring

  • react-grid: change TableRow and TableColumn interfaces structure (#227) (5288a9f)
  • react-grid: merge the setRowSelection and setRowsSelection actions (#233) (876a2c6)
  • react-grid: remove redundant getters from GroupingState (#244) (1fb21ca)
  • react-grid: rename colspan to colSpan (#248) (afc69e9)
  • react-grid: wrap group panel column data (#267) (156392b)

Features

  • react-core: rework Getter (#259) (4fd5f9b)
  • react-grid: adopt PluginContainer dependencies in Grid plugins (#249) (016f618)
  • react-grid: provide the custom data accessors capability (#264) (5f699bf), closes #176

Performance Improvements

  • react-grid: optimize plugin dependencies check (#253) (640c124)

BREAKING CHANGES

  • react-grid: The following changes have been made in the GroupingPanel plugin:

    • the groupPanelCellTemplate property has been renamed to groupPanelItemTemplate;
    • the groupedColumns property has been renamed to groupingPanelItems and now contains an array of objects which conform the GroupingPanelItem interface.

    The isDraft property of the DraftGrouping interface has been renamed to draft.

  • react-grid:   In order to reduce API verbosity, the groupedColumns and draftGroupedColumns getters are no longer exported from the GroupingState plugin.   The column field is no longer present in the GroupRow interface. So, to access the column field in groupCellTemplate and groupIndentCellTemplate of the TableGroupRow plugin, it is necessary to use args.column instead of args.row.column.

  • react-grid: The colspan field passed to tableNoDataCellTemplate (the TableView plugin), detailCellTemplate (the TableRowDetail plugin) and groupCellTemplate (the TableGroupRow plugin) has been renamed to colSpan.

  • react-grid: To simplify the Grid plugins API the setRowSelection action was removed from the SelectionState and TableSelection plugins.

    For now, to select a single row you can use the setRowsSelection action in the following manner:

    setRowsSelection({ rowIds: [/* rowId */] })
  • react-grid:   TableRow and TableColumn interfaces structure has been changed. Now, it wraps original rows and columns of the Grid component instead of patching it.

    Before:

    interface TableRow extends Row {
      type?: string;
    }
    interface TableColumn extends Column {
      type?: string;
    }

    After:

    interface TableRow {
      key: string;
      type: string;
      rowId?: number | string;
      row?: Row;
      height?: number;
    }
    interface TableColumn {
      key: string;
      type: string;
      column?: Column;
      width?: number;
    }

    The CommandHeadingCellArgs interface related to the TableEditColumn plugin no longer has column and row fields.

1.0.0-alpha.7 (2017-08-07)

Bug Fixes

  • react-grid: allow TableGroupRow to be placed before other table plugins (#221) (bdc81a0)
  • react-grid: correct 'All' page size text rendering in MUI (#242) (6bde2dd)
  • react-grid: fix grouping if TableGroupRow is placed before any other table plugin (#218) (7e09c7e)
  • react-grid: pass style field to editCellTemplate of TableEditRow (#235) (c45ef85), closes #234
  • react-grid: prevent group panel cells blinking while dragging (#223) (786206d)
  • react-grid: remove extra space at the right of GroupPanelCell when sorting is disabled (#220) (257a337)
  • react-grid: use correct cursors for dragging (#224) (6269063)
  • react-grid-material-ui: support indeterminate state for the select all checkbox (#231) (6a5aab3)

Chores

  • react-grid-material-ui: swap UMD bundle with CJS one in package entry (#232) (9dd4273)

Code Refactoring

  • react-grid: add the most recently added row to the end (#238) (442bdbc)

Features

  • react-core: implement dependencies support for PluginContainer (#237) (6ef3be6)

BREAKING CHANGES

  • react-grid: In order to improve API transparency, the most recently added row will be added to the end of the addedRows property of the EditingState plugin.
  • react-grid-material-ui: UMD bundle for the @devexpress/dx-react-grid-material-ui package is no longer provided
  • react-grid: Arguments of the setPageSize and setCurrentPage actions were simpilified. Now, to call these actions, a user can use numbers instead of objects. See the following code:
    setPageSize(5); // instead of setPageSize({ size: 5 })
    
    and
    setCurrentPage(1); // instead of setCurrentPage({ page: 1 })
    

1.0.0-alpha.6 (2017-07-24)

Bug Fixes

  • react-core: prevent scrolling while dragging (#207) (e3e18a9)
  • react-grid: clear expanded groups after ungrouping (#202) (d97809e)
  • react-grid: remove the totalPages getter from the PagingState plugin (#195) (e231d63)
  • react-grid: throw error if the count of title rows exceeds the page size (#193) (8abde20)
  • react-grid: turn edit cell input into the controlled mode (#201) (af26c64)
  • react-grid-material-ui: pin material-ui version (#197) (34e6ddb)
  • fix versions in distrubutives (#208) (7c2f9da)
  • react-grid-material-ui: use correct typography for the drag preview (#214) (e1a134d)

Features

  • react-grid: implement grouping by drag and drop (#205) (ebb6c61)

Performance Improvements

  • react-grid: update only changed rows in table (#199) (e1c64ff)

Reverts

  • fix(react-grid): grid bottom offset in Material-UI (#196) (e2392ed)

BREAKING CHANGES

  • react-grid: The TableHeaderRow plugin's allowGrouping property has been renamed to allowGroupingByClick.
  • react-grid: The totalPages getter is no longer exported from the PagingState and LocalPaging plugins.

1.0.0-alpha.5 (2017-07-07)

Bug Fixes

  • react-grid: add grid bottom offset in Material-UI (#180) (48f12a2)
  • react-grid: add group icon offset in Material-UI (#171) (43d9da1)
  • react-grid: limit filterCellTemplate arguments (#163) (2a4f003)
  • react-grid: reset a column filter when clearing the filter editor value (#184) (83b321c), closes #136
  • react-grid: use MUI Chips for group panel items rendering (#168) (45ceb12)

Code Refactoring

  • react-grid: extract GroupPanelLayout (#149) (ed73aa1)

Features

  • react-grid: introduce column reordering animation (#169) (d5e808b)
  • react-grid: introduce Material-UI templates (closes #93)

BREAKING CHANGES

  • react-grid: Use the groupPanelCellTemplate property of the grouping-panel plugin instead of the GroupPanelProps interface's cellTemplate property to specify a template used to render a grouping panel cell. The GroupPanelProps interface's cellTemplate property is no longer available.

1.0.0-alpha.4 (2017-06-23)

Bug Fixes

  • react-grid: Add a vertical space between grouping buttons (#151) (ec1bd30)
  • react-grid: Add an offset for left column in Material-UI (#156) (67d0eda)
  • react-grid: Fix incorrect table layout if all columns have fixed width (#160) (b933aea)
  • react-grid: Put the dx-react-grid dependencies in order (#148) (fe60801)
  • react-grid: Update deps (fixes #134) (#139) (5bf504a)

Code Refactoring

  • react-grid: Rename detailToggleTemplate to detailToggleCellTemplate (#146) (bd49b0e)
  • react-grid: Rename groupColumnWidth to groupIndentColumnWidth (#145) (e78b55f)
  • react-grid: Rename groupRowCellTemplate to groupCellTemplate (#153) (fec0aac)

Features

  • react-grid: Ability to show all rows on a page via page size selector (#150) (8af3dde)
  • react-grid: Implement column reordering (#128) (1de1c63)
  • react-grid: TableView support stub cell rendering if no data for cell is provided (#155) (34dee6c)

BREAKING CHANGES

  • react-grid: The following package has become a peer dependency of the @devexpress/dx-react-grid one and has to be installed by your app:

    npm i --save @devexpress/dx-react-core
    
  • react-grid: The 'groupRowCellTemplate' property of the TableGroupRow plugin has been renamed to 'groupCellTemplate'

  • react-grid: We renamed the detailToggleTemplate property of the TableRowDetail plugin to detailToggleCellTemplate to make it consistent with the detailToggleCellWidth property.

  • react-grid: The groupColumnWidth property of the TableGroupRow plugin has been renamed to groupIndentColumnWidth to avoid possible confusion of what it is responsible for.

1.0.0-alpha.3 (2017-06-09)

Bug Fixes

  • react-grid: Cancel sorting by using the Ctrl key in Material-UI (#129) (2508537)
  • react-grid: Treat templates as functions (#120) (4b2c490)

Code Refactoring

  • react-grid: Move layout templates to Grid (#107) (f6be302)

Features

  • react-grid: Controlled state featured demo for Material-UI (#130) (2528c67)
  • react-grid: Implement ColumnOrderState plugin (#111) (b3284f0)
  • react-grid: Implement DragDropContext plugin (#117) (31f6b2d)
  • react-grid: Introduce Material-UI templates (#102) (70975a7)
  • react-grid: Material-UI detail row (#115) (c161c66)
  • react-grid: Material-UI editing (#124) (3d9a00b)
  • react-grid: Material-UI featured uncontrolled state demo (#126) (8e1d80b)
  • react-grid: Material-UI filtering (#109) (5484942)
  • react-grid: Material-UI pager (#108) (99f30b6)
  • react-grid: Mobile-friendly pager (#125) (23ec7f0)
  • react-grid: Redux integration demo for Material-UI (#132) (9988355)
  • react-grid: Remote data featured demo for Material-UI (#131) (41b64b2)
  • react-grid: Use column name if its title is not specified (#121) (daef7db)

BREAKING CHANGES

  • react-grid: We moved layout templates from the TableView plugin to the Grid component. The Grid component with the predefined plugins is now available in the "@devexpress/dx-react-grid-bootstrap3" package. If you want to define custom layout templates, the Grid component without predefined templates is still available in the "devexpress/dx-react-grid" package.

    The following code:

    import {
      Grid
    } from '@devexpress/dx-react-grid';

    should be replaced with:

    import {
      Grid
    } from '@devexpress/dx-react-grid-bootstrap3';

1.0.0-alpha.2 (2017-05-26)

Bug Fixes

  • demos: Change initial page size in remote demo (#103) (aa64e3c)
  • docs: Don't use relative links in the package root readme.md (#91) (6863e73)
  • react-grid: Cancel column grouping in FireFox (#98) (8fb9c52), closes #30

Features

  • react-grid: Cancel sorting by using the Ctrl key (#96) (0d804f4)
  • react-grid: Implement page size selector (#95) (9e21583)

BREAKING CHANGES

  • Previously, to enable the 'Detail row' feature a user had to use only the 'TableRowDetail' plugin. But, this plugin mixed up the rendering and state managing functionality. Now, there are two particular plugins. The first one is the 'RowDetailState' plugin. It's responsible for a state managing. The second one is the 'TableRowDetail' plugin. It only renders a detail row.

    The following code:

    <TableRowDetail
      expandedRows={expandedRows}
      onExpandedRowsChange={onExpandedRowsChange}
      template={({ row }) =>
        <GridDetailContainer
          data={row}
          columns={detailColumns}
        />
      }
    />

    should be replaced with:

    <RowDetailState
      expandedRows={expandedRows}
      onExpandedRowsChange={onExpandedRowsChange}
    />
    <TableRowDetail
      template={({ row }) =>
        <GridDetailContainer
          data={row}
          columns={detailColumns}
        />
      }
    />

1.0.0-alpha.1 (2017-05-15)

  • Initial public release