material-react-table 1.9.4 → 1.11.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 (45) hide show
  1. package/dist/cjs/index.js +216 -215
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/MaterialReactTable.d.ts +4 -0
  4. package/dist/cjs/types/_locales/fi.d.ts +2 -0
  5. package/dist/cjs/types/_locales/id.d.ts +2 -0
  6. package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +2 -1
  7. package/dist/cjs/types/column.utils.d.ts +1 -1
  8. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenu.d.ts +1 -1
  9. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +1 -2
  10. package/dist/esm/material-react-table.esm.js +213 -212
  11. package/dist/esm/material-react-table.esm.js.map +1 -1
  12. package/dist/esm/types/MaterialReactTable.d.ts +4 -0
  13. package/dist/esm/types/_locales/fi.d.ts +2 -0
  14. package/dist/esm/types/_locales/id.d.ts +2 -0
  15. package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +2 -1
  16. package/dist/esm/types/column.utils.d.ts +1 -1
  17. package/dist/esm/types/menus/MRT_ShowHideColumnsMenu.d.ts +1 -1
  18. package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +1 -2
  19. package/dist/index.d.ts +4 -0
  20. package/locales/fi.d.ts +2 -0
  21. package/locales/fi.esm.d.ts +2 -0
  22. package/locales/fi.esm.js +94 -0
  23. package/locales/fi.esm.js.map +1 -0
  24. package/locales/fi.js +98 -0
  25. package/locales/fi.js.map +1 -0
  26. package/locales/id.d.ts +2 -0
  27. package/locales/id.esm.d.ts +2 -0
  28. package/locales/id.esm.js +94 -0
  29. package/locales/id.esm.js.map +1 -0
  30. package/locales/id.js +98 -0
  31. package/locales/id.js.map +1 -0
  32. package/package.json +10 -8
  33. package/src/MaterialReactTable.tsx +4 -0
  34. package/src/_locales/fi.ts +94 -0
  35. package/src/_locales/id.ts +95 -0
  36. package/src/body/MRT_TableBody.tsx +22 -17
  37. package/src/body/MRT_TableBodyRow.tsx +2 -1
  38. package/src/body/MRT_TableDetailPanel.tsx +3 -1
  39. package/src/column.utils.ts +95 -83
  40. package/src/head/MRT_TableHeadCell.tsx +2 -2
  41. package/src/head/MRT_TableHeadCellResizeHandle.tsx +1 -1
  42. package/src/menus/MRT_ColumnActionMenu.tsx +3 -26
  43. package/src/menus/MRT_ShowHideColumnsMenu.tsx +4 -6
  44. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +3 -8
  45. package/src/toolbar/MRT_ToolbarDropZone.tsx +1 -0
package/dist/cjs/index.js CHANGED
@@ -43,10 +43,6 @@ var ListItemIcon = require('@mui/material/ListItemIcon');
43
43
  var Menu = require('@mui/material/Menu');
44
44
  var MenuItem = require('@mui/material/MenuItem');
45
45
  var Button = require('@mui/material/Button');
46
- var Divider = require('@mui/material/Divider');
47
- var FormControlLabel = require('@mui/material/FormControlLabel');
48
- var Switch = require('@mui/material/Switch');
49
- var Typography = require('@mui/material/Typography');
50
46
  var Checkbox = require('@mui/material/Checkbox');
51
47
  var Radio = require('@mui/material/Radio');
52
48
  var Paper = require('@mui/material/Paper');
@@ -61,6 +57,10 @@ var TablePagination = require('@mui/material/TablePagination');
61
57
  var Alert = require('@mui/material/Alert');
62
58
  var AlertTitle = require('@mui/material/AlertTitle');
63
59
  var Chip = require('@mui/material/Chip');
60
+ var Divider = require('@mui/material/Divider');
61
+ var FormControlLabel = require('@mui/material/FormControlLabel');
62
+ var Switch = require('@mui/material/Switch');
63
+ var Typography = require('@mui/material/Typography');
64
64
  var Fade = require('@mui/material/Fade');
65
65
  var TableContainer = require('@mui/material/TableContainer');
66
66
  var reactVirtual = require('@tanstack/react-virtual');
@@ -119,10 +119,6 @@ var ListItemIcon__default = /*#__PURE__*/_interopDefaultLegacy(ListItemIcon);
119
119
  var Menu__default = /*#__PURE__*/_interopDefaultLegacy(Menu);
120
120
  var MenuItem__default = /*#__PURE__*/_interopDefaultLegacy(MenuItem);
121
121
  var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
122
- var Divider__default = /*#__PURE__*/_interopDefaultLegacy(Divider);
123
- var FormControlLabel__default = /*#__PURE__*/_interopDefaultLegacy(FormControlLabel);
124
- var Switch__default = /*#__PURE__*/_interopDefaultLegacy(Switch);
125
- var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
126
122
  var Checkbox__default = /*#__PURE__*/_interopDefaultLegacy(Checkbox);
127
123
  var Radio__default = /*#__PURE__*/_interopDefaultLegacy(Radio);
128
124
  var Paper__default = /*#__PURE__*/_interopDefaultLegacy(Paper);
@@ -136,6 +132,10 @@ var TablePagination__default = /*#__PURE__*/_interopDefaultLegacy(TablePaginatio
136
132
  var Alert__default = /*#__PURE__*/_interopDefaultLegacy(Alert);
137
133
  var AlertTitle__default = /*#__PURE__*/_interopDefaultLegacy(AlertTitle);
138
134
  var Chip__default = /*#__PURE__*/_interopDefaultLegacy(Chip);
135
+ var Divider__default = /*#__PURE__*/_interopDefaultLegacy(Divider);
136
+ var FormControlLabel__default = /*#__PURE__*/_interopDefaultLegacy(FormControlLabel);
137
+ var Switch__default = /*#__PURE__*/_interopDefaultLegacy(Switch);
138
+ var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
139
139
  var Fade__default = /*#__PURE__*/_interopDefaultLegacy(Fade);
140
140
  var TableContainer__default = /*#__PURE__*/_interopDefaultLegacy(TableContainer);
141
141
  var Table__default = /*#__PURE__*/_interopDefaultLegacy(Table);
@@ -278,13 +278,17 @@ const getTrailingDisplayColumnIds = (props) => {
278
278
  props.positionExpandColumn === 'last' &&
279
279
  showExpandColumn(props) &&
280
280
  'mrt-row-expand',
281
- ];
281
+ ].filter(Boolean);
282
+ };
283
+ const getDefaultColumnOrderIds = (props) => {
284
+ const leadingDisplayCols = getLeadingDisplayColumnIds(props);
285
+ const trailingDisplayCols = getTrailingDisplayColumnIds(props);
286
+ const allLeafColumnDefs = getAllLeafColumnDefs(props.columns)
287
+ .map((columnDef) => getColumnId(columnDef))
288
+ .filter((columnId) => !leadingDisplayCols.includes(columnId) &&
289
+ !trailingDisplayCols.includes(columnId));
290
+ return [...leadingDisplayCols, ...allLeafColumnDefs, ...trailingDisplayCols];
282
291
  };
