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.
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;
@@ -55,11 +55,11 @@ export interface MRT_Localization {
55
55
  sortedByColumnAsc: string;
56
56
  sortedByColumnDesc: string;
57
57
  thenBy: string;
58
- to: string;
59
58
  toggleDensity: string;
60
59
  toggleFullScreen: string;
61
60
  toggleSelectAll: string;
62
61
  toggleSelectRow: string;
62
+ toggleVisibility: string;
63
63
  ungroupByColumn: string;
64
64
  unpin: string;
65
65
  unpinAll: string;
@@ -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 = {};
@@ -105,11 +101,11 @@ var MRT_DefaultLocalization_EN = {
105
101
  sortedByColumnAsc: 'Sorted by {column} ascending',
106
102
  sortedByColumnDesc: 'Sorted by {column} descending',
107
103
  thenBy: ', then by ',
108
- to: 'to',
109
104
  toggleDensity: 'Toggle density',
110
105
  toggleFullScreen: 'Toggle full screen',
111
106
  toggleSelectAll: 'Toggle select all',
112
107
  toggleSelectRow: 'Toggle select row',
108
+ toggleVisibility: 'Toggle visibility',
113
109
  ungroupByColumn: 'Ungroup by {column}',
114
110
  unpin: 'Unpin',
115
111
  unpinAll: 'Unpin all',
@@ -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);
@@ -3434,12 +3430,13 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
3434
3430
  var getState = instance.getState,
3435
3431
  _instance$options = instance.options,
3436
3432
  enableColumnOrdering = _instance$options.enableColumnOrdering,
3437
- onColumnVisibilityChanged = _instance$options.onColumnVisibilityChanged,
3433
+ enableHiding = _instance$options.enableHiding,
3434
+ enablePinning = _instance$options.enablePinning,
3435
+ localization = _instance$options.localization,
3438
3436
  setColumnOrder = instance.setColumnOrder;
3439
3437
 
3440
3438
  var _getState = getState(),
3441
- columnOrder = _getState.columnOrder,
3442
- columnVisibility = _getState.columnVisibility;
3439
+ columnOrder = _getState.columnOrder;
3443
3440
 
3444
3441
  var columnDef = column.columnDef,
3445
3442
  columnDefType = column.columnDefType;
@@ -3447,7 +3444,8 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
3447
3444
  var _useDrop = useDrop({
3448
3445
  accept: 'column',
3449
3446
  drop: function drop(movingColumn) {
3450
- return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
3447
+ var newColumnOrder = reorderColumn(movingColumn, column, columnOrder);
3448
+ setColumnOrder(newColumnOrder);
3451
3449
  }
3452
3450
  }),
3453
3451
  dropRef = _useDrop[1];
@@ -3480,12 +3478,6 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
3480
3478
  } else {
3481
3479
  column.toggleVisibility();
3482
3480
  }
3483
-
3484
- onColumnVisibilityChanged == null ? void 0 : onColumnVisibilityChanged({
3485
- column: column,
3486
- columnVisibility: columnVisibility,
3487
- instance: instance
3488
- });
3489
3481
  };
3490
3482
 
3491
3483
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.MenuItem, {
@@ -3504,15 +3496,23 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
3504
3496
  flexWrap: 'nowrap',
3505
3497
  gap: '8px'
3506
3498
  }
