material-react-table 0.13.1 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -153,28 +153,33 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton(_ref) {
153
153
  _instance$options = instance.options,
154
154
  KeyboardDoubleArrowDownIcon = _instance$options.icons.KeyboardDoubleArrowDownIcon,
155
155
  localization = _instance$options.localization,
156
+ muiExpandAllButtonProps = _instance$options.muiExpandAllButtonProps,
156
157
  renderDetailPanel = _instance$options.renderDetailPanel,
157
158
  toggleAllRowsExpanded = instance.toggleAllRowsExpanded;
158
159
 
159
160
  var _getState = getState(),
160
161
  density = _getState.density;
161
162
 
163
+ var iconButtonProps = muiExpandAllButtonProps instanceof Function ? muiExpandAllButtonProps({
164
+ instance: instance
165
+ }) : muiExpandAllButtonProps;
162
166
  return React.createElement(Tooltip, {
163
167
  arrow: true,
164
168
  enterDelay: 1000,
165
169
  enterNextDelay: 1000,
166
170
  title: localization.expandAll
167
- }, React.createElement(IconButton, {
171
+ }, React.createElement(IconButton, Object.assign({
168
172
  "aria-label": localization.expandAll,
169
173
  disabled: !getCanSomeRowsExpand() && !renderDetailPanel,
170
174
  onClick: function onClick() {
171
175
  return toggleAllRowsExpanded(!getIsAllRowsExpanded());
172
- },
173
- sx: {
176
+ }
177
+ }, iconButtonProps, {
178
+ sx: _extends({
174
179
  height: density === 'compact' ? '1.75rem' : '2.25rem',
175
180
  width: density === 'compact' ? '1.75rem' : '2.25rem'
176
- }
177
- }, React.createElement(KeyboardDoubleArrowDownIcon, {
181
+ }, iconButtonProps == null ? void 0 : iconButtonProps.sx)
182
+ }), React.createElement(KeyboardDoubleArrowDownIcon, {
178
183
  style: {
179
184
  transform: "rotate(" + (getIsAllRowsExpanded() ? -180 : getIsSomeRowsExpanded() ? -90 : 0) + "deg)",
180
185
  transition: 'transform 0.2s'
@@ -189,12 +194,18 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
189
194
  _instance$options = instance.options,
190
195
  ExpandMoreIcon = _instance$options.icons.ExpandMoreIcon,
191
196
  localization = _instance$options.localization,
197
+ muiExpandButtonProps = _instance$options.muiExpandButtonProps,
192
198
  onExpandChanged = _instance$options.onExpandChanged,
193
199
  renderDetailPanel = _instance$options.renderDetailPanel;
194
200
 
195
201
  var _getState = getState(),
196
202
  density = _getState.density;
197
203
 
204
+ var iconButtonProps = muiExpandButtonProps instanceof Function ? muiExpandButtonProps({
205
+ instance: instance,
206
+ row: row
207
+ }) : muiExpandButtonProps;
208
+
198
209
  var handleToggleExpand = function handleToggleExpand(event) {
199
210
  row.toggleExpanded();
200
211
  onExpandChanged == null ? void 0 : onExpandChanged({
@@ -209,15 +220,16 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
209
220
  enterDelay: 1000,
210
221
  enterNextDelay: 1000,
211
222
  title: localization.expand
212
- }, React.createElement(IconButton, {
223
+ }, React.createElement(IconButton, Object.assign({
213
224
  "aria-label": localization.expand,
214
225
  disabled: !row.getCanExpand() && !renderDetailPanel,
215
- onClick: handleToggleExpand,
216
- sx: {
226
+ onClick: handleToggleExpand
227
+ }, iconButtonProps, {
228
+ sx: _extends({
217
229
  height: density === 'compact' ? '1.75rem' : '2.25rem',
218
230
  width: density === 'compact' ? '1.75rem' : '2.25rem'
219
- }
220
- }, React.createElement(ExpandMoreIcon, {
231
+ }, iconButtonProps == null ? void 0 : iconButtonProps.sx)
232
+ }), React.createElement(ExpandMoreIcon, {
221
233
  style: {
222
234
  transform: "rotate(" + (!row.getCanExpand() && !renderDetailPanel ? -90 : row.getIsExpanded() ? -180 : 0) + "deg)",
223
235
  transition: 'transform 0.2s'
@@ -619,6 +631,17 @@ var reorderColumn = function reorderColumn(movingColumn, receivingColumn, column
619
631
  columnOrder.splice(columnOrder.indexOf(receivingColumn.id), 0, columnOrder.splice(columnOrder.indexOf(movingColumn.id), 1)[0]);
620
632
  setColumnOrder([].concat(columnOrder));
621
633
  };
634
+ var getLeadingDisplayColumnIds = function getLeadingDisplayColumnIds(props) {
635
+ return [(props.positionActionsColumn === 'first' && props.enableRowActions || props.enableEditing && props.editingMode === 'row') && 'mrt-row-actions', (props.enableExpanding || props.enableGrouping) && 'mrt-expand', props.enableRowSelection && 'mrt-select', props.enableRowNumbers && 'mrt-row-numbers'].filter(Boolean);
636
+ };
637
+ var getTrailingDisplayColumnIds = function getTrailingDisplayColumnIds(props) {
638
+ return [(props.positionActionsColumn === 'last' && props.enableRowActions || props.enableEditing && props.editingMode === 'row') && 'mrt-row-actions'];
639
+ };
640
+ var getDefaultColumnOrderIds = function getDefaultColumnOrderIds(props) {
641
+ return [].concat(getLeadingDisplayColumnIds(props), getAllLeafColumnDefs(props.columns).map(function (c) {
642
+ return c.id;
643
+ }), getTrailingDisplayColumnIds(props)).filter(Boolean);
644
+ };
622
645
 
623
646
  var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
624
647
  var _column$columns2;
@@ -804,7 +827,7 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
804
827
  onClick: hideAllColumns
805
828
  }, localization.hideAll), !isSubMenu && enableColumnOrdering && React.createElement(Button, {
806
829
  onClick: function onClick() {
807
- return instance.resetColumnOrder();
830
+ return instance.setColumnOrder(getDefaultColumnOrderIds(instance.options));
808
831
  }
809
832
  }, localization.resetOrder), !isSubMenu && enablePinning && React.createElement(Button, {
810
833
  disabled: !getIsSomeColumnsPinned(),
@@ -1267,11 +1290,13 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1267
1290
  selectAll = _ref.selectAll,
1268
1291
  instance = _ref.instance;
1269
1292
  var getRowModel = instance.getRowModel,
1293
+ getPaginationRowModel = instance.getPaginationRowModel,
1270
1294
  getSelectedRowModel = instance.getSelectedRowModel,
1271
1295
  getState = instance.getState,
1272
1296
  _instance$options = instance.options,
1273
1297
  localization = _instance$options.localization,
1274
1298
  muiSelectCheckboxProps = _instance$options.muiSelectCheckboxProps,
1299
+ muiSelectAllCheckboxProps = _instance$options.muiSelectAllCheckboxProps,
1275
1300
  onRowSelectionChanged = _instance$options.onRowSelectionChanged,
1276
1301
  onRowSelectAllChanged = _instance$options.onRowSelectAllChanged,
1277
1302
  selectAllMode = _instance$options.selectAllMode;
@@ -1289,7 +1314,7 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1289
1314
 
1290
1315
  onRowSelectAllChanged == null ? void 0 : onRowSelectAllChanged({
1291
1316
  event: event,
1292
- selectedRows: event.target.checked ? getRowModel().flatRows : [],
1317
+ selectedRows: event.target.checked ? selectAllMode === 'all' ? getRowModel().flatRows : getPaginationRowModel().flatRows : [],
1293
1318
  instance: instance
1294
1319
  });
1295
1320
  } else if (row) {
@@ -1305,8 +1330,9 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1305
1330
  }
1306
1331
  };
1307
1332
 
1308
- var checkboxProps = muiSelectCheckboxProps instanceof Function ? muiSelectCheckboxProps({
1309
- isSelectAll: !!selectAll,
1333
+ var checkboxProps = selectAll ? muiSelectAllCheckboxProps instanceof Function ? muiSelectAllCheckboxProps({
1334
+ instance: instance
1335
+ }) : muiSelectAllCheckboxProps : muiSelectCheckboxProps instanceof Function ? muiSelectCheckboxProps({
1310
1336
  row: row,
1311
1337
  instance: instance
1312
1338
  }) : muiSelectCheckboxProps;
@@ -1585,7 +1611,7 @@ var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
1585
1611
  }, React.createElement(Tooltip, {
1586
1612
  arrow: true,
1587
1613
  title: localization.changeSearchMode
1588
- }, React.createElement("span", null, React.createElement(IconButton, {
1614
+ }, React.createElement(IconButton, {
1589
1615
  "aria-label": localization.changeSearchMode,
1590
1616
  onClick: handleGlobalFilterMenuOpen,
1591
1617
  size: "small",
@@ -1593,7 +1619,7 @@ var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
1593
1619
  height: '1.75rem',
1594
1620
  width: '1.75rem'
1595
1621
  }
1596
- }, React.createElement(SearchIcon, null))))),
1622
+ }, React.createElement(SearchIcon, null)))),
1597
1623
  endAdornment: React.createElement(InputAdornment, {
1598
1624
  position: "end"
1599
1625
  }, React.createElement(IconButton, {
@@ -1604,11 +1630,7 @@ var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
1604
1630
  title: localization.clearSearch
1605
1631
  }, React.createElement(CloseIcon, null)))
1606
1632
  }
1607
- }, textFieldProps, {
1608
- sx: _extends({
1609
- justifySelf: 'end'
1610
- }, textFieldProps == null ? void 0 : textFieldProps.sx)
1611
- })), React.createElement(MRT_FilterOptionMenu, {
1633
+ }, textFieldProps)), React.createElement(MRT_FilterOptionMenu, {
1612
1634
  anchorEl: anchorEl,
1613
1635
  setAnchorEl: setAnchorEl,
1614
1636
  instance: instance
@@ -1630,8 +1652,8 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
1630
1652
  renderToolbarInternalActions = _instance$options.renderToolbarInternalActions;
1631
1653
  return React.createElement(Box, {
1632
1654
  sx: {
1633
- display: 'flex',
1634
1655
  alignItems: 'center',
1656
+ display: 'flex',
1635
1657
  zIndex: 3
1636
1658
  }
1637
1659
  }, (_renderToolbarInterna = renderToolbarInternalActions == null ? void 0 : renderToolbarInternalActions({
@@ -1657,19 +1679,23 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
1657
1679
  };
1658
1680
 
1659
1681
  var MRT_TablePagination = function MRT_TablePagination(_ref) {
1660
- var instance = _ref.instance;
1682
+ var instance = _ref.instance,
1683
+ position = _ref.position;
1661
1684
  var getPrePaginationRowModel = instance.getPrePaginationRowModel,
1662
1685
  getState = instance.getState,
1663
1686
  setPageIndex = instance.setPageIndex,
1664
1687
  setPageSize = instance.setPageSize,
1665
- muiTablePaginationProps = instance.options.muiTablePaginationProps;
1688
+ _instance$options = instance.options,
1689
+ muiTablePaginationProps = _instance$options.muiTablePaginationProps,
1690
+ enableToolbarInternalActions = _instance$options.enableToolbarInternalActions;
1666
1691
 
1667
1692
  var _getState = getState(),
1668
1693
  _getState$pagination = _getState.pagination,
1669
1694
  _getState$pagination$ = _getState$pagination.pageSize,
1670
1695
  pageSize = _getState$pagination$ === void 0 ? 10 : _getState$pagination$,
1671
1696
  _getState$pagination$2 = _getState$pagination.pageIndex,
1672
- pageIndex = _getState$pagination$2 === void 0 ? 0 : _getState$pagination$2;
1697
+ pageIndex = _getState$pagination$2 === void 0 ? 0 : _getState$pagination$2,
1698
+ showGlobalFilter = _getState.showGlobalFilter;
1673
1699
 
1674
1700
  var tablePaginationProps = muiTablePaginationProps instanceof Function ? muiTablePaginationProps({
1675
1701
  instance: instance
@@ -1705,6 +1731,7 @@ var MRT_TablePagination = function MRT_TablePagination(_ref) {
1705
1731
  }, tablePaginationProps, {
1706
1732
  sx: _extends({
1707
1733
  m: '0 0.5rem',
1734
+ mt: position === 'top' && enableToolbarInternalActions && !showGlobalFilter ? '3.5rem' : undefined,
1708
1735
  position: 'relative',
1709
1736
  zIndex: 2
1710
1737
  }, tablePaginationProps == null ? void 0 : tablePaginationProps.sx)
@@ -1807,12 +1834,11 @@ var commonToolbarStyles = function commonToolbarStyles(_ref) {
1807
1834
  overflow: 'hidden',
1808
1835
  p: '0 !important',
1809
1836
  transition: 'all 0.2s ease-in-out',
1810
- width: '100%',
1811
1837
  zIndex: 1
1812
1838
  };
1813
1839
  };
1814
1840
  var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
1815
- var _renderToolbarCustomA;
1841
+ var _renderToolbarTopCust;
1816
1842
 
1817
1843
  var instance = _ref2.instance;
1818
1844
  var getState = instance.getState,
@@ -1820,13 +1846,12 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
1820
1846
  enableGlobalFilter = _instance$options.enableGlobalFilter,
1821
1847
  enablePagination = _instance$options.enablePagination,
1822
1848
  enableToolbarInternalActions = _instance$options.enableToolbarInternalActions,
1823
- tableId = _instance$options.tableId,
1824
1849
  muiTableToolbarTopProps = _instance$options.muiTableToolbarTopProps,
1825
- positionPagination = _instance$options.positionPagination,
1826
1850
  positionGlobalFilter = _instance$options.positionGlobalFilter,
1827
- positionToolbarActions = _instance$options.positionToolbarActions,
1851
+ positionPagination = _instance$options.positionPagination,
1828
1852
  positionToolbarAlertBanner = _instance$options.positionToolbarAlertBanner,
1829
- renderToolbarCustomActions = _instance$options.renderToolbarCustomActions;
1853
+ renderToolbarTopCustomActions = _instance$options.renderToolbarTopCustomActions,
1854
+ tableId = _instance$options.tableId;
1830
1855
 
1831
1856
  var _getState = getState(),
1832
1857
  isFullScreen = _getState.isFullScreen,
@@ -1836,7 +1861,7 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
1836
1861
  var toolbarProps = muiTableToolbarTopProps instanceof Function ? muiTableToolbarTopProps({
1837
1862
  instance: instance
1838
1863
  }) : muiTableToolbarTopProps;
1839
- var stackAlertBanner = isMobile || positionToolbarAlertBanner === 'top' && (!!renderToolbarCustomActions || showGlobalFilter);
1864
+ var stackAlertBanner = isMobile || positionToolbarAlertBanner === 'top' && (!!renderToolbarTopCustomActions || showGlobalFilter);
1840
1865
  return React.createElement(Toolbar, Object.assign({
1841
1866
  id: "mrt-" + tableId + "-toolbar-top",
1842
1867
  variant: "dense"
@@ -1855,23 +1880,27 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
1855
1880
  }), React.createElement(Box, {
1856
1881
  sx: {
1857
1882
  alignItems: 'flex-start',
1883
+ boxSizing: 'border-box',
1858
1884
  display: 'flex',
1859
1885
  justifyContent: 'space-between',
1860
1886
  p: '0.5rem',
1861
1887
  position: stackAlertBanner ? 'relative' : 'absolute',
1862
1888
  right: 0,
1863
1889
  top: 0,
1864
- width: renderToolbarCustomActions ? '100%' : undefined
1890
+ width: '100%'
1865
1891
  }
1866
1892
  }, enableGlobalFilter && positionGlobalFilter === 'left' && React.createElement(MRT_SearchTextField, {
1867
1893
  instance: instance
1868
- }), (_renderToolbarCustomA = renderToolbarCustomActions == null ? void 0 : renderToolbarCustomActions({
1894
+ }), (_renderToolbarTopCust = renderToolbarTopCustomActions == null ? void 0 : renderToolbarTopCustomActions({
1869
1895
  instance: instance
1870
- })) != null ? _renderToolbarCustomA : React.createElement("span", null), enableToolbarInternalActions && positionToolbarActions === 'top' && React.createElement(MRT_ToolbarInternalButtons, {
1896
+ })) != null ? _renderToolbarTopCust : React.createElement("span", null), enableToolbarInternalActions ? React.createElement(MRT_ToolbarInternalButtons, {
1871
1897
  instance: instance
1872
- })), React.createElement("div", null, enablePagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, {
1898
+ }) : enableGlobalFilter && positionGlobalFilter === 'right' && React.createElement(MRT_SearchTextField, {
1873
1899
  instance: instance
1874
- })), React.createElement(MRT_LinearProgressBar, {
1900
+ })), enablePagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, {
1901
+ instance: instance,
1902
+ position: "top"
1903
+ }), React.createElement(MRT_LinearProgressBar, {
1875
1904
  alignTo: "bottom",
1876
1905
  instance: instance
1877
1906
  }));
@@ -1881,14 +1910,12 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1881
1910
  var instance = _ref.instance;
1882
1911
  var getState = instance.getState,
1883
1912
  _instance$options = instance.options,
1884
- enableToolbarInternalActions = _instance$options.enableToolbarInternalActions,
1885
- tableId = _instance$options.tableId,
1886
1913
  enablePagination = _instance$options.enablePagination,
1887
1914
  muiTableToolbarBottomProps = _instance$options.muiTableToolbarBottomProps,
1888
1915
  positionPagination = _instance$options.positionPagination,
1889
- positionToolbarActions = _instance$options.positionToolbarActions,
1890
1916
  positionToolbarAlertBanner = _instance$options.positionToolbarAlertBanner,
1891
- renderToolbarCustomActions = _instance$options.renderToolbarCustomActions;
1917
+ renderToolbarBottomCustomActions = _instance$options.renderToolbarBottomCustomActions,
1918
+ tableId = _instance$options.tableId;
1892
1919
 
1893
1920
  var _getState = getState(),
1894
1921
  isFullScreen = _getState.isFullScreen;
@@ -1897,7 +1924,7 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1897
1924
  var toolbarProps = muiTableToolbarBottomProps instanceof Function ? muiTableToolbarBottomProps({
1898
1925
  instance: instance
1899
1926
  }) : muiTableToolbarBottomProps;
1900
- var stackAlertBanner = isMobile || positionToolbarAlertBanner === 'bottom' && positionToolbarActions === 'bottom' || positionToolbarAlertBanner === 'bottom' && !!renderToolbarCustomActions && positionToolbarActions === 'bottom';
1927
+ var stackAlertBanner = isMobile || positionToolbarAlertBanner === 'bottom' && !!renderToolbarBottomCustomActions;
1901
1928
  return React.createElement(Toolbar, Object.assign({
1902
1929
  id: "mrt-" + tableId + "-toolbar-bottom",
1903
1930
  variant: "dense"
@@ -1920,16 +1947,26 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1920
1947
  sx: {
1921
1948
  display: 'flex',
1922
1949
  justifyContent: 'space-between',
1923
- width: '100%',
1950
+ width: '100%'
1951
+ }
1952
+ }, renderToolbarBottomCustomActions ? React.createElement(Box, {
1953
+ sx: {
1954
+ p: '0.5rem'
1955
+ }
1956
+ }, renderToolbarBottomCustomActions({
1957
+ instance: instance
1958
+ })) : React.createElement("span", null), React.createElement(Box, {
1959
+ sx: {
1960
+ display: 'flex',
1961
+ justifyContent: 'flex-end',
1924
1962
  position: stackAlertBanner ? 'relative' : 'absolute',
1925
1963
  right: 0,
1926
1964
  top: 0
1927
1965
  }
1928
- }, enableToolbarInternalActions && positionToolbarActions === 'bottom' ? React.createElement(MRT_ToolbarInternalButtons, {
1929
- instance: instance
1930
- }) : React.createElement("span", null), enablePagination && ['bottom', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, {
1931
- instance: instance
1932
- })));
1966
+ }, enablePagination && ['bottom', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, {
1967
+ instance: instance,
1968
+ position: "bottom"
1969
+ }))));
1933
1970
  };
1934
1971
 
1935
1972
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
@@ -3261,7 +3298,7 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
3261
3298
  };
3262
3299
 
3263
3300
  var MRT_TableRoot = function MRT_TableRoot(props) {
3264
- var _initialState$current, _initialState$current2, _initialState$density, _initialState$isFullS, _initialState$showFil, _initialState$showGlo, _props$globalFilterFn, _props$state3, _props$state4, _props$onCurrentEditi, _props$onCurrentEditi2, _props$onCurrentFilte, _props$onCurrentGloba, _props$onDensityChang, _props$onIsFullScreen, _props$onShowFiltersC, _props$onShowGlobalFi;
3301
+ var _initialState$columnO, _initialState$current, _initialState$current2, _initialState$density, _initialState$isFullS, _initialState$showFil, _initialState$showGlo, _props$globalFilterFn, _props$state3, _props$state4, _props$onCurrentEditi, _props$onCurrentEditi2, _props$onCurrentFilte, _props$onCurrentGloba, _props$onDensityChang, _props$onIsFullScreen, _props$onShowFiltersC, _props$onShowGlobalFi;
3265
3302
 
3266
3303
  var _useState = useState(props.tableId),
3267
3304
  tableId = _useState[0],
@@ -3272,15 +3309,11 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3272
3309
 
3273
3310
  return setIdPrefix((_props$tableId = props.tableId) != null ? _props$tableId : Math.random().toString(36).substring(2, 9));
3274
3311
  }, [props.tableId]);
3275
- var showActionColumn = props.enableRowActions || props.enableEditing && props.editingMode === 'row';
3276
- var showExpandColumn = props.enableExpanding || props.enableGrouping;
3277
3312
  var initialState = useMemo(function () {
3278
3313
  var _props$initialState, _initState$columnOrde;
3279
3314
 
3280
3315
  var initState = (_props$initialState = props.initialState) != null ? _props$initialState : {};
3281
- initState.columnOrder = ((_initState$columnOrde = initState == null ? void 0 : initState.columnOrder) != null ? _initState$columnOrde : props.enableColumnOrdering || props.enableGrouping) ? [showActionColumn && 'mrt-row-actions', showExpandColumn && 'mrt-expand', props.enableRowSelection && 'mrt-select', props.enableRowNumbers && 'mrt-row-numbers'].concat(getAllLeafColumnDefs(props.columns).map(function (c) {
3282
- return c.id;
3283
- })).filter(Boolean) : [];
3316
+ initState.columnOrder = (_initState$columnOrde = initState.columnOrder) != null ? _initState$columnOrde : getDefaultColumnOrderIds(props);
3284
3317
 
3285
3318
  if (!props.enablePersistentState || !props.tableId) {
3286
3319
  return initState;
@@ -3307,43 +3340,47 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3307
3340
  return initState;
3308
3341
  }, []);
3309
3342
 
3310
- var _useState2 = useState((_initialState$current = initialState == null ? void 0 : initialState.currentEditingCell) != null ? _initialState$current : null),
3311
- currentEditingCell = _useState2[0],
3312
- setCurrentEditingCell = _useState2[1];
3343
+ var _useState2 = useState((_initialState$columnO = initialState.columnOrder) != null ? _initialState$columnO : []),
3344
+ columnOrder = _useState2[0],
3345
+ setColumnOrder = _useState2[1];
3346
+
3347
+ var _useState3 = useState((_initialState$current = initialState == null ? void 0 : initialState.currentEditingCell) != null ? _initialState$current : null),
3348
+ currentEditingCell = _useState3[0],
3349
+ setCurrentEditingCell = _useState3[1];
3313
3350
 
3314
- var _useState3 = useState((_initialState$current2 = initialState == null ? void 0 : initialState.currentEditingRow) != null ? _initialState$current2 : null),
3315
- currentEditingRow = _useState3[0],
3316
- setCurrentEditingRow = _useState3[1];
3351
+ var _useState4 = useState((_initialState$current2 = initialState == null ? void 0 : initialState.currentEditingRow) != null ? _initialState$current2 : null),
3352
+ currentEditingRow = _useState4[0],
3353
+ setCurrentEditingRow = _useState4[1];
3317
3354
 
3318
- var _useState4 = useState((_initialState$density = initialState == null ? void 0 : initialState.density) != null ? _initialState$density : 'comfortable'),
3319
- density = _useState4[0],
3320
- setDensity = _useState4[1];
3355
+ var _useState5 = useState((_initialState$density = initialState == null ? void 0 : initialState.density) != null ? _initialState$density : 'comfortable'),
3356
+ density = _useState5[0],
3357
+ setDensity = _useState5[1];
3321
3358
 
3322
- var _useState5 = useState((_initialState$isFullS = initialState == null ? void 0 : initialState.isFullScreen) != null ? _initialState$isFullS : false),
3323
- isFullScreen = _useState5[0],
3324
- setIsFullScreen = _useState5[1];
3359
+ var _useState6 = useState((_initialState$isFullS = initialState == null ? void 0 : initialState.isFullScreen) != null ? _initialState$isFullS : false),
3360
+ isFullScreen = _useState6[0],
3361
+ setIsFullScreen = _useState6[1];
3325
3362
 
3326
- var _useState6 = useState((_initialState$showFil = initialState == null ? void 0 : initialState.showFilters) != null ? _initialState$showFil : false),
3327
- showFilters = _useState6[0],
3328
- setShowFilters = _useState6[1];
3363
+ var _useState7 = useState((_initialState$showFil = initialState == null ? void 0 : initialState.showFilters) != null ? _initialState$showFil : false),
3364
+ showFilters = _useState7[0],
3365
+ setShowFilters = _useState7[1];
3329
3366
 
3330
- var _useState7 = useState((_initialState$showGlo = initialState == null ? void 0 : initialState.showGlobalFilter) != null ? _initialState$showGlo : false),
3331
- showGlobalFilter = _useState7[0],
3332
- setShowGlobalFilter = _useState7[1];
3367
+ var _useState8 = useState((_initialState$showGlo = initialState == null ? void 0 : initialState.showGlobalFilter) != null ? _initialState$showGlo : false),
3368
+ showGlobalFilter = _useState8[0],
3369
+ setShowGlobalFilter = _useState8[1];
3333
3370
 
3334
- var _useState8 = useState(function () {
3371
+ var _useState9 = useState(function () {
3335
3372
  return Object.assign.apply(Object, [{}].concat(getAllLeafColumnDefs(props.columns).map(function (c) {
3336
3373
  var _ref, _c$filterFn, _initialState$current3, _c$filterSelectOption, _ref2;
3337
3374
 
3338
3375
  return _ref2 = {}, _ref2[c.id] = (_ref = (_c$filterFn = c.filterFn) != null ? _c$filterFn : initialState == null ? void 0 : (_initialState$current3 = initialState.currentFilterFns) == null ? void 0 : _initialState$current3[c.id]) != null ? _ref : !!((_c$filterSelectOption = c.filterSelectOptions) != null && _c$filterSelectOption.length) ? 'equals' : 'fuzzy', _ref2;
3339
3376
  })));
3340
3377
  }),
3341
- currentFilterFns = _useState8[0],
3342
- setCurrentFilterFns = _useState8[1];
3378
+ currentFilterFns = _useState9[0],
3379
+ setCurrentFilterFns = _useState9[1];
3343
3380
 
3344
- var _useState9 = useState((_props$globalFilterFn = props.globalFilterFn) != null ? _props$globalFilterFn : 'fuzzy'),
3345
- currentGlobalFilterFn = _useState9[0],
3346
- setCurrentGlobalFilterFn = _useState9[1];
3381
+ var _useState10 = useState((_props$globalFilterFn = props.globalFilterFn) != null ? _props$globalFilterFn : 'fuzzy'),
3382
+ currentGlobalFilterFn = _useState10[0],
3383
+ setCurrentGlobalFilterFn = _useState10[1];
3347
3384
 
3348
3385
  var table = useMemo(function () {
3349
3386
  return (// @ts-ignore
@@ -3360,16 +3397,14 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3360
3397
  getSubRows: function getSubRows(row) {
3361
3398
  return row == null ? void 0 : row.subRows;
3362
3399
  },
3363
- tableId: tableId,
3364
- initialState: initialState
3400
+ tableId: tableId
3365
3401
  })
3366
3402
  );
3367
3403
  }, []);
3368
-
3369
- var _useMemo = useMemo(function () {
3404
+ var displayColumns = useMemo(function () {
3370
3405
  var _props$localization, _props$localization2, _props$localization3, _props$localization5;
3371
3406
 
3372
- var leadingDisplayColumns = [showActionColumn && createDisplayColumn(table, {
3407
+ return [columnOrder.includes('mrt-row-actions') && createDisplayColumn(table, {
3373
3408
  Cell: function Cell(_ref3) {
3374
3409
  var cell = _ref3.cell;
3375
3410
  return React.createElement(MRT_ToggleRowActionMenuButton, {
@@ -3382,7 +3417,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3382
3417
  muiTableBodyCellProps: props.muiTableBodyCellProps,
3383
3418
  muiTableHeadCellProps: props.muiTableHeadCellProps,
3384
3419
  size: 70
3385
- }), showExpandColumn && createDisplayColumn(table, {
3420
+ }), columnOrder.includes('mrt-expand') && createDisplayColumn(table, {
3386
3421
  Cell: function Cell(_ref4) {
3387
3422
  var cell = _ref4.cell;
3388
3423
  return React.createElement(MRT_ExpandButton, {
@@ -3400,7 +3435,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3400
3435
  muiTableBodyCellProps: props.muiTableBodyCellProps,
3401
3436
  muiTableHeadCellProps: props.muiTableHeadCellProps,
3402
3437
  size: 50
3403
- }), props.enableRowSelection && createDisplayColumn(table, {
3438
+ }), columnOrder.includes('mrt-select') && createDisplayColumn(table, {
3404
3439
  Cell: function Cell(_ref5) {
3405
3440
  var cell = _ref5.cell;
3406
3441
  return React.createElement(MRT_SelectCheckbox, {
@@ -3419,7 +3454,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3419
3454
  muiTableBodyCellProps: props.muiTableBodyCellProps,
3420
3455
  muiTableHeadCellProps: props.muiTableHeadCellProps,
3421
3456
  size: 50
3422
- }), props.enableRowNumbers && createDisplayColumn(table, {
3457
+ }), columnOrder.includes('mrt-row-numbers') && createDisplayColumn(table, {
3423
3458
  Cell: function Cell(_ref6) {
3424
3459
  var cell = _ref6.cell;
3425
3460
  return cell.row.index + 1;
@@ -3435,23 +3470,11 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3435
3470
  muiTableHeadCellProps: props.muiTableHeadCellProps,
3436
3471
  size: 50
3437
3472
  })].filter(Boolean);
3438
- var trailingDisplayColumns = [];
3439
-
3440
- if (props.enableRowActions && props.positionActionsColumn === 'last') {
3441
- trailingDisplayColumns.push.apply(trailingDisplayColumns, leadingDisplayColumns.splice(leadingDisplayColumns.findIndex(function (col) {
3442
- return col.id === 'mrt-row-actions';
3443
- }), 1));
3444
- }
3445
-
3446
- return [leadingDisplayColumns, trailingDisplayColumns];
3447
- }, [props.editingMode, props.enableEditing, props.enableExpandAll, props.enableExpanding, props.enableGrouping, props.enableRowActions, props.enableRowNumbers, props.enableRowSelection, props.enableSelectAll, props.localization, props.muiTableBodyCellProps, props.muiTableHeadCellProps, props.positionActionsColumn, table]),
3448
- leadingDisplayColumns = _useMemo[0],
3449
- trailingDisplayColumns = _useMemo[1];
3450
-
3473
+ }, [columnOrder, props.editingMode, props.enableEditing, props.enableExpandAll, props.enableExpanding, props.enableGrouping, props.enableRowActions, props.enableRowNumbers, props.enableRowSelection, props.enableSelectAll, props.localization, props.muiTableBodyCellProps, props.muiTableHeadCellProps, props.positionActionsColumn, table]);
3451
3474
  var columns = useMemo(function () {
3452
- return [].concat(leadingDisplayColumns, props.columns.map(function (column) {
3475
+ return [].concat(displayColumns, props.columns.map(function (column) {
3453
3476
  return column.columns ? createGroup(table, column, currentFilterFns) : createDataColumn(table, column, currentFilterFns);
3454
- }), trailingDisplayColumns);
3477
+ }));
3455
3478
  }, [table, props.columns, currentFilterFns]);
3456
3479
  var data = useMemo(function () {
3457
3480
  var _props$state, _props$state2;
@@ -3465,13 +3488,17 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3465
3488
  }) : props.data;
3466
3489
  }, [props.data, (_props$state3 = props.state) == null ? void 0 : _props$state3.isLoading, (_props$state4 = props.state) == null ? void 0 : _props$state4.showSkeletons]); //@ts-ignore
3467
3490
 
3468
- var instance = _extends({}, useTableInstance(table, _extends({}, props, {
3491
+ var instance = _extends({}, useTableInstance(table, _extends({
3492
+ onColumnOrderChange: setColumnOrder
3493
+ }, props, {
3469
3494
  //@ts-ignore
3470
3495
  columns: columns,
3471
3496
  data: data,
3472
3497
  //@ts-ignore
3473
3498
  globalFilterFn: currentGlobalFilterFn,
3499
+ initialState: initialState,
3474
3500
  state: _extends({
3501
+ columnOrder: columnOrder,
3475
3502
  currentEditingCell: currentEditingCell,
3476
3503
  currentEditingRow: currentEditingRow,
3477
3504
  currentFilterFns: currentFilterFns,
@@ -3532,7 +3559,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3532
3559
  }));
3533
3560
  };
3534
3561
 
3535
- var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionPagination", "positionGlobalFilter", "positionToolbarActions", "positionToolbarAlertBanner", "rowNumberMode", "selectAllMode"];
3562
+ var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "rowNumberMode", "selectAllMode"];
3536
3563
  var MaterialReactTable = (function (_ref) {
3537
3564
  var _ref$autoResetExpande = _ref.autoResetExpanded,
3538
3565
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -3574,6 +3601,8 @@ var MaterialReactTable = (function (_ref) {
3574
3601
  enablePagination = _ref$enablePagination === void 0 ? true : _ref$enablePagination,
3575
3602
  _ref$enablePinning = _ref.enablePinning,
3576
3603
  enablePinning = _ref$enablePinning === void 0 ? false : _ref$enablePinning,
3604
+ _ref$enableRowSelecti = _ref.enableRowSelection,
3605
+ enableRowSelection = _ref$enableRowSelecti === void 0 ? false : _ref$enableRowSelecti,
3577
3606
  _ref$enableSelectAll = _ref.enableSelectAll,
3578
3607
  enableSelectAll = _ref$enableSelectAll === void 0 ? true : _ref$enableSelectAll,
3579
3608
  _ref$enableSorting = _ref.enableSorting,
@@ -3596,14 +3625,12 @@ var MaterialReactTable = (function (_ref) {
3596
3625
  persistentStateMode = _ref$persistentStateM === void 0 ? 'sessionStorage' : _ref$persistentStateM,
3597
3626
  _ref$positionActionsC = _ref.positionActionsColumn,
3598
3627
  positionActionsColumn = _ref$positionActionsC === void 0 ? 'first' : _ref$positionActionsC,
3599
- _ref$positionPaginati = _ref.positionPagination,
3600
- positionPagination = _ref$positionPaginati === void 0 ? 'bottom' : _ref$positionPaginati,
3601
3628
  _ref$positionGlobalFi = _ref.positionGlobalFilter,
3602
3629
  positionGlobalFilter = _ref$positionGlobalFi === void 0 ? 'right' : _ref$positionGlobalFi,
3603
- _ref$positionToolbarA = _ref.positionToolbarActions,
3604
- positionToolbarActions = _ref$positionToolbarA === void 0 ? 'top' : _ref$positionToolbarA,
3605
- _ref$positionToolbarA2 = _ref.positionToolbarAlertBanner,
3606
- positionToolbarAlertBanner = _ref$positionToolbarA2 === void 0 ? 'top' : _ref$positionToolbarA2,
3630
+ _ref$positionPaginati = _ref.positionPagination,
3631
+ positionPagination = _ref$positionPaginati === void 0 ? 'bottom' : _ref$positionPaginati,
3632
+ _ref$positionToolbarA = _ref.positionToolbarAlertBanner,
3633
+ positionToolbarAlertBanner = _ref$positionToolbarA === void 0 ? 'top' : _ref$positionToolbarA,
3607
3634
  _ref$rowNumberMode = _ref.rowNumberMode,
3608
3635
  rowNumberMode = _ref$rowNumberMode === void 0 ? 'original' : _ref$rowNumberMode,
3609
3636
  _ref$selectAllMode = _ref.selectAllMode,
@@ -3629,6 +3656,7 @@ var MaterialReactTable = (function (_ref) {
3629
3656
  enableMultiRowSelection: enableMultiRowSelection,
3630
3657
  enablePagination: enablePagination,
3631
3658
  enablePinning: enablePinning,
3659
+ enableRowSelection: enableRowSelection,
3632
3660
  enableSelectAll: enableSelectAll,
3633
3661
  enableSorting: enableSorting,
3634
3662
  enableStickyHeader: enableStickyHeader,
@@ -3643,7 +3671,6 @@ var MaterialReactTable = (function (_ref) {
3643
3671
  positionActionsColumn: positionActionsColumn,
3644
3672
  positionGlobalFilter: positionGlobalFilter,
3645
3673
  positionPagination: positionPagination,
3646
- positionToolbarActions: positionToolbarActions,
3647
3674
  positionToolbarAlertBanner: positionToolbarAlertBanner,
3648
3675
  rowNumberMode: rowNumberMode,
3649
3676
  selectAllMode: selectAllMode