283
- const getDefaultColumnOrderIds = (props) => [
284
- ...getLeadingDisplayColumnIds(props),
285
- ...getAllLeafColumnDefs(props.columns).map((columnDef) => getColumnId(columnDef)),
286
- ...getTrailingDisplayColumnIds(props),
287
- ].filter(Boolean);
288
292
  const getDefaultColumnFilterFn = (columnDef) => {
289
293
  if (columnDef.filterVariant === 'multi-select')
290
294
  return 'arrIncludesSome';
@@ -314,28 +318,33 @@ const getTotalRight = (table, column) => {
314
318
  };
315
319
  const getCommonCellStyles = ({ column, header, table, tableCellProps, theme, }) => {
316
320
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
317
- return (Object.assign(Object.assign({ backgroundColor: column.getIsPinned() && column.columnDef.columnDefType !== 'group'
321
+ const widthStyles = {
322
+ minWidth: `max(calc(var(--${header ? 'header' : 'col'}-${parseCSSVarId((_a = header === null || header === void 0 ? void 0 : header.id) !== null && _a !== void 0 ? _a : column.id)}-size) * 1px), ${(_b = column.columnDef.minSize) !== null && _b !== void 0 ? _b : 30}px)`,
323
+ width: `calc(var(--${header ? 'header' : 'col'}-${parseCSSVarId((_c = header === null || header === void 0 ? void 0 : header.id) !== null && _c !== void 0 ? _c : column.id)}-size) * 1px)`,
324
+ };
325
+ return Object.assign(Object.assign(Object.assign({ backgroundColor: column.getIsPinned() && column.columnDef.columnDefType !== 'group'
318
326
  ? styles.alpha(styles.lighten(theme.palette.background.default, 0.04), 0.97)
319
327
  : 'inherit', backgroundImage: 'inherit', boxShadow: getIsLastLeftPinnedColumn(table, column)
320
328
  ? `-4px 0 8px -6px ${styles.alpha(theme.palette.common.black, 0.2)} inset`
321
329
  : getIsFirstRightPinnedColumn(column)
322
330
  ? `4px 0 8px -6px ${styles.alpha(theme.palette.common.black, 0.2)} inset`
323
331
  : undefined, display: table.options.layoutMode === 'grid' ? 'flex' : 'table-cell', flex: table.options.layoutMode === 'grid'
324
- ? `var(--${header ? 'header' : 'col'}-${parseCSSVarId((_a = header === null || header === void 0 ? void 0 : header.id) !== null && _a !== void 0 ? _a : column.id)}-size) 0 auto`
332
+ ? `var(--${header ? 'header' : 'col'}-${parseCSSVarId((_d = header === null || header === void 0 ? void 0 : header.id) !== null && _d !== void 0 ? _d : column.id)}-size) 0 auto`
325
333
  : undefined, left: column.getIsPinned() === 'left'
326
334
  ? `${column.getStart('left')}px`
327
335
  : undefined, ml: table.options.enableColumnVirtualization &&
328
336
  column.getIsPinned() === 'left' &&
329
337
  column.getPinnedIndex() === 0
330
- ? `-${column.getSize() * ((_c = (_b = table.getState().columnPinning.left) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 1)}px`
338
+ ? `-${column.getSize() *
339
+ ((_f = (_e = table.getState().columnPinning.left) === null || _e === void 0 ? void 0 : _e.length) !== null && _f !== void 0 ? _f : 1)}px`
331
340
  : undefined, mr: table.options.enableColumnVirtualization &&
332
341
  column.getIsPinned() === 'right' &&
333
342
  column.getPinnedIndex() === table.getVisibleLeafColumns().length - 1
334
343
  ? `-${column.getSize() *
335
- ((_e = (_d = table.getState().columnPinning.right) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 1) *
344
+ ((_h = (_g = table.getState().columnPinning.right) === null || _g === void 0 ? void 0 : _g.length) !== null && _h !== void 0 ? _h : 1) *
336
345
  1.2}px`
337
- : undefined, opacity: ((_f = table.getState().draggingColumn) === null || _f === void 0 ? void 0 : _f.id) === column.id ||
338
- ((_g = table.getState().hoveredColumn) === null || _g === void 0 ? void 0 : _g.id) === column.id
346
+ : undefined, opacity: ((_j = table.getState().draggingColumn) === null || _j === void 0 ? void 0 : _j.id) === column.id ||
347
+ ((_k = table.getState().hoveredColumn) === null || _k === void 0 ? void 0 : _k.id) === column.id
339
348
  ? 0.5
340
349
  : 1, position: column.getIsPinned() && column.columnDef.columnDefType !== 'group'
341
350
  ? 'sticky'
@@ -343,9 +352,9 @@ const getCommonCellStyles = ({ column, header, table, tableCellProps, theme, })
343
352
  ? `${getTotalRight(table, column)}px`
344
353
  : undefined, transition: table.options.enableColumnVirtualization
345
354
  ? 'none'
346
- : `padding 150ms ease-in-out` }, ((tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx) instanceof Function
355
+ : `padding 150ms ease-in-out` }, (!table.options.enableColumnResizing && widthStyles)), ((tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx) instanceof Function
347
356
  ? tableCellProps.sx(theme)
348
- : tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx)), { minWidth: `max(calc(var(--${header ? 'header' : '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(--${header ? 'header' : 'col'}-${parseCSSVarId((_k = header === null || header === void 0 ? void 0 : header.id) !== null && _k !== void 0 ? _k : column.id)}-size) * 1px)` }));
357
+ : tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx)), (table.options.enableColumnResizing && widthStyles));
349
358
  };
350
359
  const MRT_DefaultColumn = {
351
360
  filterVariant: 'text',
@@ -738,168 +747,6 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilt
738
747
  label)))));
