material-react-table 0.38.2 → 0.39.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.
Files changed (54) hide show
  1. package/dist/cjs/MaterialReactTable.d.ts +26 -4
  2. package/dist/cjs/body/MRT_EditRowModal.d.ts +1 -0
  3. package/dist/cjs/body/MRT_TableBodyRow.d.ts +1 -0
  4. package/dist/cjs/buttons/MRT_ColumnPinningButtons.d.ts +1 -0
  5. package/dist/cjs/buttons/MRT_EditActionButtons.d.ts +1 -0
  6. package/dist/cjs/buttons/MRT_FullScreenToggleButton.d.ts +1 -0
  7. package/dist/cjs/buttons/MRT_ShowHideColumnsButton.d.ts +1 -0
  8. package/dist/cjs/buttons/MRT_ToggleDensePaddingButton.d.ts +1 -0
  9. package/dist/cjs/buttons/MRT_ToggleFiltersButton.d.ts +1 -0
  10. package/dist/cjs/buttons/MRT_ToggleGlobalFilterButton.d.ts +1 -0
  11. package/dist/cjs/column.utils.d.ts +1 -0
  12. package/dist/cjs/index.js +79 -47
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/inputs/MRT_EditCellTextField.d.ts +1 -0
  15. package/dist/cjs/inputs/MRT_GlobalFilterTextField.d.ts +1 -0
  16. package/dist/cjs/menus/MRT_FilterOptionMenu.d.ts +3 -7
  17. package/dist/cjs/menus/MRT_ShowHideColumnsMenu.d.ts +1 -0
  18. package/dist/cjs/table/MRT_TableRoot.d.ts +1 -0
  19. package/dist/esm/MaterialReactTable.d.ts +26 -4
  20. package/dist/esm/body/MRT_EditRowModal.d.ts +1 -0
  21. package/dist/esm/body/MRT_TableBodyRow.d.ts +1 -0
  22. package/dist/esm/buttons/MRT_ColumnPinningButtons.d.ts +1 -0
  23. package/dist/esm/buttons/MRT_EditActionButtons.d.ts +1 -0
  24. package/dist/esm/buttons/MRT_FullScreenToggleButton.d.ts +1 -0
  25. package/dist/esm/buttons/MRT_ShowHideColumnsButton.d.ts +1 -0
  26. package/dist/esm/buttons/MRT_ToggleDensePaddingButton.d.ts +1 -0
  27. package/dist/esm/buttons/MRT_ToggleFiltersButton.d.ts +1 -0
  28. package/dist/esm/buttons/MRT_ToggleGlobalFilterButton.d.ts +1 -0
  29. package/dist/esm/column.utils.d.ts +1 -0
  30. package/dist/esm/inputs/MRT_EditCellTextField.d.ts +1 -0
  31. package/dist/esm/inputs/MRT_GlobalFilterTextField.d.ts +1 -0
  32. package/dist/esm/material-react-table.esm.js +79 -47
  33. package/dist/esm/material-react-table.esm.js.map +1 -1
  34. package/dist/esm/menus/MRT_FilterOptionMenu.d.ts +3 -7
  35. package/dist/esm/menus/MRT_ShowHideColumnsMenu.d.ts +1 -0
  36. package/dist/esm/table/MRT_TableRoot.d.ts +1 -0
  37. package/dist/index.d.ts +28 -5
  38. package/package.json +2 -2
  39. package/src/MaterialReactTable.tsx +42 -7
  40. package/src/body/MRT_TableBody.tsx +1 -0
  41. package/src/body/MRT_TableBodyCellValue.tsx +10 -11
  42. package/src/body/MRT_TableBodyRow.tsx +14 -3
  43. package/src/buttons/MRT_ExpandAllButton.tsx +5 -3
  44. package/src/buttons/MRT_GrabHandleButton.tsx +5 -3
  45. package/src/column.utils.ts +1 -1
  46. package/src/footer/MRT_TableFooter.tsx +22 -2
  47. package/src/head/MRT_TableHeadCellFilterContainer.tsx +3 -2
  48. package/src/head/MRT_TableHeadRow.tsx +3 -1
  49. package/src/inputs/MRT_FilterTextField.tsx +5 -8
  50. package/src/inputs/MRT_GlobalFilterTextField.tsx +2 -2
  51. package/src/menus/MRT_ColumnActionMenu.tsx +3 -3
  52. package/src/menus/MRT_FilterOptionMenu.tsx +50 -33
  53. package/src/table/MRT_TablePaper.tsx +5 -3
  54. package/src/table/MRT_TableRoot.tsx +3 -4
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { MRT_Cell, MRT_TableInstance } from '..';
2
3
  interface Props<TData extends Record<string, any> = {}> {
3
4
  cell: MRT_Cell<TData>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { MRT_TableInstance } from '..';
2
3
  interface Props<TData extends Record<string, any> = {}> {
3
4
  table: MRT_TableInstance<TData>;
@@ -1,11 +1,7 @@
1
- import type { MRT_Header, MRT_TableInstance } from '..';
1
+ /// <reference types="react" />
2
+ import type { MRT_Header, MRT_InternalFilterOption, MRT_TableInstance } from '..';
2
3
  import { MRT_Localization } from '../localization';
3
- export declare const internalFilterOptions: (localization: MRT_Localization) => {
4
- option: string;
5
- symbol: string;
6
- label: string;
7
- divider: boolean;
8
- }[];
4
+ export declare const mrtFilterOptions: (localization: MRT_Localization) => MRT_InternalFilterOption[];
9
5
  interface Props<TData extends Record<string, any> = {}> {
10
6
  anchorEl: HTMLElement | null;
11
7
  header?: MRT_Header;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { MRT_TableInstance } from '..';
2
3
  interface Props<TData extends Record<string, any> = {}> {
3
4
  anchorEl: HTMLElement | null;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import type { MaterialReactTableProps } from '..';
2
3
  export declare const MRT_TableRoot: <TData extends Record<string, any> = {}>(props: MaterialReactTableProps<TData>) => JSX.Element;
@@ -154,7 +154,7 @@ export declare type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit
154
154
  enableClickToCopy?: boolean;
155
155
  enableColumnActions?: boolean;
156
156
  enableColumnDragging?: boolean;
157
- enableColumnFilterChangeMode?: boolean;
157
+ enableColumnFilterModes?: boolean;
158
158
  enableColumnOrdering?: boolean;
159
159
  enableEditing?: boolean;
160
160
  filterFn?: MRT_FilterFn<TData>;
@@ -216,6 +216,10 @@ export declare type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit
216
216
  table: MRT_TableInstance<TData>;
217
217
  column: MRT_Column<TData>;
218
218
  }) => TableCellProps);
219
+ renderColumnFilterModeMenuItems?: ({ table, column, }: {
220
+ table: MRT_TableInstance<TData>;
221
+ column: MRT_Column<TData>;
222
+ }) => ReactNode[];
219
223
  sortingFn?: MRT_SortingFn;
220
224
  };
