material-react-table 0.14.3 → 0.14.6

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
  };
@@ -65,7 +64,7 @@ export declare type MRT_TableState<D extends Record<string, any> = {}> = TableSt
65
64
  showProgressBars: boolean;
66
65
  showSkeletons: boolean;
67
66
  };
68
- export declare type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<ColumnDef<D>, 'accessorFn' | 'aggregatedCell' | 'header' | 'footer' | 'columns' | 'filterFn' | 'cell'> & {
67
+ export declare type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<ColumnDef<D>, 'accessorFn' | 'aggregatedCell' | 'cell' | 'columns' | 'filterFn' | 'footer' | 'header' | 'sortingFn'> & {
69
68
  AggregatedCell?: ({ cell, instance, }: {
70
69
  cell: MRT_Cell<D>;
71
70
  instance: MRT_TableInstance<D>;
@@ -96,6 +95,7 @@ export declare type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<Col
96
95
  enableColumnActions?: boolean;
97
96
  enableColumnOrdering?: boolean;
98
97
  enableEditing?: boolean;
98
+ enableColumnFilterChangeMode?: boolean;
99
99
  enabledColumnFilterOptions?: (MRT_FILTER_OPTION | string)[] | null;
100
100
  filterFn?: MRT_FilterFn;
101
101
  filterSelectOptions?: (string | {
@@ -155,6 +155,7 @@ export declare type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<Col
155
155
  filterValue: any;
156
156
  instance: MRT_TableInstance<D>;
157
157
  }) => void;
158
+ sortingFn?: MRT_SortingFn;
158
159
  };
159
160
  export declare type MRT_Column<D extends Record<string, any> = {}> = Omit<Column<D>, 'header' | 'footer' | 'columns' | 'columnDef'> & {
160
161
  columns?: MRT_Column<D>[];
@@ -179,17 +180,21 @@ export declare type MRT_Cell<D extends Record<string, any> = {}> = Omit<Cell<D>,
179
180
  column: MRT_Column<D>;
180
181
  row: MRT_Row<D>;
181
182
  };
183
+ export declare type MRT_SortingOption = SortingFnOption<TableGenerics> | 'fuzzy';
184
+ export declare type MRT_SortingFn = SortingFn<TableGenerics> | MRT_SortingOption;
182
185
  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;
186
+ export declare type MRT_FilterFn = FilterFn<TableGenerics> | MRT_FILTER_OPTION;
184
187
  export declare type MaterialReactTableProps<D extends Record<string, any> = {}> = MRT_TableOptions<D> & {
185
188
  editingMode?: 'table' | 'row' | 'cell';
186
189
  enableClickToCopy?: boolean;
187
190
  enableColumnActions?: boolean;
191
+ enableColumnFilterChangeMode?: boolean;
188
192
  enableColumnOrdering?: boolean;
189
193
  enableDensityToggle?: boolean;
190
194
  enableEditing?: boolean;
191
195
  enableExpandAll?: boolean;
192
196
  enableFullScreenToggle?: boolean;
197
+ enableGlobalFilterChangeMode?: boolean;
193
198
  enablePagination?: boolean;
194
199
  enablePersistentState?: boolean;
195
200
  enableRowActions?: boolean;
@@ -449,7 +454,7 @@ export declare type MaterialReactTableProps<D extends Record<string, any> = {}>
449
454
  rowNumberMode?: 'original' | 'static';
450
455
  selectAllMode?: 'all' | 'page';
451
456
  tableId?: string;
452
- virtualizerProps?: VirtualizerOptions<HTMLDivElement>;
457
+ virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement>>;
453
458
  };
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;
459
+ declare const _default: <D extends Record<string, any> = {}>({ autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableColumnActions, enableColumnFilterChangeMode, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterChangeMode, 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;
455
460
  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;
@@ -4,9 +4,9 @@ interface Props {
4
4
  dragRef?: Ref<HTMLButtonElement>;
5
5
  dropRef?: Ref<HTMLDivElement>;
6
6
  header: MRT_Header;
7
+ instance: MRT_TableInstance;
7
8
  isDragging?: boolean;
8
9
  previewRef?: Ref<HTMLTableCellElement>;
9
- instance: MRT_TableInstance;
10
10
  }
11
11
  export declare const MRT_TableHeadCell: FC<Props>;
12
12
  export {};
@@ -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 {};
@@ -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
  }
@@ -6014,27 +6019,28 @@ var MRT_TableHeadCellFilterContainer = function MRT_TableHeadCellFilterContainer
6014
6019
  };
6015
6020
 
6016
6021
  var MRT_TableHeadCellFilterLabel = function MRT_TableHeadCellFilterLabel(_ref) {
6017
- var _getState2, _getState2$currentFil;
6022
+ var _column$getFilterValu, _column$getFilterValu2;
6018
6023
 
6019
6024
  var header = _ref.header,
6020
6025
  instance = _ref.instance;
6021
6026
  var getState = instance.getState,
6022
6027
  _instance$options = instance.options,
6023
- _instance$options$ico = _instance$options.icons,
6024
- FilterAltIcon = _instance$options$ico.FilterAltIcon,
6025
- FilterAltOffIcon = _instance$options$ico.FilterAltOffIcon,
6026
- localization = _instance$options.localization,
6027
- setShowFilters = instance.setShowFilters;
6028
+ FilterAltIcon = _instance$options.icons.FilterAltIcon,
6029
+ localization = _instance$options.localization;
6028
6030
 
6029
6031
  var _getState = getState(),
6030
- showFilters = _getState.showFilters;
6032
+ currentFilterFns = _getState.currentFilterFns;
6031
6033
 
6032
6034
  var column = header.column;
6033
6035
  var columnDef = column.columnDef;
6034
- var filterFn = (_getState2 = getState()) == null ? void 0 : (_getState2$currentFil = _getState2.currentFilterFns) == null ? void 0 : _getState2$currentFil[header.id];
6035
- var filterTooltip = !!column.getFilterValue() ? localization.filteringByColumn.replace('{column}', String(columnDef.header)).replace('{filterType}', filterFn instanceof Function ? '' : // @ts-ignore
6036
- localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))]).replace('{filterValue}', "\"" + (Array.isArray(column.getFilterValue()) ? column.getFilterValue().join("\" " + localization.and + " \"") : column.getFilterValue()) + "\"").replace('" "', '') : localization.showHideFilters;
6037
- return React__default.createElement(material.Tooltip, {
6036
+ var filterFn = currentFilterFns == null ? void 0 : currentFilterFns[header.id];
6037
+ var filterTooltip = localization.filteringByColumn.replace('{column}', String(columnDef.header)).replace('{filterType}', filterFn instanceof Function ? '' : // @ts-ignore
6038
+ localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))]).replace('{filterValue}', "\"" + (Array.isArray(column.getFilterValue()) ? column.getFilterValue().join("\" " + localization.and + " \"") : column.getFilterValue()) + "\"").replace('" "', '');
6039
+ return React__default.createElement(material.Grow, {
6040
+ unmountOnExit: true,
6041
+ "in": !!column.getFilterValue() && filterFn !== 'between' || filterFn === 'between' && ( // @ts-ignore
6042
+ !!((_column$getFilterValu = column.getFilterValue()) != null && _column$getFilterValu[0]) || !!((_column$getFilterValu2 = column.getFilterValue()) != null && _column$getFilterValu2[1]))
6043
+ }, React__default.createElement("span", null, React__default.createElement(material.Tooltip, {
6038
6044
  arrow: true,
6039
6045
  placement: "top",
6040
6046
  title: filterTooltip
@@ -6042,22 +6048,16 @@ var MRT_TableHeadCellFilterLabel = function MRT_TableHeadCellFilterLabel(_ref) {
6042
6048
  disableRipple: true,
6043
6049
  onClick: function onClick(event) {
6044
6050
  event.stopPropagation();
6045
- setShowFilters(!showFilters);
6046
6051
  },
6047
6052
  size: "small",
6048
6053
  sx: {
6049
6054
  m: 0,
6050
- opacity: !!column.getFilterValue() || showFilters ? 0.8 : 0,
6055
+ opacity: 0.8,
6051
6056
  p: '2px',
6052
- transition: 'all 0.2s ease-in-out',
6053
6057
  transform: 'scale(0.66)',
6054
- '&:hover': {
6055
- backgroundColor: 'transparent',
6056
- opacity: 0.8
6057
- },
6058
6058
  width: '1.5ch'
6059
6059
  }
6060
- }, showFilters && !column.getFilterValue() ? React__default.createElement(FilterAltOffIcon, null) : React__default.createElement(FilterAltIcon, null)));
6060
+ }, React__default.createElement(FilterAltIcon, null)))));
6061
6061
  };
