material-react-table 0.14.5 → 0.15.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.
@@ -1,14 +1,13 @@
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, TableGenerics, TableInstance, TableState, UseTableInstanceOptions, VisibilityState } from '@tanstack/react-table';
3
+ import { Cell, Column, ColumnDef, 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';
7
- export declare type MRT_TableOptions<D extends Record<string, any> = {}> = Partial<Omit<UseTableInstanceOptions<ReactTableGenerics>, 'columns' | 'data' | 'initialState' | 'state' | 'expandRowsFn' | 'filterFns'>> & {
7
+ export declare type MRT_TableOptions<D extends Record<string, any> = {}> = Partial<Omit<UseTableInstanceOptions<ReactTableGenerics>, 'columns' | 'data' | 'initialState' | 'state' | 'expandRowsFn'>> & {
8
8
  columns: MRT_ColumnDef<D>[];
9
9
  data: D[];
10
10
  expandRowsFn?: (dataRow: D) => D[];
11
- filterFns?: MRT_FILTER_OPTION | FilterFn<D> | string | number | symbol;
12
11
  initialState?: Partial<MRT_TableState<D>>;
13
12
  state?: Partial<MRT_TableState<D>>;
14
13
  };
@@ -21,7 +20,7 @@ export interface MRT_RowModel<D extends Record<string, any> = {}> {
21
20
  }
22
21
  export declare type MRT_TableInstance<D extends Record<string, any> = {}> = Omit<TableInstance<Overwrite<Partial<TableGenerics>, {
23
22
  Row: D;
24
- }>>, 'getAllColumns' | 'getAllFlatColumns' | 'getAllLeafColumns' | 'getCenterLeafColumns' | 'getColumn' | 'getExpandedRowModel' | 'getFlatHeaders' | 'getLeftLeafColumns' | 'getPaginationRowModel' | 'getPrePaginationRowModel' | 'getRightLeafColumns' | 'getRowModel' | 'getSelectedRowModel' | 'getState' | 'options'> & {
23
+ }>>, 'getAllColumns' | 'getAllFlatColumns' | 'getAllLeafColumns' | 'getCenterLeafColumns' | 'getColumn' | 'getExpandedRowModel' | 'getFlatHeaders' | 'getLeftLeafColumns' | 'getPaginationRowModel' | 'getPreFilteredRowModel' | 'getPrePaginationRowModel' | 'getRightLeafColumns' | 'getRowModel' | 'getSelectedRowModel' | 'getState' | 'options'> & {
25
24
  getAllColumns: () => MRT_Column<D>[];
26
25
  getAllFlatColumns: () => MRT_Column<D>[];
27
26
  getAllLeafColumns: () => MRT_Column<D>[];
@@ -31,6 +30,7 @@ export declare type MRT_TableInstance<D extends Record<string, any> = {}> = Omit
31
30
  getFlatHeaders: () => MRT_Header<D>[];
32
31
  getLeftLeafColumns: () => MRT_Column<D>[];
33
32
  getPaginationRowModel: () => MRT_RowModel<D>;
33
+ getPreFilteredRowModel: () => MRT_RowModel<D>;
34
34
  getPrePaginationRowModel: () => MRT_RowModel<D>;
35
35
  getRightLeafColumns: () => MRT_Column<D>[];
36
36
  getRowModel: () => MRT_RowModel<D>;
@@ -65,7 +65,7 @@ export declare type MRT_TableState<D extends Record<string, any> = {}> = TableSt
65
65
  showProgressBars: boolean;
66
66
  showSkeletons: boolean;
67
67
  };
68
- export declare type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<ColumnDef<D>, 'accessorFn' | 'aggregatedCell' | 'header' | 'footer' | 'columns' | 'filterFn' | 'cell'> & {
68
+ export declare type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<ColumnDef<D>, 'accessorFn' | 'aggregatedCell' | 'cell' | 'columns' | 'filterFn' | 'footer' | 'header' | 'sortingFn'> & {
69
69
  AggregatedCell?: ({ cell, instance, }: {
70
70
  cell: MRT_Cell<D>;
71
71
  instance: MRT_TableInstance<D>;
@@ -96,6 +96,7 @@ export declare type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<Col
96
96
  enableColumnActions?: boolean;
97
97
  enableColumnOrdering?: boolean;
98
98
  enableEditing?: boolean;
99
+ enableColumnFilterChangeMode?: boolean;
99
100
  enabledColumnFilterOptions?: (MRT_FILTER_OPTION | string)[] | null;
100
101
  filterFn?: MRT_FilterFn;
101
102
  filterSelectOptions?: (string | {
@@ -155,6 +156,7 @@ export declare type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<Col
155
156
  filterValue: any;
156
157
  instance: MRT_TableInstance<D>;
157
158
  }) => void;
159
+ sortingFn?: MRT_SortingFn;
158
160
  };
159
161
  export declare type MRT_Column<D extends Record<string, any> = {}> = Omit<Column<D>, 'header' | 'footer' | 'columns' | 'columnDef'> & {
160
162
  columns?: MRT_Column<D>[];
@@ -179,17 +181,22 @@ export declare type MRT_Cell<D extends Record<string, any> = {}> = Omit<Cell<D>,
179
181
  column: MRT_Column<D>;
180
182
  row: MRT_Row<D>;
181
183
  };
184
+ export declare type MRT_SortingOption = SortingFnOption<TableGenerics> | 'fuzzy';
185
+ export declare type MRT_SortingFn = SortingFn<TableGenerics> | MRT_SortingOption;
182
186
  export declare type MRT_FILTER_OPTION = 'between' | 'contains' | 'empty' | 'endsWith' | 'equals' | 'fuzzy' | 'greaterThan' | 'greaterThanOrEqual' | 'lessThan' | 'lessThanOrEqual' | 'notEmpty' | 'notEquals' | 'startsWith' | FilterFnOption<TableGenerics>;
183
- export declare type MRT_FilterFn = FilterFn<TableGenerics> | MRT_FILTER_OPTION | number | string | symbol;
187
+ export declare type MRT_FilterFn = FilterFn<TableGenerics> | MRT_FILTER_OPTION;
184
188
  export declare type MaterialReactTableProps<D extends Record<string, any> = {}> = MRT_TableOptions<D> & {
185
189
  editingMode?: 'table' | 'row' | 'cell';
186
190
  enableClickToCopy?: boolean;
187
191
  enableColumnActions?: boolean;
192
+ enableColumnFilterChangeMode?: boolean;
188
193
  enableColumnOrdering?: boolean;
189
194
  enableDensityToggle?: boolean;
190
195
  enableEditing?: boolean;
191
196
  enableExpandAll?: boolean;
192
197
  enableFullScreenToggle?: boolean;
198
+ enableGlobalFilterChangeMode?: boolean;
199
+ enableGlobalFilterRankedResults?: boolean;
193
200
  enablePagination?: boolean;
194
201
  enablePersistentState?: boolean;
195
202
  enableRowActions?: boolean;
@@ -451,5 +458,5 @@ export declare type MaterialReactTableProps<D extends Record<string, any> = {}>
451
458
  tableId?: string;
452
459
  virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement>>;
453
460
  };
454
- declare const _default: <D extends Record<string, any> = {}>({ autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableColumnActions, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGrouping, enableHiding, enableMultiRowSelection, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarBottom, enableToolbarInternalActions, enableToolbarTop, icons, localization, persistentStateMode, positionActionsColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, rowNumberMode, selectAllMode, ...rest }: MaterialReactTableProps<D>) => JSX.Element;
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;
455
462
  export default _default;
@@ -44,7 +44,7 @@ export declare const notEmpty: {
44
44
  (row: MRT_Row, id: string, _filterValue: string | number): boolean;
45
45
  autoRemove(val: any): boolean;
46
46
  };
47
- export declare const defaultFilterFNs: {
47
+ export declare const MRT_FilterFns: {
48
48
  between: {
49
49
  (row: MRT_Row, id: string, filterValues: [string | number, string | number]): boolean;
50
50
  autoRemove(val: any): boolean;
@@ -3,5 +3,5 @@ import { MRT_TableInstance } from '..';
3
3
  interface Props {
4
4
  instance: MRT_TableInstance;
5
5
  }
6
- export declare const MRT_SearchTextField: FC<Props>;
6
+ export declare const MRT_GlobalFilterTextField: FC<Props>;
7
7
  export {};
@@ -173,7 +173,7 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton(_ref) {
173
173
  enterDelay: 1000,
174
174
  enterNextDelay: 1000,
175
175
  title: localization.expandAll
176
- }, React__default.createElement(material.IconButton, Object.assign({
176
+ }, React__default.createElement("span", null, React__default.createElement(material.IconButton, Object.assign({
177
177
  "aria-label": localization.expandAll,
178
178
  disabled: !getCanSomeRowsExpand() && !renderDetailPanel,
179
179
  onClick: function onClick() {
@@ -189,7 +189,7 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton(_ref) {
189
189
  transform: "rotate(" + (getIsAllRowsExpanded() ? -180 : getIsSomeRowsExpanded() ? -90 : 0) + "deg)",
190
190
  transition: 'transform 0.2s'
191
191
  }
192
- })));
192
+ }))));
193
193
  };
194
194
 
195
195
  var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
@@ -225,7 +225,7 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
225
225
  enterDelay: 1000,
226
226
  enterNextDelay: 1000,
227
227
  title: localization.expand
228
- }, React__default.createElement(material.IconButton, Object.assign({
228
+ }, React__default.createElement("span", null, React__default.createElement(material.IconButton, Object.assign({
229
229
  "aria-label": localization.expand,
230
230
  disabled: !row.getCanExpand() && !renderDetailPanel,
231
231
  onClick: handleToggleExpand
@@ -239,7 +239,7 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
239
239
  transform: "rotate(" + (!row.getCanExpand() && !renderDetailPanel ? -90 : row.getIsExpanded() ? -180 : 0) + "deg)",
240
240
  transition: 'transform 0.2s'
241
241
  }
242
- })));
242
+ }))));
243
243
  };