3507
- }, columnDefType !== 'group' && enableColumnOrdering && columnDef.enableColumnOrdering !== false && !allColumns.some(function (col) {
3499
+ }, columnDefType !== 'group' && enableColumnOrdering && !allColumns.some(function (col) {
3508
3500
  return col.columnDefType === 'group';
3509
- }) && React__default.createElement(MRT_GrabHandleButton, {
3501
+ }) && (columnDef.enableColumnOrdering !== false ? React__default.createElement(MRT_GrabHandleButton, {
3510
3502
  ref: dragRef,
3511
3503
  instance: instance
3512
- }), !isSubMenu && column.getCanPin() && React__default.createElement(MRT_ColumnPinningButtons, {
3504
+ }) : React__default.createElement(material.Box, {
3505
+ sx: {
3506
+ width: '28px'
3507
+ }
3508
+ })), enablePinning && !isSubMenu && (column.getCanPin() ? React__default.createElement(MRT_ColumnPinningButtons, {
3513
3509
  column: column,
3514
3510
  instance: instance
3515
- }), React__default.createElement(material.FormControlLabel, {
3511
+ }) : React__default.createElement(material.Box, {
3512
+ sx: {
3513
+ width: '70px'
3514
+ }
3515
+ })), enableHiding ? React__default.createElement(material.FormControlLabel, {
3516
3516
  componentsProps: {
3517
3517
  typography: {
3518
3518
  sx: {
@@ -3522,13 +3522,22 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
3522
3522
  }
3523
3523
  },
3524
3524
  checked: switchChecked,
3525
- control: React__default.createElement(material.Switch, null),
3525
+ control: React__default.createElement(material.Tooltip, {
3526
+ arrow: true,
3527
+ enterDelay: 1000,
3528
+ enterNextDelay: 1000,
3529
+ title: localization.toggleVisibility
3530
+ }, React__default.createElement(material.Switch, null)),
3526
3531
  disabled: isSubMenu && switchChecked || !column.getCanHide() || column.getIsGrouped(),
3527
3532
  label: columnDef.header,
3528
3533
  onChange: function onChange() {
3529
3534
  return handleToggleColumnHidden(column);
3530
3535
  }
3531
- }))), (_column$columns2 = column.columns) == null ? void 0 : _column$columns2.map(function (c, i) {
3536
+ }) : React__default.createElement(material.Typography, {
3537
+ sx: {
3538
+ alignSelf: 'center'
3539
+ }
3540
+ }, columnDef.header))), (_column$columns2 = column.columns) == null ? void 0 : _column$columns2.map(function (c, i) {
3532
3541
  return React__default.createElement(MRT_ShowHideColumnsMenuItems, {
3533
3542
  allColumns: allColumns,
3534
3543
  key: i + "-" + c.id,
@@ -3642,7 +3651,7 @@ var commonListItemStyles = {
3642
3651
  alignItems: 'center'
3643
3652
  };
3644
3653
  var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
3645
- 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;
3646
3655
 
3647
3656
  var anchorEl = _ref.anchorEl,
3648
3657
  header = _ref.header,
@@ -3652,12 +3661,14 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
3652
3661
  toggleAllColumnsVisible = instance.toggleAllColumnsVisible,
3653
3662
  setColumnOrder = instance.setColumnOrder,
3654
3663
  _instance$options = instance.options,
3664
+ enableColumnFilterChangeMode = _instance$options.enableColumnFilterChangeMode,
3655
3665
  enableColumnFilters = _instance$options.enableColumnFilters,
3656
3666
  enableColumnResizing = _instance$options.enableColumnResizing,
3657
3667
  enableGrouping = _instance$options.enableGrouping,
3658
3668
  enableHiding = _instance$options.enableHiding,
3659
3669
  enablePinning = _instance$options.enablePinning,
3660
3670
  enableSorting = _instance$options.enableSorting,
3671
+ enabledColumnFilterOptions = _instance$options.enabledColumnFilterOptions,
3661
3672
  _instance$options$ico = _instance$options.icons,
3662
3673
  ArrowRightIcon = _instance$options$ico.ArrowRightIcon,
3663
3674
  ClearAllIcon = _instance$options$ico.ClearAllIcon,
@@ -3757,6 +3768,9 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
3757
3768
  setShowHideColumnsMenuAnchorEl(event.currentTarget);
3758
3769
  };
3759
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));
3760
3774
  return React__default.createElement(material.Menu, {
3761
3775
  anchorEl: anchorEl,
3762
3776
  open: !!anchorEl,
@@ -3806,21 +3820,21 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
3806
3820
  sx: commonMenuItemStyles$1
3807
3821
  }, React__default.createElement(material.Box, {
3808
3822
  sx: commonListItemStyles
3809
- }, 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, {
3810
3824
  onClick: handleOpenFilterModeMenu,
3811
3825
  onMouseEnter: handleOpenFilterModeMenu,
3812
3826
  size: "small",
3813
3827
  sx: {
3814
3828
  p: 0
3815
3829
  }
3816
- }, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_FilterOptionMenu, {
3830
+ }, React__default.createElement(ArrowRightIcon, null))), showFilterModeSubMenu && React__default.createElement(MRT_FilterOptionMenu, {
3817
3831
  anchorEl: filterMenuAnchorEl,
3818
3832
  header: header,
3819
3833
  key: 2,
3820
3834
  onSelect: handleFilterByColumn,
3821
3835
  setAnchorEl: setFilterMenuAnchorEl,
3822
3836
  instance: instance
3823
- })], enableGrouping && column.getCanGroup() && [React__default.createElement(material.MenuItem, {
3837
+ })].filter(Boolean), enableGrouping && column.getCanGroup() && [React__default.createElement(material.MenuItem, {
3824
3838
  divider: enablePinning,
3825
3839
  key: 0,
3826
3840
  onClick: handleGroupByColumn,
@@ -5400,11 +5414,13 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
5400
5414
  var instance = _ref.instance;
5401
5415
  var _instance$options = instance.options,
5402
5416
  enableColumnFilters = _instance$options.enableColumnFilters,
5417
+ enableColumnOrdering = _instance$options.enableColumnOrdering,
5403
5418
  enableDensityToggle = _instance$options.enableDensityToggle,
5404
5419
  enableFilters = _instance$options.enableFilters,
5405
5420
  enableFullScreenToggle = _instance$options.enableFullScreenToggle,
5406
5421
  enableGlobalFilter = _instance$options.enableGlobalFilter,
5407
5422
  enableHiding = _instance$options.enableHiding,
5423
+ enablePinning = _instance$options.enablePinning,
5408
5424
  positionGlobalFilter = _instance$options.positionGlobalFilter,
5409
5425
  renderToolbarInternalActions = _instance$options.renderToolbarInternalActions;
5410
5426
  return React__default.createElement(material.Box, {
@@ -5426,7 +5442,7 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
5426
5442
  instance: instance
5427
5443
  }), enableFilters && enableColumnFilters && React__default.createElement(MRT_ToggleFiltersButton, {
5428
5444
  instance: instance
5429
- }), enableHiding && React__default.createElement(MRT_ShowHideColumnsButton, {
5445
+ }), (enableHiding || enableColumnOrdering || enablePinning) && React__default.createElement(MRT_ShowHideColumnsButton, {
5430
5446
  instance: instance
5431
5447
  }), enableDensityToggle && React__default.createElement(MRT_ToggleDensePaddingButton, {
5432
5448
  instance: instance
@@ -5444,7 +5460,8 @@ var MRT_TablePagination = function MRT_TablePagination(_ref) {
5444
5460
  setPageSize = instance.setPageSize,
5445
5461
  _instance$options = instance.options,
5446
5462
  muiTablePaginationProps = _instance$options.muiTablePaginationProps,
5447
- enableToolbarInternalActions = _instance$options.enableToolbarInternalActions;
5463
+ enableToolbarInternalActions = _instance$options.enableToolbarInternalActions,
5464
+ rowCount = _instance$options.rowCount;
5448
5465
 
5449
5466
  var _getState = getState(),
5450
5467
  _getState$pagination = _getState.pagination,
@@ -5462,7 +5479,8 @@ var MRT_TablePagination = function MRT_TablePagination(_ref) {
5462
5479
  setPageSize(+event.target.value);
5463
5480
  };
5464
5481
 
5465
- var showFirstLastPageButtons = getPrePaginationRowModel().rows.length / pageSize > 2;
5482
+ var totalRowCount = rowCount != null ? rowCount : getPrePaginationRowModel().rows.length;
5483
+ var showFirstLastPageButtons = totalRowCount / pageSize > 2;
5466
5484
  return React__default.createElement(material.TablePagination, Object.assign({
5467
5485
  SelectProps: {
5468
5486
  sx: {
@@ -5475,7 +5493,7 @@ var MRT_TablePagination = function MRT_TablePagination(_ref) {
5475
5493
  }
5476
5494
  },
5477
5495
  component: "div",
5478
- count: getPrePaginationRowModel().rows.length,
5496
+ count: totalRowCount,
5479
5497
  onPageChange: function onPageChange(_, newPage) {
5480
5498
  return setPageIndex(newPage);
5481
5499
  },
@@ -5729,7 +5747,7 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
5729
5747
  };
5730
5748
 
5731
5749
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5732
- 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;
5733
5751
 
5734
5752
  var header = _ref.header,
5735
5753
  inputIndex = _ref.inputIndex,
@@ -5862,7 +5880,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5862
5880
  localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))] : '';
5863
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 : '';
5864
5882
  var allowedColumnFilterOptions = (_columnDef$enabledCol = columnDef == null ? void 0 : columnDef.enabledColumnFilterOptions) != null ? _columnDef$enabledCol : enabledColumnFilterOptions;
5865
- var allowColumnChangeMode = enableColumnFilterChangeMode && columnDef.enableColumnFilterChangeMode !== false;
5883
+ var showChangeModeButton = enableColumnFilterChangeMode && columnDef.enableColumnFilterChangeMode !== false && !isSelectFilter && !inputIndex && (allowedColumnFilterOptions === undefined || !!(allowedColumnFilterOptions != null && allowedColumnFilterOptions.length));
5866
5884
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TextField, Object.assign({
5867
5885
  fullWidth: true,
5868
5886
  id: filterId,
@@ -5874,7 +5892,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5874
5892
  },
5875
5893
  title: filterPlaceholder
5876
5894
  },
5877
- 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", {
5878
5896
  htmlFor: filterId
5879
5897
  }, filterFn instanceof Function ? (_localization$filterM = localization.filterMode.replace('{filterType}', // @ts-ignore
5880
5898
  (_localization = localization["filter" + (filterFn.name.charAt(0).toUpperCase() + filterFn.name.slice(1))]) != null ? _localization : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
@@ -5896,7 +5914,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5896
5914
  value: filterValue != null ? filterValue : '',
5897
5915
  variant: "standard",
5898
5916
  InputProps: {
5899
- startAdornment: allowColumnChangeMode && !isSelectFilter && !inputIndex && (allowedColumnFilterOptions === undefined || !!(allowedColumnFilterOptions != null && allowedColumnFilterOptions.length)) ? React__default.createElement(material.InputAdornment, {
5917
+ startAdornment: showChangeModeButton ? React__default.createElement(material.InputAdornment, {
5900
5918
  position: "start"
5901
5919
  }, React__default.createElement(material.Tooltip, {
5902
5920
  arrow: true,
@@ -5972,23 +5990,17 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5972
5990
  var MRT_FilterRangeFields = function MRT_FilterRangeFields(_ref) {
5973
5991
  var header = _ref.header,
5974
5992
  instance = _ref.instance;
5975
- var localization = instance.options.localization;
5976
5993
  return React__default.createElement(material.Box, {
5977
5994
  sx: {
5978
5995
  display: 'grid',
5979
- gridTemplateColumns: '6fr auto 5fr'
5996
+ gridTemplateColumns: '6fr 6fr',
5997
+ gap: '1rem'
5980
5998
  }
5981
5999
  }, React__default.createElement(MRT_FilterTextField, {
5982
6000
  header: header,
5983
6001
  inputIndex: 0,
5984
6002
  instance: instance
5985
- }), React__default.createElement(material.Box, {
5986
- sx: {
5987
- width: '100%',
5988
- minWidth: '5ch',
5989
- textAlign: 'center'
5990
- }
5991
- }, localization.to), React__default.createElement(MRT_FilterTextField, {
6003
+ }), React__default.createElement(MRT_FilterTextField, {
5992
6004
  header: header,
5993
6005
  inputIndex: 1,
5994
6006
  instance: instance
@@ -6089,7 +6101,6 @@ var MRT_TableHeadCellResizeHandle = function MRT_TableHeadCellResizeHandle(_ref)
6089
6101
  touchAction: 'none',
6090
6102
  transition: column.getIsResizing() ? undefined : 'all 0.2s ease-in-out',
6091
6103
  userSelect: 'none',
6092
- zIndex: 2000,
6093
6104
  '&:active': {
6094
6105
  backgroundColor: theme.palette.info.main,
6095
6106
  opacity: 1
@@ -6317,11 +6328,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
6317
6328
  var MRT_DraggableTableHeadCell = function MRT_DraggableTableHeadCell(_ref) {
6318
6329
  var header = _ref.header,
6319
6330
  instance = _ref.instance;
6320
- var getState = instance.getState;
6321
-
6322
- _objectDestructuringEmpty(instance.options);
6323
-
6324
- var setColumnOrder = instance.setColumnOrder;
6331
+ var getState = instance.getState,
6332
+ setColumnOrder = instance.setColumnOrder;
6325
6333
 
6326
6334
  var _getState = getState(),
6327
6335
  columnOrder = _getState.columnOrder;
@@ -6331,7 +6339,8 @@ var MRT_DraggableTableHeadCell = function MRT_DraggableTableHeadCell(_ref) {
6331
6339
  var _useDrop = useDrop({
6332
6340
  accept: 'column',
6333
6341
  drop: function drop(movingColumn) {
6334
- return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
6342
+ var newColumnOrder = reorderColumn(movingColumn, column, columnOrder);
6343
+ setColumnOrder(newColumnOrder);
6335
6344
  }
6336
6345
  }),
6337
6346
  dropRef = _useDrop[1];
@@ -7090,7 +7099,8 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
7090
7099
  var _useDrop = useDrop({
7091
7100
  accept: 'column',
7092
7101
  drop: function drop(movingColumn) {
7093
- return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
7102
+ var newColumnOrder = reorderColumn(movingColumn, column, columnOrder);
7103
+ setColumnOrder(newColumnOrder);
7094
7104
  }
7095
7105
  }),
7096
7106
  dropRef = _useDrop[1];
@@ -7578,7 +7588,8 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
7578
7588
  }, tablePaperProps, {
7579
7589
  sx: _extends({
7580
7590
  transition: 'all 0.2s ease-in-out'
7581
- }, tablePaperProps == null ? void 0 : tablePaperProps.sx, {
7591
+ }, tablePaperProps == null ? void 0 : tablePaperProps.sx),
7592
+ style: _extends({}, tablePaperProps == null ? void 0 : tablePaperProps.style, {
7582
7593
  height: isFullScreen ? '100vh' : undefined,
7583
7594
  margin: isFullScreen ? '0' : undefined,
7584
7595
  maxHeight: isFullScreen ? '100vh' : undefined,
@@ -7612,29 +7623,6 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7612
7623
 
7613
7624
  var initState = (_props$initialState = props.initialState) != null ? _props$initialState : {};
7614
7625
  initState.columnOrder = (_initState$columnOrde = initState.columnOrder) != null ? _initState$columnOrde : getDefaultColumnOrderIds(props);
7615
-
7616
- if (!props.enablePersistentState || !props.tableId) {
7617
- return initState;
7618
- }
7619
-
7620
- if (typeof window === 'undefined') {
7621
- {
7622
- 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');
7623
- }
7624
-
7625
- return initState;
7626
- }
7627
-
7628
- var storedState = props.persistentStateMode === 'localStorage' ? localStorage.getItem("mrt-" + tableId + "-table-state") : props.persistentStateMode === 'sessionStorage' ? sessionStorage.getItem("mrt-" + tableId + "-table-state") : '{}';
7629
-
7630
- if (storedState) {
7631
- var parsedState = JSON.parse(storedState);
7632
-
7633
- if (parsedState) {
7634
- return _extends({}, initState, parsedState);
7635
- }
7636
- }
7637
-
7638
7626
  return initState;
7639
7627
  }, []);
7640
7628
 
@@ -7728,7 +7716,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7728
7716
  id: 'mrt-expand',
7729
7717
  muiTableBodyCellProps: props.muiTableBodyCellProps,
7730
7718
  muiTableHeadCellProps: props.muiTableHeadCellProps,
7731
- size: 50
7719
+ size: 60
7732
7720
  }), columnOrder.includes('mrt-select') && createDisplayColumn(table, {
7733
7721
  Cell: function Cell(_ref5) {
7734
7722
  var cell = _ref5.cell;
@@ -7747,7 +7735,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7747
7735
  id: 'mrt-select',
7748
7736
  muiTableBodyCellProps: props.muiTableBodyCellProps,
7749
7737
  muiTableHeadCellProps: props.muiTableHeadCellProps,
7750
- size: 50
7738
+ size: 60
7751
7739
  }), columnOrder.includes('mrt-row-numbers') && createDisplayColumn(table, {
7752
7740
  Cell: function Cell(_ref6) {
7753
7741
  var cell = _ref6.cell;
@@ -7762,7 +7750,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7762
7750
  id: 'mrt-row-numbers',
7763
7751
  muiTableBodyCellProps: props.muiTableBodyCellProps,
7764
7752
  muiTableHeadCellProps: props.muiTableHeadCellProps,
7765
- size: 50
7753
+ size: 60
7766
7754
  })].filter(Boolean);
7767
7755
  }, [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]);
7768
7756
  var columns = React.useMemo(function () {
@@ -7818,27 +7806,26 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7818
7806
  });
7819
7807
 
7820
7808
  React.useEffect(function () {
7821
- if (typeof window === 'undefined' || !props.enablePersistentState) {
7822
- return;
7823
- }
7824
-
7825
- if (!props.tableId && "development" !== 'production') {
7826
- console.warn('a unique tableId prop is required for persistent table state to work');
7827
- return;
7828
- }
7829
-
7830
- var itemArgs = ["mrt-" + tableId + "-table-state", JSON.stringify(instance.getState())];
7831
-
7832
- if (props.persistentStateMode === 'localStorage') {
7833
- var _localStorage;
7834
-
7835
- (_localStorage = localStorage).setItem.apply(_localStorage, itemArgs);
7836
- } else if (props.persistentStateMode === 'sessionStorage') {
7837
- var _sessionStorage;
7838
-
7839
- (_sessionStorage = sessionStorage).setItem.apply(_sessionStorage, itemArgs);
7840
- }
7841
- }, [props.enablePersistentState, props.tableId, props.persistentStateMode, instance]);
7809
+ props == null ? void 0 : props.onColumnOrderChanged == null ? void 0 : props.onColumnOrderChanged({
7810
+ columnOrder: instance.getState().columnOrder,
7811
+ //@ts-ignore
7812
+ instance: instance
7813
+ });
7814
+ }, [instance.getState().columnOrder]);
7815
+ React.useEffect(function () {
7816
+ props == null ? void 0 : props.onColumnPinningChanged == null ? void 0 : props.onColumnPinningChanged({
7817
+ columnPinning: instance.getState().columnPinning,
7818
+ //@ts-ignore
7819
+ instance: instance
7820
+ });
7821
+ }, [instance.getState().columnPinning]);
7822
+ React.useEffect(function () {
7823
+ props == null ? void 0 : props.onColumnVisibilityChanged == null ? void 0 : props.onColumnVisibilityChanged({
7824
+ columnPinning: instance.getState().columnVisibility,
7825
+ //@ts-ignore
7826
+ instance: instance
7827
+ });
7828
+ }, [instance.getState().columnVisibility]);
7842
7829
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.Dialog, {
7843
7830
  PaperComponent: material.Box,
7844
7831
  TransitionComponent: material.Grow,
@@ -7857,7 +7844,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7857
7844
  }));
7858
7845
  };
7859
7846
 
7860
- 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"];
7847
+ 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"];
7861
7848
  var MaterialReactTable = (function (_ref) {
7862
7849
  var _ref$autoResetExpande = _ref.autoResetExpanded,
7863
7850
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -7927,8 +7914,6 @@ var MaterialReactTable = (function (_ref) {
7927
7914
  enableToolbarTop = _ref$enableToolbarTop === void 0 ? true : _ref$enableToolbarTop,
7928
7915
  icons = _ref.icons,
7929
7916
  localization = _ref.localization,
7930
- _ref$persistentStateM = _ref.persistentStateMode,
7931
- persistentStateMode = _ref$persistentStateM === void 0 ? 'sessionStorage' : _ref$persistentStateM,
7932
7917
  _ref$positionActionsC = _ref.positionActionsColumn,
7933
7918
  positionActionsColumn = _ref$positionActionsC === void 0 ? 'first' : _ref$positionActionsC,
7934
7919
  _ref$positionGlobalFi = _ref.positionGlobalFilter,
@@ -7977,7 +7962,6 @@ var MaterialReactTable = (function (_ref) {
7977
7962
  enableToolbarTop: enableToolbarTop,
7978
7963
  icons: _extends({}, MRT_Default_Icons, icons),
7979
7964
  localization: _extends({}, MRT_DefaultLocalization_EN, localization),
7980
- persistentStateMode: persistentStateMode,
7981
7965
  positionActionsColumn: positionActionsColumn,
7982
7966
  positionGlobalFilter: positionGlobalFilter,
7983
7967
  positionPagination: positionPagination,