6062
6062
 
6063
6063
  var MRT_TableHeadCellResizeHandle = function MRT_TableHeadCellResizeHandle(_ref) {
@@ -6192,20 +6192,21 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
6192
6192
  var dragRef = _ref.dragRef,
6193
6193
  dropRef = _ref.dropRef,
6194
6194
  header = _ref.header,
6195
+ instance = _ref.instance,
6195
6196
  isDragging = _ref.isDragging,
6196
- previewRef = _ref.previewRef,
6197
- instance = _ref.instance;
6197
+ previewRef = _ref.previewRef;
6198
6198
  var getState = instance.getState,
6199
6199
  _instance$options = instance.options,
6200
6200
  enableColumnActions = _instance$options.enableColumnActions,
6201
- enableColumnFilters = _instance$options.enableColumnFilters,
6202
6201
  enableColumnOrdering = _instance$options.enableColumnOrdering,
6203
6202
  enableColumnResizing = _instance$options.enableColumnResizing,
6204
6203
  enableGrouping = _instance$options.enableGrouping,
6204
+ enableMultiSort = _instance$options.enableMultiSort,
6205
6205
  muiTableHeadCellProps = _instance$options.muiTableHeadCellProps;
6206
6206
 
6207
6207
  var _getState = getState(),
6208
- density = _getState.density;
6208
+ density = _getState.density,
6209
+ showFilters = _getState.showFilters;
6209
6210
 
6210
6211
  var column = header.column;
6211
6212
  var columnDef = column.columnDef,
@@ -6260,7 +6261,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
6260
6261
  pt: columnDefType !== 'data' ? 0 : density === 'compact' ? '0.25' : density === 'comfortable' ? '.75rem' : '1.25rem',
6261
6262
  right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
6262
6263
  transition: "all " + (enableColumnResizing ? 0 : '0.2s') + " ease-in-out",
6263
- verticalAlign: 'text-top',
6264
+ userSelect: enableMultiSort ? 'none' : undefined,
6265
+ verticalAlign: columnDefType === 'display' && showFilters ? 'center' : 'text-top',
6264
6266
  zIndex: column.getIsResizing() ? 3 : column.getIsPinned() && columnDefType !== 'group' ? 2 : 1
6265
6267
  }, tableCellProps == null ? void 0 : tableCellProps.sx, {
6266
6268
  maxWidth: "min(" + column.getSize() + "px, fit-content)",
@@ -6279,9 +6281,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
6279
6281
  width: '100%'
6280
6282
  }
