material-react-table 1.7.4 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +5 -13
  2. package/dist/cjs/index.js +84 -38
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/types/MaterialReactTable.d.ts +16 -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 +4 -4
  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/table/MRT_TableRoot.d.ts +1 -272
  15. package/dist/esm/material-react-table.esm.js +82 -39
  16. package/dist/esm/material-react-table.esm.js.map +1 -1
  17. package/dist/esm/types/MaterialReactTable.d.ts +16 -8
  18. package/dist/esm/types/body/MRT_TableBody.d.ts +3 -4
  19. package/dist/esm/types/body/MRT_TableBodyCell.d.ts +2 -3
  20. package/dist/esm/types/body/MRT_TableBodyRow.d.ts +4 -5
  21. package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +2 -3
  22. package/dist/esm/types/column.utils.d.ts +4 -4
  23. package/dist/esm/types/footer/MRT_TableFooter.d.ts +2 -3
  24. package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +2 -3
  25. package/dist/esm/types/head/MRT_TableHead.d.ts +2 -3
  26. package/dist/esm/types/head/MRT_TableHeadRow.d.ts +2 -3
  27. package/dist/esm/types/table/MRT_TableRoot.d.ts +1 -272
  28. package/dist/index.d.ts +16 -7
  29. package/package.json +2 -2
  30. package/src/MaterialReactTable.tsx +44 -7
  31. package/src/body/MRT_TableBody.tsx +11 -10
  32. package/src/body/MRT_TableBodyCell.tsx +8 -12
  33. package/src/body/MRT_TableBodyCellValue.tsx +1 -0
  34. package/src/body/MRT_TableBodyRow.tsx +14 -7
  35. package/src/body/MRT_TableDetailPanel.tsx +2 -3
  36. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +4 -1
  37. package/src/column.utils.ts +12 -9
  38. package/src/footer/MRT_TableFooter.tsx +2 -3
  39. package/src/footer/MRT_TableFooterRow.tsx +7 -3
  40. package/src/head/MRT_TableHead.tsx +2 -3
  41. package/src/head/MRT_TableHeadCellSortLabel.tsx +4 -0
  42. package/src/head/MRT_TableHeadRow.tsx +7 -3
  43. package/src/inputs/MRT_EditCellTextField.tsx +38 -2
  44. package/src/menus/MRT_FilterOptionMenu.tsx +14 -5
  45. package/src/menus/MRT_RowActionMenu.tsx +12 -10
  46. package/src/table/MRT_Table.tsx +2 -3
  47. 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
@@ -365,7 +365,12 @@ const MRT_DefaultDisplayColumn = {
365
365
  enableResizing: false,
366
366
  enableSorting: false,
367
367
  };
368
- const parseCSSVarId = (id) => id.replaceAll('.', '_').replaceAll(' ', '_').replaceAll('+', '_');
368
+ const parseCSSVarId = (id) => id
369
+ .replaceAll('.', '_')
370
+ .replaceAll(' ', '_')
371
+ .replaceAll('+', '_')
372
+ .replaceAll('(', '_')
373
+ .replaceAll(')', '_');
369
374
 
