material-react-table 1.7.3 → 1.8.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/README.md +5 -13
  2. package/dist/cjs/index.js +110 -72
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/types/MaterialReactTable.d.ts +22 -8
  5. package/dist/cjs/types/body/MRT_TableBody.d.ts +3 -4
  6. package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +2 -3
  7. package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +4 -5
  8. package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +2 -3
  9. package/dist/cjs/types/column.utils.d.ts +3 -2
  10. package/dist/cjs/types/footer/MRT_TableFooter.d.ts +2 -3
  11. package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +2 -3
  12. package/dist/cjs/types/head/MRT_TableHead.d.ts +2 -3
  13. package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +2 -3
  14. package/dist/cjs/types/icons.d.ts +0 -1
  15. package/dist/cjs/types/table/MRT_TableRoot.d.ts +1 -272
  16. package/dist/esm/material-react-table.esm.js +108 -72
  17. package/dist/esm/material-react-table.esm.js.map +1 -1
  18. package/dist/esm/types/MaterialReactTable.d.ts +22 -8
  19. package/dist/esm/types/body/MRT_TableBody.d.ts +3 -4
  20. package/dist/esm/types/body/MRT_TableBodyCell.d.ts +2 -3
  21. package/dist/esm/types/body/MRT_TableBodyRow.d.ts +4 -5
  22. package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +2 -3
  23. package/dist/esm/types/column.utils.d.ts +3 -2
  24. package/dist/esm/types/footer/MRT_TableFooter.d.ts +2 -3
  25. package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +2 -3
  26. package/dist/esm/types/head/MRT_TableHead.d.ts +2 -3
  27. package/dist/esm/types/head/MRT_TableHeadRow.d.ts +2 -3
  28. package/dist/esm/types/icons.d.ts +0 -1
  29. package/dist/esm/types/table/MRT_TableRoot.d.ts +1 -272
  30. package/dist/index.d.ts +22 -8
  31. package/package.json +13 -14
  32. package/src/MaterialReactTable.tsx +50 -7
  33. package/src/body/MRT_TableBody.tsx +11 -10
  34. package/src/body/MRT_TableBodyCell.tsx +11 -13
  35. package/src/body/MRT_TableBodyCellValue.tsx +1 -0
  36. package/src/body/MRT_TableBodyRow.tsx +14 -7
  37. package/src/body/MRT_TableDetailPanel.tsx +2 -3
  38. package/src/buttons/MRT_ExpandAllButton.tsx +10 -8
  39. package/src/buttons/MRT_ExpandButton.tsx +10 -8
  40. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +4 -1
  41. package/src/column.utils.ts +16 -6
  42. package/src/footer/MRT_TableFooter.tsx +2 -3
  43. package/src/footer/MRT_TableFooterRow.tsx +7 -3
  44. package/src/head/MRT_TableHead.tsx +2 -3
  45. package/src/head/MRT_TableHeadCell.tsx +1 -0
  46. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +1 -1
  47. package/src/head/MRT_TableHeadCellResizeHandle.tsx +2 -5
  48. package/src/head/MRT_TableHeadRow.tsx +7 -3
  49. package/src/icons.ts +0 -3
  50. package/src/inputs/MRT_EditCellTextField.tsx +38 -2
  51. package/src/menus/MRT_FilterOptionMenu.tsx +14 -5
  52. package/src/menus/MRT_RowActionMenu.tsx +12 -10
  53. package/src/table/MRT_Table.tsx +6 -5
  54. package/src/table/MRT_TableRoot.tsx +33 -19
