material-react-table 2.0.0-alpha.5 → 2.0.0-beta.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 (207) hide show
  1. package/dist/cjs/index.js +141 -68
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +2 -1
  4. package/dist/cjs/types/column.utils.d.ts +2 -0
  5. package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
  6. package/dist/cjs/types/icons.d.ts +1 -0
  7. package/dist/cjs/types/types.d.ts +12 -19
  8. package/dist/esm/material-react-table.esm.js +139 -68
  9. package/dist/esm/material-react-table.esm.js.map +1 -1
  10. package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +2 -1
  11. package/dist/esm/types/column.utils.d.ts +2 -0
  12. package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
  13. package/dist/esm/types/icons.d.ts +1 -0
  14. package/dist/esm/types/types.d.ts +12 -19
  15. package/dist/index.d.ts +19 -23
  16. package/locales/ar.esm.js +1 -0
  17. package/locales/ar.esm.js.map +1 -1
  18. package/locales/ar.js +1 -0
  19. package/locales/ar.js.map +1 -1
  20. package/locales/bg.esm.js +1 -0
  21. package/locales/bg.esm.js.map +1 -1
  22. package/locales/bg.js +1 -0
  23. package/locales/bg.js.map +1 -1
  24. package/locales/cs.esm.js +1 -0
  25. package/locales/cs.esm.js.map +1 -1
  26. package/locales/cs.js +1 -0
  27. package/locales/cs.js.map +1 -1
  28. package/locales/da.esm.js +1 -0
  29. package/locales/da.esm.js.map +1 -1
  30. package/locales/da.js +1 -0
  31. package/locales/da.js.map +1 -1
  32. package/locales/de.esm.js +1 -0
  33. package/locales/de.esm.js.map +1 -1
  34. package/locales/de.js +1 -0
  35. package/locales/de.js.map +1 -1
  36. package/locales/es.esm.js +1 -0
  37. package/locales/es.esm.js.map +1 -1
  38. package/locales/es.js +1 -0
  39. package/locales/es.js.map +1 -1
  40. package/locales/et.esm.js +1 -0
  41. package/locales/et.esm.js.map +1 -1
  42. package/locales/et.js +1 -0
  43. package/locales/et.js.map +1 -1
  44. package/locales/fa.esm.js +1 -0
  45. package/locales/fa.esm.js.map +1 -1
  46. package/locales/fa.js +1 -0
  47. package/locales/fa.js.map +1 -1
  48. package/locales/fi.esm.js +1 -0
  49. package/locales/fi.esm.js.map +1 -1
  50. package/locales/fi.js +1 -0
  51. package/locales/fi.js.map +1 -1
  52. package/locales/fr.esm.js +1 -0
  53. package/locales/fr.esm.js.map +1 -1
  54. package/locales/fr.js +1 -0
  55. package/locales/fr.js.map +1 -1
  56. package/locales/hu.esm.js +1 -0
  57. package/locales/hu.esm.js.map +1 -1
  58. package/locales/hu.js +1 -0
  59. package/locales/hu.js.map +1 -1
  60. package/locales/hy.esm.js +1 -0
  61. package/locales/hy.esm.js.map +1 -1
  62. package/locales/hy.js +1 -0
  63. package/locales/hy.js.map +1 -1
  64. package/locales/id.esm.js +1 -0
  65. package/locales/id.esm.js.map +1 -1
  66. package/locales/id.js +1 -0
  67. package/locales/id.js.map +1 -1
  68. package/locales/it.esm.js +1 -0
  69. package/locales/it.esm.js.map +1 -1
  70. package/locales/it.js +1 -0
  71. package/locales/it.js.map +1 -1
  72. package/locales/ja.esm.js +1 -0
  73. package/locales/ja.esm.js.map +1 -1
  74. package/locales/ja.js +1 -0
  75. package/locales/ja.js.map +1 -1
  76. package/locales/ko.esm.js +1 -0
  77. package/locales/ko.esm.js.map +1 -1
  78. package/locales/ko.js +1 -0
  79. package/locales/ko.js.map +1 -1
  80. package/locales/nl.esm.js +1 -0
  81. package/locales/nl.esm.js.map +1 -1
  82. package/locales/nl.js +1 -0
  83. package/locales/nl.js.map +1 -1
  84. package/locales/no.esm.js +1 -0
  85. package/locales/no.esm.js.map +1 -1
  86. package/locales/no.js +1 -0
  87. package/locales/no.js.map +1 -1
  88. package/locales/np.esm.js +1 -1
  89. package/locales/np.esm.js.map +1 -1
  90. package/locales/np.js +1 -1
  91. package/locales/np.js.map +1 -1
  92. package/locales/pl.esm.js +1 -0
  93. package/locales/pl.esm.js.map +1 -1
  94. package/locales/pl.js +1 -0
  95. package/locales/pl.js.map +1 -1
  96. package/locales/pt-BR.esm.js +1 -0
  97. package/locales/pt-BR.esm.js.map +1 -1
  98. package/locales/pt-BR.js +1 -0
  99. package/locales/pt-BR.js.map +1 -1
  100. package/locales/pt.esm.js +1 -0
  101. package/locales/pt.esm.js.map +1 -1
  102. package/locales/pt.js +1 -0
  103. package/locales/pt.js.map +1 -1
  104. package/locales/ro.esm.js +1 -0
  105. package/locales/ro.esm.js.map +1 -1
  106. package/locales/ro.js +1 -0
  107. package/locales/ro.js.map +1 -1
  108. package/locales/ru.esm.js +1 -0
  109. package/locales/ru.esm.js.map +1 -1
  110. package/locales/ru.js +1 -0
  111. package/locales/ru.js.map +1 -1
  112. package/locales/sk.esm.js +1 -0
  113. package/locales/sk.esm.js.map +1 -1
  114. package/locales/sk.js +1 -0
  115. package/locales/sk.js.map +1 -1
  116. package/locales/sr-Cyrl-RS.esm.js +1 -0
  117. package/locales/sr-Cyrl-RS.esm.js.map +1 -1
  118. package/locales/sr-Cyrl-RS.js +1 -0
  119. package/locales/sr-Cyrl-RS.js.map +1 -1
  120. package/locales/sr-Latn-RS.esm.js +1 -0
  121. package/locales/sr-Latn-RS.esm.js.map +1 -1
  122. package/locales/sr-Latn-RS.js +1 -0
  123. package/locales/sr-Latn-RS.js.map +1 -1
  124. package/locales/sv.esm.js +3 -2
  125. package/locales/sv.esm.js.map +1 -1
  126. package/locales/sv.js +3 -2
  127. package/locales/sv.js.map +1 -1
  128. package/locales/tr.esm.js +1 -0
  129. package/locales/tr.esm.js.map +1 -1
  130. package/locales/tr.js +1 -0
  131. package/locales/tr.js.map +1 -1
  132. package/locales/uk.esm.js +1 -0
  133. package/locales/uk.esm.js.map +1 -1
  134. package/locales/uk.js +1 -0
  135. package/locales/uk.js.map +1 -1
  136. package/locales/vi.esm.js +1 -0
  137. package/locales/vi.esm.js.map +1 -1
  138. package/locales/vi.js +1 -0
  139. package/locales/vi.js.map +1 -1
  140. package/locales/zh-Hans.esm.js +1 -0
  141. package/locales/zh-Hans.esm.js.map +1 -1
  142. package/locales/zh-Hans.js +1 -0
  143. package/locales/zh-Hans.js.map +1 -1
  144. package/locales/zh-Hant.esm.js +1 -0
  145. package/locales/zh-Hant.esm.js.map +1 -1
  146. package/locales/zh-Hant.js +1 -0
  147. package/locales/zh-Hant.js.map +1 -1
  148. package/package.json +11 -11
  149. package/src/body/MRT_TableBody.tsx +20 -4
  150. package/src/body/MRT_TableBodyCell.tsx +4 -3
  151. package/src/body/MRT_TableBodyRow.tsx +7 -5
  152. package/src/body/MRT_TableBodyRowGrabHandle.tsx +1 -0
  153. package/src/body/index.ts +1 -1
  154. package/src/buttons/MRT_ExpandButton.tsx +1 -0
  155. package/src/buttons/MRT_GrabHandleButton.tsx +3 -1
  156. package/src/column.utils.ts +22 -2
  157. package/src/filterFns.ts +3 -3
  158. package/src/footer/MRT_TableFooterCell.tsx +5 -1
  159. package/src/footer/MRT_TableFooterRow.tsx +2 -2
  160. package/src/head/MRT_TableHead.tsx +5 -1
  161. package/src/head/MRT_TableHeadCell.tsx +11 -6
  162. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +2 -2
  163. package/src/head/MRT_TableHeadCellFilterLabel.tsx +6 -1
  164. package/src/head/MRT_TableHeadCellSortLabel.tsx +18 -12
  165. package/src/head/MRT_TableHeadRow.tsx +2 -2
  166. package/src/hooks/useMRT_DisplayColumns.tsx +20 -0
  167. package/src/hooks/useMRT_TableInstance.ts +6 -6
  168. package/src/icons.ts +3 -0
  169. package/src/inputs/MRT_FilterTextField.tsx +4 -3
  170. package/src/locales/ar.ts +1 -1
  171. package/src/locales/bg.ts +1 -0
  172. package/src/locales/cs.ts +1 -0
  173. package/src/locales/da.ts +1 -0
  174. package/src/locales/de.ts +1 -0
  175. package/src/locales/es.ts +1 -0
  176. package/src/locales/et.ts +1 -0
  177. package/src/locales/fa.ts +1 -0
  178. package/src/locales/fi.ts +1 -0
  179. package/src/locales/fr.ts +1 -0
  180. package/src/locales/hu.ts +1 -0
  181. package/src/locales/hy.ts +1 -0
  182. package/src/locales/id.ts +1 -0
  183. package/src/locales/it.ts +1 -0
  184. package/src/locales/ja.ts +1 -0
  185. package/src/locales/ko.ts +1 -0
  186. package/src/locales/nl.ts +1 -0
  187. package/src/locales/no.ts +1 -0
  188. package/src/locales/np.ts +3 -2
  189. package/src/locales/pl.ts +1 -0
  190. package/src/locales/pt-BR.ts +1 -0
  191. package/src/locales/pt.ts +1 -0
  192. package/src/locales/ro.ts +1 -0
  193. package/src/locales/ru.ts +1 -0
  194. package/src/locales/sk.ts +1 -0
  195. package/src/locales/sr-Cyrl-RS.ts +1 -0
  196. package/src/locales/sr-Latn-RS.ts +1 -0
  197. package/src/locales/sv.ts +3 -2
  198. package/src/locales/tr.ts +1 -0
  199. package/src/locales/uk.ts +1 -0
  200. package/src/locales/vi.ts +1 -0
  201. package/src/locales/zh-Hans.ts +1 -0
  202. package/src/locales/zh-Hant.ts +1 -0
  203. package/src/table/MRT_Table.tsx +24 -10
  204. package/src/table/MRT_TableContainer.tsx +50 -1
  205. package/src/toolbar/MRT_LinearProgressBar.tsx +2 -2
  206. package/src/toolbar/MRT_TablePagination.tsx +3 -4
  207. package/src/types.ts +12 -11