244
244
 
245
245
  var fuzzy = function fuzzy(row, columnId, filterValue, addMeta) {
@@ -334,7 +334,7 @@ notEmpty.autoRemove = function (val) {
334
334
  return !val;
335
335
  };
336
336
 
337
- var defaultFilterFNs = {
337
+ var MRT_FilterFns = {
338
338
  between: between,
339
339
  contains: contains,
340
340
  empty: empty,
@@ -3397,7 +3397,7 @@ var createDataColumn = function createDataColumn(table, column, currentFilterFns
3397
3397
  return (// @ts-ignore
3398
3398
  table.createDataColumn(column.id, _extends({
3399
3399
  filterFn: currentFilterFns[column.id] instanceof Function ? currentFilterFns[column.id] : // @ts-ignore
3400
- defaultFilterFNs[currentFilterFns[column.id]]
3400
+ MRT_FilterFns[currentFilterFns[column.id]]
3401
3401
  }, column))
3402
3402
  );
3403
3403
  };
@@ -5291,19 +5291,22 @@ var MRT_ToggleGlobalFilterButton = function MRT_ToggleGlobalFilterButton(_ref) {
5291
5291
  }, rest), showGlobalFilter ? React__default.createElement(SearchOffIcon, null) : React__default.createElement(SearchIcon, null)));