package/README.md CHANGED
@@ -27,17 +27,9 @@ View [Documentation](https://www.material-react-table.com/)
27
27
 
28
28
  ### __Built with [Material UI <sup>V5</sup>](https://mui.com) and [TanStack Table <sup>V8</sup>](https://tanstack.com/table/v8)__
29
29
 
30
- <br />
31
- <div style="display:flex;align-items:center;">
32
- <img src="https://material-react-table.com/mrt_logo.svg" alt="MRT" height="24"/>
33
- =
34
- <img src="https://mui.com/static/logo.png" height="24">
35
- 🤝
36
- <img src="https://react-table-v7.tanstack.com/_next/static/images/logo-light-66d4dd9109004332c863391e6d1cb309.svg" height="24">
37
- </div>
38
- <br />
39
-
40
- MRT is built with Material-UI components on top of [TanStack Table's](https://tanstack.com/table/v8) comprehensive and powerful react hooks api.
30
+ <img src="https://material-react-table.com/banner.png" alt="MRT" height="50"/>
31
+
32
+ > Want to use Mantine instead of Material UI? Check out [Mantine React Table](https://www.mantine-react-table.com)
41
33
 
42
34
  ## Learn More
43
35
 
@@ -148,7 +140,7 @@ export default function App() {
148
140
  accessorKey: 'name', //simple recommended way to define a column
149
141
  header: 'Name',
150
142
  muiTableHeadCellProps: { sx: { color: 'green' } }, //optional custom props
151
- Cell: ({ cell}) => <span>{cell.getValue()}</span>, //optional custom cell render
143
+ Cell: ({ cell }) => <span>{cell.getValue()}</span>, //optional custom cell render
152
144
  },
153
145
  {
154
146
  accessorFn: (row) => row.age, //alternate way
@@ -202,4 +194,4 @@ PRs are Welcome, but please discuss in [GitHub Discussions](https://github.com/K
202
194
 
203
195
  Read the [Contributing Guide](https://github.com/KevinVandy/material-react-table/blob/main/CONTRIBUTING.md) to learn how to run this project locally.
204
196
 
205
- <!-- Use the FORCE, Luke! -->
197
+ <!-- Use the FORCE, Luke! -->
package/dist/cjs/index.js CHANGED
@@ -17,7 +17,6 @@ var DensitySmallIcon = require('@mui/icons-material/DensitySmall');
17
17
  var DragHandleIcon = require('@mui/icons-material/DragHandle');
18
18
  var DynamicFeedIcon = require('@mui/icons-material/DynamicFeed');
19
19
  var EditIcon = require('@mui/icons-material/Edit');
20
- var ExpandLessIcon = require('@mui/icons-material/ExpandLess');
21
20
  var ExpandMoreIcon = require('@mui/icons-material/ExpandMore');
22
21
  var FilterAltIcon = require('@mui/icons-material/FilterAlt');
23
22
  var FilterListIcon = require('@mui/icons-material/FilterList');
@@ -93,7 +92,6 @@ var DensitySmallIcon__default = /*#__PURE__*/_interopDefaultLegacy(DensitySmallI
93
92
  var DragHandleIcon__default = /*#__PURE__*/_interopDefaultLegacy(DragHandleIcon);
94
93
  var DynamicFeedIcon__default = /*#__PURE__*/_interopDefaultLegacy(DynamicFeedIcon);
95
94
  var EditIcon__default = /*#__PURE__*/_interopDefaultLegacy(EditIcon);
96
- var ExpandLessIcon__default = /*#__PURE__*/_interopDefaultLegacy(ExpandLessIcon);
97
95
  var ExpandMoreIcon__default = /*#__PURE__*/_interopDefaultLegacy(ExpandMoreIcon);
98
96
  var FilterAltIcon__default = /*#__PURE__*/_interopDefaultLegacy(FilterAltIcon);
99
97
  var FilterListIcon__default = /*#__PURE__*/_interopDefaultLegacy(FilterListIcon);
@@ -312,8 +310,8 @@ const getIsFirstRightPinnedColumn = (column) => {
312
310
  const getTotalRight = (table, column) => {
313
311
  return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 200);
314
312
  };
315
- const getCommonCellStyles = ({ column, table, tableCellProps, theme, }) => {
316
- var _a, _b, _c, _d, _e, _f, _g;
313
+ const getCommonCellStyles = ({ column, header, table, tableCellProps, theme, }) => {
314
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
317
315
  return (Object.assign(Object.assign({ backgroundColor: column.getIsPinned() && column.columnDef.columnDefType !== 'group'
318
316
  ? styles.alpha(styles.lighten(theme.palette.background.default, 0.04), 0.97)
319
317
  : 'inherit', backgroundImage: 'inherit', boxShadow: getIsLastLeftPinnedColumn(table, column)
@@ -321,21 +319,21 @@ const getCommonCellStyles = ({ column, table, tableCellProps, theme, }) => {
321
319
  : getIsFirstRightPinnedColumn(column)
322
320
  ? `4px 0 8px -6px ${styles.alpha(theme.palette.common.black, 0.2)} inset`
323
321
  : undefined, display: table.options.layoutMode === 'grid' ? 'flex' : 'table-cell', flex: table.options.layoutMode === 'grid'
324
- ? `var(--col-${parseCSSVarId(column.id)}-size) 0 auto`
322
+ ? `var(--col-${parseCSSVarId((_a = header === null || header === void 0 ? void 0 : header.id) !== null && _a !== void 0 ? _a : column.id)}-size) 0 auto`
325
323
  : undefined, left: column.getIsPinned() === 'left'
326
324
  ? `${column.getStart('left')}px`
327
325
  : undefined, ml: table.options.enableColumnVirtualization &&
328
326
  column.getIsPinned() === 'left' &&
329
327
  column.getPinnedIndex() === 0
330
- ? `-${column.getSize() * ((_b = (_a = table.getState().columnPinning.left) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 1)}px`
328
+ ? `-${column.getSize() * ((_c = (_b = table.getState().columnPinning.left) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 1)}px`
331
329
  : undefined, mr: table.options.enableColumnVirtualization &&
332
330
  column.getIsPinned() === 'right' &&
333
331
  column.getPinnedIndex() === table.getVisibleLeafColumns().length - 1
334
332
  ? `-${column.getSize() *
335
- ((_d = (_c = table.getState().columnPinning.right) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 1) *
333
+ ((_e = (_d = table.getState().columnPinning.right) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 1) *
336
334
  1.2}px`
337
- : undefined, opacity: ((_e = table.getState().draggingColumn) === null || _e === void 0 ? void 0 : _e.id) === column.id ||
338
- ((_f = table.getState().hoveredColumn) === null || _f === void 0 ? void 0 : _f.id) === column.id
335
+ : undefined, opacity: ((_f = table.getState().draggingColumn) === null || _f === void 0 ? void 0 : _f.id) === column.id ||
336
+ ((_g = table.getState().hoveredColumn) === null || _g === void 0 ? void 0 : _g.id) === column.id
339
337
  ? 0.5
340
338
  : 1, position: column.getIsPinned() && column.columnDef.columnDefType !== 'group'
341
339
  ? 'sticky'
@@ -345,7 +343,7 @@ const getCommonCellStyles = ({ column, table, tableCellProps, theme, }) => {
345
343
  ? 'none'
346
344
  : `padding 150ms ease-in-out` }, ((tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx) instanceof Function
347
345
  ? tableCellProps.sx(theme)
348
- : tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx)), { minWidth: `max(calc(var(--col-${parseCSSVarId(column.id)}-size) * 1px), ${(_g = column.columnDef.minSize) !== null && _g !== void 0 ? _g : 30}px)`, width: `calc(var(--col-${parseCSSVarId(column.id)}-size) * 1px)` }));
346
+ : tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx)), { minWidth: `max(calc(var(--col-${parseCSSVarId((_h = header === null || header === void 0 ? void 0 : header.id) !== null && _h !== void 0 ? _h : column.id)}-size) * 1px), ${(_j = column.columnDef.minSize) !== null && _j !== void 0 ? _j : 30}px)`, width: `calc(var(--col-${parseCSSVarId((_k = header === null || header === void 0 ? void 0 : header.id) !== null && _k !== void 0 ? _k : column.id)}-size) * 1px)` }));
349
347
  };
350
348
  const MRT_DefaultColumn = {
351
349
  filterVariant: 'text',
@@ -367,7 +365,12 @@ const MRT_DefaultDisplayColumn = {
367
365
  enableResizing: false,
368
366
  enableSorting: false,
369
367
  };
370
- const parseCSSVarId = (id) => id.replaceAll('.', '_').replaceAll(' ', '_').replaceAll('+', '_');
368
+ const parseCSSVarId = (id) => id
369
+ .replaceAll('.', '_')
370
+ .replaceAll(' ', '_')
371
+ .replaceAll('+', '_')
372
+ .replaceAll('(', '_')
373
+ .replaceAll(')', '_');
371
374
 
372
375
  const fuzzy$1 = (row, columnId, filterValue, addMeta) => {
373
376
  const itemRank = matchSorterUtils.rankItem(row.getValue(columnId), filterValue, {
@@ -465,7 +468,6 @@ const MRT_Default_Icons = {
465
468
  DragHandleIcon: DragHandleIcon__default["default"],
466
469
  DynamicFeedIcon: DynamicFeedIcon__default["default"],
467
470
  EditIcon: EditIcon__default["default"],
468
- ExpandLessIcon: ExpandLessIcon__default["default"],
469
471
  ExpandMoreIcon: ExpandMoreIcon__default["default"],
470
472
  FilterAltIcon: FilterAltIcon__default["default"],
471
473
  FilterListIcon: FilterListIcon__default["default"],
@@ -500,7 +502,7 @@ const rankGlobalFuzzy = (rowA, rowB) => Math.max(...Object.values(rowB.columnFil
500
502
  Math.max(...Object.values(rowA.columnFiltersMeta).map((v) => v.rank));
501
503
 
502
504
  const MRT_ExpandAllButton = ({ table }) => {
503
- var _a;
505
+ var _a, _b;
504
506
  const { getIsAllRowsExpanded, getIsSomeRowsExpanded, getCanSomeRowsExpand, getState, options: { icons: { KeyboardDoubleArrowDownIcon }, localization, muiExpandAllButtonProps, renderDetailPanel, }, toggleAllRowsExpanded, } = table;
505
507
  const { density, isLoading } = getState();
506
508
  const iconButtonProps = muiExpandAllButtonProps instanceof Function
@@ -513,15 +515,14 @@ const MRT_ExpandAllButton = ({ table }) => {
513
515
  React__default["default"].createElement("span", null,
514
516
  React__default["default"].createElement(IconButton__default["default"], Object.assign({ "aria-label": localization.expandAll, disabled: isLoading || (!renderDetailPanel && !getCanSomeRowsExpand()), onClick: () => toggleAllRowsExpanded(!isAllRowsExpanded) }, 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
515
517
  ? iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx(theme)
516
- : iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx))), title: undefined }),
517
- React__default["default"].createElement(KeyboardDoubleArrowDownIcon, { style: {
518
- transform: `rotate(${isAllRowsExpanded ? -180 : getIsSomeRowsExpanded() ? -90 : 0}deg)`,
519
- transition: 'transform 150ms',
520
- } })))));
518
+ : iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx))), title: undefined }), (_b = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.children) !== null && _b !== void 0 ? _b : (React__default["default"].createElement(KeyboardDoubleArrowDownIcon, { style: {
519
+ transform: `rotate(${isAllRowsExpanded ? -180 : getIsSomeRowsExpanded() ? -90 : 0}deg)`,
520
+ transition: 'transform 150ms',
521
+ } }))))));
521
522
  };
