material-react-table 2.10.0 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/README.md +3 -2
  2. package/dist/index.d.ts +144 -125
  3. package/dist/index.esm.js +201 -152
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.js +201 -149
  6. package/dist/index.js.map +1 -1
  7. package/locales/ar/index.esm.js +1 -0
  8. package/locales/ar/index.js +1 -0
  9. package/locales/az/index.esm.js +1 -0
  10. package/locales/az/index.js +1 -0
  11. package/locales/bg/index.esm.js +1 -0
  12. package/locales/bg/index.js +1 -0
  13. package/locales/cs/index.esm.js +1 -0
  14. package/locales/cs/index.js +1 -0
  15. package/locales/da/index.esm.js +1 -0
  16. package/locales/da/index.js +1 -0
  17. package/locales/de/index.esm.js +1 -0
  18. package/locales/de/index.js +1 -0
  19. package/locales/en/index.esm.js +1 -0
  20. package/locales/en/index.js +1 -0
  21. package/locales/es/index.esm.js +1 -0
  22. package/locales/es/index.js +1 -0
  23. package/locales/et/index.esm.js +1 -0
  24. package/locales/et/index.js +1 -0
  25. package/locales/fa/index.esm.js +1 -0
  26. package/locales/fa/index.js +1 -0
  27. package/locales/fi/index.esm.js +1 -0
  28. package/locales/fi/index.js +1 -0
  29. package/locales/fr/index.esm.js +1 -0
  30. package/locales/fr/index.js +1 -0
  31. package/locales/he/index.esm.js +1 -0
  32. package/locales/he/index.js +1 -0
  33. package/locales/hu/index.esm.js +1 -0
  34. package/locales/hu/index.js +1 -0
  35. package/locales/hy/index.esm.js +1 -0
  36. package/locales/hy/index.js +1 -0
  37. package/locales/id/index.esm.js +1 -0
  38. package/locales/id/index.js +1 -0
  39. package/locales/it/index.esm.js +1 -0
  40. package/locales/it/index.js +1 -0
  41. package/locales/ja/index.esm.js +1 -0
  42. package/locales/ja/index.js +1 -0
  43. package/locales/ko/index.esm.js +1 -0
  44. package/locales/ko/index.js +1 -0
  45. package/locales/nl/index.esm.js +1 -0
  46. package/locales/nl/index.js +1 -0
  47. package/locales/no/index.esm.js +1 -0
  48. package/locales/no/index.js +1 -0
  49. package/locales/np/index.esm.js +1 -0
  50. package/locales/np/index.js +1 -0
  51. package/locales/pl/index.esm.js +1 -0
  52. package/locales/pl/index.js +1 -0
  53. package/locales/pt/index.esm.js +1 -0
  54. package/locales/pt/index.js +1 -0
  55. package/locales/pt-BR/index.esm.js +1 -0
  56. package/locales/pt-BR/index.js +1 -0
  57. package/locales/ro/index.esm.js +1 -0
  58. package/locales/ro/index.js +1 -0
  59. package/locales/ru/index.esm.js +1 -0
  60. package/locales/ru/index.js +1 -0
  61. package/locales/sk/index.esm.js +1 -0
  62. package/locales/sk/index.js +1 -0
  63. package/locales/sr-Cyrl-RS/index.esm.js +1 -0
  64. package/locales/sr-Cyrl-RS/index.js +1 -0
  65. package/locales/sr-Latn-RS/index.esm.js +1 -0
  66. package/locales/sr-Latn-RS/index.js +1 -0
  67. package/locales/sv/index.esm.js +1 -0
  68. package/locales/sv/index.js +1 -0
  69. package/locales/tr/index.esm.js +1 -0
  70. package/locales/tr/index.js +1 -0
  71. package/locales/uk/index.esm.js +1 -0
  72. package/locales/uk/index.js +1 -0
  73. package/locales/vi/index.esm.js +1 -0
  74. package/locales/vi/index.js +1 -0
  75. package/locales/zh-Hans/index.esm.js +1 -0
  76. package/locales/zh-Hans/index.js +1 -0
  77. package/locales/zh-Hant/index.esm.js +1 -0
  78. package/locales/zh-Hant/index.js +1 -0
  79. package/package.json +18 -18
  80. package/src/components/MaterialReactTable.tsx +3 -3
  81. package/src/components/body/MRT_TableBody.tsx +3 -2
  82. package/src/components/body/MRT_TableBodyCell.tsx +4 -2
  83. package/src/components/body/MRT_TableBodyCellValue.tsx +5 -2
  84. package/src/components/body/MRT_TableBodyRow.tsx +13 -8
  85. package/src/components/body/MRT_TableBodyRowGrabHandle.tsx +4 -3
  86. package/src/components/body/MRT_TableBodyRowPinButton.tsx +3 -2
  87. package/src/components/body/MRT_TableDetailPanel.tsx +3 -2
  88. package/src/components/buttons/MRT_ColumnPinningButtons.tsx +3 -2
  89. package/src/components/buttons/MRT_CopyButton.tsx +3 -2
  90. package/src/components/buttons/MRT_EditActionButtons.tsx +3 -2
  91. package/src/components/buttons/MRT_ExpandAllButton.tsx +3 -2
  92. package/src/components/buttons/MRT_ExpandButton.tsx +3 -2
  93. package/src/components/buttons/MRT_GrabHandleButton.tsx +9 -15
  94. package/src/components/buttons/MRT_RowPinButton.tsx +3 -2
  95. package/src/components/buttons/MRT_ShowHideColumnsButton.tsx +3 -2
  96. package/src/components/buttons/MRT_ToggleDensePaddingButton.tsx +3 -2
  97. package/src/components/buttons/MRT_ToggleFiltersButton.tsx +3 -2
  98. package/src/components/buttons/MRT_ToggleFullScreenButton.tsx +3 -2
  99. package/src/components/buttons/MRT_ToggleGlobalFilterButton.tsx +3 -2
  100. package/src/components/buttons/MRT_ToggleRowActionMenuButton.tsx +3 -2
  101. package/src/components/footer/MRT_TableFooter.tsx +3 -2
  102. package/src/components/footer/MRT_TableFooterCell.tsx +3 -2
  103. package/src/components/footer/MRT_TableFooterRow.tsx +5 -3
  104. package/src/components/head/MRT_TableHead.tsx +3 -2
  105. package/src/components/head/MRT_TableHeadCell.tsx +3 -5
  106. package/src/components/head/MRT_TableHeadCellColumnActionsButton.tsx +4 -2
  107. package/src/components/head/MRT_TableHeadCellFilterContainer.tsx +4 -2
  108. package/src/components/head/MRT_TableHeadCellFilterLabel.tsx +3 -2
  109. package/src/components/head/MRT_TableHeadCellGrabHandle.tsx +4 -3
  110. package/src/components/head/MRT_TableHeadCellResizeHandle.tsx +3 -2
  111. package/src/components/head/MRT_TableHeadCellSortLabel.tsx +3 -2
  112. package/src/components/head/MRT_TableHeadRow.tsx +3 -2
  113. package/src/components/inputs/MRT_EditCellTextField.tsx +3 -2
  114. package/src/components/inputs/MRT_FilterCheckbox.tsx +3 -2
  115. package/src/components/inputs/MRT_FilterRangeFields.tsx +3 -2
  116. package/src/components/inputs/MRT_FilterRangeSlider.tsx +3 -2
  117. package/src/components/inputs/MRT_FilterTextField.tsx +15 -6
  118. package/src/components/inputs/MRT_GlobalFilterTextField.tsx +3 -2
  119. package/src/components/inputs/MRT_SelectCheckbox.tsx +26 -33
  120. package/src/components/menus/MRT_ActionMenuItem.tsx +3 -2
  121. package/src/components/menus/MRT_CellActionMenu.tsx +5 -4
  122. package/src/components/menus/MRT_ColumnActionMenu.tsx +5 -4
  123. package/src/components/menus/MRT_FilterOptionMenu.tsx +3 -2
  124. package/src/components/menus/MRT_RowActionMenu.tsx +3 -2
  125. package/src/components/menus/MRT_ShowHideColumnsMenu.tsx +8 -2
  126. package/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx +7 -5
  127. package/src/components/modals/MRT_EditRowModal.tsx +3 -2
  128. package/src/components/table/MRT_Table.tsx +2 -2
  129. package/src/components/table/MRT_TableContainer.tsx +3 -2
  130. package/src/components/table/MRT_TableLoadingOverlay.tsx +11 -8
  131. package/src/components/table/MRT_TablePaper.tsx +3 -2
  132. package/src/components/toolbar/MRT_BottomToolbar.tsx +3 -2
  133. package/src/components/toolbar/MRT_LinearProgressBar.tsx +3 -2
  134. package/src/components/toolbar/MRT_TablePagination.tsx +2 -2
  135. package/src/components/toolbar/MRT_ToolbarAlertBanner.tsx +30 -13
  136. package/src/components/toolbar/MRT_ToolbarDropZone.tsx +3 -2
  137. package/src/components/toolbar/MRT_ToolbarInternalButtons.tsx +3 -2
  138. package/src/components/toolbar/MRT_TopToolbar.tsx +2 -2
  139. package/src/hooks/useMRT_Effects.ts +11 -11
  140. package/src/hooks/useMRT_Rows.ts +11 -79
  141. package/src/hooks/useMRT_TableInstance.ts +2 -0
  142. package/src/hooks/useMRT_TableOptions.ts +2 -0
  143. package/src/locales/ar.ts +1 -0
  144. package/src/locales/az.ts +1 -0
  145. package/src/locales/bg.ts +1 -0
  146. package/src/locales/cs.ts +1 -0
  147. package/src/locales/da.ts +1 -0
  148. package/src/locales/de.ts +1 -0
  149. package/src/locales/en.ts +1 -0
  150. package/src/locales/es.ts +1 -0
  151. package/src/locales/et.ts +1 -0
  152. package/src/locales/fa.ts +1 -0
  153. package/src/locales/fi.ts +1 -0
  154. package/src/locales/fr.ts +1 -0
  155. package/src/locales/he.ts +1 -0
  156. package/src/locales/hu.ts +1 -0
  157. package/src/locales/hy.ts +1 -0
  158. package/src/locales/id.ts +1 -0
  159. package/src/locales/it.ts +1 -0
  160. package/src/locales/ja.ts +1 -0
  161. package/src/locales/ko.ts +1 -0
  162. package/src/locales/nl.ts +1 -0
  163. package/src/locales/no.ts +1 -0
  164. package/src/locales/np.ts +1 -0
  165. package/src/locales/pl.ts +1 -0
  166. package/src/locales/pt-BR.ts +1 -0
  167. package/src/locales/pt.ts +1 -0
  168. package/src/locales/ro.ts +1 -0
  169. package/src/locales/ru.ts +1 -0
  170. package/src/locales/sk.ts +1 -0
  171. package/src/locales/sr-Cyrl-RS.ts +1 -0
  172. package/src/locales/sr-Latn-RS.ts +1 -0
  173. package/src/locales/sv.ts +1 -0
  174. package/src/locales/tr.ts +1 -0
  175. package/src/locales/uk.ts +1 -0
  176. package/src/locales/vi.ts +1 -0
  177. package/src/locales/zh-Hans.ts +1 -0
  178. package/src/locales/zh-Hant.ts +1 -0
  179. package/src/types.ts +10 -4
  180. package/src/utils/column.utils.ts +4 -6
  181. package/src/utils/displayColumn.utils.ts +1 -1
  182. package/src/utils/row.utils.ts +179 -21
  183. package/locales/am/index.d.ts +0 -3
  184. package/locales/am/index.esm.d.ts +0 -3
  185. package/locales/am/index.esm.js +0 -93
  186. package/locales/am/index.js +0 -97
  187. package/locales/am/package.json +0 -6
