material-react-table 2.0.4 → 2.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. package/dist/index.d.ts +4 -2
  2. package/dist/index.esm.js +572 -533
  3. package/dist/index.esm.js.map +1 -1
  4. package/dist/index.js +571 -532
  5. package/dist/index.js.map +1 -1
  6. package/dist/types/MaterialReactTable.d.ts +7 -0
  7. package/dist/types/aggregationFns.d.ts +11 -0
  8. package/dist/types/body/MRT_TableBody.d.ts +13 -0
  9. package/dist/types/body/MRT_TableBodyCell.d.ts +15 -0
  10. package/dist/types/body/MRT_TableBodyCellValue.d.ts +8 -0
  11. package/dist/types/body/MRT_TableBodyRow.d.ts +18 -0
  12. package/dist/types/body/MRT_TableBodyRowGrabHandle.d.ts +10 -0
  13. package/dist/types/body/MRT_TableBodyRowPinButton.d.ts +8 -0
  14. package/dist/types/body/MRT_TableDetailPanel.d.ts +13 -0
  15. package/dist/types/body/index.d.ts +7 -0
  16. package/dist/types/buttons/MRT_ColumnPinningButtons.d.ts +8 -0
  17. package/dist/types/buttons/MRT_CopyButton.d.ts +8 -0
  18. package/dist/types/buttons/MRT_EditActionButtons.d.ts +9 -0
  19. package/dist/types/buttons/MRT_ExpandAllButton.d.ts +7 -0
  20. package/dist/types/buttons/MRT_ExpandButton.d.ts +8 -0
  21. package/dist/types/buttons/MRT_GrabHandleButton.d.ts +12 -0
  22. package/dist/types/buttons/MRT_RowPinButton.d.ts +10 -0
  23. package/dist/types/buttons/MRT_ShowHideColumnsButton.d.ts +7 -0
  24. package/dist/types/buttons/MRT_ToggleDensePaddingButton.d.ts +7 -0
  25. package/dist/types/buttons/MRT_ToggleFiltersButton.d.ts +7 -0
  26. package/dist/types/buttons/MRT_ToggleFullScreenButton.d.ts +7 -0
  27. package/dist/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +7 -0
  28. package/dist/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +9 -0
  29. package/dist/types/buttons/index.d.ts +13 -0
  30. package/dist/types/column.utils.d.ts +127 -0
  31. package/dist/types/filterFns.d.ts +69 -0
  32. package/dist/types/footer/MRT_TableFooter.d.ts +11 -0
  33. package/dist/types/footer/MRT_TableFooterCell.d.ts +8 -0
  34. package/dist/types/footer/MRT_TableFooterRow.d.ts +12 -0
  35. package/dist/types/footer/index.d.ts +3 -0
  36. package/dist/types/head/MRT_TableHead.d.ts +11 -0
  37. package/dist/types/head/MRT_TableHeadCell.d.ts +8 -0
  38. package/dist/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +8 -0
  39. package/dist/types/head/MRT_TableHeadCellFilterContainer.d.ts +8 -0
  40. package/dist/types/head/MRT_TableHeadCellFilterLabel.d.ts +8 -0
  41. package/dist/types/head/MRT_TableHeadCellGrabHandle.d.ts +10 -0
  42. package/dist/types/head/MRT_TableHeadCellResizeHandle.d.ts +8 -0
  43. package/dist/types/head/MRT_TableHeadCellSortLabel.d.ts +8 -0
  44. package/dist/types/head/MRT_TableHeadRow.d.ts +12 -0
  45. package/dist/types/head/index.d.ts +9 -0
  46. package/dist/types/hooks/index.d.ts +4 -0
  47. package/dist/types/hooks/useMRT_DisplayColumns.d.ts +9 -0
  48. package/dist/types/hooks/useMRT_Effects.d.ts +2 -0
  49. package/dist/types/hooks/useMRT_TableInstance.d.ts +2 -0
  50. package/dist/types/hooks/useMRT_TableOptions.d.ts +22 -0
  51. package/dist/types/icons.d.ts +36 -0
  52. package/dist/types/index.d.ts +18 -0
  53. package/dist/types/inputs/MRT_EditCellTextField.d.ts +8 -0
  54. package/dist/types/inputs/MRT_FilterCheckbox.d.ts +8 -0
  55. package/dist/types/inputs/MRT_FilterRangeFields.d.ts +8 -0
  56. package/dist/types/inputs/MRT_FilterRangeSlider.d.ts +8 -0
  57. package/dist/types/inputs/MRT_FilterTextField.d.ts +9 -0
  58. package/dist/types/inputs/MRT_GlobalFilterTextField.d.ts +7 -0
  59. package/dist/types/inputs/MRT_SelectCheckbox.d.ts +9 -0
  60. package/dist/types/inputs/index.d.ts +7 -0
  61. package/dist/types/locales/am.d.ts +2 -0
  62. package/dist/types/locales/ar.d.ts +2 -0
  63. package/dist/types/locales/az.d.ts +2 -0
  64. package/dist/types/locales/bg.d.ts +2 -0
  65. package/dist/types/locales/cs.d.ts +2 -0
  66. package/dist/types/locales/da.d.ts +2 -0
  67. package/dist/types/locales/de.d.ts +2 -0
  68. package/dist/types/locales/en.d.ts +2 -0
  69. package/dist/types/locales/es.d.ts +2 -0
  70. package/dist/types/locales/et.d.ts +2 -0
  71. package/dist/types/locales/fa.d.ts +2 -0
  72. package/dist/types/locales/fi.d.ts +2 -0
  73. package/dist/types/locales/fr.d.ts +2 -0
  74. package/dist/types/locales/he.d.ts +2 -0
  75. package/dist/types/locales/hu.d.ts +2 -0
  76. package/dist/types/locales/hy.d.ts +2 -0
  77. package/dist/types/locales/id.d.ts +2 -0
  78. package/dist/types/locales/it.d.ts +2 -0
  79. package/dist/types/locales/ja.d.ts +2 -0
  80. package/dist/types/locales/ko.d.ts +2 -0
  81. package/dist/types/locales/nl.d.ts +2 -0
  82. package/dist/types/locales/no.d.ts +2 -0
  83. package/dist/types/locales/np.d.ts +2 -0
  84. package/dist/types/locales/pl.d.ts +2 -0
  85. package/dist/types/locales/pt-BR.d.ts +2 -0
  86. package/dist/types/locales/pt.d.ts +2 -0
  87. package/dist/types/locales/ro.d.ts +2 -0
  88. package/dist/types/locales/ru.d.ts +2 -0
  89. package/dist/types/locales/sk.d.ts +2 -0
  90. package/dist/types/locales/sr-Cyrl-RS.d.ts +2 -0
  91. package/dist/types/locales/sr-Latn-RS.d.ts +2 -0
  92. package/dist/types/locales/sv.d.ts +2 -0
  93. package/dist/types/locales/tr.d.ts +2 -0
  94. package/dist/types/locales/uk.d.ts +2 -0
  95. package/dist/types/locales/vi.d.ts +2 -0
  96. package/dist/types/locales/zh-Hans.d.ts +2 -0
  97. package/dist/types/locales/zh-Hant.d.ts +2 -0
  98. package/dist/types/menus/MRT_ColumnActionMenu.d.ts +20 -0
  99. package/dist/types/menus/MRT_FilterOptionMenu.d.ts +13 -0
  100. package/dist/types/menus/MRT_RowActionMenu.d.ts +12 -0
  101. package/dist/types/menus/MRT_ShowHideColumnsMenu.d.ts +10 -0
  102. package/dist/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +12 -0
  103. package/dist/types/menus/index.d.ts +5 -0
  104. package/dist/types/modals/MRT_EditRowModal.d.ts +8 -0
  105. package/dist/types/modals/index.d.ts +1 -0
  106. package/dist/types/sortingFns.d.ts +12 -0
  107. package/dist/types/style.utils.d.ts +32 -0
  108. package/dist/types/table/MRT_Table.d.ts +7 -0
  109. package/dist/types/table/MRT_TableContainer.d.ts +7 -0
  110. package/dist/types/table/MRT_TableLoadingOverlay.d.ts +7 -0
  111. package/dist/types/table/MRT_TablePaper.d.ts +7 -0
  112. package/dist/types/table/index.d.ts +5 -0
  113. package/dist/types/toolbar/MRT_BottomToolbar.d.ts +7 -0
  114. package/dist/types/toolbar/MRT_LinearProgressBar.d.ts +8 -0
  115. package/dist/types/toolbar/MRT_TablePagination.d.ts +15 -0
  116. package/dist/types/toolbar/MRT_ToolbarAlertBanner.d.ts +8 -0
  117. package/dist/types/toolbar/MRT_ToolbarDropZone.d.ts +7 -0
  118. package/dist/types/toolbar/MRT_ToolbarInternalButtons.d.ts +7 -0
  119. package/dist/types/toolbar/MRT_TopToolbar.d.ts +6 -0
  120. package/dist/types/toolbar/index.d.ts +7 -0
  121. package/dist/types/types.d.ts +854 -0
  122. package/dist/types/useMaterialReactTable.d.ts +2 -0
  123. package/package.json +22 -22
  124. package/src/body/MRT_TableBody.tsx +18 -23
  125. package/src/body/MRT_TableBodyCell.tsx +17 -15
  126. package/src/body/MRT_TableBodyCellValue.tsx +10 -10
  127. package/src/body/MRT_TableBodyRow.tsx +13 -13
  128. package/src/buttons/MRT_RowPinButton.tsx +2 -2
  129. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +2 -2
  130. package/src/footer/MRT_TableFooterCell.tsx +2 -2
  131. package/src/head/MRT_TableHeadCell.tsx +21 -19
  132. package/src/head/MRT_TableHeadCellResizeHandle.tsx +4 -3
  133. package/src/head/MRT_TableHeadCellSortLabel.tsx +15 -9
  134. package/src/hooks/useMRT_DisplayColumns.tsx +172 -125
  135. package/src/inputs/MRT_FilterCheckbox.tsx +2 -2
  136. package/src/inputs/MRT_FilterTextField.tsx +16 -16
  137. package/src/inputs/MRT_GlobalFilterTextField.tsx +10 -10
  138. package/src/inputs/MRT_SelectCheckbox.tsx +2 -2
  139. package/src/locales/he.ts +94 -0
  140. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +2 -2
  141. package/src/style.utils.ts +2 -2
  142. package/src/toolbar/MRT_TablePagination.tsx +9 -4
  143. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +6 -6
  144. package/src/types.ts +4 -2
package/dist/index.esm.js CHANGED
@@ -11,7 +11,7 @@ import { lighten, darken, alpha, useTheme } from '@mui/material/styles';
11
11
  import Skeleton from '@mui/material/Skeleton';
12
12
  import TableCell from '@mui/material/TableCell';
13
13
  import Box from '@mui/material/Box';
14
- import { flexRender as flexRender$1, createRow as createRow$1, sortingFns, aggregationFns, filterFns, useReactTable, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel } from '@tanstack/react-table';
14
+ import { flexRender as flexRender$1, createRow as createRow$1, sortingFns, useReactTable, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, aggregationFns, filterFns } from '@tanstack/react-table';
15
15
  import highlightWords from 'highlight-words';
16
16
  import IconButton from '@mui/material/IconButton';
17
17
  import Tooltip from '@mui/material/Tooltip';
@@ -428,7 +428,7 @@ const MRT_TableBodyCellValue = ({ cell, table, }) => {
428
428
  allowedTypes.includes(typeof renderedCellValue) &&
429
429
  ((filterValue &&
430
430
  allowedTypes.includes(typeof filterValue) &&
431
- columnDef.filterVariant === 'text') ||
431
+ ['autocomplete', 'text'].includes(columnDef.filterVariant)) ||
432
432
  (globalFilter &&
433
433
  allowedTypes.includes(typeof globalFilter) &&
434
434
  column.getCanGlobalFilter()))) {
@@ -688,7 +688,8 @@ const MRT_TableBodyCell = (_a) => {
688
688
  hoveredRow,
689
689
  rowIndex,
690
690
  ]);
691
- const isEditable = parseFromValuesOrFunc(enableEditing, row) &&
691
+ const isEditable = !cell.getIsPlaceholder() &&
692
+ parseFromValuesOrFunc(enableEditing, row) &&
692
693
  parseFromValuesOrFunc(columnDef.enableEditing, row) !== false;
