material-react-table 0.16.1 → 0.17.1

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.
package/README.md CHANGED
@@ -59,7 +59,7 @@ _All features can easily be enabled/disabled_
59
59
  - [x] Localization (i18n) support
60
60
  - [x] Manage your own state
61
61
  - [x] Pagination (supports client-side and server-side)
62
- - [x] Persistent State
62
+ - [x] Remote/Server-side sorting and filtering supported
63
63
  - [x] Row Actions
64
64
  - [x] Row Numbers
65
65
  - [x] Row Selection (checkboxes)
@@ -1,6 +1,6 @@
1
1
  import { ChangeEvent, Dispatch, FC, FocusEvent, MouseEvent, ReactNode, SetStateAction } from 'react';
2
2
  import { AlertProps, ButtonProps, CheckboxProps, IconButtonProps, LinearProgressProps, PaperProps, SkeletonProps, TableBodyProps, TableCellProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, TableProps, TableRowProps, TextFieldProps, ToolbarProps } from '@mui/material';
3
- import { Cell, Column, ColumnDef, FilterFn, FilterFnOption, Header, HeaderGroup, OnChangeFn, Overwrite, ReactTableGenerics, Row, SortingFn, SortingFnOption, TableGenerics, TableInstance, TableState, UseTableInstanceOptions, VisibilityState } from '@tanstack/react-table';
3
+ import { Cell, Column, ColumnDef, ColumnOrderState, ColumnPinningState, FilterFn, FilterFnOption, Header, HeaderGroup, OnChangeFn, Overwrite, ReactTableGenerics, Row, SortingFn, SortingFnOption, TableGenerics, TableInstance, TableState, UseTableInstanceOptions, VisibilityState } from '@tanstack/react-table';
4
4
  import { Options as VirtualizerOptions } from 'react-virtual';
5
5
  import { MRT_Localization } from './localization';
6
6
  import { MRT_Icons } from './icons';
@@ -198,7 +198,6 @@ export declare type MaterialReactTableProps<D extends Record<string, any> = {}>
198
198
  enableGlobalFilterChangeMode?: boolean;
199
199
  enableGlobalFilterRankedResults?: boolean;
200
200
  enablePagination?: boolean;
201
- enablePersistentState?: boolean;
202
201
  enableRowActions?: boolean;
203
202
  enableRowNumbers?: boolean;
204
203
  enableRowVirtualization?: boolean;
@@ -338,6 +337,14 @@ export declare type MaterialReactTableProps<D extends Record<string, any> = {}>
338
337
  filterValue: any;
339
338
  instance: MRT_TableInstance<D>;
340
339
  }) => void;
340
+ onColumnOrderChanged?: ({ columnOrder, instance, }: {
341
+ columnOrder: ColumnOrderState;
342
+ instance: MRT_TableInstance<D>;
343
+ }) => void;
344
+ onColumnPinningChanged?: ({ columnPinning, instance, }: {
345
+ columnPinning: ColumnPinningState;
346
+ instance: MRT_TableInstance<D>;
347
+ }) => void;
341
348
  onColumnVisibilityChanged?: ({ column, columnVisibility, instance, }: {
342
349
  column: MRT_Column<D>;
343
350
  columnVisibility: VisibilityState;
@@ -411,7 +418,6 @@ export declare type MaterialReactTableProps<D extends Record<string, any> = {}>
411
418
  instance: MRT_TableInstance<D>;
412
419
  showGlobalFilter: boolean;
413
420
  }) => void;
414
- persistentStateMode?: 'localStorage' | 'sessionStorage';
415
421
  positionActionsColumn?: 'first' | 'last';
416
422
  positionGlobalFilter?: 'left' | 'right';
417
423
  positionPagination?: 'bottom' | 'top' | 'both';
@@ -453,10 +459,11 @@ export declare type MaterialReactTableProps<D extends Record<string, any> = {}>
453
459
  instance: MRT_TableInstance<D>;
454
460
  }>;
455
461
  }) => ReactNode;
462
+ rowCount?: number;
456
463
  rowNumberMode?: 'original' | 'static';
457
464
  selectAllMode?: 'all' | 'page';
458
465
  tableId?: string;
459
466
  virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement>>;
460
467
  };