522
523
 
523
524
  const MRT_ExpandButton = ({ row, table }) => {
524
- var _a;
525
+ var _a, _b;
525
526
  const { getState, options: { icons: { ExpandMoreIcon }, localization, muiExpandButtonProps, renderDetailPanel, }, } = table;
526
527
  const { density } = getState();
527
528
  const iconButtonProps = muiExpandButtonProps instanceof Function
@@ -541,11 +542,10 @@ const MRT_ExpandButton = ({ row, table }) => {
541
542
  React__default["default"].createElement("span", null,
542
543
  React__default["default"].createElement(IconButton__default["default"], Object.assign({ "aria-label": localization.expand, disabled: !canExpand && !renderDetailPanel }, iconButtonProps, { onClick: handleToggleExpand, sx: (theme) => (Object.assign({ height: density === 'compact' ? '1.75rem' : '2.25rem', width: density === 'compact' ? '1.75rem' : '2.25rem' }, ((iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx) instanceof Function
543
544
  ? iconButtonProps.sx(theme)
544
- : iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx))), title: undefined }),
545
- React__default["default"].createElement(ExpandMoreIcon, { style: {
546
- transform: `rotate(${!canExpand && !renderDetailPanel ? -90 : isExpanded ? -180 : 0}deg)`,
547
- transition: 'transform 150ms',
548
- } })))));
545
+ : iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx))), title: undefined }), (_b = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.children) !== null && _b !== void 0 ? _b : (React__default["default"].createElement(ExpandMoreIcon, { style: {
546
+ transform: `rotate(${!canExpand && !renderDetailPanel ? -90 : isExpanded ? -180 : 0}deg)`,
547
+ transition: 'transform 150ms',
548
+ } }))))));
549
549
  };
550
550
 