package/dist/cjs/index.js CHANGED
@@ -5,16 +5,17 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var Paper = require('@mui/material/Paper');
7
7
  var react = require('react');
8
+ var Box = require('@mui/material/Box');
9
+ var CircularProgress = require('@mui/material/CircularProgress');
8
10
  var TableContainer = require('@mui/material/TableContainer');
11
+ var styles = require('@mui/material/styles');
9
12
  var reactVirtual = require('@tanstack/react-virtual');
10
13
  var Table = require('@mui/material/Table');
11
14
  var TableBody = require('@mui/material/TableBody');
12
15
  var Typography = require('@mui/material/Typography');
13
16
  var TableRow = require('@mui/material/TableRow');
14
- var styles = require('@mui/material/styles');
15
17
  var Skeleton = require('@mui/material/Skeleton');
16
18
  var TableCell = require('@mui/material/TableCell');
17
- var Box = require('@mui/material/Box');
18
19
  var highlightWords = require('highlight-words');
19
20
  var IconButton = require('@mui/material/IconButton');
20
21
  var Tooltip = require('@mui/material/Tooltip');
@@ -59,7 +60,6 @@ var Dialog = require('@mui/material/Dialog');
59
60
  var DialogActions = require('@mui/material/DialogActions');
60
61
  var DialogContent = require('@mui/material/DialogContent');
61
62
  var DialogTitle = require('@mui/material/DialogTitle');
62
- var CircularProgress = require('@mui/material/CircularProgress');
63
63
  var ArrowDownwardIcon = require('@mui/icons-material/ArrowDownward');
64
64
  var ArrowRightIcon = require('@mui/icons-material/ArrowRight');
65
65
  var CancelIcon = require('@mui/icons-material/Cancel');
@@ -90,12 +90,15 @@ var SaveIcon = require('@mui/icons-material/Save');
90
90
  var SearchIcon = require('@mui/icons-material/Search');
91
91
  var SearchOffIcon = require('@mui/icons-material/SearchOff');
92
92
  var SortIcon = require('@mui/icons-material/Sort');
93
+ var SyncAltIcon = require('@mui/icons-material/SyncAlt');
93
94
  var ViewColumnIcon = require('@mui/icons-material/ViewColumn');
94
95
  var VisibilityOffIcon = require('@mui/icons-material/VisibilityOff');
95
96
 
96
97
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
97
98
 
98
99
  var Paper__default = /*#__PURE__*/_interopDefaultLegacy(Paper);
100
+ var Box__default = /*#__PURE__*/_interopDefaultLegacy(Box);
101
+ var CircularProgress__default = /*#__PURE__*/_interopDefaultLegacy(CircularProgress);
99
102
  var TableContainer__default = /*#__PURE__*/_interopDefaultLegacy(TableContainer);
100
103
  var Table__default = /*#__PURE__*/_interopDefaultLegacy(Table);
101
104
  var TableBody__default = /*#__PURE__*/_interopDefaultLegacy(TableBody);
@@ -103,7 +106,6 @@ var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
103
106
  var TableRow__default = /*#__PURE__*/_interopDefaultLegacy(TableRow);
104
107
  var Skeleton__default = /*#__PURE__*/_interopDefaultLegacy(Skeleton);
105
108
  var TableCell__default = /*#__PURE__*/_interopDefaultLegacy(TableCell);
106
- var Box__default = /*#__PURE__*/_interopDefaultLegacy(Box);
107
109
  var highlightWords__default = /*#__PURE__*/_interopDefaultLegacy(highlightWords);
108
110
  var IconButton__default = /*#__PURE__*/_interopDefaultLegacy(IconButton);
109
111
  var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
@@ -144,7 +146,6 @@ var Dialog__default = /*#__PURE__*/_interopDefaultLegacy(Dialog);
144
146
  var DialogActions__default = /*#__PURE__*/_interopDefaultLegacy(DialogActions);
145
147
  var DialogContent__default = /*#__PURE__*/_interopDefaultLegacy(DialogContent);
146
148
  var DialogTitle__default = /*#__PURE__*/_interopDefaultLegacy(DialogTitle);
147
- var CircularProgress__default = /*#__PURE__*/_interopDefaultLegacy(CircularProgress);
148
149
  var ArrowDownwardIcon__default = /*#__PURE__*/_interopDefaultLegacy(ArrowDownwardIcon);
149
150
  var ArrowRightIcon__default = /*#__PURE__*/_interopDefaultLegacy(ArrowRightIcon);
150
151
  var CancelIcon__default = /*#__PURE__*/_interopDefaultLegacy(CancelIcon);
@@ -175,6 +176,7 @@ var SaveIcon__default = /*#__PURE__*/_interopDefaultLegacy(SaveIcon);
175
176
  var SearchIcon__default = /*#__PURE__*/_interopDefaultLegacy(SearchIcon);
176
177
  var SearchOffIcon__default = /*#__PURE__*/_interopDefaultLegacy(SearchOffIcon);
177
178
  var SortIcon__default = /*#__PURE__*/_interopDefaultLegacy(SortIcon);
179
+ var SyncAltIcon__default = /*#__PURE__*/_interopDefaultLegacy(SyncAltIcon);
178
180
  var ViewColumnIcon__default = /*#__PURE__*/_interopDefaultLegacy(ViewColumnIcon);
179
181
  var VisibilityOffIcon__default = /*#__PURE__*/_interopDefaultLegacy(VisibilityOffIcon);
180
182
 
@@ -338,6 +340,7 @@ const getLeadingDisplayColumnIds = (props) => {
338
340
  'mrt-row-expand',
339
341
  props.enableRowSelection && 'mrt-row-select',
340
342
  props.enableRowNumbers && 'mrt-row-numbers',
343
+ props.layoutMode === 'grid-no-grow' && 'mrt-row-spacer',
341
344
  ].filter(Boolean);
342
345
  };
343
346
  const getTrailingDisplayColumnIds = (props) => {
@@ -425,7 +428,7 @@ const getCommonCellStyles = ({ column, header, table, tableCellProps, theme, })
425
428
  else if (layoutMode === 'grid-no-grow') {
426
429
  widthStyles.flex = '0 0 auto';
427
430
  }
428
- return Object.assign(Object.assign(Object.assign({ backgroundColor: column.getIsPinned() && column.columnDef.columnDefType !== 'group'
431
+ return Object.assign(Object.assign({ backgroundColor: column.getIsPinned() && column.columnDef.columnDefType !== 'group'
429
432
  ? styles.alpha(styles.lighten(theme.palette.background.default, 0.04), 0.97)
430
433
  : 'inherit', backgroundImage: 'inherit', boxShadow: getIsLastLeftPinnedColumn(table, column)
431
434
  ? `-4px 0 8px -6px ${styles.alpha(theme.palette.common.black, 0.2)} inset`
@@ -453,7 +456,7 @@ const getCommonCellStyles = ({ column, header, table, tableCellProps, theme, })
453
456
  ? `${getTotalRight(table, column)}px`
454
457
  : undefined, transition: table.options.enableColumnVirtualization
455
458
  ? 'none'
456
- : `padding 150ms ease-in-out` }, (!table.options.enableColumnResizing && widthStyles)), parseFromValuesOrFunc(tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx, theme)), (table.options.enableColumnResizing && widthStyles));
459
+ : `padding 150ms ease-in-out` }, widthStyles), parseFromValuesOrFunc(tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx, theme));
457
460
  };
