material-react-table 2.0.5 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/dist/index.d.ts +2 -1
  2. package/dist/index.esm.js +616 -545
  3. package/dist/index.esm.js.map +1 -1
  4. package/dist/index.js +614 -543
  5. package/dist/index.js.map +1 -1
  6. package/locales/fr/index.esm.js +1 -1
  7. package/locales/fr/index.js +1 -1
  8. package/locales/he/index.d.ts +3 -0
  9. package/locales/he/index.esm.d.ts +3 -0
  10. package/locales/he/index.esm.js +93 -0
  11. package/locales/he/index.js +97 -0
  12. package/locales/he/package.json +6 -0
  13. package/package.json +25 -25
  14. package/src/body/MRT_TableBodyCell.tsx +22 -19
  15. package/src/body/MRT_TableBodyCellValue.tsx +9 -9
  16. package/src/body/MRT_TableBodyRow.tsx +13 -13
  17. package/src/buttons/MRT_RowPinButton.tsx +2 -2
  18. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +2 -2
  19. package/src/footer/MRT_TableFooterCell.tsx +2 -2
  20. package/src/head/MRT_TableHeadCell.tsx +25 -20
  21. package/src/head/MRT_TableHeadCellResizeHandle.tsx +19 -9
  22. package/src/hooks/useMRT_DisplayColumns.tsx +172 -125
  23. package/src/hooks/useMRT_TableOptions.ts +8 -0
  24. package/src/inputs/MRT_EditCellTextField.tsx +3 -1
  25. package/src/inputs/MRT_FilterCheckbox.tsx +2 -2
  26. package/src/inputs/MRT_FilterTextField.tsx +17 -17
  27. package/src/inputs/MRT_SelectCheckbox.tsx +2 -2
  28. package/src/locales/fr.ts +1 -1
  29. package/src/locales/he.ts +94 -0
  30. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +2 -2
  31. package/src/style.utils.ts +2 -2
  32. package/src/toolbar/MRT_TablePagination.tsx +8 -4
  33. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +6 -6
  34. package/src/types.ts +2 -2
  35. package/dist/types/MaterialReactTable.d.ts +0 -7
  36. package/dist/types/aggregationFns.d.ts +0 -11
  37. package/dist/types/body/MRT_TableBody.d.ts +0 -13
  38. package/dist/types/body/MRT_TableBodyCell.d.ts +0 -15
  39. package/dist/types/body/MRT_TableBodyCellValue.d.ts +0 -8
  40. package/dist/types/body/MRT_TableBodyRow.d.ts +0 -18
  41. package/dist/types/body/MRT_TableBodyRowGrabHandle.d.ts +0 -10
  42. package/dist/types/body/MRT_TableBodyRowPinButton.d.ts +0 -8
  43. package/dist/types/body/MRT_TableDetailPanel.d.ts +0 -13
  44. package/dist/types/body/index.d.ts +0 -7
  45. package/dist/types/buttons/MRT_ColumnPinningButtons.d.ts +0 -8
  46. package/dist/types/buttons/MRT_CopyButton.d.ts +0 -8
  47. package/dist/types/buttons/MRT_EditActionButtons.d.ts +0 -9
  48. package/dist/types/buttons/MRT_ExpandAllButton.d.ts +0 -7
  49. package/dist/types/buttons/MRT_ExpandButton.d.ts +0 -8
  50. package/dist/types/buttons/MRT_GrabHandleButton.d.ts +0 -12
  51. package/dist/types/buttons/MRT_RowPinButton.d.ts +0 -10
  52. package/dist/types/buttons/MRT_ShowHideColumnsButton.d.ts +0 -7
  53. package/dist/types/buttons/MRT_ToggleDensePaddingButton.d.ts +0 -7
  54. package/dist/types/buttons/MRT_ToggleFiltersButton.d.ts +0 -7
  55. package/dist/types/buttons/MRT_ToggleFullScreenButton.d.ts +0 -7
  56. package/dist/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +0 -7
  57. package/dist/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +0 -9
  58. package/dist/types/buttons/index.d.ts +0 -13
  59. package/dist/types/column.utils.d.ts +0 -127
  60. package/dist/types/filterFns.d.ts +0 -69
  61. package/dist/types/footer/MRT_TableFooter.d.ts +0 -11
  62. package/dist/types/footer/MRT_TableFooterCell.d.ts +0 -8
  63. package/dist/types/footer/MRT_TableFooterRow.d.ts +0 -12
  64. package/dist/types/footer/index.d.ts +0 -3
  65. package/dist/types/head/MRT_TableHead.d.ts +0 -11
  66. package/dist/types/head/MRT_TableHeadCell.d.ts +0 -8
  67. package/dist/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +0 -8
  68. package/dist/types/head/MRT_TableHeadCellFilterContainer.d.ts +0 -8
  69. package/dist/types/head/MRT_TableHeadCellFilterLabel.d.ts +0 -8
  70. package/dist/types/head/MRT_TableHeadCellGrabHandle.d.ts +0 -10
  71. package/dist/types/head/MRT_TableHeadCellResizeHandle.d.ts +0 -8
  72. package/dist/types/head/MRT_TableHeadCellSortLabel.d.ts +0 -8
  73. package/dist/types/head/MRT_TableHeadRow.d.ts +0 -12
  74. package/dist/types/head/index.d.ts +0 -9
  75. package/dist/types/hooks/index.d.ts +0 -4
  76. package/dist/types/hooks/useMRT_DisplayColumns.d.ts +0 -9
  77. package/dist/types/hooks/useMRT_Effects.d.ts +0 -2
  78. package/dist/types/hooks/useMRT_TableInstance.d.ts +0 -2
  79. package/dist/types/hooks/useMRT_TableOptions.d.ts +0 -22
  80. package/dist/types/icons.d.ts +0 -36
  81. package/dist/types/index.d.ts +0 -18
  82. package/dist/types/inputs/MRT_EditCellTextField.d.ts +0 -8
  83. package/dist/types/inputs/MRT_FilterCheckbox.d.ts +0 -8
  84. package/dist/types/inputs/MRT_FilterRangeFields.d.ts +0 -8
  85. package/dist/types/inputs/MRT_FilterRangeSlider.d.ts +0 -8
  86. package/dist/types/inputs/MRT_FilterTextField.d.ts +0 -9
  87. package/dist/types/inputs/MRT_GlobalFilterTextField.d.ts +0 -7
  88. package/dist/types/inputs/MRT_SelectCheckbox.d.ts +0 -9
  89. package/dist/types/inputs/index.d.ts +0 -7
  90. package/dist/types/locales/am.d.ts +0 -2
  91. package/dist/types/locales/ar.d.ts +0 -2
  92. package/dist/types/locales/az.d.ts +0 -2
  93. package/dist/types/locales/bg.d.ts +0 -2
  94. package/dist/types/locales/cs.d.ts +0 -2
  95. package/dist/types/locales/da.d.ts +0 -2
  96. package/dist/types/locales/de.d.ts +0 -2
  97. package/dist/types/locales/en.d.ts +0 -2
  98. package/dist/types/locales/es.d.ts +0 -2
  99. package/dist/types/locales/et.d.ts +0 -2
  100. package/dist/types/locales/fa.d.ts +0 -2
  101. package/dist/types/locales/fi.d.ts +0 -2
  102. package/dist/types/locales/fr.d.ts +0 -2
  103. package/dist/types/locales/hu.d.ts +0 -2
  104. package/dist/types/locales/hy.d.ts +0 -2
  105. package/dist/types/locales/id.d.ts +0 -2
  106. package/dist/types/locales/it.d.ts +0 -2
  107. package/dist/types/locales/ja.d.ts +0 -2
  108. package/dist/types/locales/ko.d.ts +0 -2
  109. package/dist/types/locales/nl.d.ts +0 -2
  110. package/dist/types/locales/no.d.ts +0 -2
  111. package/dist/types/locales/np.d.ts +0 -2
  112. package/dist/types/locales/pl.d.ts +0 -2
  113. package/dist/types/locales/pt-BR.d.ts +0 -2
  114. package/dist/types/locales/pt.d.ts +0 -2
  115. package/dist/types/locales/ro.d.ts +0 -2
  116. package/dist/types/locales/ru.d.ts +0 -2
  117. package/dist/types/locales/sk.d.ts +0 -2
  118. package/dist/types/locales/sr-Cyrl-RS.d.ts +0 -2
  119. package/dist/types/locales/sr-Latn-RS.d.ts +0 -2
  120. package/dist/types/locales/sv.d.ts +0 -2
  121. package/dist/types/locales/tr.d.ts +0 -2
  122. package/dist/types/locales/uk.d.ts +0 -2
  123. package/dist/types/locales/vi.d.ts +0 -2
  124. package/dist/types/locales/zh-Hans.d.ts +0 -2
  125. package/dist/types/locales/zh-Hant.d.ts +0 -2
  126. package/dist/types/menus/MRT_ColumnActionMenu.d.ts +0 -20
  127. package/dist/types/menus/MRT_FilterOptionMenu.d.ts +0 -13
  128. package/dist/types/menus/MRT_RowActionMenu.d.ts +0 -12
  129. package/dist/types/menus/MRT_ShowHideColumnsMenu.d.ts +0 -10
  130. package/dist/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +0 -12
  131. package/dist/types/menus/index.d.ts +0 -5
  132. package/dist/types/modals/MRT_EditRowModal.d.ts +0 -8
  133. package/dist/types/modals/index.d.ts +0 -1
  134. package/dist/types/sortingFns.d.ts +0 -12
  135. package/dist/types/style.utils.d.ts +0 -32
  136. package/dist/types/table/MRT_Table.d.ts +0 -7
  137. package/dist/types/table/MRT_TableContainer.d.ts +0 -7
  138. package/dist/types/table/MRT_TableLoadingOverlay.d.ts +0 -7
  139. package/dist/types/table/MRT_TablePaper.d.ts +0 -7
  140. package/dist/types/table/index.d.ts +0 -5
  141. package/dist/types/toolbar/MRT_BottomToolbar.d.ts +0 -7
  142. package/dist/types/toolbar/MRT_LinearProgressBar.d.ts +0 -8
  143. package/dist/types/toolbar/MRT_TablePagination.d.ts +0 -14
  144. package/dist/types/toolbar/MRT_ToolbarAlertBanner.d.ts +0 -8
  145. package/dist/types/toolbar/MRT_ToolbarDropZone.d.ts +0 -7
  146. package/dist/types/toolbar/MRT_ToolbarInternalButtons.d.ts +0 -7
  147. package/dist/types/toolbar/MRT_TopToolbar.d.ts +0 -6
  148. package/dist/types/toolbar/index.d.ts +0 -7
  149. package/dist/types/types.d.ts +0 -854
  150. package/dist/types/useMaterialReactTable.d.ts +0 -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';
@@ -22,7 +22,7 @@ import Collapse from '@mui/material/Collapse';
22
22
  import { compareItems, rankItem, rankings } from '@tanstack/match-sorter-utils';
23
23
  import TableFooter from '@mui/material/TableFooter';
24
24
  import TableHead from '@mui/material/TableHead';
25
- import { alpha as alpha$1 } from '@mui/material';
25
+ import { alpha as alpha$1, useTheme as useTheme$1 } from '@mui/material';
26
26
  import ListItemIcon from '@mui/material/ListItemIcon';
