material-react-table 0.33.6 → 0.35.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 (61) hide show
  1. package/dist/cjs/MaterialReactTable.d.ts +45 -53
  2. package/dist/cjs/buttons/MRT_ColumnPinningButtons.d.ts +4 -5
  3. package/dist/cjs/buttons/MRT_FullScreenToggleButton.d.ts +3 -4
  4. package/dist/cjs/buttons/MRT_GrabHandleButton.d.ts +4 -4
  5. package/dist/cjs/buttons/MRT_ShowHideColumnsButton.d.ts +3 -4
  6. package/dist/cjs/buttons/MRT_ToggleDensePaddingButton.d.ts +3 -4
  7. package/dist/cjs/buttons/MRT_ToggleFiltersButton.d.ts +3 -4
  8. package/dist/cjs/buttons/MRT_ToggleGlobalFilterButton.d.ts +3 -4
  9. package/dist/cjs/index.d.ts +8 -2
  10. package/dist/cjs/index.js +651 -140
  11. package/dist/cjs/index.js.map +1 -1
  12. package/dist/cjs/inputs/MRT_GlobalFilterTextField.d.ts +3 -4
  13. package/dist/cjs/menus/MRT_FilterOptionMenu.d.ts +3 -4
  14. package/dist/cjs/menus/MRT_ShowHideColumnsMenu.d.ts +3 -4
  15. package/dist/cjs/menus/MRT_ShowHideColumnsMenuItems.d.ts +8 -8
  16. package/dist/cjs/table/MRT_TableRoot.d.ts +0 -1
  17. package/dist/cjs/toolbar/MRT_ToolbarInternalButtons.d.ts +1 -1
  18. package/dist/esm/MaterialReactTable.d.ts +45 -53
  19. package/dist/esm/buttons/MRT_ColumnPinningButtons.d.ts +4 -5
  20. package/dist/esm/buttons/MRT_FullScreenToggleButton.d.ts +3 -4
  21. package/dist/esm/buttons/MRT_GrabHandleButton.d.ts +4 -4
  22. package/dist/esm/buttons/MRT_ShowHideColumnsButton.d.ts +3 -4
  23. package/dist/esm/buttons/MRT_ToggleDensePaddingButton.d.ts +3 -4
  24. package/dist/esm/buttons/MRT_ToggleFiltersButton.d.ts +3 -4
  25. package/dist/esm/buttons/MRT_ToggleGlobalFilterButton.d.ts +3 -4
  26. package/dist/esm/index.d.ts +8 -2
  27. package/dist/esm/inputs/MRT_GlobalFilterTextField.d.ts +3 -4
  28. package/dist/esm/material-react-table.esm.js +644 -141
  29. package/dist/esm/material-react-table.esm.js.map +1 -1
  30. package/dist/esm/menus/MRT_FilterOptionMenu.d.ts +3 -4
  31. package/dist/esm/menus/MRT_ShowHideColumnsMenu.d.ts +3 -4
  32. package/dist/esm/menus/MRT_ShowHideColumnsMenuItems.d.ts +8 -8
  33. package/dist/esm/table/MRT_TableRoot.d.ts +0 -1
  34. package/dist/esm/toolbar/MRT_ToolbarInternalButtons.d.ts +1 -1
  35. package/dist/index.d.ts +76 -54
  36. package/package.json +5 -5
  37. package/src/MaterialReactTable.tsx +49 -50
  38. package/src/body/MRT_TableBody.tsx +30 -11
  39. package/src/body/MRT_TableBodyCell.tsx +17 -18
  40. package/src/body/MRT_TableBodyRow.tsx +7 -10
  41. package/src/body/MRT_TableBodyRowGrabHandle.tsx +5 -5
  42. package/src/buttons/MRT_ColumnPinningButtons.tsx +10 -5
  43. package/src/buttons/MRT_EditActionButtons.tsx +10 -6
  44. package/src/buttons/MRT_FullScreenToggleButton.tsx +10 -4
  45. package/src/buttons/MRT_GrabHandleButton.tsx +5 -5
  46. package/src/buttons/MRT_ShowHideColumnsButton.tsx +10 -4
  47. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +10 -4
  48. package/src/buttons/MRT_ToggleFiltersButton.tsx +10 -4
  49. package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +10 -4
  50. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +4 -4
  51. package/src/head/MRT_TableHeadCell.tsx +11 -16
  52. package/src/head/MRT_TableHeadCellGrabHandle.tsx +11 -12
  53. package/src/index.tsx +17 -3
  54. package/src/inputs/MRT_EditCellTextField.tsx +13 -13
  55. package/src/inputs/MRT_GlobalFilterTextField.tsx +8 -10
  56. package/src/menus/MRT_FilterOptionMenu.tsx +5 -5
  57. package/src/menus/MRT_ShowHideColumnsMenu.tsx +13 -10
  58. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +24 -22
  59. package/src/table/MRT_TableRoot.tsx +59 -66
  60. package/src/toolbar/MRT_ToolbarDropZone.tsx +6 -10
  61. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +2 -7
@@ -1,9 +1,8 @@
1
- import React, { useMemo, useState, useCallback, Fragment, useEffect, useRef, useLayoutEffect } from 'react';
1
+ import React, { useMemo, useRef, useState, useCallback, Fragment, useEffect, useLayoutEffect } from 'react';
2
2
  import { aggregationFns, filterFns, sortingFns, useReactTable, getCoreRowModel, getExpandedRowModel, getFacetedRowModel, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel } from '@tanstack/react-table';
3
3
  import { ArrowRight, Cancel, CheckBox, ClearAll, Close, DensityLarge, DensityMedium, DensitySmall, DragHandle, DynamicFeed, Edit, ExpandLess, ExpandMore, FilterAlt, FilterAltOff, FilterList, FilterListOff, FullscreenExit, Fullscreen, KeyboardDoubleArrowDown, MoreHoriz, MoreVert, PushPin, RestartAlt, Save, Search, SearchOff, Sort, ViewColumn, VisibilityOff } from '@mui/icons-material';
4
4
  import { rankItem, rankings, compareItems } from '@tanstack/match-sorter-utils';
5
5
  import { Tooltip, IconButton, Menu, MenuItem, Box, FormControlLabel, Switch, Typography, Button, Divider, ListItemIcon, Checkbox, debounce, Collapse, TextField, InputAdornment, LinearProgress, TablePagination, Chip, Alert, AlertTitle, Fade, alpha, useMediaQuery, Toolbar, lighten, ListItemText, Grow, TableSortLabel, useTheme, TableCell, TableRow, TableHead, darken, Skeleton, TableBody, TableFooter, Table, TableContainer, Paper, Dialog } from '@mui/material';
6
- import { useVirtualizer } from '@tanstack/react-virtual';
7
6
 