739
748
  };
740
749
 
741
- const MRT_ColumnPinningButtons = ({ column, table, }) => {
742
- const { options: { icons: { PushPinIcon }, localization, }, } = table;
743
- const handlePinColumn = (pinDirection) => {
744
- column.pin(pinDirection);
745
- };
746
- return (React__default["default"].createElement(Box__default["default"], { sx: { minWidth: '70px', textAlign: 'center' } }, column.getIsPinned() ? (React__default["default"].createElement(Tooltip__default["default"], { arrow: true, title: localization.unpin },
747
- React__default["default"].createElement(IconButton__default["default"], { onClick: () => handlePinColumn(false), size: "small" },
748
- React__default["default"].createElement(PushPinIcon, null)))) : (React__default["default"].createElement(React__default["default"].Fragment, null,
749
- React__default["default"].createElement(Tooltip__default["default"], { arrow: true, title: localization.pinToLeft },
750
- React__default["default"].createElement(IconButton__default["default"], { onClick: () => handlePinColumn('left'), size: "small" },
751
- React__default["default"].createElement(PushPinIcon, { style: {
752
- transform: 'rotate(90deg)',
753
- } }))),
754
- React__default["default"].createElement(Tooltip__default["default"], { arrow: true, title: localization.pinToRight },
755
- React__default["default"].createElement(IconButton__default["default"], { onClick: () => handlePinColumn('right'), size: "small" },
756
- React__default["default"].createElement(PushPinIcon, { style: {
757
- transform: 'rotate(-90deg)',
758
- } })))))));
759
- };
760
-
761
- const MRT_GrabHandleButton = ({ iconButtonProps, onDragEnd, onDragStart, table, }) => {
762
- var _a;
763
- const { options: { icons: { DragHandleIcon }, localization, }, } = table;
764
- return (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.move },
765
- React__default["default"].createElement(IconButton__default["default"], Object.assign({ disableRipple: true, draggable: "true", size: "small" }, iconButtonProps, { onClick: (e) => {
766
- var _a;
767
- e.stopPropagation();
768
- (_a = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(iconButtonProps, e);
769
- }, onDragStart: onDragStart, onDragEnd: onDragEnd, sx: (theme) => (Object.assign({ cursor: 'grab', m: '0 -0.1rem', opacity: 0.5, p: '2px', transition: 'all 150ms ease-in-out', '&:hover': {
770
- backgroundColor: 'transparent',
771
- opacity: 1,
772
- }, '&:active': {
773
- cursor: 'grabbing',
774
- } }, ((iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx) instanceof Function
775
- ? iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx(theme)
776
- : iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx))), title: undefined }),
777
- React__default["default"].createElement(DragHandleIcon, null))));
778
- };
779
-
780
- const MRT_ShowHideColumnsMenuItems = ({ allColumns, hoveredColumn, setHoveredColumn, column, isSubMenu, table, }) => {
781
- var _a;
782
- const { getState, options: { enableColumnOrdering, enableHiding, enablePinning, localization, }, setColumnOrder, } = table;
783
- const { columnOrder } = getState();
784
- const { columnDef } = column;
785
- const { columnDefType } = columnDef;
786
- const switchChecked = (columnDefType !== 'group' && column.getIsVisible()) ||
787
- (columnDefType === 'group' &&
788
- column.getLeafColumns().some((col) => col.getIsVisible()));
789
- const handleToggleColumnHidden = (column) => {
790
- var _a, _b;
791
- if (columnDefType === 'group') {
792
- (_b = (_a = column === null || column === void 0 ? void 0 : column.columns) === null || _a === void 0 ? void 0 : _a.forEach) === null || _b === void 0 ? void 0 : _b.call(_a, (childColumn) => {
793
- childColumn.toggleVisibility(!switchChecked);
794
- });
795
- }
796
- else {
797
- column.toggleVisibility();
798
- }
799
- };
800
- const menuItemRef = React.useRef(null);
801
- const [isDragging, setIsDragging] = React.useState(false);
802
- const handleDragStart = (e) => {
803
- setIsDragging(true);
804
- e.dataTransfer.setDragImage(menuItemRef.current, 0, 0);
805
- };
806
- const handleDragEnd = (_e) => {
807
- setIsDragging(false);
808
- setHoveredColumn(null);
809
- if (hoveredColumn) {
810
- setColumnOrder(reorderColumn(column, hoveredColumn, columnOrder));
811
- }
812
- };
813
- const handleDragEnter = (_e) => {
814
- if (!isDragging && columnDef.enableColumnOrdering !== false) {
815
- setHoveredColumn(column);
816
- }
817
- };
818
- return (React__default["default"].createElement(React__default["default"].Fragment, null,
819
- React__default["default"].createElement(MenuItem__default["default"], { disableRipple: true, ref: menuItemRef, onDragEnter: handleDragEnter, sx: (theme) => ({
820
- alignItems: 'center',
821
- justifyContent: 'flex-start',
822
- my: 0,
823
- opacity: isDragging ? 0.5 : 1,
824
- outlineOffset: '-2px',
825
- outline: isDragging
826
- ? `2px dashed ${theme.palette.divider}`
827
- : (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
828
- ? `2px dashed ${theme.palette.primary.main}`
829
- : 'none',
830
- pl: `${(column.depth + 0.5) * 2}rem`,
831
- py: '6px',
832
- }) },
833
- React__default["default"].createElement(Box__default["default"], { sx: {
834
- display: 'flex',
835
- flexWrap: 'nowrap',
836
- gap: '8px',
837
- } },
838
- !isSubMenu &&
839
- columnDefType !== 'group' &&
840
- enableColumnOrdering &&
841
- !allColumns.some((col) => col.columnDef.columnDefType === 'group') &&
842
- (columnDef.enableColumnOrdering !== false ? (React__default["default"].createElement(MRT_GrabHandleButton, { onDragEnd: handleDragEnd, onDragStart: handleDragStart, table: table })) : (React__default["default"].createElement(Box__default["default"], { sx: { width: '28px' } }))),
843
- !isSubMenu &&
844
- enablePinning &&
845
- (column.getCanPin() ? (React__default["default"].createElement(MRT_ColumnPinningButtons, { column: column, table: table })) : (React__default["default"].createElement(Box__default["default"], { sx: { width: '70px' } }))),
846
- enableHiding ? (React__default["default"].createElement(FormControlLabel__default["default"], { componentsProps: {
847
- typography: {
848
- sx: {
849
- mb: 0,
850
- opacity: columnDefType !== 'display' ? 1 : 0.5,
851
- },
852
- },
853
- }, checked: switchChecked, control: React__default["default"].createElement(Tooltip__default["default"], { arrow: true, enterDelay: 1000, enterNextDelay: 1000, title: localization.toggleVisibility },
854
- React__default["default"].createElement(Switch__default["default"], null)), disabled: (isSubMenu && switchChecked) || !column.getCanHide(), label: columnDef.header, onChange: () => handleToggleColumnHidden(column) })) : (React__default["default"].createElement(Typography__default["default"], { sx: { alignSelf: 'center' } }, columnDef.header)))), (_a = column.columns) === null || _a === void 0 ? void 0 :
855
- _a.map((c, i) => (React__default["default"].createElement(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: c, hoveredColumn: hoveredColumn, isSubMenu: isSubMenu, key: `${i}-${c.id}`, setHoveredColumn: setHoveredColumn, table: table })))));
856
- };
857
-
858
- const MRT_ShowHideColumnsMenu = ({ anchorEl, isSubMenu, setAnchorEl, table, }) => {
859
- const { getAllColumns, getAllLeafColumns, getCenterLeafColumns, getIsAllColumnsVisible, getIsSomeColumnsPinned, getIsSomeColumnsVisible, getLeftLeafColumns, getRightLeafColumns, getState, toggleAllColumnsVisible, options: { enableColumnOrdering, enableHiding, enablePinning, localization, }, } = table;
860
- const { density, columnOrder, columnPinning } = getState();
861
- const hideAllColumns = () => {
862
- getAllLeafColumns()
863
- .filter((col) => col.columnDef.enableHiding !== false)
864
- .forEach((col) => col.toggleVisibility(false));
865
- };
866
- const allColumns = React.useMemo(() => {
867
- const columns = getAllColumns();
868
- if (columnOrder.length > 0 &&
869
- !columns.some((col) => col.columnDef.columnDefType === 'group')) {
870
- return [
871
- ...getLeftLeafColumns(),
872
- ...Array.from(new Set(columnOrder)).map((colId) => getCenterLeafColumns().find((col) => (col === null || col === void 0 ? void 0 : col.id) === colId)),
873
- ...getRightLeafColumns(),
874
- ].filter(Boolean);
875
- }
876
- return columns;
877
- }, [
878
- columnOrder,
879
- columnPinning,
880
- getAllColumns(),
881
- getCenterLeafColumns(),
882
- getLeftLeafColumns(),
883
- getRightLeafColumns(),
884
- ]);
885
- const [hoveredColumn, setHoveredColumn] = React.useState(null);
886
- return (React__default["default"].createElement(Menu__default["default"], { anchorEl: anchorEl, open: !!anchorEl, onClose: () => setAnchorEl(null), MenuListProps: {
887
- dense: density === 'compact',
888
- } },
889
- React__default["default"].createElement(Box__default["default"], { sx: {
890
- display: 'flex',
891
- justifyContent: isSubMenu ? 'center' : 'space-between',
892
- p: '0.5rem',
893
- pt: 0,
894
- } },
895
- !isSubMenu && enableHiding && (React__default["default"].createElement(Button__default["default"], { disabled: !getIsSomeColumnsVisible(), onClick: hideAllColumns }, localization.hideAll)),
896
- !isSubMenu && enableColumnOrdering && (React__default["default"].createElement(Button__default["default"], { onClick: () => table.setColumnOrder(getDefaultColumnOrderIds(table.options)) }, localization.resetOrder)),
897
- !isSubMenu && enablePinning && (React__default["default"].createElement(Button__default["default"], { disabled: !getIsSomeColumnsPinned(), onClick: () => table.resetColumnPinning(true) }, localization.unpinAll)),
898
- enableHiding && (React__default["default"].createElement(Button__default["default"], { disabled: getIsAllColumnsVisible(), onClick: () => toggleAllColumnsVisible(true) }, localization.showAll))),
899
- React__default["default"].createElement(Divider__default["default"], null),
900
- allColumns.map((column, index) => (React__default["default"].createElement(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: column, hoveredColumn: hoveredColumn, isSubMenu: isSubMenu, key: `${index}-${column.id}`, setHoveredColumn: setHoveredColumn, table: table })))));
901
- };
902
-
903
750
  const commonMenuItemStyles = {
904
751
  py: '6px',
905
752
  my: 0,
@@ -915,9 +762,8 @@ const MRT_ColumnActionMenu = ({ anchorEl, header, setAnchorEl, table, }) => {
915
762
  const { getState, toggleAllColumnsVisible, setColumnOrder, options: { columnFilterModeOptions, enableColumnFilterModes, enableColumnFilters, enableColumnResizing, enableGrouping, enableHiding, enablePinning, enableSorting, icons: { ArrowRightIcon, ClearAllIcon, ViewColumnIcon, DynamicFeedIcon, FilterListIcon, FilterListOffIcon, PushPinIcon, SortIcon, RestartAltIcon, VisibilityOffIcon, }, localization, renderColumnActionsMenuItems, }, refs: { filterInputRefs }, setColumnSizingInfo, setShowColumnFilters, } = table;
916
763
  const { column } = header;
917
764
  const { columnDef } = column;
918
- const { columnSizing, columnVisibility, density } = getState();
765
+ const { columnSizing, columnVisibility, density, showColumnFilters } = getState();
919
766
  const [filterMenuAnchorEl, setFilterMenuAnchorEl] = React.useState(null);
920
- const [showHideColumnsMenuAnchorEl, setShowHideColumnsMenuAnchorEl] = React.useState(null);
921
767
  const handleClearSort = () => {
922
768
  column.clearSorting();
923
769
  setAnchorEl(null);
@@ -965,10 +811,6 @@ const MRT_ColumnActionMenu = ({ anchorEl, header, setAnchorEl, table, }) => {
965
811
  event.stopPropagation();
966
812
  setFilterMenuAnchorEl(event.currentTarget);
967
813
  };
968
- const handleOpenShowHideColumnsMenu = (event) => {
969
- event.stopPropagation();
970
- setShowHideColumnsMenuAnchorEl(event.currentTarget);
971
- };
972
814
  const isSelectFilter = !!columnDef.filterSelectOptions;
973
815
  const allowedColumnFilterOptions = (_a = columnDef === null || columnDef === void 0 ? void 0 : columnDef.columnFilterModeOptions) !== null && _a !== void 0 ? _a : columnFilterModeOptions;
974
816
  const showFilterModeSubMenu = enableColumnFilterModes &&
@@ -1012,7 +854,7 @@ const MRT_ColumnActionMenu = ({ anchorEl, header, setAnchorEl, table, }) => {
1012
854
  React__default["default"].createElement(ListItemIcon__default["default"], null,
1013
855
  React__default["default"].createElement(FilterListOffIcon, null)),
1014
856
  localization.clearFilter)),
1015
- React__default["default"].createElement(MenuItem__default["default"], { divider: enableGrouping || enableHiding, key: 1, onClick: handleFilterByColumn, sx: commonMenuItemStyles },
857
+ React__default["default"].createElement(MenuItem__default["default"], { disabled: showColumnFilters && !enableColumnFilterModes, divider: enableGrouping || enableHiding, key: 1, onClick: handleFilterByColumn, sx: commonMenuItemStyles },
1016
858
  React__default["default"].createElement(Box__default["default"], { sx: commonListItemStyles },
1017
859
  React__default["default"].createElement(ListItemIcon__default["default"], null,
1018
860
  React__default["default"].createElement(FilterListIcon, null)), (_g = localization.filterByColumn) === null || _g === void 0 ? void 0 :
@@ -1066,10 +908,7 @@ const MRT_ColumnActionMenu = ({ anchorEl, header, setAnchorEl, table, }) => {
1066
908
  React__default["default"].createElement(Box__default["default"], { sx: commonListItemStyles },
1067
909
  React__default["default"].createElement(ListItemIcon__default["default"], null,
1068
910
  React__default["default"].createElement(ViewColumnIcon, null)), (_k = localization.showAllColumns) === null || _k === void 0 ? void 0 :
1069
- _k.replace('{column}', String(columnDef.header))),
1070
- React__default["default"].createElement(IconButton__default["default"], { onClick: handleOpenShowHideColumnsMenu, onMouseEnter: handleOpenShowHideColumnsMenu, size: "small", sx: { p: 0 } },
1071
- React__default["default"].createElement(ArrowRightIcon, null))),
1072
- React__default["default"].createElement(MRT_ShowHideColumnsMenu, { anchorEl: showHideColumnsMenuAnchorEl, isSubMenu: true, key: 2, setAnchorEl: setShowHideColumnsMenuAnchorEl, table: table }),
911
+ _k.replace('{column}', String(columnDef.header)))),
1073
912
  ]));
