material-react-table 0.16.0 → 0.17.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.
@@ -1,7 +1,7 @@
1
1
  import React, { useMemo, forwardRef, useState, useCallback, Fragment, useLayoutEffect, useEffect } from 'react';
2
2
  import { ArrowRight, Cancel, CheckBox, ClearAll, Close, DensityLarge, DensityMedium, DensitySmall, DragHandle, DynamicFeed, Edit, ExpandLess, ExpandMore, FilterAlt, FilterAltOff, FilterList, FilterListOff, FullscreenExit, Fullscreen, KeyboardDoubleArrowDown, MoreHoriz, MoreVert, PushPin, RestartAlt, Save, Search, SearchOff, Sort, ViewColumn, VisibilityOff } from '@mui/icons-material';
3
3
  import { sortingFns, createTable, filterFns, getCoreRowModel, getExpandedRowModel, getFacetedRowModel, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, useTableInstance } from '@tanstack/react-table';
4
- import { Tooltip, IconButton, Menu, MenuItem, Box, FormControlLabel, Switch, Button, Divider, ListItemIcon, Checkbox, debounce, Collapse, TextField, InputAdornment, TablePagination, Chip, Alert, LinearProgress, useMediaQuery, Toolbar, lighten, alpha, Grow, TableSortLabel, TableCell, TableRow, TableHead, darken, Skeleton, TableBody, TableFooter, Table, TableContainer, Paper, Dialog } from '@mui/material';
4
+ import { Tooltip, IconButton, Menu, MenuItem, Box, FormControlLabel, Switch, Typography, Button, Divider, ListItemIcon, Checkbox, debounce, Collapse, TextField, InputAdornment, TablePagination, Chip, Alert, LinearProgress, useMediaQuery, Toolbar, lighten, alpha, Grow, TableSortLabel, TableCell, TableRow, TableHead, darken, Skeleton, TableBody, TableFooter, Table, TableContainer, Paper, Dialog } from '@mui/material';
5
5
  import { rankItem, rankings, compareItems } from '@tanstack/match-sorter-utils';
6
6
  import { useDrop, useDrag, DndProvider } from 'react-dnd';
7
7
  import { HTML5Backend } from 'react-dnd-html5-backend';
@@ -24,10 +24,6 @@ function _extends() {
24
24
  return _extends.apply(this, arguments);
25
25
  }
26
26
 