461
- declare const _default: <D extends Record<string, any> = {}>({ autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableColumnActions, enableColumnFilterChangeMode, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterChangeMode, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarBottom, enableToolbarInternalActions, enableToolbarTop, icons, localization, persistentStateMode, positionActionsColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, rowNumberMode, selectAllMode, ...rest }: MaterialReactTableProps<D>) => JSX.Element;
468
+ declare const _default: <D extends Record<string, any> = {}>({ autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableColumnActions, enableColumnFilterChangeMode, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterChangeMode, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarBottom, enableToolbarInternalActions, enableToolbarTop, icons, localization, positionActionsColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, rowNumberMode, selectAllMode, ...rest }: MaterialReactTableProps<D>) => JSX.Element;
462
469
  export default _default;
@@ -29,10 +29,6 @@ function _extends() {
29
29
  return _extends.apply(this, arguments);
30
30
  }
31
31
 
32
- function _objectDestructuringEmpty(obj) {
33
- if (obj == null) throw new TypeError("Cannot destructure undefined");
34
- }
35
-
36
32
  function _objectWithoutPropertiesLoose(source, excluded) {
37
33
  if (source == null) return {};
38
34
  var target = {};
@@ -3404,13 +3400,13 @@ var createDataColumn = function createDataColumn(table, column, currentFilterFns
3404
3400
  var createDisplayColumn = function createDisplayColumn(table, column) {
3405
3401
  return table.createDisplayColumn(column);
3406
3402
  };
3407
- var reorderColumn = function reorderColumn(movingColumn, receivingColumn, columnOrder, setColumnOrder) {
3403
+ var reorderColumn = function reorderColumn(movingColumn, receivingColumn, columnOrder) {
3408
3404
  if (movingColumn.getCanPin()) {
3409
3405
  movingColumn.pin(receivingColumn.getIsPinned());
3410
3406
  }
3411
3407
 
3412
3408
  columnOrder.splice(columnOrder.indexOf(receivingColumn.id), 0, columnOrder.splice(columnOrder.indexOf(movingColumn.id), 1)[0]);
3413
- setColumnOrder([].concat(columnOrder));
3409
+ return [].concat(columnOrder);
3414
3410
  };
3415
3411
  var getLeadingDisplayColumnIds = function getLeadingDisplayColumnIds(props) {
3416
3412
  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);
@@ -3437,12 +3433,10 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
3437
3433
  enableHiding = _instance$options.enableHiding,
3438
3434
  enablePinning = _instance$options.enablePinning,
3439
3435
  localization = _instance$options.localization,
3440
- onColumnVisibilityChanged = _instance$options.onColumnVisibilityChanged,
3441
3436
  setColumnOrder = instance.setColumnOrder;
3442
3437
 
3443
3438
  var _getState = getState(),
3444
- columnOrder = _getState.columnOrder,
3445
- columnVisibility = _getState.columnVisibility;
3439
+ columnOrder = _getState.columnOrder;
3446
3440
 
3447
3441
  var columnDef = column.columnDef,
3448
3442
  columnDefType = column.columnDefType;
@@ -3450,7 +3444,8 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
3450
3444
  var _useDrop = useDrop({
3451
3445
  accept: 'column',
3452
3446
  drop: function drop(movingColumn) {
3453
- return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
3447
+ var newColumnOrder = reorderColumn(movingColumn, column, columnOrder);
3448
+ setColumnOrder(newColumnOrder);
3454
3449
  }
3455
3450
  }),
3456
3451
  dropRef = _useDrop[1];
@@ -3483,12 +3478,6 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
3483
3478
  } else {
3484
3479
  column.toggleVisibility();
3485
3480
  }
3486
-
3487
- onColumnVisibilityChanged == null ? void 0 : onColumnVisibilityChanged({
3488
- column: column,
3489
- columnVisibility: columnVisibility,
3490
- instance: instance
3491
- });
3492
3481
  };
3493
3482
 
3494
3483
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.MenuItem, {
@@ -3662,7 +3651,7 @@ var commonListItemStyles = {
3662
3651
  alignItems: 'center'
3663
3652
  };
3664
3653
  var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
3665
- var _localization$sortByC, _localization$sortByC2, _localization$filterB, _localization, _localization$hideCol, _localization$showAll;
3654
+ var _columnDef$enabledCol, _localization$sortByC, _localization$sortByC2, _localization$filterB, _localization, _localization$hideCol, _localization$showAll;
3666
3655
 
3667
3656
  var anchorEl = _ref.anchorEl,
3668
3657
  header = _ref.header,
@@ -3672,12 +3661,14 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
3672
3661
  toggleAllColumnsVisible = instance.toggleAllColumnsVisible,
3673
3662
  setColumnOrder = instance.setColumnOrder,
3674
3663
  _instance$options = instance.options,
3664
+ enableColumnFilterChangeMode = _instance$options.enableColumnFilterChangeMode,
3675
3665
  enableColumnFilters = _instance$options.enableColumnFilters,
3676
3666
  enableColumnResizing = _instance$options.enableColumnResizing,
3677
3667
  enableGrouping = _instance$options.enableGrouping,
3678
3668
  enableHiding = _instance$options.enableHiding,
3679
3669
  enablePinning = _instance$options.enablePinning,
3680
3670
  enableSorting = _instance$options.enableSorting,
3671
+ enabledColumnFilterOptions = _instance$options.enabledColumnFilterOptions,
3681
3672
  _instance$options$ico = _instance$options.icons,
3682
3673
  ArrowRightIcon = _instance$options$ico.ArrowRightIcon,
3683
3674
  ClearAllIcon = _instance$options$ico.ClearAllIcon,
@@ -3777,6 +3768,9 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
3777
3768
  setShowHideColumnsMenuAnchorEl(event.currentTarget);
3778
3769
  };
3779
3770
 
3771
+ var isSelectFilter = !!columnDef.filterSelectOptions;
3772
+ var allowedColumnFilterOptions = (_columnDef$enabledCol = columnDef == null ? void 0 : columnDef.enabledColumnFilterOptions) != null ? _columnDef$enabledCol : enabledColumnFilterOptions;
3773
+ var showFilterModeSubMenu = enableColumnFilterChangeMode && columnDef.enableColumnFilterChangeMode !== false && !isSelectFilter && (allowedColumnFilterOptions === undefined || !!(allowedColumnFilterOptions != null && allowedColumnFilterOptions.length));
3780
3774
  return React__default.createElement(material.Menu, {
3781
3775
  anchorEl: anchorEl,
3782
3776
  open: !!anchorEl,
@@ -3826,21 +3820,21 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
3826
3820
  sx: commonMenuItemStyles$1
3827
3821
  }, React__default.createElement(material.Box, {
3828
3822
  sx: commonListItemStyles
3829
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(FilterListIcon, null)), (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(columnDef.header))), !columnDef.filterSelectOptions && React__default.createElement(material.IconButton, {
3823
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(FilterListIcon, null)), (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(columnDef.header))), showFilterModeSubMenu && React__default.createElement(material.IconButton, {
3830
3824
  onClick: handleOpenFilterModeMenu,
3831
3825
  onMouseEnter: handleOpenFilterModeMenu,
3832
3826
  size: "small",
3833
3827
  sx: {
3834
3828
  p: 0
3835
3829
  }
3836
- }, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_FilterOptionMenu, {
3830
+ }, React__default.createElement(ArrowRightIcon, null))), showFilterModeSubMenu && React__default.createElement(MRT_FilterOptionMenu, {
3837
3831
  anchorEl: filterMenuAnchorEl,
3838
3832
  header: header,
3839
3833
  key: 2,
3840
3834
  onSelect: handleFilterByColumn,
3841
3835
  setAnchorEl: setFilterMenuAnchorEl,
3842
3836
  instance: instance
3843
- })], enableGrouping && column.getCanGroup() && [React__default.createElement(material.MenuItem, {
3837
+ })].filter(Boolean), enableGrouping && column.getCanGroup() && [React__default.createElement(material.MenuItem, {
3844
3838
  divider: enablePinning,
3845
3839
  key: 0,
3846
3840
  onClick: handleGroupByColumn,
@@ -5466,7 +5460,8 @@ var MRT_TablePagination = function MRT_TablePagination(_ref) {
5466
5460
  setPageSize = instance.setPageSize,
5467
5461
  _instance$options = instance.options,
5468
5462
  muiTablePaginationProps = _instance$options.muiTablePaginationProps,
5469
- enableToolbarInternalActions = _instance$options.enableToolbarInternalActions;
5463
+ enableToolbarInternalActions = _instance$options.enableToolbarInternalActions,
5464
+ rowCount = _instance$options.rowCount;
5470
5465
 
5471
5466
  var _getState = getState(),
5472
5467
  _getState$pagination = _getState.pagination,
@@ -5484,7 +5479,8 @@ var MRT_TablePagination = function MRT_TablePagination(_ref) {
5484
5479
  setPageSize(+event.target.value);
5485
5480
  };
5486
5481
 
5487
- var showFirstLastPageButtons = getPrePaginationRowModel().rows.length / pageSize > 2;
5482
+ var totalRowCount = rowCount != null ? rowCount : getPrePaginationRowModel().rows.length;
5483
+ var showFirstLastPageButtons = totalRowCount / pageSize > 2;
5488
5484
  return React__default.createElement(material.TablePagination, Object.assign({
5489
5485
  SelectProps: {
5490
5486
  sx: {
@@ -5497,7 +5493,7 @@ var MRT_TablePagination = function MRT_TablePagination(_ref) {
5497
5493
  }
5498
5494
  },
5499
5495
  component: "div",
5500
- count: getPrePaginationRowModel().rows.length,
5496
+ count: totalRowCount,
5501
5497
  onPageChange: function onPageChange(_, newPage) {
5502
5498
  return setPageIndex(newPage);
5503
5499
  },
@@ -5751,7 +5747,7 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
5751
5747
  };
5752
5748
 
5753
5749
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5754
- var _localization$filterB, _columnDef$enabledCol, _allowedColumnFilterO, _localization$filterM, _localization, _localization$clearFi, _columnDef$filterSele;
5750
+ var _localization$filterB, _columnDef$enabledCol, _localization$filterM, _localization, _localization$clearFi, _columnDef$filterSele;
5755
5751
 
5756
5752
  var header = _ref.header,
5757
5753
  inputIndex = _ref.inputIndex,
@@ -5884,7 +5880,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5884
5880
  localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))] : '';
5885
5881
  var filterPlaceholder = inputIndex === undefined ? (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(columnDef.header)) : inputIndex === 0 ? localization.min : inputIndex === 1 ? localization.max : '';
5886
5882
  var allowedColumnFilterOptions = (_columnDef$enabledCol = columnDef == null ? void 0 : columnDef.enabledColumnFilterOptions) != null ? _columnDef$enabledCol : enabledColumnFilterOptions;
5887
- var allowColumnChangeMode = enableColumnFilterChangeMode && columnDef.enableColumnFilterChangeMode !== false;
5883
+ var showChangeModeButton = enableColumnFilterChangeMode && columnDef.enableColumnFilterChangeMode !== false && !isSelectFilter && !inputIndex && (allowedColumnFilterOptions === undefined || !!(allowedColumnFilterOptions != null && allowedColumnFilterOptions.length));
5888
5884
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TextField, Object.assign({
5889
5885
  fullWidth: true,
5890
5886
  id: filterId,
@@ -5896,7 +5892,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5896
5892
  },
5897
5893
  title: filterPlaceholder
5898
5894
  },
5899
- helperText: allowColumnChangeMode && !inputIndex && (allowedColumnFilterOptions === undefined || ((_allowedColumnFilterO = allowedColumnFilterOptions == null ? void 0 : allowedColumnFilterOptions.length) != null ? _allowedColumnFilterO : 0) > 0) ? React__default.createElement("label", {
5895
+ helperText: showChangeModeButton ? React__default.createElement("label", {
5900
5896
  htmlFor: filterId
5901
5897
  }, filterFn instanceof Function ? (_localization$filterM = localization.filterMode.replace('{filterType}', // @ts-ignore
5902
5898
  (_localization = localization["filter" + (filterFn.name.charAt(0).toUpperCase() + filterFn.name.slice(1))]) != null ? _localization : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
@@ -5918,7 +5914,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5918
5914
  value: filterValue != null ? filterValue : '',
5919
5915
  variant: "standard",
5920
5916
  InputProps: {
5921
- startAdornment: allowColumnChangeMode && !isSelectFilter && !inputIndex && (allowedColumnFilterOptions === undefined || !!(allowedColumnFilterOptions != null && allowedColumnFilterOptions.length)) ? React__default.createElement(material.InputAdornment, {
5917
+ startAdornment: showChangeModeButton ? React__default.createElement(material.InputAdornment, {
5922
5918
  position: "start"
5923
5919
  }, React__default.createElement(material.Tooltip, {
5924
5920
  arrow: true,
@@ -6082,6 +6078,7 @@ var MRT_TableHeadCellResizeHandle = function MRT_TableHeadCellResizeHandle(_ref)
6082
6078
  var getState = instance.getState;
6083
6079
 
6084
6080
  var _getState = getState(),
6081
+ density = _getState.density,
6085
6082
  showFilters = _getState.showFilters;
6086
6083
 
6087
6084
  var column = header.column;
@@ -6098,13 +6095,14 @@ var MRT_TableHeadCellResizeHandle = function MRT_TableHeadCellResizeHandle(_ref)
6098
6095
  borderRightWidth: '2px',
6099
6096
  cursor: 'col-resize',
6100
6097
  height: showFilters && columnDefType === 'data' ? '4rem' : '2rem',
6098
+ mr: density === 'compact' ? '-0.5rem' : '-1rem',
6101
6099
  opacity: 0.8,
6102
6100
  position: 'absolute',
6103
- mr: '-1rem',
6104
6101
  right: '1px',
6105
6102
  touchAction: 'none',
6106
6103
  transition: column.getIsResizing() ? undefined : 'all 0.2s ease-in-out',
6107
6104
  userSelect: 'none',
6105
+ zIndex: 4,
6108
6106
  '&:active': {
6109
6107
  backgroundColor: theme.palette.info.main,
6110
6108
  opacity: 1
@@ -6332,11 +6330,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
6332
6330
  var MRT_DraggableTableHeadCell = function MRT_DraggableTableHeadCell(_ref) {
6333
6331
  var header = _ref.header,
6334
6332
  instance = _ref.instance;
6335
- var getState = instance.getState;
6336
-
6337
- _objectDestructuringEmpty(instance.options);
6338
-
6339
- var setColumnOrder = instance.setColumnOrder;
6333
+ var getState = instance.getState,
6334
+ setColumnOrder = instance.setColumnOrder;
6340
6335
 
6341
6336
  var _getState = getState(),
6342
6337
  columnOrder = _getState.columnOrder;
@@ -6346,7 +6341,8 @@ var MRT_DraggableTableHeadCell = function MRT_DraggableTableHeadCell(_ref) {
6346
6341
  var _useDrop = useDrop({
6347
6342
  accept: 'column',
6348
6343
  drop: function drop(movingColumn) {
6349
- return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
6344
+ var newColumnOrder = reorderColumn(movingColumn, column, columnOrder);
6345
+ setColumnOrder(newColumnOrder);
6350
6346
  }
6351
6347
  }),
6352
6348
  dropRef = _useDrop[1];
@@ -7105,7 +7101,8 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
7105
7101
  var _useDrop = useDrop({
7106
7102
  accept: 'column',
7107
7103
  drop: function drop(movingColumn) {
7108
- return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
7104
+ var newColumnOrder = reorderColumn(movingColumn, column, columnOrder);
7105
+ setColumnOrder(newColumnOrder);
7109
7106
  }
7110
7107
  }),
7111
7108
  dropRef = _useDrop[1];
@@ -7628,29 +7625,6 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7628
7625
 
7629
7626
  var initState = (_props$initialState = props.initialState) != null ? _props$initialState : {};
7630
7627
  initState.columnOrder = (_initState$columnOrde = initState.columnOrder) != null ? _initState$columnOrde : getDefaultColumnOrderIds(props);
7631
-
7632
- if (!props.enablePersistentState || !props.tableId) {
7633
- return initState;
7634
- }
7635
-
7636
- if (typeof window === 'undefined') {
7637
- {
7638
- console.error('The MRT Persistent Table State feature is not supported if using SSR, but you can wrap your <MaterialReactTable /> in a MUI <NoSsr> tags to let it work');
7639
- }
7640
-
7641
- return initState;
7642
- }
7643
-
7644
- var storedState = props.persistentStateMode === 'localStorage' ? localStorage.getItem("mrt-" + tableId + "-table-state") : props.persistentStateMode === 'sessionStorage' ? sessionStorage.getItem("mrt-" + tableId + "-table-state") : '{}';
7645
-
7646
- if (storedState) {
7647
- var parsedState = JSON.parse(storedState);
7648
-
7649
- if (parsedState) {
7650
- return _extends({}, initState, parsedState);
7651
- }
7652
- }
7653
-
7654
7628
  return initState;
7655
7629
  }, []);
7656
7630
 
@@ -7834,27 +7808,26 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7834
7808
  });
7835
7809
 
7836
7810
  React.useEffect(function () {
7837
- if (typeof window === 'undefined' || !props.enablePersistentState) {
7838
- return;
7839
- }
7840
-
7841
- if (!props.tableId && "development" !== 'production') {
7842
- console.warn('a unique tableId prop is required for persistent table state to work');
7843
- return;
7844
- }
7845
-
7846
- var itemArgs = ["mrt-" + tableId + "-table-state", JSON.stringify(instance.getState())];
7847
-
7848
- if (props.persistentStateMode === 'localStorage') {
7849
- var _localStorage;
7850
-
7851
- (_localStorage = localStorage).setItem.apply(_localStorage, itemArgs);
7852
- } else if (props.persistentStateMode === 'sessionStorage') {
7853
- var _sessionStorage;
7854
-
7855
- (_sessionStorage = sessionStorage).setItem.apply(_sessionStorage, itemArgs);
7856
- }
7857
- }, [props.enablePersistentState, props.tableId, props.persistentStateMode, instance]);
7811
+ props == null ? void 0 : props.onColumnOrderChanged == null ? void 0 : props.onColumnOrderChanged({
7812
+ columnOrder: instance.getState().columnOrder,
7813
+ //@ts-ignore
7814
+ instance: instance
7815
+ });
7816
+ }, [instance.getState().columnOrder]);
7817
+ React.useEffect(function () {
7818
+ props == null ? void 0 : props.onColumnPinningChanged == null ? void 0 : props.onColumnPinningChanged({
7819
+ columnPinning: instance.getState().columnPinning,
7820
+ //@ts-ignore
7821
+ instance: instance
7822
+ });
7823
+ }, [instance.getState().columnPinning]);
7824
+ React.useEffect(function () {
7825
+ props == null ? void 0 : props.onColumnVisibilityChanged == null ? void 0 : props.onColumnVisibilityChanged({
7826
+ columnPinning: instance.getState().columnVisibility,
7827
+ //@ts-ignore
7828
+ instance: instance
7829
+ });
7830
+ }, [instance.getState().columnVisibility]);
7858
7831
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.Dialog, {
7859
7832
  PaperComponent: material.Box,
7860
7833
  TransitionComponent: material.Grow,
@@ -7873,7 +7846,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7873
7846
  }));
7874
7847
  };
7875
7848
 
7876
- var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilterChangeMode", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterChangeMode", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "rowNumberMode", "selectAllMode"];
7849
+ var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilterChangeMode", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterChangeMode", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "positionActionsColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "rowNumberMode", "selectAllMode"];
7877
7850
  var MaterialReactTable = (function (_ref) {
7878
7851
  var _ref$autoResetExpande = _ref.autoResetExpanded,
7879
7852
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -7943,8 +7916,6 @@ var MaterialReactTable = (function (_ref) {
7943
7916
  enableToolbarTop = _ref$enableToolbarTop === void 0 ? true : _ref$enableToolbarTop,
7944
7917
  icons = _ref.icons,
7945
7918
  localization = _ref.localization,
7946
- _ref$persistentStateM = _ref.persistentStateMode,
7947
- persistentStateMode = _ref$persistentStateM === void 0 ? 'sessionStorage' : _ref$persistentStateM,
7948
7919
  _ref$positionActionsC = _ref.positionActionsColumn,
7949
7920
  positionActionsColumn = _ref$positionActionsC === void 0 ? 'first' : _ref$positionActionsC,
7950
7921
  _ref$positionGlobalFi = _ref.positionGlobalFilter,
@@ -7993,7 +7964,6 @@ var MaterialReactTable = (function (_ref) {
7993
7964
  enableToolbarTop: enableToolbarTop,
7994
7965
  icons: _extends({}, MRT_Default_Icons, icons),
7995
7966
  localization: _extends({}, MRT_DefaultLocalization_EN, localization),
7996
- persistentStateMode: persistentStateMode,
7997
7967
  positionActionsColumn: positionActionsColumn,
7998
7968
  positionGlobalFilter: positionGlobalFilter,
7999
7969
  positionPagination: positionPagination,