material-react-table 1.0.0-beta.1 → 1.0.0-beta.10

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 (105) hide show
  1. package/README.md +20 -20
  2. package/dist/cjs/MaterialReactTable.d.ts +96 -19
  3. package/dist/cjs/_locales/en.d.ts +2 -0
  4. package/dist/cjs/_locales/es.d.ts +2 -0
  5. package/dist/cjs/body/MRT_EditRowModal.d.ts +0 -1
  6. package/dist/cjs/body/MRT_TableBody.d.ts +1 -2
  7. package/dist/cjs/body/MRT_TableBodyCellValue.d.ts +2 -2
  8. package/dist/cjs/buttons/MRT_ColumnPinningButtons.d.ts +0 -1
  9. package/dist/cjs/buttons/MRT_EditActionButtons.d.ts +0 -1
  10. package/dist/cjs/buttons/MRT_FullScreenToggleButton.d.ts +0 -1
  11. package/dist/cjs/buttons/MRT_ShowHideColumnsButton.d.ts +0 -1
  12. package/dist/cjs/buttons/MRT_ToggleDensePaddingButton.d.ts +0 -1
  13. package/dist/cjs/buttons/MRT_ToggleFiltersButton.d.ts +0 -1
  14. package/dist/cjs/buttons/MRT_ToggleGlobalFilterButton.d.ts +0 -1
  15. package/dist/cjs/column.utils.d.ts +12 -1
  16. package/dist/cjs/index.d.ts +4 -3
  17. package/dist/cjs/index.js +235 -192
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/inputs/MRT_EditCellTextField.d.ts +0 -1
  20. package/dist/cjs/inputs/MRT_GlobalFilterTextField.d.ts +0 -1
  21. package/dist/cjs/menus/MRT_FilterOptionMenu.d.ts +3 -4
  22. package/dist/cjs/menus/MRT_ShowHideColumnsMenu.d.ts +0 -1
  23. package/dist/cjs/table/MRT_Table.d.ts +1 -2
  24. package/dist/cjs/table/MRT_TableRoot.d.ts +250 -3
  25. package/dist/cjs/toolbar/MRT_TablePagination.d.ts +3 -4
  26. package/dist/cjs/toolbar/MRT_ToolbarAlertBanner.d.ts +1 -1
  27. package/dist/cjs/toolbar/MRT_ToolbarInternalButtons.d.ts +3 -4
  28. package/dist/cjs/toolbar/MRT_TopToolbar.d.ts +1 -0
  29. package/dist/en.cjs +90 -0
  30. package/dist/en.cjs.d.ts +2 -0
  31. package/dist/en.cjs.map +1 -0
  32. package/dist/en.esm.d.ts +2 -0
  33. package/dist/en.esm.js +86 -0
  34. package/dist/en.esm.js.map +1 -0
  35. package/dist/esm/MaterialReactTable.d.ts +96 -19
  36. package/dist/esm/_locales/en.d.ts +2 -0
  37. package/dist/esm/_locales/es.d.ts +2 -0
  38. package/dist/esm/body/MRT_EditRowModal.d.ts +0 -1
  39. package/dist/esm/body/MRT_TableBody.d.ts +1 -2
  40. package/dist/esm/body/MRT_TableBodyCellValue.d.ts +2 -2
  41. package/dist/esm/buttons/MRT_ColumnPinningButtons.d.ts +0 -1
  42. package/dist/esm/buttons/MRT_EditActionButtons.d.ts +0 -1
  43. package/dist/esm/buttons/MRT_FullScreenToggleButton.d.ts +0 -1
  44. package/dist/esm/buttons/MRT_ShowHideColumnsButton.d.ts +0 -1
  45. package/dist/esm/buttons/MRT_ToggleDensePaddingButton.d.ts +0 -1
  46. package/dist/esm/buttons/MRT_ToggleFiltersButton.d.ts +0 -1
  47. package/dist/esm/buttons/MRT_ToggleGlobalFilterButton.d.ts +0 -1
  48. package/dist/esm/column.utils.d.ts +12 -1
  49. package/dist/esm/index.d.ts +4 -3
  50. package/dist/esm/inputs/MRT_EditCellTextField.d.ts +0 -1
  51. package/dist/esm/inputs/MRT_GlobalFilterTextField.d.ts +0 -1
  52. package/dist/esm/material-react-table.esm.js +236 -195
  53. package/dist/esm/material-react-table.esm.js.map +1 -1
  54. package/dist/esm/menus/MRT_FilterOptionMenu.d.ts +3 -4
  55. package/dist/esm/menus/MRT_ShowHideColumnsMenu.d.ts +0 -1
  56. package/dist/esm/table/MRT_Table.d.ts +1 -2
  57. package/dist/esm/table/MRT_TableRoot.d.ts +250 -3
  58. package/dist/esm/toolbar/MRT_TablePagination.d.ts +3 -4
  59. package/dist/esm/toolbar/MRT_ToolbarAlertBanner.d.ts +1 -1
  60. package/dist/esm/toolbar/MRT_ToolbarInternalButtons.d.ts +3 -4
  61. package/dist/esm/toolbar/MRT_TopToolbar.d.ts +1 -0
  62. package/dist/index.d.ts +47 -41
  63. package/package.json +7 -6
  64. package/src/MaterialReactTable.tsx +100 -23
  65. package/src/_locales/de.ts +0 -0
  66. package/src/{localization.ts → _locales/en.ts} +4 -82
  67. package/src/_locales/es.ts +86 -0
  68. package/src/_locales/fr.ts +0 -0
  69. package/src/_locales/hi.ts +0 -0
  70. package/src/_locales/id.ts +0 -0
  71. package/src/_locales/ja.ts +0 -0
  72. package/src/_locales/nl.ts +0 -0
  73. package/src/_locales/pt.ts +0 -0
  74. package/src/_locales/ru.ts +0 -0
  75. package/src/_locales/uk.ts +0 -0
  76. package/src/_locales/vi.ts +0 -0
  77. package/src/_locales/zh.ts +0 -0
  78. package/src/body/MRT_TableBody.tsx +54 -30
  79. package/src/body/MRT_TableBodyCell.tsx +11 -58
  80. package/src/body/MRT_TableBodyCellValue.tsx +7 -2
  81. package/src/body/MRT_TableBodyRowGrabHandle.tsx +5 -8
  82. package/src/buttons/MRT_GrabHandleButton.tsx +2 -2
  83. package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +7 -2
  84. package/src/column.utils.ts +72 -0
  85. package/src/footer/MRT_TableFooter.tsx +3 -2
  86. package/src/footer/MRT_TableFooterCell.tsx +5 -15
  87. package/src/head/MRT_TableHead.tsx +10 -2
  88. package/src/head/MRT_TableHeadCell.tsx +9 -50
  89. package/src/head/MRT_TableHeadCellFilterLabel.tsx +7 -7
  90. package/src/head/MRT_TableHeadCellGrabHandle.tsx +5 -12
  91. package/src/index.tsx +6 -3
  92. package/src/inputs/MRT_FilterTextField.tsx +7 -6
  93. package/src/inputs/MRT_GlobalFilterTextField.tsx +1 -0
  94. package/src/menus/MRT_FilterOptionMenu.tsx +19 -2
  95. package/src/table/MRT_Table.tsx +3 -4
  96. package/src/table/MRT_TableContainer.tsx +2 -11
  97. package/src/table/MRT_TablePaper.tsx +34 -20
  98. package/src/table/MRT_TableRoot.tsx +34 -11
  99. package/src/toolbar/MRT_BottomToolbar.tsx +9 -3
  100. package/src/toolbar/MRT_TablePagination.tsx +8 -5
  101. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +7 -1
  102. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +8 -4
  103. package/src/toolbar/MRT_TopToolbar.tsx +8 -1
  104. package/dist/cjs/localization.d.ts +0 -82
  105. package/dist/esm/localization.d.ts +0 -82
package/dist/cjs/index.js CHANGED
@@ -159,7 +159,7 @@ const MRT_FilterFns = Object.assign(Object.assign({}, reactTable.filterFns), { b
159
159
  notEquals,
160
160
  startsWith });
161
161
 
162
- const MRT_DefaultLocalization_EN = {
162
+ const MRT_Localization_EN = {
163
163
  actions: 'Actions',
164
164
  and: 'and',
165
165
  cancel: 'Cancel',
@@ -208,6 +208,8 @@ const MRT_DefaultLocalization_EN = {
208
208
  max: 'Max',
209
209
  min: 'Min',
210
210
  move: 'Move',
211
+ noRecordsToDisplay: 'No records to display',
212
+ noResultsFound: 'No results found',
211
213
  or: 'or',
212
214
  pinToLeft: 'Pin to left',
213
215
  pinToRight: 'Pin to right',
@@ -391,7 +393,7 @@ const mrtFilterOptions = (localization) => [
391
393
  divider: false,
392
394
  },
393
395
  ];
394
- const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, table, }) => {
396
+ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilterValue, table, }) => {
395
397
  var _a, _b, _c, _d;
396
398
  const { getState, options: { columnFilterModeOptions, globalFilterModeOptions, localization, renderColumnFilterModeMenuItems, renderGlobalFilterModeMenuItems, }, setColumnFilterFns, setGlobalFilterFn, } = table;
397
399
  const { globalFilterFn, density } = getState();
@@ -410,11 +412,19 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, table,
410
412
  if (['empty', 'notEmpty'].includes(option)) {
411
413
  column.setFilterValue(' ');
412
414
  }
413
- else if (option === 'between') {
415
+ else if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === 'multi-select' ||
416
+ ['arrIncludesSome', 'arrIncludesAll', 'arrIncludes'].includes(option)) {
417
+ column.setFilterValue([]);
418
+ setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue([]);
419
+ }
420
+ else if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === 'range' ||
421
+ ['between', 'betweenInclusive', 'inNumberRange'].includes(option)) {
414
422
  column.setFilterValue(['', '']);
423
+ setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue('');
415
424
  }