8
7
  /******************************************************************************
9
8
  Copyright (c) Microsoft Corporation.
@@ -422,7 +421,7 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, table,
422
421
  label)))));
423
422
  };
424
423
 
425
- const MRT_ColumnPinningButtons = ({ column, table }) => {
424
+ const MRT_ColumnPinningButtons = ({ column, table, }) => {
426
425
  const { options: { icons: { PushPinIcon }, localization, }, } = table;
427
426
  const handlePinColumn = (pinDirection) => {
428
427
  column.pin(pinDirection);
@@ -560,7 +559,7 @@ const getDefaultColumnFilterFn = (columnDef) => {
560
559
  return 'fuzzy';
561
560
  };
562
561
 
563
- const MRT_ShowHideColumnsMenuItems = ({ allColumns, currentHoveredColumn, setCurrentHoveredColumn, column, isSubMenu, table, }) => {
562
+ const MRT_ShowHideColumnsMenuItems = ({ allColumns, hoveredColumn, setHoveredColumn, column, isSubMenu, table, }) => {
564
563
  var _a;
565
564
  const { getState, options: { enableColumnOrdering, enableHiding, enablePinning, localization, }, setColumnOrder, } = table;
566
565
  const { columnOrder } = getState();
@@ -580,7 +579,7 @@ const MRT_ShowHideColumnsMenuItems = ({ allColumns, currentHoveredColumn, setCur
580
579
  column.toggleVisibility();
581
580
  }
582
581
  };
583
- const menuItemRef = React.useRef(null);
582
+ const menuItemRef = useRef(null);
584
583
  const [isDragging, setIsDragging] = useState(false);
585
584
  const handleDragStart = (e) => {
586
585
  setIsDragging(true);
@@ -588,14 +587,14 @@ const MRT_ShowHideColumnsMenuItems = ({ allColumns, currentHoveredColumn, setCur
588
587
  };
589
588
  const handleDragEnd = (_e) => {
590
589
  setIsDragging(false);
591
- setCurrentHoveredColumn(null);
592
- if (currentHoveredColumn) {
593
- setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));
590
+ setHoveredColumn(null);
591
+ if (hoveredColumn) {
592
+ setColumnOrder(reorderColumn(column, hoveredColumn, columnOrder));
594
593
  }
595
594
  };
596
595
  const handleDragEnter = (_e) => {
597
596
  if (!isDragging) {
598
- setCurrentHoveredColumn(column);
597
+ setHoveredColumn(column);
599
598
  }
600
599
  };
601
600
  return (React.createElement(React.Fragment, null,
@@ -606,7 +605,7 @@ const MRT_ShowHideColumnsMenuItems = ({ allColumns, currentHoveredColumn, setCur
606
605
  opacity: isDragging ? 0.5 : 1,
607
606
  outline: isDragging
608
607
  ? `1px dashed ${theme.palette.divider}`
609
- : (currentHoveredColumn === null || currentHoveredColumn === void 0 ? void 0 : currentHoveredColumn.id) === column.id
608
+ : (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
610
609
  ? `2px dashed ${theme.palette.primary.main}`
611
610
  : 'none',
612
611
  pl: `${(column.depth + 0.5) * 2}rem`,
@@ -636,7 +635,7 @@ const MRT_ShowHideColumnsMenuItems = ({ allColumns, currentHoveredColumn, setCur
636
635
  React.createElement(Switch, null)), disabled: (isSubMenu && switchChecked) ||
637
636
  !column.getCanHide() ||
638
637
  column.getIsGrouped(), label: columnDef.header, onChange: () => handleToggleColumnHidden(column) })) : (React.createElement(Typography, { sx: { alignSelf: 'center' } }, columnDef.header)))), (_a = column.columns) === null || _a === void 0 ? void 0 :
639
- _a.map((c, i) => (React.createElement(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: c, currentHoveredColumn: currentHoveredColumn, isSubMenu: isSubMenu, key: `${i}-${c.id}`, setCurrentHoveredColumn: setCurrentHoveredColumn, table: table })))));
638
+ _a.map((c, i) => (React.createElement(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: c, hoveredColumn: hoveredColumn, isSubMenu: isSubMenu, key: `${i}-${c.id}`, setHoveredColumn: setHoveredColumn, table: table })))));
640
639
  };
641
640
 
642
641
  const MRT_ShowHideColumnsMenu = ({ anchorEl, isSubMenu, setAnchorEl, table, }) => {
@@ -666,7 +665,7 @@ const MRT_ShowHideColumnsMenu = ({ anchorEl, isSubMenu, setAnchorEl, table, }) =
666
665
  getLeftLeafColumns(),
667
666
  getRightLeafColumns(),
668
667
  ]);
669
- const [currentHoveredColumn, setCurrentHoveredColumn] = useState(null);
668
+ const [hoveredColumn, setHoveredColumn] = useState(null);
670
669
  return (React.createElement(Menu, { anchorEl: anchorEl, open: !!anchorEl, onClose: () => setAnchorEl(null), MenuListProps: {
671
670
  dense: density === 'compact',
672
671
  } },
@@ -681,7 +680,7 @@ const MRT_ShowHideColumnsMenu = ({ anchorEl, isSubMenu, setAnchorEl, table, }) =
681
680
  !isSubMenu && enablePinning && (React.createElement(Button, { disabled: !getIsSomeColumnsPinned(), onClick: () => table.resetColumnPinning(true) }, localization.unpinAll)),
682
681
  React.createElement(Button, { disabled: getIsAllColumnsVisible(), onClick: () => toggleAllColumnsVisible(true) }, localization.showAll)),
683
682
  React.createElement(Divider, null),
684
- allColumns.map((column, index) => (React.createElement(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: column, currentHoveredColumn: currentHoveredColumn, isSubMenu: isSubMenu, key: `${index}-${column.id}`, setCurrentHoveredColumn: setCurrentHoveredColumn, table: table })))));
683
+ allColumns.map((column, index) => (React.createElement(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: column, hoveredColumn: hoveredColumn, isSubMenu: isSubMenu, key: `${index}-${column.id}`, setHoveredColumn: setHoveredColumn, table: table })))));
685
684
  };
686
685
 
687
686
  const commonMenuItemStyles = {
@@ -874,16 +873,20 @@ const MRT_RowActionMenu = ({ anchorEl, handleEdit, row, setAnchorEl, table, }) =
874
873
  };
875
874
 
876
875
  const MRT_EditActionButtons = ({ row, table }) => {
877
- const { getState, options: { icons: { CancelIcon, SaveIcon }, localization, onEditRowSubmit, }, setCurrentEditingRow, } = table;
878
- const { currentEditingRow } = getState();
876
+ const { getState, options: { icons: { CancelIcon, SaveIcon }, localization, onEditRowSubmit, }, setEditingRow, } = table;
877
+ const { editingRow } = getState();
879
878
  const handleCancel = () => {
880
- var _a;
881
- row._valuesCache = (_a = row.original) !== null && _a !== void 0 ? _a : {};
882
- setCurrentEditingRow(null);
879
+ row._valuesCache = Object.assign({}, row.original);
880
+ setEditingRow(null);
883
881
  };
884
882
  const handleSave = () => {
885
- onEditRowSubmit === null || onEditRowSubmit === void 0 ? void 0 : onEditRowSubmit({ row: currentEditingRow !== null && currentEditingRow !== void 0 ? currentEditingRow : row, table });
886
- setCurrentEditingRow(null);
883
+ var _a;
884
+ onEditRowSubmit === null || onEditRowSubmit === void 0 ? void 0 : onEditRowSubmit({
885
+ row: editingRow !== null && editingRow !== void 0 ? editingRow : row,
886
+ table,
887
+ values: (_a = editingRow === null || editingRow === void 0 ? void 0 : editingRow._valuesCache) !== null && _a !== void 0 ? _a : Object.assign({}, row.original),
888
+ });
889
+ setEditingRow(null);
887
890
  };
888
891
  return (React.createElement(Box, { sx: { display: 'flex', gap: '0.75rem' } },
889
892
  React.createElement(Tooltip, { arrow: true, title: localization.cancel },
@@ -905,8 +908,8 @@ const commonIconButtonStyles = {
905
908
  },
906
909
  };
907
910
  const MRT_ToggleRowActionMenuButton = ({ row, table }) => {
908
- const { getState, options: { enableEditing, icons: { EditIcon, MoreHorizIcon }, localization, renderRowActionMenuItems, renderRowActions, }, setCurrentEditingRow, } = table;
909
- const { currentEditingRow } = getState();
911
+ const { getState, options: { enableEditing, icons: { EditIcon, MoreHorizIcon }, localization, renderRowActionMenuItems, renderRowActions, }, setEditingRow, } = table;
912
+ const { editingRow } = getState();
910
913
  const [anchorEl, setAnchorEl] = useState(null);
911
914
  const handleOpenRowActionMenu = (event) => {
912
915
  event.stopPropagation();
@@ -914,10 +917,10 @@ const MRT_ToggleRowActionMenuButton = ({ row, table }) => {
914
917
  setAnchorEl(event.currentTarget);
915
918
  };
916
919
  const handleStartEditMode = () => {
917
- setCurrentEditingRow(Object.assign({}, row));
920
+ setEditingRow(Object.assign({}, row));
918
921
  setAnchorEl(null);
919
922
  };
920
- return (React.createElement(React.Fragment, null, renderRowActions ? (React.createElement(React.Fragment, null, renderRowActions({ row, table }))) : row.id === (currentEditingRow === null || currentEditingRow === void 0 ? void 0 : currentEditingRow.id) ? (React.createElement(MRT_EditActionButtons, { row: row, table: table })) : !renderRowActionMenuItems && enableEditing ? (React.createElement(Tooltip, { placement: "right", arrow: true, title: localization.edit },
923
+ return (React.createElement(React.Fragment, null, renderRowActions ? (React.createElement(React.Fragment, null, renderRowActions({ row, table }))) : row.id === (editingRow === null || editingRow === void 0 ? void 0 : editingRow.id) ? (React.createElement(MRT_EditActionButtons, { row: row, table: table })) : !renderRowActionMenuItems && enableEditing ? (React.createElement(Tooltip, { placement: "right", arrow: true, title: localization.edit },
921
924
  React.createElement(IconButton, { sx: commonIconButtonStyles, onClick: handleStartEditMode },
922
925
  React.createElement(EditIcon, null)))) : renderRowActionMenuItems ? (React.createElement(React.Fragment, null,
923
926
  React.createElement(Tooltip, { arrow: true, enterDelay: 1000, enterNextDelay: 1000, title: localization.rowActions },
@@ -950,7 +953,7 @@ const MRT_SelectCheckbox = ({ row, selectAll, table }) => {
950
953
  : checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.sx))) }))));
951
954
  };
952
955
 
953
- const MRT_GlobalFilterTextField = ({ table }) => {
956
+ const MRT_GlobalFilterTextField = ({ table, }) => {
954
957
  var _a;
955
958
  const { getState, setGlobalFilter, options: { enableGlobalFilterChangeMode, icons: { SearchIcon, CloseIcon }, localization, muiSearchTextFieldProps, tableId, }, } = table;
956
959
  const { globalFilter, showGlobalFilter } = getState();
@@ -1135,11 +1138,6 @@ const MRT_ToolbarInternalButtons = ({ table }) => {
1135
1138
  display: 'flex',
1136
1139
  zIndex: 3,
1137
1140
  } }, (_a = renderToolbarInternalActions === null || renderToolbarInternalActions === void 0 ? void 0 : renderToolbarInternalActions({
1138
- MRT_FullScreenToggleButton,
1139
- MRT_ShowHideColumnsButton,
1140
- MRT_ToggleDensePaddingButton,
1141
- MRT_ToggleFiltersButton,
1142
- MRT_ToggleGlobalFilterButton,
1143
1141
  table,
1144
1142
  })) !== null && _a !== void 0 ? _a : (React.createElement(React.Fragment, null,
1145
1143
  enableGlobalFilter && positionGlobalFilter === 'right' && (React.createElement(MRT_GlobalFilterTextField, { table: table })),
@@ -1152,15 +1150,15 @@ const MRT_ToolbarInternalButtons = ({ table }) => {
1152
1150
 
1153
1151
  const MRT_ToolbarDropZone = ({ table }) => {
1154
1152
  var _a, _b;
1155
- const { getState, options: { enableGrouping, localization }, setCurrentHoveredColumn, } = table;
1156
- const { currentDraggingColumn, currentHoveredColumn } = getState();
1153
+ const { getState, options: { enableGrouping, localization }, setHoveredColumn, } = table;
1154
+ const { draggingColumn, hoveredColumn } = getState();
1157
1155
  const handleDragEnter = (_event) => {
1158
- setCurrentHoveredColumn({ id: 'drop-zone' });
1156
+ setHoveredColumn({ id: 'drop-zone' });
1159
1157
  };
1160
- return (React.createElement(Fade, { unmountOnExit: true, mountOnEnter: true, in: !!enableGrouping && !!currentDraggingColumn },
1158
+ return (React.createElement(Fade, { unmountOnExit: true, mountOnEnter: true, in: !!enableGrouping && !!draggingColumn },
1161
1159
  React.createElement(Box, { sx: (theme) => ({
1162
1160
  alignItems: 'center',
1163
- backgroundColor: alpha(theme.palette.info.main, (currentHoveredColumn === null || currentHoveredColumn === void 0 ? void 0 : currentHoveredColumn.id) === 'drop-zone' ? 0.2 : 0.1),
1161
+ backgroundColor: alpha(theme.palette.info.main, (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone' ? 0.2 : 0.1),
1164
1162
  border: `dashed ${theme.palette.info.main} 2px`,
1165
1163
  display: 'flex',
1166
1164
  justifyContent: 'center',
@@ -1169,7 +1167,7 @@ const MRT_ToolbarDropZone = ({ table }) => {
1169
1167
  width: 'calc(100% - 4px)',
1170
1168
  zIndex: 2,
1171
1169
  }), onDragEnter: handleDragEnter },
1172
- React.createElement(Typography, null, localization.dropToGroupBy.replace('{column}', (_b = (_a = currentDraggingColumn === null || currentDraggingColumn === void 0 ? void 0 : currentDraggingColumn.columnDef) === null || _a === void 0 ? void 0 : _a.header) !== null && _b !== void 0 ? _b : '')))));
1170
+ React.createElement(Typography, null, localization.dropToGroupBy.replace('{column}', (_b = (_a = draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.columnDef) === null || _a === void 0 ? void 0 : _a.header) !== null && _b !== void 0 ? _b : '')))));
1173
1171
  };
1174
1172
 
1175
1173
  const commonToolbarStyles = ({ theme }) => ({
@@ -1499,9 +1497,9 @@ const MRT_TableHeadCellFilterLabel = ({ header, table }) => {
1499
1497
  };
1500
1498
 
1501
1499
  const MRT_TableHeadCellGrabHandle = ({ column, table, tableHeadCellRef, }) => {
1502
- const { getState, options: { enableColumnOrdering, muiTableHeadCellDragHandleProps, onColumnDrop, }, setColumnOrder, setCurrentDraggingColumn, setCurrentHoveredColumn, } = table;
1500
+ const { getState, options: { enableColumnOrdering, muiTableHeadCellDragHandleProps, onColumnDrop, }, setColumnOrder, setDraggingColumn, setHoveredColumn, } = table;
1503
1501
  const { columnDef } = column;
1504
- const { currentHoveredColumn, currentDraggingColumn, columnOrder } = getState();
1502
+ const { hoveredColumn, draggingColumn, columnOrder } = getState();
1505
1503
  const mIconButtonProps = muiTableHeadCellDragHandleProps instanceof Function
1506
1504
  ? muiTableHeadCellDragHandleProps({ column, table })
1507
1505
  : muiTableHeadCellDragHandleProps;
@@ -1510,25 +1508,25 @@ const MRT_TableHeadCellGrabHandle = ({ column, table, tableHeadCellRef, }) => {
1510
1508
  : columnDef.muiTableHeadCellDragHandleProps;
1511
1509
  const iconButtonProps = Object.assign(Object.assign({}, mIconButtonProps), mcIconButtonProps);
1512
1510
  const handleDragStart = (e) => {
1513
- setCurrentDraggingColumn(column);
1511
+ setDraggingColumn(column);
1514
1512
  e.dataTransfer.setDragImage(tableHeadCellRef.current, 0, 0);
1515
1513
  };
1516
1514
  const handleDragEnd = (event) => {
1517
1515
  onColumnDrop === null || onColumnDrop === void 0 ? void 0 : onColumnDrop({
1518
1516
  event,
1519
1517
  draggedColumn: column,
1520
- targetColumn: currentHoveredColumn,
1518
+ targetColumn: hoveredColumn,
1521
1519
  });
1522
- if ((currentHoveredColumn === null || currentHoveredColumn === void 0 ? void 0 : currentHoveredColumn.id) === 'drop-zone') {
1520
+ if ((hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone') {
1523
1521
  column.toggleGrouping();
1524
1522
  }
1525
1523
  else if (enableColumnOrdering &&
1526
- currentHoveredColumn &&
1527
- (currentHoveredColumn === null || currentHoveredColumn === void 0 ? void 0 : currentHoveredColumn.id) !== (currentDraggingColumn === null || currentDraggingColumn === void 0 ? void 0 : currentDraggingColumn.id)) {
1528
- setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));
1524
+ hoveredColumn &&
1525
+ (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) !== (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id)) {
1526
+ setColumnOrder(reorderColumn(column, hoveredColumn, columnOrder));
1529
1527
  }
1530
- setCurrentDraggingColumn(null);
1531
- setCurrentHoveredColumn(null);
1528
+ setDraggingColumn(null);
1529
+ setHoveredColumn(null);
1532
1530
  };
1533
1531
  return (React.createElement(MRT_GrabHandleButton, { iconButtonProps: iconButtonProps, onDragStart: handleDragStart, onDragEnd: handleDragEnd, table: table }));
1534
1532
  };
@@ -1586,8 +1584,8 @@ const MRT_TableHeadCellSortLabel = ({ header, table }) => {
1586
1584
  const MRT_TableHeadCell = ({ header, table }) => {
1587
1585
  var _a, _b, _c, _d;
1588
1586
  const theme = useTheme();
1589
- const { getState, options: { enableColumnActions, enableColumnDragging, enableColumnOrdering, enableColumnResizing, enableGrouping, enableMultiSort, muiTableHeadCellProps, }, setCurrentHoveredColumn, } = table;
1590
- const { density, currentDraggingColumn, currentHoveredColumn, showColumnFilters, } = getState();
1587
+ const { getState, options: { enableColumnActions, enableColumnDragging, enableColumnOrdering, enableColumnResizing, enableGrouping, enableMultiSort, muiTableHeadCellProps, }, setHoveredColumn, } = table;
1588
+ const { density, draggingColumn, hoveredColumn, showColumnFilters } = getState();
1591
1589
  const { column } = header;
1592
1590
  const { columnDef } = column;
1593
1591
  const { columnDefType } = columnDef;
@@ -1609,16 +1607,16 @@ const MRT_TableHeadCell = ({ header, table }) => {
1609
1607
  return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150);
1610
1608
  };
1611
1609
  const handleDragEnter = (_e) => {
1612
- if (enableGrouping && (currentHoveredColumn === null || currentHoveredColumn === void 0 ? void 0 : currentHoveredColumn.id) === 'drop-zone') {
1613
- setCurrentHoveredColumn(null);
1610
+ if (enableGrouping && (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone') {
1611
+ setHoveredColumn(null);
1614
1612
  }
1615
- if (enableColumnOrdering && currentDraggingColumn) {
1616
- setCurrentHoveredColumn(columnDef.enableColumnOrdering !== false ? column : null);
1613
+ if (enableColumnOrdering && draggingColumn) {
1614
+ setHoveredColumn(columnDef.enableColumnOrdering !== false ? column : null);
1617
1615
  }
1618
1616
  };
1619
- const draggingBorder = (currentDraggingColumn === null || currentDraggingColumn === void 0 ? void 0 : currentDraggingColumn.id) === column.id
1617
+ const draggingBorder = (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id
1620
1618
  ? `1px dashed ${theme.palette.text.secondary}`
1621
- : (currentHoveredColumn === null || currentHoveredColumn === void 0 ? void 0 : currentHoveredColumn.id) === column.id
1619
+ : (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
1622
1620
  ? `2px dashed ${theme.palette.primary.main}`
1623
1621
  : undefined;
1624
1622
  const draggingBorders = draggingBorder
@@ -1646,8 +1644,7 @@ const MRT_TableHeadCell = ({ header, table }) => {
1646
1644
  ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`
1647
1645
  : undefined, fontWeight: 'bold', left: column.getIsPinned() === 'left'
1648
1646
  ? `${column.getStart('left')}px`
1649
- : undefined, overflow: 'visible', opacity: (currentDraggingColumn === null || currentDraggingColumn === void 0 ? void 0 : currentDraggingColumn.id) === column.id ||
1650
- (currentHoveredColumn === null || currentHoveredColumn === void 0 ? void 0 : currentHoveredColumn.id) === column.id
1647
+ : undefined, overflow: 'visible', opacity: (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id || (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
1651
1648
  ? 0.5
1652
1649
  : 1, p: density === 'compact'
1653
1650
  ? '0.5rem'
@@ -1669,7 +1666,7 @@ const MRT_TableHeadCell = ({ header, table }) => {
1669
1666
  ? '0.25'
1670
1667
  : density === 'comfortable'
1671
1668
  ? '.75rem'
1672
- : '1.25rem', right: column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined, transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`, userSelect: enableMultiSort && column.getCanSort() ? 'none' : undefined, verticalAlign: 'top', zIndex: column.getIsResizing() || (currentDraggingColumn === null || currentDraggingColumn === void 0 ? void 0 : currentDraggingColumn.id) === column.id
1669
+ : '1.25rem', right: column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined, transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`, userSelect: enableMultiSort && column.getCanSort() ? 'none' : undefined, verticalAlign: 'top', zIndex: column.getIsResizing() || (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id
1673
1670
  ? 3
1674
1671
  : column.getIsPinned() && columnDefType !== 'group'
1675
1672
  ? 2
@@ -1733,29 +1730,522 @@ const MRT_TableHead = ({ table }) => {
1733
1730
  return (React.createElement(TableHead, Object.assign({}, tableHeadProps), getHeaderGroups().map((headerGroup) => (React.createElement(MRT_TableHeadRow, { headerGroup: headerGroup, key: headerGroup.id, table: table })))));
1734
1731
  };
1735
1732
 
1733
+ function _extends() {
1734
+ _extends = Object.assign || function (target) {
1735
+ for (var i = 1; i < arguments.length; i++) {
1736
+ var source = arguments[i];
1737
+
1738
+ for (var key in source) {
1739
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
1740
+ target[key] = source[key];
1741
+ }
1742
+ }
1743
+ }
1744
+
1745
+ return target;
1746
+ };
1747
+
1748
+ return _extends.apply(this, arguments);
1749
+ }
1750
+
1751
+ function _objectWithoutPropertiesLoose(source, excluded) {
1752
+ if (source == null) return {};
1753
+ var target = {};
1754
+ var sourceKeys = Object.keys(source);
1755
+ var key, i;
1756
+
1757
+ for (i = 0; i < sourceKeys.length; i++) {
1758
+ key = sourceKeys[i];
1759
+ if (excluded.indexOf(key) >= 0) continue;
1760
+ target[key] = source[key];
1761
+ }
1762
+
1763
+ return target;
1764
+ }
1765
+
1766
+ var props = ['bottom', 'height', 'left', 'right', 'top', 'width'];
1767
+
1768
+ var rectChanged = function rectChanged(a, b) {
1769
+ if (a === void 0) {
1770
+ a = {};
1771
+ }
1772
+
1773
+ if (b === void 0) {
1774
+ b = {};
1775
+ }
1776
+
1777
+ return props.some(function (prop) {
1778
+ return a[prop] !== b[prop];
1779
+ });
1780
+ };
1781
+
1782
+ var observedNodes = /*#__PURE__*/new Map();
1783
+ var rafId;
1784
+
1785
+ var run = function run() {
1786
+ var changedStates = [];
1787
+ observedNodes.forEach(function (state, node) {
1788
+ var newRect = node.getBoundingClientRect();
1789
+
1790
+ if (rectChanged(newRect, state.rect)) {
1791
+ state.rect = newRect;
1792
+ changedStates.push(state);
1793
+ }
1794
+ });
1795
+ changedStates.forEach(function (state) {
1796
+ state.callbacks.forEach(function (cb) {
1797
+ return cb(state.rect);
1798
+ });
1799
+ });
1800
+ rafId = window.requestAnimationFrame(run);
1801
+ };
1802
+
1803
+ function observeRect(node, cb) {
1804
+ return {
1805
+ observe: function observe() {
1806
+ var wasEmpty = observedNodes.size === 0;
1807
+
1808
+ if (observedNodes.has(node)) {
1809
+ observedNodes.get(node).callbacks.push(cb);
1810
+ } else {
1811
+ observedNodes.set(node, {
1812
+ rect: undefined,
1813
+ hasRectChanged: false,
1814
+ callbacks: [cb]
1815
+ });
1816
+ }
1817
+
1818
+ if (wasEmpty) run();
1819
+ },
1820
+ unobserve: function unobserve() {
1821
+ var state = observedNodes.get(node);
1822
+
1823
+ if (state) {
1824
+ // Remove the callback
1825
+ var index = state.callbacks.indexOf(cb);
1826
+ if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference
1827
+
1828
+ if (!state.callbacks.length) observedNodes["delete"](node); // Stop the loop
1829
+
1830
+ if (!observedNodes.size) cancelAnimationFrame(rafId);
1831
+ }
1832
+ }
1833
+ };
1834
+ }
1835
+
1836
+ var useIsomorphicLayoutEffect$1 = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
1837
+
1838
+ function useRect(nodeRef, initialRect) {
1839
+ if (initialRect === void 0) {
1840
+ initialRect = {
1841
+ width: 0,
1842
+ height: 0
1843
+ };
1844
+ }
1845
+
1846
+ var _React$useState = React.useState(nodeRef.current),
1847
+ element = _React$useState[0],
1848
+ setElement = _React$useState[1];
1849
+
1850
+ var _React$useReducer = React.useReducer(rectReducer, initialRect),
1851
+ rect = _React$useReducer[0],
1852
+ dispatch = _React$useReducer[1];
1853
+
1854
+ var initialRectSet = React.useRef(false);
1855
+ useIsomorphicLayoutEffect$1(function () {
1856
+ if (nodeRef.current !== element) {
1857
+ setElement(nodeRef.current);
1858
+ }
1859
+ });
1860
+ useIsomorphicLayoutEffect$1(function () {
1861
+ if (element && !initialRectSet.current) {
1862
+ initialRectSet.current = true;
1863
+
1864
+ var _rect = element.getBoundingClientRect();
1865
+
1866
+ dispatch({
1867
+ rect: _rect
1868
+ });
1869
+ }
1870
+ }, [element]);
1871
+ React.useEffect(function () {
1872
+ if (!element) {
1873
+ return;
1874
+ }
1875
+
1876
+ var observer = observeRect(element, function (rect) {
1877
+ dispatch({
1878
+ rect: rect
1879
+ });
1880
+ });
1881
+ observer.observe();
1882
+ return function () {
1883
+ observer.unobserve();
1884
+ };
1885
+ }, [element]);
1886
+ return rect;
1887
+ }
1888
+
1889
+ function rectReducer(state, action) {
1890
+ var rect = action.rect;
1891
+
1892
+ if (state.height !== rect.height || state.width !== rect.width) {
1893
+ return rect;
1894
+ }
1895
+
1896
+ return state;
1897
+ }
1898
+
1899
+ var defaultEstimateSize = function defaultEstimateSize() {
1900
+ return 50;
1901
+ };
1902
+
1903
+ var defaultKeyExtractor = function defaultKeyExtractor(index) {
1904
+ return index;
1905
+ };
1906
+
1907
+ var defaultMeasureSize = function defaultMeasureSize(el, horizontal) {
1908
+ var key = horizontal ? 'offsetWidth' : 'offsetHeight';
1909
+ return el[key];
1910
+ };
1911
+
1912
+ var defaultRangeExtractor = function defaultRangeExtractor(range) {
1913
+ var start = Math.max(range.start - range.overscan, 0);
1914
+ var end = Math.min(range.end + range.overscan, range.size - 1);
1915
+ var arr = [];
1916
+
1917
+ for (var i = start; i <= end; i++) {
1918
+ arr.push(i);
1919
+ }
1920
+
1921
+ return arr;
1922
+ };
1923
+ function useVirtual(_ref) {
1924
+ var _measurements;
1925
+
1926
+ var _ref$size = _ref.size,
1927
+ size = _ref$size === void 0 ? 0 : _ref$size,
1928
+ _ref$estimateSize = _ref.estimateSize,
1929
+ estimateSize = _ref$estimateSize === void 0 ? defaultEstimateSize : _ref$estimateSize,
1930
+ _ref$overscan = _ref.overscan,
1931
+ overscan = _ref$overscan === void 0 ? 1 : _ref$overscan,
1932
+ _ref$paddingStart = _ref.paddingStart,
1933
+ paddingStart = _ref$paddingStart === void 0 ? 0 : _ref$paddingStart,
1934
+ _ref$paddingEnd = _ref.paddingEnd,
1935
+ paddingEnd = _ref$paddingEnd === void 0 ? 0 : _ref$paddingEnd,
1936
+ parentRef = _ref.parentRef,
1937
+ horizontal = _ref.horizontal,
1938
+ scrollToFn = _ref.scrollToFn,
1939
+ useObserver = _ref.useObserver,
1940
+ initialRect = _ref.initialRect,
1941
+ onScrollElement = _ref.onScrollElement,
1942
+ scrollOffsetFn = _ref.scrollOffsetFn,
1943
+ _ref$keyExtractor = _ref.keyExtractor,
1944
+ keyExtractor = _ref$keyExtractor === void 0 ? defaultKeyExtractor : _ref$keyExtractor,
1945
+ _ref$measureSize = _ref.measureSize,
1946
+ measureSize = _ref$measureSize === void 0 ? defaultMeasureSize : _ref$measureSize,
1947
+ _ref$rangeExtractor = _ref.rangeExtractor,
1948
+ rangeExtractor = _ref$rangeExtractor === void 0 ? defaultRangeExtractor : _ref$rangeExtractor;
1949
+ var sizeKey = horizontal ? 'width' : 'height';
1950
+ var scrollKey = horizontal ? 'scrollLeft' : 'scrollTop';
1951
+ var latestRef = React.useRef({
1952
+ scrollOffset: 0,
1953
+ measurements: []
1954
+ });
1955
+
1956
+ var _React$useState = React.useState(0),
1957
+ scrollOffset = _React$useState[0],
1958
+ setScrollOffset = _React$useState[1];
1959
+
1960
+ latestRef.current.scrollOffset = scrollOffset;
1961
+ var useMeasureParent = useObserver || useRect;
1962
+
1963
+ var _useMeasureParent = useMeasureParent(parentRef, initialRect),
1964
+ outerSize = _useMeasureParent[sizeKey];
1965
+
1966
+ latestRef.current.outerSize = outerSize;
1967
+ var defaultScrollToFn = React.useCallback(function (offset) {
1968
+ if (parentRef.current) {
1969
+ parentRef.current[scrollKey] = offset;
1970
+ }
1971
+ }, [parentRef, scrollKey]);
1972
+ var resolvedScrollToFn = scrollToFn || defaultScrollToFn;
1973
+ scrollToFn = React.useCallback(function (offset) {
1974
+ resolvedScrollToFn(offset, defaultScrollToFn);
1975
+ }, [defaultScrollToFn, resolvedScrollToFn]);
1976
+
1977
+ var _React$useState2 = React.useState({}),
1978
+ measuredCache = _React$useState2[0],
1979
+ setMeasuredCache = _React$useState2[1];
1980
+
1981
+ var measure = React.useCallback(function () {
1982
+ return setMeasuredCache({});
1983
+ }, []);
1984
+ var pendingMeasuredCacheIndexesRef = React.useRef([]);
1985
+ var measurements = React.useMemo(function () {
1986
+ var min = pendingMeasuredCacheIndexesRef.current.length > 0 ? Math.min.apply(Math, pendingMeasuredCacheIndexesRef.current) : 0;
1987
+ pendingMeasuredCacheIndexesRef.current = [];
1988
+ var measurements = latestRef.current.measurements.slice(0, min);
1989
+
1990
+ for (var i = min; i < size; i++) {
1991
+ var key = keyExtractor(i);
1992
+ var measuredSize = measuredCache[key];
1993
+
1994
+ var _start = measurements[i - 1] ? measurements[i - 1].end : paddingStart;
1995
+
1996
+ var _size = typeof measuredSize === 'number' ? measuredSize : estimateSize(i);
1997
+
1998
+ var _end = _start + _size;
1999
+
2000
+ measurements[i] = {
2001
+ index: i,
2002
+ start: _start,
2003
+ size: _size,
2004
+ end: _end,
2005
+ key: key
2006
+ };
2007
+ }
2008
+
2009
+ return measurements;
2010
+ }, [estimateSize, measuredCache, paddingStart, size, keyExtractor]);
2011
+ var totalSize = (((_measurements = measurements[size - 1]) == null ? void 0 : _measurements.end) || paddingStart) + paddingEnd;
2012
+ latestRef.current.measurements = measurements;
2013
+ latestRef.current.totalSize = totalSize;
2014
+ var element = onScrollElement ? onScrollElement.current : parentRef.current;
2015
+ var scrollOffsetFnRef = React.useRef(scrollOffsetFn);
2016
+ scrollOffsetFnRef.current = scrollOffsetFn;
2017
+ useIsomorphicLayoutEffect$1(function () {
2018
+ if (!element) {
2019
+ setScrollOffset(0);
2020
+ return;
2021
+ }
2022
+
2023
+ var onScroll = function onScroll(event) {
2024
+ var offset = scrollOffsetFnRef.current ? scrollOffsetFnRef.current(event) : element[scrollKey];
2025
+ setScrollOffset(offset);
2026
+ };
2027
+
2028
+ onScroll();
2029
+ element.addEventListener('scroll', onScroll, {
2030
+ capture: false,
2031
+ passive: true
2032
+ });
2033
+ return function () {
2034
+ element.removeEventListener('scroll', onScroll);
2035
+ };
2036
+ }, [element, scrollKey]);
2037
+
2038
+ var _calculateRange = calculateRange(latestRef.current),
2039
+ start = _calculateRange.start,
2040
+ end = _calculateRange.end;
2041
+
2042
+ var indexes = React.useMemo(function () {
2043
+ return rangeExtractor({
2044
+ start: start,
2045
+ end: end,
2046
+ overscan: overscan,
2047
+ size: measurements.length
2048
+ });
2049
+ }, [start, end, overscan, measurements.length, rangeExtractor]);
2050
+ var measureSizeRef = React.useRef(measureSize);
2051
+ measureSizeRef.current = measureSize;
2052
+ var virtualItems = React.useMemo(function () {
2053
+ var virtualItems = [];
2054
+
2055
+ var _loop = function _loop(k, len) {
2056
+ var i = indexes[k];
2057
+ var measurement = measurements[i];
2058
+
2059
+ var item = _extends(_extends({}, measurement), {}, {
2060
+ measureRef: function measureRef(el) {
2061
+ if (el) {
2062
+ var measuredSize = measureSizeRef.current(el, horizontal);
2063
+
2064
+ if (measuredSize !== item.size) {
2065
+ var _scrollOffset = latestRef.current.scrollOffset;
2066
+
2067
+ if (item.start < _scrollOffset) {
2068
+ defaultScrollToFn(_scrollOffset + (measuredSize - item.size));
2069
+ }
2070
+
2071
+ pendingMeasuredCacheIndexesRef.current.push(i);
2072
+ setMeasuredCache(function (old) {
2073
+ var _extends2;
2074
+
2075
+ return _extends(_extends({}, old), {}, (_extends2 = {}, _extends2[item.key] = measuredSize, _extends2));
2076
+ });
2077
+ }
2078
+ }
2079
+ }
2080
+ });
2081
+
2082
+ virtualItems.push(item);
2083
+ };
2084
+
2085
+ for (var k = 0, len = indexes.length; k < len; k++) {
2086
+ _loop(k);
2087
+ }
2088
+
2089
+ return virtualItems;
2090
+ }, [indexes, defaultScrollToFn, horizontal, measurements]);
2091
+ var mountedRef = React.useRef(false);
2092
+ useIsomorphicLayoutEffect$1(function () {
2093
+ if (mountedRef.current) {
2094
+ setMeasuredCache({});
2095
+ }
2096
+
2097
+ mountedRef.current = true;
2098
+ }, [estimateSize]);
2099
+ var scrollToOffset = React.useCallback(function (toOffset, _temp) {
2100
+ var _ref2 = _temp === void 0 ? {} : _temp,
2101
+ _ref2$align = _ref2.align,
2102
+ align = _ref2$align === void 0 ? 'start' : _ref2$align;
2103
+
2104
+ var _latestRef$current = latestRef.current,
2105
+ scrollOffset = _latestRef$current.scrollOffset,
2106
+ outerSize = _latestRef$current.outerSize;
2107
+
2108
+ if (align === 'auto') {
2109
+ if (toOffset <= scrollOffset) {
2110
+ align = 'start';
2111
+ } else if (toOffset >= scrollOffset + outerSize) {
2112
+ align = 'end';
2113
+ } else {
2114
+ align = 'start';
2115
+ }
2116
+ }
2117
+
2118
+ if (align === 'start') {
2119
+ scrollToFn(toOffset);
2120
+ } else if (align === 'end') {
2121
+ scrollToFn(toOffset - outerSize);
2122
+ } else if (align === 'center') {
2123
+ scrollToFn(toOffset - outerSize / 2);
2124
+ }
2125
+ }, [scrollToFn]);
2126
+ var tryScrollToIndex = React.useCallback(function (index, _temp2) {
2127
+ var _ref3 = _temp2 === void 0 ? {} : _temp2,
2128
+ _ref3$align = _ref3.align,
2129
+ align = _ref3$align === void 0 ? 'auto' : _ref3$align,
2130
+ rest = _objectWithoutPropertiesLoose(_ref3, ["align"]);
2131
+
2132
+ var _latestRef$current2 = latestRef.current,
2133
+ measurements = _latestRef$current2.measurements,
2134
+ scrollOffset = _latestRef$current2.scrollOffset,
2135
+ outerSize = _latestRef$current2.outerSize;
2136
+ var measurement = measurements[Math.max(0, Math.min(index, size - 1))];
2137
+
2138
+ if (!measurement) {
2139
+ return;
2140
+ }
2141
+
2142
+ if (align === 'auto') {
2143
+ if (measurement.end >= scrollOffset + outerSize) {
2144
+ align = 'end';
2145
+ } else if (measurement.start <= scrollOffset) {
2146
+ align = 'start';
2147
+ } else {
2148
+ return;
2149
+ }
2150
+ }
2151
+
2152
+ var toOffset = align === 'center' ? measurement.start + measurement.size / 2 : align === 'end' ? measurement.end : measurement.start;
2153
+ scrollToOffset(toOffset, _extends({
2154
+ align: align
2155
+ }, rest));
2156
+ }, [scrollToOffset, size]);
2157
+ var scrollToIndex = React.useCallback(function () {
2158
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
2159
+ args[_key] = arguments[_key];
2160
+ }
2161
+
2162
+ // We do a double request here because of
2163
+ // dynamic sizes which can cause offset shift
2164
+ // and end up in the wrong spot. Unfortunately,
2165
+ // we can't know about those dynamic sizes until
2166
+ // we try and render them. So double down!
2167
+ tryScrollToIndex.apply(void 0, args);
2168
+ requestAnimationFrame(function () {
2169
+ tryScrollToIndex.apply(void 0, args);
2170
+ });
2171
+ }, [tryScrollToIndex]);
2172
+ return {
2173
+ virtualItems: virtualItems,
2174
+ totalSize: totalSize,
2175
+ scrollToOffset: scrollToOffset,
2176
+ scrollToIndex: scrollToIndex,
2177
+ measure: measure
2178
+ };
2179
+ }
2180
+
2181
+ var findNearestBinarySearch = function findNearestBinarySearch(low, high, getCurrentValue, value) {
2182
+ while (low <= high) {
2183
+ var middle = (low + high) / 2 | 0;
2184
+ var currentValue = getCurrentValue(middle);
2185
+
2186
+ if (currentValue < value) {
2187
+ low = middle + 1;
2188
+ } else if (currentValue > value) {
2189
+ high = middle - 1;
2190
+ } else {
2191
+ return middle;
2192
+ }
2193
+ }
2194
+
2195
+ if (low > 0) {
2196
+ return low - 1;
2197
+ } else {
2198
+ return 0;
2199
+ }
2200
+ };
2201
+
2202
+ function calculateRange(_ref4) {
2203
+ var measurements = _ref4.measurements,
2204
+ outerSize = _ref4.outerSize,
2205
+ scrollOffset = _ref4.scrollOffset;
2206
+ var size = measurements.length - 1;
2207
+
2208
+ var getOffset = function getOffset(index) {
2209
+ return measurements[index].start;
2210
+ };
2211
+
2212
+ var start = findNearestBinarySearch(0, size, getOffset, scrollOffset);
2213
+ var end = start;
2214
+
2215
+ while (end < size && measurements[end].end < scrollOffset + outerSize) {
2216
+ end++;
2217
+ }
2218
+
2219
+ return {
2220
+ start: start,
2221
+ end: end
2222
+ };
2223
+ }
2224
+
1736
2225
  const MRT_EditCellTextField = ({ cell, table }) => {
1737
2226
  var _a;
1738
- const { getState, options: { tableId, enableEditing, muiTableBodyCellEditTextFieldProps, onCellEditBlur, onCellEditChange, }, setCurrentEditingCell, setCurrentEditingRow, } = table;
2227
+ const { getState, options: { tableId, muiTableBodyCellEditTextFieldProps, onCellEditBlur, onCellEditChange, }, setEditingCell, setEditingRow, } = table;
1739
2228
  const { column, row } = cell;
1740
2229
  const { columnDef } = column;
1741
- const [value, setValue] = useState(cell.getValue());
2230
+ const { editingRow } = getState();
2231
+ const [value, setValue] = useState(() => cell.getValue());
1742
2232
  const handleChange = (event) => {
1743
2233
  var _a;
1744
2234
  setValue(event.target.value);
1745
- (_a = columnDef.onCellEditChange) === null || _a === void 0 ? void 0 : _a.call(columnDef, { event, cell, table });
1746
- onCellEditChange === null || onCellEditChange === void 0 ? void 0 : onCellEditChange({ event, cell, table });
2235
+ (_a = columnDef.onCellEditChange) === null || _a === void 0 ? void 0 : _a.call(columnDef, { event, cell, table, value });
2236
+ onCellEditChange === null || onCellEditChange === void 0 ? void 0 : onCellEditChange({ event, cell, table, value });
1747
2237
  };
1748
2238
  const handleBlur = (event) => {
1749
2239
  var _a;
1750
- if (getState().currentEditingRow) {
2240
+ if (editingRow) {
1751
2241
  if (!row._valuesCache)
1752
2242
  row._valuesCache = {};
1753
2243
  row._valuesCache[column.id] = value;
1754
- setCurrentEditingRow(Object.assign({}, getState().currentEditingRow));
2244
+ setEditingRow(Object.assign({}, editingRow));
1755
2245
  }
1756
- setCurrentEditingCell(null);
1757
- (_a = columnDef.onCellEditBlur) === null || _a === void 0 ? void 0 : _a.call(columnDef, { event, cell, table });
1758
- onCellEditBlur === null || onCellEditBlur === void 0 ? void 0 : onCellEditBlur({ event, cell, table });
2246
+ setEditingCell(null);
2247
+ (_a = columnDef.onCellEditBlur) === null || _a === void 0 ? void 0 : _a.call(columnDef, { event, cell, table, value });
2248
+ onCellEditBlur === null || onCellEditBlur === void 0 ? void 0 : onCellEditBlur({ event, cell, table, value });
1759
2249
  };
1760
2250
  const mTableBodyCellEditTextFieldProps = muiTableBodyCellEditTextFieldProps instanceof Function
1761
2251
  ? muiTableBodyCellEditTextFieldProps({ cell, table })
@@ -1767,10 +2257,10 @@ const MRT_EditCellTextField = ({ cell, table }) => {
1767
2257
  })
1768
2258
  : columnDef.muiTableBodyCellEditTextFieldProps;
1769
2259
  const textFieldProps = Object.assign(Object.assign({}, mTableBodyCellEditTextFieldProps), mcTableBodyCellEditTextFieldProps);
1770
- if (enableEditing && columnDef.enableEditing !== false && columnDef.Edit) {
2260
+ if (columnDef.Edit) {
1771
2261
  return React.createElement(React.Fragment, null, (_a = columnDef.Edit) === null || _a === void 0 ? void 0 : _a.call(columnDef, { cell, column, table }));
1772
2262
  }
1773
- return (React.createElement(TextField, Object.assign({ id: `mrt-${tableId}-edit-cell-text-field-${cell.id}`, margin: "dense", onBlur: handleBlur, onChange: handleChange, onClick: (e) => e.stopPropagation(), placeholder: columnDef.header, value: value, variant: "standard" }, textFieldProps)));
2263
+ return (React.createElement(TextField, Object.assign({ id: `mrt-${tableId}-edit-cell-text-field-${cell.id}`, margin: "none", onBlur: handleBlur, onChange: handleChange, onClick: (e) => e.stopPropagation(), placeholder: columnDef.header, value: value, variant: "standard" }, textFieldProps)));
1774
2264
  };
1775
2265
 
1776
2266
  const MRT_CopyButton = ({ cell, children, table }) => {
@@ -1806,16 +2296,16 @@ const MRT_TableBodyRowGrabHandle = ({ cell, rowRef, table, }) => {
1806
2296
  : muiTableBodyRowDragHandleProps;
1807
2297
  const handleDragStart = (e) => {
1808
2298
  e.dataTransfer.setDragImage(rowRef.current, 0, 0);
1809
- table.setCurrentDraggingRow(cell.row);
2299
+ table.setDraggingRow(cell.row);
1810
2300
  };
1811
2301
  const handleDragEnd = (event) => {
1812
2302
  onRowDrop === null || onRowDrop === void 0 ? void 0 : onRowDrop({
1813
2303
  event,
1814
- draggedRow: table.getState().currentDraggingRow,
1815
- targetRow: table.getState().currentHoveredRow,
2304
+ draggedRow: table.getState().draggingRow,
2305
+ targetRow: table.getState().hoveredRow,
1816
2306
  });
1817
- table.setCurrentDraggingRow(null);
1818
- table.setCurrentHoveredRow(null);
2307
+ table.setDraggingRow(null);
2308
+ table.setHoveredRow(null);
1819
2309
  };
1820
2310
  return (React.createElement(MRT_GrabHandleButton, { iconButtonProps: iconButtonProps, onDragStart: handleDragStart, onDragEnd: handleDragEnd, table: table }));
1821
2311
  };
@@ -1823,8 +2313,8 @@ const MRT_TableBodyRowGrabHandle = ({ cell, rowRef, table, }) => {
1823
2313
  const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
1824
2314
  var _a, _b, _c, _d, _f, _g, _h, _j;
1825
2315
  const theme = useTheme();
1826
- const { getState, options: { editingMode, enableClickToCopy, enableColumnOrdering, enableEditing, enableGrouping, enablePagination, enableRowNumbers, muiTableBodyCellProps, muiTableBodyCellSkeletonProps, rowNumberMode, tableId, }, setCurrentEditingCell, setCurrentHoveredColumn, } = table;
1827
- const { currentDraggingColumn, currentEditingCell, currentEditingRow, currentHoveredColumn, density, isLoading, showSkeletons, } = getState();
2316
+ const { getState, options: { editingMode, enableClickToCopy, enableColumnOrdering, enableEditing, enableGrouping, enablePagination, enableRowNumbers, muiTableBodyCellProps, muiTableBodyCellSkeletonProps, rowNumberMode, tableId, }, setEditingCell, setHoveredColumn, } = table;
2317
+ const { draggingColumn, editingCell, editingRow, hoveredColumn, density, isLoading, showSkeletons, } = getState();
1828
2318
  const { column, row } = cell;
1829
2319
  const { columnDef } = column;
1830
2320
  const { columnDefType } = columnDef;
@@ -1839,8 +2329,8 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
1839
2329
  columnDef.enableEditing !== false;
1840
2330
  const isEditing = isEditable &&
1841
2331
  (editingMode === 'table' ||
1842
- (currentEditingRow === null || currentEditingRow === void 0 ? void 0 : currentEditingRow.id) === row.id ||
1843
- (currentEditingCell === null || currentEditingCell === void 0 ? void 0 : currentEditingCell.id) === cell.id);
2332
+ (editingRow === null || editingRow === void 0 ? void 0 : editingRow.id) === row.id ||
2333
+ (editingCell === null || editingCell === void 0 ? void 0 : editingCell.id) === cell.id);
1844
2334
  const [skeletonWidth, setSkeletonWidth] = useState(0);
1845
2335
  useEffect(() => setSkeletonWidth(isLoading || showSkeletons
1846
2336
  ? columnDefType === 'display'
@@ -1852,7 +2342,7 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
1852
2342
  if ((enableEditing || columnDef.enableEditing) &&
1853
2343
  columnDef.enableEditing !== false &&
1854
2344
  editingMode === 'cell') {
1855
- setCurrentEditingCell(cell);
2345
+ setEditingCell(cell);
1856
2346
  setTimeout(() => {
1857
2347
  const textField = document.getElementById(`mrt-${tableId}-edit-cell-text-field-${cell.id}`);
1858
2348
  if (textField) {
@@ -1873,16 +2363,16 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
1873
2363
  return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150);
1874
2364
  };
1875
2365
  const handleDragEnter = (_e) => {
1876
- if (enableGrouping && (currentHoveredColumn === null || currentHoveredColumn === void 0 ? void 0 : currentHoveredColumn.id) === 'drop-zone') {
1877
- setCurrentHoveredColumn(null);
2366
+ if (enableGrouping && (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone') {
2367
+ setHoveredColumn(null);
1878
2368
  }
1879
- if (enableColumnOrdering && currentDraggingColumn) {
1880
- setCurrentHoveredColumn(columnDef.enableColumnOrdering !== false ? column : null);
2369
+ if (enableColumnOrdering && draggingColumn) {
2370
+ setHoveredColumn(columnDef.enableColumnOrdering !== false ? column : null);
1881
2371
  }
1882
2372
  };
1883
- const draggingBorder = (currentDraggingColumn === null || currentDraggingColumn === void 0 ? void 0 : currentDraggingColumn.id) === column.id
2373
+ const draggingBorder = (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id
1884
2374
  ? `1px dashed ${theme.palette.text.secondary}`
1885
- : (currentHoveredColumn === null || currentHoveredColumn === void 0 ? void 0 : currentHoveredColumn.id) === column.id
2375
+ : (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
1886
2376
  ? `2px dashed ${theme.palette.primary.main}`
1887
2377
  : undefined;
1888
2378
  const draggingBorders = draggingBorder
@@ -1908,8 +2398,7 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
1908
2398
  ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`
1909
2399
  : undefined, cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text', left: column.getIsPinned() === 'left'
1910
2400
  ? `${column.getStart('left')}px`
1911
- : undefined, opacity: (currentDraggingColumn === null || currentDraggingColumn === void 0 ? void 0 : currentDraggingColumn.id) === column.id ||
1912
- (currentHoveredColumn === null || currentHoveredColumn === void 0 ? void 0 : currentHoveredColumn.id) === column.id
2401
+ : undefined, opacity: (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id || (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
1913
2402
  ? 0.5
1914
2403
  : 1, overflow: 'hidden', p: density === 'compact'
1915
2404
  ? columnDefType === 'display'
@@ -1928,7 +2417,7 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
1928
2417
  : density === 'comfortable'
1929
2418
  ? 0.75
1930
2419
  : 1.25)}rem`
1931
- : undefined, position: column.getIsPinned() ? 'sticky' : 'relative', right: column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined, textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined, transition: 'all 0.2s ease-in-out', whiteSpace: density === 'compact' ? 'nowrap' : 'normal', zIndex: (currentDraggingColumn === null || currentDraggingColumn === void 0 ? void 0 : currentDraggingColumn.id) === column.id
2420
+ : undefined, position: column.getIsPinned() ? 'sticky' : 'relative', right: column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined, textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined, transition: 'all 0.2s ease-in-out', whiteSpace: density === 'compact' ? 'nowrap' : 'normal', zIndex: (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id
1932
2421
  ? 2
1933
2422
  : column.getIsPinned()
1934
2423
  ? 1
@@ -1974,20 +2463,20 @@ const MRT_TableDetailPanel = ({ row, table }) => {
1974
2463
  const MRT_TableBodyRow = ({ row, rowIndex, table }) => {
1975
2464
  var _a, _b;
1976
2465
  const theme = useTheme();
1977
- const { getIsSomeColumnsPinned, getState, options: { enableRowOrdering, muiTableBodyRowProps, renderDetailPanel }, setCurrentHoveredRow, } = table;
1978
- const { currentDraggingRow, currentHoveredRow } = getState();
2466
+ const { getIsSomeColumnsPinned, getState, options: { enableRowOrdering, muiTableBodyRowProps, renderDetailPanel }, setHoveredRow, } = table;
2467
+ const { draggingRow, hoveredRow } = getState();
1979
2468
  const tableRowProps = muiTableBodyRowProps instanceof Function
1980
2469
  ? muiTableBodyRowProps({ row, table })
1981
2470
  : muiTableBodyRowProps;
1982
2471
  const handleDragEnter = (_e) => {
1983
- if (enableRowOrdering && currentDraggingRow) {
1984
- setCurrentHoveredRow(row);
2472
+ if (enableRowOrdering && draggingRow) {
2473
+ setHoveredRow(row);
1985
2474
  }
1986
2475
  };
1987
2476
  const rowRef = useRef(null);
1988
- const draggingBorder = (currentDraggingRow === null || currentDraggingRow === void 0 ? void 0 : currentDraggingRow.id) === row.id
2477
+ const draggingBorder = (draggingRow === null || draggingRow === void 0 ? void 0 : draggingRow.id) === row.id
1989
2478
  ? `1px dashed ${theme.palette.text.secondary}`
1990
- : (currentHoveredRow === null || currentHoveredRow === void 0 ? void 0 : currentHoveredRow.id) === row.id
2479
+ : (hoveredRow === null || hoveredRow === void 0 ? void 0 : hoveredRow.id) === row.id
1991
2480
  ? `2px dashed ${theme.palette.primary.main}`
1992
2481
  : undefined;
1993
2482
  const draggingBorders = draggingBorder
@@ -1996,10 +2485,7 @@ const MRT_TableBodyRow = ({ row, rowIndex, table }) => {
1996
2485
  }
1997
2486
  : undefined;
1998
2487
  return (React.createElement(React.Fragment, null,
1999
- React.createElement(TableRow, Object.assign({ onDragEnter: handleDragEnter, hover: true, selected: row.getIsSelected(), ref: rowRef }, tableRowProps, { sx: (theme) => (Object.assign(Object.assign({ backgroundColor: lighten(theme.palette.background.default, 0.06), opacity: (currentDraggingRow === null || currentDraggingRow === void 0 ? void 0 : currentDraggingRow.id) === row.id ||
2000
- (currentHoveredRow === null || currentHoveredRow === void 0 ? void 0 : currentHoveredRow.id) === row.id
2001
- ? 0.5
2002
- : 1, transition: 'all 0.2s ease-in-out', '&:hover td': {
2488
+ React.createElement(TableRow, Object.assign({ onDragEnter: handleDragEnter, hover: true, selected: row.getIsSelected(), ref: rowRef }, tableRowProps, { sx: (theme) => (Object.assign(Object.assign({ backgroundColor: lighten(theme.palette.background.default, 0.06), opacity: (draggingRow === null || draggingRow === void 0 ? void 0 : draggingRow.id) === row.id || (hoveredRow === null || hoveredRow === void 0 ? void 0 : hoveredRow.id) === row.id ? 0.5 : 1, transition: 'all 0.2s ease-in-out', '&:hover td': {
2003
2489
  backgroundColor: (tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.hover) !== false && getIsSomeColumnsPinned()
2004
2490
  ? theme.palette.mode === 'dark'
2005
2491
  ? `${lighten(theme.palette.background.default, 0.12)}`
@@ -2013,7 +2499,7 @@ const MRT_TableBodyRow = ({ row, rowIndex, table }) => {
2013
2499
 
2014
2500
  const MRT_TableBody = ({ table, tableContainerRef }) => {
2015
2501
  const { getRowModel, getPrePaginationRowModel, getState, options: { enableGlobalFilterRankedResults, enablePagination, enableRowVirtualization, muiTableBodyProps, virtualizerProps, }, } = table;
2016
- const { density, globalFilter, pagination, sorting } = getState();
2502
+ const { globalFilter, pagination, sorting } = getState();
2017
2503
  const tableBodyProps = muiTableBodyProps instanceof Function
2018
2504
  ? muiTableBodyProps({ table })
2019
2505
  : muiTableBodyProps;
@@ -2041,19 +2527,37 @@ const MRT_TableBody = ({ table, tableContainerRef }) => {
2041
2527
  globalFilter,
2042
2528
  ]);
2043
2529
  const rowVirtualizer = enableRowVirtualization
2044
- ? useVirtualizer(Object.assign({ count: rows.length, estimateSize: () => (density === 'compact' ? 20 : 50), getScrollElement: () => tableContainerRef.current, overscan: 10 }, vProps))
2530
+ ? useVirtual(Object.assign({ size: rows.length, parentRef: tableContainerRef, overscan: 15 }, vProps))
2045
2531
  : {};
2532
+ // const rowVirtualizer: Virtualizer = enableRowVirtualization
2533
+ // ? useVirtualizer({
2534
+ // count: rows.length,
2535
+ // estimateSize: () => (density === 'compact' ? 25 : 50),
2536
+ // getScrollElement: () => tableContainerRef.current as HTMLDivElement,
2537
+ // overscan: 15,
2538
+ // ...vProps,
2539
+ // })
2540
+ // : ({} as any);
2046
2541
  const virtualRows = enableRowVirtualization
2047
- ? rowVirtualizer.getVirtualItems()
2542
+ ? rowVirtualizer.virtualItems
2048
2543
  : [];
2544
+ // const virtualRows = enableRowVirtualization
2545
+ // ? rowVirtualizer.getVirtualItems()
2546
+ // : [];
2049
2547
  let paddingTop = 0;
2050
2548
  let paddingBottom = 0;
2051
2549
  if (enableRowVirtualization) {
2052
2550
  paddingTop = !!virtualRows.length ? virtualRows[0].start : 0;
2053
2551
  paddingBottom = !!virtualRows.length
2054
- ? rowVirtualizer.getTotalSize() - virtualRows[virtualRows.length - 1].end
2552
+ ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end
2055
2553
  : 0;
2056
2554
  }
2555
+ // if (enableRowVirtualization) {
2556
+ // paddingTop = !!virtualRows.length ? virtualRows[0].start : 0;
2557
+ // paddingBottom = !!virtualRows.length
2558
+ // ? rowVirtualizer.getTotalSize() - virtualRows[virtualRows.length - 1].end
2559
+ // : 0;
2560
+ // }
2057
2561
  return (React.createElement(TableBody, Object.assign({}, tableBodyProps),
2058
2562
  enableRowVirtualization && paddingTop > 0 && (React.createElement("tr", null,
2059
2563
  React.createElement("td", { style: { height: `${paddingTop}px` } }))),
@@ -2188,7 +2692,7 @@ const MRT_TablePaper = ({ table }) => {
2188
2692
  };
2189
2693
 
2190
2694
  const MRT_TableRoot = (props) => {
2191
- 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;
2695
+ 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;
2192
2696
  const [tableId, setIdPrefix] = useState(props.tableId);
2193
2697
  useEffect(() => { var _a; return setIdPrefix((_a = props.tableId) !== null && _a !== void 0 ? _a : Math.random().toString(36).substring(2, 9)); }, [props.tableId]);
2194
2698
  const initialState = useMemo(() => {
@@ -2196,31 +2700,34 @@ const MRT_TableRoot = (props) => {
2196
2700
  const initState = (_a = props.initialState) !== null && _a !== void 0 ? _a : {};
2197
2701
  initState.columnOrder =
2198
2702
  (_b = initState.columnOrder) !== null && _b !== void 0 ? _b : getDefaultColumnOrderIds(props);
2703
+ initState.columnFilterFns = Object.assign({}, ...getAllLeafColumnDefs(props.columns).map((col) => {
2704
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
2705
+ return ({
2706
+ [(_d = (_b = (_a = col.id) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : (_c = col.accessorKey) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : '']: col.filterFn instanceof Function
2707
+ ? (_e = col.filterFn.name) !== null && _e !== void 0 ? _e : 'custom'
2708
+ : (_m = (_f = col.filterFn) !== null && _f !== void 0 ? _f : (_g = initialState === null || initialState === void 0 ? void 0 : initialState.columnFilterFns) === null || _g === void 0 ? void 0 : _g[(_l = (_j = (_h = col.id) === null || _h === void 0 ? void 0 : _h.toString()) !== null && _j !== void 0 ? _j : (_k = col.accessorKey) === null || _k === void 0 ? void 0 : _k.toString()) !== null && _l !== void 0 ? _l : '']) !== null && _m !== void 0 ? _m : getDefaultColumnFilterFn(col),
2709
+ });
2710
+ }));
2711
+ initState.globalFilterFn =
2712
+ props.globalFilterFn instanceof String
2713
+ ? props.globalFilterFn
2714
+ : 'fuzzy';
2199
2715
  return initState;
2200
2716
  }, []);
2201
- const [columnOrder, setColumnOrder] = useState((_a = initialState.columnOrder) !== null && _a !== void 0 ? _a : []);
2202
- const [currentDraggingColumn, setCurrentDraggingColumn] = useState((_b = initialState.currentDraggingColumn) !== null && _b !== void 0 ? _b : null);
2203
- const [currentDraggingRow, setCurrentDraggingRow] = useState((_c = initialState.currentDraggingRow) !== null && _c !== void 0 ? _c : null);
2204
- const [currentEditingCell, setCurrentEditingCell] = useState((_d = initialState.currentEditingCell) !== null && _d !== void 0 ? _d : null);
2205
- const [currentEditingRow, setCurrentEditingRow] = useState((_e = initialState.currentEditingRow) !== null && _e !== void 0 ? _e : null);
2206
- const [currentHoveredColumn, setCurrentHoveredColumn] = useState((_f = initialState.currentHoveredColumn) !== null && _f !== void 0 ? _f : null);
2207
- const [currentHoveredRow, setCurrentHoveredRow] = useState((_g = initialState.currentHoveredRow) !== null && _g !== void 0 ? _g : null);
2208
- const [density, setDensity] = useState((_h = initialState === null || initialState === void 0 ? void 0 : initialState.density) !== null && _h !== void 0 ? _h : 'comfortable');
2209
- const [isFullScreen, setIsFullScreen] = useState((_j = initialState === null || initialState === void 0 ? void 0 : initialState.isFullScreen) !== null && _j !== void 0 ? _j : false);
2210
- const [showAlertBanner, setShowAlertBanner] = useState((_l = (_k = props.initialState) === null || _k === void 0 ? void 0 : _k.showAlertBanner) !== null && _l !== void 0 ? _l : false);
2211
- const [showColumnFilters, setShowFilters] = useState((_m = initialState === null || initialState === void 0 ? void 0 : initialState.showColumnFilters) !== null && _m !== void 0 ? _m : false);
2212
- const [showGlobalFilter, setShowGlobalFilter] = useState((_o = initialState === null || initialState === void 0 ? void 0 : initialState.showGlobalFilter) !== null && _o !== void 0 ? _o : false);
2213
- const [columnFilterFns, setColumnFilterFns] = useState(() => Object.assign({}, ...getAllLeafColumnDefs(props.columns).map((col) => {
2214
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
2215
- return ({
2216
- [(_d = (_b = (_a = col.id) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : (_c = col.accessorKey) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : '']: col.filterFn instanceof Function
2217
- ? (_e = col.filterFn.name) !== null && _e !== void 0 ? _e : 'custom'
2218
- : (_m = (_f = col.filterFn) !== null && _f !== void 0 ? _f : (_g = initialState === null || initialState === void 0 ? void 0 : initialState.columnFilterFns) === null || _g === void 0 ? void 0 : _g[(_l = (_j = (_h = col.id) === null || _h === void 0 ? void 0 : _h.toString()) !== null && _j !== void 0 ? _j : (_k = col.accessorKey) === null || _k === void 0 ? void 0 : _k.toString()) !== null && _l !== void 0 ? _l : '']) !== null && _m !== void 0 ? _m : getDefaultColumnFilterFn(col),
2219
- });
2220
- })));
2221
- const [globalFilterFn, setGlobalFilterFn] = useState(props.globalFilterFn instanceof String
2222
- ? props.globalFilterFn
2223
- : 'fuzzy');
2717
+ const [columnFilterFns, setColumnFilterFns] = useState((_a = initialState.columnFilterFns) !== null && _a !== void 0 ? _a : {});
2718
+ const [columnOrder, setColumnOrder] = useState((_b = initialState.columnOrder) !== null && _b !== void 0 ? _b : []);
2719
+ const [density, setDensity] = useState((_c = initialState === null || initialState === void 0 ? void 0 : initialState.density) !== null && _c !== void 0 ? _c : 'comfortable');
2720
+ const [draggingColumn, setDraggingColumn] = useState((_d = initialState.draggingColumn) !== null && _d !== void 0 ? _d : null);
2721
+ const [draggingRow, setDraggingRow] = useState((_e = initialState.draggingRow) !== null && _e !== void 0 ? _e : null);
2722
+ const [editingCell, setEditingCell] = useState((_f = initialState.editingCell) !== null && _f !== void 0 ? _f : null);
2723
+ const [editingRow, setEditingRow] = useState((_g = initialState.editingRow) !== null && _g !== void 0 ? _g : null);
2724
+ const [globalFilterFn, setGlobalFilterFn] = useState((_h = initialState.globalFilterFn) !== null && _h !== void 0 ? _h : 'fuzzy');
2725
+ const [hoveredColumn, setHoveredColumn] = useState((_j = initialState.hoveredColumn) !== null && _j !== void 0 ? _j : null);
2726
+ const [hoveredRow, setHoveredRow] = useState((_k = initialState.hoveredRow) !== null && _k !== void 0 ? _k : null);
2727
+ const [isFullScreen, setIsFullScreen] = useState((_l = initialState === null || initialState === void 0 ? void 0 : initialState.isFullScreen) !== null && _l !== void 0 ? _l : false);
2728
+ const [showAlertBanner, setShowAlertBanner] = useState((_o = (_m = props.initialState) === null || _m === void 0 ? void 0 : _m.showAlertBanner) !== null && _o !== void 0 ? _o : false);
2729
+ const [showColumnFilters, setShowFilters] = useState((_p = initialState === null || initialState === void 0 ? void 0 : initialState.showColumnFilters) !== null && _p !== void 0 ? _p : false);
2730
+ const [showGlobalFilter, setShowGlobalFilter] = useState((_q = initialState === null || initialState === void 0 ? void 0 : initialState.showGlobalFilter) !== null && _q !== void 0 ? _q : false);
2224
2731
  const displayColumns = useMemo(() => {
2225
2732
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
2226
2733
  return [
@@ -2247,8 +2754,6 @@ const MRT_TableRoot = (props) => {
2247
2754
  props.enableRowSelection,
2248
2755
  props.enableSelectAll,
2249
2756
  props.localization,
2250
- props.muiTableBodyCellProps,
2251
- props.muiTableHeadCellProps,
2252
2757
  props.positionActionsColumn,
2253
2758
  ]);
2254
2759
  const columnDefs = useMemo(() => prepareColumns([...displayColumns, ...props.columns], columnFilterFns, props.filterFns, props.sortingFns), [columnFilterFns, displayColumns, props.columns]);
@@ -2267,26 +2772,24 @@ const MRT_TableRoot = (props) => {
2267
2772
  });
2268
2773
  })))
2269
2774
  : props.data;
2270
- }, [props.data, (_p = props.state) === null || _p === void 0 ? void 0 : _p.isLoading, (_q = props.state) === null || _q === void 0 ? void 0 : _q.showSkeletons]);
2775
+ }, [props.data, (_r = props.state) === null || _r === void 0 ? void 0 : _r.isLoading, (_s = props.state) === null || _s === void 0 ? void 0 : _s.showSkeletons]);
2271
2776
  //@ts-ignore
2272
2777
  const table = Object.assign(Object.assign({}, useReactTable(Object.assign(Object.assign({ getCoreRowModel: getCoreRowModel(), getExpandedRowModel: getExpandedRowModel(), getFacetedRowModel: getFacetedRowModel(), getFilteredRowModel: getFilteredRowModel(), getGroupedRowModel: getGroupedRowModel(), getPaginationRowModel: getPaginationRowModel(), getSortedRowModel: getSortedRowModel(), onColumnOrderChange: setColumnOrder, getSubRows: (row) => row === null || row === void 0 ? void 0 : row.subRows }, props), {
2273
2778
  //@ts-ignore
2274
- columns: columnDefs, data, globalFilterFn:
2275
- //@ts-ignore
2276
- (_r = props.filterFns[globalFilterFn]) !== null && _r !== void 0 ? _r : props.filterFns.fuzzy, initialState, state: Object.assign({ columnOrder,
2277
- currentDraggingColumn,
2278
- currentDraggingRow,
2279
- currentEditingCell,
2280
- currentEditingRow,
2281
- columnFilterFns,
2282
- globalFilterFn,
2283
- currentHoveredColumn,
2284
- currentHoveredRow,
2779
+ columns: columnDefs, data, globalFilterFn: (_u = (_t = props.filterFns) === null || _t === void 0 ? void 0 : _t[globalFilterFn]) !== null && _u !== void 0 ? _u : (_v = props.filterFns) === null || _v === void 0 ? void 0 : _v.fuzzy, initialState, state: Object.assign({ columnFilterFns,
2780
+ columnOrder,
2285
2781
  density,
2782
+ draggingColumn,
2783
+ draggingRow,
2784
+ editingCell,
2785
+ editingRow,
2786
+ globalFilterFn,
2787
+ hoveredColumn,
2788
+ hoveredRow,
2286
2789
  isFullScreen,
2287
2790
  showAlertBanner,
2288
2791
  showColumnFilters,
2289
- showGlobalFilter }, props.state), tableId }))), { setCurrentDraggingColumn: (_s = props.onCurrentDraggingColumnChange) !== null && _s !== void 0 ? _s : setCurrentDraggingColumn, setCurrentDraggingRow: (_t = props.onCurrentDraggingRowChange) !== null && _t !== void 0 ? _t : setCurrentDraggingRow, setCurrentEditingCell: (_u = props.onCurrentEditingCellChange) !== null && _u !== void 0 ? _u : setCurrentEditingCell, setCurrentEditingRow: (_v = props.onCurrentEditingRowChange) !== null && _v !== void 0 ? _v : setCurrentEditingRow, setColumnFilterFns: (_w = props.onCurrentFilterFnsChange) !== null && _w !== void 0 ? _w : setColumnFilterFns, setGlobalFilterFn: (_x = props.onCurrentGlobalFilterFnChange) !== null && _x !== void 0 ? _x : setGlobalFilterFn, setCurrentHoveredColumn: (_y = props.onCurrentHoveredColumnChange) !== null && _y !== void 0 ? _y : setCurrentHoveredColumn, setCurrentHoveredRow: (_z = props.onCurrentHoveredRowChange) !== null && _z !== void 0 ? _z : setCurrentHoveredRow, setDensity: (_0 = props.onDensityChange) !== null && _0 !== void 0 ? _0 : setDensity, setIsFullScreen: (_1 = props.onIsFullScreenChange) !== null && _1 !== void 0 ? _1 : setIsFullScreen, setShowAlertBanner: (_2 = props.onShowAlertBannerChange) !== null && _2 !== void 0 ? _2 : setShowAlertBanner, setShowFilters: (_3 = props.onShowFiltersChange) !== null && _3 !== void 0 ? _3 : setShowFilters, setShowGlobalFilter: (_4 = props.onShowGlobalFilterChange) !== null && _4 !== void 0 ? _4 : setShowGlobalFilter });
2792
+ showGlobalFilter }, props.state), tableId }))), { setColumnFilterFns: (_w = props.onFilterFnsChange) !== null && _w !== void 0 ? _w : setColumnFilterFns, setDensity: (_x = props.onDensityChange) !== null && _x !== void 0 ? _x : setDensity, setDraggingColumn: (_y = props.onDraggingColumnChange) !== null && _y !== void 0 ? _y : setDraggingColumn, setDraggingRow: (_z = props.onDraggingRowChange) !== null && _z !== void 0 ? _z : setDraggingRow, setEditingCell: (_0 = props.onEditingCellChange) !== null && _0 !== void 0 ? _0 : setEditingCell, setEditingRow: (_1 = props.onEditingRowChange) !== null && _1 !== void 0 ? _1 : setEditingRow, setGlobalFilterFn: (_2 = props.onGlobalFilterFnChange) !== null && _2 !== void 0 ? _2 : setGlobalFilterFn, setHoveredColumn: (_3 = props.onHoveredColumnChange) !== null && _3 !== void 0 ? _3 : setHoveredColumn, setHoveredRow: (_4 = props.onHoveredRowChange) !== null && _4 !== void 0 ? _4 : setHoveredRow, setIsFullScreen: (_5 = props.onIsFullScreenChange) !== null && _5 !== void 0 ? _5 : setIsFullScreen, setShowAlertBanner: (_6 = props.onShowAlertBannerChange) !== null && _6 !== void 0 ? _6 : setShowAlertBanner, setShowFilters: (_7 = props.onShowFiltersChange) !== null && _7 !== void 0 ? _7 : setShowFilters, setShowGlobalFilter: (_8 = props.onShowGlobalFilterChange) !== null && _8 !== void 0 ? _8 : setShowGlobalFilter });
2290
2793
  return (React.createElement(React.Fragment, null,
2291
2794
  React.createElement(Dialog, { PaperComponent: Box, TransitionComponent: Grow, disablePortal: true, fullScreen: true, keepMounted: false, onClose: () => setIsFullScreen(false), open: isFullScreen, transitionDuration: 400 },
2292
2795
  React.createElement(MRT_TablePaper, { table: table })),
@@ -2298,5 +2801,5 @@ var MaterialReactTable = (_a) => {
2298
2801
  return (React.createElement(MRT_TableRoot, Object.assign({ aggregationFns: Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns), autoResetExpanded: autoResetExpanded, columnResizeMode: columnResizeMode, defaultColumn: defaultColumn, editingMode: editingMode, enableBottomToolbar: enableBottomToolbar, enableColumnActions: enableColumnActions, enableColumnFilterChangeMode: enableColumnFilterChangeMode, enableColumnFilters: enableColumnFilters, enableColumnOrdering: enableColumnOrdering, enableColumnResizing: enableColumnResizing, enableDensityToggle: enableDensityToggle, enableExpandAll: enableExpandAll, enableFilters: enableFilters, enableFullScreenToggle: enableFullScreenToggle, enableGlobalFilter: enableGlobalFilter, enableGlobalFilterChangeMode: enableGlobalFilterChangeMode, enableGlobalFilterRankedResults: enableGlobalFilterRankedResults, enableGrouping: enableGrouping, enableHiding: enableHiding, enableMultiRowSelection: enableMultiRowSelection, enableMultiSort: enableMultiSort, enablePagination: enablePagination, enablePinning: enablePinning, enableRowSelection: enableRowSelection, enableSelectAll: enableSelectAll, enableSorting: enableSorting, enableStickyHeader: enableStickyHeader, enableTableFooter: enableTableFooter, enableTableHead: enableTableHead, enableToolbarInternalActions: enableToolbarInternalActions, enableTopToolbar: enableTopToolbar, filterFns: Object.assign(Object.assign({}, MRT_FilterFns), filterFns), icons: Object.assign(Object.assign({}, MRT_Default_Icons), icons), localization: Object.assign(Object.assign({}, MRT_DefaultLocalization_EN), localization), positionActionsColumn: positionActionsColumn, positionExpandColumn: positionExpandColumn, positionGlobalFilter: positionGlobalFilter, positionPagination: positionPagination, positionToolbarAlertBanner: positionToolbarAlertBanner, positionToolbarDropZone: positionToolbarDropZone, rowNumberMode: rowNumberMode, selectAllMode: selectAllMode, sortingFns: Object.assign(Object.assign({}, MRT_SortingFns), sortingFns) }, rest)));
2299
2802
  };
2300
2803
 
2301
- export { MaterialReactTable as default };
2804
+ export { MRT_FullScreenToggleButton, MRT_GlobalFilterTextField, MRT_ShowHideColumnsButton, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleGlobalFilterButton, MaterialReactTable as default };
2302
2805
  //# sourceMappingURL=material-react-table.esm.js.map