693
694
  const isEditing = isEditable &&
694
695
  !['custom', 'modal'].includes(editDisplayMode) &&
@@ -727,7 +728,8 @@ const MRT_TableBodyCell = (_a) => {
727
728
  measureElement === null || measureElement === void 0 ? void 0 : measureElement(node);
728
729
  }
729
730
  } }, tableCellProps, { onDoubleClick: handleDoubleClick, onDragEnter: handleDragEnter, sx: (theme) => (Object.assign(Object.assign({ '&:hover': {
730
- outline: ['cell', 'table'].includes(editDisplayMode !== null && editDisplayMode !== void 0 ? editDisplayMode : '') && isEditable
731
+ outline: (editDisplayMode === 'cell' && isEditable) ||
732
+ (editDisplayMode === 'table' && (isCreating || isEditing))
731
733
  ? `1px solid ${theme.palette.grey[500]}`
732
734
  : undefined,
733
735
  outlineOffset: '-1px',
@@ -987,19 +989,18 @@ const MRT_TableBody = (_a) => {
987
989
  const virtualRows = rowVirtualizer
988
990
  ? rowVirtualizer.getVirtualItems()
989
991
  : undefined;
992
+ const commonRowProps = {
993
+ columnVirtualizer,
994
+ numRows: rows.length,
995
+ table,
996
+ virtualColumns,
997
+ virtualPaddingLeft,
998
+ virtualPaddingRight,
999
+ };
990
1000
  return (jsxs(Fragment, { children: [!(rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('sticky')) &&
991
1001
  getIsSomeRowsPinned('top') && (jsx(TableBody, Object.assign({}, tableBodyProps, { sx: (theme) => (Object.assign({ display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined, position: 'sticky', top: tableHeadHeight - 1, zIndex: 1 }, parseFromValuesOrFunc(tableBodyProps === null || tableBodyProps === void 0 ? void 0 : tableBodyProps.sx, theme))), children: getTopRows().map((row, rowIndex) => {
992
- const props = {
993
- columnVirtualizer,
994
- measureElement: rowVirtualizer === null || rowVirtualizer === void 0 ? void 0 : rowVirtualizer.measureElement,
995
- numRows: rows.length,
996
- row,
997
- rowIndex,
998
- table,
999
- virtualColumns,
1000
- virtualPaddingLeft,
1001
- virtualPaddingRight,
1002
- };
1002
+ const props = Object.assign(Object.assign({}, commonRowProps), { row,
1003
+ rowIndex });
1003
1004
  return memoMode === 'rows' ? (jsx(Memo_MRT_TableBodyRow, Object.assign({}, props), row.id)) : (jsx(MRT_TableBodyRow, Object.assign({}, props), row.id));
1004
1005
  }) }))), jsxs(TableBody, Object.assign({}, tableBodyProps, { sx: (theme) => (Object.assign({ display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined, height: rowVirtualizer
1005
1006
  ? `${rowVirtualizer.getTotalSize()}px`
@@ -1020,36 +1021,16 @@ const MRT_TableBody = (_a) => {
1020
1021
  const row = rowVirtualizer
1021
1022
  ? rows[rowOrVirtualRow.index]
1022
1023
  : rowOrVirtualRow;
1023
- const props = {
1024
- columnVirtualizer,
1025
- measureElement: rowVirtualizer === null || rowVirtualizer === void 0 ? void 0 : rowVirtualizer.measureElement,
1026
- numRows: rows.length,
1027
- pinnedRowIds,
1028
- row,
1029
- rowIndex: rowVirtualizer ? rowOrVirtualRow.index : rowIndex,
1030
- table,
1031
- virtualColumns,
1032
- virtualPaddingLeft,
1033
- virtualPaddingRight,
1034
- virtualRow: rowVirtualizer
1024
+ const props = Object.assign(Object.assign({}, commonRowProps), { measureElement: rowVirtualizer === null || rowVirtualizer === void 0 ? void 0 : rowVirtualizer.measureElement, pinnedRowIds,
1025
+ row, rowIndex: rowVirtualizer ? rowOrVirtualRow.index : rowIndex, virtualRow: rowVirtualizer
1035
1026
  ? rowOrVirtualRow
1036
- : undefined,
1037
- };
1038
- return memoMode === 'rows' ? (jsx(Memo_MRT_TableBodyRow, Object.assign({}, props), row.id)) : (jsx(MRT_TableBodyRow, Object.assign({}, props), row.id));
1027
+ : undefined });
1028
+ return memoMode === 'rows' ? (jsx(Memo_MRT_TableBodyRow, Object.assign({}, props), `${row.id}${row.index}`)) : (jsx(MRT_TableBodyRow, Object.assign({}, props), `${row.id}${row.index}`));
1039
1029
  }) })))] })), !(rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('sticky')) &&
1040
1030
  getIsSomeRowsPinned('bottom') && (jsx(TableBody, Object.assign({}, tableBodyProps, { sx: (theme) => (Object.assign({ bottom: tableFooterHeight - 1, display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined, position: 'sticky', zIndex: 1 }, parseFromValuesOrFunc(tableBodyProps === null || tableBodyProps === void 0 ? void 0 : tableBodyProps.sx, theme))), children: getBottomRows().map((row, rowIndex) => {
1041
- const props = {
1042
- columnVirtualizer,
1043
- measureElement: rowVirtualizer === null || rowVirtualizer === void 0 ? void 0 : rowVirtualizer.measureElement,
1044
- numRows: rows.length,
1045
- row,
1046
- rowIndex,
1047
- table,
1048
- virtualColumns,
1049
- virtualPaddingLeft,
1050
- virtualPaddingRight,
1051
- };
1052
- return memoMode === 'rows' ? (jsx(Memo_MRT_TableBodyRow, Object.assign({}, props), row.id)) : (jsx(MRT_TableBodyRow, Object.assign({}, props), row.id));
1031
+ const props = Object.assign(Object.assign({}, commonRowProps), { row,
1032
+ rowIndex });
1033
+ return memoMode === 'rows' ? (jsx(Memo_MRT_TableBodyRow, Object.assign({}, props), `${row.id}`)) : (jsx(MRT_TableBodyRow, Object.assign({}, props), row.id));
1053
1034
  }) })))] }));
1054
1035
  };
1055
1036
  const Memo_MRT_TableBody = memo(MRT_TableBody, (prev, next) => prev.table.options.data === next.table.options.data);
@@ -1670,7 +1651,7 @@ const MRT_FilterTextField = (_a) => {
1670
1651
  localization[`filter${((_l = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt(0)) === null || _l === void 0 ? void 0 : _l.toUpperCase()) +
1671
1652
  (currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.slice(1))}`]) })) : null, inputProps: {
1672
1653
  'aria-label': filterPlaceholder,
1673
- autoComplete: 'new-password',
1654
+ autoComplete: 'new-password', // disable autocomplete and autofill
1674
1655
  disabled: !!filterChipLabel,
1675
1656
  sx: {
1676
1657
  textOverflow: 'ellipsis',
@@ -1924,14 +1905,14 @@ const MRT_TableHeadCellResizeHandle = (_a) => {
1924
1905
  },
1925
1906
  cursor: 'col-resize',
1926
1907
  mr: density === 'compact'
1927
- ? '-12px'
1908
+ ? '-8px'
1928
1909
  : density === 'comfortable'
1929
- ? '-20px'
1930
- : '-28px',
1910
+ ? '-16px'
1911
+ : '-24px',
1931
1912
  position: 'absolute',
1932
1913
  px: '4px',
1933
1914
  right: column.columnDef.columnDefType === 'display' ? '4px' : '0',
1934
- }), children: jsx(Divider, { className: "Mui-TableHeadCell-ResizeHandle-Divider", flexItem: true, orientation: "vertical", sx: (theme) => (Object.assign({ borderRadius: '2px', borderWidth: '2px', height: '24px', touchAction: 'none', transition: column.getIsResizing()
1915
+ }), children: jsx(Divider, { className: "Mui-TableHeadCell-ResizeHandle-Divider", flexItem: true, orientation: "vertical", sx: (theme) => (Object.assign({ borderRadius: '2px', borderWidth: '2px', height: '24px', touchAction: 'none', transform: 'translateX(4px)', transition: column.getIsResizing()
1935
1916
  ? undefined
1936
1917
  : 'all 150ms ease-in-out', userSelect: 'none', zIndex: 4 }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))) }) }));
1937
1918
  };