5292
5292
  };
5293
5293
 
5294
- var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
5294
+ var MRT_GlobalFilterTextField = function MRT_GlobalFilterTextField(_ref) {
5295
+ var _localization$clearSe;
5296
+
5295
5297
  var instance = _ref.instance;
5296
5298
  var getState = instance.getState,
5297
5299
  setGlobalFilter = instance.setGlobalFilter,
5298
5300
  _instance$options = instance.options,
5301
+ enableGlobalFilterChangeMode = _instance$options.enableGlobalFilterChangeMode,
5299
5302
  _instance$options$ico = _instance$options.icons,
5300
5303
  SearchIcon = _instance$options$ico.SearchIcon,
5301
5304
  CloseIcon = _instance$options$ico.CloseIcon,
5302
- tableId = _instance$options.tableId,
5303
5305
  localization = _instance$options.localization,
5304
5306
  muiSearchTextFieldProps = _instance$options.muiSearchTextFieldProps,
5305
5307
  onGlobalFilterValueChanged = _instance$options.onGlobalFilterValueChanged,
5306
- onGlobalFilterValueChangedDebounced = _instance$options.onGlobalFilterValueChangedDebounced;
5308
+ onGlobalFilterValueChangedDebounced = _instance$options.onGlobalFilterValueChangedDebounced,
5309
+ tableId = _instance$options.tableId;
5307
5310
 
5308
5311
  var _getState = getState(),
5309
5312
  globalFilter = _getState.globalFilter,
@@ -5358,7 +5361,7 @@ var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
5358
5361
  value: searchValue != null ? searchValue : '',
5359
5362
  variant: "standard",
5360
5363
  InputProps: {
5361
- startAdornment: React__default.createElement(material.InputAdornment, {
5364
+ startAdornment: enableGlobalFilterChangeMode ? React__default.createElement(material.InputAdornment, {
5362
5365
  position: "start"
5363
5366
  }, React__default.createElement(material.Tooltip, {
5364
5367
  arrow: true,
@@ -5371,16 +5374,18 @@ var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
5371
5374
  height: '1.75rem',
5372
5375
  width: '1.75rem'
5373
5376
  }
5374
- }, React__default.createElement(SearchIcon, null)))),
5377
+ }, React__default.createElement(SearchIcon, null)))) : React__default.createElement(SearchIcon, null),
5375
5378
  endAdornment: React__default.createElement(material.InputAdornment, {
5376
5379
  position: "end"
5377
- }, React__default.createElement(material.IconButton, {
5380
+ }, React__default.createElement(material.Tooltip, {
5381
+ arrow: true,
5382
+ title: (_localization$clearSe = localization.clearSearch) != null ? _localization$clearSe : ''
5383
+ }, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
5378
5384
  "aria-label": localization.clearSearch,
5379
- disabled: (searchValue == null ? void 0 : searchValue.length) === 0,
5385
+ disabled: !(searchValue != null && searchValue.length),
5380
5386
  onClick: handleClear,
5381
- size: "small",
5382
- title: localization.clearSearch
5383
- }, React__default.createElement(CloseIcon, null)))
5387
+ size: "small"
5388
+ }, React__default.createElement(CloseIcon, null)))))
5384
5389
  }