551
551
  const mrtFilterOptions = (localization) => [
@@ -640,6 +640,7 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilt
640
640
  const { globalFilterFn, density } = getState();
641
641
  const { column } = header !== null && header !== void 0 ? header : {};
642
642
  const { columnDef } = column !== null && column !== void 0 ? column : {};
643
+ const currentFilterValue = column === null || column === void 0 ? void 0 : column.getFilterValue();
643
644
  const allowedColumnFilterOptions = (_a = columnDef === null || columnDef === void 0 ? void 0 : columnDef.columnFilterModeOptions) !== null && _a !== void 0 ? _a : columnFilterModeOptions;
644
645
  const internalFilterOptions = React.useMemo(() => mrtFilterOptions(localization).filter((filterOption) => columnDef
645
646
  ? allowedColumnFilterOptions === undefined ||
@@ -651,12 +652,16 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilt
651
652
  if (header && column) {
652
653
  setColumnFilterFns((prev) => (Object.assign(Object.assign({}, prev), { [header.id]: option })));
653
654
  if (['empty', 'notEmpty'].includes(option)) {
654
- column.setFilterValue(' ');
655
+ if (currentFilterValue !== ' ') {
656
+ column.setFilterValue(' ');
657
+ }
655
658
  }
656
659
  else if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === 'multi-select' ||
657
660
  ['arrIncludesSome', 'arrIncludesAll', 'arrIncludes'].includes(option)) {
658
- column.setFilterValue([]);
659
- setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue([]);
661
+ if (currentFilterValue === null || currentFilterValue === void 0 ? void 0 : currentFilterValue.length) {
662
+ column.setFilterValue([]);
663
+ setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue([]);
664
+ }
660
665
  }
661
666
  else if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === 'range' ||
662
667
  ['between', 'betweenInclusive', 'inNumberRange'].includes(option)) {
@@ -664,8 +669,10 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilt
664
669
  setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue('');
665
670
  }
666
671
  else {
667
- column.setFilterValue('');
668
- setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue('');
672
+ if (!['', undefined].includes(currentFilterValue)) {
673
+ column.setFilterValue('');
674
+ setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue('');
675
+ }
669
676
  }
670
677
  }
671
678
  else {
@@ -1044,11 +1051,13 @@ const MRT_RowActionMenu = ({ anchorEl, handleEdit, row, setAnchorEl, table, }) =
1044
1051
  return (React__default["default"].createElement(Menu__default["default"], { anchorEl: anchorEl, open: !!anchorEl, onClose: () => setAnchorEl(null), MenuListProps: {
1045
1052
  dense: density === 'compact',
1046
1053
  } },
1047
- enableEditing && (React__default["default"].createElement(MenuItem__default["default"], { onClick: handleEdit, sx: commonMenuItemStyles },
1048
- React__default["default"].createElement(Box__default["default"], { sx: commonListItemStyles },
1049
- React__default["default"].createElement(ListItemIcon__default["default"], null,
1050
- React__default["default"].createElement(EditIcon, null)),
1051
- localization.edit))), renderRowActionMenuItems === null || renderRowActionMenuItems === void 0 ? void 0 :
1054
+ enableEditing instanceof Function
1055
+ ? enableEditing(row)
1056
+ : enableEditing && (React__default["default"].createElement(MenuItem__default["default"], { onClick: handleEdit, sx: commonMenuItemStyles },
1057
+ React__default["default"].createElement(Box__default["default"], { sx: commonListItemStyles },
1058
+ React__default["default"].createElement(ListItemIcon__default["default"], null,
1059
+ React__default["default"].createElement(EditIcon, null)),
1060
+ localization.edit))), renderRowActionMenuItems === null || renderRowActionMenuItems === void 0 ? void 0 :
1052
1061
  renderRowActionMenuItems({
1053
1062
  row,
1054
1063
  table,
@@ -1115,7 +1124,10 @@ const MRT_ToggleRowActionMenuButton = ({ cell, row, table, }) => {
1115
1124
  setEditingRow(Object.assign({}, row));
1116
1125
  setAnchorEl(null);
1117
1126
  };
1118
- return (React__default["default"].createElement(React__default["default"].Fragment, null, renderRowActions ? (React__default["default"].createElement(React__default["default"].Fragment, null, renderRowActions({ cell, row, table }))) : row.id === (editingRow === null || editingRow === void 0 ? void 0 : editingRow.id) && editingMode === 'row' ? (React__default["default"].createElement(MRT_EditActionButtons, { row: row, table: table })) : !renderRowActionMenuItems && enableEditing ? (React__default["default"].createElement(Tooltip__default["default"], { placement: "right", arrow: true, title: localization.edit },
1127
+ return (React__default["default"].createElement(React__default["default"].Fragment, null, renderRowActions ? (React__default["default"].createElement(React__default["default"].Fragment, null, renderRowActions({ cell, row, table }))) : row.id === (editingRow === null || editingRow === void 0 ? void 0 : editingRow.id) && editingMode === 'row' ? (React__default["default"].createElement(MRT_EditActionButtons, { row: row, table: table })) : !renderRowActionMenuItems &&
1128
+ (enableEditing instanceof Function
1129
+ ? enableEditing(row)
1130
+ : enableEditing) ? (React__default["default"].createElement(Tooltip__default["default"], { placement: "right", arrow: true, title: localization.edit },
1119
1131
  React__default["default"].createElement(IconButton__default["default"], { "aria-label": localization.edit, sx: commonIconButtonStyles, onClick: handleStartEditMode },
1120
1132
  React__default["default"].createElement(EditIcon, null)))) : renderRowActionMenuItems ? (React__default["default"].createElement(React__default["default"].Fragment, null,
1121
1133
  React__default["default"].createElement(Tooltip__default["default"], { arrow: true, enterDelay: 1000, enterNextDelay: 1000, title: localization.rowActions },
@@ -1542,7 +1554,7 @@ const MRT_TableHeadCellColumnActionsButton = ({ header, table, }) => {
1542
1554
  const iconButtonProps = Object.assign(Object.assign({}, mTableHeadCellColumnActionsButtonProps), mcTableHeadCellColumnActionsButtonProps);
1543
1555
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
1544
1556
  React__default["default"].createElement(Tooltip__default["default"], { arrow: true, enterDelay: 1000, enterNextDelay: 1000, placement: "top", title: (_a = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.title) !== null && _a !== void 0 ? _a : localization.columnActions },
1545
- React__default["default"].createElement(IconButton__default["default"], Object.assign({ "aria-label": localization.columnActions, onClick: handleClick, size: "small" }, iconButtonProps, { sx: (theme) => (Object.assign({ height: '2rem', m: '-8px -4px', opacity: 0.5, transform: 'scale(0.85)', transition: 'opacity 150ms', width: '2rem', '&:hover': {
1557
+ React__default["default"].createElement(IconButton__default["default"], Object.assign({ "aria-label": localization.columnActions, onClick: handleClick, size: "small" }, iconButtonProps, { sx: (theme) => (Object.assign({ height: '2rem', m: '-8px -4px', opacity: 0.5, transform: 'scale(0.85) translateX(-4px)', transition: 'opacity 150ms', width: '2rem', '&:hover': {
1546
1558
  opacity: 1,
1547
1559
  } }, ((iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx) instanceof Function
1548
1560
  ? iconButtonProps.sx(theme)
@@ -1893,10 +1905,8 @@ const MRT_TableHeadCellGrabHandle = ({ column, table, tableHeadCellRef, }) => {
1893
1905
  const MRT_TableHeadCellResizeHandle = ({ header, table }) => {
1894
1906
  var _a;
1895
1907
  const { getState, options: { columnResizeMode }, setColumnSizingInfo, } = table;
1896
- const { density, showColumnFilters } = getState();
1908
+ const { density } = getState();
1897
1909
  const { column } = header;
1898
- const { columnDef } = column;
1899
- const { columnDefType } = columnDef;
1900
1910
  return (React__default["default"].createElement(Box__default["default"], { onDoubleClick: () => {
1901
1911
  setColumnSizingInfo((old) => (Object.assign(Object.assign({}, old), { isResizingColumn: false })));
1902
1912
  column.resetSize();
@@ -1918,7 +1928,7 @@ const MRT_TableHeadCellResizeHandle = ({ header, table }) => {
1918
1928
  React__default["default"].createElement(Divider__default["default"], { flexItem: true, orientation: "vertical", sx: {
1919
1929
  borderRadius: '2px',
1920
1930
  borderWidth: '2px',
1921
- height: showColumnFilters && columnDefType === 'data' ? '3.5rem' : '1.5rem',
1931
+ height: '24px',
1922
1932
  touchAction: 'none',
1923
1933
  transition: column.getIsResizing()
1924
1934
  ? undefined
@@ -2036,6 +2046,7 @@ const MRT_TableHeadCell = ({ header, table }) => {
2036
2046
  ? 2
2037
2047
  : 1 }, getCommonCellStyles({
2038
2048
  column,
2049
+ header,
2039
2050
  table,
2040
2051
  tableCellProps,
2041
2052
  theme,
@@ -2111,7 +2122,7 @@ const MRT_TableHead = ({ table, virtualColumns, virtualPaddingLeft, virtualPaddi
2111
2122
  };
2112
2123
 
2113
2124
  const MRT_EditCellTextField = ({ cell, showLabel, table, }) => {
2114
- var _a;
2125
+ var _a, _b;
2115
2126
  const { getState, options: { muiTableBodyCellEditTextFieldProps }, refs: { editInputRefs }, setEditingCell, setEditingRow, } = table;
2116
2127
  const { column, row } = cell;
2117
2128
  const { columnDef } = column;
@@ -2129,6 +2140,7 @@ const MRT_EditCellTextField = ({ cell, showLabel, table, }) => {
2129
2140
  })
2130
2141
  : columnDef.muiTableBodyCellEditTextFieldProps;
2131
2142
  const textFieldProps = Object.assign(Object.assign({}, mTableBodyCellEditTextFieldProps), mcTableBodyCellEditTextFieldProps);
2143
+ const isSelectEdit = columnDef.editVariant === 'select';
2132
2144
  const saveRow = (newValue) => {
2133
2145
  if (editingRow) {
2134
2146
  setEditingRow(Object.assign(Object.assign({}, editingRow), { _valuesCache: Object.assign(Object.assign({}, editingRow._valuesCache), { [column.id]: newValue }) }));
@@ -2158,18 +2170,37 @@ const MRT_EditCellTextField = ({ cell, showLabel, table, }) => {
2158
2170
  if (columnDef.Edit) {
2159
2171
  return React__default["default"].createElement(React__default["default"].Fragment, null, (_a = columnDef.Edit) === null || _a === void 0 ? void 0 : _a.call(columnDef, { cell, column, row, table }));
2160
2172
  }
2161
- return (React__default["default"].createElement(TextField__default["default"], Object.assign({ disabled: columnDef.enableEditing === false, fullWidth: true, inputRef: (inputRef) => {
2173
+ return (React__default["default"].createElement(TextField__default["default"], Object.assign({ disabled: (columnDef.enableEditing instanceof Function
2174
+ ? columnDef.enableEditing(row)
2175
+ : columnDef.enableEditing) === false, fullWidth: true, inputRef: (inputRef) => {
2162
2176
  if (inputRef) {
2163
2177
  editInputRefs.current[column.id] = inputRef;
2164
2178
  if (textFieldProps.inputRef) {
2165
2179
  textFieldProps.inputRef = inputRef;
2166
2180
  }
2167
2181
  }
2168
- }, label: showLabel ? column.columnDef.header : undefined, margin: "none", name: column.id, placeholder: columnDef.header, value: value, variant: "standard" }, textFieldProps, { onClick: (e) => {
2182
+ }, label: showLabel ? column.columnDef.header : undefined, margin: "none", name: column.id, placeholder: columnDef.header, select: isSelectEdit, value: value, variant: "standard" }, textFieldProps, { onClick: (e) => {
2169
2183
  var _a;
2170
2184
  e.stopPropagation();
2171
2185
  (_a = textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.onClick) === null || _a === void 0 ? void 0 : _a.call(textFieldProps, e);
2172
- }, onBlur: handleBlur, onChange: handleChange, onKeyDown: handleEnterKeyDown })));
2186
+ }, onBlur: handleBlur, onChange: handleChange, onKeyDown: handleEnterKeyDown }), (_b = columnDef === null || columnDef === void 0 ? void 0 : columnDef.editSelectOptions) === null || _b === void 0 ? void 0 : _b.map((option) => {
2187
+ let value;
2188
+ let text;
2189
+ if (typeof option !== 'object') {
2190
+ value = option;
2191
+ text = option;
2192
+ }
2193
+ else {
2194
+ value = option.value;
2195
+ text = option.text;
2196
+ }
2197
+ return (React__default["default"].createElement(MenuItem__default["default"], { key: value, sx: {
2198
+ display: 'flex',
2199
+ m: 0,
2200
+ alignItems: 'center',
2201
+ gap: '0.5rem',
2202
+ }, value: value }, text));
2203
+ })));
2173
2204
  };
2174
2205
 
2175
2206
  const MRT_CopyButton = ({ cell, children, table, }) => {
@@ -2253,6 +2284,7 @@ const MRT_TableBodyCellValue = ({ cell, table }) => {
2253
2284
  renderedCellValue = cell.renderValue();
2254
2285
  }
2255
2286
  if (enableFilterMatchHighlighting &&
2287
+ columnDef.enableFilterMatchHighlighting !== false &&
2256
2288
  renderedCellValue &&
2257
2289
  allowedTypes.includes(typeof renderedCellValue) &&
2258
2290
  ((filterValue &&
@@ -2289,7 +2321,7 @@ const MRT_TableBodyCellValue = ({ cell, table }) => {
2289
2321
  };
2290
2322
 
2291
2323
  const MRT_TableBodyCell = ({ cell, enableHover, measureElement, numRows, rowIndex, rowRef, table, virtualCell, }) => {
2292
- var _a, _b;
2324
+ var _a, _b, _c, _d;
2293
2325
  const theme = styles.useTheme();
2294
2326
  const { getState, options: { editingMode, enableClickToCopy, enableColumnOrdering, enableEditing, enableGrouping, enableRowNumbers, layoutMode, muiTableBodyCellProps, muiTableBodyCellSkeletonProps, rowNumberMode, }, refs: { editInputRefs }, setEditingCell, setHoveredColumn, } = table;
2295
2327
  const { draggingColumn, draggingRow, editingCell, editingRow, hoveredColumn, hoveredRow, density, isLoading, showSkeletons, } = getState();
@@ -2345,8 +2377,10 @@ const MRT_TableBodyCell = ({ cell, enableHover, measureElement, numRows, rowInde
2345
2377
  }
2346
2378
  : undefined;
2347
2379
  }, [draggingColumn, draggingRow, hoveredColumn, hoveredRow, rowIndex]);
2348
- const isEditable = (enableEditing || columnDef.enableEditing) &&
2349
- columnDef.enableEditing !== false;
2380
+ const isEditable = (enableEditing instanceof Function ? enableEditing(row) : enableEditing) &&
2381
+ (columnDef.enableEditing instanceof Function
2382
+ ? columnDef.enableEditing(row)
2383
+ : columnDef.enableEditing) !== false;
2350
2384
  const isEditing = isEditable &&
2351
2385
  editingMode !== 'modal' &&
2352
2386
  (editingMode === 'table' ||
@@ -2356,9 +2390,7 @@ const MRT_TableBodyCell = ({ cell, enableHover, measureElement, numRows, rowInde
2356
2390
  const handleDoubleClick = (event) => {
2357
2391
  var _a;
2358
2392
  (_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onDoubleClick) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, event);
2359
- if ((enableEditing || columnDef.enableEditing) &&
2360
- columnDef.enableEditing !== false &&
2361
- editingMode === 'cell') {
2393
+ if (isEditable && editingMode === 'cell') {
2362
2394
  setEditingCell(cell);
2363
2395
  queueMicrotask(() => {
2364
2396
  var _a;
@@ -2403,8 +2435,7 @@ const MRT_TableBodyCell = ({ cell, enableHover, measureElement, numRows, rowInde
2403
2435
  : 1.25)}rem`
2404
2436
  : undefined, textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined, whiteSpace: density === 'compact' ? 'nowrap' : 'normal', zIndex: (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id ? 2 : column.getIsPinned() ? 1 : 0, '&:hover': {
2405
2437
  backgroundColor: enableHover &&
2406
- enableEditing &&
2407
- columnDef.enableEditing !== false &&
2438
+ isEditable &&
2408
2439
  ['table', 'cell'].includes(editingMode !== null && editingMode !== void 0 ? editingMode : '')
2409
2440
  ? theme.palette.mode === 'dark'
2410
2441
  ? `${styles.lighten(theme.palette.background.default, 0.2)} !important`
@@ -2416,12 +2447,12 @@ const MRT_TableBodyCell = ({ cell, enableHover, measureElement, numRows, rowInde
2416
2447
  theme,
2417
2448
  tableCellProps,
2418
2449
  })), draggingBorders)) }),
2419
- React__default["default"].createElement(React__default["default"].Fragment, null, cell.getIsPlaceholder() ? null : isLoading || showSkeletons ? (React__default["default"].createElement(Skeleton__default["default"], Object.assign({ animation: "wave", height: 20, width: skeletonWidth }, skeletonProps))) : enableRowNumbers &&
2450
+ React__default["default"].createElement(React__default["default"].Fragment, null, cell.getIsPlaceholder() ? ((_b = (_a = columnDef.PlaceholderCell) === null || _a === void 0 ? void 0 : _a.call(columnDef, { cell, column, row, table })) !== null && _b !== void 0 ? _b : null) : isLoading || showSkeletons ? (React__default["default"].createElement(Skeleton__default["default"], Object.assign({ animation: "wave", height: 20, width: skeletonWidth }, skeletonProps))) : enableRowNumbers &&
2420
2451
  rowNumberMode === 'static' &&
2421
2452
  column.id === 'mrt-row-numbers' ? (rowIndex + 1) : column.id === 'mrt-row-drag' ? (React__default["default"].createElement(MRT_TableBodyRowGrabHandle, { cell: cell, rowRef: rowRef, table: table })) : columnDefType === 'display' &&
2422
2453
  (column.id === 'mrt-row-select' ||
2423
2454
  column.id === 'mrt-row-expand' ||
2424
- !row.getIsGrouped()) ? ((_a = columnDef.Cell) === null || _a === void 0 ? void 0 : _a.call(columnDef, {
2455
+ !row.getIsGrouped()) ? ((_c = columnDef.Cell) === null || _c === void 0 ? void 0 : _c.call(columnDef, {
2425
2456
  cell,
2426
2457
  renderedCellValue: cell.renderValue(),
2427
2458
  column,
@@ -2431,8 +2462,8 @@ const MRT_TableBodyCell = ({ cell, enableHover, measureElement, numRows, rowInde
2431
2462
  columnDef.enableClickToCopy !== false ? (React__default["default"].createElement(MRT_CopyButton, { cell: cell, table: table },
2432
2463
  React__default["default"].createElement(MRT_TableBodyCellValue, { cell: cell, table: table }))) : (React__default["default"].createElement(MRT_TableBodyCellValue, { cell: cell, table: table }))),
2433
2464
  cell.getIsGrouped() && !columnDef.GroupedCell && (React__default["default"].createElement(React__default["default"].Fragment, null,
2434
- " (", (_b = row.subRows) === null || _b === void 0 ? void 0 :
2435
- _b.length,
2465
+ " (", (_d = row.subRows) === null || _d === void 0 ? void 0 :
2466
+ _d.length,
2436
2467
  ")"))));
2437
2468
  };
2438
2469
  const Memo_MRT_TableBodyCell = React.memo(MRT_TableBodyCell, (prev, next) => next.cell === prev.cell);
@@ -2710,8 +2741,10 @@ const MRT_Table = ({ table }) => {
2710
2741
  const headers = getFlatHeaders();
2711
2742
  const colSizes = {};
2712
2743
  for (let i = 0; i < headers.length; i++) {
2713
- const h = headers[i];
2714
- colSizes[`--col-${parseCSSVarId(h.column.id)}-size`] = h.getSize();
2744
+ const header = headers[i];
2745
+ const colSize = header.getSize();
2746
+ colSizes[`--header-${parseCSSVarId(header.id)}-size`] = colSize;
2747
+ colSizes[`--col-${parseCSSVarId(header.column.id)}-size`] = colSize;
2715
2748
  }
2716
2749
  return colSizes;
2717
2750
  }, [columns, columnSizing, columnSizingInfo]);
@@ -2861,7 +2894,7 @@ const MRT_EditRowModal = ({ open, row, table, }) => {
2861
2894
  };
2862
2895
 
2863
2896
  const MRT_TableRoot = (props) => {
2864
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11;
2897
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13;
2865
2898
  const bottomToolbarRef = React.useRef(null);
2866
2899
  const editInputRefs = React.useRef({});
2867
2900
  const filterInputRefs = React.useRef({});
@@ -2902,18 +2935,18 @@ const MRT_TableRoot = (props) => {
2902
2935
  const [showGlobalFilter, setShowGlobalFilter] = React.useState((_q = initialState === null || initialState === void 0 ? void 0 : initialState.showGlobalFilter) !== null && _q !== void 0 ? _q : false);
2903
2936
  const [showToolbarDropZone, setShowToolbarDropZone] = React.useState((_r = initialState === null || initialState === void 0 ? void 0 : initialState.showToolbarDropZone) !== null && _r !== void 0 ? _r : false);
2904
2937
  const displayColumns = React.useMemo(() => {
2905
- var _a, _b, _c, _d, _e;
2938
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
2906
2939
  return [
2907
- columnOrder.includes('mrt-row-drag') && Object.assign(Object.assign(Object.assign({ header: props.localization.move, size: 60 }, props.defaultDisplayColumn), (_a = props.displayColumnDefOptions) === null || _a === void 0 ? void 0 : _a['mrt-row-drag']), { id: 'mrt-row-drag' }),
2908
- columnOrder.includes('mrt-row-actions') && Object.assign(Object.assign(Object.assign({ Cell: ({ cell, row }) => (React__default["default"].createElement(MRT_ToggleRowActionMenuButton, { cell: cell, row: row, table: table })), header: props.localization.actions, size: 70 }, props.defaultDisplayColumn), (_b = props.displayColumnDefOptions) === null || _b === void 0 ? void 0 : _b['mrt-row-actions']), { id: 'mrt-row-actions' }),
2909
- columnOrder.includes('mrt-row-expand') &&
2910
- showExpandColumn(props, grouping) && Object.assign(Object.assign(Object.assign({ Cell: ({ row }) => (React__default["default"].createElement(MRT_ExpandButton, { row: row, table: table })), Header: props.enableExpandAll
2940
+ ((_b = (_a = props.state) === null || _a === void 0 ? void 0 : _a.columnOrder) !== null && _b !== void 0 ? _b : columnOrder).includes('mrt-row-drag') && Object.assign(Object.assign(Object.assign({ header: props.localization.move, size: 60 }, props.defaultDisplayColumn), (_c = props.displayColumnDefOptions) === null || _c === void 0 ? void 0 : _c['mrt-row-drag']), { id: 'mrt-row-drag' }),
2941
+ ((_e = (_d = props.state) === null || _d === void 0 ? void 0 : _d.columnOrder) !== null && _e !== void 0 ? _e : columnOrder).includes('mrt-row-actions') && Object.assign(Object.assign(Object.assign({ Cell: ({ cell, row }) => (React__default["default"].createElement(MRT_ToggleRowActionMenuButton, { cell: cell, row: row, table: table })), header: props.localization.actions, size: 70 }, props.defaultDisplayColumn), (_f = props.displayColumnDefOptions) === null || _f === void 0 ? void 0 : _f['mrt-row-actions']), { id: 'mrt-row-actions' }),
2942
+ ((_h = (_g = props.state) === null || _g === void 0 ? void 0 : _g.columnOrder) !== null && _h !== void 0 ? _h : columnOrder).includes('mrt-row-expand') &&
2943
+ showExpandColumn(props, (_k = (_j = props.state) === null || _j === void 0 ? void 0 : _j.grouping) !== null && _k !== void 0 ? _k : grouping) && Object.assign(Object.assign(Object.assign({ Cell: ({ row }) => (React__default["default"].createElement(MRT_ExpandButton, { row: row, table: table })), Header: props.enableExpandAll
2911
2944
  ? () => React__default["default"].createElement(MRT_ExpandAllButton, { table: table })
2912
- : null, header: props.localization.expand, size: 60 }, props.defaultDisplayColumn), (_c = props.displayColumnDefOptions) === null || _c === void 0 ? void 0 : _c['mrt-row-expand']), { id: 'mrt-row-expand' }),
2913
- columnOrder.includes('mrt-row-select') && Object.assign(Object.assign(Object.assign({ Cell: ({ row }) => (React__default["default"].createElement(MRT_SelectCheckbox, { row: row, table: table })), Header: props.enableSelectAll && props.enableMultiRowSelection
2945
+ : null, header: props.localization.expand, size: 60 }, props.defaultDisplayColumn), (_l = props.displayColumnDefOptions) === null || _l === void 0 ? void 0 : _l['mrt-row-expand']), { id: 'mrt-row-expand' }),
2946
+ ((_o = (_m = props.state) === null || _m === void 0 ? void 0 : _m.columnOrder) !== null && _o !== void 0 ? _o : columnOrder).includes('mrt-row-select') && Object.assign(Object.assign(Object.assign({ Cell: ({ row }) => (React__default["default"].createElement(MRT_SelectCheckbox, { row: row, table: table })), Header: props.enableSelectAll && props.enableMultiRowSelection
2914
2947
  ? () => React__default["default"].createElement(MRT_SelectCheckbox, { selectAll: true, table: table })
2915
- : null, header: props.localization.select, size: 60 }, props.defaultDisplayColumn), (_d = props.displayColumnDefOptions) === null || _d === void 0 ? void 0 : _d['mrt-row-select']), { id: 'mrt-row-select' }),
2916
- columnOrder.includes('mrt-row-numbers') && Object.assign(Object.assign(Object.assign({ Cell: ({ row }) => row.index + 1, Header: () => props.localization.rowNumber, header: props.localization.rowNumbers, size: 60 }, props.defaultDisplayColumn), (_e = props.displayColumnDefOptions) === null || _e === void 0 ? void 0 : _e['mrt-row-numbers']), { id: 'mrt-row-numbers' }),
2948
+ : null, header: props.localization.select, size: 60 }, props.defaultDisplayColumn), (_p = props.displayColumnDefOptions) === null || _p === void 0 ? void 0 : _p['mrt-row-select']), { id: 'mrt-row-select' }),
2949
+ ((_r = (_q = props.state) === null || _q === void 0 ? void 0 : _q.columnOrder) !== null && _r !== void 0 ? _r : columnOrder).includes('mrt-row-numbers') && Object.assign(Object.assign(Object.assign({ Cell: ({ row }) => row.index + 1, Header: () => props.localization.rowNumber, header: props.localization.rowNumbers, size: 60 }, props.defaultDisplayColumn), (_s = props.displayColumnDefOptions) === null || _s === void 0 ? void 0 : _s['mrt-row-numbers']), { id: 'mrt-row-numbers' }),
2917
2950
  ].filter(Boolean);
2918
2951
  }, [
2919
2952
  columnOrder,
@@ -2936,6 +2969,8 @@ const MRT_TableRoot = (props) => {
2936
2969
  props.localization,
2937
2970
  props.positionActionsColumn,
2938
2971
  props.renderDetailPanel,
2972
+ (_s = props.state) === null || _s === void 0 ? void 0 : _s.columnOrder,
2973
+ (_t = props.state) === null || _t === void 0 ? void 0 : _t.grouping,
2939
2974
  ]);
2940
2975
  const columnDefs = React.useMemo(() => {
2941
2976
  var _a, _b, _c;
@@ -2951,7 +2986,7 @@ const MRT_TableRoot = (props) => {
2951
2986
  columnFilterFns,
2952
2987
  displayColumns,
2953
2988
  props.columns,
2954
- (_s = props.state) === null || _s === void 0 ? void 0 : _s.columnFilterFns,
2989
+ (_u = props.state) === null || _u === void 0 ? void 0 : _u.columnFilterFns,
2955
2990
  ]);
2956
2991
  const data = React.useMemo(() => {
2957
2992
  var _a, _b, _c, _d, _e;
@@ -2965,11 +3000,11 @@ const MRT_TableRoot = (props) => {
2965
3000
  [getColumnId(col)]: null,
2966
3001
  }))))
2967
3002
  : props.data;
2968
- }, [props.data, (_t = props.state) === null || _t === void 0 ? void 0 : _t.isLoading, (_u = props.state) === null || _u === void 0 ? void 0 : _u.showSkeletons]);
3003
+ }, [props.data, (_v = props.state) === null || _v === void 0 ? void 0 : _v.isLoading, (_w = props.state) === null || _w === void 0 ? void 0 : _w.showSkeletons]);
2969
3004
  //@ts-ignore
2970
3005
  const table = Object.assign(Object.assign({}, reactTable.useReactTable(Object.assign(Object.assign({ getCoreRowModel: reactTable.getCoreRowModel(), getExpandedRowModel: reactTable.getExpandedRowModel(), getFacetedRowModel: reactTable.getFacetedRowModel(), getFilteredRowModel: reactTable.getFilteredRowModel(), getGroupedRowModel: reactTable.getGroupedRowModel(), getPaginationRowModel: reactTable.getPaginationRowModel(), getSortedRowModel: reactTable.getSortedRowModel(), onColumnOrderChange: setColumnOrder, onGroupingChange: setGrouping, getSubRows: (row) => row === null || row === void 0 ? void 0 : row.subRows }, props), {
2971
3006
  //@ts-ignore
2972
- columns: columnDefs, data, globalFilterFn: (_w = (_v = props.filterFns) === null || _v === void 0 ? void 0 : _v[globalFilterFn]) !== null && _w !== void 0 ? _w : (_x = props.filterFns) === null || _x === void 0 ? void 0 : _x.fuzzy, initialState, state: Object.assign({ columnFilterFns,
3007
+ columns: columnDefs, data, globalFilterFn: (_y = (_x = props.filterFns) === null || _x === void 0 ? void 0 : _x[globalFilterFn]) !== null && _y !== void 0 ? _y : (_z = props.filterFns) === null || _z === void 0 ? void 0 : _z.fuzzy, initialState, state: Object.assign({ columnFilterFns,
2973
3008
  columnOrder,
2974
3009
  density,
2975
3010
  draggingColumn,
@@ -2993,7 +3028,7 @@ const MRT_TableRoot = (props) => {
2993
3028
  tableHeadCellRefs,
2994
3029
  tablePaperRef,
2995
3030
  topToolbarRef,
2996
- }, setColumnFilterFns: (_y = props.onColumnFilterFnsChange) !== null && _y !== void 0 ? _y : setColumnFilterFns, setDensity: (_z = props.onDensityChange) !== null && _z !== void 0 ? _z : setDensity, setDraggingColumn: (_0 = props.onDraggingColumnChange) !== null && _0 !== void 0 ? _0 : setDraggingColumn, setDraggingRow: (_1 = props.onDraggingRowChange) !== null && _1 !== void 0 ? _1 : setDraggingRow, setEditingCell: (_2 = props.onEditingCellChange) !== null && _2 !== void 0 ? _2 : setEditingCell, setEditingRow: (_3 = props.onEditingRowChange) !== null && _3 !== void 0 ? _3 : setEditingRow, setGlobalFilterFn: (_4 = props.onGlobalFilterFnChange) !== null && _4 !== void 0 ? _4 : setGlobalFilterFn, setHoveredColumn: (_5 = props.onHoveredColumnChange) !== null && _5 !== void 0 ? _5 : setHoveredColumn, setHoveredRow: (_6 = props.onHoveredRowChange) !== null && _6 !== void 0 ? _6 : setHoveredRow, setIsFullScreen: (_7 = props.onIsFullScreenChange) !== null && _7 !== void 0 ? _7 : setIsFullScreen, setShowAlertBanner: (_8 = props.onShowAlertBannerChange) !== null && _8 !== void 0 ? _8 : setShowAlertBanner, setShowFilters: (_9 = props.onShowFiltersChange) !== null && _9 !== void 0 ? _9 : setShowFilters, setShowGlobalFilter: (_10 = props.onShowGlobalFilterChange) !== null && _10 !== void 0 ? _10 : setShowGlobalFilter, setShowToolbarDropZone: (_11 = props.onShowToolbarDropZoneChange) !== null && _11 !== void 0 ? _11 : setShowToolbarDropZone });
3031
+ }, setColumnFilterFns: (_0 = props.onColumnFilterFnsChange) !== null && _0 !== void 0 ? _0 : setColumnFilterFns, setDensity: (_1 = props.onDensityChange) !== null && _1 !== void 0 ? _1 : setDensity, setDraggingColumn: (_2 = props.onDraggingColumnChange) !== null && _2 !== void 0 ? _2 : setDraggingColumn, setDraggingRow: (_3 = props.onDraggingRowChange) !== null && _3 !== void 0 ? _3 : setDraggingRow, setEditingCell: (_4 = props.onEditingCellChange) !== null && _4 !== void 0 ? _4 : setEditingCell, setEditingRow: (_5 = props.onEditingRowChange) !== null && _5 !== void 0 ? _5 : setEditingRow, setGlobalFilterFn: (_6 = props.onGlobalFilterFnChange) !== null && _6 !== void 0 ? _6 : setGlobalFilterFn, setHoveredColumn: (_7 = props.onHoveredColumnChange) !== null && _7 !== void 0 ? _7 : setHoveredColumn, setHoveredRow: (_8 = props.onHoveredRowChange) !== null && _8 !== void 0 ? _8 : setHoveredRow, setIsFullScreen: (_9 = props.onIsFullScreenChange) !== null && _9 !== void 0 ? _9 : setIsFullScreen, setShowAlertBanner: (_10 = props.onShowAlertBannerChange) !== null && _10 !== void 0 ? _10 : setShowAlertBanner, setShowFilters: (_11 = props.onShowFiltersChange) !== null && _11 !== void 0 ? _11 : setShowFilters, setShowGlobalFilter: (_12 = props.onShowGlobalFilterChange) !== null && _12 !== void 0 ? _12 : setShowGlobalFilter, setShowToolbarDropZone: (_13 = props.onShowToolbarDropZoneChange) !== null && _13 !== void 0 ? _13 : setShowToolbarDropZone });
2997
3032
  if (props.tableInstanceRef) {
2998
3033
  props.tableInstanceRef.current = table;
2999
3034
  }
@@ -3140,13 +3175,16 @@ const MaterialReactTable = (_a) => {
3140
3175
  return (React__default["default"].createElement(MRT_TableRoot, Object.assign({ aggregationFns: _aggregationFns, autoResetExpanded: autoResetExpanded, columnResizeMode: columnResizeMode, defaultColumn: _defaultColumn, defaultDisplayColumn: _defaultDisplayColumn, editingMode: editingMode, enableBottomToolbar: enableBottomToolbar, enableColumnActions: enableColumnActions, enableColumnFilters: enableColumnFilters, enableColumnOrdering: enableColumnOrdering, enableColumnResizing: enableColumnResizing, enableDensityToggle: enableDensityToggle, enableExpandAll: enableExpandAll, enableFilterMatchHighlighting: enableFilterMatchHighlighting, enableFilters: enableFilters, enableFullScreenToggle: enableFullScreenToggle, enableGlobalFilter: enableGlobalFilter, 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: _filterFns, icons: _icons, layoutMode: layoutMode, localization: _localization, manualFiltering: manualFiltering, manualGrouping: manualGrouping, manualPagination: manualPagination, manualSorting: manualSorting, positionActionsColumn: positionActionsColumn, positionExpandColumn: positionExpandColumn, positionGlobalFilter: positionGlobalFilter, positionPagination: positionPagination, positionToolbarAlertBanner: positionToolbarAlertBanner, positionToolbarDropZone: positionToolbarDropZone, rowNumberMode: rowNumberMode, selectAllMode: selectAllMode, sortingFns: _sortingFns }, rest)));
3141
3176
  };
3142
3177
 
3178
+ exports.MRT_AggregationFns = MRT_AggregationFns;
3143
3179
  exports.MRT_BottomToolbar = MRT_BottomToolbar;
3144
3180
  exports.MRT_CopyButton = MRT_CopyButton;
3145
3181
  exports.MRT_EditActionButtons = MRT_EditActionButtons;
3182
+ exports.MRT_FilterFns = MRT_FilterFns;
3146
3183
  exports.MRT_FilterOptionMenu = MRT_FilterOptionMenu;
3147
3184
  exports.MRT_FullScreenToggleButton = MRT_FullScreenToggleButton;
3148
3185
  exports.MRT_GlobalFilterTextField = MRT_GlobalFilterTextField;
3149
3186
  exports.MRT_ShowHideColumnsButton = MRT_ShowHideColumnsButton;
3187
+ exports.MRT_SortingFns = MRT_SortingFns;
3150
3188
  exports.MRT_TablePagination = MRT_TablePagination;
3151
3189
  exports.MRT_ToggleDensePaddingButton = MRT_ToggleDensePaddingButton;
3152
3190
  exports.MRT_ToggleFiltersButton = MRT_ToggleFiltersButton;