package/dist/index.esm.js CHANGED
@@ -1,5 +1,5 @@
1
- import { flexRender as flexRender$1, createRow as createRow$1, aggregationFns, filterFns, sortingFns, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, useReactTable } from '@tanstack/react-table';
2
- import { rankItem, rankings, compareItems } from '@tanstack/match-sorter-utils';
1
+ import { flexRender as flexRender$1, createRow as createRow$1, sortingFns, aggregationFns, filterFns, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, useReactTable } from '@tanstack/react-table';
2
+ import { compareItems, rankItem, rankings } from '@tanstack/match-sorter-utils';
3
3
  import { useState, useMemo, useReducer, useRef, useEffect, useCallback, memo, Fragment as Fragment$1, useLayoutEffect } from 'react';
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
5
  import IconButton from '@mui/material/IconButton';
@@ -160,13 +160,12 @@ const reorderColumn = (draggedColumn, targetColumn, columnOrder) => {
160
160
  return newColumnOrder;
161
161
  };
162
162
  const getDefaultColumnFilterFn = (columnDef) => {
163
- var _a;
164
- if (columnDef.filterVariant === 'multi-select')
163
+ const { filterVariant } = columnDef;
164
+ if (filterVariant === 'multi-select')
165
165
  return 'arrIncludesSome';
166
- if ((_a = columnDef.filterVariant) === null || _a === void 0 ? void 0 : _a.includes('range'))
166
+ if (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.includes('range'))
167
167
  return 'betweenInclusive';
168
- if (columnDef.filterVariant === 'select' ||
169
- columnDef.filterVariant === 'checkbox')
168
+ if (filterVariant === 'select' || filterVariant === 'checkbox')
170
169
  return 'equals';
171
170
  return 'fuzzy';
172
171
  };