5385
5390
  }, textFieldProps)), React__default.createElement(MRT_FilterOptionMenu, {
5386
5391
  anchorEl: anchorEl,
@@ -5415,7 +5420,7 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
5415
5420
  MRT_ToggleFiltersButton: MRT_ToggleFiltersButton,
5416
5421
  MRT_ToggleGlobalFilterButton: MRT_ToggleGlobalFilterButton,
5417
5422
  instance: instance
5418
- })) != null ? _renderToolbarInterna : React__default.createElement(React__default.Fragment, null, enableGlobalFilter && positionGlobalFilter === 'right' && React__default.createElement(MRT_SearchTextField, {
5423
+ })) != null ? _renderToolbarInterna : React__default.createElement(React__default.Fragment, null, enableGlobalFilter && positionGlobalFilter === 'right' && React__default.createElement(MRT_GlobalFilterTextField, {
5419
5424
  instance: instance
5420
5425
  }), enableFilters && enableGlobalFilter && React__default.createElement(MRT_ToggleGlobalFilterButton, {
5421
5426
  instance: instance
@@ -5641,13 +5646,13 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
5641
5646
  top: 0,
5642
5647
  width: '100%'
5643
5648
  }
5644
- }, enableGlobalFilter && positionGlobalFilter === 'left' && React__default.createElement(MRT_SearchTextField, {
5649
+ }, enableGlobalFilter && positionGlobalFilter === 'left' && React__default.createElement(MRT_GlobalFilterTextField, {
5645
5650
  instance: instance
5646
5651
  }), (_renderToolbarTopCust = renderToolbarTopCustomActions == null ? void 0 : renderToolbarTopCustomActions({
5647
5652
  instance: instance
5648
5653
  })) != null ? _renderToolbarTopCust : React__default.createElement("span", null), enableToolbarInternalActions ? React__default.createElement(MRT_ToolbarInternalButtons, {
5649
5654
  instance: instance
5650
- }) : enableGlobalFilter && positionGlobalFilter === 'right' && React__default.createElement(MRT_SearchTextField, {
5655
+ }) : enableGlobalFilter && positionGlobalFilter === 'right' && React__default.createElement(MRT_GlobalFilterTextField, {
5651
5656
  instance: instance
5652
5657
  })), enablePagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React__default.createElement(MRT_TablePagination, {
5653
5658
  instance: instance,
@@ -5724,13 +5729,14 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
5724
5729
  };
5725
5730
 
5726
5731
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5727
- var _localization$filterB, _columnDef$enabledCol, _allowedColumnFilterO, _localization$filterM, _localization$, _allowedColumnFilterO2, _localization$clearFi, _columnDef$filterSele;
5732
+ var _localization$filterB, _columnDef$enabledCol, _allowedColumnFilterO, _localization$filterM, _localization$, _localization$clearFi, _columnDef$filterSele;
5728
5733
 
5729
5734
  var header = _ref.header,
5730
5735
  inputIndex = _ref.inputIndex,
5731
5736
  instance = _ref.instance;
5732
5737
  var getState = instance.getState,
5733
5738
  _instance$options = instance.options,
5739
+ enableColumnFilterChangeMode = _instance$options.enableColumnFilterChangeMode,
5734
5740
  enabledColumnFilterOptions = _instance$options.enabledColumnFilterOptions,
5735
5741
  _instance$options$ico = _instance$options.icons,
5736
5742
  FilterListIcon = _instance$options$ico.FilterListIcon,
@@ -5856,6 +5862,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5856
5862
  localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))] : '';