458
461
  const MRT_DefaultColumn = {
459
462
  filterVariant: 'text',
@@ -481,8 +484,19 @@ const flexRender = reactTable.flexRender;
481
484
  const createRow = (table, originalRow) => reactTable.createRow(table, 'mrt-row-create', originalRow !== null && originalRow !== void 0 ? originalRow : Object.assign({}, ...getAllLeafColumnDefs(table.options.columns).map((col) => ({
482
485
  [getColumnId(col)]: '',
483
486
  }))), -1, 0);
487
+ const extraIndexRangeExtractor = (range, draggingIndex) => {
488
+ const newIndexs = reactVirtual.defaultRangeExtractor(range);
489
+ if (draggingIndex >= 0 &&
490
+ draggingIndex < Math.max(range.startIndex - range.overscan, 0)) {
491
+ newIndexs.unshift(draggingIndex);
492
+ }
493
+ if (draggingIndex >= 0 && draggingIndex > range.endIndex + range.overscan) {
494
+ newIndexs.push(draggingIndex);
495
+ }
496
+ return newIndexs;
497
+ };
484
498
 
485
- const MRT_GrabHandleButton = ({ iconButtonProps, onDragEnd, onDragStart, table, }) => {
499
+ const MRT_GrabHandleButton = ({ iconButtonProps, location, onDragEnd, onDragStart, table, }) => {
486
500
  var _a;
487
501
  const { options: { icons: { DragHandleIcon }, localization, }, } = table;
488
502
  return (jsxRuntime.jsx(Tooltip__default["default"], { arrow: true, enterDelay: 1000, enterNextDelay: 1000, placement: "top", title: (_a = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.title) !== null && _a !== void 0 ? _a : localization.move, children: jsxRuntime.jsx(IconButton__default["default"], Object.assign({ disableRipple: true, draggable: "true", size: "small" }, iconButtonProps, { onClick: (e) => {
@@ -494,7 +508,7 @@ const MRT_GrabHandleButton = ({ iconButtonProps, onDragEnd, onDragStart, table,
494
508
  }, '&:hover': {
495
509
  backgroundColor: 'transparent',
496
510
  opacity: 1,
497
- }, cursor: 'grab', m: '0 -0.1rem', opacity: 0.5, p: '2px', transition: 'all 150ms ease-in-out' }, parseFromValuesOrFunc(iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx, theme))), title: undefined, children: jsxRuntime.jsx(DragHandleIcon, {}) })) }));
511
+ }, cursor: 'grab', m: '0 -0.1rem', opacity: location === 'row' ? 1 : 0.3, p: '2px', transition: 'all 150ms ease-in-out' }, parseFromValuesOrFunc(iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx, theme))), title: undefined, children: jsxRuntime.jsx(DragHandleIcon, {}) })) }));
498
512
  };
499
513
 
500
514
  const MRT_TableBodyRowGrabHandle = ({ row, rowRef, table, }) => {
@@ -515,7 +529,7 @@ const MRT_TableBodyRowGrabHandle = ({ row, rowRef, table, }) => {
515
529
  table.setDraggingRow(null);
516
530
  table.setHoveredRow(null);
517
531
  };
518
- return (jsxRuntime.jsx(MRT_GrabHandleButton, { iconButtonProps: iconButtonProps, onDragEnd: handleDragEnd, onDragStart: handleDragStart, table: table }));
532
+ return (jsxRuntime.jsx(MRT_GrabHandleButton, { iconButtonProps: iconButtonProps, location: "row", onDragEnd: handleDragEnd, onDragStart: handleDragStart, table: table }));
519
533
  };
520
534
 
521
535
  const MRT_CopyButton = ({ cell, children, table, }) => {
@@ -744,7 +758,9 @@ const MRT_TableBodyCell = ({ cell, measureElement, numRows, rowIndex, rowRef, ta
744
758
  : undefined,
745
759
  outlineOffset: '-1px',
746
760
  textOverflow: 'clip',
747
- }, alignItems: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'center' : undefined, cursor: isEditable && editDisplayMode === 'cell' ? 'pointer' : 'inherit', justifyContent: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? tableCellProps.align : undefined, overflow: 'hidden', p: density === 'compact'
761
+ }, alignItems: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'center' : undefined, cursor: isEditable && editDisplayMode === 'cell' ? 'pointer' : 'inherit', justifyContent: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid'))
762
+ ? tableCellProps.align
763
+ : undefined, overflow: 'hidden', p: density === 'compact'
748
764
  ? columnDefType === 'display'
749
765
  ? '0 0.5rem'
750
766
  : '0.5rem'
@@ -766,7 +782,7 @@ const MRT_TableBodyCell = ({ cell, measureElement, numRows, rowIndex, rowRef, ta
766
782
  table,
767
783
  tableCellProps,
768
784
  theme,
769
- })), draggingBorders)), children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [cell.getIsPlaceholder() ? ((_b = (_a = columnDef.PlaceholderCell) === null || _a === void 0 ? void 0 : _a.call(columnDef, { cell, column, row, table })) !== null && _b !== void 0 ? _b : null) : (isLoading || showSkeletons) && cell.getValue() === null ? (jsxRuntime.jsx(Skeleton__default["default"], Object.assign({ animation: "wave", height: 20, width: skeletonWidth }, skeletonProps))) : enableRowNumbers &&
785
+ })), draggingBorders)), children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [cell.getIsPlaceholder() ? ((_b = (_a = columnDef.PlaceholderCell) === null || _a === void 0 ? void 0 : _a.call(columnDef, { cell, column, row, table })) !== null && _b !== void 0 ? _b : null) : isLoading || showSkeletons ? (jsxRuntime.jsx(Skeleton__default["default"], Object.assign({ animation: "wave", height: 20, width: skeletonWidth }, skeletonProps))) : enableRowNumbers &&
770
786
  rowNumberMode === 'static' &&
771
787
  column.id === 'mrt-row-numbers' ? (rowIndex + 1) : column.id === 'mrt-row-drag' ? (jsxRuntime.jsx(MRT_TableBodyRowGrabHandle, { row: row, rowRef: rowRef, table: table })) : columnDefType === 'display' &&
772
788
  (column.id === 'mrt-row-select' ||
@@ -898,12 +914,12 @@ const MRT_TableBodyRow = ({ columnVirtualizer, measureElement, numRows, pinnedRo
898
914
  ? cellOrVirtualCell
899
915
  : undefined,
900
916
  };
901
- return memoMode === 'cells' &&
917
+ return cell ? (memoMode === 'cells' &&
902
918
  cell.column.columnDef.columnDefType === 'data' &&
903
919
  !draggingColumn &&
904
920
  !draggingRow &&
905
921
  (editingCell === null || editingCell === void 0 ? void 0 : editingCell.id) !== cell.id &&
906
- (editingRow === null || editingRow === void 0 ? void 0 : editingRow.id) !== row.id ? (jsxRuntime.jsx(Memo_MRT_TableBodyCell, Object.assign({}, props), cell.id)) : (jsxRuntime.jsx(MRT_TableBodyCell, Object.assign({}, props), cell.id));
922
+ (editingRow === null || editingRow === void 0 ? void 0 : editingRow.id) !== row.id ? (jsxRuntime.jsx(Memo_MRT_TableBodyCell, Object.assign({}, props), cell.id)) : (jsxRuntime.jsx(MRT_TableBodyCell, Object.assign({}, props), cell.id))) : null;
907
923
  }), virtualPaddingRight ? (jsxRuntime.jsx("td", { style: { display: 'flex', width: virtualPaddingRight } })) : null] })), renderDetailPanel && !row.getIsGrouped() && (jsxRuntime.jsx(MRT_TableDetailPanel, { parentRowRef: rowRef, row: row, rowIndex: rowIndex, table: table, virtualRow: virtualRow }))] }));
908
924
  };
909
925
  const Memo_MRT_TableBodyRow = react.memo(MRT_TableBodyRow, (prev, next) => prev.row === next.row && prev.rowIndex === next.rowIndex);