370
375
  const fuzzy$1 = (row, columnId, filterValue, addMeta) => {
371
376
  const itemRank = matchSorterUtils.rankItem(row.getValue(columnId), filterValue, {
@@ -635,6 +640,7 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilt
635
640
  const { globalFilterFn, density } = getState();
636
641
  const { column } = header !== null && header !== void 0 ? header : {};
637
642
  const { columnDef } = column !== null && column !== void 0 ? column : {};
643
+ const currentFilterValue = column === null || column === void 0 ? void 0 : column.getFilterValue();
638
644
  const allowedColumnFilterOptions = (_a = columnDef === null || columnDef === void 0 ? void 0 : columnDef.columnFilterModeOptions) !== null && _a !== void 0 ? _a : columnFilterModeOptions;
639
645
  const internalFilterOptions = React.useMemo(() => mrtFilterOptions(localization).filter((filterOption) => columnDef
640
646
  ? allowedColumnFilterOptions === undefined ||
@@ -646,12 +652,16 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilt
646
652
  if (header && column) {
647
653
  setColumnFilterFns((prev) => (Object.assign(Object.assign({}, prev), { [header.id]: option })));
648
654
  if (['empty', 'notEmpty'].includes(option)) {
649
- column.setFilterValue(' ');
655
+ if (currentFilterValue !== ' ') {
656
+ column.setFilterValue(' ');
657
+ }
650
658
  }
651
659
  else if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === 'multi-select' ||
652
660
  ['arrIncludesSome', 'arrIncludesAll', 'arrIncludes'].includes(option)) {
653
- column.setFilterValue([]);
654
- 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
+ }
655
665
  }
656
666
  else if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === 'range' ||
657
667
  ['between', 'betweenInclusive', 'inNumberRange'].includes(option)) {
@@ -659,8 +669,10 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilt
659
669
  setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue('');
660
670
  }
661
671
  else {
662
- column.setFilterValue('');
663
- 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
+ }
664
676
  }
665
677
  }
666
678
  else {
@@ -1039,11 +1051,13 @@ const MRT_RowActionMenu = ({ anchorEl, handleEdit, row, setAnchorEl, table, }) =
1039
1051
  return (React__default["default"].createElement(Menu__default["default"], { anchorEl: anchorEl, open: !!anchorEl, onClose: () => setAnchorEl(null), MenuListProps: {
1040
1052
  dense: density === 'compact',
1041
1053
  } },
1042
- enableEditing && (React__default["default"].createElement(MenuItem__default["default"], { onClick: handleEdit, sx: commonMenuItemStyles },
1043
- React__default["default"].createElement(Box__default["default"], { sx: commonListItemStyles },
1044
- React__default["default"].createElement(ListItemIcon__default["default"], null,
1045
- React__default["default"].createElement(EditIcon, null)),
1046
- 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 :
1047
1061
  renderRowActionMenuItems({
1048
1062
  row,
1049
1063
  table,
@@ -1110,7 +1124,10 @@ const MRT_ToggleRowActionMenuButton = ({ cell, row, table, }) => {
1110
1124
  setEditingRow(Object.assign({}, row));
1111
1125
  setAnchorEl(null);
1112
1126
  };
1113
- 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 },
1114
1131
  React__default["default"].createElement(IconButton__default["default"], { "aria-label": localization.edit, sx: commonIconButtonStyles, onClick: handleStartEditMode },
1115
1132
  React__default["default"].createElement(EditIcon, null)))) : renderRowActionMenuItems ? (React__default["default"].createElement(React__default["default"].Fragment, null,
1116
1133
  React__default["default"].createElement(Tooltip__default["default"], { arrow: true, enterDelay: 1000, enterNextDelay: 1000, title: localization.rowActions },
@@ -1939,7 +1956,11 @@ const MRT_TableHeadCellSortLabel = ({ header, table, tableCellProps, }) => {
1939
1956
  transform: (tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.align) !== 'right'
1940
1957
  ? 'translateX(-0.5ch)'
1941
1958
  : undefined,
1942
- }, IconComponent: ArrowDownwardIcon })));
1959
+ }, IconComponent: ArrowDownwardIcon, onClick: (e) => {
1960
+ var _a;
1961
+ e.stopPropagation();
1962
+ (_a = header.column.getToggleSortingHandler()) === null || _a === void 0 ? void 0 : _a(e);
1963
+ } })));
1943
1964
  };
1944
1965
 