@@ -269,7 +268,7 @@ const showRowDragColumn = (tableOptions) => {
269
268
  const showRowExpandColumn = (tableOptions) => {
270
269
  const { enableExpanding, enableGrouping, renderDetailPanel, state: { grouping }, } = tableOptions;
271
270
  return !!(enableExpanding ||
272
- (enableGrouping && (grouping === undefined || (grouping === null || grouping === void 0 ? void 0 : grouping.length))) ||
271
+ (enableGrouping && (grouping === null || grouping === void 0 ? void 0 : grouping.length)) ||
273
272
  renderDetailPanel);
274
273
  };
275
274
  const showRowActionsColumn = (tableOptions) => {
@@ -319,16 +318,65 @@ const getDefaultColumnOrderIds = (tableOptions, reset = false) => {
319
318
  ];
320
319
  };
321
320
 
322
- const getIsRowSelected = ({ row, table, }) => {
323
- const { options: { enableRowSelection }, } = table;
324
- return (row.getIsSelected() ||
325
- (parseFromValuesOrFunc(enableRowSelection, row) &&
326
- row.getCanSelectSubRows() &&
327
- row.getIsAllSubRowsSelected()));
321
+ const fuzzy$1 = (rowA, rowB, columnId) => {
322
+ let dir = 0;
323
+ if (rowA.columnFiltersMeta[columnId]) {
324
+ dir = compareItems(rowA.columnFiltersMeta[columnId], rowB.columnFiltersMeta[columnId]);
325
+ }
326
+ // Provide a fallback for when the item ranks are equal
327
+ return dir === 0
328
+ ? sortingFns.alphanumeric(rowA, rowB, columnId)
329
+ : dir;
330
+ };
331
+ const MRT_SortingFns = Object.assign(Object.assign({}, sortingFns), { fuzzy: fuzzy$1 });
332
+ const rankGlobalFuzzy = (rowA, rowB) => Math.max(...Object.values(rowB.columnFiltersMeta).map((v) => v.rank)) -
333
+ Math.max(...Object.values(rowA.columnFiltersMeta).map((v) => v.rank));
334
+
335
+ const getMRT_Rows = (table, pinnedRowIds = [], all) => {
336
+ const { getBottomRows, getCenterRows, getPrePaginationRowModel, getRowModel, getState, getTopRows, options: { createDisplayMode, enablePagination, enableRowPinning, manualPagination, positionCreatingRow, rowPinningDisplayMode, }, } = table;
337
+ const { creatingRow, pagination } = getState();
338
+ const isRankingRows = getIsRankingRows(table);
339
+ let rows = [];
340
+ if (!isRankingRows) {
341
+ rows =
342
+ !enableRowPinning || (rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('sticky'))
343
+ ? all
344
+ ? getPrePaginationRowModel().rows
345
+ : getRowModel().rows
346
+ : getCenterRows();
347
+ }
348
+ else {
349
+ rows = getPrePaginationRowModel().rows.sort((a, b) => rankGlobalFuzzy(a, b));
350
+ if (enablePagination && !manualPagination && !all) {
351
+ const start = pagination.pageIndex * pagination.pageSize;
352
+ rows = rows.slice(start, start + pagination.pageSize);
353
+ }
354
+ }
355
+ if (enableRowPinning && (rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('sticky'))) {
356
+ rows = [
357
+ ...getTopRows().filter((row) => !pinnedRowIds.includes(row.id)),
358
+ ...rows,
359
+ ...getBottomRows().filter((row) => !pinnedRowIds.includes(row.id)),
360
+ ];
361
+ }
362
+ if (positionCreatingRow !== undefined &&
363
+ creatingRow &&
364
+ createDisplayMode === 'row') {
365
+ const creatingRowIndex = !isNaN(+positionCreatingRow)
366
+ ? +positionCreatingRow
367
+ : positionCreatingRow === 'top'
368
+ ? 0
369
+ : rows.length;
370
+ rows = [
371
+ ...rows.slice(0, creatingRowIndex),
372
+ creatingRow,
373
+ ...rows.slice(creatingRowIndex),
374
+ ];
375
+ }
376
+ return rows;
328
377
  };
329
378
  const getCanRankRows = (table) => {
330
- const { getState, options } = table;
331
- const { enableGlobalFilterRankedResults, manualExpanding, manualFiltering, manualGrouping, manualSorting, } = options;
379
+ const { getState, options: { enableGlobalFilterRankedResults, manualExpanding, manualFiltering, manualGrouping, manualSorting, }, } = table;
332
380
  const { expanded, globalFilterFn } = getState();
333
381
  return (!manualExpanding &&
334
382
  !manualFiltering &&
@@ -339,17 +387,67 @@ const getCanRankRows = (table) => {
339
387
  expanded !== true &&
340
388
  !Object.values(expanded).some(Boolean));
341
389
  };
390
+ const getIsRankingRows = (table) => {
391
+ const { globalFilter, sorting } = table.getState();
392
+ return (getCanRankRows(table) &&
393
+ globalFilter &&
394
+ !Object.values(sorting).some(Boolean));
395
+ };
396
+ const getIsRowSelected = ({ row, table, }) => {
397
+ const { options: { enableRowSelection }, } = table;
398
+ return (row.getIsSelected() ||
399
+ (parseFromValuesOrFunc(enableRowSelection, row) &&
400
+ row.getCanSelectSubRows() &&
401
+ row.getIsAllSubRowsSelected()));
402
+ };
403
+ const getMRT_RowSelectionHandler = () => ({ event, row, staticRowIndex = 0, table, }) => {
404
+ var _a;
405
+ const { getState, options: { enableBatchRowSelection, enableRowPinning, rowPinningDisplayMode, }, refs: { lastSelectedRowId: lastSelectedRowId }, } = table;
406
+ const { pagination: { pageIndex, pageSize }, } = getState();
407
+ const isChecked = getIsRowSelected({ row, table });
408
+ const isStickySelection = enableRowPinning && (rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('select'));
409
+ // toggle selected of this row
410
+ row.getToggleSelectedHandler()(event);
411
+ // if shift key is pressed, select all rows between last selected and this one
412
+ if (enableBatchRowSelection &&
413
+ event.nativeEvent.shiftKey &&
414
+ lastSelectedRowId.current !== null) {
415
+ const rows = getMRT_Rows(table, undefined, true);
416
+ const lastIndex = rows.findIndex((r) => r.id === lastSelectedRowId.current);
417
+ if (lastIndex !== -1) {
418
+ const currentIndex = staticRowIndex + pageSize * pageIndex;
419
+ const [start, end] = lastIndex < currentIndex
420
+ ? [lastIndex, currentIndex]
421
+ : [currentIndex, lastIndex];
422
+ for (let i = start; i <= end; i++) {
423
+ rows[i].toggleSelected(!isChecked);
424
+ }
425
+ }
426
+ }
427
+ lastSelectedRowId.current = row.id;
428
+ // if all sub rows were selected, unselect them
429
+ if (row.getCanSelectSubRows() && row.getIsAllSubRowsSelected()) {
430
+ (_a = row.subRows) === null || _a === void 0 ? void 0 : _a.forEach((r) => r.toggleSelected(false));
431
+ }
432
+ if (isStickySelection) {
433
+ row.pin(!row.getIsPinned() && isChecked
434
+ ? (rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('bottom'))
435
+ ? 'bottom'
436
+ : 'top'
437
+ : false);
438
+ }
439
+ };
342
440
 
343
441
  const MRT_AggregationFns = Object.assign({}, aggregationFns);
344
442
 
345
- const fuzzy$1 = (row, columnId, filterValue, addMeta) => {
443
+ const fuzzy = (row, columnId, filterValue, addMeta) => {
346
444
  const itemRank = rankItem(row.getValue(columnId), filterValue, {
347
445
  threshold: rankings.MATCHES,
348
446
  });
349
447
  addMeta(itemRank);
350
448
  return itemRank.passed;
351
449
  };
352
- fuzzy$1.autoRemove = (val) => !val;
450
+ fuzzy.autoRemove = (val) => !val;
353
451
  const contains = (row, id, filterValue) => row
354
452
  .getValue(id)
355
453
  .toString()
@@ -417,7 +515,7 @@ const MRT_FilterFns = Object.assign(Object.assign({}, filterFns), { between,
417
515
  empty,
418
516
  endsWith,
419
517
  equals,
420
- fuzzy: fuzzy$1,
518
+ fuzzy,
421
519
  greaterThan,
422
520
  greaterThanOrEqualTo,
423
521
  lessThan,
@@ -426,20 +524,6 @@ const MRT_FilterFns = Object.assign(Object.assign({}, filterFns), { between,
426
524
  notEquals,
427
525
  startsWith });
428
526
 
429
- const fuzzy = (rowA, rowB, columnId) => {
430
- let dir = 0;
431
- if (rowA.columnFiltersMeta[columnId]) {
432
- dir = compareItems(rowA.columnFiltersMeta[columnId], rowB.columnFiltersMeta[columnId]);
433
- }
434
- // Provide a fallback for when the item ranks are equal
435
- return dir === 0
436
- ? sortingFns.alphanumeric(rowA, rowB, columnId)
437
- : dir;
438
- };
439
- const MRT_SortingFns = Object.assign(Object.assign({}, sortingFns), { fuzzy });
440
- const rankGlobalFuzzy = (rowA, rowB) => Math.max(...Object.values(rowB.columnFiltersMeta).map((v) => v.rank)) -
441
- Math.max(...Object.values(rowA.columnFiltersMeta).map((v) => v.rank));
442
-
443
527
  /******************************************************************************
444
528
  Copyright (c) Microsoft Corporation.
445
529
 
@@ -695,19 +779,18 @@ const getMRT_RowActionsColumnDef = (tableOptions) => {
695
779
 
696
780
  const MRT_GrabHandleButton = (_a) => {
697
781
  var _b, _c;
698
- var { iconButtonProps, location, onDragEnd, onDragStart, table } = _a, rest = __rest(_a, ["iconButtonProps", "location", "onDragEnd", "onDragStart", "table"]);
782
+ var { location, table } = _a, rest = __rest(_a, ["location", "table"]);
699
783
  const { options: { icons: { DragHandleIcon }, localization, }, } = table;
700
- const _iconButtonProps = Object.assign(Object.assign({}, iconButtonProps), rest);
701
- return (jsx(Tooltip, Object.assign({}, getCommonTooltipProps('top'), { title: (_b = _iconButtonProps === null || _iconButtonProps === void 0 ? void 0 : _iconButtonProps.title) !== null && _b !== void 0 ? _b : localization.move, children: jsx(IconButton, Object.assign({ "aria-label": (_c = _iconButtonProps.title) !== null && _c !== void 0 ? _c : localization.move, disableRipple: true, draggable: "true", size: "small" }, _iconButtonProps, { onClick: (e) => {
784
+ return (jsx(Tooltip, Object.assign({}, getCommonTooltipProps('top'), { title: (_b = rest === null || rest === void 0 ? void 0 : rest.title) !== null && _b !== void 0 ? _b : localization.move, children: jsx(IconButton, Object.assign({ "aria-label": (_c = rest.title) !== null && _c !== void 0 ? _c : localization.move, disableRipple: true, draggable: "true", size: "small" }, rest, { onClick: (e) => {
702
785
  var _a;
703
786
  e.stopPropagation();
704
- (_a = _iconButtonProps === null || _iconButtonProps === void 0 ? void 0 : _iconButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(_iconButtonProps, e);
705
- }, onDragEnd: onDragEnd, onDragStart: onDragStart, sx: (theme) => (Object.assign({ '&:active': {
787
+ (_a = rest === null || rest === void 0 ? void 0 : rest.onClick) === null || _a === void 0 ? void 0 : _a.call(rest, e);
788
+ }, sx: (theme) => (Object.assign({ '&:active': {
706
789
  cursor: 'grabbing',
707
790
  }, '&:hover': {
708
791
  backgroundColor: 'transparent',
709
792
  opacity: 1,
710
- }, 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: jsx(DragHandleIcon, {}) })) })));
793
+ }, cursor: 'grab', m: '0 -0.1rem', opacity: location === 'row' ? 1 : 0.5, p: '2px', transition: 'all 150ms ease-in-out' }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), title: undefined, children: jsx(DragHandleIcon, {}) })) })));
711
794
  };
712
795
 
713
796
  const MRT_TableBodyRowGrabHandle = (_a) => {
@@ -734,7 +817,7 @@ const MRT_TableBodyRowGrabHandle = (_a) => {
734
817
  table.setDraggingRow(null);
735
818
  table.setHoveredRow(null);
736
819
  };
737
- return (jsx(MRT_GrabHandleButton, { iconButtonProps: iconButtonProps, location: "row", onDragEnd: handleDragEnd, onDragStart: handleDragStart, table: table }));
820
+ return (jsx(MRT_GrabHandleButton, Object.assign({}, iconButtonProps, { location: "row", onDragEnd: handleDragEnd, onDragStart: handleDragStart, table: table })));
738
821
  };
739
822
 
740
823
  const getMRT_RowDragColumnDef = (tableOptions) => {
@@ -898,36 +981,25 @@ const getMRT_RowPinningColumnDef = (tableOptions) => {
898
981
  const MRT_SelectCheckbox = (_a) => {
899
982
  var _b;
900
983
  var { row, staticRowIndex, table } = _a, rest = __rest(_a, ["row", "staticRowIndex", "table"]);
901
- const { getState, options: { enableMultiRowSelection, enableRowPinning, localization, muiSelectAllCheckboxProps, muiSelectCheckboxProps, rowPinningDisplayMode, selectAllMode, }, } = table;
984
+ const { getState, options: { enableMultiRowSelection, enableRowPinning, localization, muiSelectAllCheckboxProps, muiSelectCheckboxProps, rowPinningDisplayMode, selectAllMode, }, refs: { lastSelectedRowId }, } = table;
902
985
  const { density, isLoading } = getState();
903
986
  const selectAll = !row;
904
- const checkboxProps = Object.assign(Object.assign({}, (!row
905
- ? parseFromValuesOrFunc(muiSelectAllCheckboxProps, { table })
906
- : parseFromValuesOrFunc(muiSelectCheckboxProps, {
907
- row,
908
- staticRowIndex,
909
- table,
910
- }))), rest);
911
987
  const isStickySelection = enableRowPinning && (rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('select'));
912
988
  const allRowsSelected = selectAll
913
989
  ? selectAllMode === 'page'
914
990
  ? table.getIsAllPageRowsSelected()
915
991
  : table.getIsAllRowsSelected()
916
992
  : undefined;
917
- const onSelectionChange = (event, row) => {
918
- var _a;
919
- if (row.getIsAllSubRowsSelected() && row.getCanSelectSubRows()) {
920
- (_a = row.subRows) === null || _a === void 0 ? void 0 : _a.forEach((r) => r.toggleSelected(false));
921
- }
922
- row.getToggleSelectedHandler()(event);
923
- if (isStickySelection) {
924
- row.pin(!row.getIsPinned() && event.target.checked
925
- ? (rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('bottom'))
926
- ? 'bottom'
927
- : 'top'
928
- : false);
929
- }
930
- };
993
+ const isChecked = selectAll
994
+ ? allRowsSelected
995
+ : getIsRowSelected({ row, table });
996
+ const checkboxProps = Object.assign(Object.assign({}, (selectAll
997
+ ? parseFromValuesOrFunc(muiSelectAllCheckboxProps, { table })
998
+ : parseFromValuesOrFunc(muiSelectCheckboxProps, {
999
+ row,
1000
+ table,
1001
+ }))), rest);
1002
+ const onSelectionChange = getMRT_RowSelectionHandler();
931
1003
  const onSelectAllChange = (event) => {
932
1004
  selectAllMode === 'all'
933
1005
  ? table.getToggleAllRowsSelectedHandler()(event)
@@ -935,16 +1007,19 @@ const MRT_SelectCheckbox = (_a) => {
935
1007
  if (isStickySelection) {
936
1008
  table.setRowPinning({ bottom: [], top: [] });
937
1009
  }
1010
+ lastSelectedRowId.current = null;
938
1011
  };
939
1012
  const commonProps = Object.assign(Object.assign({ 'aria-label': selectAll
940
1013
  ? localization.toggleSelectAll
941
- : localization.toggleSelectRow, checked: selectAll ? allRowsSelected : getIsRowSelected({ row, table }), disabled: isLoading || (row && !row.getCanSelect()) || (row === null || row === void 0 ? void 0 : row.id) === 'mrt-row-create', inputProps: {
1014
+ : localization.toggleSelectRow, checked: isChecked, disabled: isLoading || (row && !row.getCanSelect()) || (row === null || row === void 0 ? void 0 : row.id) === 'mrt-row-create', inputProps: {
942
1015
  'aria-label': selectAll
943
1016
  ? localization.toggleSelectAll
944
1017
  : localization.toggleSelectRow,
945
1018
  }, onChange: (event) => {
946
1019
  event.stopPropagation();
947
- row ? onSelectionChange(event, row) : onSelectAllChange(event);
1020
+ row
1021
+ ? onSelectionChange({ event, row, staticRowIndex, table })
1022
+ : onSelectAllChange(event);
948
1023
  }, size: (density === 'compact' ? 'small' : 'medium') }, checkboxProps), { onClick: (e) => {
949
1024
  var _a;
950
1025
  e.stopPropagation();
@@ -1014,6 +1089,7 @@ const MRT_Localization_EN = {
1014
1089
  changeSearchMode: 'Change search mode',
1015
1090
  clearFilter: 'Clear filter',
1016
1091
  clearSearch: 'Clear search',
1092
+ clearSelection: 'Clear selection',
1017
1093
  clearSort: 'Clear sort',
1018
1094
  clickToCopy: 'Click to copy',
1019
1095
  copy: 'Copy',
@@ -1121,7 +1197,7 @@ const MRT_DefaultDisplayColumn = {
1121
1197
  };
1122
1198
  const useMRT_TableOptions = (_a) => {
1123
1199
  var _b;
1124
- 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, enableColumnVirtualization, enableDensityToggle = true, enableExpandAll = true, enableExpanding, enableFacetedValues = false, enableFilterMatchHighlighting = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enableRowPinning = false, enableRowSelection = false, enableRowVirtualization, 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', positionCreatingRow = 'top', 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", "enableColumnVirtualization", "enableDensityToggle", "enableExpandAll", "enableExpanding", "enableFacetedValues", "enableFilterMatchHighlighting", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enableRowPinning", "enableRowSelection", "enableRowVirtualization", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "layoutMode", "localization", "manualFiltering", "manualGrouping", "manualPagination", "manualSorting", "paginationDisplayMode", "positionActionsColumn", "positionCreatingRow", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberDisplayMode", "rowPinningDisplayMode", "selectAllMode", "sortingFns"]);
1200
+ var { aggregationFns, autoResetExpanded = false, columnFilterDisplayMode = 'subheader', columnResizeDirection, columnResizeMode = 'onChange', createDisplayMode = 'modal', defaultColumn, defaultDisplayColumn, editDisplayMode = 'modal', enableBatchRowSelection = true, enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnPinning = false, enableColumnResizing = false, enableColumnVirtualization, enableDensityToggle = true, enableExpandAll = true, enableExpanding, enableFacetedValues = false, enableFilterMatchHighlighting = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enableRowPinning = false, enableRowSelection = false, enableRowVirtualization, 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', positionCreatingRow = 'top', 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", "enableBatchRowSelection", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnPinning", "enableColumnResizing", "enableColumnVirtualization", "enableDensityToggle", "enableExpandAll", "enableExpanding", "enableFacetedValues", "enableFilterMatchHighlighting", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enableRowPinning", "enableRowSelection", "enableRowVirtualization", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "layoutMode", "localization", "manualFiltering", "manualGrouping", "manualPagination", "manualSorting", "paginationDisplayMode", "positionActionsColumn", "positionCreatingRow", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberDisplayMode", "rowPinningDisplayMode", "selectAllMode", "sortingFns"]);
1125
1201
  const theme = useTheme();
1126
1202
  icons = useMemo(() => (Object.assign(Object.assign({}, MRT_Default_Icons), icons)), [icons]);
1127
1203
  localization = useMemo(() => (Object.assign(Object.assign({}, MRT_Localization_EN), localization)), [localization]);
@@ -1162,6 +1238,7 @@ const useMRT_TableOptions = (_a) => {
1162
1238
  defaultColumn,
1163
1239
  defaultDisplayColumn,
1164
1240
  editDisplayMode,
1241
+ enableBatchRowSelection,
1165
1242
  enableBottomToolbar,
1166
1243
  enableColumnActions,
1167
1244
  enableColumnFilters,
@@ -1244,7 +1321,6 @@ const useMRT_Effects = (table) => {
1244
1321
  const totalColumnCount = table.options.columns.length;
1245
1322
  const totalRowCount = rowCount !== null && rowCount !== void 0 ? rowCount : getPrePaginationRowModel().rows.length;
1246
1323
  const rerender = useReducer(() => ({}), {})[1];
1247
- const isMounted = useRef(false);
1248
1324
  const initialBodyHeight = useRef();
1249
1325
  const previousTop = useRef();
1250
1326
  useEffect(() => {
@@ -1252,11 +1328,12 @@ const useMRT_Effects = (table) => {
1252
1328
  initialBodyHeight.current = document.body.style.height;
1253
1329
  }
1254
1330
  }, []);
1331
+ //hide scrollbars when table is in full screen mode, preserve body scroll position after full screen exit
1255
1332
  useEffect(() => {
1256
- if (isMounted && typeof window !== 'undefined') {
1333
+ if (typeof window !== 'undefined') {
1257
1334
  if (isFullScreen) {
1258
1335
  previousTop.current = document.body.getBoundingClientRect().top; //save scroll position
1259
- document.body.style.height = '100vh'; //hide page scrollbars when table is in full screen mode
1336
+ document.body.style.height = '100dvh'; //hide page scrollbars when table is in full screen mode
1260
1337
  }
1261
1338
  else {
1262
1339
  document.body.style.height = initialBodyHeight.current;
@@ -1269,8 +1346,13 @@ const useMRT_Effects = (table) => {
1269
1346
  });
1270
1347
  }
1271
1348
  }
1272
- isMounted.current = true;
1273
1349
  }, [isFullScreen]);
1350
+ //recalculate column order when columns change or features are toggled on/off
1351
+ useEffect(() => {
1352
+ if (totalColumnCount !== columnOrder.length) {
1353
+ table.setColumnOrder(getDefaultColumnOrderIds(table.options));
1354
+ }
1355
+ }, [totalColumnCount]);
1274
1356
  //if page index is out of bounds, set it to the last page
1275
1357
  useEffect(() => {
1276
1358
  if (!enablePagination || isLoading || showSkeletons)
@@ -1298,6 +1380,7 @@ const useMRT_Effects = (table) => {
1298
1380
  table.setSorting(() => appliedSort.current || []);
1299
1381
  }
1300
1382
  }, [globalFilter]);
1383
+ //fix pinned row top style when density changes
1301
1384
  useEffect(() => {
1302
1385
  if (enableRowPinning && getIsSomeRowsPinned()) {
1303
1386
  setTimeout(() => {
@@ -1305,12 +1388,6 @@ const useMRT_Effects = (table) => {
1305
1388
  }, 150);
1306
1389
  }
1307
1390
  }, [density]);
1308
- //recalculate column order when columns change or features are toggled on/off
1309
- useEffect(() => {
1310
- if (totalColumnCount !== columnOrder.length) {
1311
- table.setColumnOrder(getDefaultColumnOrderIds(table.options));
1312
- }
1313
- }, [totalColumnCount]);
1314
1391
  };
1315
1392
 
1316
1393
  /**
@@ -1320,6 +1397,7 @@ const useMRT_Effects = (table) => {
1320
1397
  */
1321
1398
  const useMRT_TableInstance = (definedTableOptions) => {
1322
1399
  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;
1400
+ const lastSelectedRowId = useRef(null);
1323
1401
  const actionCellRef = useRef(null);
1324
1402
  const bottomToolbarRef = useRef(null);
1325
1403
  const editInputRefs = useRef({});
@@ -1446,6 +1524,7 @@ const useMRT_TableInstance = (definedTableOptions) => {
1446
1524
  bottomToolbarRef,
1447
1525
  editInputRefs,
1448
1526
  filterInputRefs,
1527
+ lastSelectedRowId,
1449
1528
  searchInputRef,
1450
1529
  tableContainerRef,
1451
1530
  tableFooterRef,
@@ -1601,71 +1680,26 @@ const useMRT_RowVirtualizer = (table, rows) => {
1601
1680
  };
1602
1681
 
1603
1682
  const useMRT_Rows = (table, pinnedRowIds = []) => {
1604
- const { getBottomRows, getCenterRows, getPrePaginationRowModel, getRowModel, getState, getTopRows, options: { createDisplayMode, enableGlobalFilterRankedResults, enablePagination, enableRowPinning, manualExpanding, manualFiltering, manualGrouping, manualPagination, manualSorting, positionCreatingRow, rowPinningDisplayMode, }, } = table;
1683
+ const { getRowModel, getState, options: { data, enableGlobalFilterRankedResults, positionCreatingRow }, } = table;
1605
1684
  const { creatingRow, expanded, globalFilter, pagination, rowPinning, sorting, } = getState();
1606
- const shouldRankRows = useMemo(() => getCanRankRows(table) &&
1607
- !Object.values(sorting).some(Boolean) &&
1608
- globalFilter, [
1685
+ const rows = useMemo(() => getMRT_Rows(table, pinnedRowIds), [
1686
+ creatingRow,
1687
+ data,
1609
1688
  enableGlobalFilterRankedResults,
1610
1689
  expanded,
1690
+ getRowModel().rows,
1611
1691
  globalFilter,
1612
- manualExpanding,
1613
- manualFiltering,
1614
- manualGrouping,
1615
- manualSorting,
1616
- sorting,
1617
- ]);
1618
- const rows = useMemo(() => {
1619
- let rows = [];
1620
- if (!shouldRankRows) {
1621
- rows =
1622
- !enableRowPinning || (rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('sticky'))
1623
- ? getRowModel().rows
1624
- : getCenterRows();
1625
- }
1626
- else {
1627
- rows = getPrePaginationRowModel().rows.sort((a, b) => rankGlobalFuzzy(a, b));
1628
- if (enablePagination && !manualPagination) {
1629
- const start = pagination.pageIndex * pagination.pageSize;
1630
- rows = rows.slice(start, start + pagination.pageSize);
1631
- }
1632
- }
1633
- if (enableRowPinning && (rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('sticky'))) {
1634
- rows = [
1635
- ...getTopRows().filter((row) => !pinnedRowIds.includes(row.id)),
1636
- ...rows,
1637
- ...getBottomRows().filter((row) => !pinnedRowIds.includes(row.id)),
1638
- ];
1639
- }
1640
- if (positionCreatingRow !== undefined &&
1641
- creatingRow &&
1642
- createDisplayMode === 'row') {
1643
- const creatingRowIndex = !isNaN(+positionCreatingRow)
1644
- ? +positionCreatingRow
1645
- : positionCreatingRow === 'top'
1646
- ? 0
1647
- : rows.length;
1648
- rows = [
1649
- ...rows.slice(0, creatingRowIndex),
1650
- creatingRow,
1651
- ...rows.slice(creatingRowIndex),
1652
- ];
1653
- }
1654
- return rows;
1655
- }, [
1656
- creatingRow,
1657
1692
  pagination.pageIndex,
1658
1693
  pagination.pageSize,
1659
1694
  positionCreatingRow,
1660
1695
  rowPinning,
1661
- shouldRankRows ? getPrePaginationRowModel().rows : getRowModel().rows,
1662
- shouldRankRows,
1696
+ sorting,
1663
1697
  ]);
1664
1698
  return rows;
1665
1699
  };
1666
1700
 
1667
1701
  const allowedTypes = ['string', 'number'];
1668
- const MRT_TableBodyCellValue = ({ cell, rowRef, staticRowIndex, table, }) => {
1702
+ const MRT_TableBodyCellValue = ({ cell, rowRef, staticColumnIndex, staticRowIndex, table, }) => {
1669
1703
  var _a, _b, _c;
1670
1704
  const { getState, options: { enableFilterMatchHighlighting }, } = table;
1671
1705
  const { column, row } = cell;
@@ -1728,6 +1762,7 @@ const MRT_TableBodyCellValue = ({ cell, rowRef, staticRowIndex, table, }) => {
1728
1762
  renderedCellValue,
1729
1763
  row,
1730
1764
  rowRef,
1765
+ staticColumnIndex,
1731
1766
  staticRowIndex,
1732
1767
  table,
1733
1768
  });
@@ -2014,6 +2049,7 @@ const MRT_TableBodyCell = (_a) => {
2014
2049
  renderedCellValue: cell.renderValue(),
2015
2050
  row,
2016
2051
  rowRef,
2052
+ staticColumnIndex,
2017
2053
  staticRowIndex,
2018
2054
  table,
2019
2055
  })) : isCreating || isEditing ? (jsx(MRT_EditCellTextField, { cell: cell, table: table })) : showClickToCopyButton && columnDef.enableClickToCopy !== false ? (jsx(MRT_CopyButton, { cell: cell, table: table, children: jsx(MRT_TableBodyCellValue, Object.assign({}, cellValueProps)) })) : (jsx(MRT_TableBodyCellValue, Object.assign({}, cellValueProps))), cell.getIsGrouped() && !columnDef.GroupedCell && (jsxs(Fragment, { children: [" (", (_f = row.subRows) === null || _f === void 0 ? void 0 : _f.length, ")"] }))] })) })));
@@ -2054,8 +2090,9 @@ const MRT_TableDetailPanel = (_a) => {
2054
2090
  : undefined, width: `100%` }, parseFromValuesOrFunc(tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx, theme))), children: enableRowVirtualization ? (row.getIsExpanded() && DetailPanel) : (jsx(Collapse, { in: row.getIsExpanded(), mountOnEnter: true, unmountOnExit: true, children: DetailPanel })) })) })));
