1.0.0 (2018-02-02)
- react-core: rename PluginContainer to Plugin (#712) (30734d8)
- react-grid: rename expanded details getter (#713) (771eb3f)
- react-core: The
PluginContainer
component has been renamed toPlugin
. - react-grid: The
expandedRowIds
getter of the RowDetailState plugin has been renamed toexpandedDetailRowIds
.
1.0.0-rc.2 (2018-01-26)
- 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)
- 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)
- 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)
-
react-grid: The
draftGrouping
getter does not contain information about draft mode anymore. ThedraftGroupingChange
, andcancelGroupingChange
actions have been renamed todraftColumnGrouping
, andcancelColumnGroupingDraft
. -
react-grid: The type of the TableColumnResizing plugin's
columnWidths
anddefaultColumnWidths
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 todraftTableColumnWidth
. The functionality that resets draft column width has been moved from from thedraftTableColumnWidth
action into the separatecancelTableColumnWidthDraft
action.The
onDraftWidthChange
event of the TableHeaderRow's cellComponent has been renamed toonWidthDraft
. The functionality that cancels draft width changes has been extracted to theonWidthDraftCancel
event. -
react-grid: The the GroupingState plugin's
groupByColumn
action has been renamed tochangeColumnGrouping
. -
react-grid: We changed the
selection
getter's data type fromSet
toArray
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 tohiddenColumnNames
. -
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 toexpandedRowIds
. -
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 torowChanges
. -
react-grid: The FilteringState plugin's
setColumnFilter
action has been renamed tochangeColumnFilter
. -
react-grid: The RowDetailState plugin's
setDetailRowExpanded
action has been renamed totoggleDetailRowExpanded
. -
react-grid: The
toggleSelection
action'sselected
parameter has been renamed tostate
. -
react-grid: We changed the
expandedGroups
getter's data type fromSet
toArray
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 todeletedRowIds
. TheeditingRows
getter has been renamed toeditingRowIds
. -
react-grid: The SortingState plugin's
setColumnSorting
action has been renamed tochangeColumnSorting
.
1.0.0-beta.3 (2017-12-28)
- 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)
- 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)
-
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 itstotalCount
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 toshowGroupingControls
. - The GroupingPanel plugin's
allowUngroupingByClick
property has been renamed toshowGroupingControls
. - The PagingPanel plugin's
allowedPageSizes
property has been renamed topageSizes
.
- The TableHeaderRow plugin's
-
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'screateRowChange
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'scriteria
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'ssetColumnSorting
action and from theonSort
event of the TableHeaderCellProps and GroupPanelItemProps component properties. Now, you can passnull
to thedirection
argument to cancel sorting by column. -
react-grid: The TableHeaderCellProps interface's
allowResizing
property has been renamed toresizingEnabled
to improve the API consistency. -
react-grid: We removed the
getColumnCompare
property from the LocalSorting plugin to improve API consistency. Now, use thecolumnExtension
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'sshowColumnsWhenGrouped
property type has been changed toboolean
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 toDragDropProvider
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
andalign
column properties that the Table and VirtualTable plugins handle into a separate property. Now, thewidth
andalign
properties in the Gridcolumns
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
andfooterPlaceholderComponent
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)
- 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)
- 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)
- 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)
-
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 theArray.from()
one to copy arrays. It was not a good decision, becauseArray.from()
is slower thanArray.prototype.slice()
. Now we return back toArray.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 theLocalSelection
one:- The
availableToSelect
getter has been deleted from theSelectionState
plugin, while theselectAllAvailable
,allSelected
, andsomeSelected
getters have been added to theLocalSelection
plugin. - The
SelectionState
plugin'ssetRowsSelection
action has been renamed totoggleSelection
. - The
selection
getter's return value type has been changed toSet
. - The default value of the
TableSelection
plugin'sshowSelectAll
property has been changed tofalse
.
Both plugins are available from the
@devexpress/dx-react-grid
package. Note thatLocalSelection
should be linked afterSelectionState
if you use theTableSelection
plugin. - The
-
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
andVirtualTableView
don't correspond to other plugins likeTableFilterRow
,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 toTable
; - the
VirtualTableView
plugin has been renamed toVirtualTable
;
- the
-
react-grid: The TableEditRow plugin's
editCellTemplate
, andeditRowTemplate
properties have been replaced withcellComponent
, androwComponent
ones, which accept components instead of render functions. Find more details here: #496 -
react-grid: The GroupingPanel plugin's
groupPanelTemplate
, andgroupPanelItemTemplate
properties have been replaced withcontainerComponent
, anditemComponent
ones, which accept components instead of render functions. Find more details here: #496containerComponent
takes on thechildren
property instead of all arguments passed to thegroupPanelTemplate
function.The
onSort
, andonGroup
properties passed toitemComponent
are used instead of thechangeSortingDirection
, andgroupByColumn
arguments passed to thegroupPanelItemTemplate
function. Theitem
, anddraft
properties are no longer available, use theitem
property instead. -
react-grid: The TableEditColumn plugin's
commandTemplate
,cellTemplate
andheadingCellTemplate
properties have been replaced withcommandComponent
,cellComponent
, andheaderCellComponent
ones, which accept components instead of render functions. Find more details here: #496Properties passed to a component returned from
commandComponent
have the same names as arguments passed to thecommandTemplate
function with the following exception. TheonExecute
property is used instead of theexecuteCommand
argument.All properties passed to the
cellComponent
exceptrow
have been replaced by thechildren
property providing configured commands.All properties passed to the
headingCellComponent
have been replaced by thechildren
property providing configured commands. -
react-grid: The TableGroupRow plugin's
groupIndentColumnWidth
property has been renamed toindentColumnWidth
. ThegroupCellTemplate
,groupRowTemplate
andgroupIndentCellTemplate
properties have been replaced withcellComponent
,rowComponent
, andindentCellComponent
ones, which accept components instead of render functions. Find more details here: #496Properties passed to
cellComponent
have the same names as arguments passed to thegroupCellTemplate
function with the following exceptions:- The
onToggle
property is used instead of thetoggleGroupExpanded
argument. - The
expanded
property is used instead of theisExpanded
argument.
- The
-
react-grid: The TableFilterRow plugin's
filterCellTemplate
andfilterRowTemplate
properties have been replaced withcellComponent
, androwComponent
ones, which accept components instead of render functions. Find more details here: #496Properties passed to
cellComponent
have the same names as arguments passed to thefilterCellTemplate
function except for theonFilter
property, which is used instead of thesetFilter
argument. -
react-grid: The TableHeaderRow's
headerCellTemplate
, andheaderRowTemplate
properties have been replaced withcellComponent
, androwComponent
, which accept components instead of render functions. Find more details here: #496Properties passed to
cellComponent
have the same names as arguments passed to theheaderCellTemplate
function with the following exceptions: theonSort
,onGroup
,onWidthChange
andonDraftWidthChange
properties are used instead of thechangeSortingDirection
,groupByColumn
,changeColumnWidth
andchangeDraftColumnWidth
arguments respectively. -
react-grid: The TableRowDetail plugin's
detailToggleCellWidth
property has been renamed totoggleColumnWidth
. Thetemplate
,detailCellTemplate
,detailRowTemplate
, anddetailToggleCellTemplate
properties have been replaced withcontentComponent
,cellComponent
,rowComponent
, andtoggleCellComponent
ones, which accept components instead of render functions. Find more details here: #496Properties passed to
cellComponent
have the same names as arguments passed to thedetailCellTemplate
function except for thechildren
property, which is used instead of thetemplate
argument.Properties passed to
toggleCellComponent
have the same names as arguments passed to thedetailToggleCellTemplate
function except for theonToggle
property, which is used instead of thetoggleExpanded
argument. -
react-grid: The TableSelection plugin's
highlightSelected
property has been renamed tohighlightRow
. TheselectCellTemplate
andselectAllCellTemplate
properties have been replaced withcellComponent
, andheaderCellComponent
ones, which accept components instead of render functions. Find more details here: #496Properties passed to
headerCellComponent
have the same names as arguments passed to theselectAllCellTemplate
function with the following exceptions:- The
onToggle
property is used instead of thetoggleAll
argument. - The
disabled
property is used instead of theselectionAvailable
argument and it's value is inverted.
Properties passed to
cellComponent
have the same names as arguments passed to theselectCellTemplate
function except for theonToggle
property, which is used instead of thechangeSelected
argument. - The
-
react-grid: The Table's
tableLayoutTemplate
,tableCellTemplate
,tableRowTemplate
,tableNoDataCellTemplate
,tableNoDataRowTemplate
,tableStubCellTemplate
, andtableStubHeaderCellComponent
properties have been replaced withlayoutComponent
,cellComponent
,rowComponent
,noDataCellComponent
,noDataRowComponent
,stubCellComponent
andstubHeaderCellComponent
. This also means that they accept components instead of render functions. Find more details here: #496 -
react-grid: The Grid's
rootTemplate
,headerPlaceholderTemplate
, andfooterPlaceholderTemplate
properties have been replaced withrootComponent
,headerPlaceholderComponent
, andfooterPlaceholderComponent
. This also means that they accept components instead of render functions. Find more details here: #496The
headerTemplate
,bodyTemplate
, andfooterTemplate
properties have been replaced with thechildren
property inrootTemplate
.
1.0.0-beta.1 (2017-11-10)
- 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)
- react-grid: export TableColumnResizing from theme packages (#438) (4be4ebf)
- rect-grid: refactor table column reordering (#424) (dc28366), closes #154
- 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)
-
rect-grid: The
ColumnOrderState
plugin has been renamed toTableColumnReordering
and is now available via the@devexpress/dx-react-grid-bootstrap3
and@devexpress/dx-react-grid-material-ui
packages.The
TableView
plugin'sallowColumnReordering
property has been removed and theTableColumnReordering
plugin now depends on theTableView
plugin. Thus, it is enough to link theTableColumnReordering
plugin below theTableView
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)
- 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)
1.0.0-alpha.13 (2017-10-19)
- react-grid: remove a redundant SelectionState dependency on LocalGrouping (#429) (50ee891), closes #428
1.0.0-alpha.12 (2017-10-19)
- 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
-
react-grid: The
scope
parameter of thesetColumnSorting
action has been removed.The
GroupingState
plugin now has an optional dependency on theSortingState
plugin. So,GroupingState
should be placed afterSortingState
.Before:
<GroupingState /* ... */ /> <SortingState /* ... */ />
After:
<SortingState /* ... */ /> <GroupingState /* ... */ />
1.0.0-alpha.11 (2017-10-04)
- react-core: update TemplatePlacholder on placeholder func change (#370) (69659c8)
- react-grid: add 'pointer' cursor on group icon in the HeaderCell (#369) (8d1de4a)
- react-grid: change custom filtering function signature (#354) (67cfdc9)
- react-grid: rename getCellData to getCellValue (#349) (8f8e41d)
- 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)
- react-grid: optimize internal state calculation (#356) (be890b4)
- react-grid: suppress redundant render (#355) (695aacd)
- react-grid: The
filterFn
property of theLocalFiltering
has been renamed togetColumnPredicate
. The argument list has been changed fromfilterFn(row: Row, filter: Filter) => boolean
togetColumnPredicate(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 thegetCellData
field of the Column interface have been renamed togetCellValue
.
1.0.0-alpha.10 (2017-09-18)
- react-core: remove embedded Template connection (#331) (f90955d)
- react-grid: rename tableTemplate to tableLayoutTemplate (#310) (def4a97)
- 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)
- react-grid: The
tableExtraProps
getter was removed from theTableView
andTableSelection
plugins. - react-core:
connectGetters
andconnectActions
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 totableLayoutTemplate
to make theTableView
plugin API more eloquent.
1.0.0-alpha.9 (2017-09-04)
- 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)
- 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)
- 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)
- 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
-
react-grid: The following changes have been made in the GroupingPanel plugin:
- the
groupPanelCellTemplate
property has been renamed togroupPanelItemTemplate
; - the
groupedColumns
property has been renamed togroupingPanelItems
and now contains an array of objects which conform the GroupingPanelItem interface.
The
isDraft
property of the DraftGrouping interface has been renamed todraft
. - the
-
react-grid: In order to reduce API verbosity, the
groupedColumns
anddraftGroupedColumns
getters are no longer exported from the GroupingState plugin. Thecolumn
field is no longer present in the GroupRow interface. So, to access thecolumn
field in groupCellTemplate and groupIndentCellTemplate of the TableGroupRow plugin, it is necessary to useargs.column
instead ofargs.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 tocolSpan
. -
react-grid: To simplify the Grid plugins API the
setRowSelection
action was removed from theSelectionState
andTableSelection
plugins.For now, to select a single row you can use the
setRowsSelection
action in the following manner:setRowsSelection({ rowIds: [/* rowId */] })
-
react-grid:
TableRow
andTableColumn
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 hascolumn
androw
fields.
1.0.0-alpha.7 (2017-08-07)
- 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)
- 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
andsetCurrentPage
actions were simpilified. Now, to call these actions, a user can usenumbers
instead ofobjects
. See the following code:andsetPageSize(5); // instead of setPageSize({ size: 5 })
setCurrentPage(1); // instead of setCurrentPage({ page: 1 })
1.0.0-alpha.6 (2017-07-24)
- 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)
- react-grid: The TableHeaderRow plugin's
allowGrouping
property has been renamed toallowGroupingByClick
. - react-grid: The
totalPages
getter is no longer exported from the PagingState and LocalPaging plugins.
1.0.0-alpha.5 (2017-07-07)
- 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)
- react-grid: introduce column reordering animation (#169) (d5e808b)
- react-grid: introduce Material UI templates (closes #93)
- react-grid: Use the
groupPanelCellTemplate
property of the grouping-panel plugin instead of the GroupPanelProps interface'scellTemplate
property to specify a template used to render a grouping panel cell. The GroupPanelProps interface'scellTemplate
property is no longer available.
1.0.0-alpha.4 (2017-06-23)
- 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)
- react-grid: Rename detailToggleTemplate to detailToggleCellTemplate (#146) (bd49b0e)
- react-grid: Rename groupColumnWidth to groupIndentColumnWidth (#145) (e78b55f)
- react-grid: Rename groupRowCellTemplate to groupCellTemplate (#153) (fec0aac)
- 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)
-
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 todetailToggleCellTemplate
to make it consistent with thedetailToggleCellWidth
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)
- react-grid: Cancel sorting by using the Ctrl key in Material UI (#129) (2508537)
- react-grid: Treat templates as functions (#120) (4b2c490)
- 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)
-
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)
- 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
- react-grid: Cancel sorting by using the Ctrl key (#96) (0d804f4)
- react-grid: Implement page size selector (#95) (9e21583)
-
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} /> } />
- Initial public release