6281
6283
  }, React__default.createElement(material.Box, {
6282
- onClick: function onClick() {
6283
- return column.toggleSorting();
6284
- },
6284
+ onClick: column.getToggleSortingHandler(),
6285
6285
  sx: {
6286
6286
  alignItems: 'center',
6287
6287
  cursor: column.getCanSort() && columnDefType !== 'group' ? 'pointer' : undefined,
@@ -6292,7 +6292,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
6292
6292
  }, headerElement, columnDefType === 'data' && column.getCanSort() && React__default.createElement(MRT_TableHeadCellSortLabel, {
6293
6293
  header: header,
6294
6294
  instance: instance
6295
- }), columnDefType === 'data' && enableColumnFilters && column.getCanFilter() && React__default.createElement(MRT_TableHeadCellFilterLabel, {
6295
+ }), columnDefType === 'data' && column.getCanFilter() && React__default.createElement(MRT_TableHeadCellFilterLabel, {
6296
6296
  header: header,
6297
6297
  instance: instance
6298
6298
  })), React__default.createElement(material.Box, {
@@ -7550,6 +7550,21 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
7550
7550
  })));
7551
7551
  };
7552
7552
 
7553
+ var fuzzy$1 = function fuzzy(rowA, rowB, columnId) {
7554
+ var dir = 0;
7555
+
7556
+ if (rowA.columnFiltersMeta[columnId]) {
7557
+ dir = matchSorterUtils.compareItems(rowA.columnFiltersMeta[columnId], rowB.columnFiltersMeta[columnId]);
7558
+ } // Provide a fallback for when the item ranks are equal
7559
+
7560
+
7561
+ return dir === 0 ? reactTable.sortingFns.alphanumeric(rowA, rowB, columnId) : dir;
7562
+ };
7563
+
7564
+ var MRT_SortingFns = {
7565
+ fuzzy: fuzzy$1
7566
+ };
7567
+
7553
7568
  var MRT_TableRoot = function MRT_TableRoot(props) {
7554
7569
  var _initialState$columnO, _initialState$current, _initialState$current2, _initialState$density, _initialState$isFullS, _initialState$showFil, _initialState$showGlo, _props$globalFilterFn, _props$state3, _props$state4, _props$onCurrentEditi, _props$onCurrentEditi2, _props$onCurrentFilte, _props$onCurrentGloba, _props$onDensityChang, _props$onIsFullScreen, _props$onShowFiltersC, _props$onShowGlobalFi;
7555
7570
 
@@ -7638,8 +7653,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7638
7653
  var table = React.useMemo(function () {
7639
7654
  return (// @ts-ignore
7640
7655
  reactTable.createTable().setOptions({
7641
- //@ts-ignore
7642
- filterFns: defaultFilterFNs,
7656
+ filterFns: _extends({}, reactTable.filterFns, MRT_FilterFns, props.filterFns),
7643
7657
  getCoreRowModel: reactTable.getCoreRowModel(),
7644
7658
  getExpandedRowModel: reactTable.getExpandedRowModel(),
7645
7659
  getFacetedRowModel: reactTable.getFacetedRowModel(),
@@ -7647,10 +7661,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7647
7661
  getGroupedRowModel: reactTable.getGroupedRowModel(),
7648
7662
  getPaginationRowModel: reactTable.getPaginationRowModel(),
7649
7663
  getSortedRowModel: reactTable.getSortedRowModel(),
7650
- getSubRows: function getSubRows(row) {
7651
- return row == null ? void 0 : row.subRows;
7652
- },
7653
- tableId: tableId
7664
+ sortingFns: _extends({}, reactTable.sortingFns, MRT_SortingFns, props.sortingFns)
7654
7665
  })
7655
7666
  );
7656
7667
  }, []);
@@ -7747,6 +7758,9 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7747
7758
  //@ts-ignore
7748
7759
  columns: columns,
7749
7760
  data: data,
7761
+ getSubRows: function getSubRows(row) {
7762
+ return row == null ? void 0 : row.subRows;
7763
+ },
7750
7764
  //@ts-ignore
7751
7765
  globalFilterFn: currentGlobalFilterFn,
7752
7766
  initialState: initialState,
@@ -7760,7 +7774,8 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7760
7774
  isFullScreen: isFullScreen,
7761
7775
  showFilters: showFilters,
7762
7776
  showGlobalFilter: showGlobalFilter
7763
- }, props.state)
7777
+ }, props.state),
7778
+ tableId: tableId
7764
7779
  })), {
7765
7780
  setCurrentEditingCell: (_props$onCurrentEditi = props.onCurrentEditingCellChange) != null ? _props$onCurrentEditi : setCurrentEditingCell,
7766
7781
  setCurrentEditingRow: (_props$onCurrentEditi2 = props.onCurrentEditingRowChange) != null ? _props$onCurrentEditi2 : setCurrentEditingRow,
@@ -7812,7 +7827,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7812
7827
  }));
