material-react-table 0.16.2 → 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.
@@ -870,7 +870,7 @@ var commonListItemStyles = {
870
870
  alignItems: 'center'
871
871
  };
872
872
  var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
873
- 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;
874
874
 
875
875
  var anchorEl = _ref.anchorEl,
876
876
  header = _ref.header,
@@ -880,12 +880,14 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
880
880
  toggleAllColumnsVisible = instance.toggleAllColumnsVisible,
881
881
  setColumnOrder = instance.setColumnOrder,
882
882
  _instance$options = instance.options,
883
+ enableColumnFilterChangeMode = _instance$options.enableColumnFilterChangeMode,
883
884
  enableColumnFilters = _instance$options.enableColumnFilters,
884
885
  enableColumnResizing = _instance$options.enableColumnResizing,
885
886
  enableGrouping = _instance$options.enableGrouping,
886
887
  enableHiding = _instance$options.enableHiding,
887
888
  enablePinning = _instance$options.enablePinning,
888
889
  enableSorting = _instance$options.enableSorting,
890
+ enabledColumnFilterOptions = _instance$options.enabledColumnFilterOptions,
889
891
  _instance$options$ico = _instance$options.icons,
890
892
  ArrowRightIcon = _instance$options$ico.ArrowRightIcon,
891
893
  ClearAllIcon = _instance$options$ico.ClearAllIcon,
@@ -985,6 +987,9 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
985
987
  setShowHideColumnsMenuAnchorEl(event.currentTarget);
986
988
  };