5857
5863
  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 : '';
5858
5864
  var allowedColumnFilterOptions = (_columnDef$enabledCol = columnDef == null ? void 0 : columnDef.enabledColumnFilterOptions) != null ? _columnDef$enabledCol : enabledColumnFilterOptions;
5865
+ var allowColumnChangeMode = enableColumnFilterChangeMode && columnDef.enableColumnFilterChangeMode !== false;
5859
5866
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TextField, Object.assign({
5860
5867
  fullWidth: true,
5861
5868
  id: filterId,
@@ -5867,7 +5874,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5867
5874
  },
5868
5875
  title: filterPlaceholder
5869
5876
  },
5870
- helperText: !inputIndex && (allowedColumnFilterOptions === undefined || ((_allowedColumnFilterO = allowedColumnFilterOptions == null ? void 0 : allowedColumnFilterOptions.length) != null ? _allowedColumnFilterO : 0) > 0) ? React__default.createElement("label", {
5877
+ helperText: allowColumnChangeMode && !inputIndex && (allowedColumnFilterOptions === undefined || ((_allowedColumnFilterO = allowedColumnFilterOptions == null ? void 0 : allowedColumnFilterOptions.length) != null ? _allowedColumnFilterO : 0) > 0) ? React__default.createElement("label", {
5871
5878
  htmlFor: filterId
5872
5879
  }, filterFn instanceof Function ? (_localization$filterM = localization.filterMode.replace('{filterType}', // @ts-ignore
5873
5880
  (_localization$ = localization["filter" + (filterFn.name.charAt(0).toUpperCase() + filterFn.name.slice(1))]) != null ? _localization$ : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
@@ -5879,7 +5886,6 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5879
5886
  whiteSpace: 'nowrap'
5880
5887
  }
5881
5888
  },
5882
- label: isSelectFilter && !filterValue ? filterPlaceholder : undefined,
5883
5889
  margin: "none",
5884
5890
  placeholder: filterChipLabel || isSelectFilter ? undefined : filterPlaceholder,
5885
5891
  onChange: handleChange,
@@ -5890,7 +5896,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5890
5896
  value: filterValue != null ? filterValue : '',
5891
5897
  variant: "standard",
5892
5898
  InputProps: {
5893
- startAdornment: !isSelectFilter && !inputIndex && (allowedColumnFilterOptions === undefined || ((_allowedColumnFilterO2 = allowedColumnFilterOptions == null ? void 0 : allowedColumnFilterOptions.length) != null ? _allowedColumnFilterO2 : 0) > 0) && React__default.createElement(material.InputAdornment, {
5899
+ startAdornment: allowColumnChangeMode && !isSelectFilter && !inputIndex && (allowedColumnFilterOptions === undefined || !!(allowedColumnFilterOptions != null && allowedColumnFilterOptions.length)) ? React__default.createElement(material.InputAdornment, {
5894
5900
  position: "start"
5895
5901
  }, React__default.createElement(material.Tooltip, {
5896
5902
  arrow: true,
@@ -5906,7 +5912,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5906
5912
  }, React__default.createElement(FilterListIcon, null)))), filterChipLabel && React__default.createElement(material.Chip, {
5907
5913
  onDelete: handleClearFilterChip,
5908
5914
  label: filterChipLabel
5909
- })),
5915
+ })) : React__default.createElement(FilterListIcon, null),
5910
5916
  endAdornment: !filterChipLabel && React__default.createElement(material.InputAdornment, {
5911
5917
  position: "end"
5912
5918
  }, React__default.createElement(material.Tooltip, {
@@ -5931,7 +5937,6 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5931
5937
  p: 0,
5932
5938
  minWidth: !filterChipLabel ? '8rem' : 'auto',
5933
5939
  width: 'calc(100% + 0.5rem)',
5934
- mt: isSelectFilter && !filterValue ? '-1rem' : undefined,
5935
5940
  '& .MuiSelect-icon': {
5936
5941
  mr: '1.5rem'
5937
5942
  }
@@ -7284,6 +7289,28 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
7284
7289
  }));
7285
7290
  };