@@ -925,7 +941,7 @@ const rankGlobalFuzzy = (rowA, rowB) => Math.max(...Object.values(rowB.columnFil
925
941
  const MRT_TableBody = ({ columnVirtualizer, table, virtualColumns, virtualPaddingLeft, virtualPaddingRight, }) => {
926
942
  var _a, _b, _c, _d, _e, _f;
927
943
  const { getBottomRows, getCenterRows, getIsSomeRowsPinned, getPrePaginationRowModel, getRowModel, getState, getTopRows, options: { enableGlobalFilterRankedResults, enablePagination, enableRowPinning, enableRowVirtualization, enableStickyFooter, enableStickyHeader, layoutMode, localization, manualExpanding, manualFiltering, manualGrouping, manualPagination, manualSorting, memoMode, muiTableBodyProps, renderEmptyRowsFallback, rowPinningDisplayMode, rowVirtualizerInstanceRef, rowVirtualizerOptions, }, refs: { tableContainerRef, tableFooterRef, tableHeadRef, tablePaperRef }, } = table;
928
- const { columnFilters, density, expanded, globalFilter, isFullScreen, pagination, rowPinning, sorting, } = getState();
944
+ const { columnFilters, density, draggingRow, expanded, globalFilter, isFullScreen, pagination, rowPinning, sorting, } = getState();
929
945
  const tableBodyProps = parseFromValuesOrFunc(muiTableBodyProps, { table });
930
946
  const rowVirtualizerProps = parseFromValuesOrFunc(rowVirtualizerOptions, {
931
947
  table,
@@ -983,7 +999,10 @@ const MRT_TableBody = ({ columnVirtualizer, table, virtualColumns, virtualPaddin
983
999
  ? reactVirtual.useVirtualizer(Object.assign({ count: rows.length, estimateSize: () => density === 'compact' ? 37 : density === 'comfortable' ? 58 : 73, getScrollElement: () => tableContainerRef.current, measureElement: typeof window !== 'undefined' &&
984
1000
  navigator.userAgent.indexOf('Firefox') === -1
985
1001
  ? (element) => element === null || element === void 0 ? void 0 : element.getBoundingClientRect().height
986
- : undefined, overscan: 4 }, rowVirtualizerProps))
1002
+ : undefined, overscan: 4, rangeExtractor: react.useCallback((range) => {
1003
+ var _a;
1004
+ return extraIndexRangeExtractor(range, (_a = draggingRow === null || draggingRow === void 0 ? void 0 : draggingRow.index) !== null && _a !== void 0 ? _a : 0);
1005
+ }, [draggingRow]) }, rowVirtualizerProps))
987
1006
  : undefined;
988
1007
  if (rowVirtualizerInstanceRef && rowVirtualizer) {
989
1008
  rowVirtualizerInstanceRef.current = rowVirtualizer;
@@ -1007,8 +1026,12 @@ const MRT_TableBody = ({ columnVirtualizer, table, virtualColumns, virtualPaddin
1007
1026
  return memoMode === 'rows' ? (jsxRuntime.jsx(Memo_MRT_TableBodyRow, Object.assign({}, props), row.id)) : (jsxRuntime.jsx(MRT_TableBodyRow, Object.assign({}, props), row.id));
1008
1027
  }) }))), jsxRuntime.jsx(TableBody__default["default"], Object.assign({}, tableBodyProps, { sx: (theme) => (Object.assign({ display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined, height: rowVirtualizer
1009
1028
  ? `${rowVirtualizer.getTotalSize()}px`
1010
- : 'inherit', minHeight: !rows.length ? '100px' : undefined, position: 'relative' }, parseFromValuesOrFunc(tableBodyProps === null || tableBodyProps === void 0 ? void 0 : tableBodyProps.sx, theme))), children: (_c = tableBodyProps === null || tableBodyProps === void 0 ? void 0 : tableBodyProps.children) !== null && _c !== void 0 ? _c : (!rows.length ? (jsxRuntime.jsx("tr", { style: { display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined }, children: jsxRuntime.jsx("td", { colSpan: table.getVisibleLeafColumns().length, style: {
1011
- display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : 'table-cell',
1029
+ : 'inherit', minHeight: !rows.length ? '100px' : undefined, position: 'relative' }, parseFromValuesOrFunc(tableBodyProps === null || tableBodyProps === void 0 ? void 0 : tableBodyProps.sx, theme))), children: (_c = tableBodyProps === null || tableBodyProps === void 0 ? void 0 : tableBodyProps.children) !== null && _c !== void 0 ? _c : (!rows.length ? (jsxRuntime.jsx("tr", { style: {
1030
+ display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined,
1031
+ }, children: jsxRuntime.jsx("td", { colSpan: table.getVisibleLeafColumns().length, style: {
1032
+ display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid'))
1033
+ ? 'grid'
1034
+ : 'table-cell',
1012
1035
  }, children: (_d = renderEmptyRowsFallback === null || renderEmptyRowsFallback === void 0 ? void 0 : renderEmptyRowsFallback({ table })) !== null && _d !== void 0 ? _d : (jsxRuntime.jsx(Typography__default["default"], { sx: {
1013
1036
  color: 'text.secondary',
1014
1037
  fontStyle: 'italic',
@@ -1078,7 +1101,11 @@ const MRT_TableFooterCell = ({ footer, table, }) => {
1078
1101
  theme,
1079
1102
  }))), children: jsxRuntime.jsx(jsxRuntime.Fragment, { children: footer.isPlaceholder
1080
1103
  ? null
1081
- : (_b = (_a = parseFromValuesOrFunc(columnDef.Footer, { column, footer, table })) !== null && _a !== void 0 ? _a : columnDef.footer) !== null && _b !== void 0 ? _b : null }) })));
1104
+ : (_b = (_a = parseFromValuesOrFunc(columnDef.Footer, {
1105
+ column,
1106
+ footer,
1107
+ table,
1108
+ })) !== null && _a !== void 0 ? _a : columnDef.footer) !== null && _b !== void 0 ? _b : null }) })));
1082
1109
  };
1083
1110
 
1084
1111
  const MRT_TableFooterRow = ({ footerGroup, table, virtualColumns, virtualPaddingLeft, virtualPaddingRight, }) => {
@@ -1097,7 +1124,7 @@ const MRT_TableFooterRow = ({ footerGroup, table, virtualColumns, virtualPadding
1097
1124
  const footer = virtualColumns
1098
1125
  ? footerGroup.headers[footerOrVirtualFooter.index]
1099
1126
  : footerOrVirtualFooter;
1100
- return (jsxRuntime.jsx(MRT_TableFooterCell, { footer: footer, table: table }, footer.id));
1127
+ return footer ? (jsxRuntime.jsx(MRT_TableFooterCell, { footer: footer, table: table }, footer.id)) : null;
1101
1128
  }), virtualPaddingRight ? (jsxRuntime.jsx("th", { style: { display: 'flex', width: virtualPaddingRight } })) : null] })));
1102
1129
  };
1103
1130
 
@@ -1470,7 +1497,7 @@ const MRT_TableHeadCellColumnActionsButton = ({ header, table, }) => {
1470
1497
  }));
1471
1498
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Tooltip__default["default"], { arrow: true, enterDelay: 1000, enterNextDelay: 1000, placement: "top", title: (_a = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.title) !== null && _a !== void 0 ? _a : localization.columnActions, children: jsxRuntime.jsx(IconButton__default["default"], Object.assign({ "aria-label": localization.columnActions, onClick: handleClick, size: "small" }, iconButtonProps, { sx: (theme) => (Object.assign({ '&:hover': {
1472
1499
  opacity: 1,
1473
- }, height: '2rem', m: '-8px -4px', opacity: 0.5, transform: `scale(0.85) ${columnFilterDisplayMode !== 'popover' ? 'translateX(-4px)' : ''}`, transition: 'opacity 150ms', width: '2rem' }, parseFromValuesOrFunc(iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx, theme))), title: undefined, children: jsxRuntime.jsx(MoreVertIcon, {}) })) }), anchorEl && (jsxRuntime.jsx(MRT_ColumnActionMenu, { anchorEl: anchorEl, header: header, setAnchorEl: setAnchorEl, table: table }))] }));
1500
+ }, height: '2rem', m: '-4px', opacity: 0.3, transform: `scale(0.85) ${columnFilterDisplayMode !== 'popover' ? 'translateX(-4px)' : ''}`, transition: 'opacity 150ms', width: '2rem' }, parseFromValuesOrFunc(iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx, theme))), title: undefined, children: jsxRuntime.jsx(MoreVertIcon, {}) })) }), anchorEl && (jsxRuntime.jsx(MRT_ColumnActionMenu, { anchorEl: anchorEl, header: header, setAnchorEl: setAnchorEl, table: table }))] }));
1474
1501
  };
1475
1502
 
1476
1503
  const MRT_FilterCheckbox = ({ column, table, }) => {
@@ -1559,7 +1586,7 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1559
1586
  if (isRangeFilter) {
1560
1587
  column.setFilterValue((old) => {
1561
1588
  const newFilterValues = old !== null && old !== void 0 ? old : ['', ''];
1562
- newFilterValues[rangeFilterIndex] = newValue;
1589
+ newFilterValues[rangeFilterIndex] = newValue !== null && newValue !== void 0 ? newValue : undefined;
1563
1590
  return newFilterValues;
1564
1591
  });
1565
1592
  }
@@ -1568,8 +1595,7 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1568
1595
  }
1569
1596
  }, isTextboxFilter ? (manualFiltering ? 400 : 200) : 1), []);
1570
1597
  const handleChange = (newValue) => {
1571
- var _a;
1572
- setFilterValue((_a = newValue === null || newValue === void 0 ? void 0 : newValue.toString()) !== null && _a !== void 0 ? _a : '');
1598
+ setFilterValue(newValue !== null && newValue !== void 0 ? newValue : '');
1573
1599
  handleChangeDebounced(newValue);
1574
1600
  };
1575
1601
  const handleTextFieldChange = (event) => {
@@ -1647,7 +1673,7 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1647
1673
  const endAdornment = !isAutocompleteFilter && !isDateFilter && !filterChipLabel ? (jsxRuntime.jsx(InputAdornment__default["default"], { position: "end", sx: { mr: isSelectFilter || isMultiSelectFilter ? '20px' : undefined }, children: jsxRuntime.jsx(Tooltip__default["default"], { arrow: true, placement: "right", title: (_h = localization.clearFilter) !== null && _h !== void 0 ? _h : '', children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.clearFilter, disabled: !((_j = filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString()) === null || _j === void 0 ? void 0 : _j.length), onClick: handleClear, size: "small", sx: {
1648
1674
  height: '2rem',
1649
1675
  transform: 'scale(0.9)',
1650
- width: '2rem'
1676
+ width: '2rem',
1651
1677
  }, children: jsxRuntime.jsx(CloseIcon, {}) }) }) }) })) : null;
1652
1678
  const startAdornment = showChangeModeButton ? (jsxRuntime.jsxs(InputAdornment__default["default"], { position: "start", children: [jsxRuntime.jsx(Tooltip__default["default"], { arrow: true, title: localization.changeFilterMode, children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.changeFilterMode, onClick: handleFilterMenuOpen, size: "small", sx: { height: '1.75rem', width: '1.75rem' }, children: jsxRuntime.jsx(FilterListIcon, {}) }) }) }), filterChipLabel && (jsxRuntime.jsx(Chip__default["default"], { label: filterChipLabel, onDelete: handleClearEmptyFilterChip }))] })) : null;