987
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));
988
993
  return React.createElement(Menu, {
989
994
  anchorEl: anchorEl,
990
995
  open: !!anchorEl,
@@ -1034,21 +1039,21 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
1034
1039
  sx: commonMenuItemStyles$1
1035
1040
  }, React.createElement(Box, {
1036
1041
  sx: commonListItemStyles
1037
- }, 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, {
1038
1043
  onClick: handleOpenFilterModeMenu,
1039
1044
  onMouseEnter: handleOpenFilterModeMenu,
1040
1045
  size: "small",
1041
1046
  sx: {
1042
1047
  p: 0
1043
1048
  }
1044
- }, React.createElement(ArrowRightIcon, null))), React.createElement(MRT_FilterOptionMenu, {
1049
+ }, React.createElement(ArrowRightIcon, null))), showFilterModeSubMenu && React.createElement(MRT_FilterOptionMenu, {
1045
1050
  anchorEl: filterMenuAnchorEl,
1046
1051
  header: header,
1047
1052
  key: 2,
1048
1053
  onSelect: handleFilterByColumn,
1049
1054
  setAnchorEl: setFilterMenuAnchorEl,
1050
1055
  instance: instance
1051
- })], enableGrouping && column.getCanGroup() && [React.createElement(MenuItem, {
1056
+ })].filter(Boolean), enableGrouping && column.getCanGroup() && [React.createElement(MenuItem, {
1052
1057
  divider: enablePinning,
1053
1058
  key: 0,
1054
1059
  onClick: handleGroupByColumn,
@@ -1703,7 +1708,8 @@ var MRT_TablePagination = function MRT_TablePagination(_ref) {
1703
1708
  setPageSize = instance.setPageSize,
1704
1709
  _instance$options = instance.options,
1705
1710
  muiTablePaginationProps = _instance$options.muiTablePaginationProps,
1706
- enableToolbarInternalActions = _instance$options.enableToolbarInternalActions;
1711
+ enableToolbarInternalActions = _instance$options.enableToolbarInternalActions,
1712
+ rowCount = _instance$options.rowCount;
1707
1713
 
1708
1714
  var _getState = getState(),
1709
1715
  _getState$pagination = _getState.pagination,
@@ -1721,7 +1727,8 @@ var MRT_TablePagination = function MRT_TablePagination(_ref) {
1721
1727
  setPageSize(+event.target.value);
1722
1728
  };
1723
1729
 
1724
- var showFirstLastPageButtons = getPrePaginationRowModel().rows.length / pageSize > 2;
1730
+ var totalRowCount = rowCount != null ? rowCount : getPrePaginationRowModel().rows.length;
1731
+ var showFirstLastPageButtons = totalRowCount / pageSize > 2;
1725
1732
  return React.createElement(TablePagination, Object.assign({
1726
1733
  SelectProps: {
1727
1734
  sx: {
@@ -1734,7 +1741,7 @@ var MRT_TablePagination = function MRT_TablePagination(_ref) {
1734
1741
  }
1735
1742
  },
1736
1743
  component: "div",
1737
- count: getPrePaginationRowModel().rows.length,
1744
+ count: totalRowCount,
1738
1745
  onPageChange: function onPageChange(_, newPage) {
1739
1746
  return setPageIndex(newPage);
1740
1747
  },
@@ -1988,7 +1995,7 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1988
1995
  };
1989
1996
 
1990
1997
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1991
- 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;
1992
1999
 
1993
2000
  var header = _ref.header,
1994
2001
  inputIndex = _ref.inputIndex,
@@ -2121,7 +2128,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
2121
2128
  localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))] : '';
2122
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 : '';
2123
2130
  var allowedColumnFilterOptions = (_columnDef$enabledCol = columnDef == null ? void 0 : columnDef.enabledColumnFilterOptions) != null ? _columnDef$enabledCol : enabledColumnFilterOptions;
2124
- var allowColumnChangeMode = enableColumnFilterChangeMode && columnDef.enableColumnFilterChangeMode !== false;
2131
+ var showChangeModeButton = enableColumnFilterChangeMode && columnDef.enableColumnFilterChangeMode !== false && !isSelectFilter && !inputIndex && (allowedColumnFilterOptions === undefined || !!(allowedColumnFilterOptions != null && allowedColumnFilterOptions.length));
2125
2132
  return React.createElement(React.Fragment, null, React.createElement(TextField, Object.assign({
2126
2133
  fullWidth: true,
2127
2134
  id: filterId,
@@ -2133,7 +2140,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
2133
2140
  },
2134
2141
  title: filterPlaceholder
2135
2142
  },
2136
- 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", {
2137
2144
  htmlFor: filterId
2138
2145
  }, filterFn instanceof Function ? (_localization$filterM = localization.filterMode.replace('{filterType}', // @ts-ignore
2139
2146
  (_localization = localization["filter" + (filterFn.name.charAt(0).toUpperCase() + filterFn.name.slice(1))]) != null ? _localization : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
@@ -2155,7 +2162,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
2155
2162
  value: filterValue != null ? filterValue : '',
2156
2163
  variant: "standard",
2157
2164
  InputProps: {
2158
- startAdornment: allowColumnChangeMode && !isSelectFilter && !inputIndex && (allowedColumnFilterOptions === undefined || !!(allowedColumnFilterOptions != null && allowedColumnFilterOptions.length)) ? React.createElement(InputAdornment, {
2165
+ startAdornment: showChangeModeButton ? React.createElement(InputAdornment, {
2159
2166
  position: "start"
2160
2167
  }, React.createElement(Tooltip, {
2161
2168
  arrow: true,
@@ -3372,29 +3379,6 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3372
3379
 
3373
3380
  var initState = (_props$initialState = props.initialState) != null ? _props$initialState : {};
3374
3381
  initState.columnOrder = (_initState$columnOrde = initState.columnOrder) != null ? _initState$columnOrde : getDefaultColumnOrderIds(props);
3375
-
3376
- if (!props.enablePersistentState || !props.tableId) {
3377
- return initState;
3378
- }
3379
-
3380
- if (typeof window === 'undefined') {
3381
- if (process.env.NODE_ENV !== 'production') {
3382
- 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');
3383
- }
3384
-
3385
- return initState;
3386
- }
3387
-
3388
- var storedState = props.persistentStateMode === 'localStorage' ? localStorage.getItem("mrt-" + tableId + "-table-state") : props.persistentStateMode === 'sessionStorage' ? sessionStorage.getItem("mrt-" + tableId + "-table-state") : '{}';
3389
-
3390
- if (storedState) {
3391
- var parsedState = JSON.parse(storedState);
3392
-
3393
- if (parsedState) {
3394
- return _extends({}, initState, parsedState);
3395
- }
3396
- }
3397
-
3398
3382
  return initState;
3399
3383
  }, []);
3400
3384
 
@@ -3577,28 +3561,6 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3577
3561
  setShowGlobalFilter: (_props$onShowGlobalFi = props.onShowGlobalFilterChange) != null ? _props$onShowGlobalFi : setShowGlobalFilter
3578
3562
  });
3579
3563
 
3580
- useEffect(function () {
3581
- if (typeof window === 'undefined' || !props.enablePersistentState) {
3582
- return;
3583
- }
3584
-
3585
- if (!props.tableId && process.env.NODE_ENV !== 'production') {
3586
- console.warn('a unique tableId prop is required for persistent table state to work');
3587
- return;
3588
- }
3589
-
3590
- var itemArgs = ["mrt-" + tableId + "-table-state", JSON.stringify(instance.getState())];
3591
-
3592
- if (props.persistentStateMode === 'localStorage') {
3593
- var _localStorage;
3594
-
3595
- (_localStorage = localStorage).setItem.apply(_localStorage, itemArgs);
3596
- } else if (props.persistentStateMode === 'sessionStorage') {
3597
- var _sessionStorage;
3598
-
3599
- (_sessionStorage = sessionStorage).setItem.apply(_sessionStorage, itemArgs);
3600
- }
3601
- }, [props.enablePersistentState, props.tableId, props.persistentStateMode, instance]);
3602
3564
  useEffect(function () {
3603
3565
  props == null ? void 0 : props.onColumnOrderChanged == null ? void 0 : props.onColumnOrderChanged({
3604
3566
  columnOrder: instance.getState().columnOrder,
@@ -3638,7 +3600,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3638
3600
  }));
3639
3601
  };
3640
3602
 
3641
- 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"];
3642
3604
  var MaterialReactTable = (function (_ref) {
3643
3605
  var _ref$autoResetExpande = _ref.autoResetExpanded,
3644
3606
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -3708,8 +3670,6 @@ var MaterialReactTable = (function (_ref) {
3708
3670
  enableToolbarTop = _ref$enableToolbarTop === void 0 ? true : _ref$enableToolbarTop,
3709
3671
  icons = _ref.icons,
3710
3672
  localization = _ref.localization,
3711
- _ref$persistentStateM = _ref.persistentStateMode,
3712
- persistentStateMode = _ref$persistentStateM === void 0 ? 'sessionStorage' : _ref$persistentStateM,
3713
3673
  _ref$positionActionsC = _ref.positionActionsColumn,
3714
3674
  positionActionsColumn = _ref$positionActionsC === void 0 ? 'first' : _ref$positionActionsC,
3715
3675
  _ref$positionGlobalFi = _ref.positionGlobalFilter,
@@ -3758,7 +3718,6 @@ var MaterialReactTable = (function (_ref) {
3758
3718
  enableToolbarTop: enableToolbarTop,
3759
3719
  icons: _extends({}, MRT_Default_Icons, icons),
3760
3720
  localization: _extends({}, MRT_DefaultLocalization_EN, localization),
3761
- persistentStateMode: persistentStateMode,
3762
3721
  positionActionsColumn: positionActionsColumn,
3763
3722
  positionGlobalFilter: positionGlobalFilter,
3764
3723
  positionPagination: positionPagination,