221
225
  export declare type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<MRT_ColumnDef<TData>, 'id'> & {
@@ -249,6 +253,12 @@ export declare type MRT_SortingOption = LiteralUnion<string & keyof typeof MRT_S
249
253
  export declare type MRT_SortingFn<TData extends Record<string, any> = {}> = SortingFn<TData> | MRT_SortingOption;
250
254
  export declare type MRT_FilterOption = LiteralUnion<string & keyof typeof MRT_FilterFns>;
251
255
  export declare type MRT_FilterFn<TData extends Record<string, any> = {}> = FilterFn<TData> | MRT_FilterOption;
256
+ export declare type MRT_InternalFilterOption = {
257
+ option: string;
258
+ symbol: string;
259
+ label: string;
260
+ divider: boolean;
261
+ };
252
262
  export declare type MRT_DisplayColumnIds = 'mrt-row-actions' | 'mrt-row-drag' | 'mrt-row-expand' | 'mrt-row-numbers' | 'mrt-row-select';
253
263
  /**
254
264
  * `columns` and `data` props are the only required props, but there are over 150 other optional props.
@@ -272,13 +282,13 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
272
282
  enableClickToCopy?: boolean;
273
283
  enableColumnActions?: boolean;
274
284
  enableColumnDragging?: boolean;
275
- enableColumnFilterChangeMode?: boolean;
285
+ enableColumnFilterModes?: boolean;
276
286
  enableColumnOrdering?: boolean;
277
287
  enableDensityToggle?: boolean;
278
288
  enableEditing?: boolean;
279
289
  enableExpandAll?: boolean;
280
290
  enableFullScreenToggle?: boolean;
281
- enableGlobalFilterChangeMode?: boolean;
291
+ enableGlobalFilterModes?: boolean;
282
292
  enableGlobalFilterRankedResults?: boolean;
283
293
  enablePagination?: boolean;
284
294
  enableRowActions?: boolean;
@@ -288,6 +298,7 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
288
298
  enableRowSelection?: boolean | ((row: MRT_Row<TData>) => boolean);
289
299
  enableRowVirtualization?: boolean;
290
300
  enableSelectAll?: boolean;
301
+ enableStickyFooter?: boolean;
291
302
  enableStickyHeader?: boolean;
292
303
  enableTableFooter?: boolean;
293
304
  enableTableHead?: boolean;
@@ -459,10 +470,21 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
459
470
  renderBottomToolbarCustomActions?: ({ table, }: {
460
471
  table: MRT_TableInstance<TData>;
461
472
  }) => ReactNode;
473
+ renderColumnFilterModeMenuItems?: ({ column, internalFilterOptions, onSelectFilterMode, table, }: {
474
+ column: MRT_Column<TData>;
475
+ internalFilterOptions: MRT_InternalFilterOption[];
476
+ onSelectFilterMode: (filterMode: MRT_FilterOption) => void;
477
+ table: MRT_TableInstance<TData>;
478
+ }) => ReactNode;
462
479
  renderDetailPanel?: ({ row, table, }: {
463
480
  row: MRT_Row<TData>;
464
481
  table: MRT_TableInstance<TData>;
465
482
  }) => ReactNode;
483
+ renderGlobalFilterModeMenuItems?: ({ internalFilterOptions, onSelectFilterMode, table, }: {
484
+ internalFilterOptions: MRT_InternalFilterOption[];
485
+ onSelectFilterMode: (filterMode: MRT_FilterOption) => void;
486
+ table: MRT_TableInstance<TData>;
487
+ }) => ReactNode[];
466
488
  renderRowActionMenuItems?: ({ closeMenu, row, table, }: {
467
489
  closeMenu: () => void;
468
490
  row: MRT_Row<TData>;
@@ -487,5 +509,5 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
487
509
  table: MRT_TableInstance<TData>;
488
510
  }) => Partial<VirtualizerOptions<HTMLDivElement>>);
489
511
  };
490
- declare const _default: <TData extends Record<string, any> = {}>({ aggregationFns, autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableBottomToolbar, enableColumnActions, enableColumnFilterChangeMode, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterChangeMode, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarInternalActions, enableTopToolbar, filterFns, icons, localization, positionActionsColumn, positionExpandColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, positionToolbarDropZone, rowNumberMode, selectAllMode, sortingFns, ...rest }: MaterialReactTableProps<TData>) => JSX.Element;
512
+ declare const _default: <TData extends Record<string, any> = {}>({ aggregationFns, autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableBottomToolbar, enableColumnActions, enableColumnFilterModes, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterModes, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarInternalActions, enableTopToolbar, filterFns, icons, localization, positionActionsColumn, positionExpandColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, positionToolbarDropZone, rowNumberMode, selectAllMode, sortingFns, ...rest }: MaterialReactTableProps<TData>) => JSX.Element;
491
513
  export default _default;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { MRT_Row, MRT_TableInstance } from '..';
2
3
  interface Props<TData extends Record<string, any> = {}> {
3
4
  open: boolean;
@@ -4,6 +4,7 @@ interface Props {
4
4
  row: MRT_Row;
5
5
  rowIndex: number;
6
6
  table: MRT_TableInstance;
7
+ virtualRow?: any;
7
8
  }
8
9
  export declare const MRT_TableBodyRow: FC<Props>;
9
10
  export {};
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { MRT_Column, MRT_TableInstance } from '..';
2
3
  interface Props<TData extends Record<string, any> = {}> {
3
4
  column: MRT_Column<TData>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { MRT_Row, MRT_TableInstance } from '..';
2
3
  interface Props<TData extends Record<string, any> = {}> {
3
4
  row: MRT_Row<TData>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IconButtonProps } from '@mui/material';
2
3
  import { MRT_TableInstance } from '..';
3
4
  interface Props<TData extends Record<string, any> = {}> extends IconButtonProps {
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IconButtonProps } from '@mui/material';
2
3
  import { MRT_TableInstance } from '..';
3
4
  interface Props<TData extends Record<string, any> = {}> extends IconButtonProps {
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IconButtonProps } from '@mui/material';
2
3
  import { MRT_TableInstance } from '..';
3
4
  interface Props<TData extends Record<string, any> = {}> extends IconButtonProps {
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IconButtonProps } from '@mui/material';
2
3
  import { MRT_TableInstance } from '..';
3
4
  interface Props<TData extends Record<string, any> = {}> extends IconButtonProps {
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IconButtonProps } from '@mui/material';
2
3
  import { MRT_TableInstance } from '..';
3
4
  interface Props<TData extends Record<string, any> = {}> extends IconButtonProps {
@@ -3,6 +3,7 @@ import { MaterialReactTableProps, MRT_Column, MRT_ColumnDef, MRT_DefinedColumnDe
3
3
  import { MRT_FilterFns } from './filterFns';
4
4
  import { MRT_SortingFns } from './sortingFns';
5
5
  export declare const defaultDisplayColumnDefOptions: Partial<MRT_ColumnDef<{}>>;
6
+ export declare const getColumnId: <TData extends Record<string, any> = {}>(columnDef: MRT_ColumnDef<TData>) => string;
6
7
  export declare const getAllLeafColumnDefs: <TData extends Record<string, any> = {}>(columns: MRT_ColumnDef<TData>[]) => MRT_ColumnDef<TData>[];
7
8
  export declare const prepareColumns: <TData extends Record<string, any> = {}>(columnDefs: MRT_ColumnDef<TData>[], columnFilterFns: {
8
9
  [key: string]: MRT_FilterOption;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { MRT_Cell, MRT_TableInstance } from '..';
2
3
  interface Props<TData extends Record<string, any> = {}> {
3
4
  cell: MRT_Cell<TData>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { MRT_TableInstance } from '..';
2
3
  interface Props<TData extends Record<string, any> = {}> {
3
4
  table: MRT_TableInstance<TData>;
@@ -255,7 +255,9 @@ const MRT_ExpandAllButton = ({ table }) => {
255
255
  : muiExpandAllButtonProps;
256
256
  return (React.createElement(Tooltip, { arrow: true, enterDelay: 1000, enterNextDelay: 1000, title: localization.expandAll },
257
257
  React.createElement("span", null,
258
- React.createElement(IconButton, Object.assign({ "aria-label": localization.expandAll, disabled: !getCanSomeRowsExpand() && !renderDetailPanel, onClick: () => toggleAllRowsExpanded(!getIsAllRowsExpanded()) }, iconButtonProps, { sx: Object.assign({ height: density === 'compact' ? '1.75rem' : '2.25rem', width: density === 'compact' ? '1.75rem' : '2.25rem', mt: density !== 'compact' ? '-0.25rem' : undefined }, iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx) }),
258
+ React.createElement(IconButton, Object.assign({ "aria-label": localization.expandAll, disabled: !getCanSomeRowsExpand() && !renderDetailPanel, onClick: () => toggleAllRowsExpanded(!getIsAllRowsExpanded()) }, iconButtonProps, { sx: (theme) => (Object.assign({ height: density === 'compact' ? '1.75rem' : '2.25rem', width: density === 'compact' ? '1.75rem' : '2.25rem', mt: density !== 'compact' ? '-0.25rem' : undefined }, ((iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx) instanceof Function
259
+ ? iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx(theme)
260
+ : iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx))) }),
259
261
  React.createElement(KeyboardDoubleArrowDownIcon, { style: {
260
262
  transform: `rotate(${getIsAllRowsExpanded()
261
263
  ? -180
@@ -290,7 +292,7 @@ const MRT_ExpandButton = ({ row, table }) => {
290
292
  } })))));
291
293
  };
292
294
 
293
- const internalFilterOptions = (localization) => [
295
+ const mrtFilterOptions = (localization) => [
294
296
  {
295
297
  option: 'fuzzy',
296
298
  symbol: '≈',
@@ -377,19 +379,19 @@ const internalFilterOptions = (localization) => [
377
379
  },
378
380
  ];
379
381
  const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, table, }) => {
380
- var _a;
381
- const { getState, options: { enabledGlobalFilterOptions, columnFilterModeOptions, localization, }, setColumnFilterFns, setGlobalFilterFn, } = table;
382
- const { columnFilterFns, globalFilterFn, density } = getState();
382
+ var _a, _b;
383
+ const { getState, options: { enabledGlobalFilterOptions, columnFilterModeOptions, localization, renderColumnFilterModeMenuItems, renderGlobalFilterModeMenuItems, }, setColumnFilterFns, setGlobalFilterFn, } = table;
384
+ const { globalFilterFn, density } = getState();
383
385
  const { column } = header !== null && header !== void 0 ? header : {};
384
386
  const { columnDef } = column !== null && column !== void 0 ? column : {};
385
387
  const allowedColumnFilterOptions = (_a = columnDef === null || columnDef === void 0 ? void 0 : columnDef.columnFilterModeOptions) !== null && _a !== void 0 ? _a : columnFilterModeOptions;
386
- const filterOptions = useMemo(() => internalFilterOptions(localization).filter((filterOption) => columnDef
388
+ const internalFilterOptions = useMemo(() => mrtFilterOptions(localization).filter((filterOption) => columnDef
387
389
  ? allowedColumnFilterOptions === undefined ||
388
390
  (allowedColumnFilterOptions === null || allowedColumnFilterOptions === void 0 ? void 0 : allowedColumnFilterOptions.includes(filterOption.option))
389
391
  : (!enabledGlobalFilterOptions ||
390
392
  enabledGlobalFilterOptions.includes(filterOption.option)) &&
391
- ['fuzzy', 'contains'].includes(filterOption.option)), []);
392
- const handleSelectFilterType = (option) => {
393
+ ['fuzzy', 'contains', 'startsWith'].includes(filterOption.option)), []);
394
+ const handleSelectFilterMode = (option) => {
393
395
  if (header && column) {
394
396
  setColumnFilterFns((prev) => (Object.assign(Object.assign({}, prev), { [header.id]: option })));
395
397
  if (['empty', 'notEmpty'].includes(option)) {
@@ -408,15 +410,26 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, table,
408
410
  setAnchorEl(null);
409
411
  onSelect === null || onSelect === void 0 ? void 0 : onSelect();
410
412
  };
411
- const filterOption = !!header ? columnFilterFns[header.id] : globalFilterFn;
413
+ const filterOption = !!header && columnDef ? columnDef._filterFn : globalFilterFn;
412
414
  return (React.createElement(Menu, { anchorEl: anchorEl, anchorOrigin: { vertical: 'center', horizontal: 'right' }, onClose: () => setAnchorEl(null), open: !!anchorEl, MenuListProps: {
413
415
  dense: density === 'compact',
414
- } }, filterOptions.map(({ option, label, divider, symbol }, index) => (React.createElement(MenuItem, { divider: divider, key: index, onClick: () => handleSelectFilterType(option), selected: option === filterOption, sx: {
415
- py: '6px',
416
- my: 0,
416
+ } }, (_b = (header && column
417
+ ? renderColumnFilterModeMenuItems === null || renderColumnFilterModeMenuItems === void 0 ? void 0 : renderColumnFilterModeMenuItems({
418
+ column: column,
419
+ internalFilterOptions,
420
+ onSelectFilterMode: handleSelectFilterMode,
421
+ table,
422
+ })
423
+ : renderGlobalFilterModeMenuItems === null || renderGlobalFilterModeMenuItems === void 0 ? void 0 : renderGlobalFilterModeMenuItems({
424
+ internalFilterOptions,
425
+ onSelectFilterMode: handleSelectFilterMode,
426
+ table,
427
+ }))) !== null && _b !== void 0 ? _b : internalFilterOptions.map(({ option, label, divider, symbol }, index) => (React.createElement(MenuItem, { divider: divider, key: index, onClick: () => handleSelectFilterMode(option), selected: option === filterOption, sx: {
417
428
  alignItems: 'center',
418
429
  display: 'flex',
419
430
  gap: '2ch',
431
+ my: 0,
432
+ py: '6px',
420
433
  }, value: option },
421
434
  React.createElement(Box, { sx: { fontSize: '1.25rem', width: '2ch' } }, symbol),
422
435
  label)))));
@@ -445,12 +458,14 @@ const MRT_ColumnPinningButtons = ({ column, table, }) => {
445
458
  const MRT_GrabHandleButton = ({ iconButtonProps, onDragEnd, onDragStart, table, }) => {
446
459
  const { options: { icons: { DragHandleIcon }, localization, }, } = table;
447
460
  return (React.createElement(Tooltip, { arrow: true, enterDelay: 1000, enterNextDelay: 1000, placement: "top", title: localization.move },
448
- React.createElement(IconButton, Object.assign({ disableRipple: true, draggable: "true", onDragStart: onDragStart, onDragEnd: onDragEnd, size: "small" }, iconButtonProps, { sx: Object.assign({ cursor: 'grab', m: 0, opacity: 0.5, p: '2px', transition: 'all 0.2s ease-in-out', '&:hover': {
461
+ React.createElement(IconButton, Object.assign({ disableRipple: true, draggable: "true", onDragStart: onDragStart, onDragEnd: onDragEnd, size: "small" }, iconButtonProps, { sx: (theme) => (Object.assign({ cursor: 'grab', m: 0, opacity: 0.5, p: '2px', transition: 'all 0.2s ease-in-out', '&:hover': {
449
462
  backgroundColor: 'transparent',
450
463
  opacity: 1,
451
464
  }, '&:active': {
452
465
  cursor: 'grabbing',
453
- } }, iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx) }),
466
+ } }, ((iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx) instanceof Function
467
+ ? iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx(theme)
468
+ : iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx))) }),
454
469
  React.createElement(DragHandleIcon, null))));
455
470
  };
456
471
 
@@ -702,7 +717,7 @@ const commonListItemStyles = {
702
717
  };
703
718
  const MRT_ColumnActionMenu = ({ anchorEl, header, setAnchorEl, table, }) => {
704
719
  var _a, _b, _c, _d, _e, _f, _g;
705
- const { getState, toggleAllColumnsVisible, setColumnOrder, options: { enableColumnFilterChangeMode, enableColumnFilters, enableColumnResizing, enableGrouping, enableHiding, enablePinning, enableSorting, columnFilterModeOptions, icons: { ArrowRightIcon, ClearAllIcon, ViewColumnIcon, DynamicFeedIcon, FilterListIcon, FilterListOffIcon, PushPinIcon, SortIcon, RestartAltIcon, VisibilityOffIcon, }, localization, }, refs: { filterInputRefs }, setShowFilters, } = table;
720
+ const { getState, toggleAllColumnsVisible, setColumnOrder, options: { enableColumnFilterModes, enableColumnFilters, enableColumnResizing, enableGrouping, enableHiding, enablePinning, enableSorting, columnFilterModeOptions, icons: { ArrowRightIcon, ClearAllIcon, ViewColumnIcon, DynamicFeedIcon, FilterListIcon, FilterListOffIcon, PushPinIcon, SortIcon, RestartAltIcon, VisibilityOffIcon, }, localization, }, refs: { filterInputRefs }, setShowFilters, } = table;
706
721
  const { column } = header;
707
722
  const { columnDef } = column;
708
723
  const { columnSizing, columnVisibility, density } = getState();
@@ -760,8 +775,8 @@ const MRT_ColumnActionMenu = ({ anchorEl, header, setAnchorEl, table, }) => {
760
775
  };
761
776
  const isSelectFilter = !!columnDef.filterSelectOptions;
762
777
  const allowedColumnFilterOptions = (_a = columnDef === null || columnDef === void 0 ? void 0 : columnDef.columnFilterModeOptions) !== null && _a !== void 0 ? _a : columnFilterModeOptions;
763
- const showFilterModeSubMenu = enableColumnFilterChangeMode &&
764
- columnDef.enableColumnFilterChangeMode !== false &&
778
+ const showFilterModeSubMenu = enableColumnFilterModes &&
779
+ columnDef.enableColumnFilterModes !== false &&
765
780
  !isSelectFilter &&
766
781
  (allowedColumnFilterOptions === undefined ||
767
782
  !!(allowedColumnFilterOptions === null || allowedColumnFilterOptions === void 0 ? void 0 : allowedColumnFilterOptions.length));
@@ -963,7 +978,7 @@ const MRT_SelectCheckbox = ({ row, selectAll, table }) => {
963
978
 
964
979
  const MRT_GlobalFilterTextField = ({ table, }) => {
965
980
  var _a;
966
- const { getState, setGlobalFilter, options: { enableGlobalFilterChangeMode, icons: { SearchIcon, CloseIcon }, localization, muiSearchTextFieldProps, }, refs: { searchInputRef }, } = table;
981
+ const { getState, setGlobalFilter, options: { enableGlobalFilterModes, icons: { SearchIcon, CloseIcon }, localization, muiSearchTextFieldProps, }, refs: { searchInputRef }, } = table;
967
982
  const { globalFilter, showGlobalFilter } = getState();
968
983
  const [anchorEl, setAnchorEl] = useState(null);
969
984
  const [searchValue, setSearchValue] = useState(globalFilter !== null && globalFilter !== void 0 ? globalFilter : '');
@@ -987,7 +1002,7 @@ const MRT_GlobalFilterTextField = ({ table, }) => {
987
1002
  : muiSearchTextFieldProps;
988
1003
  return (React.createElement(Collapse, { in: showGlobalFilter, orientation: "horizontal" },
989
1004
  React.createElement(TextField, Object.assign({ placeholder: localization.search, onChange: handleChange, value: searchValue !== null && searchValue !== void 0 ? searchValue : '', variant: "standard", InputProps: {
990
- startAdornment: enableGlobalFilterChangeMode ? (React.createElement(InputAdornment, { position: "start" },
1005
+ startAdornment: enableGlobalFilterModes ? (React.createElement(InputAdornment, { position: "start" },
991
1006
  React.createElement(Tooltip, { arrow: true, title: localization.changeSearchMode },
992
1007
  React.createElement(IconButton, { "aria-label": localization.changeSearchMode, onClick: handleGlobalFilterMenuOpen, size: "small", sx: { height: '1.75rem', width: '1.75rem' } },
993
1008
  React.createElement(SearchIcon, null))))) : (React.createElement(SearchIcon, { style: { marginRight: '4px' } })),
@@ -1298,10 +1313,9 @@ const MRT_TableHeadCellColumnActionsButton = ({ header, table, }) => {
1298
1313
 
1299
1314
  const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1300
1315
  var _a, _b, _c, _d, _e, _f, _g, _h;
1301
- const { getState, options: { enableColumnFilterChangeMode, columnFilterModeOptions, icons: { FilterListIcon, CloseIcon }, localization, muiTableHeadCellFilterTextFieldProps, }, refs: { filterInputRefs }, setColumnFilterFns, } = table;
1316
+ const { options: { enableColumnFilterModes, columnFilterModeOptions, icons: { FilterListIcon, CloseIcon }, localization, muiTableHeadCellFilterTextFieldProps, }, refs: { filterInputRefs }, setColumnFilterFns, } = table;
1302
1317
  const { column } = header;
1303
1318
  const { columnDef } = column;
1304
- const { columnFilterFns } = getState();
1305
1319
  const mTableHeadCellFilterTextFieldProps = muiTableHeadCellFilterTextFieldProps instanceof Function
1306
1320
  ? muiTableHeadCellFilterTextFieldProps({
1307
1321
  column,
@@ -1322,7 +1336,7 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1322
1336
  const isMultiSelectFilter = columnDef.filterVariant === 'multi-select';
1323
1337
  const isTextboxFilter = columnDef.filterVariant === 'text' ||
1324
1338
  (!isSelectFilter && !isMultiSelectFilter);
1325
- const currentFilterOption = columnFilterFns === null || columnFilterFns === void 0 ? void 0 : columnFilterFns[header.id];
1339
+ const currentFilterOption = columnDef._filterFn;
1326
1340
  const filterChipLabel = ['empty', 'notEmpty'].includes(currentFilterOption)
1327
1341
  ? //@ts-ignore
1328
1342
  localization[`filter${((_b = (_a = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt) === null || _a === void 0 ? void 0 : _a.call(currentFilterOption, 0)) === null || _b === void 0 ? void 0 : _b.toUpperCase()) +
@@ -1336,8 +1350,8 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1336
1350
  ? localization.max
1337
1351
  : '';
1338
1352
  const allowedColumnFilterOptions = (_d = columnDef === null || columnDef === void 0 ? void 0 : columnDef.columnFilterModeOptions) !== null && _d !== void 0 ? _d : columnFilterModeOptions;
1339
- const showChangeModeButton = enableColumnFilterChangeMode &&
1340
- columnDef.enableColumnFilterChangeMode !== false &&
1353
+ const showChangeModeButton = enableColumnFilterModes &&
1354
+ columnDef.enableColumnFilterModes !== false &&
1341
1355
  !rangeFilterIndex &&
1342
1356
  (allowedColumnFilterOptions === undefined ||
1343
1357
  !!(allowedColumnFilterOptions === null || allowedColumnFilterOptions === void 0 ? void 0 : allowedColumnFilterOptions.length));
@@ -1444,7 +1458,7 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1444
1458
  if (textFieldProps.inputRef) {
1445
1459
  textFieldProps.inputRef = inputRef;
1446
1460
  }
1447
- }, sx: (theme) => (Object.assign({ p: 0, minWidth: !filterChipLabel ? '150px' : 'auto', width: '100%', '& .MuiSelect-icon': {
1461
+ }, sx: (theme) => (Object.assign({ p: 0, minWidth: !filterChipLabel ? '120px' : 'auto', width: '100%', '& .MuiSelect-icon': {
1448
1462
  mr: '1.5rem',
1449
1463
  } }, ((textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.sx) instanceof Function
1450
1464
  ? textFieldProps.sx(theme)
@@ -1478,9 +1492,10 @@ const MRT_FilterRangeFields = ({ header, table }) => {
1478
1492
 
1479
1493
  const MRT_TableHeadCellFilterContainer = ({ header, table, }) => {
1480
1494
  const { getState } = table;
1481
- const { columnFilterFns, showColumnFilters } = getState();
1495
+ const { showColumnFilters } = getState();
1482
1496
  const { column } = header;
1483
- return (React.createElement(Collapse, { in: showColumnFilters, mountOnEnter: true, unmountOnExit: true }, ['between', 'betweenInclusive', 'inNumberRange'].includes(columnFilterFns[column.id]) ? (React.createElement(MRT_FilterRangeFields, { header: header, table: table })) : (React.createElement(MRT_FilterTextField, { header: header, table: table }))));
1497
+ const { columnDef } = column;
1498
+ return (React.createElement(Collapse, { in: showColumnFilters, mountOnEnter: true, unmountOnExit: true }, ['between', 'betweenInclusive', 'inNumberRange'].includes(columnDef._filterFn) ? (React.createElement(MRT_FilterRangeFields, { header: header, table: table })) : (React.createElement(MRT_FilterTextField, { header: header, table: table }))));
1484
1499
  };
1485
1500
 
1486
1501
  const MRT_TableHeadCellFilterLabel = ({ header, table }) => {
@@ -1743,7 +1758,9 @@ const MRT_TableHeadRow = ({ headerGroup, table }) => {
1743
1758
  const tableRowProps = muiTableHeadRowProps instanceof Function
1744
1759
  ? muiTableHeadRowProps({ headerGroup, table })
1745
1760
  : muiTableHeadRowProps;
1746
- return (React.createElement(TableRow, Object.assign({}, tableRowProps, { sx: (theme) => (Object.assign({ boxShadow: `4px 0 8px ${alpha(theme.palette.common.black, 0.1)}`, backgroundColor: lighten(theme.palette.background.default, 0.04) }, tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.sx)) }), headerGroup.headers.map((header, index) => (React.createElement(MRT_TableHeadCell, { header: header, key: header.id || index, table: table })))));
1761
+ return (React.createElement(TableRow, Object.assign({}, tableRowProps, { sx: (theme) => (Object.assign({ boxShadow: `4px 0 8px ${alpha(theme.palette.common.black, 0.1)}`, backgroundColor: lighten(theme.palette.background.default, 0.04) }, ((tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.sx) instanceof Function
1762
+ ? tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.sx(theme)
1763
+ : tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.sx))) }), headerGroup.headers.map((header, index) => (React.createElement(MRT_TableHeadCell, { header: header, key: header.id || index, table: table })))));
1747
1764
  };
1748
1765
 
1749
1766
  const MRT_TableHead = ({ table }) => {
@@ -1861,11 +1878,11 @@ const MRT_TableBodyRowGrabHandle = ({ cell, rowRef, table, }) => {
1861
1878
  };
1862
1879
 
1863
1880
  const MRT_TableBodyCellValue = ({ cell, table }) => {
1864
- var _a, _b, _c, _d;
1881
+ var _a, _b;
1865
1882
  const { column, row } = cell;
1866
1883
  const { columnDef } = column;
1867
- return (React.createElement(React.Fragment, null, cell.getIsAggregated() && column.columnDef.aggregationFn
1868
- ? (_a = columnDef.AggregatedCell) === null || _a === void 0 ? void 0 : _a.call(columnDef, {
1884
+ return (React.createElement(React.Fragment, null, cell.getIsAggregated() && columnDef.AggregatedCell
1885
+ ? columnDef.AggregatedCell({
1869
1886
  cell,
1870
1887
  column,
1871
1888
  row,
@@ -1873,14 +1890,14 @@ const MRT_TableBodyCellValue = ({ cell, table }) => {
1873
1890
  })
1874
1891
  : row.getIsGrouped() && !cell.getIsGrouped()
1875
1892
  ? null
1876
- : (cell.getIsGrouped() &&
1877
- ((_b = columnDef.GroupedCell) === null || _b === void 0 ? void 0 : _b.call(columnDef, {
1893
+ : cell.getIsGrouped() && columnDef.GroupedCell
1894
+ ? columnDef.GroupedCell({
1878
1895
  cell,
1879
1896
  column,
1880
1897
  row,
1881
1898
  table,
1882
- }))) ||
1883
- ((_d = (_c = columnDef === null || columnDef === void 0 ? void 0 : columnDef.Cell) === null || _c === void 0 ? void 0 : _c.call(columnDef, { cell, column, row, table })) !== null && _d !== void 0 ? _d : cell.renderValue())));
1899
+ })
1900
+ : (_b = (_a = columnDef === null || columnDef === void 0 ? void 0 : columnDef.Cell) === null || _a === void 0 ? void 0 : _a.call(columnDef, { cell, column, row, table })) !== null && _b !== void 0 ? _b : cell.renderValue()));
1884
1901
  };
1885
1902
 
1886
1903
  const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
@@ -2036,7 +2053,7 @@ const MRT_TableDetailPanel = ({ row, table }) => {
2036
2053
  : tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx))) }), renderDetailPanel && (React.createElement(Collapse, { in: row.getIsExpanded() }, renderDetailPanel({ row, table }))))));
2037
2054
  };
2038
2055
 
2039
- const MRT_TableBodyRow = ({ row, rowIndex, table }) => {
2056
+ const MRT_TableBodyRow = ({ row, rowIndex, table, virtualRow, }) => {
2040
2057
  var _a, _b;
2041
2058
  const theme = useTheme();
2042
2059
  const { getIsSomeColumnsPinned, getState, options: { enableRowOrdering, muiTableBodyRowProps, renderDetailPanel }, setHoveredRow, } = table;
@@ -2061,7 +2078,12 @@ const MRT_TableBodyRow = ({ row, rowIndex, table }) => {
2061
2078
  }
2062
2079
  : undefined;
2063
2080
  return (React.createElement(React.Fragment, null,
2064
- React.createElement(TableRow, Object.assign({ onDragEnter: handleDragEnter, hover: true, selected: row.getIsSelected(), ref: rowRef }, tableRowProps, { sx: (theme) => (Object.assign(Object.assign({ backgroundColor: lighten(theme.palette.background.default, 0.06), opacity: (draggingRow === null || draggingRow === void 0 ? void 0 : draggingRow.id) === row.id || (hoveredRow === null || hoveredRow === void 0 ? void 0 : hoveredRow.id) === row.id ? 0.5 : 1, transition: 'all 0.2s ease-in-out', '&:hover td': {
2081
+ React.createElement(TableRow, Object.assign({ onDragEnter: handleDragEnter, hover: true, selected: row.getIsSelected(), ref: (node) => {
2082
+ rowRef.current = node;
2083
+ if (virtualRow === null || virtualRow === void 0 ? void 0 : virtualRow.measureRef) {
2084
+ virtualRow.measureRef = node;
2085
+ }
2086
+ } }, tableRowProps, { sx: (theme) => (Object.assign(Object.assign({ backgroundColor: lighten(theme.palette.background.default, 0.06), opacity: (draggingRow === null || draggingRow === void 0 ? void 0 : draggingRow.id) === row.id || (hoveredRow === null || hoveredRow === void 0 ? void 0 : hoveredRow.id) === row.id ? 0.5 : 1, transition: 'all 0.2s ease-in-out', '&:hover td': {
2065
2087
  backgroundColor: (tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.hover) !== false && getIsSomeColumnsPinned()
2066
2088
  ? theme.palette.mode === 'dark'
2067
2089
  ? `${lighten(theme.palette.background.default, 0.12)}`
@@ -2141,7 +2163,7 @@ const MRT_TableBody = ({ table, tableContainerRef }) => {
2141
2163
  const row = enableRowVirtualization
2142
2164
  ? rows[rowOrVirtualRow.index]
2143
2165
  : rowOrVirtualRow;
2144
- return (React.createElement(MRT_TableBodyRow, { key: row.id, row: row, rowIndex: enableRowVirtualization ? rowOrVirtualRow.index : rowIndex, table: table }));
2166
+ return (React.createElement(MRT_TableBodyRow, { key: row.id, row: row, rowIndex: enableRowVirtualization ? rowOrVirtualRow.index : rowIndex, table: table, virtualRow: enableRowVirtualization ? rowOrVirtualRow : null }));
2145
2167
  }),
2146
2168
  enableRowVirtualization && paddingBottom > 0 && (React.createElement("tr", null,
2147
2169
  React.createElement("td", { style: { height: `${paddingBottom}px` } })))));
@@ -2194,11 +2216,19 @@ const MRT_TableFooterRow = ({ footerGroup, table }) => {
2194
2216
  };
2195
2217
 
2196
2218
  const MRT_TableFooter = ({ table }) => {
2197
- const { getFooterGroups, options: { muiTableFooterProps }, } = table;
2219
+ const { getFooterGroups, getState, options: { enableStickyFooter, muiTableFooterProps }, } = table;
2220
+ const { isFullScreen } = getState();
2198
2221
  const tableFooterProps = muiTableFooterProps instanceof Function
2199
2222
  ? muiTableFooterProps({ table })
2200
2223
  : muiTableFooterProps;
2201
- return (React.createElement(TableFooter, Object.assign({}, tableFooterProps), getFooterGroups().map((footerGroup) => (React.createElement(MRT_TableFooterRow, { footerGroup: footerGroup, key: footerGroup.id, table: table })))));
2224
+ const stickFooter = (isFullScreen || enableStickyFooter) && enableStickyFooter !== false;
2225
+ return (React.createElement(TableFooter, Object.assign({}, tableFooterProps, { sx: (theme) => (Object.assign({ position: stickFooter ? 'sticky' : undefined, bottom: stickFooter ? 0 : undefined, opacity: stickFooter ? 0.95 : undefined, outline: stickFooter
2226
+ ? theme.palette.mode === 'light'
2227
+ ? `1px solid ${theme.palette.grey[300]}`
2228
+ : `1px solid ${theme.palette.grey[700]}`
2229
+ : undefined }, ((tableFooterProps === null || tableFooterProps === void 0 ? void 0 : tableFooterProps.sx) instanceof Function
2230
+ ? tableFooterProps === null || tableFooterProps === void 0 ? void 0 : tableFooterProps.sx(theme)
2231
+ : tableFooterProps === null || tableFooterProps === void 0 ? void 0 : tableFooterProps.sx))) }), getFooterGroups().map((footerGroup) => (React.createElement(MRT_TableFooterRow, { footerGroup: footerGroup, key: footerGroup.id, table: table })))));
2202
2232
  };
2203
2233
 
2204
2234
  const MRT_Table = ({ tableContainerRef, table }) => {
@@ -2265,7 +2295,9 @@ const MRT_TablePaper = ({ table }) => {
2265
2295
  const tablePaperProps = muiTablePaperProps instanceof Function
2266
2296
  ? muiTablePaperProps({ table })
2267
2297
  : muiTablePaperProps;
2268
- return (React.createElement(Paper, Object.assign({ elevation: 2 }, tablePaperProps, { sx: Object.assign({ transition: 'all 0.2s ease-in-out' }, tablePaperProps === null || tablePaperProps === void 0 ? void 0 : tablePaperProps.sx), style: Object.assign(Object.assign({}, tablePaperProps === null || tablePaperProps === void 0 ? void 0 : tablePaperProps.style), { height: isFullScreen ? '100vh' : undefined, margin: isFullScreen ? '0' : undefined, maxHeight: isFullScreen ? '100vh' : undefined, maxWidth: isFullScreen ? '100vw' : undefined, padding: isFullScreen ? '0' : undefined, width: isFullScreen ? '100vw' : undefined }) }),
2298
+ return (React.createElement(Paper, Object.assign({ elevation: 2 }, tablePaperProps, { sx: (theme) => (Object.assign({ transition: 'all 0.2s ease-in-out' }, ((tablePaperProps === null || tablePaperProps === void 0 ? void 0 : tablePaperProps.sx) instanceof Function
2299
+ ? tablePaperProps === null || tablePaperProps === void 0 ? void 0 : tablePaperProps.sx(theme)
2300
+ : tablePaperProps === null || tablePaperProps === void 0 ? void 0 : tablePaperProps.sx))), style: Object.assign(Object.assign({}, tablePaperProps === null || tablePaperProps === void 0 ? void 0 : tablePaperProps.style), { height: isFullScreen ? '100vh' : undefined, margin: isFullScreen ? '0' : undefined, maxHeight: isFullScreen ? '100vh' : undefined, maxWidth: isFullScreen ? '100vw' : undefined, padding: isFullScreen ? '0' : undefined, width: isFullScreen ? '100vw' : undefined }) }),
2269
2301
  enableTopToolbar && React.createElement(MRT_TopToolbar, { table: table }),
2270
2302
  React.createElement(MRT_TableContainer, { table: table }),
2271
2303
  enableBottomToolbar && React.createElement(MRT_BottomToolbar, { table: table })));
@@ -2309,11 +2341,11 @@ const MRT_TableRoot = (props) => {
2309
2341
  return initState;
2310
2342
  }, []);
2311
2343
  const [columnFilterFns, setColumnFilterFns] = useState(() => Object.assign({}, ...getAllLeafColumnDefs(props.columns).map((col) => {
2312
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
2344
+ var _a, _b, _c, _d;
2313
2345
  return ({
2314
- [(_d = (_b = (_a = col.id) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : (_c = col.accessorKey) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : '']: col.filterFn instanceof Function
2315
- ? (_e = col.filterFn.name) !== null && _e !== void 0 ? _e : 'custom'
2316
- : (_m = (_f = col.filterFn) !== null && _f !== void 0 ? _f : (_g = initialState === null || initialState === void 0 ? void 0 : initialState.columnFilterFns) === null || _g === void 0 ? void 0 : _g[(_l = (_j = (_h = col.id) === null || _h === void 0 ? void 0 : _h.toString()) !== null && _j !== void 0 ? _j : (_k = col.accessorKey) === null || _k === void 0 ? void 0 : _k.toString()) !== null && _l !== void 0 ? _l : '']) !== null && _m !== void 0 ? _m : getDefaultColumnFilterFn(col),
2346
+ [getColumnId(col)]: col.filterFn instanceof Function
2347
+ ? (_a = col.filterFn.name) !== null && _a !== void 0 ? _a : 'custom'
2348
+ : (_d = (_b = col.filterFn) !== null && _b !== void 0 ? _b : (_c = initialState === null || initialState === void 0 ? void 0 : initialState.columnFilterFns) === null || _c === void 0 ? void 0 : _c[getColumnId(col)]) !== null && _d !== void 0 ? _d : getDefaultColumnFilterFn(col),
2317
2349
  });
2318
2350
  })));
2319
2351
  const [columnOrder, setColumnOrder] = useState((_a = initialState.columnOrder) !== null && _a !== void 0 ? _a : []);
@@ -2411,8 +2443,8 @@ const MRT_TableRoot = (props) => {
2411
2443
  };
2412
2444
 
2413
2445
  var MaterialReactTable = (_a) => {
2414
- var { aggregationFns, autoResetExpanded = false, columnResizeMode = 'onEnd', defaultColumn = { minSize: 40, maxSize: 1000, size: 180 }, editingMode = 'modal', enableBottomToolbar = true, enableColumnActions = true, enableColumnFilterChangeMode = false, enableColumnFilters = true, enableColumnOrdering = false, enableColumnResizing = false, enableDensityToggle = true, enableExpandAll = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterChangeMode = false, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enablePinning = false, enableRowSelection = false, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, localization, positionActionsColumn = 'first', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberMode = 'original', selectAllMode = 'all', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableBottomToolbar", "enableColumnActions", "enableColumnFilterChangeMode", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterChangeMode", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "localization", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberMode", "selectAllMode", "sortingFns"]);
2415
- return (React.createElement(MRT_TableRoot, Object.assign({ aggregationFns: Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns), autoResetExpanded: autoResetExpanded, columnResizeMode: columnResizeMode, defaultColumn: defaultColumn, editingMode: editingMode, enableBottomToolbar: enableBottomToolbar, enableColumnActions: enableColumnActions, enableColumnFilterChangeMode: enableColumnFilterChangeMode, enableColumnFilters: enableColumnFilters, enableColumnOrdering: enableColumnOrdering, enableColumnResizing: enableColumnResizing, enableDensityToggle: enableDensityToggle, enableExpandAll: enableExpandAll, enableFilters: enableFilters, enableFullScreenToggle: enableFullScreenToggle, enableGlobalFilter: enableGlobalFilter, enableGlobalFilterChangeMode: enableGlobalFilterChangeMode, enableGlobalFilterRankedResults: enableGlobalFilterRankedResults, enableGrouping: enableGrouping, enableHiding: enableHiding, enableMultiRowSelection: enableMultiRowSelection, enableMultiSort: enableMultiSort, enablePagination: enablePagination, enablePinning: enablePinning, enableRowSelection: enableRowSelection, enableSelectAll: enableSelectAll, enableSorting: enableSorting, enableStickyHeader: enableStickyHeader, enableTableFooter: enableTableFooter, enableTableHead: enableTableHead, enableToolbarInternalActions: enableToolbarInternalActions, enableTopToolbar: enableTopToolbar, filterFns: Object.assign(Object.assign({}, MRT_FilterFns), filterFns), icons: Object.assign(Object.assign({}, MRT_Default_Icons), icons), localization: Object.assign(Object.assign({}, MRT_DefaultLocalization_EN), localization), positionActionsColumn: positionActionsColumn, positionExpandColumn: positionExpandColumn, positionGlobalFilter: positionGlobalFilter, positionPagination: positionPagination, positionToolbarAlertBanner: positionToolbarAlertBanner, positionToolbarDropZone: positionToolbarDropZone, rowNumberMode: rowNumberMode, selectAllMode: selectAllMode, sortingFns: Object.assign(Object.assign({}, MRT_SortingFns), sortingFns) }, rest)));
2446
+ var { aggregationFns, autoResetExpanded = false, columnResizeMode = 'onEnd', defaultColumn = { minSize: 40, maxSize: 1000, size: 180 }, editingMode = 'modal', enableBottomToolbar = true, enableColumnActions = true, enableColumnFilterModes = false, enableColumnFilters = true, enableColumnOrdering = false, enableColumnResizing = false, enableDensityToggle = true, enableExpandAll = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterModes = false, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enablePinning = false, enableRowSelection = false, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, localization, positionActionsColumn = 'first', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberMode = 'original', selectAllMode = 'all', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableBottomToolbar", "enableColumnActions", "enableColumnFilterModes", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterModes", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "localization", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberMode", "selectAllMode", "sortingFns"]);
2447
+ return (React.createElement(MRT_TableRoot, Object.assign({ aggregationFns: Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns), autoResetExpanded: autoResetExpanded, columnResizeMode: columnResizeMode, defaultColumn: defaultColumn, editingMode: editingMode, enableBottomToolbar: enableBottomToolbar, enableColumnActions: enableColumnActions, enableColumnFilterModes: enableColumnFilterModes, enableColumnFilters: enableColumnFilters, enableColumnOrdering: enableColumnOrdering, enableColumnResizing: enableColumnResizing, enableDensityToggle: enableDensityToggle, enableExpandAll: enableExpandAll, enableFilters: enableFilters, enableFullScreenToggle: enableFullScreenToggle, enableGlobalFilter: enableGlobalFilter, enableGlobalFilterModes: enableGlobalFilterModes, enableGlobalFilterRankedResults: enableGlobalFilterRankedResults, enableGrouping: enableGrouping, enableHiding: enableHiding, enableMultiRowSelection: enableMultiRowSelection, enableMultiSort: enableMultiSort, enablePagination: enablePagination, enablePinning: enablePinning, enableRowSelection: enableRowSelection, enableSelectAll: enableSelectAll, enableSorting: enableSorting, enableStickyHeader: enableStickyHeader, enableTableFooter: enableTableFooter, enableTableHead: enableTableHead, enableToolbarInternalActions: enableToolbarInternalActions, enableTopToolbar: enableTopToolbar, filterFns: Object.assign(Object.assign({}, MRT_FilterFns), filterFns), icons: Object.assign(Object.assign({}, MRT_Default_Icons), icons), localization: Object.assign(Object.assign({}, MRT_DefaultLocalization_EN), localization), positionActionsColumn: positionActionsColumn, positionExpandColumn: positionExpandColumn, positionGlobalFilter: positionGlobalFilter, positionPagination: positionPagination, positionToolbarAlertBanner: positionToolbarAlertBanner, positionToolbarDropZone: positionToolbarDropZone, rowNumberMode: rowNumberMode, selectAllMode: selectAllMode, sortingFns: Object.assign(Object.assign({}, MRT_SortingFns), sortingFns) }, rest)));
2416
2448
  };
2417
2449
 
2418
2450
  export { MRT_CopyButton, MRT_FullScreenToggleButton, MRT_GlobalFilterTextField, MRT_ShowHideColumnsButton, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleGlobalFilterButton, MaterialReactTable as default };