27
27
  import Menu from '@mui/material/Menu';
28
28
  import Checkbox from '@mui/material/Checkbox';
@@ -595,7 +595,9 @@ const MRT_EditCellTextField = (_a) => {
595
595
  ? columnDef.header
596
596
  : undefined, margin: "none", name: column.id, placeholder: !['custom', 'modal'].includes((isCreating ? createDisplayMode : editDisplayMode))
597
597
  ? columnDef.header
598
- : undefined, select: isSelectEdit, size: "small", value: value, variant: "standard" }, textFieldProps, { InputProps: Object.assign(Object.assign({ disableUnderline: editDisplayMode === 'table' }, textFieldProps.InputProps), { sx: (theme) => {
598
+ : undefined, select: isSelectEdit, size: "small", value: value, variant: "standard" }, textFieldProps, { InputProps: Object.assign(Object.assign(Object.assign({}, (textFieldProps.variant !== 'outlined'
599
+ ? { disableUnderline: editDisplayMode === 'table' }
600
+ : {})), textFieldProps.InputProps), { sx: (theme) => {
599
601
  var _a;
600
602
  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)));
601
603
  } }), inputProps: Object.assign({ autoComplete: 'new-password' }, textFieldProps.inputProps), onBlur: handleBlur, onChange: handleChange, onClick: (e) => {
@@ -617,7 +619,7 @@ const MRT_TableBodyCell = (_a) => {
617
619
  var _b, _c, _d, _e, _f;
618
620
  var { cell, measureElement, numRows, rowIndex, rowRef, table, virtualIndex } = _a, rest = __rest(_a, ["cell", "measureElement", "numRows", "rowIndex", "rowRef", "table", "virtualIndex"]);
619
621
  const theme = useTheme();
620
- const { getState, options: { columnResizeMode, createDisplayMode, editDisplayMode, enableClickToCopy, enableColumnOrdering, enableEditing, enableGrouping, enableRowNumbers, layoutMode, muiSkeletonProps, muiTableBodyCellProps, rowNumberDisplayMode, }, refs: { editInputRefs }, setEditingCell, setHoveredColumn, } = table;
622
+ const { getState, options: { columnResizeDirection, columnResizeMode, createDisplayMode, editDisplayMode, enableClickToCopy, enableColumnOrdering, enableEditing, enableGrouping, enableRowNumbers, layoutMode, muiSkeletonProps, muiTableBodyCellProps, rowNumberDisplayMode, }, refs: { editInputRefs }, setEditingCell, setHoveredColumn, } = table;
621
623
  const { columnSizingInfo, creatingRow, density, draggingColumn, draggingRow, editingCell, editingRow, hoveredColumn, hoveredRow, isLoading, showSkeletons, } = getState();
622
624
  const { column, row } = cell;
623
625
  const { columnDef } = column;
@@ -648,23 +650,23 @@ const MRT_TableBodyCell = (_a) => {
648
650
  const isFirstColumn = getIsFirstColumn(column, table);
649
651
  const isLastColumn = getIsLastColumn(column, table);
650
652
  const isLastRow = numRows && rowIndex === numRows - 1;
651
- const showResizeBorder = columnSizingInfo.isResizingColumn === column.id &&
652
- columnResizeMode === 'onChange';
653
+ const isResizingColumn = columnSizingInfo.isResizingColumn === column.id;
654
+ const showResizeBorder = isResizingColumn && columnResizeMode === 'onChange';
653
655
  const borderStyle = showResizeBorder
654
656
  ? `2px solid ${draggingBorderColor} !important`
655
657
  : isDraggingColumn || isDraggingRow
656
658
  ? `1px dashed ${theme.palette.grey[500]} !important`
657
- : isHoveredColumn ||
658
- isHoveredRow ||
659
- columnSizingInfo.isResizingColumn === column.id
659
+ : isHoveredColumn || isHoveredRow || isResizingColumn
660
660
  ? `2px dashed ${draggingBorderColor} !important`
661
661
  : undefined;
662
662
  if (showResizeBorder) {
663
- return { borderRight: borderStyle };
663
+ return columnResizeDirection === 'ltr'
664
+ ? { borderRight: borderStyle }
665
+ : { borderLeft: borderStyle };
664
666
  }
665
667
  return borderStyle
666
668
  ? {
667
- borderBottom: isDraggingRow || isHoveredRow || isLastRow
669
+ borderBottom: isDraggingRow || isHoveredRow || (isLastRow && !isResizingColumn)
668
670
  ? borderStyle
669
671
  : undefined,
670
672
  borderLeft: isDraggingColumn ||
@@ -688,7 +690,8 @@ const MRT_TableBodyCell = (_a) => {
688
690
  hoveredRow,
689
691
  rowIndex,
690
692
  ]);
691
- const isEditable = parseFromValuesOrFunc(enableEditing, row) &&
693
+ const isEditable = !cell.getIsPlaceholder() &&
694
+ parseFromValuesOrFunc(enableEditing, row) &&
692
695
  parseFromValuesOrFunc(columnDef.enableEditing, row) !== false;
693
696
  const isEditing = isEditable &&
694
697
  !['custom', 'modal'].includes(editDisplayMode) &&
@@ -727,7 +730,8 @@ const MRT_TableBodyCell = (_a) => {
727
730
  measureElement === null || measureElement === void 0 ? void 0 : measureElement(node);
728
731
  }
729
732
  } }, tableCellProps, { onDoubleClick: handleDoubleClick, onDragEnter: handleDragEnter, sx: (theme) => (Object.assign(Object.assign({ '&:hover': {
730
- outline: ['cell', 'table'].includes(editDisplayMode !== null && editDisplayMode !== void 0 ? editDisplayMode : '') && isEditable
733
+ outline: (editDisplayMode === 'cell' && isEditable) ||
734
+ (editDisplayMode === 'table' && (isCreating || isEditing))
731
735
  ? `1px solid ${theme.palette.grey[500]}`
732
736
  : undefined,
733
737
  outlineOffset: '-1px',
@@ -1642,7 +1646,7 @@ const MRT_FilterTextField = (_a) => {
1642
1646
  lineHeight: '0.8rem',
1643
1647
  whiteSpace: 'nowrap',
1644
1648
  },
1645
- }, InputProps: endAdornment //hack because mui looks for presense of endAdornment key instead of undefined
1649
+ }, InputProps: endAdornment //hack because mui looks for presence of endAdornment key instead of undefined
1646
1650
  ? { endAdornment, startAdornment }
1647
1651
  : { startAdornment }, fullWidth: true, helperText: showChangeModeButton ? (jsx("label", { children: localization.filterMode.replace('{filterType}',
1648
1652
  // @ts-ignore
@@ -1886,15 +1890,22 @@ const MRT_TableHeadCellGrabHandle = (_a) => {
1886
1890
  const MRT_TableHeadCellResizeHandle = (_a) => {
1887
1891
  var _b;
1888
1892
  var { header, table } = _a, rest = __rest(_a, ["header", "table"]);
1889
- const { getState, options: { columnResizeMode }, setColumnSizingInfo, } = table;
1893
+ const { getState, options: { columnResizeDirection, columnResizeMode }, setColumnSizingInfo, } = table;
1890
1894
  const { density } = getState();
1891
1895
  const { column } = header;
1896
+ const mx = density === 'compact'
1897
+ ? '-8px'
1898
+ : density === 'comfortable'
1899
+ ? '-16px'
1900
+ : '-24px';
1901
+ const lr = column.columnDef.columnDefType === 'display' ? '4px' : '0';
1892
1902
  return (jsx(Box, { className: "Mui-TableHeadCell-ResizeHandle-Wrapper", onDoubleClick: () => {
1893
1903
  setColumnSizingInfo((old) => (Object.assign(Object.assign({}, old), { isResizingColumn: false })));
1894
1904
  column.resetSize();
1895
1905
  }, onMouseDown: header.getResizeHandler(), onTouchStart: header.getResizeHandler(), style: {
1896
1906
  transform: column.getIsResizing() && columnResizeMode === 'onEnd'
1897
- ? `translateX(${(_b = getState().columnSizingInfo.deltaOffset) !== null && _b !== void 0 ? _b : 0}px)`
1907
+ ? `translateX(${(columnResizeDirection === 'rtl' ? -1 : 1) *
1908
+ ((_b = getState().columnSizingInfo.deltaOffset) !== null && _b !== void 0 ? _b : 0)}px)`
1898
1909
  : undefined,
1899
1910
  }, sx: (theme) => ({
1900
1911
  '&:active > hr': {
@@ -1902,15 +1913,13 @@ const MRT_TableHeadCellResizeHandle = (_a) => {
1902
1913
  opacity: header.subHeaders.length || columnResizeMode === 'onEnd' ? 1 : 0,
1903
1914
  },
1904
1915
  cursor: 'col-resize',
1905
- mr: density === 'compact'
1906
- ? '-12px'
1907
- : density === 'comfortable'
1908
- ? '-20px'
1909
- : '-28px',
1916
+ left: columnResizeDirection === 'rtl' ? lr : undefined,
1917
+ ml: columnResizeDirection === 'rtl' ? mx : undefined,
1918
+ mr: columnResizeDirection === 'ltr' ? mx : undefined,
1910
1919
  position: 'absolute',
1911
1920
  px: '4px',
1912
- right: column.columnDef.columnDefType === 'display' ? '4px' : '0',
1913
- }), 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()
1921
+ right: columnResizeDirection === 'ltr' ? lr : undefined,
1922
+ }), 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()
1914
1923
  ? undefined
1915
1924
  : 'all 150ms ease-in-out', userSelect: 'none', zIndex: 4 }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))) }) }));
1916
1925
  };
@@ -1953,7 +1962,7 @@ const MRT_TableHeadCell = (_a) => {
1953
1962
  var _b, _c, _d, _f, _g, _h;
1954
1963
  var { header, table } = _a, rest = __rest(_a, ["header", "table"]);
1955
1964
  const theme = useTheme();
1956
- const { getState, options: { columnFilterDisplayMode, columnResizeMode, enableColumnActions, enableColumnDragging, enableColumnOrdering, enableGrouping, enableMultiSort, layoutMode, muiTableHeadCellProps, }, refs: { tableHeadCellRefs }, setHoveredColumn, } = table;
1965
+ const { getState, options: { columnFilterDisplayMode, columnResizeDirection, columnResizeMode, enableColumnActions, enableColumnDragging, enableColumnOrdering, enableGrouping, enableMultiSort, layoutMode, muiTableHeadCellProps, }, refs: { tableHeadCellRefs }, setHoveredColumn, } = table;
1957
1966
  const { columnSizingInfo, density, draggingColumn, grouping, hoveredColumn, showColumnFilters, } = getState();
1958
1967
  const { column } = header;
1959
1968
  const { columnDef } = column;
@@ -1994,7 +2003,9 @@ const MRT_TableHeadCell = (_a) => {
1994
2003
  ? `2px dashed ${draggingBorderColor}`
1995
2004
  : undefined;
1996
2005
  if (showResizeBorder) {
1997
- return { borderRight: borderStyle };
2006
+ return columnResizeDirection === 'ltr'
2007
+ ? { borderRight: borderStyle }
2008
+ : { borderLeft: borderStyle };
1998
2009
  }
1999
2010
  const draggingBorders = borderStyle
2000
2011
  ? {
@@ -2087,7 +2098,9 @@ const MRT_TableHeadCell = (_a) => {
2087
2098
  whiteSpace: ((_h = (_g = columnDef.header) === null || _g === void 0 ? void 0 : _g.length) !== null && _h !== void 0 ? _h : 0) < 20
2088
2099
  ? 'nowrap'
2089
2100
  : 'normal',
2090
- }, 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: {
2101
+ }, 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: {
2102
+ whiteSpace: 'nowrap',
2103
+ }, children: [showDragHandle && (jsx(MRT_TableHeadCellGrabHandle, { column: column, table: table, tableHeadCellRef: {
2091
2104
  current: tableHeadCellRefs.current[column.id],
2092
2105
  } })), 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 }))] })));