1653
1679
  const commonTextFieldProps = Object.assign(Object.assign({ FormHelperTextProps: {
@@ -1689,7 +1715,7 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1689
1715
  }, value: filterValue || null }, datePickerProps, { slotProps: {
1690
1716
  field: Object.assign({ clearable: true, onClear: () => handleClear() }, (_l = datePickerProps === null || datePickerProps === void 0 ? void 0 : datePickerProps.slotProps) === null || _l === void 0 ? void 0 : _l.field),
1691
1717
  textField: Object.assign(Object.assign({}, commonTextFieldProps), (_m = datePickerProps === null || datePickerProps === void 0 ? void 0 : datePickerProps.slotProps) === null || _m === void 0 ? void 0 : _m.textField),
1692
- } }))) : isAutocompleteFilter ? (jsxRuntime.jsx(Autocomplete__default["default"], Object.assign({ getOptionLabel: (option) => option, onChange: (_e, newValue) => handleChange(newValue), options: dropdownOptions !== null && dropdownOptions !== void 0 ? dropdownOptions : [] }, autocompleteProps, { renderInput: (builtinTextFieldProps) => {
1718
+ } }))) : isAutocompleteFilter ? (jsxRuntime.jsx(Autocomplete__default["default"], Object.assign({ freeSolo: true, getOptionLabel: (option) => option, onChange: (_e, newValue) => handleChange(newValue), options: dropdownOptions !== null && dropdownOptions !== void 0 ? dropdownOptions : [] }, autocompleteProps, { renderInput: (builtinTextFieldProps) => {
1693
1719
  var _a;
1694
1720
  return (jsxRuntime.jsx(TextField__default["default"], Object.assign({}, builtinTextFieldProps, commonTextFieldProps, { InputProps: Object.assign(Object.assign({}, builtinTextFieldProps.InputProps), { startAdornment: (_a = commonTextFieldProps === null || commonTextFieldProps === void 0 ? void 0 : commonTextFieldProps.InputProps) === null || _a === void 0 ? void 0 : _a.startAdornment }), inputProps: Object.assign(Object.assign({}, builtinTextFieldProps.inputProps), commonTextFieldProps === null || commonTextFieldProps === void 0 ? void 0 : commonTextFieldProps.inputProps), onChange: handleTextFieldChange })));
1695
1721
  }, value: filterValue }))) : (jsxRuntime.jsx(TextField__default["default"], Object.assign({ SelectProps: {
@@ -1860,20 +1886,22 @@ const MRT_TableHeadCellFilterLabel = ({ header, table, }) => {
1860
1886
  (_b = filterInputRefs.current[`${column.id}-0`]) === null || _b === void 0 ? void 0 : _b.select();
1861
1887
  });
1862
1888
  event.stopPropagation();
1863
- }, sx: {
1889
+ }, size: "small", sx: {
1864
1890
  height: '16px',
1865
- opacity: 0.8,
1891
+ ml: '4px',
1892
+ opacity: isFilterActive ? 1 : 0.3,
1866
1893
  p: '8px',
1867
1894
  transform: 'scale(0.75)',
1895
+ transition: 'all 150ms ease-in-out',
1868
1896
  width: '16px',
1869
1897
  }, children: jsxRuntime.jsx(FilterAltIcon, {}) }) }) }) }), jsxRuntime.jsx(Popover__default["default"], { anchorEl: anchorEl, anchorOrigin: {
1870
1898
  horizontal: 'center',
1871
1899
  vertical: 'top',
1872
- }, onClose: (event) => {
1900
+ }, onClick: (event) => event.stopPropagation(), onClose: (event) => {
1873
1901
  //@ts-ignore
1874
1902
  event.stopPropagation();
1875
1903
  setAnchorEl(null);
1876
- }, open: !!anchorEl, transformOrigin: {
1904
+ }, onKeyDown: (event) => event.key === 'Enter' && setAnchorEl(null), open: !!anchorEl, transformOrigin: {
1877
1905
  horizontal: 'center',
1878
1906
  vertical: 'bottom',
1879
1907
  }, children: jsxRuntime.jsx(Box__default["default"], { sx: { p: '1rem' }, children: jsxRuntime.jsx(MRT_TableHeadCellFilterContainer, { header: header, table: table }) }) })] }));
@@ -1945,11 +1973,12 @@ const MRT_TableHeadCellResizeHandle = ({ header, table, }) => {
1945
1973
  } }) }));
1946
1974
  };
1947
1975
 