2055
2091
  };
2056
2092
 
2057
- const MRT_TableBodyRow = ({ columnVirtualizer, numRows, pinnedRowIds, row, rowVirtualizer, staticRowIndex, table, virtualRow, }) => {
2058
- var _a, _b, _c, _d;
2093
+ const MRT_TableBodyRow = (_a) => {
2094
+ var _b, _c, _d, _f;
2095
+ var { columnVirtualizer, numRows, pinnedRowIds, row, rowVirtualizer, staticRowIndex, table, virtualRow } = _a, rest = __rest(_a, ["columnVirtualizer", "numRows", "pinnedRowIds", "row", "rowVirtualizer", "staticRowIndex", "table", "virtualRow"]);
2059
2096
  const theme = useTheme();
2060
2097
  const { getState, options: { enableRowOrdering, enableRowPinning, enableStickyFooter, enableStickyHeader, layoutMode, memoMode, muiTableBodyRowProps, renderDetailPanel, rowPinningDisplayMode, }, refs: { tableFooterRef, tableHeadRef }, setHoveredRow, } = table;
2061
2098
  const { density, draggingColumn, draggingRow, editingCell, editingRow, hoveredRow, isFullScreen, rowPinning, } = getState();
@@ -2065,11 +2102,11 @@ const MRT_TableBodyRow = ({ columnVirtualizer, numRows, pinnedRowIds, row, rowVi
2065
2102
  const isRowPinned = enableRowPinning && row.getIsPinned();
2066
2103
  const isDraggingRow = (draggingRow === null || draggingRow === void 0 ? void 0 : draggingRow.id) === row.id;
2067
2104
  const isHoveredRow = (hoveredRow === null || hoveredRow === void 0 ? void 0 : hoveredRow.id) === row.id;
2068
- const tableRowProps = parseFromValuesOrFunc(muiTableBodyRowProps, {
2105
+ const tableRowProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiTableBodyRowProps, {
2069
2106
  row,
2070
2107
  staticRowIndex,
2071
2108
  table,
2072
- });
2109
+ })), rest);
2073
2110
  const [bottomPinnedIndex, topPinnedIndex] = useMemo(() => {
2074
2111
  if (!enableRowPinning ||
2075
2112
  !(rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('sticky')) ||
@@ -2082,14 +2119,14 @@ const MRT_TableBodyRow = ({ columnVirtualizer, numRows, pinnedRowIds, row, rowVi
2082
2119
  ];
2083
2120
  }, [pinnedRowIds, rowPinning]);
2084
2121
  const tableHeadHeight = ((enableStickyHeader || isFullScreen) &&
2085
- ((_a = tableHeadRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight)) ||
2122
+ ((_b = tableHeadRef.current) === null || _b === void 0 ? void 0 : _b.clientHeight)) ||
2086
2123
  0;
2087
- const tableFooterHeight = (enableStickyFooter && ((_b = tableFooterRef.current) === null || _b === void 0 ? void 0 : _b.clientHeight)) || 0;
2124
+ const tableFooterHeight = (enableStickyFooter && ((_c = tableFooterRef.current) === null || _c === void 0 ? void 0 : _c.clientHeight)) || 0;
2088
2125
  const sx = parseFromValuesOrFunc(tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.sx, theme);
2089
2126
  const defaultRowHeight = density === 'compact' ? 37 : density === 'comfortable' ? 53 : 69;
2090
2127
  const customRowHeight =
2091
2128
  // @ts-ignore
2092
- parseInt((_d = (_c = tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.style) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : sx === null || sx === void 0 ? void 0 : sx.height, 10) || undefined;
2129
+ parseInt((_f = (_d = tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.style) === null || _d === void 0 ? void 0 : _d.height) !== null && _f !== void 0 ? _f : sx === null || sx === void 0 ? void 0 : sx.height, 10) || undefined;
2093
2130
  const rowHeight = customRowHeight || defaultRowHeight;
2094
2131
  const handleDragEnter = (_e) => {
2095
2132
  if (enableRowOrdering && draggingRow) {
@@ -2279,8 +2316,9 @@ const MRT_TableFooterRow = (_a) => {
2279
2316
  // if no content in row, skip row
2280
2317
  if (!((_b = footerGroup.headers) === null || _b === void 0 ? void 0 : _b.some((header) => (typeof header.column.columnDef.footer === 'string' &&
2281
2318
  !!header.column.columnDef.footer) ||
2282
- header.column.columnDef.Footer)))
2319
+ header.column.columnDef.Footer))) {
2283
2320
  return null;
2321
+ }
2284
2322
  const tableRowProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiTableFooterRowProps, {
2285
2323
  footerGroup,
2286
2324
  table,
@@ -2522,7 +2560,7 @@ const MRT_FilterOptionMenu = (_a) => {
2522
2560
  const MRT_ColumnActionMenu = (_a) => {
2523
2561
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
2524
2562
  var { anchorEl, header, setAnchorEl, table } = _a, rest = __rest(_a, ["anchorEl", "header", "setAnchorEl", "table"]);
2525
- const { getState, getAllLeafColumns, options: { columnFilterDisplayMode, columnFilterModeOptions, enableColumnFilterModes, enableColumnFilters, enableColumnPinning, enableColumnResizing, enableGrouping, enableHiding, enableSorting, enableSortingRemoval, icons: { ClearAllIcon, DynamicFeedIcon, FilterListIcon, FilterListOffIcon, PushPinIcon, RestartAltIcon, SortIcon, ViewColumnIcon, VisibilityOffIcon, }, localization, renderColumnActionsMenuItems, }, refs: { filterInputRefs }, setColumnFilterFns, setColumnOrder, setColumnSizingInfo, setShowColumnFilters, } = table;
2563
+ const { getAllLeafColumns, getState, options: { columnFilterDisplayMode, columnFilterModeOptions, enableColumnFilterModes, enableColumnFilters, enableColumnPinning, enableColumnResizing, enableGrouping, enableHiding, enableSorting, enableSortingRemoval, icons: { ClearAllIcon, DynamicFeedIcon, FilterListIcon, FilterListOffIcon, PushPinIcon, RestartAltIcon, SortIcon, ViewColumnIcon, VisibilityOffIcon, }, localization, renderColumnActionsMenuItems, }, refs: { filterInputRefs }, setColumnFilterFns, setColumnOrder, setColumnSizingInfo, setShowColumnFilters, } = table;
2526
2564
  const { column } = header;
2527
2565
  const { columnDef } = column;
2528
2566
  const { columnSizing, columnVisibility, density, showColumnFilters } = getState();
@@ -2770,6 +2808,7 @@ const MRT_FilterTextField = (_a) => {
2770
2808
  ? ((_a = column.getFilterValue()) === null || _a === void 0 ? void 0 : _a[rangeFilterIndex]) || ''
2771
2809
  : (_b = column.getFilterValue()) !== null && _b !== void 0 ? _b : '';
2772
2810
  });
2811
+ const [autocompleteValue, setAutocompleteValue] = useState(isAutocompleteFilter ? filterValue : null);
2773
2812
  const handleChangeDebounced = useCallback(debounce((newValue) => {
2774
2813
  if (isRangeFilter) {
2775
2814
  column.setFilterValue((old) => {
@@ -2796,6 +2835,10 @@ const MRT_FilterTextField = (_a) => {
2796
2835
  handleChange(newValue);
2797
2836
  (_a = textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.onChange) === null || _a === void 0 ? void 0 : _a.call(textFieldProps, event);
2798
2837
  };
2838
+ const handleAutocompleteChange = (newValue) => {
2839
+ setAutocompleteValue(newValue);
2840
+ handleChange(getValueAndLabel(newValue).value);
2841
+ };
2799
2842
  const handleClear = () => {
2800
2843
  if (isMultiSelectFilter) {
2801
2844
  setFilterValue([]);
@@ -2916,10 +2959,10 @@ const MRT_FilterTextField = (_a) => {
2916
2959
  } }))) : (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('date')) ? (jsx(DatePicker, Object.assign({}, commonDatePickerProps, datePickerProps, { slotProps: {
2917
2960
  field: Object.assign({ clearable: true, onClear: () => handleClear() }, (_r = datePickerProps === null || datePickerProps === void 0 ? void 0 : datePickerProps.slotProps) === null || _r === void 0 ? void 0 : _r.field),
2918
2961
  textField: Object.assign(Object.assign({}, commonTextFieldProps), (_s = datePickerProps === null || datePickerProps === void 0 ? void 0 : datePickerProps.slotProps) === null || _s === void 0 ? void 0 : _s.textField),
2919
- } }))) : isAutocompleteFilter ? (jsx(Autocomplete, Object.assign({ freeSolo: true, getOptionLabel: (option) => getValueAndLabel(option).label, onChange: (_e, newValue) => handleChange(getValueAndLabel(newValue).value), options: (_t = dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.map((option) => getValueAndLabel(option))) !== null && _t !== void 0 ? _t : [] }, autocompleteProps, { renderInput: (builtinTextFieldProps) => {
2962
+ } }))) : isAutocompleteFilter ? (jsx(Autocomplete, Object.assign({ freeSolo: true, getOptionLabel: (option) => getValueAndLabel(option).label, onChange: (_e, newValue) => handleAutocompleteChange(newValue), options: (_t = dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.map((option) => getValueAndLabel(option))) !== null && _t !== void 0 ? _t : [] }, autocompleteProps, { renderInput: (builtinTextFieldProps) => {
2920
2963
  var _a;
2921
2964
  return (jsx(TextField, 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, onClick: (e) => e.stopPropagation() })));
2922
- }, value: filterValue }))) : (jsx(TextField, Object.assign({ select: isSelectFilter || isMultiSelectFilter }, commonTextFieldProps, { SelectProps: Object.assign({ MenuProps: { disableScrollLock: true }, displayEmpty: true, multiple: isMultiSelectFilter, renderValue: isMultiSelectFilter
2965
+ }, value: autocompleteValue }))) : (jsx(TextField, Object.assign({ select: isSelectFilter || isMultiSelectFilter }, commonTextFieldProps, { SelectProps: Object.assign({ MenuProps: { disableScrollLock: true }, displayEmpty: true, multiple: isMultiSelectFilter, renderValue: isMultiSelectFilter
2923
2966
  ? (selected) => !(selected === null || selected === void 0 ? void 0 : selected.length) ? (jsx(Box, { sx: { opacity: 0.5 }, children: filterPlaceholder })) : (jsx(Box, { sx: { display: 'flex', flexWrap: 'wrap', gap: '2px' }, children: selected === null || selected === void 0 ? void 0 : selected.map((value) => {
2924
2967
  const selectedValue = dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.find((option) => getValueAndLabel(option).value === value);
2925
2968
  return (jsx(Chip, { label: getValueAndLabel(selectedValue).label }, value));
@@ -3119,7 +3162,7 @@ const MRT_TableHeadCellGrabHandle = (_a) => {
3119
3162
  setDraggingColumn(null);
3120
3163
  setHoveredColumn(null);
3121
3164
  };
3122
- return (jsx(MRT_GrabHandleButton, { iconButtonProps: iconButtonProps, onDragEnd: handleDragEnd, onDragStart: handleDragStart, table: table }));
3165
+ return (jsx(MRT_GrabHandleButton, Object.assign({}, iconButtonProps, { onDragEnd: handleDragEnd, onDragStart: handleDragStart, table: table })));
3123
3166
  };
3124
3167
 
3125
3168
  const MRT_TableHeadCellResizeHandle = (_a) => {
@@ -3341,7 +3384,7 @@ const MRT_TableHeadCell = (_a) => {
3341
3384
  whiteSpace: ((_h = (_g = columnDef.header) === null || _g === void 0 ? void 0 : _g.length) !== null && _h !== void 0 ? _h : 0) < 20
3342
3385
  ? 'nowrap'
3343
3386
  : 'normal',
3344
- }, 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: {
3387
+ }, 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: {
3345
3388
  whiteSpace: 'nowrap',
3346
3389
  }, children: [showDragHandle && (jsx(MRT_TableHeadCellGrabHandle, { column: column, table: table, tableHeadCellRef: {
3347
3390
  current: tableHeadCellRefs.current[column.id],
@@ -3372,7 +3415,7 @@ const MRT_TableHeadRow = (_a) => {
3372
3415
  const MRT_ToolbarAlertBanner = (_a) => {
3373
3416
  var _b, _c, _d;
3374
3417
  var { stackAlertBanner, table } = _a, rest = __rest(_a, ["stackAlertBanner", "table"]);
3375
- const { getPrePaginationRowModel, getState, options: { enableRowSelection, enableSelectAll, localization, muiToolbarAlertBannerChipProps, muiToolbarAlertBannerProps, positionToolbarAlertBanner, renderToolbarAlertBannerContent, rowCount, }, refs: { tablePaperRef }, } = table;
3418
+ const { getFilteredSelectedRowModel, getPrePaginationRowModel, getState, options: { enableRowSelection, enableSelectAll, localization, manualPagination, muiToolbarAlertBannerChipProps, muiToolbarAlertBannerProps, positionToolbarAlertBanner, renderToolbarAlertBannerContent, rowCount, }, refs: { lastSelectedRowId, tablePaperRef }, } = table;
3376
3419
  const { density, grouping, rowSelection, showAlertBanner } = getState();
3377
3420
  const alertProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiToolbarAlertBannerProps, {
3378
3421
  table,
@@ -3380,10 +3423,14 @@ const MRT_ToolbarAlertBanner = (_a) => {
3380
3423
  const chipProps = parseFromValuesOrFunc(muiToolbarAlertBannerChipProps, {
3381
3424
  table,
3382
3425
  });
3383
- const selectedRowCount = useMemo(() => Object.values(rowSelection).filter(Boolean).length, [rowSelection]);
3384
- const selectedAlert = selectedRowCount > 0
3385
- ? (_c = (_b = localization.selectedCountOfRowCountRowsSelected) === null || _b === void 0 ? void 0 : _b.replace('{selectedCount}', selectedRowCount.toLocaleString())) === null || _c === void 0 ? void 0 : _c.replace('{rowCount}', (rowCount !== null && rowCount !== void 0 ? rowCount : getPrePaginationRowModel().rows.length).toString())
3386
- : null;
3426
+ const totalRowCount = rowCount !== null && rowCount !== void 0 ? rowCount : getPrePaginationRowModel().rows.length;
3427
+ const selectedRowCount = useMemo(() => manualPagination
3428
+ ? Object.values(rowSelection).filter(Boolean).length
3429
+ : getFilteredSelectedRowModel().rows.length, [rowSelection, totalRowCount, manualPagination]);
3430
+ const selectedAlert = selectedRowCount > 0 ? (jsxs(Stack, { alignItems: "center", direction: "row", gap: "16px", children: [(_c = (_b = localization.selectedCountOfRowCountRowsSelected) === null || _b === void 0 ? void 0 : _b.replace('{selectedCount}', selectedRowCount.toLocaleString())) === null || _c === void 0 ? void 0 : _c.replace('{rowCount}', totalRowCount.toString()), jsx(Button, { onClick: () => {
3431
+ table.toggleAllRowsSelected(false);
3432
+ lastSelectedRowId.current = null;
3433
+ }, size: "small", sx: { p: '2px' }, children: localization.clearSelection })] })) : null;
3387
3434
  const groupedAlert = grouping.length > 0 ? (jsxs("span", { children: [localization.groupedBy, ' ', grouping.map((columnId, index) => (jsxs(Fragment$1, { children: [index > 0 ? localization.thenBy : '', jsx(Chip, Object.assign({ label: table.getColumn(columnId).columnDef.header, onDelete: () => table.getColumn(columnId).toggleGrouping() }, chipProps))] }, `${index}-${columnId}`)))] })) : null;
3388
3435
  return (jsx(Collapse, { in: showAlertBanner || !!selectedAlert || !!groupedAlert, timeout: stackAlertBanner ? 200 : 0, children: jsx(Alert, Object.assign({ color: "info", icon: false }, alertProps, { sx: (theme) => {
3389
3436
  var _a, _b;
@@ -3459,6 +3506,7 @@ const MRT_Table = (_a) => {
3459
3506
  };
3460
3507
 
3461
3508
  const MRT_TableLoadingOverlay = (_a) => {
3509
+ var _b;
3462
3510
  var { table } = _a, rest = __rest(_a, ["table"]);
3463
3511
  const { options: { localization, muiCircularProgressProps }, } = table;
3464
3512
  const circularProgressProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiCircularProgressProps, { table })), rest);
@@ -3474,8 +3522,8 @@ const MRT_TableLoadingOverlay = (_a) => {
3474
3522
  right: 0,
3475
3523
  top: 0,
3476
3524
  width: '100%',
3477
- zIndex: 2,
3478
- }), children: jsx(CircularProgress, Object.assign({ "aria-label": localization.noRecordsToDisplay, id: "mrt-progress" }, circularProgressProps)) }));
3525
+ zIndex: 3,
3526
+ }), children: (_b = circularProgressProps === null || circularProgressProps === void 0 ? void 0 : circularProgressProps.Component) !== null && _b !== void 0 ? _b : (jsx(CircularProgress, Object.assign({ "aria-label": localization.noRecordsToDisplay, id: "mrt-progress" }, circularProgressProps))) }));
3479
3527
  };
3480
3528
 
3481
3529
  const MRT_CellActionMenu = (_a) => {
@@ -3739,7 +3787,7 @@ const MRT_ColumnPinningButtons = (_a) => {
3739
3787
 
3740
3788
  const MRT_ShowHideColumnsMenuItems = (_a) => {
3741
3789
  var _b;
3742
- var { allColumns, column, hoveredColumn, setHoveredColumn, table } = _a, rest = __rest(_a, ["allColumns", "column", "hoveredColumn", "setHoveredColumn", "table"]);
3790
+ var { allColumns, column, hoveredColumn, isNestedColumns, setHoveredColumn, table } = _a, rest = __rest(_a, ["allColumns", "column", "hoveredColumn", "isNestedColumns", "setHoveredColumn", "table"]);
3743
3791
  const { getState, options: { enableColumnOrdering, enableColumnPinning, enableHiding, localization, }, setColumnOrder, } = table;
3744
3792
  const { columnOrder } = getState();
3745
3793
  const { columnDef } = column;
@@ -3794,7 +3842,7 @@ const MRT_ShowHideColumnsMenuItems = (_a) => {
3794
3842
  gap: '8px',
3795
3843
  }, children: [columnDefType !== 'group' &&
3796
3844
  enableColumnOrdering &&
3797
- !allColumns.some((col) => col.columnDef.columnDefType === 'group') &&
3845
+ !isNestedColumns &&
3798
3846
  (columnDef.enableColumnOrdering !== false ? (jsx(MRT_GrabHandleButton, { onDragEnd: handleDragEnd, onDragStart: handleDragStart, table: table })) : (jsx(Box, { sx: { width: '28px' } }))), enableColumnPinning &&
3799
3847
  (column.getCanPin() ? (jsx(MRT_ColumnPinningButtons, { column: column, table: table })) : (jsx(Box, { sx: { width: '70px' } }))), enableHiding ? (jsx(FormControlLabel, { checked: switchChecked, componentsProps: {
3800
3848
  typography: {
@@ -3803,7 +3851,7 @@ const MRT_ShowHideColumnsMenuItems = (_a) => {
3803
3851
  opacity: columnDefType !== 'display' ? 1 : 0.5,
3804
3852
  },
3805
3853
  },
3806
- }, control: jsx(Tooltip, Object.assign({}, getCommonTooltipProps(), { title: localization.toggleVisibility, children: jsx(Switch, {}) })), disabled: !column.getCanHide(), label: columnDef.header, onChange: () => handleToggleColumnHidden(column) })) : (jsx(Typography, { sx: { alignSelf: 'center' }, children: columnDef.header }))] }) })), (_b = column.columns) === null || _b === void 0 ? void 0 : _b.map((c, i) => (jsx(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: c, hoveredColumn: hoveredColumn, setHoveredColumn: setHoveredColumn, table: table }, `${i}-${c.id}`)))] }));
3854
+ }, control: jsx(Tooltip, Object.assign({}, getCommonTooltipProps(), { title: localization.toggleVisibility, children: jsx(Switch, {}) })), disabled: !column.getCanHide(), label: columnDef.header, onChange: () => handleToggleColumnHidden(column) })) : (jsx(Typography, { sx: { alignSelf: 'center' }, children: columnDef.header }))] }) })), (_b = column.columns) === null || _b === void 0 ? void 0 : _b.map((c, i) => (jsx(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: c, hoveredColumn: hoveredColumn, isNestedColumns: isNestedColumns, setHoveredColumn: setHoveredColumn, table: table }, `${i}-${c.id}`)))] }));
3807
3855
  };
3808
3856
 
3809
3857
  const MRT_ShowHideColumnsMenu = (_a) => {
@@ -3834,6 +3882,7 @@ const MRT_ShowHideColumnsMenu = (_a) => {
3834
3882
  getLeftLeafColumns(),
3835
3883
  getRightLeafColumns(),
3836
3884
  ]);
3885
+ const isNestedColumns = allColumns.some((col) => col.columnDef.columnDefType === 'group');
3837
3886
  const [hoveredColumn, setHoveredColumn] = useState(null);
3838
3887
  const theme = useTheme();
3839
3888
  const { menuBackgroundColor } = getMRTTheme(table, theme);
@@ -3847,7 +3896,7 @@ const MRT_ShowHideColumnsMenu = (_a) => {
3847
3896
  justifyContent: 'space-between',
3848
3897
  p: '0.5rem',
3849
3898
  pt: 0,
3850
- }, children: [enableHiding && (jsx(Button, { disabled: !getIsSomeColumnsVisible(), onClick: () => handleToggleAllColumns(false), children: localization.hideAll })), enableColumnOrdering && (jsx(Button, { onClick: () => table.setColumnOrder(getDefaultColumnOrderIds(table.options, true)), children: localization.resetOrder })), enableColumnPinning && (jsx(Button, { disabled: !getIsSomeColumnsPinned(), onClick: () => table.resetColumnPinning(true), children: localization.unpinAll })), enableHiding && (jsx(Button, { disabled: getIsAllColumnsVisible(), onClick: () => handleToggleAllColumns(true), children: localization.showAll }))] }), jsx(Divider, {}), allColumns.map((column, index) => (jsx(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: column, hoveredColumn: hoveredColumn, setHoveredColumn: setHoveredColumn, table: table }, `${index}-${column.id}`)))] })));
3899
+ }, children: [enableHiding && (jsx(Button, { disabled: !getIsSomeColumnsVisible(), onClick: () => handleToggleAllColumns(false), children: localization.hideAll })), enableColumnOrdering && (jsx(Button, { onClick: () => table.setColumnOrder(getDefaultColumnOrderIds(table.options, true)), children: localization.resetOrder })), enableColumnPinning && (jsx(Button, { disabled: !getIsSomeColumnsPinned(), onClick: () => table.resetColumnPinning(true), children: localization.unpinAll })), enableHiding && (jsx(Button, { disabled: getIsAllColumnsVisible(), onClick: () => handleToggleAllColumns(true), children: localization.showAll }))] }), jsx(Divider, {}), allColumns.map((column, index) => (jsx(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: column, hoveredColumn: hoveredColumn, isNestedColumns: isNestedColumns, setHoveredColumn: setHoveredColumn, table: table }, `${index}-${column.id}`)))] })));
3851
3900
  };