27
- function _objectDestructuringEmpty(obj) {
28
- if (obj == null) throw new TypeError("Cannot destructure undefined");
29
- }
30
-
31
27
  function _objectWithoutPropertiesLoose(source, excluded) {
32
28
  if (source == null) return {};
33
29
  var target = {};
@@ -100,11 +96,11 @@ var MRT_DefaultLocalization_EN = {
100
96
  sortedByColumnAsc: 'Sorted by {column} ascending',
101
97
  sortedByColumnDesc: 'Sorted by {column} descending',
102
98
  thenBy: ', then by ',
103
- to: 'to',
104
99
  toggleDensity: 'Toggle density',
105
100
  toggleFullScreen: 'Toggle full screen',
106
101
  toggleSelectAll: 'Toggle select all',
107
102
  toggleSelectRow: 'Toggle select row',
103
+ toggleVisibility: 'Toggle visibility',
108
104
  ungroupByColumn: 'Ungroup by {column}',
109
105
  unpin: 'Unpin',
110
106
  unpinAll: 'Unpin all',
@@ -623,13 +619,13 @@ var createDataColumn = function createDataColumn(table, column, currentFilterFns
623
619
  var createDisplayColumn = function createDisplayColumn(table, column) {
624
620
  return table.createDisplayColumn(column);
625
621
  };
626
- var reorderColumn = function reorderColumn(movingColumn, receivingColumn, columnOrder, setColumnOrder) {
622
+ var reorderColumn = function reorderColumn(movingColumn, receivingColumn, columnOrder) {
627
623
  if (movingColumn.getCanPin()) {
628
624
  movingColumn.pin(receivingColumn.getIsPinned());
629
625
  }
630
626
 
631
627
  columnOrder.splice(columnOrder.indexOf(receivingColumn.id), 0, columnOrder.splice(columnOrder.indexOf(movingColumn.id), 1)[0]);
632
- setColumnOrder([].concat(columnOrder));
628
+ return [].concat(columnOrder);
633
629
  };
634
630
  var getLeadingDisplayColumnIds = function getLeadingDisplayColumnIds(props) {
635
631
  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);
@@ -653,12 +649,13 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
653
649
  var getState = instance.getState,
654
650
  _instance$options = instance.options,
655
651
  enableColumnOrdering = _instance$options.enableColumnOrdering,
656
- onColumnVisibilityChanged = _instance$options.onColumnVisibilityChanged,
652
+ enableHiding = _instance$options.enableHiding,
653
+ enablePinning = _instance$options.enablePinning,
654
+ localization = _instance$options.localization,
657
655
  setColumnOrder = instance.setColumnOrder;
658
656
 
659
657
  var _getState = getState(),
660
- columnOrder = _getState.columnOrder,
661
- columnVisibility = _getState.columnVisibility;
658
+ columnOrder = _getState.columnOrder;
662
659
 
663
660
  var columnDef = column.columnDef,
664
661
  columnDefType = column.columnDefType;
@@ -666,7 +663,8 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
666
663
  var _useDrop = useDrop({
667
664
  accept: 'column',
668
665
  drop: function drop(movingColumn) {
669
- return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
666
+ var newColumnOrder = reorderColumn(movingColumn, column, columnOrder);
667
+ setColumnOrder(newColumnOrder);
670
668
  }
671
669
  }),
672
670
  dropRef = _useDrop[1];
@@ -699,12 +697,6 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
699
697
  } else {
700
698
  column.toggleVisibility();
701
699
  }
702
-
703
- onColumnVisibilityChanged == null ? void 0 : onColumnVisibilityChanged({
704
- column: column,
705
- columnVisibility: columnVisibility,
706
- instance: instance
707
- });
708
700
  };
709
701
 
710
702
  return React.createElement(React.Fragment, null, React.createElement(MenuItem, {
@@ -723,15 +715,23 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
723
715
  flexWrap: 'nowrap',
724
716
  gap: '8px'
725
717
  }
726
- }, columnDefType !== 'group' && enableColumnOrdering && columnDef.enableColumnOrdering !== false && !allColumns.some(function (col) {
718
+ }, columnDefType !== 'group' && enableColumnOrdering && !allColumns.some(function (col) {
727
719
  return col.columnDefType === 'group';
728
- }) && React.createElement(MRT_GrabHandleButton, {
720
+ }) && (columnDef.enableColumnOrdering !== false ? React.createElement(MRT_GrabHandleButton, {
729
721
  ref: dragRef,
730
722
  instance: instance
731
- }), !isSubMenu && column.getCanPin() && React.createElement(MRT_ColumnPinningButtons, {
723
+ }) : React.createElement(Box, {
724
+ sx: {
725
+ width: '28px'
726
+ }
727
+ })), enablePinning && !isSubMenu && (column.getCanPin() ? React.createElement(MRT_ColumnPinningButtons, {
732
728
  column: column,
733
729
  instance: instance
734
- }), React.createElement(FormControlLabel, {
730
+ }) : React.createElement(Box, {
731
+ sx: {
732
+ width: '70px'
733
+ }
734
+ })), enableHiding ? React.createElement(FormControlLabel, {
735
735
  componentsProps: {
736
736
  typography: {
737
737
  sx: {
@@ -741,13 +741,22 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
741
741
  }
742
742
  },
743
743
  checked: switchChecked,
744
- control: React.createElement(Switch, null),
744
+ control: React.createElement(Tooltip, {
745
+ arrow: true,
746
+ enterDelay: 1000,
747
+ enterNextDelay: 1000,
748
+ title: localization.toggleVisibility
749
+ }, React.createElement(Switch, null)),
745
750
  disabled: isSubMenu && switchChecked || !column.getCanHide() || column.getIsGrouped(),
746
751
  label: columnDef.header,
747
752
  onChange: function onChange() {
748
753
  return handleToggleColumnHidden(column);
749
754
  }
750
- }))), (_column$columns2 = column.columns) == null ? void 0 : _column$columns2.map(function (c, i) {
755
+ }) : React.createElement(Typography, {
756
+ sx: {
757
+ alignSelf: 'center'
758
+ }
759
+ }, columnDef.header))), (_column$columns2 = column.columns) == null ? void 0 : _column$columns2.map(function (c, i) {
751
760
  return React.createElement(MRT_ShowHideColumnsMenuItems, {
752
761
  allColumns: allColumns,
753
762
  key: i + "-" + c.id,
@@ -861,7 +870,7 @@ var commonListItemStyles = {
861
870
  alignItems: 'center'
862
871
  };
863
872
  var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
864
- var _localization$sortByC, _localization$sortByC2, _localization$filterB, _localization, _localization$hideCol, _localization$showAll;
873
+ var _columnDef$enabledCol, _localization$sortByC, _localization$sortByC2, _localization$filterB, _localization, _localization$hideCol, _localization$showAll;
865
874
 
866
875
  var anchorEl = _ref.anchorEl,
867
876
  header = _ref.header,
@@ -871,12 +880,14 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
871
880
  toggleAllColumnsVisible = instance.toggleAllColumnsVisible,
872
881
  setColumnOrder = instance.setColumnOrder,
873
882
  _instance$options = instance.options,
883
+ enableColumnFilterChangeMode = _instance$options.enableColumnFilterChangeMode,
874
884
  enableColumnFilters = _instance$options.enableColumnFilters,
875
885
  enableColumnResizing = _instance$options.enableColumnResizing,
876
886
  enableGrouping = _instance$options.enableGrouping,
877
887
  enableHiding = _instance$options.enableHiding,
878
888
  enablePinning = _instance$options.enablePinning,
879
889
  enableSorting = _instance$options.enableSorting,
890
+ enabledColumnFilterOptions = _instance$options.enabledColumnFilterOptions,
880
891
  _instance$options$ico = _instance$options.icons,
881
892
  ArrowRightIcon = _instance$options$ico.ArrowRightIcon,
882
893
  ClearAllIcon = _instance$options$ico.ClearAllIcon,
@@ -976,6 +987,9 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
976
987
  setShowHideColumnsMenuAnchorEl(event.currentTarget);
977
988
  };
978
989
 
990
+ var isSelectFilter = !!columnDef.filterSelectOptions;
991
+ var allowedColumnFilterOptions = (_columnDef$enabledCol = columnDef == null ? void 0 : columnDef.enabledColumnFilterOptions) != null ? _columnDef$enabledCol : enabledColumnFilterOptions;
992
+ var showFilterModeSubMenu = enableColumnFilterChangeMode && columnDef.enableColumnFilterChangeMode !== false && !isSelectFilter && (allowedColumnFilterOptions === undefined || !!(allowedColumnFilterOptions != null && allowedColumnFilterOptions.length));
979
993
  return React.createElement(Menu, {
980
994
  anchorEl: anchorEl,
981
995
  open: !!anchorEl,
@@ -1025,21 +1039,21 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
1025
1039
  sx: commonMenuItemStyles$1
1026
1040
  }, React.createElement(Box, {
1027
1041
  sx: commonListItemStyles
1028
- }, React.createElement(ListItemIcon, null, React.createElement(FilterListIcon, null)), (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(columnDef.header))), !columnDef.filterSelectOptions && React.createElement(IconButton, {
1042
+ }, React.createElement(ListItemIcon, null, React.createElement(FilterListIcon, null)), (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(columnDef.header))), showFilterModeSubMenu && React.createElement(IconButton, {
1029
1043
  onClick: handleOpenFilterModeMenu,
1030
1044
  onMouseEnter: handleOpenFilterModeMenu,
1031
1045
  size: "small",
1032
1046
  sx: {
1033
1047
  p: 0
1034
1048
  }
1035
- }, React.createElement(ArrowRightIcon, null))), React.createElement(MRT_FilterOptionMenu, {
1049
+ }, React.createElement(ArrowRightIcon, null))), showFilterModeSubMenu && React.createElement(MRT_FilterOptionMenu, {
1036
1050
  anchorEl: filterMenuAnchorEl,
1037
1051
  header: header,
1038
1052
  key: 2,
1039
1053
  onSelect: handleFilterByColumn,
1040
1054
  setAnchorEl: setFilterMenuAnchorEl,
1041
1055
  instance: instance
1042
- })], enableGrouping && column.getCanGroup() && [React.createElement(MenuItem, {
1056
+ })].filter(Boolean), enableGrouping && column.getCanGroup() && [React.createElement(MenuItem, {
1043
1057
  divider: enablePinning,
1044
1058
  key: 0,
1045
1059
  onClick: handleGroupByColumn,
@@ -1648,11 +1662,13 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
1648
1662
  var instance = _ref.instance;
1649
1663
  var _instance$options = instance.options,
1650
1664
  enableColumnFilters = _instance$options.enableColumnFilters,
1665
+ enableColumnOrdering = _instance$options.enableColumnOrdering,
1651
1666
  enableDensityToggle = _instance$options.enableDensityToggle,
1652
1667
  enableFilters = _instance$options.enableFilters,
1653
1668
  enableFullScreenToggle = _instance$options.enableFullScreenToggle,
1654
1669
  enableGlobalFilter = _instance$options.enableGlobalFilter,
1655
1670
  enableHiding = _instance$options.enableHiding,
1671
+ enablePinning = _instance$options.enablePinning,
1656
1672
  positionGlobalFilter = _instance$options.positionGlobalFilter,
1657
1673
  renderToolbarInternalActions = _instance$options.renderToolbarInternalActions;
1658
1674
  return React.createElement(Box, {
@@ -1674,7 +1690,7 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
1674
1690
  instance: instance
1675
1691
  }), enableFilters && enableColumnFilters && React.createElement(MRT_ToggleFiltersButton, {
1676
1692
  instance: instance
1677
- }), enableHiding && React.createElement(MRT_ShowHideColumnsButton, {
1693
+ }), (enableHiding || enableColumnOrdering || enablePinning) && React.createElement(MRT_ShowHideColumnsButton, {
1678
1694
  instance: instance
1679
1695
  }), enableDensityToggle && React.createElement(MRT_ToggleDensePaddingButton, {
1680
1696
  instance: instance
@@ -1692,7 +1708,8 @@ var MRT_TablePagination = function MRT_TablePagination(_ref) {
1692
1708
  setPageSize = instance.setPageSize,
1693
1709
  _instance$options = instance.options,
1694
1710
  muiTablePaginationProps = _instance$options.muiTablePaginationProps,
1695
- enableToolbarInternalActions = _instance$options.enableToolbarInternalActions;
1711
+ enableToolbarInternalActions = _instance$options.enableToolbarInternalActions,
1712
+ rowCount = _instance$options.rowCount;
1696
1713
 
1697
1714
  var _getState = getState(),
1698
1715
  _getState$pagination = _getState.pagination,
@@ -1710,7 +1727,8 @@ var MRT_TablePagination = function MRT_TablePagination(_ref) {
1710
1727
  setPageSize(+event.target.value);
1711
1728
  };
1712
1729
 
1713
- var showFirstLastPageButtons = getPrePaginationRowModel().rows.length / pageSize > 2;
1730
+ var totalRowCount = rowCount != null ? rowCount : getPrePaginationRowModel().rows.length;
1731
+ var showFirstLastPageButtons = totalRowCount / pageSize > 2;
1714
1732
  return React.createElement(TablePagination, Object.assign({
1715
1733
  SelectProps: {
1716
1734
  sx: {
@@ -1723,7 +1741,7 @@ var MRT_TablePagination = function MRT_TablePagination(_ref) {
1723
1741
  }
1724
1742
  },
1725
1743
  component: "div",
1726
- count: getPrePaginationRowModel().rows.length,
1744
+ count: totalRowCount,
1727
1745
  onPageChange: function onPageChange(_, newPage) {
1728
1746
  return setPageIndex(newPage);
1729
1747
  },
@@ -1977,7 +1995,7 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1977
1995
  };
1978
1996
 
1979
1997
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1980
- var _localization$filterB, _columnDef$enabledCol, _allowedColumnFilterO, _localization$filterM, _localization, _localization$clearFi, _columnDef$filterSele;
1998
+ var _localization$filterB, _columnDef$enabledCol, _localization$filterM, _localization, _localization$clearFi, _columnDef$filterSele;
1981
1999
 
1982
2000
  var header = _ref.header,
1983
2001
  inputIndex = _ref.inputIndex,
@@ -2110,7 +2128,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
2110
2128
  localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))] : '';
2111
2129
  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 : '';
2112
2130
  var allowedColumnFilterOptions = (_columnDef$enabledCol = columnDef == null ? void 0 : columnDef.enabledColumnFilterOptions) != null ? _columnDef$enabledCol : enabledColumnFilterOptions;
2113
- var allowColumnChangeMode = enableColumnFilterChangeMode && columnDef.enableColumnFilterChangeMode !== false;
2131
+ var showChangeModeButton = enableColumnFilterChangeMode && columnDef.enableColumnFilterChangeMode !== false && !isSelectFilter && !inputIndex && (allowedColumnFilterOptions === undefined || !!(allowedColumnFilterOptions != null && allowedColumnFilterOptions.length));
2114
2132
  return React.createElement(React.Fragment, null, React.createElement(TextField, Object.assign({
2115
2133
  fullWidth: true,
2116
2134
  id: filterId,
@@ -2122,7 +2140,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
2122
2140
  },
2123
2141
  title: filterPlaceholder
2124
2142
  },
2125
- helperText: allowColumnChangeMode && !inputIndex && (allowedColumnFilterOptions === undefined || ((_allowedColumnFilterO = allowedColumnFilterOptions == null ? void 0 : allowedColumnFilterOptions.length) != null ? _allowedColumnFilterO : 0) > 0) ? React.createElement("label", {
2143
+ helperText: showChangeModeButton ? React.createElement("label", {
2126
2144
  htmlFor: filterId
2127
2145
  }, filterFn instanceof Function ? (_localization$filterM = localization.filterMode.replace('{filterType}', // @ts-ignore
2128
2146
  (_localization = localization["filter" + (filterFn.name.charAt(0).toUpperCase() + filterFn.name.slice(1))]) != null ? _localization : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
@@ -2144,7 +2162,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
2144
2162
  value: filterValue != null ? filterValue : '',
2145
2163
  variant: "standard",
2146
2164
  InputProps: {
2147
- startAdornment: allowColumnChangeMode && !isSelectFilter && !inputIndex && (allowedColumnFilterOptions === undefined || !!(allowedColumnFilterOptions != null && allowedColumnFilterOptions.length)) ? React.createElement(InputAdornment, {
2165
+ startAdornment: showChangeModeButton ? React.createElement(InputAdornment, {
2148
2166
  position: "start"
2149
2167
  }, React.createElement(Tooltip, {
2150
2168
  arrow: true,
@@ -2220,23 +2238,17 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
2220
2238
  var MRT_FilterRangeFields = function MRT_FilterRangeFields(_ref) {
2221
2239
  var header = _ref.header,
2222
2240
  instance = _ref.instance;
2223
- var localization = instance.options.localization;
2224
2241
  return React.createElement(Box, {
2225
2242
  sx: {
2226
2243
  display: 'grid',
2227
- gridTemplateColumns: '6fr auto 5fr'
2244
+ gridTemplateColumns: '6fr 6fr',
2245
+ gap: '1rem'
2228
2246
  }
2229
2247
  }, React.createElement(MRT_FilterTextField, {
2230
2248
  header: header,
2231
2249
  inputIndex: 0,
2232
2250
  instance: instance
2233
- }), React.createElement(Box, {
2234
- sx: {
2235
- width: '100%',
2236
- minWidth: '5ch',
2237
- textAlign: 'center'
2238
- }
2239
- }, localization.to), React.createElement(MRT_FilterTextField, {
2251
+ }), React.createElement(MRT_FilterTextField, {
2240
2252
  header: header,
2241
2253
  inputIndex: 1,
2242
2254
  instance: instance
@@ -2337,7 +2349,6 @@ var MRT_TableHeadCellResizeHandle = function MRT_TableHeadCellResizeHandle(_ref)
2337
2349
  touchAction: 'none',
2338
2350
  transition: column.getIsResizing() ? undefined : 'all 0.2s ease-in-out',
2339
2351
  userSelect: 'none',
2340
- zIndex: 2000,
2341
2352
  '&:active': {
2342
2353
  backgroundColor: theme.palette.info.main,
2343
2354
  opacity: 1
@@ -2565,11 +2576,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2565
2576
  var MRT_DraggableTableHeadCell = function MRT_DraggableTableHeadCell(_ref) {
2566
2577
  var header = _ref.header,
2567
2578
  instance = _ref.instance;
2568
- var getState = instance.getState;
2569
-
2570
- _objectDestructuringEmpty(instance.options);
2571
-
2572
- var setColumnOrder = instance.setColumnOrder;
2579
+ var getState = instance.getState,
2580
+ setColumnOrder = instance.setColumnOrder;
2573
2581
 
2574
2582
  var _getState = getState(),
2575
2583
  columnOrder = _getState.columnOrder;
@@ -2579,7 +2587,8 @@ var MRT_DraggableTableHeadCell = function MRT_DraggableTableHeadCell(_ref) {
2579
2587
  var _useDrop = useDrop({
2580
2588
  accept: 'column',
2581
2589
  drop: function drop(movingColumn) {
2582
- return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
2590
+ var newColumnOrder = reorderColumn(movingColumn, column, columnOrder);
2591
+ setColumnOrder(newColumnOrder);
2583
2592
  }
2584
2593
  }),
2585
2594
  dropRef = _useDrop[1];
@@ -2846,7 +2855,8 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2846
2855
  var _useDrop = useDrop({
2847
2856
  accept: 'column',
2848
2857
  drop: function drop(movingColumn) {
2849
- return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
2858
+ var newColumnOrder = reorderColumn(movingColumn, column, columnOrder);
2859
+ setColumnOrder(newColumnOrder);
2850
2860
  }
2851
2861
  }),
2852
2862
  dropRef = _useDrop[1];
@@ -3334,7 +3344,8 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
3334
3344
  }, tablePaperProps, {
3335
3345
  sx: _extends({
3336
3346
  transition: 'all 0.2s ease-in-out'
3337
- }, tablePaperProps == null ? void 0 : tablePaperProps.sx, {
3347
+ }, tablePaperProps == null ? void 0 : tablePaperProps.sx),
3348
+ style: _extends({}, tablePaperProps == null ? void 0 : tablePaperProps.style, {
3338
3349
  height: isFullScreen ? '100vh' : undefined,
3339
3350
  margin: isFullScreen ? '0' : undefined,
3340
3351
  maxHeight: isFullScreen ? '100vh' : undefined,
@@ -3368,29 +3379,6 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3368
3379
 
3369
3380
  var initState = (_props$initialState = props.initialState) != null ? _props$initialState : {};
3370
3381
  initState.columnOrder = (_initState$columnOrde = initState.columnOrder) != null ? _initState$columnOrde : getDefaultColumnOrderIds(props);
3371
-
3372
- if (!props.enablePersistentState || !props.tableId) {
3373
- return initState;
3374
- }
3375
-
3376
- if (typeof window === 'undefined') {
3377
- if (process.env.NODE_ENV !== 'production') {
3378
- 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');
3379
- }
3380
-
3381
- return initState;
3382
- }
3383
-
3384
- var storedState = props.persistentStateMode === 'localStorage' ? localStorage.getItem("mrt-" + tableId + "-table-state") : props.persistentStateMode === 'sessionStorage' ? sessionStorage.getItem("mrt-" + tableId + "-table-state") : '{}';
3385
-
3386
- if (storedState) {
3387
- var parsedState = JSON.parse(storedState);
3388
-
3389
- if (parsedState) {
3390
- return _extends({}, initState, parsedState);
3391
- }
3392
- }
3393
-
3394
3382
  return initState;
3395
3383
  }, []);
3396
3384
 
@@ -3484,7 +3472,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3484
3472
  id: 'mrt-expand',
3485
3473
  muiTableBodyCellProps: props.muiTableBodyCellProps,
3486
3474
  muiTableHeadCellProps: props.muiTableHeadCellProps,
3487
- size: 50
3475
+ size: 60
3488
3476
  }), columnOrder.includes('mrt-select') && createDisplayColumn(table, {
3489
3477
  Cell: function Cell(_ref5) {
3490
3478
  var cell = _ref5.cell;
@@ -3503,7 +3491,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3503
3491
  id: 'mrt-select',
3504
3492
  muiTableBodyCellProps: props.muiTableBodyCellProps,
3505
3493
  muiTableHeadCellProps: props.muiTableHeadCellProps,
3506
- size: 50
3494
+ size: 60
3507
3495
  }), columnOrder.includes('mrt-row-numbers') && createDisplayColumn(table, {
3508
3496
  Cell: function Cell(_ref6) {
3509
3497
  var cell = _ref6.cell;
@@ -3518,7 +3506,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3518
3506
  id: 'mrt-row-numbers',
3519
3507
  muiTableBodyCellProps: props.muiTableBodyCellProps,
3520
3508
  muiTableHeadCellProps: props.muiTableHeadCellProps,
3521
- size: 50
3509
+ size: 60
3522
3510
  })].filter(Boolean);
3523
3511
  }, [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]);
3524
3512
  var columns = useMemo(function () {
@@ -3574,27 +3562,26 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3574
3562
  });
3575
3563
 
3576
3564
  useEffect(function () {
3577
- if (typeof window === 'undefined' || !props.enablePersistentState) {
3578
- return;
3579
- }
3580
-
3581
- if (!props.tableId && process.env.NODE_ENV !== 'production') {
3582
- console.warn('a unique tableId prop is required for persistent table state to work');
3583
- return;
3584
- }
3585
-
3586
- var itemArgs = ["mrt-" + tableId + "-table-state", JSON.stringify(instance.getState())];
3587
-
3588
- if (props.persistentStateMode === 'localStorage') {
3589
- var _localStorage;
3590
-
3591
- (_localStorage = localStorage).setItem.apply(_localStorage, itemArgs);
3592
- } else if (props.persistentStateMode === 'sessionStorage') {
3593
- var _sessionStorage;
3594
-
3595
- (_sessionStorage = sessionStorage).setItem.apply(_sessionStorage, itemArgs);
3596
- }
3597
- }, [props.enablePersistentState, props.tableId, props.persistentStateMode, instance]);
3565
+ props == null ? void 0 : props.onColumnOrderChanged == null ? void 0 : props.onColumnOrderChanged({
3566
+ columnOrder: instance.getState().columnOrder,
3567
+ //@ts-ignore
3568
+ instance: instance
3569
+ });
3570
+ }, [instance.getState().columnOrder]);
3571
+ useEffect(function () {
3572
+ props == null ? void 0 : props.onColumnPinningChanged == null ? void 0 : props.onColumnPinningChanged({
3573
+ columnPinning: instance.getState().columnPinning,
3574
+ //@ts-ignore
3575
+ instance: instance
3576
+ });
3577
+ }, [instance.getState().columnPinning]);
3578
+ useEffect(function () {
3579
+ props == null ? void 0 : props.onColumnVisibilityChanged == null ? void 0 : props.onColumnVisibilityChanged({
3580
+ columnPinning: instance.getState().columnVisibility,
3581
+ //@ts-ignore
3582
+ instance: instance
3583
+ });
3584
+ }, [instance.getState().columnVisibility]);
3598
3585
  return React.createElement(React.Fragment, null, React.createElement(Dialog, {
3599
3586
  PaperComponent: Box,
3600
3587
  TransitionComponent: Grow,
@@ -3613,7 +3600,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3613
3600
  }));
3614
3601
  };
3615
3602
 
3616
- 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"];
3603
+ 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"];
3617
3604
  var MaterialReactTable = (function (_ref) {
3618
3605
  var _ref$autoResetExpande = _ref.autoResetExpanded,
3619
3606
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -3683,8 +3670,6 @@ var MaterialReactTable = (function (_ref) {
3683
3670
  enableToolbarTop = _ref$enableToolbarTop === void 0 ? true : _ref$enableToolbarTop,
3684
3671
  icons = _ref.icons,
3685
3672
  localization = _ref.localization,
3686
- _ref$persistentStateM = _ref.persistentStateMode,
3687
- persistentStateMode = _ref$persistentStateM === void 0 ? 'sessionStorage' : _ref$persistentStateM,
3688
3673
  _ref$positionActionsC = _ref.positionActionsColumn,
3689
3674
  positionActionsColumn = _ref$positionActionsC === void 0 ? 'first' : _ref$positionActionsC,
3690
3675
  _ref$positionGlobalFi = _ref.positionGlobalFilter,
@@ -3733,7 +3718,6 @@ var MaterialReactTable = (function (_ref) {
3733
3718
  enableToolbarTop: enableToolbarTop,
3734
3719
  icons: _extends({}, MRT_Default_Icons, icons),
3735
3720
  localization: _extends({}, MRT_DefaultLocalization_EN, localization),
3736
- persistentStateMode: persistentStateMode,
3737
3721
  positionActionsColumn: positionActionsColumn,
3738
3722
  positionGlobalFilter: positionGlobalFilter,
3739
3723
  positionPagination: positionPagination,