1948
- const MRT_TableHeadCellSortLabel = ({ header, table, tableCellProps, }) => {
1949
- const { getState, options: { icons: { ArrowDownwardIcon }, localization, }, } = table;
1976
+ const MRT_TableHeadCellSortLabel = ({ header, table, }) => {
1977
+ const { getState, options: { icons: { ArrowDownwardIcon, SyncAltIcon }, localization, }, } = table;
1950
1978
  const { column } = header;
1951
1979
  const { columnDef } = column;
1952
1980
  const { sorting } = getState();
1981
+ const isSorted = !!column.getIsSorted();
1953
1982
  const sortTooltip = column.getIsSorted()
1954
1983
  ? column.getIsSorted() === 'desc'
1955
1984
  ? localization.sortedByColumnDesc.replace('{column}', columnDef.header)
@@ -1957,18 +1986,17 @@ const MRT_TableHeadCellSortLabel = ({ header, table, tableCellProps, }) => {
1957
1986
  : column.getNextSortingOrder() === 'desc'
1958
1987
  ? localization.sortByColumnDesc.replace('{column}', columnDef.header)
1959
1988
  : localization.sortByColumnAsc.replace('{column}', columnDef.header);
1960
- return (jsxRuntime.jsx(Tooltip__default["default"], { arrow: true, placement: "top", title: sortTooltip, children: jsxRuntime.jsx(Badge__default["default"], { badgeContent: sorting.length > 1 ? column.getSortIndex() + 1 : 0, overlap: "circular", children: jsxRuntime.jsx(TableSortLabel__default["default"], { IconComponent: ArrowDownwardIcon, active: !!column.getIsSorted(), "aria-label": sortTooltip, direction: column.getIsSorted()
1961
- ? column.getIsSorted()
1962
- : undefined, onClick: (e) => {
1989
+ return (jsxRuntime.jsx(Tooltip__default["default"], { arrow: true, placement: "top", title: sortTooltip, children: jsxRuntime.jsx(Badge__default["default"], { badgeContent: sorting.length > 1 ? column.getSortIndex() + 1 : 0, overlap: "circular", children: jsxRuntime.jsx(TableSortLabel__default["default"], { IconComponent: !isSorted
1990
+ ? (props) => (jsxRuntime.jsx(SyncAltIcon, Object.assign({}, props, { style: { transform: 'rotate(-90deg) scaleX(0.8)' } })))
1991
+ : ArrowDownwardIcon, active: true, "aria-label": sortTooltip, direction: isSorted ? column.getIsSorted() : undefined, onClick: (e) => {
1963
1992
  var _a;
1964
1993
  e.stopPropagation();
1965
1994
  (_a = header.column.getToggleSortingHandler()) === null || _a === void 0 ? void 0 : _a(e);
1966
1995
  }, sx: {
1967
1996
  flex: '0 0',
1968
- transform: (tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.align) !== 'right'
1969
- ? 'translateX(-0.5ch)'
1970
- : undefined,
1971
- width: '2.4ch',
1997
+ opacity: isSorted ? 1 : 0.3,
1998
+ transition: 'all 150ms ease-in-out',
1999
+ width: '3ch',
1972
2000
  } }) }) }));
1973
2001
  };
1974
2002
 
@@ -1996,11 +2024,11 @@ const MRT_TableHeadCell = ({ header, table, }) => {
1996
2024
  const headerPL = react.useMemo(() => {
1997
2025
  let pl = 0;
1998
2026
  if (column.getCanSort())
1999
- pl++;
2027
+ pl += 1;
2000
2028
  if (showColumnActions)
2001
2029
  pl += 1.75;
2002
2030
  if (showDragHandle)
2003
- pl += 1.25;
2031
+ pl += 1.5;
2004
2032
  return pl;
2005
2033
  }, [showColumnActions, showDragHandle]);
2006
2034
  const draggingBorder = react.useMemo(() => (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id
@@ -2032,7 +2060,11 @@ const MRT_TableHeadCell = ({ header, table, }) => {
2032
2060
  if (node) {
2033
2061
  tableHeadCellRefs.current[column.id] = node;
2034
2062
  }
2035
- } }, tableCellProps, { sx: (theme) => (Object.assign(Object.assign({ flexDirection: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'column' : undefined, fontWeight: 'bold', overflow: 'visible', p: density === 'compact'
2063
+ } }, tableCellProps, { sx: (theme) => (Object.assign(Object.assign({ '& :hover': {
2064
+ '.MuiButtonBase-root': {
2065
+ opacity: 1,
2066
+ },
2067
+ }, flexDirection: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'column' : undefined, fontWeight: 'bold', overflow: 'visible', p: density === 'compact'
2036
2068
  ? '0.5rem'
2037
2069
  : density === 'comfortable'
2038
2070
  ? columnDefType === 'display'
@@ -2084,11 +2116,11 @@ const MRT_TableHeadCell = ({ header, table, }) => {
2084
2116
  '&:hover': {
2085
2117
  textOverflow: 'clip',
2086
2118
  },
2087
- minWidth: `${Math.min((_c = (_b = columnDef.header) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0, 5)}ch`,
2119
+ minWidth: `${Math.min((_c = (_b = columnDef.header) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0, 4)}ch`,
2088
2120
  overflow: columnDefType === 'data' ? 'hidden' : undefined,
2089
2121
  textOverflow: 'ellipsis',
2090
2122
  whiteSpace: ((_f = (_d = columnDef.header) === null || _d === void 0 ? void 0 : _d.length) !== null && _f !== void 0 ? _f : 0) < 20 ? 'nowrap' : 'normal',
2091
- }, title: columnDefType === 'data' ? columnDef.header : undefined, children: headerElement }), column.getCanSort() && (jsxRuntime.jsx(MRT_TableHeadCellSortLabel, { header: header, table: table, tableCellProps: tableCellProps })), column.getCanFilter() && (jsxRuntime.jsx(MRT_TableHeadCellFilterLabel, { header: header, table: table }))] }), columnDefType !== 'group' && (jsxRuntime.jsxs(Box__default["default"], { className: "Mui-TableHeadCell-Content-Actions", sx: { whiteSpace: 'nowrap' }, children: [showDragHandle && (jsxRuntime.jsx(MRT_TableHeadCellGrabHandle, { column: column, table: table, tableHeadCellRef: {
2123
+ }, title: columnDefType === 'data' ? columnDef.header : undefined, children: headerElement }), column.getCanFilter() && (jsxRuntime.jsx(MRT_TableHeadCellFilterLabel, { header: header, table: table })), column.getCanSort() && (jsxRuntime.jsx(MRT_TableHeadCellSortLabel, { header: header, table: table, tableCellProps: tableCellProps }))] }), columnDefType !== 'group' && (jsxRuntime.jsxs(Box__default["default"], { className: "Mui-TableHeadCell-Content-Actions", sx: { whiteSpace: 'nowrap' }, children: [showDragHandle && (jsxRuntime.jsx(MRT_TableHeadCellGrabHandle, { column: column, table: table, tableHeadCellRef: {
2092
2124
  current: tableHeadCellRefs.current[column.id],
2093
2125
  } })), showColumnActions && (jsxRuntime.jsx(MRT_TableHeadCellColumnActionsButton, { header: header, table: table }))] })), column.getCanResize() && (jsxRuntime.jsx(MRT_TableHeadCellResizeHandle, { header: header, table: table }))] })), columnFilterDisplayMode === 'subheader' && column.getCanFilter() && (jsxRuntime.jsx(MRT_TableHeadCellFilterContainer, { header: header, table: table }))] })));
2094
2126
  };
@@ -2103,18 +2135,18 @@ const MRT_TableHeadRow = ({ headerGroup, table, virtualColumns, virtualPaddingLe
2103
2135
  const header = virtualColumns
2104
2136
  ? headerGroup.headers[headerOrVirtualHeader.index]
2105
2137
  : headerOrVirtualHeader;
2106
- return (jsxRuntime.jsx(MRT_TableHeadCell, { header: header, table: table }, header.id));
2138
+ return header ? (jsxRuntime.jsx(MRT_TableHeadCell, { header: header, table: table }, header.id)) : null;
2107
2139
  }), virtualPaddingRight ? (jsxRuntime.jsx("th", { style: { display: 'flex', width: virtualPaddingRight } })) : null] })));
2108
2140
  };
2109
2141
 
2110
2142
  const MRT_LinearProgressBar = ({ isTopToolbar, table, }) => {
2111
2143
  const { getState, options: { muiLinearProgressProps }, } = table;
2112
- const { isLoading, showProgressBars } = getState();
2144
+ const { showProgressBars } = getState();
2113
2145
  const linearProgressProps = parseFromValuesOrFunc(muiLinearProgressProps, {
2114
2146
  isTopToolbar,
2115
2147
  table,
2116
2148
  });
2117
- return (jsxRuntime.jsx(Collapse__default["default"], { in: isLoading || showProgressBars, mountOnEnter: true, sx: {
2149
+ return (jsxRuntime.jsx(Collapse__default["default"], { in: showProgressBars, mountOnEnter: true, sx: {
2118
2150
  bottom: isTopToolbar ? 0 : undefined,
2119
2151
  position: 'absolute',
2120
2152
  top: !isTopToolbar ? 0 : undefined,
@@ -2161,7 +2193,7 @@ const MRT_TablePagination = ({ position = 'bottom', table, }) => {
2161
2193
  const showFirstLastPageButtons = numberOfPages > 2;
2162
2194
  const firstRowIndex = pageIndex * pageSize;
2163
2195
  const lastRowIndex = Math.min(pageIndex * pageSize + pageSize, totalRowCount);
2164
- const _a = paginationProps !== null && paginationProps !== void 0 ? paginationProps : {}, { showRowsPerPage = true, rowsPerPageOptions = defaultRowsPerPage, showFirstButton = showFirstLastPageButtons, showLastButton = showFirstLastPageButtons } = _a, rest = __rest(_a, ["showRowsPerPage", "rowsPerPageOptions", "showFirstButton", "showLastButton"]);
2196
+ const _a = paginationProps !== null && paginationProps !== void 0 ? paginationProps : {}, { rowsPerPageOptions = defaultRowsPerPage, showFirstButton = showFirstLastPageButtons, showLastButton = showFirstLastPageButtons, showRowsPerPage = true } = _a, rest = __rest(_a, ["rowsPerPageOptions", "showFirstButton", "showLastButton", "showRowsPerPage"]);
2165
2197
  return (jsxRuntime.jsxs(Box__default["default"], { sx: {
2166
2198
  alignItems: 'center',
2167
2199
  display: 'flex',
@@ -2177,12 +2209,12 @@ const MRT_TablePagination = ({ position = 'bottom', table, }) => {
2177
2209
  px: '4px',
2178
2210
  py: '12px',
2179
2211
  zIndex: 2,
2180
- }, children: [showRowsPerPage && (jsxRuntime.jsxs(Box__default["default"], { sx: { alignItems: 'center', display: 'flex', gap: '8px' }, children: [jsxRuntime.jsx(InputLabel__default["default"], { htmlFor: "mrt-rows-per-page", sx: { mb: 0 }, children: localization.rowsPerPage }), jsxRuntime.jsx(Select__default["default"], { inputProps: { 'aria-label': localization.rowsPerPage }, id: "mrt-rows-per-page", label: localization.rowsPerPage, onChange: (event) => setPageSize(+event.target.value), sx: { '&::before': { border: 'none' }, mb: 0 }, value: pageSize, variant: "standard", children: rowsPerPageOptions.map((value) => (jsxRuntime.jsx(MenuItem__default["default"], { sx: { m: 0 }, value: value, children: value }, value))) })] })), paginationDisplayMode === 'pages' ? (jsxRuntime.jsx(Pagination__default["default"], Object.assign({ count: numberOfPages, onChange: (_e, newPageIndex) => setPageIndex(newPageIndex - 1), page: pageIndex + 1, renderItem: (item) => (jsxRuntime.jsx(PaginationItem__default["default"], Object.assign({ slots: {
2212
+ }, children: [showRowsPerPage && (jsxRuntime.jsxs(Box__default["default"], { sx: { alignItems: 'center', display: 'flex', gap: '8px' }, children: [jsxRuntime.jsx(InputLabel__default["default"], { htmlFor: "mrt-rows-per-page", sx: { mb: 0 }, children: localization.rowsPerPage }), jsxRuntime.jsx(Select__default["default"], { id: "mrt-rows-per-page", inputProps: { 'aria-label': localization.rowsPerPage }, label: localization.rowsPerPage, onChange: (event) => setPageSize(+event.target.value), sx: { '&::before': { border: 'none' }, mb: 0 }, value: pageSize, variant: "standard", children: rowsPerPageOptions.map((value) => (jsxRuntime.jsx(MenuItem__default["default"], { sx: { m: 0 }, value: value, children: value }, value))) })] })), paginationDisplayMode === 'pages' ? (jsxRuntime.jsx(Pagination__default["default"], Object.assign({ count: numberOfPages, onChange: (_e, newPageIndex) => setPageIndex(newPageIndex - 1), page: pageIndex + 1, renderItem: (item) => (jsxRuntime.jsx(PaginationItem__default["default"], Object.assign({ slots: {
2181
2213
  first: FirstPageIcon,
2182
2214
  last: LastPageIcon,
2183
2215
  next: ChevronRightIcon,
2184
2216
  previous: ChevronLeftIcon,
2185
- } }, item))), showFirstButton: showFirstButton, showLastButton: showLastButton }, rest))) : paginationDisplayMode === 'default' ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Typography__default["default"], { sx: { mb: 0, mx: '4px', minWidth: '10ch' }, variant: "body2", children: `${lastRowIndex === 0 ? 0 : (firstRowIndex + 1).toLocaleString()}-${lastRowIndex.toLocaleString()} ${localization.of} ${totalRowCount.toLocaleString()}` }), jsxRuntime.jsxs(Box__default["default"], { gap: "xs", children: [showFirstButton && (jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.goToFirstPage, disabled: pageIndex <= 0, onClick: () => setPageIndex(0), size: "small", children: jsxRuntime.jsx(FirstPageIcon, {}) })), jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.goToPreviousPage, disabled: pageIndex <= 0, onClick: () => setPageIndex(pageIndex - 1), size: "small", children: jsxRuntime.jsx(ChevronLeftIcon, {}) }), jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.goToNextPage, disabled: lastRowIndex >= totalRowCount, onClick: () => setPageIndex(pageIndex + 1), size: "small", children: jsxRuntime.jsx(ChevronRightIcon, {}) }), showLastButton && (jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.goToLastPage, disabled: lastRowIndex >= totalRowCount, onClick: () => setPageIndex(numberOfPages - 1), size: "small", children: jsxRuntime.jsx(LastPageIcon, {}) }))] })] })) : null] }));
2217
+ } }, item))), showFirstButton: showFirstButton, showLastButton: showLastButton }, rest))) : paginationDisplayMode === 'default' ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Typography__default["default"], { sx: { mb: 0, minWidth: '10ch', mx: '4px' }, variant: "body2", children: `${lastRowIndex === 0 ? 0 : (firstRowIndex + 1).toLocaleString()}-${lastRowIndex.toLocaleString()} ${localization.of} ${totalRowCount.toLocaleString()}` }), jsxRuntime.jsxs(Box__default["default"], { gap: "xs", children: [showFirstButton && (jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.goToFirstPage, disabled: pageIndex <= 0, onClick: () => setPageIndex(0), size: "small", children: jsxRuntime.jsx(FirstPageIcon, {}) })), jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.goToPreviousPage, disabled: pageIndex <= 0, onClick: () => setPageIndex(pageIndex - 1), size: "small", children: jsxRuntime.jsx(ChevronLeftIcon, {}) }), jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.goToNextPage, disabled: lastRowIndex >= totalRowCount, onClick: () => setPageIndex(pageIndex + 1), size: "small", children: jsxRuntime.jsx(ChevronRightIcon, {}) }), showLastButton && (jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.goToLastPage, disabled: lastRowIndex >= totalRowCount, onClick: () => setPageIndex(numberOfPages - 1), size: "small", children: jsxRuntime.jsx(LastPageIcon, {}) }))] })] })) : null] }));
2186
2218
  };