416
425
  else {
417
426
  column.setFilterValue('');
427
+ setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue('');
418
428
  }
419
429
  }
420
430
  else {
@@ -477,11 +487,11 @@ const MRT_GrabHandleButton = ({ iconButtonProps, onDragEnd, onDragStart, table,
477
487
  var _a;
478
488
  const { options: { icons: { DragHandleIcon }, localization, }, } = table;
479
489
  return (React__default["default"].createElement(material.Tooltip, { 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 },
480
- React__default["default"].createElement(material.IconButton, Object.assign({ disableRipple: true, draggable: "true", onDragStart: onDragStart, onDragEnd: onDragEnd, size: "small" }, iconButtonProps, { onClick: (e) => {
490
+ React__default["default"].createElement(material.IconButton, Object.assign({ disableRipple: true, draggable: "true", size: "small" }, iconButtonProps, { onClick: (e) => {
481
491
  var _a;
482
492
  e.stopPropagation();
483
493
  (_a = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(iconButtonProps, e);
484
- }, sx: (theme) => (Object.assign({ cursor: 'grab', m: 0, opacity: 0.5, p: '2px', transition: 'all 0.2s ease-in-out', '&:hover': {
494
+ }, onDragStart: onDragStart, onDragEnd: onDragEnd, sx: (theme) => (Object.assign({ cursor: 'grab', m: 0, opacity: 0.5, p: '2px', transition: 'all 0.2s ease-in-out', '&:hover': {
485
495
  backgroundColor: 'transparent',
486
496
  opacity: 1,
487
497
  }, '&:active': {
@@ -595,6 +605,37 @@ const getDefaultColumnFilterFn = (columnDef) => {
595
605
  return 'betweenInclusive';
596
606
  return 'fuzzy';
597
607
  };
608
+ const getIsLastLeftPinnedColumn = (table, column) => {
609
+ return (column.getIsPinned() === 'left' &&
610
+ table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex());
611
+ };
612
+ const getIsFirstRightPinnedColumn = (column) => {
613
+ return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
614
+ };
615
+ const getTotalRight = (table, column) => {
616
+ return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 160);
617
+ };
618
+ const getCommonCellStyles = ({ column, header, table, tableCellProps, theme, }) => {
619
+ var _a, _b, _c, _d;
620
+ return (Object.assign(Object.assign({ backgroundColor: column.getIsPinned() && column.columnDef.columnDefType !== 'group'
621
+ ? material.alpha(material.lighten(theme.palette.background.default, 0.04), 0.95)
622
+ : 'inherit', backgroundImage: 'inherit', boxShadow: getIsLastLeftPinnedColumn(table, column)
623
+ ? `-4px 0 8px -6px ${material.alpha(theme.palette.common.black, 0.2)} inset`
624
+ : getIsFirstRightPinnedColumn(column)
625
+ ? `4px 0 8px -6px ${material.alpha(theme.palette.common.black, 0.2)} inset`
626
+ : undefined, left: column.getIsPinned() === 'left'
627
+ ? `${column.getStart('left')}px`
628
+ : undefined, opacity: ((_a = table.getState().draggingColumn) === null || _a === void 0 ? void 0 : _a.id) === column.id ||
629
+ ((_b = table.getState().hoveredColumn) === null || _b === void 0 ? void 0 : _b.id) === column.id
630
+ ? 0.5
631
+ : 1, position: column.getIsPinned() && column.columnDef.columnDefType !== 'group'
632
+ ? 'sticky'
633
+ : undefined, right: column.getIsPinned() === 'right'
634
+ ? `${getTotalRight(table, column)}px`
635
+ : undefined, transition: `all ${column.getIsResizing() ? 0 : '0.2s'} ease-in-out` }, ((tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx) instanceof Function
636
+ ? tableCellProps.sx(theme)
637
+ : tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx)), { maxWidth: `min(${column.getSize()}px, fit-content)`, minWidth: `max(${column.getSize()}px, ${(_c = column.columnDef.minSize) !== null && _c !== void 0 ? _c : 30}px)`, width: (_d = header === null || header === void 0 ? void 0 : header.getSize()) !== null && _d !== void 0 ? _d : column.getSize() }));
638
+ };
598
639
 
599
640
  const MRT_ShowHideColumnsMenuItems = ({ allColumns, hoveredColumn, setHoveredColumn, column, isSubMenu, table, }) => {
600
641
  var _a;
@@ -1047,7 +1088,7 @@ const MRT_GlobalFilterTextField = ({ table, }) => {
1047
1088
  textFieldProps.inputRef = inputRef;
1048
1089
  }
1049
1090
  } })),
1050
- React__default["default"].createElement(MRT_FilterOptionMenu, { anchorEl: anchorEl, setAnchorEl: setAnchorEl, table: table })));
1091
+ React__default["default"].createElement(MRT_FilterOptionMenu, { anchorEl: anchorEl, setAnchorEl: setAnchorEl, table: table, onSelect: handleClear })));
1051
1092
  };
1052
1093
 
1053
1094
  const MRT_LinearProgressBar = ({ isTopToolbar, table }) => {
@@ -1065,7 +1106,7 @@ const MRT_LinearProgressBar = ({ isTopToolbar, table }) => {
1065
1106
  React__default["default"].createElement(material.LinearProgress, Object.assign({ "aria-label": "Loading", "aria-busy": "true", sx: { position: 'relative' } }, linearProgressProps))));
1066
1107
  };
1067
1108
 
1068
- const MRT_TablePagination = ({ table, position }) => {
1109
+ const MRT_TablePagination = ({ table, position, }) => {
1069
1110
  const { getPrePaginationRowModel, getState, setPageIndex, setPageSize, options: { muiTablePaginationProps, enableToolbarInternalActions, rowCount, }, } = table;
1070
1111
  const { pagination: { pageSize = 10, pageIndex = 0 }, showGlobalFilter, } = getState();
1071
1112
  const totalRowCount = rowCount !== null && rowCount !== void 0 ? rowCount : getPrePaginationRowModel().rows.length;
@@ -1083,14 +1124,14 @@ const MRT_TablePagination = ({ table, position }) => {
1083
1124
  enableToolbarInternalActions &&
1084
1125
  !showGlobalFilter
1085
1126
  ? '3.5rem'
1086
- : '-0.25rem', position: 'relative', zIndex: 2 }, ((tablePaginationProps === null || tablePaginationProps === void 0 ? void 0 : tablePaginationProps.sx) instanceof Function
1127
+ : undefined, position: 'relative', zIndex: 2 }, ((tablePaginationProps === null || tablePaginationProps === void 0 ? void 0 : tablePaginationProps.sx) instanceof Function
1087
1128
  ? tablePaginationProps.sx(theme)
1088
1129
  : tablePaginationProps === null || tablePaginationProps === void 0 ? void 0 : tablePaginationProps.sx))) })));
1089
1130
  };
1090
1131
 
1091
1132
  const MRT_ToolbarAlertBanner = ({ stackAlertBanner, table, }) => {
1092
1133
  var _a, _b;
1093
- const { getPrePaginationRowModel, getSelectedRowModel, getState, options: { localization, muiToolbarAlertBannerProps, muiToolbarAlertBannerChipProps, }, } = table;
1134
+ const { getPrePaginationRowModel, getSelectedRowModel, getState, options: { localization, muiToolbarAlertBannerProps, muiToolbarAlertBannerChipProps, positionToolbarAlertBanner, }, } = table;
1094
1135
  const { grouping, showAlertBanner } = getState();
1095
1136
  const alertProps = muiToolbarAlertBannerProps instanceof Function
1096
1137
  ? muiToolbarAlertBannerProps({ table })
@@ -1108,7 +1149,11 @@ const MRT_ToolbarAlertBanner = ({ stackAlertBanner, table, }) => {
1108
1149
  index > 0 ? localization.thenBy : '',
1109
1150
  React__default["default"].createElement(material.Chip, Object.assign({ label: table.getColumn(columnId).columnDef.header, onDelete: () => table.getColumn(columnId).toggleGrouping() }, chipProps))))))) : null;
1110
1151
  return (React__default["default"].createElement(material.Collapse, { in: showAlertBanner || !!selectMessage || !!groupedByMessage, timeout: stackAlertBanner ? 200 : 0 },
1111
- React__default["default"].createElement(material.Alert, Object.assign({ color: "info", icon: false }, alertProps, { sx: (theme) => (Object.assign({ borderRadius: 0, fontSize: '1rem', left: 0, p: 0, position: 'relative', right: 0, top: 0, width: '100%', zIndex: 2 }, ((alertProps === null || alertProps === void 0 ? void 0 : alertProps.sx) instanceof Function
1152
+ React__default["default"].createElement(material.Alert, Object.assign({ color: "info", icon: false }, alertProps, { sx: (theme) => (Object.assign({ borderRadius: 0, fontSize: '1rem', left: 0, p: 0, position: 'relative', mb: stackAlertBanner
1153
+ ? 0
1154
+ : positionToolbarAlertBanner === 'bottom'
1155
+ ? '-1rem'
1156
+ : undefined, right: 0, top: 0, width: '100%', zIndex: 2 }, ((alertProps === null || alertProps === void 0 ? void 0 : alertProps.sx) instanceof Function
1112
1157
  ? alertProps.sx(theme)
1113
1158
  : alertProps === null || alertProps === void 0 ? void 0 : alertProps.sx))) }),
1114
1159
  (alertProps === null || alertProps === void 0 ? void 0 : alertProps.title) && React__default["default"].createElement(material.AlertTitle, null, alertProps.title),
@@ -1180,16 +1225,16 @@ const MRT_ToggleGlobalFilterButton = (_a) => {
1180
1225
  var _b;
1181
1226
  var { table } = _a, rest = __rest(_a, ["table"]);
1182
1227
  const { getState, options: { icons: { SearchIcon, SearchOffIcon }, localization, }, refs: { searchInputRef }, setShowGlobalFilter, } = table;
1183
- const { showGlobalFilter } = getState();
1228
+ const { globalFilter, showGlobalFilter } = getState();
1184
1229
  const handleToggleSearch = () => {
1185
1230
  setShowGlobalFilter(!showGlobalFilter);
1186
1231
  queueMicrotask(() => { var _a; return (_a = searchInputRef.current) === null || _a === void 0 ? void 0 : _a.focus(); });
1187
1232
  };
1188
1233
  return (React__default["default"].createElement(material.Tooltip, { arrow: true, title: (_b = rest === null || rest === void 0 ? void 0 : rest.title) !== null && _b !== void 0 ? _b : localization.showHideSearch },
1189
- React__default["default"].createElement(material.IconButton, Object.assign({ onClick: handleToggleSearch }, rest, { title: undefined }), showGlobalFilter ? React__default["default"].createElement(SearchOffIcon, null) : React__default["default"].createElement(SearchIcon, null))));
1234
+ React__default["default"].createElement(material.IconButton, Object.assign({ disabled: !!globalFilter, onClick: handleToggleSearch }, rest, { title: undefined }), showGlobalFilter ? React__default["default"].createElement(SearchOffIcon, null) : React__default["default"].createElement(SearchIcon, null))));
1190
1235
  };
1191
1236
 
1192
- const MRT_ToolbarInternalButtons = ({ table }) => {
1237
+ const MRT_ToolbarInternalButtons = ({ table, }) => {
1193
1238
  var _a;
1194
1239
  const { options: { enableColumnFilters, enableColumnOrdering, enableDensityToggle, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableHiding, enablePinning, initialState, renderToolbarInternalActions, }, } = table;
1195
1240
  return (React__default["default"].createElement(material.Box, { sx: {
@@ -1237,6 +1282,7 @@ const commonToolbarStyles = ({ theme }) => ({
1237
1282
  backgroundColor: material.lighten(theme.palette.background.default, 0.04),
1238
1283
  backgroundImage: 'none',
1239
1284
  display: 'grid',
1285
+ flexWrap: 'wrap-reverse',
1240
1286
  minHeight: '3.5rem',
1241
1287
  overflow: 'hidden',
1242
1288
  p: '0 !important',
@@ -1275,7 +1321,11 @@ const MRT_TopToolbar = ({ table }) => {
1275
1321
  width: '100%',
1276
1322
  } },
1277
1323
  enableGlobalFilter && positionGlobalFilter === 'left' && (React__default["default"].createElement(MRT_GlobalFilterTextField, { table: table })), (_a = renderTopToolbarCustomActions === null || renderTopToolbarCustomActions === void 0 ? void 0 : renderTopToolbarCustomActions({ table })) !== null && _a !== void 0 ? _a : React__default["default"].createElement("span", null),
1278
- enableToolbarInternalActions ? (React__default["default"].createElement(material.Box, { sx: { display: 'flex', flexWrap: 'wrap' } },
1324
+ enableToolbarInternalActions ? (React__default["default"].createElement(material.Box, { sx: {
1325
+ display: 'flex',
1326
+ flexWrap: 'wrap-reverse',
1327
+ justifyContent: 'flex-end',
1328
+ } },
1279
1329
  enableGlobalFilter && positionGlobalFilter === 'right' && (React__default["default"].createElement(MRT_GlobalFilterTextField, { table: table })),
1280
1330
  React__default["default"].createElement(MRT_ToolbarInternalButtons, { table: table }))) : (enableGlobalFilter &&
1281
1331
  positionGlobalFilter === 'right' && (React__default["default"].createElement(MRT_GlobalFilterTextField, { table: table })))),
@@ -1298,14 +1348,14 @@ const MRT_BottomToolbar = ({ table }) => {
1298
1348
  // @ts-ignore
1299
1349
  toolbarProps.ref.current = ref;
1300
1350
  }
1301
- }, sx: (theme) => (Object.assign(Object.assign(Object.assign({}, commonToolbarStyles({ theme })), { bottom: isFullScreen ? '0' : undefined, boxShadow: `-3px 0 6px ${material.alpha(theme.palette.common.black, 0.1)}`, left: 0, position: isFullScreen ? 'fixed' : 'relative', right: 0 }), ((toolbarProps === null || toolbarProps === void 0 ? void 0 : toolbarProps.sx) instanceof Function
1351
+ }, sx: (theme) => (Object.assign(Object.assign(Object.assign({}, commonToolbarStyles({ theme })), { bottom: isFullScreen ? '0' : undefined, boxShadow: `0 1px 2px -1px ${material.alpha(theme.palette.common.black, 0.1)} inset`, left: 0, position: isFullScreen ? 'fixed' : 'relative', right: 0 }), ((toolbarProps === null || toolbarProps === void 0 ? void 0 : toolbarProps.sx) instanceof Function
1302
1352
  ? toolbarProps.sx(theme)
1303
1353
  : toolbarProps === null || toolbarProps === void 0 ? void 0 : toolbarProps.sx))) }),
1304
1354
  React__default["default"].createElement(MRT_LinearProgressBar, { isTopToolbar: false, table: table }),
1305
- positionToolbarAlertBanner === 'bottom' && (React__default["default"].createElement(MRT_ToolbarAlertBanner, { table: table })),
1355
+ positionToolbarAlertBanner === 'bottom' && (React__default["default"].createElement(MRT_ToolbarAlertBanner, { stackAlertBanner: stackAlertBanner, table: table })),
1306
1356
  ['both', 'bottom'].includes(positionToolbarDropZone !== null && positionToolbarDropZone !== void 0 ? positionToolbarDropZone : '') && (React__default["default"].createElement(MRT_ToolbarDropZone, { table: table })),
1307
1357
  React__default["default"].createElement(material.Box, { sx: {
1308
- alignItems: 'flex-start',
1358
+ alignItems: 'center',
1309
1359
  boxSizing: 'border-box',
1310
1360
  display: 'flex',
1311
1361
  justifyContent: 'space-between',
@@ -1453,9 +1503,6 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1453
1503
  const handleFilterMenuOpen = (event) => {
1454
1504
  setAnchorEl(event.currentTarget);
1455
1505
  };
1456
- React.useEffect(() => {
1457
- handleClear();
1458
- }, [columnDef._filterFn]);
1459
1506
  if (columnDef.Filter) {
1460
1507
  return React__default["default"].createElement(React__default["default"].Fragment, null, (_e = columnDef.Filter) === null || _e === void 0 ? void 0 : _e.call(columnDef, { column, header, table }));
1461
1508
  }
@@ -1513,7 +1560,11 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1513
1560
  if (textFieldProps.inputRef) {
1514
1561
  textFieldProps.inputRef = inputRef;
1515
1562
  }
1516
- }, sx: (theme) => (Object.assign({ p: 0, minWidth: !filterChipLabel ? '120px' : 'auto', width: '100%', '& .MuiSelect-icon': {
1563
+ }, sx: (theme) => (Object.assign({ p: 0, minWidth: columnDef.filterVariant === 'range'
1564
+ ? '90px'
1565
+ : !filterChipLabel
1566
+ ? '120px'
1567
+ : 'auto', width: '100%', '& .MuiSelect-icon': {
1517
1568
  mr: '1.5rem',
1518
1569
  } }, ((textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.sx) instanceof Function
1519
1570
  ? textFieldProps.sx(theme)
@@ -1541,7 +1592,7 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1541
1592
  isMultiSelectFilter && (React__default["default"].createElement(material.Checkbox, { checked: ((_a = column.getFilterValue()) !== null && _a !== void 0 ? _a : []).includes(value), sx: { mr: '0.5rem' } })),
1542
1593
  text));
1543
1594
  })),
1544
- React__default["default"].createElement(MRT_FilterOptionMenu, { anchorEl: anchorEl, header: header, setAnchorEl: setAnchorEl, table: table })));
1595
+ React__default["default"].createElement(MRT_FilterOptionMenu, { anchorEl: anchorEl, header: header, setAnchorEl: setAnchorEl, table: table, setFilterValue: setFilterValue })));
1545
1596
  };
1546
1597
 
1547
1598
  const MRT_FilterRangeFields = ({ header, table }) => {
@@ -1563,11 +1614,8 @@ const MRT_TableHeadCellFilterLabel = ({ header, table }) => {
1563
1614
  const { options: { icons: { FilterAltIcon }, localization, }, } = table;
1564
1615
  const { column } = header;
1565
1616
  const { columnDef } = column;
1566
- const isRangeFilter = [
1567
- 'between',
1568
- 'betweenInclusive',
1569
- 'inNumberRange',
1570
- ].includes(columnDef._filterFn);
1617
+ const isRangeFilter = columnDef.filterVariant === 'range' ||
1618
+ ['between', 'betweenInclusive', 'inNumberRange'].includes(columnDef._filterFn);
1571
1619
  const currentFilterOption = columnDef._filterFn;
1572
1620
  const filterTooltip = localization.filteringByColumn
1573
1621
  .replace('{column}', String(columnDef.header))
@@ -1579,8 +1627,8 @@ const MRT_TableHeadCellFilterLabel = ({ header, table }) => {
1579
1627
  ? column.getFilterValue().join(`" ${isRangeFilter ? localization.and : localization.or} "`)
1580
1628
  : column.getFilterValue()}"`)
1581
1629
  .replace('" "', '');
1582
- return (React__default["default"].createElement(material.Grow, { unmountOnExit: true, in: (!!column.getFilterValue() && isRangeFilter) ||
1583
- (!isRangeFilter && // @ts-ignore
1630
+ return (React__default["default"].createElement(material.Grow, { unmountOnExit: true, in: (!!column.getFilterValue() && !isRangeFilter) ||
1631
+ (isRangeFilter && // @ts-ignore
1584
1632
  (!!((_b = column.getFilterValue()) === null || _b === void 0 ? void 0 : _b[0]) || !!((_c = column.getFilterValue()) === null || _c === void 0 ? void 0 : _c[1]))) },
1585
1633
  React__default["default"].createElement("span", null,
1586
1634
  React__default["default"].createElement(material.Tooltip, { arrow: true, placement: "top", title: filterTooltip },
@@ -1597,7 +1645,7 @@ const MRT_TableHeadCellFilterLabel = ({ header, table }) => {
1597
1645
  };
1598
1646
 
1599
1647
  const MRT_TableHeadCellGrabHandle = ({ column, table, tableHeadCellRef, }) => {
1600
- const { getState, options: { enableColumnOrdering, muiTableHeadCellDragHandleProps, onColumnDrop, }, setColumnOrder, setDraggingColumn, setHoveredColumn, } = table;
1648
+ const { getState, options: { enableColumnOrdering, muiTableHeadCellDragHandleProps }, setColumnOrder, setDraggingColumn, setHoveredColumn, } = table;
1601
1649
  const { columnDef } = column;
1602
1650
  const { hoveredColumn, draggingColumn, columnOrder } = getState();
1603
1651
  const mIconButtonProps = muiTableHeadCellDragHandleProps instanceof Function
@@ -1607,16 +1655,15 @@ const MRT_TableHeadCellGrabHandle = ({ column, table, tableHeadCellRef, }) => {
1607
1655
  ? columnDef.muiTableHeadCellDragHandleProps({ column, table })
1608
1656
  : columnDef.muiTableHeadCellDragHandleProps;
1609
1657
  const iconButtonProps = Object.assign(Object.assign({}, mIconButtonProps), mcIconButtonProps);
1610
- const handleDragStart = (e) => {
1658
+ const handleDragStart = (event) => {
1659
+ var _a;
1660
+ (_a = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.onDragStart) === null || _a === void 0 ? void 0 : _a.call(iconButtonProps, event);
1611
1661
  setDraggingColumn(column);
1612
- e.dataTransfer.setDragImage(tableHeadCellRef.current, 0, 0);
1662
+ event.dataTransfer.setDragImage(tableHeadCellRef.current, 0, 0);
1613
1663
  };
1614
1664
  const handleDragEnd = (event) => {
1615
- onColumnDrop === null || onColumnDrop === void 0 ? void 0 : onColumnDrop({
1616
- event,
1617
- draggedColumn: column,
1618
- targetColumn: hoveredColumn,
1619
- });
1665
+ var _a;
1666
+ (_a = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.onDragEnd) === null || _a === void 0 ? void 0 : _a.call(iconButtonProps, event);
1620
1667
  if ((hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone') {
1621
1668
  column.toggleGrouping();
1622
1669
  }
@@ -1684,7 +1731,7 @@ const MRT_TableHeadCellSortLabel = ({ header, table }) => {
1684
1731
  const MRT_TableHeadCell = ({ header, table }) => {
1685
1732
  var _a, _b, _c, _d;
1686
1733
  const theme = material.useTheme();
1687
- const { getState, options: { enableColumnActions, enableColumnDragging, enableColumnOrdering, enableColumnResizing, enableGrouping, enableMultiSort, muiTableHeadCellProps, }, setHoveredColumn, } = table;
1734
+ const { getState, options: { enableColumnActions, enableColumnDragging, enableColumnOrdering, enableGrouping, enableMultiSort, muiTableHeadCellProps, }, setHoveredColumn, } = table;
1688
1735
  const { density, draggingColumn, grouping, hoveredColumn, showColumnFilters, } = getState();
1689
1736
  const { column } = header;
1690
1737
  const { columnDef } = column;
@@ -1696,16 +1743,6 @@ const MRT_TableHeadCell = ({ header, table }) => {
1696
1743
  ? columnDef.muiTableHeadCellProps({ column, table })
1697
1744
  : columnDef.muiTableHeadCellProps;
1698
1745
  const tableCellProps = Object.assign(Object.assign({}, mTableHeadCellProps), mcTableHeadCellProps);
1699
- const getIsLastLeftPinnedColumn = () => {
1700
- return (column.getIsPinned() === 'left' &&
1701
- table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex());
1702
- };
1703
- const getIsFirstRightPinnedColumn = () => {
1704
- return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
1705
- };
1706
- const getTotalRight = () => {
1707
- return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150);
1708
- };
1709
1746
  const handleDragEnter = (_e) => {
1710
1747
  if (enableGrouping && (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone') {
1711
1748
  setHoveredColumn(null);
@@ -1734,44 +1771,33 @@ const MRT_TableHeadCell = ({ header, table }) => {
1734
1771
  })
1735
1772
  : columnDef === null || columnDef === void 0 ? void 0 : columnDef.Header)) !== null && _b !== void 0 ? _b : columnDef.header);
1736
1773
  const tableHeadCellRef = React__default["default"].useRef(null);
1737
- return (React__default["default"].createElement(material.TableCell, Object.assign({ align: columnDefType === 'group' ? 'center' : 'left', colSpan: header.colSpan, onDragEnter: handleDragEnter, ref: tableHeadCellRef }, tableCellProps, { sx: (theme) => {
1738
- var _a;
1739
- return (Object.assign(Object.assign(Object.assign({ backgroundColor: column.getIsPinned() && columnDefType !== 'group'
1740
- ? material.alpha(material.lighten(theme.palette.background.default, 0.04), 0.95)
1741
- : 'inherit', backgroundImage: 'inherit', boxShadow: getIsLastLeftPinnedColumn()
1742
- ? `4px 0 4px -2px ${material.alpha(theme.palette.common.black, 0.1)}`
1743
- : getIsFirstRightPinnedColumn()
1744
- ? `-4px 0 4px -2px ${material.alpha(theme.palette.common.black, 0.1)}`
1745
- : undefined, fontWeight: 'bold', left: column.getIsPinned() === 'left'
1746
- ? `${column.getStart('left')}px`
1747
- : undefined, overflow: 'visible', opacity: (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id || (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
1748
- ? 0.5
1749
- : 1, p: density === 'compact'
1750
- ? '0.5rem'
1751
- : density === 'comfortable'
1752
- ? columnDefType === 'display'
1753
- ? '0.75rem'
1754
- : '1rem'
1755
- : columnDefType === 'display'
1756
- ? '1rem 1.25rem'
1757
- : '1.5rem', pb: columnDefType === 'display'
1758
- ? 0
1759
- : showColumnFilters || density === 'compact'
1760
- ? '0.4rem'
1761
- : '0.6rem', position: column.getIsPinned() && columnDefType !== 'group'
1762
- ? 'sticky'
1763
- : undefined, pt: columnDefType === 'group' || density === 'compact'
1764
- ? '0.25rem'
1765
- : density === 'comfortable'
1766
- ? '.75rem'
1767
- : '1.25rem', right: column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined, transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`, userSelect: enableMultiSort && column.getCanSort() ? 'none' : undefined, verticalAlign: 'top', zIndex: column.getIsResizing() || (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id
1768
- ? 3
1769
- : column.getIsPinned() && columnDefType !== 'group'
1770
- ? 2
1771
- : 1 }, ((tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx) instanceof Function
1772
- ? tableCellProps.sx(theme)
1773
- : tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx)), draggingBorders), { maxWidth: `min(${column.getSize()}px, fit-content)`, minWidth: `max(${column.getSize()}px, ${(_a = columnDef.minSize) !== null && _a !== void 0 ? _a : 30}px)`, width: header.getSize() }));
1774
- } }),
1774
+ return (React__default["default"].createElement(material.TableCell, Object.assign({ align: columnDefType === 'group' ? 'center' : 'left', colSpan: header.colSpan, onDragEnter: handleDragEnter, ref: tableHeadCellRef }, tableCellProps, { sx: (theme) => (Object.assign(Object.assign({ fontWeight: 'bold', overflow: 'visible', p: density === 'compact'
1775
+ ? '0.5rem'
1776
+ : density === 'comfortable'
1777
+ ? columnDefType === 'display'
1778
+ ? '0.75rem'
1779
+ : '1rem'
1780
+ : columnDefType === 'display'
1781
+ ? '1rem 1.25rem'
1782
+ : '1.5rem', pb: columnDefType === 'display'
1783
+ ? 0
1784
+ : showColumnFilters || density === 'compact'
1785
+ ? '0.4rem'
1786
+ : '0.6rem', pt: columnDefType === 'group' || density === 'compact'
1787
+ ? '0.25rem'
1788
+ : density === 'comfortable'
1789
+ ? '.75rem'
1790
+ : '1.25rem', userSelect: enableMultiSort && column.getCanSort() ? 'none' : undefined, verticalAlign: 'top', zIndex: column.getIsResizing() || (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id
1791
+ ? 3
1792
+ : column.getIsPinned() && columnDefType !== 'group'
1793
+ ? 2
1794
+ : 1 }, getCommonCellStyles({
1795
+ column,
1796
+ header,
1797
+ table,
1798
+ tableCellProps,
1799
+ theme,
1800
+ })), draggingBorders)) }),
1775
1801
  header.isPlaceholder ? null : (React__default["default"].createElement(material.Box, { sx: {
1776
1802
  alignItems: 'flex-start',
1777
1803
  display: 'flex',
@@ -1826,11 +1852,13 @@ const MRT_TableHeadRow = ({ headerGroup, table }) => {
1826
1852
  };
1827
1853
 
1828
1854
  const MRT_TableHead = ({ table }) => {
1829
- const { getHeaderGroups, options: { muiTableHeadProps }, } = table;
1855
+ const { getHeaderGroups, options: { enableStickyHeader, muiTableHeadProps }, } = table;
1830
1856
  const tableHeadProps = muiTableHeadProps instanceof Function
1831
1857
  ? muiTableHeadProps({ table })
1832
1858
  : muiTableHeadProps;
1833
- return (React__default["default"].createElement(material.TableHead, Object.assign({}, tableHeadProps), getHeaderGroups().map((headerGroup) => (React__default["default"].createElement(MRT_TableHeadRow, { headerGroup: headerGroup, key: headerGroup.id, table: table })))));
1859
+ return (React__default["default"].createElement(material.TableHead, Object.assign({}, tableHeadProps, { sx: (theme) => (Object.assign({ opacity: enableStickyHeader ? 0.95 : undefined }, ((tableHeadProps === null || tableHeadProps === void 0 ? void 0 : tableHeadProps.sx) instanceof Function
1860
+ ? tableHeadProps === null || tableHeadProps === void 0 ? void 0 : tableHeadProps.sx(theme)
1861
+ : tableHeadProps === null || tableHeadProps === void 0 ? void 0 : tableHeadProps.sx))) }), getHeaderGroups().map((headerGroup) => (React__default["default"].createElement(MRT_TableHeadRow, { headerGroup: headerGroup, key: headerGroup.id, table: table })))));
1834
1862
  };
1835
1863
 
1836
1864
  const MRT_EditCellTextField = ({ cell, showLabel, table, }) => {
@@ -1926,28 +1954,27 @@ const MRT_CopyButton = ({ cell, children, table, }) => {
1926
1954
  };
1927
1955
 
1928
1956
  const MRT_TableBodyRowGrabHandle = ({ cell, rowRef, table, }) => {
1929
- const { options: { muiTableBodyRowDragHandleProps, onRowDrop }, } = table;
1957
+ const { options: { muiTableBodyRowDragHandleProps }, } = table;
1930
1958
  const { row } = cell;
1931
1959
  const iconButtonProps = muiTableBodyRowDragHandleProps instanceof Function
1932
1960
  ? muiTableBodyRowDragHandleProps({ row, table })
1933
1961
  : muiTableBodyRowDragHandleProps;
1934
- const handleDragStart = (e) => {
1935
- e.dataTransfer.setDragImage(rowRef.current, 0, 0);
1962
+ const handleDragStart = (event) => {
1963
+ var _a;
1964
+ (_a = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.onDragStart) === null || _a === void 0 ? void 0 : _a.call(iconButtonProps, event);
1965
+ event.dataTransfer.setDragImage(rowRef.current, 0, 0);
1936
1966
  table.setDraggingRow(row);
1937
1967
  };
1938
1968
  const handleDragEnd = (event) => {
1939
- onRowDrop === null || onRowDrop === void 0 ? void 0 : onRowDrop({
1940
- event,
1941
- draggedRow: table.getState().draggingRow,
1942
- targetRow: table.getState().hoveredRow,
1943
- });
1969
+ var _a;
1970
+ (_a = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.onDragEnd) === null || _a === void 0 ? void 0 : _a.call(iconButtonProps, event);
1944
1971
  table.setDraggingRow(null);
1945
1972
  table.setHoveredRow(null);
1946
1973
  };
1947
1974
  return (React__default["default"].createElement(MRT_GrabHandleButton, { iconButtonProps: iconButtonProps, onDragStart: handleDragStart, onDragEnd: handleDragEnd, table: table }));
1948
1975
  };
1949
1976
 
1950
- const MRT_TableBodyCellValue = ({ cell, table }) => {
1977
+ const _MRT_TableBodyCellValue = ({ cell, table }) => {
1951
1978
  var _a, _b;
1952
1979
  const { column, row } = cell;
1953
1980
  const { columnDef } = column;
@@ -1969,6 +1996,7 @@ const MRT_TableBodyCellValue = ({ cell, table }) => {
1969
1996
  })
1970
1997
  : (_b = (_a = columnDef === null || columnDef === void 0 ? void 0 : columnDef.Cell) === null || _a === void 0 ? void 0 : _a.call(columnDef, { cell, column, row, table })) !== null && _b !== void 0 ? _b : cell.renderValue()));
1971
1998
  };
1999
+ const MRT_TableBodyCellValue = React.memo(_MRT_TableBodyCellValue, (prev, next) => prev.cell.getValue() === next.cell.getValue());
1972
2000
 
1973
2001
  const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
1974
2002
  var _a, _b;
@@ -1985,6 +2013,9 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
1985
2013
  ? columnDef.muiTableBodyCellProps({ cell, table })
1986
2014
  : columnDef.muiTableBodyCellProps;
1987
2015
  const tableCellProps = Object.assign(Object.assign({}, mTableCellBodyProps), mcTableCellBodyProps);
2016
+ const skeletonProps = muiTableBodyCellSkeletonProps instanceof Function
2017
+ ? muiTableBodyCellSkeletonProps({ cell, column, row, table })
2018
+ : muiTableBodyCellSkeletonProps;
1988
2019
  const isEditable = (enableEditing || columnDef.enableEditing) &&
1989
2020
  columnDef.enableEditing !== false;
1990
2021
  const isEditing = isEditable &&
@@ -2015,16 +2046,6 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
2015
2046
  });
2016
2047
  }
2017
2048
  };
2018
- const getIsLastLeftPinnedColumn = () => {
2019
- return (column.getIsPinned() === 'left' &&
2020
- table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex());
2021
- };
2022
- const getIsFirstRightPinnedColumn = () => {
2023
- return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
2024
- };
2025
- const getTotalRight = () => {
2026
- return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150);
2027
- };
2028
2049
  const handleDragEnter = (e) => {
2029
2050
  var _a;
2030
2051
  (_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onDragEnter) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, e);
@@ -2053,53 +2074,34 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
2053
2074
  : undefined,
2054
2075
  }
2055
2076
  : undefined;
2056
- return (React__default["default"].createElement(material.TableCell, Object.assign({}, tableCellProps, { onDragEnter: handleDragEnter, onDoubleClick: handleDoubleClick, sx: (theme) => {
2057
- var _a;
2058
- return (Object.assign(Object.assign(Object.assign({ backgroundColor: column.getIsPinned()
2059
- ? material.alpha(material.lighten(theme.palette.background.default, 0.04), 0.95)
2060
- : undefined, boxShadow: getIsLastLeftPinnedColumn()
2061
- ? `4px 0 4px -2px ${material.alpha(theme.palette.common.black, 0.1)}`
2062
- : getIsFirstRightPinnedColumn()
2063
- ? `-4px 0 4px -2px ${material.alpha(theme.palette.common.black, 0.1)}`
2064
- : undefined, cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text', left: column.getIsPinned() === 'left'
2065
- ? `${column.getStart('left')}px`
2066
- : undefined, opacity: (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id || (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
2067
- ? 0.5
2068
- : 1, overflow: 'hidden', p: density === 'compact'
2077
+ return (React__default["default"].createElement(material.TableCell, Object.assign({}, tableCellProps, { onDragEnter: handleDragEnter, onDoubleClick: handleDoubleClick, sx: (theme) => (Object.assign(Object.assign({ cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text', overflow: 'hidden', p: density === 'compact'
2078
+ ? columnDefType === 'display'
2079
+ ? '0 0.5rem'
2080
+ : '0.5rem'
2081
+ : density === 'comfortable'
2069
2082
  ? columnDefType === 'display'
2070
- ? '0 0.5rem'
2071
- : '0.5rem'
2072
- : density === 'comfortable'
2073
- ? columnDefType === 'display'
2074
- ? '0.5rem 0.75rem'
2075
- : '1rem'
2076
- : columnDefType === 'display'
2077
- ? '1rem 1.25rem'
2078
- : '1.5rem', pl: column.id === 'mrt-row-expand'
2079
- ? `${row.depth +
2080
- (density === 'compact'
2081
- ? 0.5
2082
- : density === 'comfortable'
2083
- ? 0.75
2084
- : 1.25)}rem`
2085
- : undefined, position: column.getIsPinned() ? 'sticky' : 'relative', right: column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined, textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined, transition: 'all 0.2s ease-in-out', whiteSpace: density === 'compact' ? 'nowrap' : 'normal', zIndex: (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id
2086
- ? 2
2087
- : column.getIsPinned()
2088
- ? 1
2089
- : undefined, '&:hover': {
2090
- backgroundColor: enableHover &&
2091
- enableEditing &&
2092
- columnDef.enableEditing !== false &&
2093
- ['table', 'cell'].includes(editingMode !== null && editingMode !== void 0 ? editingMode : '')
2094
- ? theme.palette.mode === 'dark'
2095
- ? `${material.lighten(theme.palette.background.default, 0.2)} !important`
2096
- : `${material.darken(theme.palette.background.default, 0.1)} !important`
2097
- : undefined,
2098
- } }, ((tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx) instanceof Function
2099
- ? tableCellProps.sx(theme)
2100
- : tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx)), draggingBorders), { maxWidth: `min(${column.getSize()}px, fit-content)`, minWidth: `max(${column.getSize()}px, ${(_a = columnDef.minSize) !== null && _a !== void 0 ? _a : 30}px)`, width: column.getSize() }));
2101
- } }),
2102
- React__default["default"].createElement(React__default["default"].Fragment, null, cell.getIsPlaceholder() ? null : isLoading || showSkeletons ? (React__default["default"].createElement(material.Skeleton, Object.assign({ animation: "wave", height: 20, width: skeletonWidth }, muiTableBodyCellSkeletonProps))) : enableRowNumbers &&
2083
+ ? '0.5rem 0.75rem'
2084
+ : '1rem'
2085
+ : columnDefType === 'display'
2086
+ ? '1rem 1.25rem'
2087
+ : '1.5rem', pl: column.id === 'mrt-row-expand'
2088
+ ? `${row.depth +
2089
+ (density === 'compact'
2090
+ ? 0.5
2091
+ : density === 'comfortable'
2092
+ ? 0.75
2093
+ : 1.25)}rem`
2094
+ : 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': {
2095
+ backgroundColor: enableHover &&
2096
+ enableEditing &&
2097
+ columnDef.enableEditing !== false &&
2098
+ ['table', 'cell'].includes(editingMode !== null && editingMode !== void 0 ? editingMode : '')
2099
+ ? theme.palette.mode === 'dark'
2100
+ ? `${material.lighten(theme.palette.background.default, 0.2)} !important`
2101
+ : `${material.darken(theme.palette.background.default, 0.1)} !important`
2102
+ : undefined,
2103
+ } }, getCommonCellStyles({ column, table, theme, tableCellProps })), draggingBorders)) }),
2104
+ React__default["default"].createElement(React__default["default"].Fragment, null, cell.getIsPlaceholder() ? null : isLoading || showSkeletons ? (React__default["default"].createElement(material.Skeleton, Object.assign({ animation: "wave", height: 20, width: skeletonWidth }, skeletonProps))) : enableRowNumbers &&
2103
2105
  rowNumberMode === 'static' &&
2104
2106
  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' &&
2105
2107
  (column.id === 'mrt-row-select' ||
@@ -2169,9 +2171,10 @@ const MRT_TableBodyRow = ({ row, rowIndex, table, virtualRow, }) => {
2169
2171
  renderDetailPanel && !row.getIsGrouped() && (React__default["default"].createElement(MRT_TableDetailPanel, { row: row, table: table }))));
2170
2172
  };
2171
2173
 
2172
- const MRT_TableBody = ({ table, tableContainerRef }) => {
2173
- const { getRowModel, getPrePaginationRowModel, getState, options: { enableGlobalFilterRankedResults, enablePagination, enableRowVirtualization, manualFiltering, manualSorting, muiTableBodyProps, virtualizerInstanceRef, virtualizerProps, }, } = table;
2174
- const { globalFilter, pagination, sorting } = getState();
2174
+ const MRT_TableBody = ({ table }) => {
2175
+ var _a;
2176
+ const { getRowModel, getPrePaginationRowModel, getState, options: { enableGlobalFilterRankedResults, enablePagination, enableRowVirtualization, localization, manualFiltering, manualSorting, muiTableBodyProps, virtualizerInstanceRef, virtualizerProps, }, refs: { tableContainerRef, tablePaperRef }, } = table;
2177
+ const { columnFilters, globalFilter, pagination, sorting } = getState();
2175
2178
  const tableBodyProps = muiTableBodyProps instanceof Function
2176
2179
  ? muiTableBodyProps({ table })
2177
2180
  : muiTableBodyProps;
@@ -2236,7 +2239,18 @@ const MRT_TableBody = ({ table, tableContainerRef }) => {
2236
2239
  // ? virtualizer.getTotalSize() - virtualRows[virtualRows.length - 1].end
2237
2240
  // : 0;
2238
2241
  // }
2239
- return (React__default["default"].createElement(material.TableBody, Object.assign({}, tableBodyProps),
2242
+ return (React__default["default"].createElement(material.TableBody, Object.assign({}, tableBodyProps), !rows.length ? (React__default["default"].createElement("tr", null,
2243
+ React__default["default"].createElement("td", { colSpan: table.getVisibleLeafColumns().length },
2244
+ React__default["default"].createElement(material.Typography, { sx: {
2245
+ color: 'text.secondary',
2246
+ fontStyle: 'italic',
2247
+ maxWidth: `min(100vw, ${(_a = tablePaperRef.current) === null || _a === void 0 ? void 0 : _a.clientWidth}px)`,
2248
+ py: '2rem',
2249
+ textAlign: 'center',
2250
+ width: '100%',
2251
+ } }, globalFilter || columnFilters.length
2252
+ ? localization.noResultsFound
2253
+ : localization.noRecordsToDisplay)))) : (React__default["default"].createElement(React__default["default"].Fragment, null,
2240
2254
  enableRowVirtualization && paddingTop > 0 && (React__default["default"].createElement("tr", null,
2241
2255
  React__default["default"].createElement("td", { style: { height: `${paddingTop}px` } }))),
2242
2256
  (enableRowVirtualization ? virtualRows : rows).map((rowOrVirtualRow, rowIndex) => {
@@ -2246,12 +2260,12 @@ const MRT_TableBody = ({ table, tableContainerRef }) => {
2246
2260
  return (React__default["default"].createElement(MRT_TableBodyRow, { key: row.id, row: row, rowIndex: enableRowVirtualization ? rowOrVirtualRow.index : rowIndex, table: table, virtualRow: enableRowVirtualization ? rowOrVirtualRow : null }));
2247
2261
  }),
2248
2262
  enableRowVirtualization && paddingBottom > 0 && (React__default["default"].createElement("tr", null,
2249
- React__default["default"].createElement("td", { style: { height: `${paddingBottom}px` } })))));
2263
+ React__default["default"].createElement("td", { style: { height: `${paddingBottom}px` } })))))));
2250
2264
  };
2251
2265
 
2252
2266
  const MRT_TableFooterCell = ({ footer, table }) => {
2253
2267
  var _a, _b, _c;
2254
- const { getState, options: { muiTableFooterCellProps, enableColumnResizing }, } = table;
2268
+ const { getState, options: { muiTableFooterCellProps }, } = table;
2255
2269
  const { density } = getState();
2256
2270
  const { column } = footer;
2257
2271
  const { columnDef } = column;
@@ -2263,13 +2277,11 @@ const MRT_TableFooterCell = ({ footer, table }) => {
2263
2277
  ? columnDef.muiTableFooterCellProps({ column, table })
2264
2278
  : columnDef.muiTableFooterCellProps;
2265
2279
  const tableCellProps = Object.assign(Object.assign({}, mTableFooterCellProps), mcTableFooterCellProps);
2266
- return (React__default["default"].createElement(material.TableCell, Object.assign({ align: columnDefType === 'group' ? 'center' : 'left', colSpan: footer.colSpan, variant: "head" }, tableCellProps, { sx: (theme) => (Object.assign({ backgroundColor: theme.palette.background.default, backgroundImage: `linear-gradient(${material.alpha(theme.palette.common.white, 0.05)},${material.alpha(theme.palette.common.white, 0.05)})`, fontWeight: 'bold', maxWidth: `${column.getSize()}px`, minWidth: `${column.getSize()}px`, p: density === 'compact'
2280
+ return (React__default["default"].createElement(material.TableCell, Object.assign({ align: columnDefType === 'group' ? 'center' : 'left', colSpan: footer.colSpan, variant: "head" }, tableCellProps, { sx: (theme) => (Object.assign({ fontWeight: 'bold', p: density === 'compact'
2267
2281
  ? '0.5rem'
2268
2282
  : density === 'comfortable'
2269
2283
  ? '1rem'
2270
- : '1.5rem', transition: `all ${enableColumnResizing ? '10ms' : '0.2s'} ease-in-out`, width: column.getSize(), verticalAlign: 'text-top' }, ((tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx) instanceof Function
2271
- ? tableCellProps.sx(theme)
2272
- : tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx))) }),
2284
+ : '1.5rem', verticalAlign: 'top' }, getCommonCellStyles({ column, table, theme, tableCellProps }))) }),
2273
2285
  React__default["default"].createElement(React__default["default"].Fragment, null, footer.isPlaceholder
2274
2286
  ? null
2275
2287
  : (_c = (_b = (columnDef.Footer instanceof Function
@@ -2302,16 +2314,16 @@ const MRT_TableFooter = ({ table }) => {
2302
2314
  ? muiTableFooterProps({ table })
2303
2315
  : muiTableFooterProps;
2304
2316
  const stickFooter = (isFullScreen || enableStickyFooter) && enableStickyFooter !== false;
2305
- return (React__default["default"].createElement(material.TableFooter, Object.assign({}, tableFooterProps, { sx: (theme) => (Object.assign({ position: stickFooter ? 'sticky' : undefined, bottom: stickFooter ? 0 : undefined, opacity: stickFooter ? 0.95 : undefined, outline: stickFooter
2317
+ return (React__default["default"].createElement(material.TableFooter, Object.assign({}, tableFooterProps, { sx: (theme) => (Object.assign({ backgroundColor: material.lighten(theme.palette.background.default, 0.06), bottom: stickFooter ? 0 : undefined, opacity: stickFooter ? 0.95 : undefined, outline: stickFooter
2306
2318
  ? theme.palette.mode === 'light'
2307
2319
  ? `1px solid ${theme.palette.grey[300]}`
2308
2320
  : `1px solid ${theme.palette.grey[700]}`
2309
- : undefined }, ((tableFooterProps === null || tableFooterProps === void 0 ? void 0 : tableFooterProps.sx) instanceof Function
2321
+ : undefined, position: stickFooter ? 'sticky' : undefined }, ((tableFooterProps === null || tableFooterProps === void 0 ? void 0 : tableFooterProps.sx) instanceof Function
2310
2322
  ? tableFooterProps === null || tableFooterProps === void 0 ? void 0 : tableFooterProps.sx(theme)
2311
2323
  : tableFooterProps === null || tableFooterProps === void 0 ? void 0 : tableFooterProps.sx))) }), getFooterGroups().map((footerGroup) => (React__default["default"].createElement(MRT_TableFooterRow, { footerGroup: footerGroup, key: footerGroup.id, table: table })))));
2312
2324
  };
2313
2325
 
2314
- const MRT_Table = ({ tableContainerRef, table }) => {
2326
+ const MRT_Table = ({ table }) => {
2315
2327
  const { getState, options: { enableColumnResizing, enableRowVirtualization, enableStickyHeader, enableTableFooter, enableTableHead, muiTableProps, }, } = table;
2316
2328
  const { isFullScreen } = getState();
2317
2329
  const tableProps = muiTableProps instanceof Function
@@ -2321,7 +2333,7 @@ const MRT_Table = ({ tableContainerRef, table }) => {
2321
2333
  ? tableProps.sx(theme)
2322
2334
  : tableProps === null || tableProps === void 0 ? void 0 : tableProps.sx))) }),
2323
2335
  enableTableHead && React__default["default"].createElement(MRT_TableHead, { table: table }),
2324
- React__default["default"].createElement(MRT_TableBody, { tableContainerRef: tableContainerRef, table: table }),
2336
+ React__default["default"].createElement(MRT_TableBody, { table: table }),
2325
2337
  enableTableFooter && React__default["default"].createElement(MRT_TableFooter, { table: table })));
2326
2338
  };
2327
2339
 
@@ -2356,31 +2368,42 @@ const MRT_TableContainer = ({ table }) => {
2356
2368
  : tableContainerProps === null || tableContainerProps === void 0 ? void 0 : tableContainerProps.sx))), style: Object.assign({ maxHeight: isFullScreen
2357
2369
  ? `calc(100vh - ${totalToolbarHeight}px)`
2358
2370
  : undefined }, tableContainerProps === null || tableContainerProps === void 0 ? void 0 : tableContainerProps.style) }),
2359
- React__default["default"].createElement(MRT_Table, { tableContainerRef: tableContainerRef, table: table })));
2371
+ React__default["default"].createElement(MRT_Table, { table: table })));
2360
2372
  };
2361
2373
 
2362
2374
  const MRT_TablePaper = ({ table }) => {
2363
- const { getState, options: { enableBottomToolbar, enableTopToolbar, muiTablePaperProps }, } = table;
2375
+ const { getState, options: { enableBottomToolbar, enableTopToolbar, muiTablePaperProps, renderBottomToolbar, renderTopToolbar, }, refs: { tablePaperRef }, } = table;
2364
2376
  const { isFullScreen } = getState();
2365
- React.useEffect(() => {
2366
- if (typeof window !== 'undefined') {
2367
- if (isFullScreen) {
2368
- document.body.style.height = '100vh';
2369
- }
2370
- else {
2371
- document.body.style.height = 'auto';
2372
- }
2373
- }
2374
- }, [isFullScreen]);
2375
2377
  const tablePaperProps = muiTablePaperProps instanceof Function
2376
2378
  ? muiTablePaperProps({ table })
2377
2379
  : muiTablePaperProps;
2378
- return (React__default["default"].createElement(material.Paper, Object.assign({ elevation: 2 }, tablePaperProps, { sx: (theme) => (Object.assign({ transition: 'all 0.2s ease-in-out' }, ((tablePaperProps === null || tablePaperProps === void 0 ? void 0 : tablePaperProps.sx) instanceof Function
2380
+ return (React__default["default"].createElement(material.Paper, Object.assign({ elevation: 2 }, tablePaperProps, { ref: (ref) => {
2381
+ tablePaperRef.current = ref;
2382
+ if (tablePaperProps === null || tablePaperProps === void 0 ? void 0 : tablePaperProps.ref) {
2383
+ //@ts-ignore
2384
+ tablePaperProps.ref.current = ref;
2385
+ }
2386
+ }, sx: (theme) => (Object.assign({ transition: 'all 0.2s ease-in-out' }, ((tablePaperProps === null || tablePaperProps === void 0 ? void 0 : tablePaperProps.sx) instanceof Function
2379
2387
  ? tablePaperProps === null || tablePaperProps === void 0 ? void 0 : tablePaperProps.sx(theme)
2380
- : tablePaperProps === null || tablePaperProps === void 0 ? void 0 : tablePaperProps.sx))), style: Object.assign(Object.assign({}, tablePaperProps === null || tablePaperProps === void 0 ? void 0 : tablePaperProps.style), { height: isFullScreen ? '100vh' : undefined, margin: isFullScreen ? '0' : undefined, maxHeight: isFullScreen ? '100vh' : undefined, maxWidth: isFullScreen ? '100vw' : undefined, padding: isFullScreen ? '0' : undefined, width: isFullScreen ? '100vw' : undefined }) }),
2381
- enableTopToolbar && React__default["default"].createElement(MRT_TopToolbar, { table: table }),
2388
+ : tablePaperProps === null || tablePaperProps === void 0 ? void 0 : tablePaperProps.sx))), style: Object.assign(Object.assign({}, tablePaperProps === null || tablePaperProps === void 0 ? void 0 : tablePaperProps.style), (isFullScreen
2389
+ ? {
2390
+ height: '100vh',
2391
+ margin: 0,
2392
+ maxHeight: '100vh',
2393
+ maxWidth: '100vw',
2394
+ padding: 0,
2395
+ width: '100vw',
2396
+ }
2397
+ : {})) }),
2398
+ enableTopToolbar &&
2399
+ (renderTopToolbar instanceof Function
2400
+ ? renderTopToolbar({ table })
2401
+ : renderTopToolbar !== null && renderTopToolbar !== void 0 ? renderTopToolbar : React__default["default"].createElement(MRT_TopToolbar, { table: table })),
2382
2402
  React__default["default"].createElement(MRT_TableContainer, { table: table }),
2383
- enableBottomToolbar && React__default["default"].createElement(MRT_BottomToolbar, { table: table })));
2403
+ enableBottomToolbar &&
2404
+ (renderBottomToolbar instanceof Function
2405
+ ? renderBottomToolbar({ table })
2406
+ : renderBottomToolbar !== null && renderBottomToolbar !== void 0 ? renderBottomToolbar : React__default["default"].createElement(MRT_BottomToolbar, { table: table }))));
2384
2407
  };
2385
2408
 
2386
2409
  const MRT_EditRowModal = ({ open, row, table, }) => {
@@ -2408,6 +2431,7 @@ const MRT_TableRoot = (props) => {
2408
2431
  const filterInputRefs = React.useRef({});
2409
2432
  const searchInputRef = React.useRef(null);
2410
2433
  const tableContainerRef = React.useRef(null);
2434
+ const tablePaperRef = React.useRef(null);
2411
2435
  const topToolbarRef = React.useRef(null);
2412
2436
  const initialState = React.useMemo(() => {
2413
2437
  var _a, _b;
@@ -2443,14 +2467,14 @@ const MRT_TableRoot = (props) => {
2443
2467
  const [showColumnFilters, setShowFilters] = React.useState((_p = initialState === null || initialState === void 0 ? void 0 : initialState.showColumnFilters) !== null && _p !== void 0 ? _p : false);
2444
2468
  const [showGlobalFilter, setShowGlobalFilter] = React.useState((_q = initialState === null || initialState === void 0 ? void 0 : initialState.showGlobalFilter) !== null && _q !== void 0 ? _q : false);
2445
2469
  const displayColumns = React.useMemo(() => {
2446
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
2470
+ var _a, _b, _c, _d, _e;
2447
2471
  return [
2448
- columnOrder.includes('mrt-row-drag') && Object.assign(Object.assign(Object.assign({ header: (_a = props.localization) === null || _a === void 0 ? void 0 : _a.move, size: 60 }, props.defaultDisplayColumn), (_b = props.displayColumnDefOptions) === null || _b === void 0 ? void 0 : _b['mrt-row-drag']), { id: 'mrt-row-drag' }),
2449
- 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: (_c = props.localization) === null || _c === void 0 ? void 0 : _c.actions, size: 70 }, props.defaultDisplayColumn), (_d = props.displayColumnDefOptions) === null || _d === void 0 ? void 0 : _d['mrt-row-actions']), { id: 'mrt-row-actions' }),
2472
+ 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' }),
2473
+ 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' }),
2450
2474
  columnOrder.includes('mrt-row-expand') &&
2451
- showExpandColumn(props, grouping) && Object.assign(Object.assign(Object.assign({ Cell: ({ row }) => (React__default["default"].createElement(MRT_ExpandButton, { row: row, table: table })), Header: () => props.enableExpandAll ? (React__default["default"].createElement(MRT_ExpandAllButton, { table: table })) : null, header: (_e = props.localization) === null || _e === void 0 ? void 0 : _e.expand, size: 60 }, props.defaultDisplayColumn), (_f = props.displayColumnDefOptions) === null || _f === void 0 ? void 0 : _f['mrt-row-expand']), { id: 'mrt-row-expand' }),
2452
- 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 ? (React__default["default"].createElement(MRT_SelectCheckbox, { selectAll: true, table: table })) : null, header: (_g = props.localization) === null || _g === void 0 ? void 0 : _g.select, size: 60 }, props.defaultDisplayColumn), (_h = props.displayColumnDefOptions) === null || _h === void 0 ? void 0 : _h['mrt-row-select']), { id: 'mrt-row-select' }),
2453
- columnOrder.includes('mrt-row-numbers') && Object.assign(Object.assign(Object.assign({ Cell: ({ row }) => row.index + 1, Header: () => { var _a; return (_a = props.localization) === null || _a === void 0 ? void 0 : _a.rowNumber; }, header: (_j = props.localization) === null || _j === void 0 ? void 0 : _j.rowNumbers, size: 60 }, props.defaultDisplayColumn), (_k = props.displayColumnDefOptions) === null || _k === void 0 ? void 0 : _k['mrt-row-numbers']), { id: 'mrt-row-numbers' }),
2475
+ showExpandColumn(props, grouping) && Object.assign(Object.assign(Object.assign({ Cell: ({ row }) => (React__default["default"].createElement(MRT_ExpandButton, { row: row, table: table })), Header: () => props.enableExpandAll ? (React__default["default"].createElement(MRT_ExpandAllButton, { table: table })) : 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' }),
2476
+ 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 ? (React__default["default"].createElement(MRT_SelectCheckbox, { selectAll: true, table: table })) : 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' }),
2477
+ 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' }),
2454
2478
  ].filter(Boolean);
2455
2479
  }, [
2456
2480
  columnOrder,
@@ -2528,29 +2552,48 @@ const MRT_TableRoot = (props) => {
2528
2552
  filterInputRefs,
2529
2553
  searchInputRef,
2530
2554
  tableContainerRef,
2555
+ tablePaperRef,
2531
2556
  topToolbarRef,
2532
2557
  }, setColumnFilterFns: (_x = props.onFilterFnsChange) !== null && _x !== void 0 ? _x : setColumnFilterFns, setDensity: (_y = props.onDensityChange) !== null && _y !== void 0 ? _y : setDensity, setDraggingColumn: (_z = props.onDraggingColumnChange) !== null && _z !== void 0 ? _z : setDraggingColumn, setDraggingRow: (_0 = props.onDraggingRowChange) !== null && _0 !== void 0 ? _0 : setDraggingRow, setEditingCell: (_1 = props.onEditingCellChange) !== null && _1 !== void 0 ? _1 : setEditingCell, setEditingRow: (_2 = props.onEditingRowChange) !== null && _2 !== void 0 ? _2 : setEditingRow, setGlobalFilterFn: (_3 = props.onGlobalFilterFnChange) !== null && _3 !== void 0 ? _3 : setGlobalFilterFn, setHoveredColumn: (_4 = props.onHoveredColumnChange) !== null && _4 !== void 0 ? _4 : setHoveredColumn, setHoveredRow: (_5 = props.onHoveredRowChange) !== null && _5 !== void 0 ? _5 : setHoveredRow, setIsFullScreen: (_6 = props.onIsFullScreenChange) !== null && _6 !== void 0 ? _6 : setIsFullScreen, setShowAlertBanner: (_7 = props.onShowAlertBannerChange) !== null && _7 !== void 0 ? _7 : setShowAlertBanner, setShowFilters: (_8 = props.onShowFiltersChange) !== null && _8 !== void 0 ? _8 : setShowFilters, setShowGlobalFilter: (_9 = props.onShowGlobalFilterChange) !== null && _9 !== void 0 ? _9 : setShowGlobalFilter });
2533
2558
  if (props.tableInstanceRef) {
2534
2559
  props.tableInstanceRef.current = table;
2535
2560
  }
2561
+ const initialBodyHeight = React.useRef();
2562
+ React.useEffect(() => {
2563
+ if (typeof window !== 'undefined') {
2564
+ initialBodyHeight.current = document.body.style.height;
2565
+ }
2566
+ }, []);
2567
+ React.useEffect(() => {
2568
+ if (typeof window !== 'undefined') {
2569
+ if (table.getState().isFullScreen) {
2570
+ document.body.style.height = '100vh';
2571
+ }
2572
+ else {
2573
+ document.body.style.height = initialBodyHeight.current;
2574
+ }
2575
+ }
2576
+ }, [table.getState().isFullScreen]);
2536
2577
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
2537
- React__default["default"].createElement(material.Dialog, { PaperComponent: material.Box, TransitionComponent: material.Grow, disablePortal: true, fullScreen: true, keepMounted: false, onClose: () => setIsFullScreen(false), open: isFullScreen, transitionDuration: 400 },
2578
+ React__default["default"].createElement(material.Dialog, { PaperComponent: material.Box, TransitionComponent: material.Grow, disablePortal: true, fullScreen: true, keepMounted: false, onClose: () => table.setIsFullScreen(false), open: table.getState().isFullScreen, transitionDuration: 400 },
2538
2579
  React__default["default"].createElement(MRT_TablePaper, { table: table })),
2539
- !isFullScreen && React__default["default"].createElement(MRT_TablePaper, { table: table }),
2580
+ !table.getState().isFullScreen && (React__default["default"].createElement(MRT_TablePaper, { table: table })),
2540
2581
  editingRow && props.editingMode === 'modal' && (React__default["default"].createElement(MRT_EditRowModal, { row: editingRow, table: table, open: true }))));
2541
2582
  };
2542
2583
 
2543
2584
  var MaterialReactTable = (_a) => {
2544
2585
  var { aggregationFns, autoResetExpanded = false, columnResizeMode = 'onEnd', defaultColumn = { minSize: 40, maxSize: 1000, size: 180 }, defaultDisplayColumn, editingMode = 'modal', enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnResizing = false, enableDensityToggle = true, enableExpandAll = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enablePinning = false, enableRowSelection = false, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, localization, positionActionsColumn = 'first', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberMode = 'original', selectAllMode = 'all', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnResizeMode", "defaultColumn", "defaultDisplayColumn", "editingMode", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "localization", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberMode", "selectAllMode", "sortingFns"]);
2545
- return (React__default["default"].createElement(MRT_TableRoot, Object.assign({ aggregationFns: Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns), autoResetExpanded: autoResetExpanded, columnResizeMode: columnResizeMode, defaultColumn: defaultColumn, defaultDisplayColumn: Object.assign({ columnDefType: 'display', enableClickToCopy: false, enableColumnActions: false, enableColumnDragging: false, enableColumnFilter: false, enableColumnOrdering: false, enableEditing: false, enableGlobalFilter: false, enableGrouping: false, enableHiding: false, enableResizing: false, enableSorting: false }, defaultDisplayColumn), editingMode: editingMode, enableBottomToolbar: enableBottomToolbar, enableColumnActions: enableColumnActions, enableColumnFilters: enableColumnFilters, enableColumnOrdering: enableColumnOrdering, enableColumnResizing: enableColumnResizing, enableDensityToggle: enableDensityToggle, enableExpandAll: enableExpandAll, 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: Object.assign(Object.assign({}, MRT_FilterFns), filterFns), icons: Object.assign(Object.assign({}, MRT_Default_Icons), icons), localization: Object.assign(Object.assign({}, MRT_DefaultLocalization_EN), localization), positionActionsColumn: positionActionsColumn, positionExpandColumn: positionExpandColumn, positionGlobalFilter: positionGlobalFilter, positionPagination: positionPagination, positionToolbarAlertBanner: positionToolbarAlertBanner, positionToolbarDropZone: positionToolbarDropZone, rowNumberMode: rowNumberMode, selectAllMode: selectAllMode, sortingFns: Object.assign(Object.assign({}, MRT_SortingFns), sortingFns) }, rest)));
2586
+ return (React__default["default"].createElement(MRT_TableRoot, Object.assign({ aggregationFns: Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns), autoResetExpanded: autoResetExpanded, columnResizeMode: columnResizeMode, defaultColumn: defaultColumn, defaultDisplayColumn: Object.assign({ columnDefType: 'display', enableClickToCopy: false, enableColumnActions: false, enableColumnDragging: false, enableColumnFilter: false, enableColumnOrdering: false, enableEditing: false, enableGlobalFilter: false, enableGrouping: false, enableHiding: false, enableResizing: false, enableSorting: false }, defaultDisplayColumn), editingMode: editingMode, enableBottomToolbar: enableBottomToolbar, enableColumnActions: enableColumnActions, enableColumnFilters: enableColumnFilters, enableColumnOrdering: enableColumnOrdering, enableColumnResizing: enableColumnResizing, enableDensityToggle: enableDensityToggle, enableExpandAll: enableExpandAll, 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: Object.assign(Object.assign({}, MRT_FilterFns), filterFns), icons: Object.assign(Object.assign({}, MRT_Default_Icons), icons), localization: Object.assign(Object.assign({}, MRT_Localization_EN), localization), positionActionsColumn: positionActionsColumn, positionExpandColumn: positionExpandColumn, positionGlobalFilter: positionGlobalFilter, positionPagination: positionPagination, positionToolbarAlertBanner: positionToolbarAlertBanner, positionToolbarDropZone: positionToolbarDropZone, rowNumberMode: rowNumberMode, selectAllMode: selectAllMode, sortingFns: Object.assign(Object.assign({}, MRT_SortingFns), sortingFns) }, rest)));
2546
2587
  };
2547
2588
 
2548
2589
  exports.MRT_CopyButton = MRT_CopyButton;
2549
2590
  exports.MRT_FullScreenToggleButton = MRT_FullScreenToggleButton;
2550
2591
  exports.MRT_GlobalFilterTextField = MRT_GlobalFilterTextField;
2551
2592
  exports.MRT_ShowHideColumnsButton = MRT_ShowHideColumnsButton;
2593
+ exports.MRT_TablePagination = MRT_TablePagination;
2552
2594
  exports.MRT_ToggleDensePaddingButton = MRT_ToggleDensePaddingButton;
2553
2595
  exports.MRT_ToggleFiltersButton = MRT_ToggleFiltersButton;
2554
2596
  exports.MRT_ToggleGlobalFilterButton = MRT_ToggleGlobalFilterButton;
2597
+ exports.MRT_ToolbarInternalButtons = MRT_ToolbarInternalButtons;
2555
2598
  exports["default"] = MaterialReactTable;
2556
2599
  //# sourceMappingURL=index.js.map