7286
7291
 
7292
+ var fuzzy$1 = function fuzzy(rowA, rowB, columnId) {
7293
+ var dir = 0;
7294
+
7295
+ if (rowA.columnFiltersMeta[columnId]) {
7296
+ dir = matchSorterUtils.compareItems(rowA.columnFiltersMeta[columnId], rowB.columnFiltersMeta[columnId]);
7297
+ } // Provide a fallback for when the item ranks are equal
7298
+
7299
+
7300
+ return dir === 0 ? reactTable.sortingFns.alphanumeric(rowA, rowB, columnId) : dir;
7301
+ };
7302
+
7303
+ var MRT_SortingFns = {
7304
+ fuzzy: fuzzy$1
7305
+ };
7306
+ var rankGlobalFuzzy = function rankGlobalFuzzy(rowA, rowB) {
7307
+ return Math.max.apply(Math, Object.values(rowB.columnFiltersMeta).map(function (v) {
7308
+ return v.rank;
7309
+ })) - Math.max.apply(Math, Object.values(rowA.columnFiltersMeta).map(function (v) {
7310
+ return v.rank;
7311
+ }));
7312
+ };
7313
+
7287
7314
  var MRT_TableBody = function MRT_TableBody(_ref) {
7288
7315
  var instance = _ref.instance,
7289
7316
  tableContainerRef = _ref.tableContainerRef;
@@ -7291,20 +7318,43 @@ var MRT_TableBody = function MRT_TableBody(_ref) {
7291
7318
  getPrePaginationRowModel = instance.getPrePaginationRowModel,
7292
7319
  getState = instance.getState,
7293
7320
  _instance$options = instance.options,
7321
+ enableGlobalFilterRankedResults = _instance$options.enableGlobalFilterRankedResults,
7294
7322
  enablePagination = _instance$options.enablePagination,
7295
7323
  enableRowVirtualization = _instance$options.enableRowVirtualization,
7296
7324
  muiTableBodyProps = _instance$options.muiTableBodyProps,
7297
7325
  virtualizerProps = _instance$options.virtualizerProps;
7298
7326
 
7299
7327
  var _getState = getState(),
7300
- density = _getState.density;
7328
+ density = _getState.density,
7329
+ globalFilter = _getState.globalFilter,
7330
+ pagination = _getState.pagination,
7331
+ sorting = _getState.sorting;
7301
7332
 
7302
7333
  var tableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps({
7303
7334
  instance: instance
7304
7335
  }) : muiTableBodyProps;
7305
- var rows = enablePagination ? getPaginationRowModel().rows : getPrePaginationRowModel().rows;
7336
+
7337
+ var getIsSomeColumnsSorted = function getIsSomeColumnsSorted() {
7338
+ return Object.values(sorting).some(Boolean);
7339
+ };
7340
+
7341
+ var rows = React.useMemo(function () {
7342
+ if (enableGlobalFilterRankedResults && globalFilter && !getIsSomeColumnsSorted()) {
7343
+ var rankedRows = getPrePaginationRowModel().rows.sort(function (a, b) {
7344
+ return rankGlobalFuzzy(a, b);
7345
+ });
7346
+
7347
+ if (enablePagination) {
7348
+ return rankedRows.slice(0, pagination.pageSize);
7349
+ }
7350
+
7351
+ return rankedRows;
7352
+ }
7353
+
7354
+ return enablePagination ? getPaginationRowModel().rows : getPrePaginationRowModel().rows;
7355
+ }, [enableGlobalFilterRankedResults, enableGlobalFilterRankedResults && globalFilter || !enablePagination ? getPrePaginationRowModel().rows : getPaginationRowModel().rows, globalFilter]);
7306
7356
  var rowVirtualizer = enableRowVirtualization ? useVirtual(_extends({
7307
- overscan: density === 'compact' ? 15 : 5,
7357
+ overscan: density === 'compact' ? 20 : 10,
7308
7358
  size: rows.length,
7309
7359
  parentRef: tableContainerRef
7310
7360
  }, virtualizerProps)) : {};
@@ -7633,8 +7683,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7633
7683
  var table = React.useMemo(function () {
7634
7684
  return (// @ts-ignore
7635
7685
  reactTable.createTable().setOptions({
7636
- //@ts-ignore
7637
- filterFns: defaultFilterFNs,
7686
+ filterFns: _extends({}, reactTable.filterFns, MRT_FilterFns, props.filterFns),
7638
7687
  getCoreRowModel: reactTable.getCoreRowModel(),
7639
7688
  getExpandedRowModel: reactTable.getExpandedRowModel(),
7640
7689
  getFacetedRowModel: reactTable.getFacetedRowModel(),
@@ -7642,10 +7691,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7642
7691
  getGroupedRowModel: reactTable.getGroupedRowModel(),
7643
7692
  getPaginationRowModel: reactTable.getPaginationRowModel(),
7644
7693
  getSortedRowModel: reactTable.getSortedRowModel(),
7645
- getSubRows: function getSubRows(row) {
7646
- return row == null ? void 0 : row.subRows;
7647
- },
7648
- tableId: tableId
7694
+ sortingFns: _extends({}, reactTable.sortingFns, MRT_SortingFns, props.sortingFns)
7649
7695
  })
7650
7696
  );
7651
7697
  }, []);
@@ -7742,6 +7788,9 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7742
7788
  //@ts-ignore
7743
7789
  columns: columns,
7744
7790
  data: data,
7791
+ getSubRows: function getSubRows(row) {
7792
+ return row == null ? void 0 : row.subRows;
7793
+ },
7745
7794
  //@ts-ignore
7746
7795
  globalFilterFn: currentGlobalFilterFn,
7747
7796
  initialState: initialState,
@@ -7755,7 +7804,8 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7755
7804
  isFullScreen: isFullScreen,
7756
7805
  showFilters: showFilters,
7757
7806
  showGlobalFilter: showGlobalFilter
7758
- }, props.state)
7807
+ }, props.state),
7808
+ tableId: tableId
7759
7809
  })), {
7760
7810
  setCurrentEditingCell: (_props$onCurrentEditi = props.onCurrentEditingCellChange) != null ? _props$onCurrentEditi : setCurrentEditingCell,
7761
7811
  setCurrentEditingRow: (_props$onCurrentEditi2 = props.onCurrentEditingRowChange) != null ? _props$onCurrentEditi2 : setCurrentEditingRow,
@@ -7807,7 +7857,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7807
7857
  }));