3852
3901
 
3853
3902
  const MRT_ShowHideColumnsButton = (_a) => {
@@ -4064,5 +4113,5 @@ const MaterialReactTable = (props) => {
4064
4113
  return jsx(MRT_TablePaper, { table: table });
4065
4114
  };
4066
4115
 
4067
- export { MRT_ActionMenuItem, MRT_AggregationFns, MRT_BottomToolbar, MRT_ColumnActionMenu, MRT_ColumnPinningButtons, MRT_CopyButton, MRT_DefaultColumn, MRT_DefaultDisplayColumn, MRT_EditActionButtons, MRT_EditCellTextField, MRT_EditRowModal, MRT_ExpandAllButton, MRT_ExpandButton, MRT_FilterCheckbox, MRT_FilterFns, MRT_FilterOptionMenu, MRT_FilterRangeFields, MRT_FilterRangeSlider, MRT_FilterTextField, MRT_GlobalFilterTextField, MRT_GrabHandleButton, MRT_LinearProgressBar, MRT_RowActionMenu, MRT_RowPinButton, MRT_SelectCheckbox, MRT_ShowHideColumnsButton, MRT_ShowHideColumnsMenu, MRT_ShowHideColumnsMenuItems, MRT_SortingFns, MRT_Table, MRT_TableBody, MRT_TableBodyCell, MRT_TableBodyCellValue, MRT_TableBodyRow, MRT_TableBodyRowGrabHandle, MRT_TableBodyRowPinButton, MRT_TableContainer, MRT_TableDetailPanel, MRT_TableFooter, MRT_TableFooterCell, MRT_TableFooterRow, MRT_TableHead, MRT_TableHeadCell, MRT_TableHeadCellColumnActionsButton, MRT_TableHeadCellFilterContainer, MRT_TableHeadCellFilterLabel, MRT_TableHeadCellGrabHandle, MRT_TableHeadCellResizeHandle, MRT_TableHeadCellSortLabel, MRT_TableHeadRow, MRT_TableLoadingOverlay, MRT_TablePagination, MRT_TablePaper, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleFullScreenButton, MRT_ToggleGlobalFilterButton, MRT_ToggleRowActionMenuButton, MRT_ToolbarAlertBanner, MRT_ToolbarDropZone, MRT_ToolbarInternalButtons, MRT_TopToolbar, MaterialReactTable, Memo_MRT_TableBody, Memo_MRT_TableBodyCell, Memo_MRT_TableBodyRow, createMRTColumnHelper, createRow, defaultDisplayColumnProps, flexRender, getAllLeafColumnDefs, getCanRankRows, getColumnId, getDefaultColumnFilterFn, getDefaultColumnOrderIds, getIsFirstColumn, getIsFirstRightPinnedColumn, getIsLastColumn, getIsLastLeftPinnedColumn, getIsRowSelected, getLeadingDisplayColumnIds, getTotalRight, getTrailingDisplayColumnIds, isCellEditable, mrtFilterOptions, openEditingCell, prepareColumns, rankGlobalFuzzy, reorderColumn, showRowActionsColumn, showRowDragColumn, showRowExpandColumn, showRowNumbersColumn, showRowPinningColumn, showRowSelectionColumn, showRowSpacerColumn, useMRT_ColumnVirtualizer, useMRT_Effects, useMRT_RowVirtualizer, useMRT_Rows, useMRT_TableInstance, useMRT_TableOptions, useMaterialReactTable };
4116
+ export { MRT_ActionMenuItem, MRT_AggregationFns, MRT_BottomToolbar, MRT_ColumnActionMenu, MRT_ColumnPinningButtons, MRT_CopyButton, MRT_DefaultColumn, MRT_DefaultDisplayColumn, MRT_EditActionButtons, MRT_EditCellTextField, MRT_EditRowModal, MRT_ExpandAllButton, MRT_ExpandButton, MRT_FilterCheckbox, MRT_FilterFns, MRT_FilterOptionMenu, MRT_FilterRangeFields, MRT_FilterRangeSlider, MRT_FilterTextField, MRT_GlobalFilterTextField, MRT_GrabHandleButton, MRT_LinearProgressBar, MRT_RowActionMenu, MRT_RowPinButton, MRT_SelectCheckbox, MRT_ShowHideColumnsButton, MRT_ShowHideColumnsMenu, MRT_ShowHideColumnsMenuItems, MRT_SortingFns, MRT_Table, MRT_TableBody, MRT_TableBodyCell, MRT_TableBodyCellValue, MRT_TableBodyRow, MRT_TableBodyRowGrabHandle, MRT_TableBodyRowPinButton, MRT_TableContainer, MRT_TableDetailPanel, MRT_TableFooter, MRT_TableFooterCell, MRT_TableFooterRow, MRT_TableHead, MRT_TableHeadCell, MRT_TableHeadCellColumnActionsButton, MRT_TableHeadCellFilterContainer, MRT_TableHeadCellFilterLabel, MRT_TableHeadCellGrabHandle, MRT_TableHeadCellResizeHandle, MRT_TableHeadCellSortLabel, MRT_TableHeadRow, MRT_TableLoadingOverlay, MRT_TablePagination, MRT_TablePaper, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleFullScreenButton, MRT_ToggleGlobalFilterButton, MRT_ToggleRowActionMenuButton, MRT_ToolbarAlertBanner, MRT_ToolbarDropZone, MRT_ToolbarInternalButtons, MRT_TopToolbar, MaterialReactTable, Memo_MRT_TableBody, Memo_MRT_TableBodyCell, Memo_MRT_TableBodyRow, createMRTColumnHelper, createRow, defaultDisplayColumnProps, flexRender, getAllLeafColumnDefs, getCanRankRows, getColumnId, getDefaultColumnFilterFn, getDefaultColumnOrderIds, getIsFirstColumn, getIsFirstRightPinnedColumn, getIsLastColumn, getIsLastLeftPinnedColumn, getIsRankingRows, getIsRowSelected, getLeadingDisplayColumnIds, getMRT_RowSelectionHandler, getMRT_Rows, getTotalRight, getTrailingDisplayColumnIds, isCellEditable, mrtFilterOptions, openEditingCell, prepareColumns, rankGlobalFuzzy, reorderColumn, showRowActionsColumn, showRowDragColumn, showRowExpandColumn, showRowNumbersColumn, showRowPinningColumn, showRowSelectionColumn, showRowSpacerColumn, useMRT_ColumnVirtualizer, useMRT_Effects, useMRT_RowVirtualizer, useMRT_Rows, useMRT_TableInstance, useMRT_TableOptions, useMaterialReactTable };
4068
4117
  //# sourceMappingURL=index.esm.js.map