2093
2106
  };
@@ -2136,7 +2149,7 @@ const MRT_TablePagination = (_a) => {
2136
2149
  const showFirstLastPageButtons = numberOfPages > 2;
2137
2150
  const firstRowIndex = pageIndex * pageSize;
2138
2151
  const lastRowIndex = Math.min(pageIndex * pageSize + pageSize, totalRowCount);
2139
- 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"]);
2152
+ 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"]);
2140
2153
  return (jsxs(Box, { className: "MuiTablePagination-root", sx: {
2141
2154
  alignItems: 'center',
2142
2155
  display: 'flex',
@@ -2153,17 +2166,17 @@ const MRT_TablePagination = (_a) => {
2153
2166
  px: '8px',
2154
2167
  py: '12px',
2155
2168
  zIndex: 2,
2156
- }, 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) => {
2169
+ }, 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) => {
2157
2170
  var _a;
2158
2171
  const value = typeof option !== 'number' ? option.value : option;
2159
2172
  const label = typeof option !== 'number' ? option.label : `${option}`;
2160
2173
  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))));
2161
- }) }))] })), paginationDisplayMode === 'pages' ? (jsx(Pagination, Object.assign({ count: numberOfPages, onChange: (_e, newPageIndex) => setPageIndex(newPageIndex - 1), page: pageIndex + 1, renderItem: (item) => (jsx(PaginationItem, Object.assign({ slots: {
2174
+ }) }))] })), 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: {
2162
2175
  first: FirstPageIcon,
2163
2176
  last: LastPageIcon,
2164
2177
  next: ChevronRightIcon,
2165
2178
  previous: ChevronLeftIcon,
2166
- } }, 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] }));
2179
+ } }, 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] }));
2167
2180
  };
2168
2181
 