7808
7858
  };
7809
7859
 
7810
- var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "rowNumberMode", "selectAllMode"];
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"];
7811
7861
  var MaterialReactTable = (function (_ref) {
7812
7862
  var _ref$autoResetExpande = _ref.autoResetExpanded,
7813
7863
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -7823,8 +7873,10 @@ var MaterialReactTable = (function (_ref) {
7823
7873
  editingMode = _ref$editingMode === void 0 ? 'row' : _ref$editingMode,
7824
7874
  _ref$enableColumnActi = _ref.enableColumnActions,
7825
7875
  enableColumnActions = _ref$enableColumnActi === void 0 ? true : _ref$enableColumnActi,
7826
- _ref$enableColumnFilt = _ref.enableColumnFilters,
7827
- enableColumnFilters = _ref$enableColumnFilt === void 0 ? true : _ref$enableColumnFilt,
7876
+ _ref$enableColumnFilt = _ref.enableColumnFilterChangeMode,
7877
+ enableColumnFilterChangeMode = _ref$enableColumnFilt === void 0 ? true : _ref$enableColumnFilt,
7878
+ _ref$enableColumnFilt2 = _ref.enableColumnFilters,
7879
+ enableColumnFilters = _ref$enableColumnFilt2 === void 0 ? true : _ref$enableColumnFilt2,
7828
7880
  _ref$enableColumnOrde = _ref.enableColumnOrdering,
7829
7881
  enableColumnOrdering = _ref$enableColumnOrde === void 0 ? false : _ref$enableColumnOrde,
7830
7882
  _ref$enableColumnResi = _ref.enableColumnResizing,
@@ -7839,12 +7891,18 @@ var MaterialReactTable = (function (_ref) {
7839
7891
  enableFullScreenToggle = _ref$enableFullScreen === void 0 ? true : _ref$enableFullScreen,
7840
7892
  _ref$enableGlobalFilt = _ref.enableGlobalFilter,
7841
7893
  enableGlobalFilter = _ref$enableGlobalFilt === void 0 ? true : _ref$enableGlobalFilt,
7894
+ _ref$enableGlobalFilt2 = _ref.enableGlobalFilterChangeMode,
7895
+ enableGlobalFilterChangeMode = _ref$enableGlobalFilt2 === void 0 ? true : _ref$enableGlobalFilt2,
7896
+ _ref$enableGlobalFilt3 = _ref.enableGlobalFilterRankedResults,
7897
+ enableGlobalFilterRankedResults = _ref$enableGlobalFilt3 === void 0 ? true : _ref$enableGlobalFilt3,
7842
7898
  _ref$enableGrouping = _ref.enableGrouping,
7843
7899
  enableGrouping = _ref$enableGrouping === void 0 ? false : _ref$enableGrouping,
7844
7900
  _ref$enableHiding = _ref.enableHiding,
7845
7901
  enableHiding = _ref$enableHiding === void 0 ? true : _ref$enableHiding,
7846
7902
  _ref$enableMultiRowSe = _ref.enableMultiRowSelection,
7847
7903
  enableMultiRowSelection = _ref$enableMultiRowSe === void 0 ? true : _ref$enableMultiRowSe,
7904
+ _ref$enableMultiSort = _ref.enableMultiSort,
7905
+ enableMultiSort = _ref$enableMultiSort === void 0 ? true : _ref$enableMultiSort,
7848
7906
  _ref$enablePagination = _ref.enablePagination,
7849
7907
  enablePagination = _ref$enablePagination === void 0 ? true : _ref$enablePagination,
7850
7908
  _ref$enablePinning = _ref.enablePinning,
@@ -7891,6 +7949,7 @@ var MaterialReactTable = (function (_ref) {
7891
7949
  defaultColumn: defaultColumn,
7892
7950
  editingMode: editingMode,
7893
7951
  enableColumnActions: enableColumnActions,
7952
+ enableColumnFilterChangeMode: enableColumnFilterChangeMode,
7894
7953
  enableColumnFilters: enableColumnFilters,
7895
7954
  enableColumnOrdering: enableColumnOrdering,
7896
7955
  enableColumnResizing: enableColumnResizing,
@@ -7899,9 +7958,12 @@ var MaterialReactTable = (function (_ref) {
7899
7958
  enableFilters: enableFilters,
7900
7959
  enableFullScreenToggle: enableFullScreenToggle,
7901
7960
  enableGlobalFilter: enableGlobalFilter,
7961
+ enableGlobalFilterChangeMode: enableGlobalFilterChangeMode,
7962
+ enableGlobalFilterRankedResults: enableGlobalFilterRankedResults,
7902
7963
  enableGrouping: enableGrouping,
7903
7964
  enableHiding: enableHiding,
7904
7965
  enableMultiRowSelection: enableMultiRowSelection,
7966
+ enableMultiSort: enableMultiSort,
7905
7967
  enablePagination: enablePagination,
7906
7968
  enablePinning: enablePinning,
7907
7969
  enableRowSelection: enableRowSelection,