1074
913
  };
1075
914
 
@@ -1360,6 +1199,166 @@ const MRT_FullScreenToggleButton = (_a) => {
1360
1199
  React__default["default"].createElement(IconButton__default["default"], Object.assign({ "aria-label": localization.showHideFilters, onClick: handleToggleFullScreen }, rest, { title: undefined }), isFullScreen ? React__default["default"].createElement(FullscreenExitIcon, null) : React__default["default"].createElement(FullscreenIcon, null))));
1361
1200
  };
1362
1201
 
1202
+ const MRT_ColumnPinningButtons = ({ column, table, }) => {
1203
+ const { options: { icons: { PushPinIcon }, localization, }, } = table;
1204
+ const handlePinColumn = (pinDirection) => {
1205
+ column.pin(pinDirection);
1206
+ };
1207
+ return (React__default["default"].createElement(Box__default["default"], { sx: { minWidth: '70px', textAlign: 'center' } }, column.getIsPinned() ? (React__default["default"].createElement(Tooltip__default["default"], { arrow: true, title: localization.unpin },
1208
+ React__default["default"].createElement(IconButton__default["default"], { onClick: () => handlePinColumn(false), size: "small" },
1209
+ React__default["default"].createElement(PushPinIcon, null)))) : (React__default["default"].createElement(React__default["default"].Fragment, null,
1210
+ React__default["default"].createElement(Tooltip__default["default"], { arrow: true, title: localization.pinToLeft },
1211
+ React__default["default"].createElement(IconButton__default["default"], { onClick: () => handlePinColumn('left'), size: "small" },
1212
+ React__default["default"].createElement(PushPinIcon, { style: {
1213
+ transform: 'rotate(90deg)',
1214
+ } }))),
1215
+ React__default["default"].createElement(Tooltip__default["default"], { arrow: true, title: localization.pinToRight },
1216
+ React__default["default"].createElement(IconButton__default["default"], { onClick: () => handlePinColumn('right'), size: "small" },
1217
+ React__default["default"].createElement(PushPinIcon, { style: {
1218
+ transform: 'rotate(-90deg)',
1219
+ } })))))));
1220
+ };
1221
+
1222
+ const MRT_GrabHandleButton = ({ iconButtonProps, onDragEnd, onDragStart, table, }) => {
1223
+ var _a;
1224
+ const { options: { icons: { DragHandleIcon }, localization, }, } = table;
1225
+ return (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.move },
1226
+ React__default["default"].createElement(IconButton__default["default"], Object.assign({ disableRipple: true, draggable: "true", size: "small" }, iconButtonProps, { onClick: (e) => {
1227
+ var _a;
1228
+ e.stopPropagation();
1229
+ (_a = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(iconButtonProps, e);
1230
+ }, onDragStart: onDragStart, onDragEnd: onDragEnd, sx: (theme) => (Object.assign({ cursor: 'grab', m: '0 -0.1rem', opacity: 0.5, p: '2px', transition: 'all 150ms ease-in-out', '&:hover': {
1231
+ backgroundColor: 'transparent',
1232
+ opacity: 1,
1233
+ }, '&:active': {
1234
+ cursor: 'grabbing',
1235
+ } }, ((iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx) instanceof Function
1236
+ ? iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx(theme)
1237
+ : iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx))), title: undefined }),
1238
+ React__default["default"].createElement(DragHandleIcon, null))));
1239
+ };
1240
+
1241
+ const MRT_ShowHideColumnsMenuItems = ({ allColumns, hoveredColumn, setHoveredColumn, column, table, }) => {
1242
+ var _a;
1243
+ const { getState, options: { enableColumnOrdering, enableHiding, enablePinning, localization, }, setColumnOrder, } = table;
1244
+ const { columnOrder } = getState();
1245
+ const { columnDef } = column;
1246
+ const { columnDefType } = columnDef;
1247
+ const switchChecked = (columnDefType !== 'group' && column.getIsVisible()) ||
1248
+ (columnDefType === 'group' &&
1249
+ column.getLeafColumns().some((col) => col.getIsVisible()));
1250
+ const handleToggleColumnHidden = (column) => {
1251
+ var _a, _b;
1252
+ if (columnDefType === 'group') {
1253
+ (_b = (_a = column === null || column === void 0 ? void 0 : column.columns) === null || _a === void 0 ? void 0 : _a.forEach) === null || _b === void 0 ? void 0 : _b.call(_a, (childColumn) => {
1254
+ childColumn.toggleVisibility(!switchChecked);
1255
+ });
1256
+ }
1257
+ else {
1258
+ column.toggleVisibility();
1259
+ }
1260
+ };
1261
+ const menuItemRef = React.useRef(null);
1262
+ const [isDragging, setIsDragging] = React.useState(false);
1263
+ const handleDragStart = (e) => {
1264
+ setIsDragging(true);
1265
+ e.dataTransfer.setDragImage(menuItemRef.current, 0, 0);
1266
+ };
1267
+ const handleDragEnd = (_e) => {
1268
+ setIsDragging(false);
1269
+ setHoveredColumn(null);
1270
+ if (hoveredColumn) {
1271
+ setColumnOrder(reorderColumn(column, hoveredColumn, columnOrder));
1272
+ }
1273
+ };
1274
+ const handleDragEnter = (_e) => {
1275
+ if (!isDragging && columnDef.enableColumnOrdering !== false) {
1276
+ setHoveredColumn(column);
1277
+ }
1278
+ };
1279
+ return (React__default["default"].createElement(React__default["default"].Fragment, null,
1280
+ React__default["default"].createElement(MenuItem__default["default"], { disableRipple: true, ref: menuItemRef, onDragEnter: handleDragEnter, sx: (theme) => ({
1281
+ alignItems: 'center',
1282
+ justifyContent: 'flex-start',
1283
+ my: 0,
1284
+ opacity: isDragging ? 0.5 : 1,
1285
+ outlineOffset: '-2px',
1286
+ outline: isDragging
1287
+ ? `2px dashed ${theme.palette.divider}`
1288
+ : (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
1289
+ ? `2px dashed ${theme.palette.primary.main}`
1290
+ : 'none',
1291
+ pl: `${(column.depth + 0.5) * 2}rem`,
1292
+ py: '6px',
1293
+ }) },
1294
+ React__default["default"].createElement(Box__default["default"], { sx: {
1295
+ display: 'flex',
1296
+ flexWrap: 'nowrap',
1297
+ gap: '8px',
1298
+ } },
1299
+ columnDefType !== 'group' &&
1300
+ enableColumnOrdering &&
1301
+ !allColumns.some((col) => col.columnDef.columnDefType === 'group') &&
1302
+ (columnDef.enableColumnOrdering !== false ? (React__default["default"].createElement(MRT_GrabHandleButton, { onDragEnd: handleDragEnd, onDragStart: handleDragStart, table: table })) : (React__default["default"].createElement(Box__default["default"], { sx: { width: '28px' } }))),
1303
+ enablePinning &&
1304
+ (column.getCanPin() ? (React__default["default"].createElement(MRT_ColumnPinningButtons, { column: column, table: table })) : (React__default["default"].createElement(Box__default["default"], { sx: { width: '70px' } }))),
1305
+ enableHiding ? (React__default["default"].createElement(FormControlLabel__default["default"], { componentsProps: {
1306
+ typography: {
1307
+ sx: {
1308
+ mb: 0,
1309
+ opacity: columnDefType !== 'display' ? 1 : 0.5,
1310
+ },
1311
+ },
1312
+ }, checked: switchChecked, control: React__default["default"].createElement(Tooltip__default["default"], { arrow: true, enterDelay: 1000, enterNextDelay: 1000, title: localization.toggleVisibility },
1313
+ React__default["default"].createElement(Switch__default["default"], null)), disabled: !column.getCanHide(), label: columnDef.header, onChange: () => handleToggleColumnHidden(column) })) : (React__default["default"].createElement(Typography__default["default"], { sx: { alignSelf: 'center' } }, columnDef.header)))), (_a = column.columns) === null || _a === void 0 ? void 0 :
1314
+ _a.map((c, i) => (React__default["default"].createElement(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: c, hoveredColumn: hoveredColumn, key: `${i}-${c.id}`, setHoveredColumn: setHoveredColumn, table: table })))));
1315
+ };
1316
+
1317
+ const MRT_ShowHideColumnsMenu = ({ anchorEl, setAnchorEl, table, }) => {
1318
+ const { getAllColumns, getAllLeafColumns, getCenterLeafColumns, getIsAllColumnsVisible, getIsSomeColumnsPinned, getIsSomeColumnsVisible, getLeftLeafColumns, getRightLeafColumns, getState, toggleAllColumnsVisible, options: { enableColumnOrdering, enableHiding, enablePinning, localization, }, } = table;
1319
+ const { density, columnOrder, columnPinning } = getState();
1320
+ const hideAllColumns = () => {
1321
+ getAllLeafColumns()
1322
+ .filter((col) => col.columnDef.enableHiding !== false)
1323
+ .forEach((col) => col.toggleVisibility(false));
1324
+ };
1325
+ const allColumns = React.useMemo(() => {
1326
+ const columns = getAllColumns();
1327
+ if (columnOrder.length > 0 &&
1328
+ !columns.some((col) => col.columnDef.columnDefType === 'group')) {
1329
+ return [
1330
+ ...getLeftLeafColumns(),
1331
+ ...Array.from(new Set(columnOrder)).map((colId) => getCenterLeafColumns().find((col) => (col === null || col === void 0 ? void 0 : col.id) === colId)),
1332
+ ...getRightLeafColumns(),
1333
+ ].filter(Boolean);
1334
+ }
1335
+ return columns;
1336
+ }, [
1337
+ columnOrder,
1338
+ columnPinning,
1339
+ getAllColumns(),
1340
+ getCenterLeafColumns(),
1341
+ getLeftLeafColumns(),
1342
+ getRightLeafColumns(),
1343
+ ]);
1344
+ const [hoveredColumn, setHoveredColumn] = React.useState(null);
1345
+ return (React__default["default"].createElement(Menu__default["default"], { anchorEl: anchorEl, open: !!anchorEl, onClose: () => setAnchorEl(null), MenuListProps: {
1346
+ dense: density === 'compact',
1347
+ } },
1348
+ React__default["default"].createElement(Box__default["default"], { sx: {
1349
+ display: 'flex',
1350
+ justifyContent: 'space-between',
1351
+ p: '0.5rem',
1352
+ pt: 0,
1353
+ } },
1354
+ enableHiding && (React__default["default"].createElement(Button__default["default"], { disabled: !getIsSomeColumnsVisible(), onClick: hideAllColumns }, localization.hideAll)),
1355
+ enableColumnOrdering && (React__default["default"].createElement(Button__default["default"], { onClick: () => table.setColumnOrder(getDefaultColumnOrderIds(table.options)) }, localization.resetOrder)),
1356
+ enablePinning && (React__default["default"].createElement(Button__default["default"], { disabled: !getIsSomeColumnsPinned(), onClick: () => table.resetColumnPinning(true) }, localization.unpinAll)),
1357
+ enableHiding && (React__default["default"].createElement(Button__default["default"], { disabled: getIsAllColumnsVisible(), onClick: () => toggleAllColumnsVisible(true) }, localization.showAll))),
1358
+ React__default["default"].createElement(Divider__default["default"], null),
1359
+ allColumns.map((column, index) => (React__default["default"].createElement(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: column, hoveredColumn: hoveredColumn, key: `${index}-${column.id}`, setHoveredColumn: setHoveredColumn, table: table })))));
1360
+ };
1361
+
1363
1362
  const MRT_ShowHideColumnsButton = (_a) => {
1364
1363
  var _b;
1365
1364
  var { table } = _a, rest = __rest(_a, ["table"]);
@@ -1448,6 +1447,7 @@ const MRT_ToolbarDropZone = ({ table, }) => {
1448
1447
  if (((_a = table.options.state) === null || _a === void 0 ? void 0 : _a.showToolbarDropZone) !== undefined) {
1449
1448
  setShowToolbarDropZone(!!enableGrouping &&
1450
1449
  !!draggingColumn &&
1450
+ draggingColumn.columnDef.enableGrouping !== false &&
1451
1451
  !grouping.includes(draggingColumn.id));
1452
1452
  }
1453
1453
  }, [enableGrouping, draggingColumn, grouping]);