2169
2182
  const MRT_GlobalFilterTextField = (_a) => {
@@ -2979,225 +2992,579 @@ const MRT_ToggleRowActionMenuButton = (_a) => {
2979
2992
  ['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 }));
2980
2993
  };
2981
2994
 
2982
- const MRT_AggregationFns = Object.assign({}, aggregationFns);
2983
-
2984
- const fuzzy = (row, columnId, filterValue, addMeta) => {
2985
- const itemRank = rankItem(row.getValue(columnId), filterValue, {
2986
- threshold: rankings.MATCHES,
2987
- });
2988
- addMeta(itemRank);
2989
- return itemRank.passed;
2995
+ const useMRT_DisplayColumns = (params) => {
2996
+ var _a, _b, _c, _d;
2997
+ const { columnOrder, creatingRow, grouping, tableOptions } = params;
2998
+ const order = (_b = (_a = tableOptions.state) === null || _a === void 0 ? void 0 : _a.columnOrder) !== null && _b !== void 0 ? _b : columnOrder;
2999
+ return useMemo(() => [
3000
+ makeRowPinColumn,
3001
+ makeRowDragColumn,
3002
+ makeRowActionsColumn,
3003
+ makeRowExpandColumn,
3004
+ makeRowSelectColumn,
3005
+ makeRowNumbersColumn,
3006
+ makeSpacerColumn,
3007
+ ]
3008
+ .map((makeCol) => makeCol(params, order))
3009
+ .filter(Boolean), [
3010
+ columnOrder,
3011
+ creatingRow,
3012
+ grouping,
3013
+ tableOptions.displayColumnDefOptions,
3014
+ tableOptions.editDisplayMode,
3015
+ tableOptions.enableColumnDragging,
3016
+ tableOptions.enableColumnFilterModes,
3017
+ tableOptions.enableColumnOrdering,
3018
+ tableOptions.enableEditing,
3019
+ tableOptions.enableExpandAll,
3020
+ tableOptions.enableExpanding,
3021
+ tableOptions.enableGrouping,
3022
+ tableOptions.enableRowActions,
3023
+ tableOptions.enableRowDragging,
3024
+ tableOptions.enableRowNumbers,
3025
+ tableOptions.enableRowOrdering,
3026
+ tableOptions.enableRowSelection,
3027
+ tableOptions.enableSelectAll,
3028
+ tableOptions.localization,
3029
+ tableOptions.positionActionsColumn,
3030
+ tableOptions.renderDetailPanel,
3031
+ tableOptions.renderRowActionMenuItems,
3032
+ tableOptions.renderRowActions,
3033
+ (_c = tableOptions.state) === null || _c === void 0 ? void 0 : _c.columnOrder,
3034
+ (_d = tableOptions.state) === null || _d === void 0 ? void 0 : _d.grouping,
3035
+ ]);
2990
3036
  };
2991
- fuzzy.autoRemove = (val) => !val;
2992
- const contains = (row, id, filterValue) => row
2993
- .getValue(id)
2994
- .toString()
2995
- .toLowerCase()
2996
- .trim()
2997
- .includes(filterValue.toString().toLowerCase().trim());
2998
- contains.autoRemove = (val) => !val;
2999
- const startsWith = (row, id, filterValue) => row
3000
- .getValue(id)
3001
- .toString()
3002
- .toLowerCase()
3003
- .trim()
3004
- .startsWith(filterValue.toString().toLowerCase().trim());
3005
- startsWith.autoRemove = (val) => !val;
3006
- const endsWith = (row, id, filterValue) => row
3007
- .getValue(id)
3008
- .toString()
3009
- .toLowerCase()
3010
- .trim()
3011
- .endsWith(filterValue.toString().toLowerCase().trim());
3012
- endsWith.autoRemove = (val) => !val;
3013
- const equals = (row, id, filterValue) => row.getValue(id).toString().toLowerCase().trim() ===
3014
- (filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString().toLowerCase().trim());
3015
- equals.autoRemove = (val) => !val;
3016
- const notEquals = (row, id, filterValue) => row.getValue(id).toString().toLowerCase().trim() !==
3017
- filterValue.toString().toLowerCase().trim();
3018
- notEquals.autoRemove = (val) => !val;
3019
- const greaterThan = (row, id, filterValue) => !isNaN(+filterValue) && !isNaN(+row.getValue(id))
3020
- ? +row.getValue(id) > +filterValue
3021
- : row.getValue(id).toString().toLowerCase().trim() >
3022
- (filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString().toLowerCase().trim());
3023
- greaterThan.autoRemove = (val) => !val;
3024
- const greaterThanOrEqualTo = (row, id, filterValue) => equals(row, id, filterValue) || greaterThan(row, id, filterValue);
3025
- greaterThanOrEqualTo.autoRemove = (val) => !val;
3026
- const lessThan = (row, id, filterValue) => !isNaN(+filterValue) && !isNaN(+row.getValue(id))
3027
- ? +row.getValue(id) < +filterValue
3028
- : row.getValue(id).toString().toLowerCase().trim() <
3029
- (filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString().toLowerCase().trim());
3030
- lessThan.autoRemove = (val) => !val;
3031
- const lessThanOrEqualTo = (row, id, filterValue) => equals(row, id, filterValue) || lessThan(row, id, filterValue);
3032
- lessThanOrEqualTo.autoRemove = (val) => !val;
3033
- const between = (row, id, filterValues) => (['', undefined].includes(filterValues[0]) ||
3034
- greaterThan(row, id, filterValues[0])) &&
3035
- ((!isNaN(+filterValues[0]) &&
3036
- !isNaN(+filterValues[1]) &&
3037
- +filterValues[0] > +filterValues[1]) ||
3038
- ['', undefined].includes(filterValues[1]) ||
3039
- lessThan(row, id, filterValues[1]));
3040
- between.autoRemove = (val) => !val;
3041
- const betweenInclusive = (row, id, filterValues) => (['', undefined].includes(filterValues[0]) ||
3042
- greaterThanOrEqualTo(row, id, filterValues[0])) &&
3043
- ((!isNaN(+filterValues[0]) &&
3044
- !isNaN(+filterValues[1]) &&
3045
- +filterValues[0] > +filterValues[1]) ||
3046
- ['', undefined].includes(filterValues[1]) ||
3047
- lessThanOrEqualTo(row, id, filterValues[1]));
3048
- betweenInclusive.autoRemove = (val) => !val;
3049
- const empty = (row, id, _filterValue) => !row.getValue(id).toString().trim();
3050
- empty.autoRemove = (val) => !val;
3051
- const notEmpty = (row, id, _filterValue) => !!row.getValue(id).toString().trim();
3052
- notEmpty.autoRemove = (val) => !val;
3053
- const MRT_FilterFns = Object.assign(Object.assign({}, filterFns), { between,
3054
- betweenInclusive,
3055
- contains,
3056
- empty,
3057
- endsWith,
3058
- equals,
3059
- fuzzy,
3060
- greaterThan,
3061
- greaterThanOrEqualTo,
3062
- lessThan,
3063
- lessThanOrEqualTo,
3064
- notEmpty,
3065
- notEquals,
3066
- startsWith });
3037
+ function defaultDisplayColumnProps({ defaultDisplayColumn, displayColumnDefOptions, localization, }, id, header, size = 60) {
3038
+ 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 });
3039
+ }
3040
+ function makeRowPinColumn({ tableOptions }, order) {
3041
+ const id = 'mrt-row-pin';
3042
+ if (order.includes(id)) {
3043
+ return Object.assign({ Cell: ({ row, table }) => (jsx(MRT_TableBodyRowPinButton, { row: row, table: table })) }, defaultDisplayColumnProps(tableOptions, id, 'pin'));
3044
+ }
3045
+ return null;
3046
+ }
3047
+ function makeRowDragColumn({ tableOptions }, order) {
3048
+ const id = 'mrt-row-drag';
3049
+ if (order.includes(id)) {
3050
+ return Object.assign({ Cell: ({ row, rowRef, table }) => (jsx(MRT_TableBodyRowGrabHandle, { row: row, rowRef: rowRef, table: table })) }, defaultDisplayColumnProps(tableOptions, id, 'move'));
3051
+ }
3052
+ return null;
3053
+ }
3054
+ function makeRowActionsColumn({ creatingRow, tableOptions }, order) {
3055
+ const id = 'mrt-row-actions';
3056
+ if (order.includes(id) ||
3057
+ (creatingRow && tableOptions.createDisplayMode === 'row')) {
3058
+ return Object.assign({ Cell: ({ cell, row, table }) => (jsx(MRT_ToggleRowActionMenuButton, { cell: cell, row: row, table: table })) }, defaultDisplayColumnProps(tableOptions, id, 'actions'));
3059
+ }
3060
+ return null;
3061
+ }
3062
+ function makeRowExpandColumn({ grouping, tableOptions }, order) {
3063
+ var _a, _b;
3064
+ const id = 'mrt-row-expand';
3065
+ if (order.includes(id) &&
3066
+ showExpandColumn(tableOptions, (_b = (_a = tableOptions.state) === null || _a === void 0 ? void 0 : _a.grouping) !== null && _b !== void 0 ? _b : grouping)) {
3067
+ return Object.assign({ Cell: ({ row, table }) => jsx(MRT_ExpandButton, { row: row, table: table }), Header: tableOptions.enableExpandAll
3068
+ ? ({ table }) => jsx(MRT_ExpandAllButton, { table: table })
3069
+ : undefined }, defaultDisplayColumnProps(tableOptions, id, 'expand'));
3070
+ }
3071
+ return null;
3072
+ }
3073
+ function makeRowSelectColumn({ tableOptions }, order) {
3074
+ const id = 'mrt-row-select';
3075
+ if (order.includes(id)) {
3076
+ return Object.assign({ Cell: ({ row, table }) => jsx(MRT_SelectCheckbox, { row: row, table: table }), Header: tableOptions.enableSelectAll && tableOptions.enableMultiRowSelection
3077
+ ? ({ table }) => jsx(MRT_SelectCheckbox, { selectAll: true, table: table })
3078
+ : undefined }, defaultDisplayColumnProps(tableOptions, id, 'select'));
3079
+ }
3080
+ return null;
3081
+ }
3082
+ function makeRowNumbersColumn({ tableOptions }, order) {
3083
+ const id = 'mrt-row-numbers';
3084
+ if (order.includes(id) || tableOptions.enableRowNumbers)
3085
+ return Object.assign({ Cell: ({ row }) => row.index + 1, Header: () => tableOptions.localization.rowNumber }, defaultDisplayColumnProps(tableOptions, id, 'rowNumbers'));
3086
+ return null;
3087
+ }
3088
+ const blankColProps = {
3089
+ children: null,
3090
+ sx: {
3091
+ flex: '1 0 auto',
3092
+ minWidth: 0,
3093
+ p: 0,
3094
+ width: 0,
3095
+ },
3096
+ };
3097
+ function makeSpacerColumn({ tableOptions }, order) {
3098
+ const id = 'mrt-row-spacer';
3099
+ if (order.includes(id)) {
3100
+ return Object.assign(Object.assign({}, defaultDisplayColumnProps(tableOptions, id, undefined, 0)), { muiTableBodyCellProps: blankColProps, muiTableFooterCellProps: blankColProps, muiTableHeadCellProps: blankColProps });
3101
+ }
3102
+ return null;
3103
+ }
3067
3104
 
3068
- const MRT_Default_Icons = {
3069
- ArrowDownwardIcon,
3070
- ArrowRightIcon,
3071
- CancelIcon,
3072
- ChevronLeftIcon,
3073
- ChevronRightIcon,
3074
- ClearAllIcon,
3075
- CloseIcon,
3076
- DensityLargeIcon,
3077
- DensityMediumIcon,
3078
- DensitySmallIcon,
3079
- DragHandleIcon,
3080
- DynamicFeedIcon,
3081
- EditIcon,
3082
- ExpandMoreIcon,
3083
- FilterAltIcon,
3084
- FilterListIcon,
3085
- FilterListOffIcon,
3086
- FirstPageIcon,
3087
- FullscreenExitIcon,
3088
- FullscreenIcon,
3089
- KeyboardDoubleArrowDownIcon,
3090
- LastPageIcon,
3091
- MoreHorizIcon,
3092
- MoreVertIcon,
3093
- PushPinIcon,
3094
- RestartAltIcon,
3095
- SaveIcon,
3096
- SearchIcon,
3097
- SearchOffIcon,
3098
- SortIcon,
3099
- SyncAltIcon,
3100
- ViewColumnIcon,
3101
- VisibilityOffIcon,
3105
+ const useMRT_Effects = (table) => {
3106
+ const { getIsSomeRowsPinned, getState, options: { enablePagination, enableRowPinning, rowCount }, } = table;
3107
+ const { density, globalFilter, isFullScreen, isLoading, pagination, showSkeletons, sorting, } = getState();
3108
+ const rerender = useReducer(() => ({}), {})[1];
3109
+ const isMounted = useRef(false);
3110
+ const initialBodyHeight = useRef();
3111
+ const previousTop = useRef();
3112
+ useEffect(() => {
3113
+ if (typeof window !== 'undefined') {
3114
+ initialBodyHeight.current = document.body.style.height;
3115
+ }
3116
+ }, []);
3117
+ useEffect(() => {
3118
+ if (isMounted && typeof window !== 'undefined') {
3119
+ if (isFullScreen) {
3120
+ previousTop.current = document.body.getBoundingClientRect().top; //save scroll position
3121
+ document.body.style.height = '100vh'; //hide page scrollbars when table is in full screen mode
3122
+ }
3123
+ else {
3124
+ document.body.style.height = initialBodyHeight.current;
3125
+ if (!previousTop.current)
3126
+ return;
3127
+ //restore scroll position
3128
+ window.scrollTo({
3129
+ behavior: 'instant',
3130
+ top: -1 * previousTop.current,
3131
+ });
3132
+ }
3133
+ }
3134
+ isMounted.current = true;
3135
+ }, [isFullScreen]);
3136
+ //if page index is out of bounds, set it to the last page
3137
+ useEffect(() => {
3138
+ if (!enablePagination || isLoading || showSkeletons)
3139
+ return;
3140
+ const { pageIndex, pageSize } = pagination;
3141
+ const totalRowCount = rowCount !== null && rowCount !== void 0 ? rowCount : table.getPrePaginationRowModel().rows.length;
3142
+ const firstVisibleRowIndex = pageIndex * pageSize;
3143
+ if (firstVisibleRowIndex > totalRowCount) {
3144
+ table.setPageIndex(Math.floor(totalRowCount / pageSize));
3145
+ }
3146
+ }, [rowCount, table.getPrePaginationRowModel().rows.length]);
3147
+ //turn off sort when global filter is looking for ranked results
3148
+ const appliedSort = useRef(sorting);
3149
+ useEffect(() => {
3150
+ if (sorting.length) {
3151
+ appliedSort.current = sorting;
3152
+ }
3153
+ }, [sorting]);
3154
+ useEffect(() => {
3155
+ if (!getCanRankRows(table))
3156
+ return;
3157
+ if (globalFilter) {
3158
+ table.setSorting([]);
3159
+ }
3160
+ else {
3161
+ table.setSorting(() => appliedSort.current || []);
3162
+ }
3163
+ }, [globalFilter]);
3164
+ useEffect(() => {
3165
+ if (enableRowPinning && getIsSomeRowsPinned()) {
3166
+ setTimeout(() => {
3167
+ rerender();
3168
+ }, 150);
3169
+ }
3170
+ }, [density]);
3102
3171
  };
3103
3172
 
3104
- const MRT_Localization_EN = {
3105
- actions: 'Actions',
3106
- and: 'and',
3107
- cancel: 'Cancel',
3108
- changeFilterMode: 'Change filter mode',
3109
- changeSearchMode: 'Change search mode',
3110
- clearFilter: 'Clear filter',
3111
- clearSearch: 'Clear search',
3112
- clearSort: 'Clear sort',
3113
- clickToCopy: 'Click to copy',
3114
- collapse: 'Collapse',
3115
- collapseAll: 'Collapse all',
3116
- columnActions: 'Column Actions',
3117
- copiedToClipboard: 'Copied to clipboard',
3118
- dropToGroupBy: 'Drop to group by {column}',
3119
- edit: 'Edit',
3120
- expand: 'Expand',
3121
- expandAll: 'Expand all',
3122
- filterArrIncludes: 'Includes',
3123
- filterArrIncludesAll: 'Includes all',
3124
- filterArrIncludesSome: 'Includes',
3125
- filterBetween: 'Between',
3126
- filterBetweenInclusive: 'Between Inclusive',
3127
- filterByColumn: 'Filter by {column}',
3128
- filterContains: 'Contains',
3129
- filterEmpty: 'Empty',
3130
- filterEndsWith: 'Ends With',
3131
- filterEquals: 'Equals',
3132
- filterEqualsString: 'Equals',
3133
- filterFuzzy: 'Fuzzy',
3134
- filterGreaterThan: 'Greater Than',
3135
- filterGreaterThanOrEqualTo: 'Greater Than Or Equal To',
3136
- filterInNumberRange: 'Between',
3137
- filterIncludesString: 'Contains',
3138
- filterIncludesStringSensitive: 'Contains',
3139
- filterLessThan: 'Less Than',
3140
- filterLessThanOrEqualTo: 'Less Than Or Equal To',
3141
- filterMode: 'Filter Mode: {filterType}',
3142
- filterNotEmpty: 'Not Empty',
3143
- filterNotEquals: 'Not Equals',
3144
- filterStartsWith: 'Starts With',
3145
- filterWeakEquals: 'Equals',
3146
- filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',
3147
- goToFirstPage: 'Go to first page',
3148
- goToLastPage: 'Go to last page',
3149
- goToNextPage: 'Go to next page',
3150
- goToPreviousPage: 'Go to previous page',
3151
- grab: 'Grab',
3152
- groupByColumn: 'Group by {column}',
3153
- groupedBy: 'Grouped by ',
3154
- hideAll: 'Hide all',
3155
- hideColumn: 'Hide {column} column',
3156
- max: 'Max',
3157
- min: 'Min',
3158
- move: 'Move',
3159
- noRecordsToDisplay: 'No records to display',
3160
- noResultsFound: 'No results found',
3161
- of: 'of',
3162
- or: 'or',
3163
- pin: 'Pin',
3164
- pinToLeft: 'Pin to left',
3165
- pinToRight: 'Pin to right',
3166
- resetColumnSize: 'Reset column size',
3167
- resetOrder: 'Reset order',
3168
- rowActions: 'Row Actions',
3169
- rowNumber: '#',
3170
- rowNumbers: 'Row Numbers',
3171
- rowsPerPage: 'Rows per page',
3172
- save: 'Save',
3173
- search: 'Search',
3174
- selectedCountOfRowCountRowsSelected: '{selectedCount} of {rowCount} row(s) selected',
3175
- select: 'Select',
3176
- showAll: 'Show all',
3177
- showAllColumns: 'Show all columns',
3178
- showHideColumns: 'Show/Hide columns',
3179
- showHideFilters: 'Show/Hide filters',
3180
- showHideSearch: 'Show/Hide search',
3181
- sortByColumnAsc: 'Sort by {column} ascending',
3182
- sortByColumnDesc: 'Sort by {column} descending',
3183
- sortedByColumnAsc: 'Sorted by {column} ascending',
3184
- sortedByColumnDesc: 'Sorted by {column} descending',
3185
- thenBy: ', then by ',
3186
- toggleDensity: 'Toggle density',
3187
- toggleFullScreen: 'Toggle full screen',
3188
- toggleSelectAll: 'Toggle select all',
3189
- toggleSelectRow: 'Toggle select row',
3190
- toggleVisibility: 'Toggle visibility',
3191
- ungroupByColumn: 'Ungroup by {column}',
3192
- unpin: 'Unpin',
3193
- unpinAll: 'Unpin all',
3173
+ const useMRT_TableInstance = (tableOptions) => {
3174
+ 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;
3175
+ const bottomToolbarRef = useRef(null);
3176
+ const editInputRefs = useRef({});
3177
+ const filterInputRefs = useRef({});
3178
+ const searchInputRef = useRef(null);
3179
+ const tableContainerRef = useRef(null);
3180
+ const tableHeadCellRefs = useRef({});
3181
+ const tablePaperRef = useRef(null);
3182
+ const topToolbarRef = useRef(null);
3183
+ const tableHeadRef = useRef(null);
3184
+ const tableFooterRef = useRef(null);
3185
+ const initialState = useMemo(() => {
3186
+ var _a, _b, _c;
3187
+ const initState = (_a = tableOptions.initialState) !== null && _a !== void 0 ? _a : {};
3188
+ initState.columnOrder =
3189
+ (_b = initState.columnOrder) !== null && _b !== void 0 ? _b : getDefaultColumnOrderIds(tableOptions);
3190
+ initState.globalFilterFn = (_c = tableOptions.globalFilterFn) !== null && _c !== void 0 ? _c : 'fuzzy';
3191
+ return initState;
3192
+ }, []);
3193
+ const [creatingRow, _setCreatingRow] = useState((_a = initialState.creatingRow) !== null && _a !== void 0 ? _a : null);
3194
+ const [columnFilterFns, setColumnFilterFns] = useState(() => Object.assign({}, ...getAllLeafColumnDefs(tableOptions.columns).map((col) => {
3195
+ var _a, _b, _c, _d;
3196
+ return ({
3197
+ [getColumnId(col)]: col.filterFn instanceof Function
3198
+ ? (_a = col.filterFn.name) !== null && _a !== void 0 ? _a : 'custom'
3199
+ : (_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),
3200
+ });
3201
+ })));
3202
+ const [columnOrder, setColumnOrder] = useState((_b = initialState.columnOrder) !== null && _b !== void 0 ? _b : []);
3203
+ const [density, setDensity] = useState((_c = initialState === null || initialState === void 0 ? void 0 : initialState.density) !== null && _c !== void 0 ? _c : 'comfortable');
3204
+ const [draggingColumn, setDraggingColumn] = useState((_d = initialState.draggingColumn) !== null && _d !== void 0 ? _d : null);
3205
+ const [draggingRow, setDraggingRow] = useState((_e = initialState.draggingRow) !== null && _e !== void 0 ? _e : null);
3206
+ const [editingCell, setEditingCell] = useState((_f = initialState.editingCell) !== null && _f !== void 0 ? _f : null);
3207
+ const [editingRow, setEditingRow] = useState((_g = initialState.editingRow) !== null && _g !== void 0 ? _g : null);
3208
+ const [globalFilterFn, setGlobalFilterFn] = useState((_h = initialState.globalFilterFn) !== null && _h !== void 0 ? _h : 'fuzzy');
3209
+ const [grouping, setGrouping] = useState((_j = initialState.grouping) !== null && _j !== void 0 ? _j : []);
3210
+ const [hoveredColumn, setHoveredColumn] = useState((_k = initialState.hoveredColumn) !== null && _k !== void 0 ? _k : null);
3211
+ const [hoveredRow, setHoveredRow] = useState((_l = initialState.hoveredRow) !== null && _l !== void 0 ? _l : null);
3212
+ const [isFullScreen, setIsFullScreen] = useState((_m = initialState === null || initialState === void 0 ? void 0 : initialState.isFullScreen) !== null && _m !== void 0 ? _m : false);
3213
+ const [showAlertBanner, setShowAlertBanner] = useState((_p = (_o = tableOptions.initialState) === null || _o === void 0 ? void 0 : _o.showAlertBanner) !== null && _p !== void 0 ? _p : false);
3214
+ const [showColumnFilters, setShowColumnFilters] = useState((_q = initialState === null || initialState === void 0 ? void 0 : initialState.showColumnFilters) !== null && _q !== void 0 ? _q : false);
3215
+ const [showGlobalFilter, setShowGlobalFilter] = useState((_r = initialState === null || initialState === void 0 ? void 0 : initialState.showGlobalFilter) !== null && _r !== void 0 ? _r : false);
3216
+ const [showToolbarDropZone, setShowToolbarDropZone] = useState((_s = initialState === null || initialState === void 0 ? void 0 : initialState.showToolbarDropZone) !== null && _s !== void 0 ? _s : false);
3217
+ const displayColumns = useMRT_DisplayColumns({
3218
+ columnOrder,
3219
+ creatingRow,
3220
+ grouping,
3221
+ tableOptions,
3222
+ });
3223
+ const columnDefs = useMemo(() => {
3224
+ var _a, _b, _c;
3225
+ return prepareColumns({
3226
+ aggregationFns: tableOptions.aggregationFns,
3227
+ columnDefs: [...displayColumns, ...tableOptions.columns],
3228
+ columnFilterFns: (_b = (_a = tableOptions.state) === null || _a === void 0 ? void 0 : _a.columnFilterFns) !== null && _b !== void 0 ? _b : columnFilterFns,
3229
+ defaultDisplayColumn: (_c = tableOptions.defaultDisplayColumn) !== null && _c !== void 0 ? _c : {},
3230
+ filterFns: tableOptions.filterFns,
3231
+ sortingFns: tableOptions.sortingFns,
3232
+ });
3233
+ }, [
3234
+ columnFilterFns,
3235
+ displayColumns,
3236
+ tableOptions.columns,
3237
+ (_t = tableOptions.state) === null || _t === void 0 ? void 0 : _t.columnFilterFns,
3238
+ ]);
3239
+ const data = useMemo(() => {
3240
+ var _a, _b, _c, _d, _e;
3241
+ return (((_a = tableOptions.state) === null || _a === void 0 ? void 0 : _a.isLoading) || ((_b = tableOptions.state) === null || _b === void 0 ? void 0 : _b.showSkeletons)) &&
3242
+ !tableOptions.data.length
3243
+ ? [
3244
+ ...Array(((_d = (_c = tableOptions.state) === null || _c === void 0 ? void 0 : _c.pagination) === null || _d === void 0 ? void 0 : _d.pageSize) ||
3245
+ ((_e = initialState === null || initialState === void 0 ? void 0 : initialState.pagination) === null || _e === void 0 ? void 0 : _e.pageSize) ||
3246
+ 10).fill(null),
3247
+ ].map(() => Object.assign({}, ...getAllLeafColumnDefs(tableOptions.columns).map((col) => ({
3248
+ [getColumnId(col)]: null,
3249
+ }))))
3250
+ : tableOptions.data;
3251
+ }, [
3252
+ tableOptions.data,
3253
+ (_u = tableOptions.state) === null || _u === void 0 ? void 0 : _u.isLoading,
3254
+ (_v = tableOptions.state) === null || _v === void 0 ? void 0 : _v.showSkeletons,
3255
+ ]);
3256
+ //@ts-ignore
3257
+ const table = useReactTable(Object.assign(Object.assign({ getCoreRowModel: getCoreRowModel(), getExpandedRowModel: tableOptions.enableExpanding || tableOptions.enableGrouping
3258
+ ? getExpandedRowModel()
3259
+ : undefined, getFacetedMinMaxValues: tableOptions.enableFacetedValues
3260
+ ? getFacetedMinMaxValues()
3261
+ : undefined, getFacetedRowModel: tableOptions.enableFacetedValues
3262
+ ? getFacetedRowModel()
3263
+ : undefined, getFacetedUniqueValues: tableOptions.enableFacetedValues
3264
+ ? getFacetedUniqueValues()
3265
+ : undefined, getFilteredRowModel: tableOptions.enableColumnFilters ||
3266
+ tableOptions.enableGlobalFilter ||
3267
+ tableOptions.enableFilters
3268
+ ? getFilteredRowModel()
3269
+ : undefined, getGroupedRowModel: tableOptions.enableGrouping
3270
+ ? getGroupedRowModel()
3271
+ : undefined, getPaginationRowModel: tableOptions.enablePagination
3272
+ ? getPaginationRowModel()
3273
+ : undefined, getSortedRowModel: tableOptions.enableSorting
3274
+ ? getSortedRowModel()
3275
+ : undefined, getSubRows: (row) => row === null || row === void 0 ? void 0 : row.subRows, onColumnOrderChange: setColumnOrder, onGroupingChange: setGrouping }, tableOptions), {
3276
+ //@ts-ignore
3277
+ columns: columnDefs, data, globalFilterFn: (_w = tableOptions.filterFns) === null || _w === void 0 ? void 0 : _w[globalFilterFn !== null && globalFilterFn !== void 0 ? globalFilterFn : 'fuzzy'], initialState, state: Object.assign({ columnFilterFns,
3278
+ columnOrder,
3279
+ creatingRow,
3280
+ density,
3281
+ draggingColumn,
3282
+ draggingRow,
3283
+ editingCell,
3284
+ editingRow,
3285
+ globalFilterFn,
3286
+ grouping,
3287
+ hoveredColumn,
3288
+ hoveredRow,
3289
+ isFullScreen,
3290
+ showAlertBanner,
3291
+ showColumnFilters,
3292
+ showGlobalFilter,
3293
+ showToolbarDropZone }, tableOptions.state) }));
3294
+ // @ts-ignore
3295
+ table.refs = {
3296
+ // @ts-ignore
3297
+ bottomToolbarRef,
3298
+ editInputRefs,
3299
+ filterInputRefs,
3300
+ // @ts-ignore
3301
+ searchInputRef,
3302
+ // @ts-ignore
3303
+ tableContainerRef,
3304
+ // @ts-ignore
3305
+ tableFooterRef,
3306
+ tableHeadCellRefs,
3307
+ // @ts-ignore
3308
+ tableHeadRef,
3309
+ // @ts-ignore
3310
+ tablePaperRef,
3311
+ // @ts-ignore
3312
+ topToolbarRef,
3313
+ };
3314
+ const setCreatingRow = (row) => {
3315
+ var _a, _b;
3316
+ let _row = row;
3317
+ if (row === true) {
3318
+ _row = createRow(table);
3319
+ }
3320
+ (_b = (_a = tableOptions === null || tableOptions === void 0 ? void 0 : tableOptions.onCreatingRowChange) === null || _a === void 0 ? void 0 : _a.call(tableOptions, _row)) !== null && _b !== void 0 ? _b : _setCreatingRow(_row);
3321
+ };
3322
+ table.setCreatingRow = setCreatingRow;
3323
+ table.setColumnFilterFns =
3324
+ (_x = tableOptions.onColumnFilterFnsChange) !== null && _x !== void 0 ? _x : setColumnFilterFns;
3325
+ table.setDensity = (_y = tableOptions.onDensityChange) !== null && _y !== void 0 ? _y : setDensity;
3326
+ table.setDraggingColumn =
3327
+ (_z = tableOptions.onDraggingColumnChange) !== null && _z !== void 0 ? _z : setDraggingColumn;
3328
+ table.setDraggingRow = (_0 = tableOptions.onDraggingRowChange) !== null && _0 !== void 0 ? _0 : setDraggingRow;
3329
+ table.setEditingCell = (_1 = tableOptions.onEditingCellChange) !== null && _1 !== void 0 ? _1 : setEditingCell;
3330
+ table.setEditingRow = (_2 = tableOptions.onEditingRowChange) !== null && _2 !== void 0 ? _2 : setEditingRow;
3331
+ table.setGlobalFilterFn =
3332
+ (_3 = tableOptions.onGlobalFilterFnChange) !== null && _3 !== void 0 ? _3 : setGlobalFilterFn;
3333
+ table.setHoveredColumn =
3334
+ (_4 = tableOptions.onHoveredColumnChange) !== null && _4 !== void 0 ? _4 : setHoveredColumn;
3335
+ table.setHoveredRow = (_5 = tableOptions.onHoveredRowChange) !== null && _5 !== void 0 ? _5 : setHoveredRow;
3336
+ table.setIsFullScreen = (_6 = tableOptions.onIsFullScreenChange) !== null && _6 !== void 0 ? _6 : setIsFullScreen;
3337
+ table.setShowAlertBanner =
3338
+ (_7 = tableOptions.onShowAlertBannerChange) !== null && _7 !== void 0 ? _7 : setShowAlertBanner;
3339
+ table.setShowColumnFilters =
3340
+ (_8 = tableOptions.onShowColumnFiltersChange) !== null && _8 !== void 0 ? _8 : setShowColumnFilters;
3341
+ table.setShowGlobalFilter =
3342
+ (_9 = tableOptions.onShowGlobalFilterChange) !== null && _9 !== void 0 ? _9 : setShowGlobalFilter;
3343
+ table.setShowToolbarDropZone =
3344
+ (_10 = tableOptions.onShowToolbarDropZoneChange) !== null && _10 !== void 0 ? _10 : setShowToolbarDropZone;
3345
+ useMRT_Effects(table);
3346
+ return table;
3194
3347
  };
3195
3348
 
3196
- const MRT_DefaultColumn = {
3197
- filterVariant: 'text',
3198
- maxSize: 1000,
3199
- minSize: 40,
3200
- size: 180,
3349
+ const MRT_AggregationFns = Object.assign({}, aggregationFns);
3350
+
3351
+ const fuzzy = (row, columnId, filterValue, addMeta) => {
3352
+ const itemRank = rankItem(row.getValue(columnId), filterValue, {
3353
+ threshold: rankings.MATCHES,
3354
+ });
3355
+ addMeta(itemRank);
3356
+ return itemRank.passed;
3357
+ };
3358
+ fuzzy.autoRemove = (val) => !val;
3359
+ const contains = (row, id, filterValue) => row
3360
+ .getValue(id)
3361
+ .toString()
3362
+ .toLowerCase()
3363
+ .trim()
3364
+ .includes(filterValue.toString().toLowerCase().trim());
3365
+ contains.autoRemove = (val) => !val;
3366
+ const startsWith = (row, id, filterValue) => row
3367
+ .getValue(id)
3368
+ .toString()
3369
+ .toLowerCase()
3370
+ .trim()
3371
+ .startsWith(filterValue.toString().toLowerCase().trim());
3372
+ startsWith.autoRemove = (val) => !val;
3373
+ const endsWith = (row, id, filterValue) => row
3374
+ .getValue(id)
3375
+ .toString()
3376
+ .toLowerCase()
3377
+ .trim()
3378
+ .endsWith(filterValue.toString().toLowerCase().trim());
3379
+ endsWith.autoRemove = (val) => !val;
3380
+ const equals = (row, id, filterValue) => row.getValue(id).toString().toLowerCase().trim() ===
3381
+ (filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString().toLowerCase().trim());
3382
+ equals.autoRemove = (val) => !val;
3383
+ const notEquals = (row, id, filterValue) => row.getValue(id).toString().toLowerCase().trim() !==
3384
+ filterValue.toString().toLowerCase().trim();
3385
+ notEquals.autoRemove = (val) => !val;
3386
+ const greaterThan = (row, id, filterValue) => !isNaN(+filterValue) && !isNaN(+row.getValue(id))
3387
+ ? +row.getValue(id) > +filterValue
3388
+ : row.getValue(id).toString().toLowerCase().trim() >
3389
+ (filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString().toLowerCase().trim());
3390
+ greaterThan.autoRemove = (val) => !val;
3391
+ const greaterThanOrEqualTo = (row, id, filterValue) => equals(row, id, filterValue) || greaterThan(row, id, filterValue);
3392
+ greaterThanOrEqualTo.autoRemove = (val) => !val;
3393
+ const lessThan = (row, id, filterValue) => !isNaN(+filterValue) && !isNaN(+row.getValue(id))
3394
+ ? +row.getValue(id) < +filterValue
3395
+ : row.getValue(id).toString().toLowerCase().trim() <
3396
+ (filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString().toLowerCase().trim());
3397
+ lessThan.autoRemove = (val) => !val;
3398
+ const lessThanOrEqualTo = (row, id, filterValue) => equals(row, id, filterValue) || lessThan(row, id, filterValue);
3399
+ lessThanOrEqualTo.autoRemove = (val) => !val;
3400
+ const between = (row, id, filterValues) => (['', undefined].includes(filterValues[0]) ||
3401
+ greaterThan(row, id, filterValues[0])) &&
3402
+ ((!isNaN(+filterValues[0]) &&
3403
+ !isNaN(+filterValues[1]) &&
3404
+ +filterValues[0] > +filterValues[1]) ||
3405
+ ['', undefined].includes(filterValues[1]) ||
3406
+ lessThan(row, id, filterValues[1]));
3407
+ between.autoRemove = (val) => !val;
3408
+ const betweenInclusive = (row, id, filterValues) => (['', undefined].includes(filterValues[0]) ||
3409
+ greaterThanOrEqualTo(row, id, filterValues[0])) &&
3410
+ ((!isNaN(+filterValues[0]) &&
3411
+ !isNaN(+filterValues[1]) &&
3412
+ +filterValues[0] > +filterValues[1]) ||
3413
+ ['', undefined].includes(filterValues[1]) ||
3414
+ lessThanOrEqualTo(row, id, filterValues[1]));
3415
+ betweenInclusive.autoRemove = (val) => !val;
3416
+ const empty = (row, id, _filterValue) => !row.getValue(id).toString().trim();
3417
+ empty.autoRemove = (val) => !val;
3418
+ const notEmpty = (row, id, _filterValue) => !!row.getValue(id).toString().trim();
3419
+ notEmpty.autoRemove = (val) => !val;
3420
+ const MRT_FilterFns = Object.assign(Object.assign({}, filterFns), { between,
3421
+ betweenInclusive,
3422
+ contains,
3423
+ empty,
3424
+ endsWith,
3425
+ equals,
3426
+ fuzzy,
3427
+ greaterThan,
3428
+ greaterThanOrEqualTo,
3429
+ lessThan,
3430
+ lessThanOrEqualTo,
3431
+ notEmpty,
3432
+ notEquals,
3433
+ startsWith });
3434
+
3435
+ const MRT_Default_Icons = {
3436
+ ArrowDownwardIcon,
3437
+ ArrowRightIcon,
3438
+ CancelIcon,
3439
+ ChevronLeftIcon,
3440
+ ChevronRightIcon,
3441
+ ClearAllIcon,
3442
+ CloseIcon,
3443
+ DensityLargeIcon,
3444
+ DensityMediumIcon,
3445
+ DensitySmallIcon,
3446
+ DragHandleIcon,
3447
+ DynamicFeedIcon,
3448
+ EditIcon,
3449
+ ExpandMoreIcon,
3450
+ FilterAltIcon,
3451
+ FilterListIcon,
3452
+ FilterListOffIcon,
3453
+ FirstPageIcon,
3454
+ FullscreenExitIcon,
3455
+ FullscreenIcon,
3456
+ KeyboardDoubleArrowDownIcon,
3457
+ LastPageIcon,
3458
+ MoreHorizIcon,
3459
+ MoreVertIcon,
3460
+ PushPinIcon,
3461
+ RestartAltIcon,
3462
+ SaveIcon,
3463
+ SearchIcon,
3464
+ SearchOffIcon,
3465
+ SortIcon,
3466
+ SyncAltIcon,
3467
+ ViewColumnIcon,
3468
+ VisibilityOffIcon,
3469
+ };
3470
+
3471
+ const MRT_Localization_EN = {
3472
+ actions: 'Actions',
3473
+ and: 'and',
3474
+ cancel: 'Cancel',
3475
+ changeFilterMode: 'Change filter mode',
3476
+ changeSearchMode: 'Change search mode',
3477
+ clearFilter: 'Clear filter',
3478
+ clearSearch: 'Clear search',
3479
+ clearSort: 'Clear sort',
3480
+ clickToCopy: 'Click to copy',
3481
+ collapse: 'Collapse',
3482
+ collapseAll: 'Collapse all',
3483
+ columnActions: 'Column Actions',
3484
+ copiedToClipboard: 'Copied to clipboard',
3485
+ dropToGroupBy: 'Drop to group by {column}',
3486
+ edit: 'Edit',
3487
+ expand: 'Expand',
3488
+ expandAll: 'Expand all',
3489
+ filterArrIncludes: 'Includes',
3490
+ filterArrIncludesAll: 'Includes all',
3491
+ filterArrIncludesSome: 'Includes',
3492
+ filterBetween: 'Between',
3493
+ filterBetweenInclusive: 'Between Inclusive',
3494
+ filterByColumn: 'Filter by {column}',
3495
+ filterContains: 'Contains',
3496
+ filterEmpty: 'Empty',
3497
+ filterEndsWith: 'Ends With',
3498
+ filterEquals: 'Equals',
3499
+ filterEqualsString: 'Equals',
3500
+ filterFuzzy: 'Fuzzy',
3501
+ filterGreaterThan: 'Greater Than',
3502
+ filterGreaterThanOrEqualTo: 'Greater Than Or Equal To',
3503
+ filterInNumberRange: 'Between',
3504
+ filterIncludesString: 'Contains',
3505
+ filterIncludesStringSensitive: 'Contains',
3506
+ filterLessThan: 'Less Than',
3507
+ filterLessThanOrEqualTo: 'Less Than Or Equal To',
3508
+ filterMode: 'Filter Mode: {filterType}',
3509
+ filterNotEmpty: 'Not Empty',
3510
+ filterNotEquals: 'Not Equals',
3511
+ filterStartsWith: 'Starts With',
3512
+ filterWeakEquals: 'Equals',
3513
+ filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',
3514
+ goToFirstPage: 'Go to first page',
3515
+ goToLastPage: 'Go to last page',
3516
+ goToNextPage: 'Go to next page',
3517
+ goToPreviousPage: 'Go to previous page',
3518
+ grab: 'Grab',
3519
+ groupByColumn: 'Group by {column}',
3520
+ groupedBy: 'Grouped by ',
3521
+ hideAll: 'Hide all',
3522
+ hideColumn: 'Hide {column} column',
3523
+ max: 'Max',
3524
+ min: 'Min',
3525
+ move: 'Move',
3526
+ noRecordsToDisplay: 'No records to display',
3527
+ noResultsFound: 'No results found',
3528
+ of: 'of',
3529
+ or: 'or',
3530
+ pin: 'Pin',
3531
+ pinToLeft: 'Pin to left',
3532
+ pinToRight: 'Pin to right',
3533
+ resetColumnSize: 'Reset column size',
3534
+ resetOrder: 'Reset order',
3535
+ rowActions: 'Row Actions',
3536
+ rowNumber: '#',
3537
+ rowNumbers: 'Row Numbers',
3538
+ rowsPerPage: 'Rows per page',
3539
+ save: 'Save',
3540
+ search: 'Search',
3541
+ selectedCountOfRowCountRowsSelected: '{selectedCount} of {rowCount} row(s) selected',
3542
+ select: 'Select',
3543
+ showAll: 'Show all',
3544
+ showAllColumns: 'Show all columns',
3545
+ showHideColumns: 'Show/Hide columns',
3546
+ showHideFilters: 'Show/Hide filters',
3547
+ showHideSearch: 'Show/Hide search',
3548
+ sortByColumnAsc: 'Sort by {column} ascending',
3549
+ sortByColumnDesc: 'Sort by {column} descending',
3550
+ sortedByColumnAsc: 'Sorted by {column} ascending',
3551
+ sortedByColumnDesc: 'Sorted by {column} descending',
3552
+ thenBy: ', then by ',
3553
+ toggleDensity: 'Toggle density',
3554
+ toggleFullScreen: 'Toggle full screen',
3555
+ toggleSelectAll: 'Toggle select all',
3556
+ toggleSelectRow: 'Toggle select row',
3557
+ toggleVisibility: 'Toggle visibility',
3558
+ ungroupByColumn: 'Ungroup by {column}',
3559
+ unpin: 'Unpin',
3560
+ unpinAll: 'Unpin all',
3561
+ };
3562
+
3563
+ const MRT_DefaultColumn = {
3564
+ filterVariant: 'text',
3565
+ maxSize: 1000,
3566
+ minSize: 40,
3567
+ size: 180,
3201
3568
  };
3202
3569
  const MRT_DefaultDisplayColumn = {
3203
3570
  columnDefType: 'display',
@@ -3215,7 +3582,8 @@ const MRT_DefaultDisplayColumn = {
3215
3582
  };
3216
3583
  const useMRT_TableOptions = (_a) => {
3217
3584
  var _b;
3218
- 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"]);
3585
+ var { aggregationFns, autoResetExpanded = false, columnFilterDisplayMode = 'subheader', columnResizeDirection, 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", "columnResizeDirection", "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"]);
3586
+ const theme = useTheme$1();
3219
3587
  const _icons = useMemo(() => (Object.assign(Object.assign({}, MRT_Default_Icons), icons)), [icons]);
3220
3588
  const _localization = useMemo(() => (Object.assign(Object.assign({}, MRT_Localization_EN), localization)), [localization]);
3221
3589
  const _aggregationFns = useMemo(() => (Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns)), []);
@@ -3223,6 +3591,9 @@ const useMRT_TableOptions = (_a) => {
3223
3591
  const _sortingFns = useMemo(() => (Object.assign(Object.assign({}, MRT_SortingFns), sortingFns)), []);
3224
3592
  const _defaultColumn = useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultColumn), defaultColumn)), [defaultColumn]);
3225
3593
  const _defaultDisplayColumn = useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultDisplayColumn), defaultDisplayColumn)), [defaultDisplayColumn]);