1945
1966
  const MRT_TableHeadCell = ({ header, table }) => {
@@ -2105,7 +2126,7 @@ const MRT_TableHead = ({ table, virtualColumns, virtualPaddingLeft, virtualPaddi
2105
2126
  };
2106
2127
 
2107
2128
  const MRT_EditCellTextField = ({ cell, showLabel, table, }) => {
2108
- var _a;
2129
+ var _a, _b;
2109
2130
  const { getState, options: { muiTableBodyCellEditTextFieldProps }, refs: { editInputRefs }, setEditingCell, setEditingRow, } = table;
2110
2131
  const { column, row } = cell;
2111
2132
  const { columnDef } = column;
@@ -2123,6 +2144,7 @@ const MRT_EditCellTextField = ({ cell, showLabel, table, }) => {
2123
2144
  })
2124
2145
  : columnDef.muiTableBodyCellEditTextFieldProps;
2125
2146
  const textFieldProps = Object.assign(Object.assign({}, mTableBodyCellEditTextFieldProps), mcTableBodyCellEditTextFieldProps);
2147
+ const isSelectEdit = columnDef.editVariant === 'select';
2126
2148
  const saveRow = (newValue) => {
2127
2149
  if (editingRow) {
2128
2150
  setEditingRow(Object.assign(Object.assign({}, editingRow), { _valuesCache: Object.assign(Object.assign({}, editingRow._valuesCache), { [column.id]: newValue }) }));
@@ -2152,18 +2174,37 @@ const MRT_EditCellTextField = ({ cell, showLabel, table, }) => {
2152
2174
  if (columnDef.Edit) {
2153
2175
  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 }));
2154
2176
  }
2155
- return (React__default["default"].createElement(TextField__default["default"], Object.assign({ disabled: columnDef.enableEditing === false, fullWidth: true, inputRef: (inputRef) => {
2177
+ return (React__default["default"].createElement(TextField__default["default"], Object.assign({ disabled: (columnDef.enableEditing instanceof Function
2178
+ ? columnDef.enableEditing(row)
2179
+ : columnDef.enableEditing) === false, fullWidth: true, inputRef: (inputRef) => {
2156
2180
  if (inputRef) {
2157
2181
  editInputRefs.current[column.id] = inputRef;
2158
2182
  if (textFieldProps.inputRef) {
2159
2183
  textFieldProps.inputRef = inputRef;
2160
2184
  }
2161
2185
  }
2162
- }, label: showLabel ? column.columnDef.header : undefined, margin: "none", name: column.id, placeholder: columnDef.header, value: value, variant: "standard" }, textFieldProps, { onClick: (e) => {
2186
+ }, label: showLabel ? column.columnDef.header : undefined, margin: "none", name: column.id, placeholder: columnDef.header, select: isSelectEdit, value: value, variant: "standard" }, textFieldProps, { onClick: (e) => {
2163
2187
  var _a;
2164
2188
  e.stopPropagation();
2165
2189
  (_a = textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.onClick) === null || _a === void 0 ? void 0 : _a.call(textFieldProps, e);
2166
- }, onBlur: handleBlur, onChange: handleChange, onKeyDown: handleEnterKeyDown })));
2190
+ }, 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) => {
2191
+ let value;
2192
+ let text;
2193
+ if (typeof option !== 'object') {
2194
+ value = option;
2195
+ text = option;
2196
+ }
2197
+ else {
2198
+ value = option.value;
2199
+ text = option.text;
2200
+ }
2201
+ return (React__default["default"].createElement(MenuItem__default["default"], { key: value, sx: {
2202
+ display: 'flex',
2203
+ m: 0,
2204
+ alignItems: 'center',
2205
+ gap: '0.5rem',
2206
+ }, value: value }, text));
2207
+ })));
2167
2208
  };
2168
2209
 
2169
2210
  const MRT_CopyButton = ({ cell, children, table, }) => {
@@ -2247,6 +2288,7 @@ const MRT_TableBodyCellValue = ({ cell, table }) => {
2247
2288
  renderedCellValue = cell.renderValue();
2248
2289
  }
2249
2290
  if (enableFilterMatchHighlighting &&
2291
+ columnDef.enableFilterMatchHighlighting !== false &&
2250
2292
  renderedCellValue &&
2251
2293
  allowedTypes.includes(typeof renderedCellValue) &&
2252
2294
  ((filterValue &&
@@ -2339,8 +2381,10 @@ const MRT_TableBodyCell = ({ cell, enableHover, measureElement, numRows, rowInde
2339
2381
  }
2340
2382
  : undefined;
2341
2383
  }, [draggingColumn, draggingRow, hoveredColumn, hoveredRow, rowIndex]);
2342
- const isEditable = (enableEditing || columnDef.enableEditing) &&
2343
- columnDef.enableEditing !== false;
2384
+ const isEditable = (enableEditing instanceof Function ? enableEditing(row) : enableEditing) &&
2385
+ (columnDef.enableEditing instanceof Function
2386
+ ? columnDef.enableEditing(row)
2387
+ : columnDef.enableEditing) !== false;
2344
2388
  const isEditing = isEditable &&
2345
2389
  editingMode !== 'modal' &&
2346
2390
  (editingMode === 'table' ||
@@ -2350,9 +2394,7 @@ const MRT_TableBodyCell = ({ cell, enableHover, measureElement, numRows, rowInde
2350
2394
  const handleDoubleClick = (event) => {
2351
2395
  var _a;
2352
2396
  (_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onDoubleClick) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, event);
2353
- if ((enableEditing || columnDef.enableEditing) &&
2354
- columnDef.enableEditing !== false &&
2355
- editingMode === 'cell') {
2397
+ if (isEditable && editingMode === 'cell') {
2356
2398
  setEditingCell(cell);
2357
2399
  queueMicrotask(() => {
2358
2400
  var _a;
@@ -2397,8 +2439,7 @@ const MRT_TableBodyCell = ({ cell, enableHover, measureElement, numRows, rowInde
2397
2439
  : 1.25)}rem`
2398
2440
  : 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': {
2399
2441
  backgroundColor: enableHover &&
2400
- enableEditing &&
2401
- columnDef.enableEditing !== false &&
2442
+ isEditable &&
2402
2443
  ['table', 'cell'].includes(editingMode !== null && editingMode !== void 0 ? editingMode : '')
2403
2444
  ? theme.palette.mode === 'dark'
2404
2445
  ? `${styles.lighten(theme.palette.background.default, 0.2)} !important`
@@ -2857,7 +2898,7 @@ const MRT_EditRowModal = ({ open, row, table, }) => {
2857
2898
  };
2858
2899
 
2859
2900
  const MRT_TableRoot = (props) => {
2860
- 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;
2901
+ 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;
2861
2902
  const bottomToolbarRef = React.useRef(null);
2862
2903
  const editInputRefs = React.useRef({});
2863
2904
  const filterInputRefs = React.useRef({});
@@ -2898,18 +2939,18 @@ const MRT_TableRoot = (props) => {
2898
2939
  const [showGlobalFilter, setShowGlobalFilter] = React.useState((_q = initialState === null || initialState === void 0 ? void 0 : initialState.showGlobalFilter) !== null && _q !== void 0 ? _q : false);
2899
2940
  const [showToolbarDropZone, setShowToolbarDropZone] = React.useState((_r = initialState === null || initialState === void 0 ? void 0 : initialState.showToolbarDropZone) !== null && _r !== void 0 ? _r : false);
2900
2941
  const displayColumns = React.useMemo(() => {
2901
- var _a, _b, _c, _d, _e;
2942
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
2902
2943
  return [
2903
- 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' }),
2904
- 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' }),
2905
- columnOrder.includes('mrt-row-expand') &&
2906
- showExpandColumn(props, grouping) && Object.assign(Object.assign(Object.assign({ Cell: ({ row }) => (React__default["default"].createElement(MRT_ExpandButton, { row: row, table: table })), Header: props.enableExpandAll
2944
+ ((_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' }),
2945
+ ((_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' }),
2946
+ ((_h = (_g = props.state) === null || _g === void 0 ? void 0 : _g.columnOrder) !== null && _h !== void 0 ? _h : columnOrder).includes('mrt-row-expand') &&
2947
+ 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
2907
2948
  ? () => React__default["default"].createElement(MRT_ExpandAllButton, { table: table })
2908
- : 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' }),
2909
- 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
2949
+ : 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' }),
2950
+ ((_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
2910
2951
  ? () => React__default["default"].createElement(MRT_SelectCheckbox, { selectAll: true, table: table })
2911
- : 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' }),
2912
- 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' }),
2952
+ : 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' }),
2953
+ ((_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' }),
2913
2954
  ].filter(Boolean);
2914
2955
  }, [
2915
2956
  columnOrder,
@@ -2932,6 +2973,8 @@ const MRT_TableRoot = (props) => {
2932
2973
  props.localization,
2933
2974
  props.positionActionsColumn,
2934
2975
  props.renderDetailPanel,
2976
+ (_s = props.state) === null || _s === void 0 ? void 0 : _s.columnOrder,
2977
+ (_t = props.state) === null || _t === void 0 ? void 0 : _t.grouping,
2935
2978
  ]);
2936
2979
  const columnDefs = React.useMemo(() => {
2937
2980
  var _a, _b, _c;
@@ -2947,7 +2990,7 @@ const MRT_TableRoot = (props) => {
2947
2990
  columnFilterFns,
2948
2991
  displayColumns,
2949
2992
  props.columns,
2950
- (_s = props.state) === null || _s === void 0 ? void 0 : _s.columnFilterFns,
2993
+ (_u = props.state) === null || _u === void 0 ? void 0 : _u.columnFilterFns,
2951
2994
  ]);
2952
2995
  const data = React.useMemo(() => {
2953
2996
  var _a, _b, _c, _d, _e;
@@ -2961,11 +3004,11 @@ const MRT_TableRoot = (props) => {
2961
3004
  [getColumnId(col)]: null,
2962
3005
  }))))
2963
3006
  : props.data;
2964
- }, [props.data, (_t = props.state) === null || _t === void 0 ? void 0 : _t.isLoading, (_u = props.state) === null || _u === void 0 ? void 0 : _u.showSkeletons]);
3007
+ }, [props.data, (_v = props.state) === null || _v === void 0 ? void 0 : _v.isLoading, (_w = props.state) === null || _w === void 0 ? void 0 : _w.showSkeletons]);
2965
3008
  //@ts-ignore
2966
3009
  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), {
2967
3010
  //@ts-ignore
2968
- 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,
3011
+ 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,
2969
3012
  columnOrder,
2970
3013
  density,
2971
3014
  draggingColumn,
@@ -2989,7 +3032,7 @@ const MRT_TableRoot = (props) => {
2989
3032
  tableHeadCellRefs,
2990
3033
  tablePaperRef,
2991
3034
  topToolbarRef,
2992
- }, 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 });
3035
+ }, 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 });
2993
3036
  if (props.tableInstanceRef) {
2994
3037
  props.tableInstanceRef.current = table;
2995
3038
  }
@@ -3136,13 +3179,16 @@ const MaterialReactTable = (_a) => {
3136
3179
  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)));
3137
3180
  };
3138
3181
 
3182
+ exports.MRT_AggregationFns = MRT_AggregationFns;
3139
3183
  exports.MRT_BottomToolbar = MRT_BottomToolbar;
3140
3184
  exports.MRT_CopyButton = MRT_CopyButton;
3141
3185
  exports.MRT_EditActionButtons = MRT_EditActionButtons;
3186
+ exports.MRT_FilterFns = MRT_FilterFns;
3142
3187
  exports.MRT_FilterOptionMenu = MRT_FilterOptionMenu;
3143
3188
  exports.MRT_FullScreenToggleButton = MRT_FullScreenToggleButton;
3144
3189
  exports.MRT_GlobalFilterTextField = MRT_GlobalFilterTextField;
3145
3190
  exports.MRT_ShowHideColumnsButton = MRT_ShowHideColumnsButton;
3191
+ exports.MRT_SortingFns = MRT_SortingFns;
3146
3192
  exports.MRT_TablePagination = MRT_TablePagination;
3147
3193
  exports.MRT_ToggleDensePaddingButton = MRT_ToggleDensePaddingButton;
3148
3194
  exports.MRT_ToggleFiltersButton = MRT_ToggleFiltersButton;