@@ -1948,7 +1948,7 @@ const MRT_TableHeadCellResizeHandle = ({ header, table }) => {
1948
1948
  cursor: 'col-resize',
1949
1949
  mr: density === 'compact' ? '-0.75rem' : '-1rem',
1950
1950
  position: 'absolute',
1951
- right: '1px',
1951
+ right: '4px',
1952
1952
  px: '4px',
1953
1953
  '&:active > hr': {
1954
1954
  backgroundColor: theme.palette.info.main,
@@ -2092,7 +2092,7 @@ const MRT_TableHeadCell = ({ header, table }) => {
2092
2092
  theme,
2093
2093
  })), draggingBorders)) }),
2094
2094
  header.isPlaceholder ? null : (React__default["default"].createElement(Box__default["default"], { className: "Mui-TableHeadCell-Content", sx: {
2095
- alignItems: 'flex-start',
2095
+ alignItems: 'center',
2096
2096
  display: 'flex',
2097
2097
  flexDirection: (tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.align) === 'right' ? 'row-reverse' : 'row',
2098
2098
  justifyContent: columnDefType === 'group' || (tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.align) === 'center'
@@ -2116,7 +2116,7 @@ const MRT_TableHeadCell = ({ header, table }) => {
2116
2116
  : undefined,
2117
2117
  } },
2118
2118
  React__default["default"].createElement(Box__default["default"], { className: "Mui-TableHeadCell-Content-Wrapper", sx: {
2119
- minWidth: '5ch',
2119
+ minWidth: `${Math.min(columnDef.header.length, 5)}ch`,
2120
2120
  overflow: columnDefType === 'data' ? 'hidden' : undefined,
2121
2121
  textOverflow: 'ellipsis',
2122
2122
  whiteSpace: ((_d = (_c = columnDef.header) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) < 20 ? 'nowrap' : 'normal',
@@ -2514,11 +2514,11 @@ const MRT_TableBodyCell = ({ cell, measureElement, numRows, rowIndex, rowRef, ta
2514
2514
  };
2515
2515
  const Memo_MRT_TableBodyCell = React.memo(MRT_TableBodyCell, (prev, next) => next.cell === prev.cell);
2516
2516
 
2517
- const MRT_TableDetailPanel = ({ parentRowRef, row, table, virtualRow, }) => {
2517
+ const MRT_TableDetailPanel = ({ parentRowRef, row, rowIndex, table, virtualRow, }) => {
2518
2518
  const { getVisibleLeafColumns, getState, options: { layoutMode, muiTableBodyRowProps, muiTableDetailPanelProps, renderDetailPanel, }, } = table;
2519
2519
  const { isLoading } = getState();
2520
2520
  const tableRowProps = muiTableBodyRowProps instanceof Function
2521
- ? muiTableBodyRowProps({ isDetailPanel: true, row, table })
2521
+ ? muiTableBodyRowProps({ isDetailPanel: true, row, staticRowIndex: rowIndex, table })
2522
2522
  : muiTableBodyRowProps;
2523
2523
  const tableCellProps = muiTableDetailPanelProps instanceof Function
2524
2524
  ? muiTableDetailPanelProps({ row, table })
@@ -2544,7 +2544,7 @@ const MRT_TableBodyRow = ({ columnVirtualizer, measureElement, numRows, row, row
2544
2544
  const { getState, options: { enableRowOrdering, layoutMode, memoMode, muiTableBodyRowProps, renderDetailPanel, }, setHoveredRow, } = table;
2545
2545
  const { draggingColumn, draggingRow, editingCell, editingRow, hoveredRow } = getState();
2546
2546
  const tableRowProps = muiTableBodyRowProps instanceof Function
2547
- ? muiTableBodyRowProps({ row, table })
2547
+ ? muiTableBodyRowProps({ row, staticRowIndex: rowIndex, table })
2548
2548
  : muiTableBodyRowProps;
2549
2549
  const handleDragEnter = (_e) => {
2550
2550
  if (enableRowOrdering && draggingRow) {
@@ -2596,13 +2596,13 @@ const MRT_TableBodyRow = ({ columnVirtualizer, measureElement, numRows, row, row
2596
2596
  (editingRow === null || editingRow === void 0 ? void 0 : editingRow.id) !== row.id ? (React__default["default"].createElement(Memo_MRT_TableBodyCell, Object.assign({}, props))) : (React__default["default"].createElement(MRT_TableBodyCell, Object.assign({}, props)));
2597
2597
  }),
2598
2598
  virtualPaddingRight ? (React__default["default"].createElement("td", { style: { display: 'flex', width: virtualPaddingRight } })) : null),
2599
- renderDetailPanel && !row.getIsGrouped() && (React__default["default"].createElement(MRT_TableDetailPanel, { parentRowRef: rowRef, row: row, table: table, virtualRow: virtualRow }))));
2599
+ renderDetailPanel && !row.getIsGrouped() && (React__default["default"].createElement(MRT_TableDetailPanel, { parentRowRef: rowRef, row: row, rowIndex: rowIndex, table: table, virtualRow: virtualRow }))));
2600
2600
  };
2601
2601
  const Memo_MRT_TableBodyRow = React.memo(MRT_TableBodyRow, (prev, next) => prev.row === next.row && prev.rowIndex === next.rowIndex);
2602
2602
 
2603
2603
  const MRT_TableBody = ({ columnVirtualizer, table, virtualColumns, virtualPaddingLeft, virtualPaddingRight, }) => {
2604
- var _a, _b, _c;
2605
- const { getRowModel, getPrePaginationRowModel, getState, options: { enableGlobalFilterRankedResults, enablePagination, enableRowVirtualization, layoutMode, localization, manualExpanding, manualFiltering, manualGrouping, manualPagination, manualSorting, memoMode, muiTableBodyProps, rowVirtualizerInstanceRef, rowVirtualizerProps, virtualizerInstanceRef, virtualizerProps, }, refs: { tableContainerRef, tablePaperRef }, } = table;
2604
+ var _a, _b, _c, _d;
2605
+ const { getRowModel, getPrePaginationRowModel, getState, options: { enableGlobalFilterRankedResults, enablePagination, enableRowVirtualization, layoutMode, localization, manualExpanding, manualFiltering, manualGrouping, manualPagination, manualSorting, memoMode, muiTableBodyProps, renderEmptyRowsFallback, rowVirtualizerInstanceRef, rowVirtualizerProps, virtualizerInstanceRef, virtualizerProps, }, refs: { tableContainerRef, tablePaperRef }, } = table;
2606
2606
  const { columnFilters, density, expanded, globalFilter, globalFilterFn, pagination, sorting, } = getState();
2607
2607
  const tableBodyProps = muiTableBodyProps instanceof Function
2608
2608
  ? muiTableBodyProps({ table })
@@ -2665,17 +2665,18 @@ const MRT_TableBody = ({ columnVirtualizer, table, virtualColumns, virtualPaddin
2665
2665
  : 'inherit', minHeight: !rows.length ? '100px' : undefined, position: 'relative' }, ((tableBodyProps === null || tableBodyProps === void 0 ? void 0 : tableBodyProps.sx) instanceof Function
2666
2666
  ? tableBodyProps === null || tableBodyProps === void 0 ? void 0 : tableBodyProps.sx(theme)
2667
2667
  : tableBodyProps === null || tableBodyProps === void 0 ? void 0 : tableBodyProps.sx))) }), (_a = tableBodyProps === null || tableBodyProps === void 0 ? void 0 : tableBodyProps.children) !== null && _a !== void 0 ? _a : (!rows.length ? (React__default["default"].createElement("tr", { style: { display: layoutMode === 'grid' ? 'grid' : 'table-row' } },
2668
- React__default["default"].createElement("td", { colSpan: table.getVisibleLeafColumns().length, style: { display: layoutMode === 'grid' ? 'grid' : 'table-cell' } },
2669
- React__default["default"].createElement(Typography__default["default"], { sx: {
2670
- color: 'text.secondary',
2671
- fontStyle: 'italic',
2672
- maxWidth: `min(100vw, ${(_c = (_b = tablePaperRef.current) === null || _b === void 0 ? void 0 : _b.clientWidth) !== null && _c !== void 0 ? _c : 360}px)`,
2673
- py: '2rem',
2674
- textAlign: 'center',
2675
- width: '100%',
2676
- } }, globalFilter || columnFilters.length
2677
- ? localization.noResultsFound
2678
- : localization.noRecordsToDisplay)))) : (React__default["default"].createElement(React__default["default"].Fragment, null, (virtualRows !== null && virtualRows !== void 0 ? virtualRows : rows).map((rowOrVirtualRow, rowIndex) => {
2668
+ React__default["default"].createElement("td", { colSpan: table.getVisibleLeafColumns().length, style: {
2669
+ display: layoutMode === 'grid' ? 'grid' : 'table-cell',
2670
+ } }, (_b = renderEmptyRowsFallback === null || renderEmptyRowsFallback === void 0 ? void 0 : renderEmptyRowsFallback({ table })) !== null && _b !== void 0 ? _b : (React__default["default"].createElement(Typography__default["default"], { sx: {
2671
+ color: 'text.secondary',
2672
+ fontStyle: 'italic',
2673
+ maxWidth: `min(100vw, ${(_d = (_c = tablePaperRef.current) === null || _c === void 0 ? void 0 : _c.clientWidth) !== null && _d !== void 0 ? _d : 360}px)`,
2674
+ py: '2rem',
2675
+ textAlign: 'center',
2676
+ width: '100%',
2677
+ } }, globalFilter || columnFilters.length
2678
+ ? localization.noResultsFound
2679
+ : localization.noRecordsToDisplay))))) : (React__default["default"].createElement(React__default["default"].Fragment, null, (virtualRows !== null && virtualRows !== void 0 ? virtualRows : rows).map((rowOrVirtualRow, rowIndex) => {
2679
2680
  const row = rowVirtualizer
2680
2681
  ? rows[rowOrVirtualRow.index]
2681
2682
  : rowOrVirtualRow;