@@ -1952,11 +1933,14 @@ const MRT_TableHeadCellSortLabel = (_a) => {
1952
1933
  : column.getNextSortingOrder() === 'desc'
1953
1934
  ? localization.sortByColumnDesc.replace('{column}', columnDef.header)
1954
1935
  : localization.sortByColumnAsc.replace('{column}', columnDef.header);
1936
+ const direction = isSorted
1937
+ ? column.getIsSorted()
1938
+ : undefined;
1955
1939
  return (jsx(Tooltip, { placement: "top", title: sortTooltip, children: jsx(Badge, { badgeContent: sorting.length > 1 ? column.getSortIndex() + 1 : 0, overlap: "circular", children: jsx(TableSortLabel, Object.assign({ IconComponent: !isSorted
1956
- ? (props) => (jsx(SyncAltIcon, Object.assign({}, props, { style: {
1940
+ ? (props) => (jsx(SyncAltIcon, Object.assign({}, props, { direction: direction, style: {
1957
1941
  transform: 'rotate(-90deg) scaleX(0.9) translateX(-1px)',
1958
1942
  } })))
1959
- : ArrowDownwardIcon, active: true, "aria-label": sortTooltip, direction: isSorted ? column.getIsSorted() : undefined, onClick: (e) => {
1943
+ : ArrowDownwardIcon, active: true, "aria-label": sortTooltip, direction: direction, onClick: (e) => {
1960
1944
  var _a;
1961
1945
  e.stopPropagation();
1962
1946
  (_a = header.column.getToggleSortingHandler()) === null || _a === void 0 ? void 0 : _a(e);
@@ -2105,7 +2089,9 @@ const MRT_TableHeadCell = (_a) => {
2105
2089
  whiteSpace: ((_h = (_g = columnDef.header) === null || _g === void 0 ? void 0 : _g.length) !== null && _h !== void 0 ? _h : 0) < 20
2106
2090
  ? 'nowrap'
2107
2091
  : 'normal',
2108
- }, title: columnDefType === 'data' ? columnDef.header : undefined, children: headerElement }), column.getCanFilter() && (jsx(MRT_TableHeadCellFilterLabel, { header: header, table: table })), column.getCanSort() && (jsx(MRT_TableHeadCellSortLabel, { header: header, table: table }))] }), columnDefType !== 'group' && (jsxs(Box, { className: "Mui-TableHeadCell-Content-Actions", sx: { whiteSpace: 'nowrap' }, children: [showDragHandle && (jsx(MRT_TableHeadCellGrabHandle, { column: column, table: table, tableHeadCellRef: {
2092
+ }, title: columnDefType === 'data' ? columnDef.header : undefined, children: headerElement }), column.getCanFilter() && (jsx(MRT_TableHeadCellFilterLabel, { header: header, table: table })), column.getCanSort() && (jsx(MRT_TableHeadCellSortLabel, { header: header, table: table }))] }), columnDefType !== 'group' && (jsxs(Box, { className: "Mui-TableHeadCell-Content-Actions", sx: {
2093
+ whiteSpace: 'nowrap',
2094
+ }, children: [showDragHandle && (jsx(MRT_TableHeadCellGrabHandle, { column: column, table: table, tableHeadCellRef: {
2109
2095
  current: tableHeadCellRefs.current[column.id],
2110
2096
  } })), showColumnActions && (jsx(MRT_TableHeadCellColumnActionsButton, { header: header, table: table }))] })), column.getCanResize() && (jsx(MRT_TableHeadCellResizeHandle, { header: header, table: table }))] })), columnFilterDisplayMode === 'subheader' && column.getCanFilter() && (jsx(MRT_TableHeadCellFilterContainer, { header: header, table: table }))] })));
2111
2097
  };
@@ -2154,8 +2140,8 @@ const MRT_TablePagination = (_a) => {
2154
2140
  const showFirstLastPageButtons = numberOfPages > 2;
2155
2141
  const firstRowIndex = pageIndex * pageSize;
2156
2142
  const lastRowIndex = Math.min(pageIndex * pageSize + pageSize, totalRowCount);
2157
- const _b = paginationProps !== null && paginationProps !== void 0 ? paginationProps : {}, { SelectProps, rowsPerPageOptions = defaultRowsPerPage, showFirstButton = showFirstLastPageButtons, showLastButton = showFirstLastPageButtons, showRowsPerPage = true } = _b, _rest = __rest(_b, ["SelectProps", "rowsPerPageOptions", "showFirstButton", "showLastButton", "showRowsPerPage"]);
2158
- return (jsxs(Box, { sx: {
2143
+ const _b = paginationProps !== null && paginationProps !== void 0 ? paginationProps : {}, { SelectProps, disabled = false, rowsPerPageOptions = defaultRowsPerPage, showFirstButton = showFirstLastPageButtons, showLastButton = showFirstLastPageButtons, showRowsPerPage = true } = _b, _rest = __rest(_b, ["SelectProps", "disabled", "rowsPerPageOptions", "showFirstButton", "showLastButton", "showRowsPerPage"]);
2144
+ return (jsxs(Box, { className: "MuiTablePagination-root", sx: {
2159
2145
  alignItems: 'center',
2160
2146
  display: 'flex',
2161
2147
  flexWrap: 'wrap',
@@ -2171,17 +2157,17 @@ const MRT_TablePagination = (_a) => {
2171
2157
  px: '8px',
2172
2158
  py: '12px',
2173
2159
  zIndex: 2,
2174
- }, children: [showRowsPerPage && (jsxs(Box, { sx: { alignItems: 'center', display: 'flex', gap: '8px' }, children: [jsx(InputLabel, { htmlFor: "mrt-rows-per-page", sx: { mb: 0 }, children: localization.rowsPerPage }), jsx(Select, Object.assign({ disableUnderline: true, id: "mrt-rows-per-page", inputProps: { 'aria-label': localization.rowsPerPage }, label: localization.rowsPerPage, onChange: (event) => setPageSize(+event.target.value), sx: { mb: 0 }, value: pageSize, variant: "standard" }, SelectProps, { children: rowsPerPageOptions.map((option) => {
2160
+ }, children: [showRowsPerPage && (jsxs(Box, { sx: { alignItems: 'center', display: 'flex', gap: '8px' }, children: [jsx(InputLabel, { htmlFor: "mrt-rows-per-page", sx: { mb: 0 }, children: localization.rowsPerPage }), jsx(Select, Object.assign({ disableUnderline: true, disabled: disabled, id: "mrt-rows-per-page", inputProps: { 'aria-label': localization.rowsPerPage }, label: localization.rowsPerPage, onChange: (event) => setPageSize(+event.target.value), sx: { mb: 0 }, value: pageSize, variant: "standard" }, SelectProps, { children: rowsPerPageOptions.map((option) => {
2175
2161
  var _a;
2176
2162
  const value = typeof option !== 'number' ? option.value : option;
2177
2163
  const label = typeof option !== 'number' ? option.label : `${option}`;
2178
2164
  return ((_a = SelectProps === null || SelectProps === void 0 ? void 0 : SelectProps.children) !== null && _a !== void 0 ? _a : ((SelectProps === null || SelectProps === void 0 ? void 0 : SelectProps.native) ? (jsx("option", { value: value, children: label }, value)) : (jsx(MenuItem, { sx: { m: 0 }, value: value, children: label }, value))));
2179
- }) }))] })), paginationDisplayMode === 'pages' ? (jsx(Pagination, Object.assign({ count: numberOfPages, onChange: (_e, newPageIndex) => setPageIndex(newPageIndex - 1), page: pageIndex + 1, renderItem: (item) => (jsx(PaginationItem, Object.assign({ slots: {
2165
+ }) }))] })), paginationDisplayMode === 'pages' ? (jsx(Pagination, Object.assign({ count: numberOfPages, disabled: disabled, onChange: (_e, newPageIndex) => setPageIndex(newPageIndex - 1), page: pageIndex + 1, renderItem: (item) => (jsx(PaginationItem, Object.assign({ slots: {
2180
2166
  first: FirstPageIcon,
2181
2167
  last: LastPageIcon,
2182
2168
  next: ChevronRightIcon,
2183
2169
  previous: ChevronLeftIcon,
2184
- } }, item))), showFirstButton: showFirstButton, showLastButton: showLastButton }, _rest))) : paginationDisplayMode === 'default' ? (jsxs(Fragment, { children: [jsx(Typography, { align: "center", component: "span", sx: { m: '0 4px', minWidth: '8ch' }, variant: "body2", children: `${lastRowIndex === 0 ? 0 : (firstRowIndex + 1).toLocaleString()}-${lastRowIndex.toLocaleString()} ${localization.of} ${totalRowCount.toLocaleString()}` }), jsxs(Box, { gap: "xs", children: [showFirstButton && (jsx(IconButton, { "aria-label": localization.goToFirstPage, disabled: pageIndex <= 0, onClick: () => setPageIndex(0), size: "small", children: jsx(FirstPageIcon, {}) })), jsx(IconButton, { "aria-label": localization.goToPreviousPage, disabled: pageIndex <= 0, onClick: () => setPageIndex(pageIndex - 1), size: "small", children: jsx(ChevronLeftIcon, {}) }), jsx(IconButton, { "aria-label": localization.goToNextPage, disabled: lastRowIndex >= totalRowCount, onClick: () => setPageIndex(pageIndex + 1), size: "small", children: jsx(ChevronRightIcon, {}) }), showLastButton && (jsx(IconButton, { "aria-label": localization.goToLastPage, disabled: lastRowIndex >= totalRowCount, onClick: () => setPageIndex(numberOfPages - 1), size: "small", children: jsx(LastPageIcon, {}) }))] })] })) : null] }));
2170
+ } }, item))), showFirstButton: showFirstButton, showLastButton: showLastButton }, _rest))) : paginationDisplayMode === 'default' ? (jsxs(Fragment, { children: [jsx(Typography, { align: "center", component: "span", sx: { m: '0 4px', minWidth: '8ch' }, variant: "body2", children: `${lastRowIndex === 0 ? 0 : (firstRowIndex + 1).toLocaleString()}-${lastRowIndex.toLocaleString()} ${localization.of} ${totalRowCount.toLocaleString()}` }), jsxs(Box, { gap: "xs", children: [showFirstButton && (jsx(IconButton, { "aria-label": localization.goToFirstPage, disabled: pageIndex <= 0 || disabled, onClick: () => setPageIndex(0), size: "small", children: jsx(FirstPageIcon, {}) })), jsx(IconButton, { "aria-label": localization.goToPreviousPage, disabled: pageIndex <= 0 || disabled, onClick: () => setPageIndex(pageIndex - 1), size: "small", children: jsx(ChevronLeftIcon, {}) }), jsx(IconButton, { "aria-label": localization.goToNextPage, disabled: lastRowIndex >= totalRowCount || disabled, onClick: () => setPageIndex(pageIndex + 1), size: "small", children: jsx(ChevronRightIcon, {}) }), showLastButton && (jsx(IconButton, { "aria-label": localization.goToLastPage, disabled: lastRowIndex >= totalRowCount || disabled, onClick: () => setPageIndex(numberOfPages - 1), size: "small", children: jsx(LastPageIcon, {}) }))] })] })) : null] }));
2185
2171
  };
2186
2172
 
2187
2173
  const MRT_GlobalFilterTextField = (_a) => {
@@ -2221,10 +2207,10 @@ const MRT_GlobalFilterTextField = (_a) => {
2221
2207
  }
2222
2208
  isMounted.current = true;
2223
2209
  }, [globalFilter]);
2224
- return (jsxs(Collapse, { in: showGlobalFilter, mountOnEnter: true, orientation: "horizontal", unmountOnExit: true, children: [jsx(TextField, Object.assign({ InputProps: Object.assign(Object.assign({ endAdornment: (jsx(InputAdornment, { position: "end", children: jsx(Tooltip, { title: (_b = localization.clearSearch) !== null && _b !== void 0 ? _b : '', children: jsx("span", { children: jsx(IconButton, { "aria-label": localization.clearSearch, disabled: !(searchValue === null || searchValue === void 0 ? void 0 : searchValue.length), onClick: handleClear, size: "small", children: jsx(CloseIcon, {}) }) }) }) })), startAdornment: enableGlobalFilterModes ? (jsx(InputAdornment, { position: "start", children: jsx(Tooltip, { title: localization.changeSearchMode, children: jsx(IconButton, { "aria-label": localization.changeSearchMode, onClick: handleGlobalFilterMenuOpen, size: "small", sx: { height: '1.75rem', width: '1.75rem' }, children: jsx(SearchIcon, {}) }) }) })) : (jsx(SearchIcon, { style: { marginRight: '4px' } })) }, textFieldProps.InputProps), { sx: (theme) => {
2210
+ return (jsxs(Collapse, { in: showGlobalFilter, mountOnEnter: true, orientation: "horizontal", unmountOnExit: true, children: [jsx(TextField, Object.assign({ inputProps: Object.assign({ autoComplete: 'new-password' }, textFieldProps.inputProps), onChange: handleChange, placeholder: localization.search, size: "small", value: searchValue !== null && searchValue !== void 0 ? searchValue : '', variant: "outlined" }, textFieldProps, { InputProps: Object.assign(Object.assign({ endAdornment: (jsx(InputAdornment, { position: "end", children: jsx(Tooltip, { title: (_b = localization.clearSearch) !== null && _b !== void 0 ? _b : '', children: jsx("span", { children: jsx(IconButton, { "aria-label": localization.clearSearch, disabled: !(searchValue === null || searchValue === void 0 ? void 0 : searchValue.length), onClick: handleClear, size: "small", children: jsx(CloseIcon, {}) }) }) }) })), startAdornment: enableGlobalFilterModes ? (jsx(InputAdornment, { position: "start", children: jsx(Tooltip, { title: localization.changeSearchMode, children: jsx(IconButton, { "aria-label": localization.changeSearchMode, onClick: handleGlobalFilterMenuOpen, size: "small", sx: { height: '1.75rem', width: '1.75rem' }, children: jsx(SearchIcon, {}) }) }) })) : (jsx(SearchIcon, { style: { marginRight: '4px' } })) }, textFieldProps.InputProps), { sx: (theme) => {
2225
2211
  var _a;
2226
2212
  return (Object.assign({ mb: 0 }, parseFromValuesOrFunc((_a = textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.InputProps) === null || _a === void 0 ? void 0 : _a.sx, theme)));
2227
- } }), inputProps: Object.assign({ autoComplete: 'new-password' }, textFieldProps.inputProps), onChange: handleChange, placeholder: localization.search, size: "small", value: searchValue !== null && searchValue !== void 0 ? searchValue : '', variant: "outlined" }, textFieldProps, { inputRef: (inputRef) => {
2213
+ } }), inputRef: (inputRef) => {
2228
2214
  searchInputRef.current = inputRef;
2229
2215
  if (textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.inputRef) {
2230
2216
  textFieldProps.inputRef = inputRef;
@@ -2997,487 +2983,231 @@ const MRT_ToggleRowActionMenuButton = (_a) => {
2997
2983
  ['modal', 'row'].includes(editDisplayMode) ? (jsx(Tooltip, { placement: "right", title: localization.edit, children: jsx(IconButton, Object.assign({ "aria-label": localization.edit, onClick: handleStartEditMode, sx: commonIconButtonStyles }, rest, { children: jsx(EditIcon, {}) })) })) : renderRowActionMenuItems ? (jsxs(Fragment, { children: [jsx(Tooltip, { enterDelay: 1000, enterNextDelay: 1000, title: localization.rowActions, children: jsx(IconButton, Object.assign({ "aria-label": localization.rowActions, onClick: handleOpenRowActionMenu, size: "small", sx: commonIconButtonStyles }, rest, { children: jsx(MoreHorizIcon, {}) })) }), jsx(MRT_RowActionMenu, { anchorEl: anchorEl, handleEdit: handleStartEditMode, row: row, setAnchorEl: setAnchorEl, table: table })] })) : null }));
2998
2984
  };
2999
2985
 
3000
- const MRT_AggregationFns = Object.assign({}, aggregationFns);
3001
-
3002
- const fuzzy = (row, columnId, filterValue, addMeta) => {
3003
- const itemRank = rankItem(row.getValue(columnId), filterValue, {
3004
- threshold: rankings.MATCHES,
3005
- });
3006
- addMeta(itemRank);
3007
- return itemRank.passed;
2986
+ const useMRT_DisplayColumns = (params) => {
2987
+ var _a, _b, _c, _d;
2988
+ const { columnOrder, creatingRow, grouping, tableOptions } = params;
2989
+ const order = (_b = (_a = tableOptions.state) === null || _a === void 0 ? void 0 : _a.columnOrder) !== null && _b !== void 0 ? _b : columnOrder;
2990
+ return useMemo(() => [
2991
+ makeRowPinColumn,
2992
+ makeRowDragColumn,
2993
+ makeRowActionsColumn,
2994
+ makeRowExpandColumn,
2995
+ makeRowSelectColumn,
2996
+ makeRowNumbersColumn,
2997
+ makeSpacerColumn,
2998
+ ]
2999
+ .map((makeCol) => makeCol(params, order))
3000
+ .filter(Boolean), [
3001
+ columnOrder,
3002
+ creatingRow,
3003
+ grouping,
3004
+ tableOptions.displayColumnDefOptions,
3005
+ tableOptions.editDisplayMode,
3006
+ tableOptions.enableColumnDragging,
3007
+ tableOptions.enableColumnFilterModes,
3008
+ tableOptions.enableColumnOrdering,
3009
+ tableOptions.enableEditing,
3010
+ tableOptions.enableExpandAll,
3011
+ tableOptions.enableExpanding,
3012
+ tableOptions.enableGrouping,
3013
+ tableOptions.enableRowActions,
3014
+ tableOptions.enableRowDragging,
3015
+ tableOptions.enableRowNumbers,
3016
+ tableOptions.enableRowOrdering,
3017
+ tableOptions.enableRowSelection,
3018
+ tableOptions.enableSelectAll,
3019
+ tableOptions.localization,
3020
+ tableOptions.positionActionsColumn,
3021
+ tableOptions.renderDetailPanel,
3022
+ tableOptions.renderRowActionMenuItems,
3023
+ tableOptions.renderRowActions,
3024
+ (_c = tableOptions.state) === null || _c === void 0 ? void 0 : _c.columnOrder,
3025
+ (_d = tableOptions.state) === null || _d === void 0 ? void 0 : _d.grouping,
3026
+ ]);
3008
3027
  };
3009
- fuzzy.autoRemove = (val) => !val;
3010
- const contains = (row, id, filterValue) => row
3011
- .getValue(id)
3012
- .toString()
3013
- .toLowerCase()
3014
- .trim()
3015
- .includes(filterValue.toString().toLowerCase().trim());
3016
- contains.autoRemove = (val) => !val;
3017
- const startsWith = (row, id, filterValue) => row
3018
- .getValue(id)
3019
- .toString()
3020
- .toLowerCase()
3021
- .trim()
3022
- .startsWith(filterValue.toString().toLowerCase().trim());
3023
- startsWith.autoRemove = (val) => !val;
3024
- const endsWith = (row, id, filterValue) => row
3025
- .getValue(id)
3026
- .toString()
3027
- .toLowerCase()
3028
- .trim()
3029
- .endsWith(filterValue.toString().toLowerCase().trim());
3030
- endsWith.autoRemove = (val) => !val;
3031
- const equals = (row, id, filterValue) => row.getValue(id).toString().toLowerCase().trim() ===
3032
- (filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString().toLowerCase().trim());
3033
- equals.autoRemove = (val) => !val;
3034
- const notEquals = (row, id, filterValue) => row.getValue(id).toString().toLowerCase().trim() !==
3035
- filterValue.toString().toLowerCase().trim();
3036
- notEquals.autoRemove = (val) => !val;
3037
- const greaterThan = (row, id, filterValue) => !isNaN(+filterValue) && !isNaN(+row.getValue(id))
3038
- ? +row.getValue(id) > +filterValue
3039
- : row.getValue(id).toString().toLowerCase().trim() >
3040
- (filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString().toLowerCase().trim());
3041
- greaterThan.autoRemove = (val) => !val;
3042
- const greaterThanOrEqualTo = (row, id, filterValue) => equals(row, id, filterValue) || greaterThan(row, id, filterValue);
3043
- greaterThanOrEqualTo.autoRemove = (val) => !val;
3044
- const lessThan = (row, id, filterValue) => !isNaN(+filterValue) && !isNaN(+row.getValue(id))
3045
- ? +row.getValue(id) < +filterValue
3046
- : row.getValue(id).toString().toLowerCase().trim() <
3047
- (filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString().toLowerCase().trim());
3048
- lessThan.autoRemove = (val) => !val;
3049
- const lessThanOrEqualTo = (row, id, filterValue) => equals(row, id, filterValue) || lessThan(row, id, filterValue);
3050
- lessThanOrEqualTo.autoRemove = (val) => !val;
3051
- const between = (row, id, filterValues) => (['', undefined].includes(filterValues[0]) ||
3052
- greaterThan(row, id, filterValues[0])) &&
3053
- ((!isNaN(+filterValues[0]) &&
3054
- !isNaN(+filterValues[1]) &&
3055
- +filterValues[0] > +filterValues[1]) ||
3056
- ['', undefined].includes(filterValues[1]) ||
3057
- lessThan(row, id, filterValues[1]));
3058
- between.autoRemove = (val) => !val;
3059
- const betweenInclusive = (row, id, filterValues) => (['', undefined].includes(filterValues[0]) ||
3060
- greaterThanOrEqualTo(row, id, filterValues[0])) &&
3061
- ((!isNaN(+filterValues[0]) &&
3062
- !isNaN(+filterValues[1]) &&
3063
- +filterValues[0] > +filterValues[1]) ||
3064
- ['', undefined].includes(filterValues[1]) ||
3065
- lessThanOrEqualTo(row, id, filterValues[1]));
3066
- betweenInclusive.autoRemove = (val) => !val;
3067
- const empty = (row, id, _filterValue) => !row.getValue(id).toString().trim();
3068
- empty.autoRemove = (val) => !val;
3069
- const notEmpty = (row, id, _filterValue) => !!row.getValue(id).toString().trim();
3070
- notEmpty.autoRemove = (val) => !val;
3071
- const MRT_FilterFns = Object.assign(Object.assign({}, filterFns), { between,
3072
- betweenInclusive,
3073
- contains,
3074
- empty,
3075
- endsWith,
3076
- equals,
3077
- fuzzy,
3078
- greaterThan,
3079
- greaterThanOrEqualTo,
3080
- lessThan,
3081
- lessThanOrEqualTo,
3082
- notEmpty,
3083
- notEquals,
3084
- startsWith });
3028
+ function defaultDisplayColumnProps({ defaultDisplayColumn, displayColumnDefOptions, localization, }, id, header, size = 60) {
3029
+ return Object.assign(Object.assign(Object.assign(Object.assign({}, defaultDisplayColumn), { header: header ? localization[header] : '', size }), displayColumnDefOptions === null || displayColumnDefOptions === void 0 ? void 0 : displayColumnDefOptions[id]), { id });
3030
+ }
3031
+ function makeRowPinColumn({ tableOptions }, order) {
3032
+ const id = 'mrt-row-pin';
3033
+ if (order.includes(id)) {
3034
+ return Object.assign({ Cell: ({ row, table }) => (jsx(MRT_TableBodyRowPinButton, { row: row, table: table })) }, defaultDisplayColumnProps(tableOptions, id, 'pin'));
3035
+ }
3036
+ return null;
3037
+ }
3038
+ function makeRowDragColumn({ tableOptions }, order) {
3039
+ const id = 'mrt-row-drag';
3040
+ if (order.includes(id)) {
3041
+ return Object.assign({ Cell: ({ row, rowRef, table }) => (jsx(MRT_TableBodyRowGrabHandle, { row: row, rowRef: rowRef, table: table })) }, defaultDisplayColumnProps(tableOptions, id, 'move'));
3042
+ }
3043
+ return null;
3044
+ }
3045
+ function makeRowActionsColumn({ creatingRow, tableOptions }, order) {
3046
+ const id = 'mrt-row-actions';
3047
+ if (order.includes(id) ||
3048
+ (creatingRow && tableOptions.createDisplayMode === 'row')) {
3049
+ return Object.assign({ Cell: ({ cell, row, table }) => (jsx(MRT_ToggleRowActionMenuButton, { cell: cell, row: row, table: table })) }, defaultDisplayColumnProps(tableOptions, id, 'actions'));
3050
+ }
3051
+ return null;
3052
+ }
3053
+ function makeRowExpandColumn({ grouping, tableOptions }, order) {
3054
+ var _a, _b;
3055
+ const id = 'mrt-row-expand';
3056
+ if (order.includes(id) &&
3057
+ showExpandColumn(tableOptions, (_b = (_a = tableOptions.state) === null || _a === void 0 ? void 0 : _a.grouping) !== null && _b !== void 0 ? _b : grouping)) {
3058
+ return Object.assign({ Cell: ({ row, table }) => jsx(MRT_ExpandButton, { row: row, table: table }), Header: tableOptions.enableExpandAll
3059
+ ? ({ table }) => jsx(MRT_ExpandAllButton, { table: table })
3060
+ : undefined }, defaultDisplayColumnProps(tableOptions, id, 'expand'));
3061
+ }
3062
+ return null;
3063
+ }
3064
+ function makeRowSelectColumn({ tableOptions }, order) {
3065
+ const id = 'mrt-row-select';
3066
+ if (order.includes(id)) {
3067
+ return Object.assign({ Cell: ({ row, table }) => jsx(MRT_SelectCheckbox, { row: row, table: table }), Header: tableOptions.enableSelectAll && tableOptions.enableMultiRowSelection
3068
+ ? ({ table }) => jsx(MRT_SelectCheckbox, { selectAll: true, table: table })
3069
+ : undefined }, defaultDisplayColumnProps(tableOptions, id, 'select'));
3070
+ }
3071
+ return null;
3072
+ }
3073
+ function makeRowNumbersColumn({ tableOptions }, order) {
3074
+ const id = 'mrt-row-numbers';
3075
+ if (order.includes(id) || tableOptions.enableRowNumbers)
3076
+ return Object.assign({ Cell: ({ row }) => row.index + 1, Header: () => tableOptions.localization.rowNumber }, defaultDisplayColumnProps(tableOptions, id, 'rowNumbers'));
3077
+ return null;
3078
+ }
3079
+ const blankColProps = {
3080
+ children: null,
3081
+ sx: {
3082
+ flex: '1 0 auto',
3083
+ minWidth: 0,
3084
+ p: 0,
3085
+ width: 0,
3086
+ },
3087
+ };
3088
+ function makeSpacerColumn({ tableOptions }, order) {
3089
+ const id = 'mrt-row-spacer';
3090
+ if (order.includes(id)) {
3091
+ return Object.assign(Object.assign({}, defaultDisplayColumnProps(tableOptions, id, undefined, 0)), { muiTableBodyCellProps: blankColProps, muiTableFooterCellProps: blankColProps, muiTableHeadCellProps: blankColProps });
3092
+ }
3093
+ return null;
3094
+ }
3085
3095
 
3086
- const MRT_Default_Icons = {
3087
- ArrowDownwardIcon,
3088
- ArrowRightIcon,
3089
- CancelIcon,
3090
- ChevronLeftIcon,
3091
- ChevronRightIcon,
3092
- ClearAllIcon,
3093
- CloseIcon,
3094
- DensityLargeIcon,
3095
- DensityMediumIcon,
3096
- DensitySmallIcon,
3097
- DragHandleIcon,
3098
- DynamicFeedIcon,
3099
- EditIcon,
3100
- ExpandMoreIcon,
3101
- FilterAltIcon,
3102
- FilterListIcon,
3103
- FilterListOffIcon,
3104
- FirstPageIcon,
3105
- FullscreenExitIcon,
3106
- FullscreenIcon,
3107
- KeyboardDoubleArrowDownIcon,
3108
- LastPageIcon,
3109
- MoreHorizIcon,
3110
- MoreVertIcon,
3111
- PushPinIcon,
3112
- RestartAltIcon,
3113
- SaveIcon,
3114
- SearchIcon,
3115
- SearchOffIcon,
3116
- SortIcon,
3117
- SyncAltIcon,
3118
- ViewColumnIcon,
3119
- VisibilityOffIcon,
3096
+ const useMRT_Effects = (table) => {
3097
+ const { getIsSomeRowsPinned, getState, options: { enablePagination, enableRowPinning, rowCount }, } = table;
3098
+ const { density, globalFilter, isFullScreen, isLoading, pagination, showSkeletons, sorting, } = getState();
3099
+ const rerender = useReducer(() => ({}), {})[1];
3100
+ const isMounted = useRef(false);
3101
+ const initialBodyHeight = useRef();
3102
+ const previousTop = useRef();
3103
+ useEffect(() => {
3104
+ if (typeof window !== 'undefined') {
3105
+ initialBodyHeight.current = document.body.style.height;
3106
+ }
3107
+ }, []);
3108
+ useEffect(() => {
3109
+ if (isMounted && typeof window !== 'undefined') {
3110
+ if (isFullScreen) {
3111
+ previousTop.current = document.body.getBoundingClientRect().top; //save scroll position
3112
+ document.body.style.height = '100vh'; //hide page scrollbars when table is in full screen mode
3113
+ }
3114
+ else {
3115
+ document.body.style.height = initialBodyHeight.current;
3116
+ if (!previousTop.current)
3117
+ return;
3118
+ //restore scroll position
3119
+ window.scrollTo({
3120
+ behavior: 'instant',
3121
+ top: -1 * previousTop.current,
3122
+ });
3123
+ }
3124
+ }
3125
+ isMounted.current = true;
3126
+ }, [isFullScreen]);
3127
+ //if page index is out of bounds, set it to the last page
3128
+ useEffect(() => {
3129
+ if (!enablePagination || isLoading || showSkeletons)
3130
+ return;
3131
+ const { pageIndex, pageSize } = pagination;
3132
+ const totalRowCount = rowCount !== null && rowCount !== void 0 ? rowCount : table.getPrePaginationRowModel().rows.length;
3133
+ const firstVisibleRowIndex = pageIndex * pageSize;
3134
+ if (firstVisibleRowIndex > totalRowCount) {
3135
+ table.setPageIndex(Math.floor(totalRowCount / pageSize));
3136
+ }
3137
+ }, [rowCount, table.getPrePaginationRowModel().rows.length]);
3138
+ //turn off sort when global filter is looking for ranked results
3139
+ const appliedSort = useRef(sorting);
3140
+ useEffect(() => {
3141
+ if (sorting.length) {
3142
+ appliedSort.current = sorting;
3143
+ }
3144
+ }, [sorting]);
3145
+ useEffect(() => {
3146
+ if (!getCanRankRows(table))
3147
+ return;
3148
+ if (globalFilter) {
3149
+ table.setSorting([]);
3150
+ }
3151
+ else {
3152
+ table.setSorting(() => appliedSort.current || []);
3153
+ }
3154
+ }, [globalFilter]);
3155
+ useEffect(() => {
3156
+ if (enableRowPinning && getIsSomeRowsPinned()) {
3157
+ setTimeout(() => {
3158
+ rerender();
3159
+ }, 150);
3160
+ }
3161
+ }, [density]);
3120
3162
  };
3121
3163
 
3122
- const MRT_Localization_EN = {
3123
- actions: 'Actions',
3124
- and: 'and',
3125
- cancel: 'Cancel',
3126
- changeFilterMode: 'Change filter mode',
3127
- changeSearchMode: 'Change search mode',
3128
- clearFilter: 'Clear filter',
3129
- clearSearch: 'Clear search',
3130
- clearSort: 'Clear sort',
3131
- clickToCopy: 'Click to copy',
3132
- collapse: 'Collapse',
3133
- collapseAll: 'Collapse all',
3134
- columnActions: 'Column Actions',
3135
- copiedToClipboard: 'Copied to clipboard',
3136
- dropToGroupBy: 'Drop to group by {column}',
3137
- edit: 'Edit',
3138
- expand: 'Expand',
3139
- expandAll: 'Expand all',
3140
- filterArrIncludes: 'Includes',
3141
- filterArrIncludesAll: 'Includes all',
3142
- filterArrIncludesSome: 'Includes',
3143
- filterBetween: 'Between',
3144
- filterBetweenInclusive: 'Between Inclusive',
3145
- filterByColumn: 'Filter by {column}',
3146
- filterContains: 'Contains',
3147
- filterEmpty: 'Empty',
3148
- filterEndsWith: 'Ends With',
3149
- filterEquals: 'Equals',
3150
- filterEqualsString: 'Equals',
3151
- filterFuzzy: 'Fuzzy',
3152
- filterGreaterThan: 'Greater Than',
3153
- filterGreaterThanOrEqualTo: 'Greater Than Or Equal To',
3154
- filterInNumberRange: 'Between',
3155
- filterIncludesString: 'Contains',
3156
- filterIncludesStringSensitive: 'Contains',
3157
- filterLessThan: 'Less Than',
3158
- filterLessThanOrEqualTo: 'Less Than Or Equal To',
3159
- filterMode: 'Filter Mode: {filterType}',
3160
- filterNotEmpty: 'Not Empty',
3161
- filterNotEquals: 'Not Equals',
3162
- filterStartsWith: 'Starts With',
3163
- filterWeakEquals: 'Equals',
3164
- filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',
3165
- goToFirstPage: 'Go to first page',
3166
- goToLastPage: 'Go to last page',
3167
- goToNextPage: 'Go to next page',
3168
- goToPreviousPage: 'Go to previous page',
3169
- grab: 'Grab',
3170
- groupByColumn: 'Group by {column}',
3171
- groupedBy: 'Grouped by ',
3172
- hideAll: 'Hide all',
3173
- hideColumn: 'Hide {column} column',
3174
- max: 'Max',
3175
- min: 'Min',
3176
- move: 'Move',
3177
- noRecordsToDisplay: 'No records to display',
3178
- noResultsFound: 'No results found',
3179
- of: 'of',
3180
- or: 'or',
3181
- pin: 'Pin',
3182
- pinToLeft: 'Pin to left',
3183
- pinToRight: 'Pin to right',
3184
- resetColumnSize: 'Reset column size',
3185
- resetOrder: 'Reset order',
3186
- rowActions: 'Row Actions',
3187
- rowNumber: '#',
3188
- rowNumbers: 'Row Numbers',
3189
- rowsPerPage: 'Rows per page',
3190
- save: 'Save',
3191
- search: 'Search',
3192
- selectedCountOfRowCountRowsSelected: '{selectedCount} of {rowCount} row(s) selected',
3193
- select: 'Select',
3194
- showAll: 'Show all',
3195
- showAllColumns: 'Show all columns',
3196
- showHideColumns: 'Show/Hide columns',
3197
- showHideFilters: 'Show/Hide filters',
3198
- showHideSearch: 'Show/Hide search',
3199
- sortByColumnAsc: 'Sort by {column} ascending',
3200
- sortByColumnDesc: 'Sort by {column} descending',
3201
- sortedByColumnAsc: 'Sorted by {column} ascending',
3202
- sortedByColumnDesc: 'Sorted by {column} descending',
3203
- thenBy: ', then by ',
3204
- toggleDensity: 'Toggle density',
3205
- toggleFullScreen: 'Toggle full screen',
3206
- toggleSelectAll: 'Toggle select all',
3207
- toggleSelectRow: 'Toggle select row',
3208
- toggleVisibility: 'Toggle visibility',
3209
- ungroupByColumn: 'Ungroup by {column}',
3210
- unpin: 'Unpin',
3211
- unpinAll: 'Unpin all',
3212
- };
3213
-
3214
- const MRT_DefaultColumn = {
3215
- filterVariant: 'text',
3216
- maxSize: 1000,
3217
- minSize: 40,
3218
- size: 180,
3219
- };
3220
- const MRT_DefaultDisplayColumn = {
3221
- columnDefType: 'display',
3222
- enableClickToCopy: false,
3223
- enableColumnActions: false,
3224
- enableColumnDragging: false,
3225
- enableColumnFilter: false,
3226
- enableColumnOrdering: false,
3227
- enableEditing: false,
3228
- enableGlobalFilter: false,
3229
- enableGrouping: false,
3230
- enableHiding: false,
3231
- enableResizing: false,
3232
- enableSorting: false,
3233
- };
3234
- const useMRT_TableOptions = (_a) => {
3235
- var _b;
3236
- var { aggregationFns, autoResetExpanded = false, columnFilterDisplayMode = 'subheader', columnResizeMode = 'onChange', createDisplayMode = 'modal', defaultColumn, defaultDisplayColumn, editDisplayMode = 'modal', enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnPinning = false, enableColumnResizing = false, enableDensityToggle = true, enableExpandAll = true, enableExpanding, enableFilterMatchHighlighting = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enableRowPinning = false, enableRowSelection = false, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, layoutMode, localization, manualFiltering, manualGrouping, manualPagination, manualSorting, paginationDisplayMode = 'default', positionActionsColumn = 'first', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberDisplayMode = 'static', rowPinningDisplayMode = 'sticky', selectAllMode = 'page', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnFilterDisplayMode", "columnResizeMode", "createDisplayMode", "defaultColumn", "defaultDisplayColumn", "editDisplayMode", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnPinning", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableExpanding", "enableFilterMatchHighlighting", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enableRowPinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "layoutMode", "localization", "manualFiltering", "manualGrouping", "manualPagination", "manualSorting", "paginationDisplayMode", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberDisplayMode", "rowPinningDisplayMode", "selectAllMode", "sortingFns"]);
3237
- const _icons = useMemo(() => (Object.assign(Object.assign({}, MRT_Default_Icons), icons)), [icons]);
3238
- const _localization = useMemo(() => (Object.assign(Object.assign({}, MRT_Localization_EN), localization)), [localization]);
3239
- const _aggregationFns = useMemo(() => (Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns)), []);
3240
- const _filterFns = useMemo(() => (Object.assign(Object.assign({}, MRT_FilterFns), filterFns)), []);
3241
- const _sortingFns = useMemo(() => (Object.assign(Object.assign({}, MRT_SortingFns), sortingFns)), []);
3242
- const _defaultColumn = useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultColumn), defaultColumn)), [defaultColumn]);
3243
- const _defaultDisplayColumn = useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultDisplayColumn), defaultDisplayColumn)), [defaultDisplayColumn]);
3244
- layoutMode =
3245
- layoutMode || (enableColumnResizing ? 'grid-no-grow' : 'semantic');
3246
- if (layoutMode === 'semantic' &&
3247
- (rest.enableRowVirtualization || rest.enableColumnVirtualization)) {
3248
- layoutMode = 'grid';
3249
- }
3250
- if (rest.enableRowVirtualization) {
3251
- enableStickyHeader = true;
3252
- }
3253
- if (enablePagination === false && manualPagination === undefined) {
3254
- manualPagination = true;
3255
- }
3256
- if (!((_b = rest.data) === null || _b === void 0 ? void 0 : _b.length)) {
3257
- manualFiltering = true;
3258
- manualGrouping = true;
3259
- manualPagination = true;
3260
- manualSorting = true;
3261
- }
3262
- return Object.assign({ aggregationFns: _aggregationFns, autoResetExpanded,
3263
- columnFilterDisplayMode,
3264
- columnResizeMode,
3265
- createDisplayMode, defaultColumn: _defaultColumn, defaultDisplayColumn: _defaultDisplayColumn, editDisplayMode,
3266
- enableBottomToolbar,
3267
- enableColumnActions,
3268
- enableColumnFilters,
3269
- enableColumnOrdering,
3270
- enableColumnPinning,
3271
- enableColumnResizing,
3272
- enableDensityToggle,
3273
- enableExpandAll,
3274
- enableExpanding,
3275
- enableFilterMatchHighlighting,
3276
- enableFilters,
3277
- enableFullScreenToggle,
3278
- enableGlobalFilter,
3279
- enableGlobalFilterRankedResults,
3280
- enableGrouping,
3281
- enableHiding,
3282
- enableMultiRowSelection,
3283
- enableMultiSort,
3284
- enablePagination,
3285
- enableRowPinning,
3286
- enableRowSelection,
3287
- enableSelectAll,
3288
- enableSorting,
3289
- enableStickyHeader,
3290
- enableTableFooter,
3291
- enableTableHead,
3292
- enableToolbarInternalActions,
3293
- enableTopToolbar, filterFns: _filterFns, icons: _icons, layoutMode, localization: _localization, manualFiltering,
3294
- manualGrouping,
3295
- manualPagination,
3296
- manualSorting,
3297
- paginationDisplayMode,
3298
- positionActionsColumn,
3299
- positionExpandColumn,
3300
- positionGlobalFilter,
3301
- positionPagination,
3302
- positionToolbarAlertBanner,
3303
- positionToolbarDropZone,
3304
- rowNumberDisplayMode,
3305
- rowPinningDisplayMode,
3306
- selectAllMode, sortingFns: _sortingFns }, rest);
3307
- };
3308
-
3309
- const blankColProps = {
3310
- children: null,
3311
- sx: {
3312
- flex: '1 0 auto',
3313
- minWidth: 0,
3314
- p: 0,
3315
- width: 0,
3316
- },
3317
- };
3318
- const useMRT_DisplayColumns = ({ columnOrder, creatingRow, grouping, tableOptions, }) => {
3319
- var _a, _b;
3320
- return useMemo(() => {
3321
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
3322
- return [
3323
- ((_b = (_a = tableOptions.state) === null || _a === void 0 ? void 0 : _a.columnOrder) !== null && _b !== void 0 ? _b : columnOrder).includes('mrt-row-pin') && Object.assign(Object.assign({ Cell: ({ row, table }) => (jsx(MRT_TableBodyRowPinButton, { row: row, table: table })), header: tableOptions.localization.pin, size: 60 }, (_c = tableOptions.displayColumnDefOptions) === null || _c === void 0 ? void 0 : _c['mrt-row-pin']), { columnDefType: 'display', id: 'mrt-row-pin' }),
3324
- ((_e = (_d = tableOptions.state) === null || _d === void 0 ? void 0 : _d.columnOrder) !== null && _e !== void 0 ? _e : columnOrder).includes('mrt-row-drag') && Object.assign(Object.assign({ Cell: ({ row, rowRef, table }) => (jsx(MRT_TableBodyRowGrabHandle, { row: row, rowRef: rowRef, table: table })), header: tableOptions.localization.move, size: 60 }, (_f = tableOptions.displayColumnDefOptions) === null || _f === void 0 ? void 0 : _f['mrt-row-drag']), { columnDefType: 'display', id: 'mrt-row-drag' }),
3325
- (((_h = (_g = tableOptions.state) === null || _g === void 0 ? void 0 : _g.columnOrder) !== null && _h !== void 0 ? _h : columnOrder).includes('mrt-row-actions') ||
3326
- (creatingRow && tableOptions.createDisplayMode === 'row')) && Object.assign(Object.assign({ Cell: ({ cell, row, table }) => (jsx(MRT_ToggleRowActionMenuButton, { cell: cell, row: row, table: table })), header: tableOptions.localization.actions, size: 70 }, (_j = tableOptions.displayColumnDefOptions) === null || _j === void 0 ? void 0 : _j['mrt-row-actions']), { columnDefType: 'display', id: 'mrt-row-actions' }),
3327
- ((_l = (_k = tableOptions.state) === null || _k === void 0 ? void 0 : _k.columnOrder) !== null && _l !== void 0 ? _l : columnOrder).includes('mrt-row-expand') &&
3328
- showExpandColumn(tableOptions, (_o = (_m = tableOptions.state) === null || _m === void 0 ? void 0 : _m.grouping) !== null && _o !== void 0 ? _o : grouping) && Object.assign(Object.assign({ Cell: ({ row, table }) => (jsx(MRT_ExpandButton, { row: row, table: table })), Header: tableOptions.enableExpandAll
3329
- ? ({ table }) => jsx(MRT_ExpandAllButton, { table: table })
3330
- : null, header: tableOptions.localization.expand, size: 60 }, (_p = tableOptions.displayColumnDefOptions) === null || _p === void 0 ? void 0 : _p['mrt-row-expand']), { columnDefType: 'display', id: 'mrt-row-expand' }),
3331
- ((_r = (_q = tableOptions.state) === null || _q === void 0 ? void 0 : _q.columnOrder) !== null && _r !== void 0 ? _r : columnOrder).includes('mrt-row-select') && Object.assign(Object.assign({ Cell: ({ row, table }) => (jsx(MRT_SelectCheckbox, { row: row, table: table })), Header: tableOptions.enableSelectAll &&
3332
- tableOptions.enableMultiRowSelection
3333
- ? ({ table }) => jsx(MRT_SelectCheckbox, { selectAll: true, table: table })
3334
- : null, header: tableOptions.localization.select, size: 60 }, (_s = tableOptions.displayColumnDefOptions) === null || _s === void 0 ? void 0 : _s['mrt-row-select']), { columnDefType: 'display', id: 'mrt-row-select' }),
3335
- ((_u = (_t = tableOptions.state) === null || _t === void 0 ? void 0 : _t.columnOrder) !== null && _u !== void 0 ? _u : columnOrder).includes('mrt-row-numbers') && Object.assign(Object.assign({ Cell: ({ row }) => row.index + 1, Header: () => tableOptions.localization.rowNumber, header: tableOptions.localization.rowNumbers, size: 60 }, (_v = tableOptions.displayColumnDefOptions) === null || _v === void 0 ? void 0 : _v['mrt-row-numbers']), { columnDefType: 'display', id: 'mrt-row-numbers' }),
3336
- ((_x = (_w = tableOptions.state) === null || _w === void 0 ? void 0 : _w.columnOrder) !== null && _x !== void 0 ? _x : columnOrder).includes('mrt-row-spacer') && Object.assign(Object.assign(Object.assign({}, (_y = tableOptions.displayColumnDefOptions) === null || _y === void 0 ? void 0 : _y['mrt-row-spacer']), MRT_DefaultDisplayColumn), { columnDefType: 'display', header: '', id: 'mrt-row-spacer', muiTableBodyCellProps: blankColProps, muiTableFooterCellProps: blankColProps, muiTableHeadCellProps: blankColProps }),
3337
- ].filter(Boolean);
3338
- }, [
3164
+ const useMRT_TableInstance = (tableOptions) => {
3165
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10;
3166
+ const bottomToolbarRef = useRef(null);
3167
+ const editInputRefs = useRef({});
3168
+ const filterInputRefs = useRef({});
3169
+ const searchInputRef = useRef(null);
3170
+ const tableContainerRef = useRef(null);
3171
+ const tableHeadCellRefs = useRef({});
3172
+ const tablePaperRef = useRef(null);
3173
+ const topToolbarRef = useRef(null);
3174
+ const tableHeadRef = useRef(null);
3175
+ const tableFooterRef = useRef(null);
3176
+ const initialState = useMemo(() => {
3177
+ var _a, _b, _c;
3178
+ const initState = (_a = tableOptions.initialState) !== null && _a !== void 0 ? _a : {};
3179
+ initState.columnOrder =
3180
+ (_b = initState.columnOrder) !== null && _b !== void 0 ? _b : getDefaultColumnOrderIds(tableOptions);
3181
+ initState.globalFilterFn = (_c = tableOptions.globalFilterFn) !== null && _c !== void 0 ? _c : 'fuzzy';
3182
+ return initState;
3183
+ }, []);
3184
+ const [creatingRow, _setCreatingRow] = useState((_a = initialState.creatingRow) !== null && _a !== void 0 ? _a : null);
3185
+ const [columnFilterFns, setColumnFilterFns] = useState(() => Object.assign({}, ...getAllLeafColumnDefs(tableOptions.columns).map((col) => {
3186
+ var _a, _b, _c, _d;
3187
+ return ({
3188
+ [getColumnId(col)]: col.filterFn instanceof Function
3189
+ ? (_a = col.filterFn.name) !== null && _a !== void 0 ? _a : 'custom'
3190
+ : (_d = (_b = col.filterFn) !== null && _b !== void 0 ? _b : (_c = initialState === null || initialState === void 0 ? void 0 : initialState.columnFilterFns) === null || _c === void 0 ? void 0 : _c[getColumnId(col)]) !== null && _d !== void 0 ? _d : getDefaultColumnFilterFn(col),
3191
+ });
3192
+ })));
3193
+ const [columnOrder, setColumnOrder] = useState((_b = initialState.columnOrder) !== null && _b !== void 0 ? _b : []);
3194
+ const [density, setDensity] = useState((_c = initialState === null || initialState === void 0 ? void 0 : initialState.density) !== null && _c !== void 0 ? _c : 'comfortable');
3195
+ const [draggingColumn, setDraggingColumn] = useState((_d = initialState.draggingColumn) !== null && _d !== void 0 ? _d : null);
3196
+ const [draggingRow, setDraggingRow] = useState((_e = initialState.draggingRow) !== null && _e !== void 0 ? _e : null);
3197
+ const [editingCell, setEditingCell] = useState((_f = initialState.editingCell) !== null && _f !== void 0 ? _f : null);
3198
+ const [editingRow, setEditingRow] = useState((_g = initialState.editingRow) !== null && _g !== void 0 ? _g : null);
3199
+ const [globalFilterFn, setGlobalFilterFn] = useState((_h = initialState.globalFilterFn) !== null && _h !== void 0 ? _h : 'fuzzy');
3200
+ const [grouping, setGrouping] = useState((_j = initialState.grouping) !== null && _j !== void 0 ? _j : []);
3201
+ const [hoveredColumn, setHoveredColumn] = useState((_k = initialState.hoveredColumn) !== null && _k !== void 0 ? _k : null);
3202
+ const [hoveredRow, setHoveredRow] = useState((_l = initialState.hoveredRow) !== null && _l !== void 0 ? _l : null);
3203
+ const [isFullScreen, setIsFullScreen] = useState((_m = initialState === null || initialState === void 0 ? void 0 : initialState.isFullScreen) !== null && _m !== void 0 ? _m : false);
3204
+ const [showAlertBanner, setShowAlertBanner] = useState((_p = (_o = tableOptions.initialState) === null || _o === void 0 ? void 0 : _o.showAlertBanner) !== null && _p !== void 0 ? _p : false);
3205
+ const [showColumnFilters, setShowColumnFilters] = useState((_q = initialState === null || initialState === void 0 ? void 0 : initialState.showColumnFilters) !== null && _q !== void 0 ? _q : false);
3206
+ const [showGlobalFilter, setShowGlobalFilter] = useState((_r = initialState === null || initialState === void 0 ? void 0 : initialState.showGlobalFilter) !== null && _r !== void 0 ? _r : false);
3207
+ const [showToolbarDropZone, setShowToolbarDropZone] = useState((_s = initialState === null || initialState === void 0 ? void 0 : initialState.showToolbarDropZone) !== null && _s !== void 0 ? _s : false);
3208
+ const displayColumns = useMRT_DisplayColumns({
3339
3209
  columnOrder,
3340
- grouping,
3341
- tableOptions.displayColumnDefOptions,
3342
- tableOptions.editDisplayMode,
3343
- tableOptions.enableColumnDragging,
3344
- tableOptions.enableColumnFilterModes,
3345
- tableOptions.enableColumnOrdering,
3346
- tableOptions.enableEditing,
3347
- tableOptions.enableExpandAll,
3348
- tableOptions.enableExpanding,
3349
- tableOptions.enableGrouping,
3350
- tableOptions.enableRowActions,
3351
- tableOptions.enableRowDragging,
3352
- tableOptions.enableRowNumbers,
3353
- tableOptions.enableRowOrdering,
3354
- tableOptions.enableRowSelection,
3355
- tableOptions.enableSelectAll,
3356
- tableOptions.localization,
3357
- tableOptions.positionActionsColumn,
3358
- tableOptions.renderDetailPanel,
3359
- tableOptions.renderRowActionMenuItems,
3360
- tableOptions.renderRowActions,
3361
- (_a = tableOptions.state) === null || _a === void 0 ? void 0 : _a.columnOrder,
3362
- (_b = tableOptions.state) === null || _b === void 0 ? void 0 : _b.grouping,
3363
- ]);
3364
- };
3365
-
3366
- const useMRT_Effects = (table) => {
3367
- const { getIsSomeRowsPinned, getState, options: { enablePagination, enableRowPinning, rowCount }, } = table;
3368
- const { density, globalFilter, isFullScreen, isLoading, pagination, showSkeletons, sorting, } = getState();
3369
- const rerender = useReducer(() => ({}), {})[1];
3370
- const isMounted = useRef(false);
3371
- const initialBodyHeight = useRef();
3372
- const previousTop = useRef();
3373
- useEffect(() => {
3374
- if (typeof window !== 'undefined') {
3375
- initialBodyHeight.current = document.body.style.height;
3376
- }
3377
- }, []);
3378
- useEffect(() => {
3379
- if (isMounted && typeof window !== 'undefined') {
3380
- if (isFullScreen) {
3381
- previousTop.current = document.body.getBoundingClientRect().top; //save scroll position
3382
- document.body.style.height = '100vh'; //hide page scrollbars when table is in full screen mode
3383
- }
3384
- else {
3385
- document.body.style.height = initialBodyHeight.current;
3386
- if (!previousTop.current)
3387
- return;
3388
- //restore scroll position
3389
- window.scrollTo({
3390
- behavior: 'instant',
3391
- top: -1 * previousTop.current,
3392
- });
3393
- }
3394
- }
3395
- isMounted.current = true;
3396
- }, [isFullScreen]);
3397
- //if page index is out of bounds, set it to the last page
3398
- useEffect(() => {
3399
- if (!enablePagination || isLoading || showSkeletons)
3400
- return;
3401
- const { pageIndex, pageSize } = pagination;
3402
- const totalRowCount = rowCount !== null && rowCount !== void 0 ? rowCount : table.getPrePaginationRowModel().rows.length;
3403
- const firstVisibleRowIndex = pageIndex * pageSize;
3404
- if (firstVisibleRowIndex > totalRowCount) {
3405
- table.setPageIndex(Math.floor(totalRowCount / pageSize));
3406
- }
3407
- }, [rowCount, table.getPrePaginationRowModel().rows.length]);
3408
- //turn off sort when global filter is looking for ranked results
3409
- const appliedSort = useRef(sorting);
3410
- useEffect(() => {
3411
- if (sorting.length) {
3412
- appliedSort.current = sorting;
3413
- }
3414
- }, [sorting]);
3415
- useEffect(() => {
3416
- if (!getCanRankRows(table))
3417
- return;
3418
- if (globalFilter) {
3419
- table.setSorting([]);
3420
- }
3421
- else {
3422
- table.setSorting(() => appliedSort.current || []);
3423
- }
3424
- }, [globalFilter]);
3425
- useEffect(() => {
3426
- if (enableRowPinning && getIsSomeRowsPinned()) {
3427
- setTimeout(() => {
3428
- rerender();
3429
- }, 150);
3430
- }
3431
- }, [density]);
3432
- };
3433
-
3434
- const useMRT_TableInstance = (tableOptions) => {
3435
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10;
3436
- const bottomToolbarRef = useRef(null);
3437
- const editInputRefs = useRef({});
3438
- const filterInputRefs = useRef({});
3439
- const searchInputRef = useRef(null);
3440
- const tableContainerRef = useRef(null);
3441
- const tableHeadCellRefs = useRef({});
3442
- const tablePaperRef = useRef(null);
3443
- const topToolbarRef = useRef(null);
3444
- const tableHeadRef = useRef(null);
3445
- const tableFooterRef = useRef(null);
3446
- const initialState = useMemo(() => {
3447
- var _a, _b, _c;
3448
- const initState = (_a = tableOptions.initialState) !== null && _a !== void 0 ? _a : {};
3449
- initState.columnOrder =
3450
- (_b = initState.columnOrder) !== null && _b !== void 0 ? _b : getDefaultColumnOrderIds(tableOptions);
3451
- initState.globalFilterFn = (_c = tableOptions.globalFilterFn) !== null && _c !== void 0 ? _c : 'fuzzy';
3452
- return initState;
3453
- }, []);
3454
- const [creatingRow, _setCreatingRow] = useState((_a = initialState.creatingRow) !== null && _a !== void 0 ? _a : null);
3455
- const [columnFilterFns, setColumnFilterFns] = useState(() => Object.assign({}, ...getAllLeafColumnDefs(tableOptions.columns).map((col) => {
3456
- var _a, _b, _c, _d;
3457
- return ({
3458
- [getColumnId(col)]: col.filterFn instanceof Function
3459
- ? (_a = col.filterFn.name) !== null && _a !== void 0 ? _a : 'custom'
3460
- : (_d = (_b = col.filterFn) !== null && _b !== void 0 ? _b : (_c = initialState === null || initialState === void 0 ? void 0 : initialState.columnFilterFns) === null || _c === void 0 ? void 0 : _c[getColumnId(col)]) !== null && _d !== void 0 ? _d : getDefaultColumnFilterFn(col),
3461
- });
3462
- })));
3463
- const [columnOrder, setColumnOrder] = useState((_b = initialState.columnOrder) !== null && _b !== void 0 ? _b : []);
3464
- const [density, setDensity] = useState((_c = initialState === null || initialState === void 0 ? void 0 : initialState.density) !== null && _c !== void 0 ? _c : 'comfortable');
3465
- const [draggingColumn, setDraggingColumn] = useState((_d = initialState.draggingColumn) !== null && _d !== void 0 ? _d : null);
3466
- const [draggingRow, setDraggingRow] = useState((_e = initialState.draggingRow) !== null && _e !== void 0 ? _e : null);
3467
- const [editingCell, setEditingCell] = useState((_f = initialState.editingCell) !== null && _f !== void 0 ? _f : null);
3468
- const [editingRow, setEditingRow] = useState((_g = initialState.editingRow) !== null && _g !== void 0 ? _g : null);
3469
- const [globalFilterFn, setGlobalFilterFn] = useState((_h = initialState.globalFilterFn) !== null && _h !== void 0 ? _h : 'fuzzy');
3470
- const [grouping, setGrouping] = useState((_j = initialState.grouping) !== null && _j !== void 0 ? _j : []);
3471
- const [hoveredColumn, setHoveredColumn] = useState((_k = initialState.hoveredColumn) !== null && _k !== void 0 ? _k : null);
3472
- const [hoveredRow, setHoveredRow] = useState((_l = initialState.hoveredRow) !== null && _l !== void 0 ? _l : null);
3473
- const [isFullScreen, setIsFullScreen] = useState((_m = initialState === null || initialState === void 0 ? void 0 : initialState.isFullScreen) !== null && _m !== void 0 ? _m : false);
3474
- const [showAlertBanner, setShowAlertBanner] = useState((_p = (_o = tableOptions.initialState) === null || _o === void 0 ? void 0 : _o.showAlertBanner) !== null && _p !== void 0 ? _p : false);
3475
- const [showColumnFilters, setShowColumnFilters] = useState((_q = initialState === null || initialState === void 0 ? void 0 : initialState.showColumnFilters) !== null && _q !== void 0 ? _q : false);
3476
- const [showGlobalFilter, setShowGlobalFilter] = useState((_r = initialState === null || initialState === void 0 ? void 0 : initialState.showGlobalFilter) !== null && _r !== void 0 ? _r : false);
3477
- const [showToolbarDropZone, setShowToolbarDropZone] = useState((_s = initialState === null || initialState === void 0 ? void 0 : initialState.showToolbarDropZone) !== null && _s !== void 0 ? _s : false);
3478
- const displayColumns = useMRT_DisplayColumns({
3479
- columnOrder,
3480
- creatingRow,
3210
+ creatingRow,
3481
3211
  grouping,
3482
3212
  tableOptions,
3483
3213
  });
@@ -3607,6 +3337,315 @@ const useMRT_TableInstance = (tableOptions) => {
3607
3337
  return table;
3608
3338
  };
3609
3339
 
3340
+ const MRT_AggregationFns = Object.assign({}, aggregationFns);
3341
+
3342
+ const fuzzy = (row, columnId, filterValue, addMeta) => {
3343
+ const itemRank = rankItem(row.getValue(columnId), filterValue, {
3344
+ threshold: rankings.MATCHES,
3345
+ });
3346
+ addMeta(itemRank);
3347
+ return itemRank.passed;
3348
+ };
3349
+ fuzzy.autoRemove = (val) => !val;
3350
+ const contains = (row, id, filterValue) => row
3351
+ .getValue(id)
3352
+ .toString()
3353
+ .toLowerCase()
3354
+ .trim()
3355
+ .includes(filterValue.toString().toLowerCase().trim());
3356
+ contains.autoRemove = (val) => !val;
3357
+ const startsWith = (row, id, filterValue) => row
3358
+ .getValue(id)
3359
+ .toString()
3360
+ .toLowerCase()
3361
+ .trim()
3362
+ .startsWith(filterValue.toString().toLowerCase().trim());
3363
+ startsWith.autoRemove = (val) => !val;
3364
+ const endsWith = (row, id, filterValue) => row
3365
+ .getValue(id)
3366
+ .toString()
3367
+ .toLowerCase()
3368
+ .trim()
3369
+ .endsWith(filterValue.toString().toLowerCase().trim());
3370
+ endsWith.autoRemove = (val) => !val;
3371
+ const equals = (row, id, filterValue) => row.getValue(id).toString().toLowerCase().trim() ===
3372
+ (filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString().toLowerCase().trim());
3373
+ equals.autoRemove = (val) => !val;
3374
+ const notEquals = (row, id, filterValue) => row.getValue(id).toString().toLowerCase().trim() !==
3375
+ filterValue.toString().toLowerCase().trim();
3376
+ notEquals.autoRemove = (val) => !val;
3377
+ const greaterThan = (row, id, filterValue) => !isNaN(+filterValue) && !isNaN(+row.getValue(id))
3378
+ ? +row.getValue(id) > +filterValue
3379
+ : row.getValue(id).toString().toLowerCase().trim() >
3380
+ (filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString().toLowerCase().trim());
3381
+ greaterThan.autoRemove = (val) => !val;
3382
+ const greaterThanOrEqualTo = (row, id, filterValue) => equals(row, id, filterValue) || greaterThan(row, id, filterValue);
3383
+ greaterThanOrEqualTo.autoRemove = (val) => !val;
3384
+ const lessThan = (row, id, filterValue) => !isNaN(+filterValue) && !isNaN(+row.getValue(id))
3385
+ ? +row.getValue(id) < +filterValue
3386
+ : row.getValue(id).toString().toLowerCase().trim() <
3387
+ (filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString().toLowerCase().trim());
3388
+ lessThan.autoRemove = (val) => !val;
3389
+ const lessThanOrEqualTo = (row, id, filterValue) => equals(row, id, filterValue) || lessThan(row, id, filterValue);
3390
+ lessThanOrEqualTo.autoRemove = (val) => !val;
3391
+ const between = (row, id, filterValues) => (['', undefined].includes(filterValues[0]) ||
3392
+ greaterThan(row, id, filterValues[0])) &&
3393
+ ((!isNaN(+filterValues[0]) &&
3394
+ !isNaN(+filterValues[1]) &&
3395
+ +filterValues[0] > +filterValues[1]) ||
3396
+ ['', undefined].includes(filterValues[1]) ||
3397
+ lessThan(row, id, filterValues[1]));
3398
+ between.autoRemove = (val) => !val;
3399
+ const betweenInclusive = (row, id, filterValues) => (['', undefined].includes(filterValues[0]) ||
3400
+ greaterThanOrEqualTo(row, id, filterValues[0])) &&
3401
+ ((!isNaN(+filterValues[0]) &&
3402
+ !isNaN(+filterValues[1]) &&
3403
+ +filterValues[0] > +filterValues[1]) ||
3404
+ ['', undefined].includes(filterValues[1]) ||
3405
+ lessThanOrEqualTo(row, id, filterValues[1]));
3406
+ betweenInclusive.autoRemove = (val) => !val;
3407
+ const empty = (row, id, _filterValue) => !row.getValue(id).toString().trim();
3408
+ empty.autoRemove = (val) => !val;
3409
+ const notEmpty = (row, id, _filterValue) => !!row.getValue(id).toString().trim();
3410
+ notEmpty.autoRemove = (val) => !val;
3411
+ const MRT_FilterFns = Object.assign(Object.assign({}, filterFns), { between,
3412
+ betweenInclusive,
3413
+ contains,
3414
+ empty,
3415
+ endsWith,
3416
+ equals,
3417
+ fuzzy,
3418
+ greaterThan,
3419
+ greaterThanOrEqualTo,
3420
+ lessThan,
3421
+ lessThanOrEqualTo,
3422
+ notEmpty,
3423
+ notEquals,
3424
+ startsWith });
3425
+
3426
+ const MRT_Default_Icons = {
3427
+ ArrowDownwardIcon,
3428
+ ArrowRightIcon,
3429
+ CancelIcon,
3430
+ ChevronLeftIcon,
3431
+ ChevronRightIcon,
3432
+ ClearAllIcon,
3433
+ CloseIcon,
3434
+ DensityLargeIcon,
3435
+ DensityMediumIcon,
3436
+ DensitySmallIcon,
3437
+ DragHandleIcon,
3438
+ DynamicFeedIcon,
3439
+ EditIcon,
3440
+ ExpandMoreIcon,
3441
+ FilterAltIcon,
3442
+ FilterListIcon,
3443
+ FilterListOffIcon,
3444
+ FirstPageIcon,
3445
+ FullscreenExitIcon,
3446
+ FullscreenIcon,
3447
+ KeyboardDoubleArrowDownIcon,
3448
+ LastPageIcon,
3449
+ MoreHorizIcon,
3450
+ MoreVertIcon,
3451
+ PushPinIcon,
3452
+ RestartAltIcon,
3453
+ SaveIcon,
3454
+ SearchIcon,
3455
+ SearchOffIcon,
3456
+ SortIcon,
3457
+ SyncAltIcon,
3458
+ ViewColumnIcon,
3459
+ VisibilityOffIcon,
3460
+ };
3461
+
3462
+ const MRT_Localization_EN = {
3463
+ actions: 'Actions',
3464
+ and: 'and',
3465
+ cancel: 'Cancel',
3466
+ changeFilterMode: 'Change filter mode',
3467
+ changeSearchMode: 'Change search mode',
3468
+ clearFilter: 'Clear filter',
3469
+ clearSearch: 'Clear search',
3470
+ clearSort: 'Clear sort',
3471
+ clickToCopy: 'Click to copy',
3472
+ collapse: 'Collapse',
3473
+ collapseAll: 'Collapse all',
3474
+ columnActions: 'Column Actions',
3475
+ copiedToClipboard: 'Copied to clipboard',
3476
+ dropToGroupBy: 'Drop to group by {column}',
3477
+ edit: 'Edit',
3478
+ expand: 'Expand',
3479
+ expandAll: 'Expand all',
3480
+ filterArrIncludes: 'Includes',
3481
+ filterArrIncludesAll: 'Includes all',
3482
+ filterArrIncludesSome: 'Includes',
3483
+ filterBetween: 'Between',
3484
+ filterBetweenInclusive: 'Between Inclusive',
3485
+ filterByColumn: 'Filter by {column}',
3486
+ filterContains: 'Contains',
3487
+ filterEmpty: 'Empty',
3488
+ filterEndsWith: 'Ends With',
3489
+ filterEquals: 'Equals',
3490
+ filterEqualsString: 'Equals',
3491
+ filterFuzzy: 'Fuzzy',
3492
+ filterGreaterThan: 'Greater Than',
3493
+ filterGreaterThanOrEqualTo: 'Greater Than Or Equal To',
3494
+ filterInNumberRange: 'Between',
3495
+ filterIncludesString: 'Contains',
3496
+ filterIncludesStringSensitive: 'Contains',
3497
+ filterLessThan: 'Less Than',
3498
+ filterLessThanOrEqualTo: 'Less Than Or Equal To',
3499
+ filterMode: 'Filter Mode: {filterType}',
3500
+ filterNotEmpty: 'Not Empty',
3501
+ filterNotEquals: 'Not Equals',
3502
+ filterStartsWith: 'Starts With',
3503
+ filterWeakEquals: 'Equals',
3504
+ filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',
3505
+ goToFirstPage: 'Go to first page',
3506
+ goToLastPage: 'Go to last page',
3507
+ goToNextPage: 'Go to next page',
3508
+ goToPreviousPage: 'Go to previous page',
3509
+ grab: 'Grab',
3510
+ groupByColumn: 'Group by {column}',
3511
+ groupedBy: 'Grouped by ',
3512
+ hideAll: 'Hide all',
3513
+ hideColumn: 'Hide {column} column',
3514
+ max: 'Max',
3515
+ min: 'Min',
3516
+ move: 'Move',
3517
+ noRecordsToDisplay: 'No records to display',
3518
+ noResultsFound: 'No results found',
3519
+ of: 'of',
3520
+ or: 'or',
3521
+ pin: 'Pin',
3522
+ pinToLeft: 'Pin to left',
3523
+ pinToRight: 'Pin to right',
3524
+ resetColumnSize: 'Reset column size',
3525
+ resetOrder: 'Reset order',
3526
+ rowActions: 'Row Actions',
3527
+ rowNumber: '#',
3528
+ rowNumbers: 'Row Numbers',
3529
+ rowsPerPage: 'Rows per page',
3530
+ save: 'Save',
3531
+ search: 'Search',
3532
+ selectedCountOfRowCountRowsSelected: '{selectedCount} of {rowCount} row(s) selected',
3533
+ select: 'Select',
3534
+ showAll: 'Show all',
3535
+ showAllColumns: 'Show all columns',
3536
+ showHideColumns: 'Show/Hide columns',
3537
+ showHideFilters: 'Show/Hide filters',
3538
+ showHideSearch: 'Show/Hide search',
3539
+ sortByColumnAsc: 'Sort by {column} ascending',
3540
+ sortByColumnDesc: 'Sort by {column} descending',
3541
+ sortedByColumnAsc: 'Sorted by {column} ascending',
3542
+ sortedByColumnDesc: 'Sorted by {column} descending',
3543
+ thenBy: ', then by ',
3544
+ toggleDensity: 'Toggle density',
3545
+ toggleFullScreen: 'Toggle full screen',
3546
+ toggleSelectAll: 'Toggle select all',
3547
+ toggleSelectRow: 'Toggle select row',
3548
+ toggleVisibility: 'Toggle visibility',
3549
+ ungroupByColumn: 'Ungroup by {column}',
3550
+ unpin: 'Unpin',
3551
+ unpinAll: 'Unpin all',
3552
+ };
3553
+
3554
+ const MRT_DefaultColumn = {
3555
+ filterVariant: 'text',
3556
+ maxSize: 1000,
3557
+ minSize: 40,
3558
+ size: 180,
3559
+ };
3560
+ const MRT_DefaultDisplayColumn = {
3561
+ columnDefType: 'display',
3562
+ enableClickToCopy: false,
3563
+ enableColumnActions: false,
3564
+ enableColumnDragging: false,
3565
+ enableColumnFilter: false,
3566
+ enableColumnOrdering: false,
3567
+ enableEditing: false,
3568
+ enableGlobalFilter: false,
3569
+ enableGrouping: false,
3570
+ enableHiding: false,
3571
+ enableResizing: false,
3572
+ enableSorting: false,
3573
+ };
3574
+ const useMRT_TableOptions = (_a) => {
3575
+ var _b;
3576
+ var { aggregationFns, autoResetExpanded = false, columnFilterDisplayMode = 'subheader', columnResizeMode = 'onChange', createDisplayMode = 'modal', defaultColumn, defaultDisplayColumn, editDisplayMode = 'modal', enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnPinning = false, enableColumnResizing = false, enableDensityToggle = true, enableExpandAll = true, enableExpanding, enableFilterMatchHighlighting = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enableRowPinning = false, enableRowSelection = false, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, layoutMode, localization, manualFiltering, manualGrouping, manualPagination, manualSorting, paginationDisplayMode = 'default', positionActionsColumn = 'first', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberDisplayMode = 'static', rowPinningDisplayMode = 'sticky', selectAllMode = 'page', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnFilterDisplayMode", "columnResizeMode", "createDisplayMode", "defaultColumn", "defaultDisplayColumn", "editDisplayMode", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnPinning", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableExpanding", "enableFilterMatchHighlighting", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enableRowPinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "layoutMode", "localization", "manualFiltering", "manualGrouping", "manualPagination", "manualSorting", "paginationDisplayMode", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberDisplayMode", "rowPinningDisplayMode", "selectAllMode", "sortingFns"]);
3577
+ const _icons = useMemo(() => (Object.assign(Object.assign({}, MRT_Default_Icons), icons)), [icons]);
3578
+ const _localization = useMemo(() => (Object.assign(Object.assign({}, MRT_Localization_EN), localization)), [localization]);
3579
+ const _aggregationFns = useMemo(() => (Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns)), []);
3580
+ const _filterFns = useMemo(() => (Object.assign(Object.assign({}, MRT_FilterFns), filterFns)), []);
3581
+ const _sortingFns = useMemo(() => (Object.assign(Object.assign({}, MRT_SortingFns), sortingFns)), []);
3582
+ const _defaultColumn = useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultColumn), defaultColumn)), [defaultColumn]);
3583
+ const _defaultDisplayColumn = useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultDisplayColumn), defaultDisplayColumn)), [defaultDisplayColumn]);
3584
+ layoutMode =
3585
+ layoutMode || (enableColumnResizing ? 'grid-no-grow' : 'semantic');
3586
+ if (layoutMode === 'semantic' &&
3587
+ (rest.enableRowVirtualization || rest.enableColumnVirtualization)) {
3588
+ layoutMode = 'grid';
3589
+ }
3590
+ if (rest.enableRowVirtualization) {
3591
+ enableStickyHeader = true;
3592
+ }
3593
+ if (enablePagination === false && manualPagination === undefined) {
3594
+ manualPagination = true;
3595
+ }
3596
+ if (!((_b = rest.data) === null || _b === void 0 ? void 0 : _b.length)) {
3597
+ manualFiltering = true;
3598
+ manualGrouping = true;
3599
+ manualPagination = true;
3600
+ manualSorting = true;
3601
+ }
3602
+ return Object.assign({ aggregationFns: _aggregationFns, autoResetExpanded,
3603
+ columnFilterDisplayMode,
3604
+ columnResizeMode,
3605
+ createDisplayMode, defaultColumn: _defaultColumn, defaultDisplayColumn: _defaultDisplayColumn, editDisplayMode,
3606
+ enableBottomToolbar,
3607
+ enableColumnActions,
3608
+ enableColumnFilters,
3609
+ enableColumnOrdering,
3610
+ enableColumnPinning,
3611
+ enableColumnResizing,
3612
+ enableDensityToggle,
3613
+ enableExpandAll,
3614
+ enableExpanding,
3615
+ enableFilterMatchHighlighting,
3616
+ enableFilters,
3617
+ enableFullScreenToggle,
3618
+ enableGlobalFilter,
3619
+ enableGlobalFilterRankedResults,
3620
+ enableGrouping,
3621
+ enableHiding,
3622
+ enableMultiRowSelection,
3623
+ enableMultiSort,
3624
+ enablePagination,
3625
+ enableRowPinning,
3626
+ enableRowSelection,
3627
+ enableSelectAll,
3628
+ enableSorting,
3629
+ enableStickyHeader,
3630
+ enableTableFooter,
3631
+ enableTableHead,
3632
+ enableToolbarInternalActions,
3633
+ enableTopToolbar, filterFns: _filterFns, icons: _icons, layoutMode, localization: _localization, manualFiltering,
3634
+ manualGrouping,
3635
+ manualPagination,
3636
+ manualSorting,
3637
+ paginationDisplayMode,
3638
+ positionActionsColumn,
3639
+ positionExpandColumn,
3640
+ positionGlobalFilter,
3641
+ positionPagination,
3642
+ positionToolbarAlertBanner,
3643
+ positionToolbarDropZone,
3644
+ rowNumberDisplayMode,
3645
+ rowPinningDisplayMode,
3646
+ selectAllMode, sortingFns: _sortingFns }, rest);
3647
+ };
3648
+
3610
3649
  const useMaterialReactTable = (tableOptions) => useMRT_TableInstance(useMRT_TableOptions(tableOptions));
3611
3650
 
3612
3651
  const isTableInstanceProp = (props) => props.table !== undefined;