2187
2219
 
2188
2220
  const MRT_GlobalFilterTextField = ({ table, }) => {
@@ -2636,7 +2668,9 @@ const MRT_TableHead = ({ table, virtualColumns, virtualPaddingLeft, virtualPaddi
2636
2668
  tableHeadProps.ref.current = ref;
2637
2669
  }
2638
2670
  }, sx: (theme) => (Object.assign({ display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined, opacity: 0.97, position: stickyHeader ? 'sticky' : 'relative', top: stickyHeader && (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 0 : undefined, zIndex: stickyHeader ? 2 : undefined }, parseFromValuesOrFunc(tableHeadProps === null || tableHeadProps === void 0 ? void 0 : tableHeadProps.sx, theme))), children: positionToolbarAlertBanner === 'head-overlay' &&
2639
- (showAlertBanner || getSelectedRowModel().rows.length > 0) ? (jsxRuntime.jsx("tr", { style: { display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined }, children: jsxRuntime.jsx("th", { colSpan: table.getVisibleLeafColumns().length, style: {
2671
+ (showAlertBanner || getSelectedRowModel().rows.length > 0) ? (jsxRuntime.jsx("tr", { style: {
2672
+ display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined,
2673
+ }, children: jsxRuntime.jsx("th", { colSpan: table.getVisibleLeafColumns().length, style: {
2640
2674
  display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : 'table-cell',
2641
2675
  padding: 0,
2642
2676
  }, children: jsxRuntime.jsx(MRT_ToolbarAlertBanner, { table: table }) }) })) : (getHeaderGroups().map((headerGroup) => (jsxRuntime.jsx(MRT_TableHeadRow, { headerGroup: headerGroup, table: table, virtualColumns: virtualColumns, virtualPaddingLeft: virtualPaddingLeft, virtualPaddingRight: virtualPaddingRight }, headerGroup.id)))) })));
@@ -2645,7 +2679,7 @@ const MRT_TableHead = ({ table, virtualColumns, virtualPaddingLeft, virtualPaddi
2645
2679
  const MRT_Table = ({ table, }) => {
2646
2680
  var _a, _b, _c, _d;
2647
2681
  const { getFlatHeaders, getState, options: { columnVirtualizerInstanceRef, columnVirtualizerOptions, columns, enableColumnPinning, enableColumnResizing, enableColumnVirtualization, enableStickyHeader, enableTableFooter, enableTableHead, layoutMode, memoMode, muiTableProps, }, refs: { tableContainerRef }, } = table;
2648
- const { columnPinning, columnSizing, columnSizingInfo, columnVisibility, isFullScreen, } = getState();
2682
+ const { columnPinning, columnSizing, columnSizingInfo, columnVisibility, draggingColumn, isFullScreen, } = getState();
2649
2683
  const tableProps = parseFromValuesOrFunc(muiTableProps, { table });
2650
2684
  const columnVirtualizerProps = parseFromValuesOrFunc(columnVirtualizerOptions, { table });
2651
2685
  const columnSizeVars = react.useMemo(() => {
@@ -2677,14 +2711,20 @@ const MRT_Table = ({ table, }) => {
2677
2711
  .map((c) => table.getVisibleLeafColumns().length - c.getPinnedIndex() - 1),
2678
2712
  ]
2679
2713
  : [[], []], [columnPinning, enableColumnVirtualization, enableColumnPinning]);
2714
+ const draggingColumnIndex = table
2715
+ .getVisibleLeafColumns()
2716
+ .findIndex((c) => c.id === (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id));
2680
2717
  const columnVirtualizer = enableColumnVirtualization
2681
- ? reactVirtual.useVirtualizer(Object.assign({ count: table.getVisibleLeafColumns().length, estimateSize: () => averageColumnWidth, getScrollElement: () => tableContainerRef.current, horizontal: true, overscan: 3, rangeExtractor: react.useCallback((range) => [
2682
- ...new Set([
2683
- ...leftPinnedIndexes,
2684
- ...reactVirtual.defaultRangeExtractor(range),
2685
- ...rightPinnedIndexes,
2686
- ]),
2687
- ], [leftPinnedIndexes, rightPinnedIndexes]) }, columnVirtualizerProps))
2718
+ ? reactVirtual.useVirtualizer(Object.assign({ count: table.getVisibleLeafColumns().length, estimateSize: () => averageColumnWidth, getScrollElement: () => tableContainerRef.current, horizontal: true, overscan: 3, rangeExtractor: react.useCallback((range) => {
2719
+ const newIndexs = extraIndexRangeExtractor(range, draggingColumnIndex);
2720
+ return [
2721
+ ...new Set([
2722
+ ...leftPinnedIndexes,
2723
+ ...newIndexs,
2724
+ ...rightPinnedIndexes,
2725
+ ]),
2726
+ ];
2727
+ }, [leftPinnedIndexes, rightPinnedIndexes, draggingColumnIndex]) }, columnVirtualizerProps))
2688
2728
  : undefined;
2689
2729
  if (columnVirtualizerInstanceRef && columnVirtualizer) {
2690
2730
  columnVirtualizerInstanceRef.current = columnVirtualizer;
@@ -2799,12 +2839,14 @@ const MRT_EditRowModal = ({ open, table, }) => {
2799
2839
 
2800
2840
  const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? react.useLayoutEffect : react.useEffect;
2801
2841
  const MRT_TableContainer = ({ table, }) => {
2802
- const { getState, options: { createDisplayMode, editDisplayMode, enableStickyHeader, muiTableContainerProps, }, refs: { bottomToolbarRef, tableContainerRef, topToolbarRef }, } = table;
2803
- const { creatingRow, editingRow, isFullScreen } = getState();
2842
+ const { getState, options: { createDisplayMode, editDisplayMode, enableStickyHeader, localization, muiCircularProgressProps, muiTableContainerProps, }, refs: { bottomToolbarRef, tableContainerRef, topToolbarRef }, } = table;
2843
+ const { creatingRow, editingRow, isFullScreen, isLoading, showLoadingOverlay, } = getState();
2844
+ const loading = (isLoading || showLoadingOverlay) && showLoadingOverlay !== false;
2804
2845
  const [totalToolbarHeight, setTotalToolbarHeight] = react.useState(0);
2805
2846
  const tableContainerProps = parseFromValuesOrFunc(muiTableContainerProps, {
2806
2847
  table,
2807
2848
  });
2849
+ const circularProgressProps = parseFromValuesOrFunc(muiCircularProgressProps, { table });
2808
2850
  useIsomorphicLayoutEffect(() => {
2809
2851
  var _a, _b, _c, _d;
2810
2852
  const topToolbarHeight = typeof document !== 'undefined'
@@ -2817,7 +2859,7 @@ const MRT_TableContainer = ({ table, }) => {
2817
2859
  });
2818
2860
  const createModalOpen = createDisplayMode === 'modal' && creatingRow;
2819
2861
  const editModalOpen = editDisplayMode === 'modal' && editingRow;
2820
- return (jsxRuntime.jsxs(TableContainer__default["default"], Object.assign({}, tableContainerProps, { ref: (node) => {
2862
+ return (jsxRuntime.jsxs(TableContainer__default["default"], Object.assign({ "aria-busy": loading, "aria-describedby": "mrt-progress" }, tableContainerProps, { ref: (node) => {
2821
2863
  if (node) {
2822
2864
  tableContainerRef.current = node;
2823
2865
  if (tableContainerProps === null || tableContainerProps === void 0 ? void 0 : tableContainerProps.ref) {
@@ -2829,7 +2871,20 @@ const MRT_TableContainer = ({ table, }) => {
2829
2871
  ? `calc(100vh - ${totalToolbarHeight}px)`
2830
2872
  : undefined }, tableContainerProps === null || tableContainerProps === void 0 ? void 0 : tableContainerProps.style), sx: (theme) => (Object.assign({ maxHeight: enableStickyHeader
2831
2873
  ? `clamp(350px, calc(100vh - ${totalToolbarHeight}px), 9999px)`
2832
- : undefined, maxWidth: '100%', overflow: 'auto' }, parseFromValuesOrFunc(tableContainerProps === null || tableContainerProps === void 0 ? void 0 : tableContainerProps.sx, theme))), children: [jsxRuntime.jsx(MRT_Table, { table: table }), (createModalOpen || editModalOpen) && (jsxRuntime.jsx(MRT_EditRowModal, { open: true, table: table }))] })));
2874
+ : undefined, maxWidth: '100%', overflow: 'auto', position: 'relative' }, parseFromValuesOrFunc(tableContainerProps === null || tableContainerProps === void 0 ? void 0 : tableContainerProps.sx, theme))), children: [loading ? (jsxRuntime.jsx(Box__default["default"], { sx: (theme) => ({
2875
+ alignItems: 'center',
2876
+ backgroundColor: styles.alpha(styles.lighten(theme.palette.background.paper, 0.05), 0.5),
2877
+ bottom: 0,
2878
+ display: 'flex',
2879
+ justifyContent: 'center',
2880
+ left: 0,
2881
+ maxHeight: '100vh',
2882
+ position: 'absolute',
2883
+ right: 0,
2884
+ top: 0,
2885
+ width: '100%',
2886
+ zIndex: 2,
2887
+ }), children: jsxRuntime.jsx(CircularProgress__default["default"], Object.assign({ "aria-label": localization.noRecordsToDisplay, id: "mrt-progress" }, circularProgressProps)) })) : null, jsxRuntime.jsx(MRT_Table, { table: table }), (createModalOpen || editModalOpen) && (jsxRuntime.jsx(MRT_EditRowModal, { open: true, table: table }))] })));
2833
2888
  };
2834
2889
 
2835
2890
  const MRT_TablePaper = ({ table, }) => {
@@ -2933,7 +2988,7 @@ const MRT_ExpandButton = ({ row, table, }) => {
2933
2988
  };
2934
2989
  return (jsxRuntime.jsx(Tooltip__default["default"], { arrow: true, disableHoverListener: !canExpand && !renderDetailPanel, enterDelay: 1000, enterNextDelay: 1000, title: ((_a = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.title) !== null && _a !== void 0 ? _a : isExpanded)
2935
2990
  ? localization.collapse
2936
- : localization.expand, children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], Object.assign({ "aria-label": localization.expand, disabled: !canExpand && !renderDetailPanel }, iconButtonProps, { onClick: handleToggleExpand, sx: (theme) => (Object.assign({ height: density === 'compact' ? '1.75rem' : '2.25rem', width: density === 'compact' ? '1.75rem' : '2.25rem' }, parseFromValuesOrFunc(iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx, theme))), title: undefined, children: (_b = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.children) !== null && _b !== void 0 ? _b : (jsxRuntime.jsx(ExpandMoreIcon, { style: {
2991
+ : localization.expand, children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], Object.assign({ "aria-label": localization.expand, disabled: !canExpand && !renderDetailPanel }, iconButtonProps, { onClick: handleToggleExpand, sx: (theme) => (Object.assign({ height: density === 'compact' ? '1.75rem' : '2.25rem', opacity: !canExpand && !renderDetailPanel ? 0.3 : 1, width: density === 'compact' ? '1.75rem' : '2.25rem' }, parseFromValuesOrFunc(iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx, theme))), title: undefined, children: (_b = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.children) !== null && _b !== void 0 ? _b : (jsxRuntime.jsx(ExpandMoreIcon, { style: {
2937
2992
  transform: `rotate(${!canExpand && !renderDetailPanel ? -90 : isExpanded ? -180 : 0}deg)`,
2938
2993
  transition: 'transform 150ms',
2939
2994
  } })) })) }) }));
@@ -2983,10 +3038,18 @@ const MRT_ToggleRowActionMenuButton = ({ cell, row, table, }) => {
2983
3038
  parseFromValuesOrFunc(enableEditing, row) ? (jsxRuntime.jsx(Tooltip__default["default"], { arrow: true, placement: "right", title: localization.edit, children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.edit, onClick: handleStartEditMode, sx: commonIconButtonStyles, children: jsxRuntime.jsx(EditIcon, {}) }) })) : renderRowActionMenuItems ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Tooltip__default["default"], { arrow: true, enterDelay: 1000, enterNextDelay: 1000, title: localization.rowActions, children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.rowActions, onClick: handleOpenRowActionMenu, size: "small", sx: commonIconButtonStyles, children: jsxRuntime.jsx(MoreHorizIcon, {}) }) }), jsxRuntime.jsx(MRT_RowActionMenu, { anchorEl: anchorEl, handleEdit: handleStartEditMode, row: row, setAnchorEl: setAnchorEl, table: table })] })) : null }));
2984
3039
  };
2985
3040
 
3041
+ const blankColProps = {
3042
+ sx: {
3043
+ flex: '1 0 auto',
3044
+ minWidth: 0,
3045
+ p: 0,
3046
+ width: 0,
3047
+ },
3048
+ };
2986
3049
  const useMRT_DisplayColumns = ({ columnOrder, creatingRow, grouping, tableOptions, }) => {
2987
3050
  var _a, _b;
2988
3051
  return react.useMemo(() => {
2989
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
3052
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
2990
3053
  return [
2991
3054
  ((_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(Object.assign({ Cell: ({ row, table }) => (jsxRuntime.jsx(MRT_TableBodyRowPinButton, { row: row, table: table })), header: tableOptions.localization.pin, size: 60 }, tableOptions.defaultDisplayColumn), (_c = tableOptions.displayColumnDefOptions) === null || _c === void 0 ? void 0 : _c['mrt-row-pin']), { id: 'mrt-row-pin' }),
2992
3055
  ((_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(Object.assign({ Cell: ({ row, rowRef, table }) => (jsxRuntime.jsx(MRT_TableBodyRowGrabHandle, { row: row, rowRef: rowRef, table: table })), header: tableOptions.localization.move, size: 60 }, tableOptions.defaultDisplayColumn), (_f = tableOptions.displayColumnDefOptions) === null || _f === void 0 ? void 0 : _f['mrt-row-drag']), { id: 'mrt-row-drag' }),
@@ -3001,6 +3064,14 @@ const useMRT_DisplayColumns = ({ columnOrder, creatingRow, grouping, tableOption
3001
3064
  ? ({ table }) => jsxRuntime.jsx(MRT_SelectCheckbox, { selectAll: true, table: table })
3002
3065
  : null, header: tableOptions.localization.select, size: 60 }, tableOptions.defaultDisplayColumn), (_s = tableOptions.displayColumnDefOptions) === null || _s === void 0 ? void 0 : _s['mrt-row-select']), { id: 'mrt-row-select' }),
3003
3066
  ((_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(Object.assign({ Cell: ({ row }) => row.index + 1, Header: () => tableOptions.localization.rowNumber, header: tableOptions.localization.rowNumbers, size: 60 }, tableOptions.defaultDisplayColumn), (_v = tableOptions.displayColumnDefOptions) === null || _v === void 0 ? void 0 : _v['mrt-row-numbers']), { id: 'mrt-row-numbers' }),
3067
+ ((_x = (_w = tableOptions.state) === null || _w === void 0 ? void 0 : _w.columnOrder) !== null && _x !== void 0 ? _x : columnOrder).includes('mrt-row-spacer') && {
3068
+ columnDefType: 'display',
3069
+ header: '',
3070
+ id: 'spacer',
3071
+ muiTableBodyCellProps: blankColProps,
3072
+ muiTableFooterCellProps: blankColProps,
3073
+ muiTableHeadCellProps: blankColProps,
3074
+ },
3004
3075
  ].filter(Boolean);
3005
3076
  }, [
3006
3077
  columnOrder,
@@ -3306,7 +3377,7 @@ const endsWith = (row, id, filterValue) => row
3306
3377
  .endsWith(filterValue.toString().toLowerCase().trim());
3307
3378
  endsWith.autoRemove = (val) => !val;
3308
3379
  const equals = (row, id, filterValue) => row.getValue(id).toString().toLowerCase().trim() ===
3309
- filterValue.toString().toLowerCase().trim();
3380
+ (filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString().toLowerCase().trim());
3310
3381
  equals.autoRemove = (val) => !val;
3311
3382
  const notEquals = (row, id, filterValue) => row.getValue(id).toString().toLowerCase().trim() !==
3312
3383
  filterValue.toString().toLowerCase().trim();
@@ -3314,14 +3385,14 @@ notEquals.autoRemove = (val) => !val;
3314
3385
  const greaterThan = (row, id, filterValue) => !isNaN(+filterValue) && !isNaN(+row.getValue(id))
3315
3386
  ? +row.getValue(id) > +filterValue
3316
3387
  : row.getValue(id).toString().toLowerCase().trim() >
3317
- filterValue.toString().toLowerCase().trim();
3388
+ (filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString().toLowerCase().trim());
3318
3389
  greaterThan.autoRemove = (val) => !val;
3319
3390
  const greaterThanOrEqualTo = (row, id, filterValue) => equals(row, id, filterValue) || greaterThan(row, id, filterValue);
3320
3391
  greaterThanOrEqualTo.autoRemove = (val) => !val;
3321
3392
  const lessThan = (row, id, filterValue) => !isNaN(+filterValue) && !isNaN(+row.getValue(id))
3322
3393
  ? +row.getValue(id) < +filterValue
3323
3394
  : row.getValue(id).toString().toLowerCase().trim() <
3324
- filterValue.toString().toLowerCase().trim();
3395
+ (filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString().toLowerCase().trim());
3325
3396
  lessThan.autoRemove = (val) => !val;
3326
3397
  const lessThanOrEqualTo = (row, id, filterValue) => equals(row, id, filterValue) || lessThan(row, id, filterValue);
3327
3398
  lessThanOrEqualTo.autoRemove = (val) => !val;
@@ -3391,6 +3462,7 @@ const MRT_Default_Icons = {
3391
3462
  SearchIcon: SearchIcon__default["default"],
3392
3463
  SearchOffIcon: SearchOffIcon__default["default"],
3393
3464
  SortIcon: SortIcon__default["default"],
3465
+ SyncAltIcon: SyncAltIcon__default["default"],
3394
3466
  ViewColumnIcon: ViewColumnIcon__default["default"],
3395
3467
  VisibilityOffIcon: VisibilityOffIcon__default["default"],
3396
3468
  };
@@ -3650,6 +3722,7 @@ exports.commonListItemStyles = commonListItemStyles;
3650
3722
  exports.commonMenuItemStyles = commonMenuItemStyles;
3651
3723
  exports.commonToolbarStyles = commonToolbarStyles;
3652
3724
  exports.createRow = createRow;
3725
+ exports.extraIndexRangeExtractor = extraIndexRangeExtractor;
3653
3726
  exports.flexRender = flexRender;
3654
3727
  exports.getAllLeafColumnDefs = getAllLeafColumnDefs;
3655
3728
  exports.getCanRankRows = getCanRankRows;