7813
7828
  };
7814
7829
 
7815
- 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"];
7830
+ var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilterChangeMode", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterChangeMode", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "rowNumberMode", "selectAllMode"];
7816
7831
  var MaterialReactTable = (function (_ref) {
7817
7832
  var _ref$autoResetExpande = _ref.autoResetExpanded,
7818
7833
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -7828,8 +7843,10 @@ var MaterialReactTable = (function (_ref) {
7828
7843
  editingMode = _ref$editingMode === void 0 ? 'row' : _ref$editingMode,
7829
7844
  _ref$enableColumnActi = _ref.enableColumnActions,
7830
7845
  enableColumnActions = _ref$enableColumnActi === void 0 ? true : _ref$enableColumnActi,
7831
- _ref$enableColumnFilt = _ref.enableColumnFilters,
7832
- enableColumnFilters = _ref$enableColumnFilt === void 0 ? true : _ref$enableColumnFilt,
7846
+ _ref$enableColumnFilt = _ref.enableColumnFilterChangeMode,
7847
+ enableColumnFilterChangeMode = _ref$enableColumnFilt === void 0 ? true : _ref$enableColumnFilt,
7848
+ _ref$enableColumnFilt2 = _ref.enableColumnFilters,
7849
+ enableColumnFilters = _ref$enableColumnFilt2 === void 0 ? true : _ref$enableColumnFilt2,
7833
7850
  _ref$enableColumnOrde = _ref.enableColumnOrdering,
7834
7851
  enableColumnOrdering = _ref$enableColumnOrde === void 0 ? false : _ref$enableColumnOrde,
7835
7852
  _ref$enableColumnResi = _ref.enableColumnResizing,
@@ -7844,6 +7861,8 @@ var MaterialReactTable = (function (_ref) {
7844
7861
  enableFullScreenToggle = _ref$enableFullScreen === void 0 ? true : _ref$enableFullScreen,
7845
7862
  _ref$enableGlobalFilt = _ref.enableGlobalFilter,
7846
7863
  enableGlobalFilter = _ref$enableGlobalFilt === void 0 ? true : _ref$enableGlobalFilt,
7864
+ _ref$enableGlobalFilt2 = _ref.enableGlobalFilterChangeMode,
7865
+ enableGlobalFilterChangeMode = _ref$enableGlobalFilt2 === void 0 ? true : _ref$enableGlobalFilt2,
7847
7866
  _ref$enableGrouping = _ref.enableGrouping,
7848
7867
  enableGrouping = _ref$enableGrouping === void 0 ? false : _ref$enableGrouping,
7849
7868
  _ref$enableHiding = _ref.enableHiding,
@@ -7896,6 +7915,7 @@ var MaterialReactTable = (function (_ref) {
7896
7915
  defaultColumn: defaultColumn,
7897
7916
  editingMode: editingMode,
7898
7917
  enableColumnActions: enableColumnActions,
7918
+ enableColumnFilterChangeMode: enableColumnFilterChangeMode,
7899
7919
  enableColumnFilters: enableColumnFilters,
7900
7920
  enableColumnOrdering: enableColumnOrdering,
7901
7921
  enableColumnResizing: enableColumnResizing,
@@ -7904,6 +7924,7 @@ var MaterialReactTable = (function (_ref) {
7904
7924
  enableFilters: enableFilters,
7905
7925
  enableFullScreenToggle: enableFullScreenToggle,
7906
7926
  enableGlobalFilter: enableGlobalFilter,
7927
+ enableGlobalFilterChangeMode: enableGlobalFilterChangeMode,
7907
7928
  enableGrouping: enableGrouping,
7908
7929
  enableHiding: enableHiding,
7909
7930
  enableMultiRowSelection: enableMultiRowSelection,