3594
+ if (!columnResizeDirection) {
3595
+ columnResizeDirection = theme.direction || 'ltr';
3596
+ }
3226
3597
  layoutMode =
3227
3598
  layoutMode || (enableColumnResizing ? 'grid-no-grow' : 'semantic');
3228
3599
  if (layoutMode === 'semantic' &&
@@ -3243,6 +3614,7 @@ const useMRT_TableOptions = (_a) => {
3243
3614
  }
3244
3615
  return Object.assign({ aggregationFns: _aggregationFns, autoResetExpanded,
3245
3616
  columnFilterDisplayMode,
3617
+ columnResizeDirection,
3246
3618
  columnResizeMode,
3247
3619
  createDisplayMode, defaultColumn: _defaultColumn, defaultDisplayColumn: _defaultDisplayColumn, editDisplayMode,
3248
3620
  enableBottomToolbar,
@@ -3288,307 +3660,6 @@ const useMRT_TableOptions = (_a) => {
3288
3660
  selectAllMode, sortingFns: _sortingFns }, rest);
3289
3661
  };
3290
3662
 
3291
- const blankColProps = {
3292
- children: null,
3293
- sx: {
3294
- flex: '1 0 auto',
3295
- minWidth: 0,
3296
- p: 0,
3297
- width: 0,
3298
- },
3299
- };
3300
- const useMRT_DisplayColumns = ({ columnOrder, creatingRow, grouping, tableOptions, }) => {
3301
- var _a, _b;
3302
- return useMemo(() => {
3303
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
3304
- return [
3305
- ((_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' }),
3306
- ((_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' }),
3307
- (((_h = (_g = tableOptions.state) === null || _g === void 0 ? void 0 : _g.columnOrder) !== null && _h !== void 0 ? _h : columnOrder).includes('mrt-row-actions') ||
3308
- (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' }),
3309
- ((_l = (_k = tableOptions.state) === null || _k === void 0 ? void 0 : _k.columnOrder) !== null && _l !== void 0 ? _l : columnOrder).includes('mrt-row-expand') &&
3310
- 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
3311
- ? ({ table }) => jsx(MRT_ExpandAllButton, { table: table })
3312
- : 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' }),
3313
- ((_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 &&
3314
- tableOptions.enableMultiRowSelection
3315
- ? ({ table }) => jsx(MRT_SelectCheckbox, { selectAll: true, table: table })
3316
- : 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' }),
3317
- ((_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' }),
3318
- ((_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 }),
3319
- ].filter(Boolean);
3320
- }, [
3321
- columnOrder,
3322
- grouping,
3323
- tableOptions.displayColumnDefOptions,
3324
- tableOptions.editDisplayMode,
3325
- tableOptions.enableColumnDragging,
3326
- tableOptions.enableColumnFilterModes,
3327
- tableOptions.enableColumnOrdering,
3328
- tableOptions.enableEditing,
3329
- tableOptions.enableExpandAll,
3330
- tableOptions.enableExpanding,
3331
- tableOptions.enableGrouping,
3332
- tableOptions.enableRowActions,
3333
- tableOptions.enableRowDragging,
3334
- tableOptions.enableRowNumbers,
3335
- tableOptions.enableRowOrdering,
3336
- tableOptions.enableRowSelection,
3337
- tableOptions.enableSelectAll,
3338
- tableOptions.localization,
3339
- tableOptions.positionActionsColumn,
3340
- tableOptions.renderDetailPanel,
3341
- tableOptions.renderRowActionMenuItems,
3342
- tableOptions.renderRowActions,
3343
- (_a = tableOptions.state) === null || _a === void 0 ? void 0 : _a.columnOrder,
3344
- (_b = tableOptions.state) === null || _b === void 0 ? void 0 : _b.grouping,
3345
- ]);
3346
- };
3347
-
3348
- const useMRT_Effects = (table) => {
3349
- const { getIsSomeRowsPinned, getState, options: { enablePagination, enableRowPinning, rowCount }, } = table;
3350
- const { density, globalFilter, isFullScreen, isLoading, pagination, showSkeletons, sorting, } = getState();
3351
- const rerender = useReducer(() => ({}), {})[1];
3352
- const isMounted = useRef(false);
3353
- const initialBodyHeight = useRef();
3354
- const previousTop = useRef();
3355
- useEffect(() => {
3356
- if (typeof window !== 'undefined') {
3357
- initialBodyHeight.current = document.body.style.height;
3358
- }
3359
- }, []);
3360
- useEffect(() => {
3361
- if (isMounted && typeof window !== 'undefined') {
3362
- if (isFullScreen) {
3363
- previousTop.current = document.body.getBoundingClientRect().top; //save scroll position
3364
- document.body.style.height = '100vh'; //hide page scrollbars when table is in full screen mode
3365
- }
3366
- else {
3367
- document.body.style.height = initialBodyHeight.current;
3368
- if (!previousTop.current)
3369
- return;
3370
- //restore scroll position
3371
- window.scrollTo({
3372
- behavior: 'instant',
3373
- top: -1 * previousTop.current,
3374
- });
3375
- }
3376
- }
3377
- isMounted.current = true;
3378
- }, [isFullScreen]);
3379
- //if page index is out of bounds, set it to the last page
3380
- useEffect(() => {
3381
- if (!enablePagination || isLoading || showSkeletons)
3382
- return;
3383
- const { pageIndex, pageSize } = pagination;
3384
- const totalRowCount = rowCount !== null && rowCount !== void 0 ? rowCount : table.getPrePaginationRowModel().rows.length;
3385
- const firstVisibleRowIndex = pageIndex * pageSize;
3386
- if (firstVisibleRowIndex > totalRowCount) {
3387
- table.setPageIndex(Math.floor(totalRowCount / pageSize));
3388
- }
3389
- }, [rowCount, table.getPrePaginationRowModel().rows.length]);
3390
- //turn off sort when global filter is looking for ranked results
3391
- const appliedSort = useRef(sorting);
3392
- useEffect(() => {
3393
- if (sorting.length) {
3394
- appliedSort.current = sorting;
3395
- }
3396
- }, [sorting]);
3397
- useEffect(() => {
3398
- if (!getCanRankRows(table))
3399
- return;
3400
- if (globalFilter) {
3401
- table.setSorting([]);
3402
- }
3403
- else {
3404
- table.setSorting(() => appliedSort.current || []);
3405
- }
3406
- }, [globalFilter]);
3407
- useEffect(() => {
3408
- if (enableRowPinning && getIsSomeRowsPinned()) {
3409
- setTimeout(() => {
3410
- rerender();
3411
- }, 150);
3412
- }
3413
- }, [density]);
3414
- };
3415
-
3416
- const useMRT_TableInstance = (tableOptions) => {
3417
- 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;
3418
- const bottomToolbarRef = useRef(null);
3419
- const editInputRefs = useRef({});
3420
- const filterInputRefs = useRef({});
3421
- const searchInputRef = useRef(null);
3422
- const tableContainerRef = useRef(null);
3423
- const tableHeadCellRefs = useRef({});
3424
- const tablePaperRef = useRef(null);
3425
- const topToolbarRef = useRef(null);
3426
- const tableHeadRef = useRef(null);
3427
- const tableFooterRef = useRef(null);
3428
- const initialState = useMemo(() => {
3429
- var _a, _b, _c;
3430
- const initState = (_a = tableOptions.initialState) !== null && _a !== void 0 ? _a : {};
3431
- initState.columnOrder =
3432
- (_b = initState.columnOrder) !== null && _b !== void 0 ? _b : getDefaultColumnOrderIds(tableOptions);
3433
- initState.globalFilterFn = (_c = tableOptions.globalFilterFn) !== null && _c !== void 0 ? _c : 'fuzzy';
3434
- return initState;
3435
- }, []);
3436
- const [creatingRow, _setCreatingRow] = useState((_a = initialState.creatingRow) !== null && _a !== void 0 ? _a : null);
3437
- const [columnFilterFns, setColumnFilterFns] = useState(() => Object.assign({}, ...getAllLeafColumnDefs(tableOptions.columns).map((col) => {
3438
- var _a, _b, _c, _d;
3439
- return ({
3440
- [getColumnId(col)]: col.filterFn instanceof Function
3441
- ? (_a = col.filterFn.name) !== null && _a !== void 0 ? _a : 'custom'
3442
- : (_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),
3443
- });
3444
- })));
3445
- const [columnOrder, setColumnOrder] = useState((_b = initialState.columnOrder) !== null && _b !== void 0 ? _b : []);
3446
- const [density, setDensity] = useState((_c = initialState === null || initialState === void 0 ? void 0 : initialState.density) !== null && _c !== void 0 ? _c : 'comfortable');
3447
- const [draggingColumn, setDraggingColumn] = useState((_d = initialState.draggingColumn) !== null && _d !== void 0 ? _d : null);
3448
- const [draggingRow, setDraggingRow] = useState((_e = initialState.draggingRow) !== null && _e !== void 0 ? _e : null);
3449
- const [editingCell, setEditingCell] = useState((_f = initialState.editingCell) !== null && _f !== void 0 ? _f : null);
3450
- const [editingRow, setEditingRow] = useState((_g = initialState.editingRow) !== null && _g !== void 0 ? _g : null);
3451
- const [globalFilterFn, setGlobalFilterFn] = useState((_h = initialState.globalFilterFn) !== null && _h !== void 0 ? _h : 'fuzzy');
3452
- const [grouping, setGrouping] = useState((_j = initialState.grouping) !== null && _j !== void 0 ? _j : []);
3453
- const [hoveredColumn, setHoveredColumn] = useState((_k = initialState.hoveredColumn) !== null && _k !== void 0 ? _k : null);
3454
- const [hoveredRow, setHoveredRow] = useState((_l = initialState.hoveredRow) !== null && _l !== void 0 ? _l : null);
3455
- const [isFullScreen, setIsFullScreen] = useState((_m = initialState === null || initialState === void 0 ? void 0 : initialState.isFullScreen) !== null && _m !== void 0 ? _m : false);
3456
- const [showAlertBanner, setShowAlertBanner] = useState((_p = (_o = tableOptions.initialState) === null || _o === void 0 ? void 0 : _o.showAlertBanner) !== null && _p !== void 0 ? _p : false);
3457
- const [showColumnFilters, setShowColumnFilters] = useState((_q = initialState === null || initialState === void 0 ? void 0 : initialState.showColumnFilters) !== null && _q !== void 0 ? _q : false);
3458
- const [showGlobalFilter, setShowGlobalFilter] = useState((_r = initialState === null || initialState === void 0 ? void 0 : initialState.showGlobalFilter) !== null && _r !== void 0 ? _r : false);
3459
- const [showToolbarDropZone, setShowToolbarDropZone] = useState((_s = initialState === null || initialState === void 0 ? void 0 : initialState.showToolbarDropZone) !== null && _s !== void 0 ? _s : false);
3460
- const displayColumns = useMRT_DisplayColumns({
3461
- columnOrder,
3462
- creatingRow,
3463
- grouping,
3464
- tableOptions,
3465
- });
3466
- const columnDefs = useMemo(() => {
3467
- var _a, _b, _c;
3468
- return prepareColumns({
3469
- aggregationFns: tableOptions.aggregationFns,
3470
- columnDefs: [...displayColumns, ...tableOptions.columns],
3471
- columnFilterFns: (_b = (_a = tableOptions.state) === null || _a === void 0 ? void 0 : _a.columnFilterFns) !== null && _b !== void 0 ? _b : columnFilterFns,
3472
- defaultDisplayColumn: (_c = tableOptions.defaultDisplayColumn) !== null && _c !== void 0 ? _c : {},
3473
- filterFns: tableOptions.filterFns,
3474
- sortingFns: tableOptions.sortingFns,
3475
- });
3476
- }, [
3477
- columnFilterFns,
3478
- displayColumns,
3479
- tableOptions.columns,
3480
- (_t = tableOptions.state) === null || _t === void 0 ? void 0 : _t.columnFilterFns,
3481
- ]);
3482
- const data = useMemo(() => {
3483
- var _a, _b, _c, _d, _e;
3484
- return (((_a = tableOptions.state) === null || _a === void 0 ? void 0 : _a.isLoading) || ((_b = tableOptions.state) === null || _b === void 0 ? void 0 : _b.showSkeletons)) &&
3485
- !tableOptions.data.length
3486
- ? [
3487
- ...Array(((_d = (_c = tableOptions.state) === null || _c === void 0 ? void 0 : _c.pagination) === null || _d === void 0 ? void 0 : _d.pageSize) ||
3488
- ((_e = initialState === null || initialState === void 0 ? void 0 : initialState.pagination) === null || _e === void 0 ? void 0 : _e.pageSize) ||
3489
- 10).fill(null),
3490
- ].map(() => Object.assign({}, ...getAllLeafColumnDefs(tableOptions.columns).map((col) => ({
3491
- [getColumnId(col)]: null,
3492
- }))))
3493
- : tableOptions.data;
3494
- }, [
3495
- tableOptions.data,
3496
- (_u = tableOptions.state) === null || _u === void 0 ? void 0 : _u.isLoading,
3497
- (_v = tableOptions.state) === null || _v === void 0 ? void 0 : _v.showSkeletons,
3498
- ]);
3499
- //@ts-ignore
3500
- const table = useReactTable(Object.assign(Object.assign({ getCoreRowModel: getCoreRowModel(), getExpandedRowModel: tableOptions.enableExpanding || tableOptions.enableGrouping
3501
- ? getExpandedRowModel()
3502
- : undefined, getFacetedMinMaxValues: tableOptions.enableFacetedValues
3503
- ? getFacetedMinMaxValues()
3504
- : undefined, getFacetedRowModel: tableOptions.enableFacetedValues
3505
- ? getFacetedRowModel()
3506
- : undefined, getFacetedUniqueValues: tableOptions.enableFacetedValues
3507
- ? getFacetedUniqueValues()
3508
- : undefined, getFilteredRowModel: tableOptions.enableColumnFilters ||
3509
- tableOptions.enableGlobalFilter ||
3510
- tableOptions.enableFilters
3511
- ? getFilteredRowModel()
3512
- : undefined, getGroupedRowModel: tableOptions.enableGrouping
3513
- ? getGroupedRowModel()
3514
- : undefined, getPaginationRowModel: tableOptions.enablePagination
3515
- ? getPaginationRowModel()
3516
- : undefined, getSortedRowModel: tableOptions.enableSorting
3517
- ? getSortedRowModel()
3518
- : undefined, getSubRows: (row) => row === null || row === void 0 ? void 0 : row.subRows, onColumnOrderChange: setColumnOrder, onGroupingChange: setGrouping }, tableOptions), {
3519
- //@ts-ignore
3520
- columns: columnDefs, data, globalFilterFn: (_w = tableOptions.filterFns) === null || _w === void 0 ? void 0 : _w[globalFilterFn !== null && globalFilterFn !== void 0 ? globalFilterFn : 'fuzzy'], initialState, state: Object.assign({ columnFilterFns,
3521
- columnOrder,
3522
- creatingRow,
3523
- density,
3524
- draggingColumn,
3525
- draggingRow,
3526
- editingCell,
3527
- editingRow,
3528
- globalFilterFn,
3529
- grouping,
3530
- hoveredColumn,
3531
- hoveredRow,
3532
- isFullScreen,
3533
- showAlertBanner,
3534
- showColumnFilters,
3535
- showGlobalFilter,
3536
- showToolbarDropZone }, tableOptions.state) }));
3537
- // @ts-ignore
3538
- table.refs = {
3539
- // @ts-ignore
3540
- bottomToolbarRef,
3541
- editInputRefs,
3542
- filterInputRefs,
3543
- // @ts-ignore
3544
- searchInputRef,
3545
- // @ts-ignore
3546
- tableContainerRef,
3547
- // @ts-ignore
3548
- tableFooterRef,
3549
- tableHeadCellRefs,
3550
- // @ts-ignore
3551
- tableHeadRef,
3552
- // @ts-ignore
3553
- tablePaperRef,
3554
- // @ts-ignore
3555
- topToolbarRef,
3556
- };
3557
- const setCreatingRow = (row) => {
3558
- var _a, _b;
3559
- let _row = row;
3560
- if (row === true) {
3561
- _row = createRow(table);
3562
- }
3563
- (_b = (_a = tableOptions === null || tableOptions === void 0 ? void 0 : tableOptions.onCreatingRowChange) === null || _a === void 0 ? void 0 : _a.call(tableOptions, _row)) !== null && _b !== void 0 ? _b : _setCreatingRow(_row);
3564
- };
3565
- table.setCreatingRow = setCreatingRow;
3566
- table.setColumnFilterFns =
3567
- (_x = tableOptions.onColumnFilterFnsChange) !== null && _x !== void 0 ? _x : setColumnFilterFns;
3568
- table.setDensity = (_y = tableOptions.onDensityChange) !== null && _y !== void 0 ? _y : setDensity;
3569
- table.setDraggingColumn =
3570
- (_z = tableOptions.onDraggingColumnChange) !== null && _z !== void 0 ? _z : setDraggingColumn;
3571
- table.setDraggingRow = (_0 = tableOptions.onDraggingRowChange) !== null && _0 !== void 0 ? _0 : setDraggingRow;
3572
- table.setEditingCell = (_1 = tableOptions.onEditingCellChange) !== null && _1 !== void 0 ? _1 : setEditingCell;
3573
- table.setEditingRow = (_2 = tableOptions.onEditingRowChange) !== null && _2 !== void 0 ? _2 : setEditingRow;
3574
- table.setGlobalFilterFn =
3575
- (_3 = tableOptions.onGlobalFilterFnChange) !== null && _3 !== void 0 ? _3 : setGlobalFilterFn;
3576
- table.setHoveredColumn =
3577
- (_4 = tableOptions.onHoveredColumnChange) !== null && _4 !== void 0 ? _4 : setHoveredColumn;
3578
- table.setHoveredRow = (_5 = tableOptions.onHoveredRowChange) !== null && _5 !== void 0 ? _5 : setHoveredRow;
3579
- table.setIsFullScreen = (_6 = tableOptions.onIsFullScreenChange) !== null && _6 !== void 0 ? _6 : setIsFullScreen;
3580
- table.setShowAlertBanner =
3581
- (_7 = tableOptions.onShowAlertBannerChange) !== null && _7 !== void 0 ? _7 : setShowAlertBanner;
3582
- table.setShowColumnFilters =
3583
- (_8 = tableOptions.onShowColumnFiltersChange) !== null && _8 !== void 0 ? _8 : setShowColumnFilters;
3584
- table.setShowGlobalFilter =
3585
- (_9 = tableOptions.onShowGlobalFilterChange) !== null && _9 !== void 0 ? _9 : setShowGlobalFilter;
3586
- table.setShowToolbarDropZone =
3587
- (_10 = tableOptions.onShowToolbarDropZoneChange) !== null && _10 !== void 0 ? _10 : setShowToolbarDropZone;
3588
- useMRT_Effects(table);
3589
- return table;
3590
- };
3591
-
3592
3663
  const useMaterialReactTable = (tableOptions) => useMRT_TableInstance(useMRT_TableOptions(tableOptions));
3593
3664
 
3594
3665
  const isTableInstanceProp = (props) => props.table !== undefined;