material-react-table 0.21.0 → 0.22.2

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 (44) hide show
  1. package/README.md +90 -18
  2. package/dist/MaterialReactTable.d.ts +159 -153
  3. package/dist/body/MRT_TableBody.d.ts +3 -2
  4. package/dist/body/MRT_TableBodyCell.d.ts +3 -2
  5. package/dist/body/MRT_TableBodyRow.d.ts +3 -2
  6. package/dist/buttons/MRT_GrabHandleButton.d.ts +3 -2
  7. package/dist/filtersFns.d.ts +22 -22
  8. package/dist/head/MRT_TableHead.d.ts +4 -2
  9. package/dist/head/MRT_TableHeadCell.d.ts +4 -6
  10. package/dist/head/MRT_TableHeadRow.d.ts +4 -2
  11. package/dist/material-react-table.cjs.development.js +189 -4422
  12. package/dist/material-react-table.cjs.development.js.map +1 -1
  13. package/dist/material-react-table.cjs.production.min.js +1 -1
  14. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  15. package/dist/material-react-table.esm.js +152 -148
  16. package/dist/material-react-table.esm.js.map +1 -1
  17. package/dist/menus/MRT_ShowHideColumnsMenuItems.d.ts +3 -1
  18. package/dist/sortingFns.d.ts +2 -2
  19. package/dist/table/MRT_TableRoot.d.ts +1 -1
  20. package/dist/utils.d.ts +7 -7
  21. package/package.json +6 -8
  22. package/src/MaterialReactTable.tsx +189 -174
  23. package/src/body/MRT_TableBody.tsx +9 -3
  24. package/src/body/MRT_TableBodyCell.tsx +15 -17
  25. package/src/body/MRT_TableBodyRow.tsx +10 -3
  26. package/src/buttons/MRT_CopyButton.tsx +0 -1
  27. package/src/buttons/MRT_GrabHandleButton.tsx +12 -5
  28. package/src/buttons/MRT_ToggleFiltersButton.tsx +3 -3
  29. package/src/filtersFns.ts +24 -24
  30. package/src/head/MRT_TableHead.tsx +11 -3
  31. package/src/head/MRT_TableHeadCell.tsx +49 -20
  32. package/src/head/MRT_TableHeadCellFilterContainer.tsx +2 -2
  33. package/src/head/MRT_TableHeadCellResizeHandle.tsx +2 -2
  34. package/src/head/MRT_TableHeadRow.tsx +25 -20
  35. package/src/menus/MRT_ShowHideColumnsMenu.tsx +6 -1
  36. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +54 -27
  37. package/src/sortingFns.ts +6 -6
  38. package/src/table/MRT_Table.tsx +17 -4
  39. package/src/table/MRT_TableContainer.tsx +1 -1
  40. package/src/table/MRT_TablePaper.tsx +21 -25
  41. package/src/table/MRT_TableRoot.tsx +12 -13
  42. package/src/utils.ts +28 -22
  43. package/dist/head/MRT_DraggableTableHeadCell.d.ts +0 -8
  44. package/src/head/MRT_DraggableTableHeadCell.tsx +0 -43
@@ -1,10 +1,8 @@
1
- import React, { useMemo, forwardRef, useState, useCallback, Fragment, useLayoutEffect, useEffect } from 'react';
1
+ import React, { useMemo, useState, useCallback, Fragment, useLayoutEffect, useEffect } from 'react';
2
2
  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';
3
3
  import { filterFns, sortingFns, useReactTable, getCoreRowModel, getExpandedRowModel, getFacetedRowModel, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel } from '@tanstack/react-table';
4
4
  import { Tooltip, IconButton, Menu, MenuItem, Box, FormControlLabel, Switch, Typography, Button, Divider, ListItemIcon, Checkbox, debounce, Collapse, TextField, InputAdornment, TablePagination, Chip, Alert, AlertTitle, LinearProgress, useMediaQuery, Toolbar, lighten, alpha, Grow, TableSortLabel, TableCell, TableRow, TableHead, darken, Skeleton, TableBody, TableFooter, Table, TableContainer, Paper, Dialog } from '@mui/material';
5
- import { useDrop, useDrag, DndProvider } from 'react-dnd';
6
5
  import { rankItem, rankings, compareItems } from '@tanstack/match-sorter-utils';
7
- import { HTML5Backend } from 'react-dnd-html5-backend';
8
6
  import { useVirtual } from 'react-virtual';
9
7
 
10
8
  function _extends() {
@@ -415,8 +413,10 @@ var MRT_ColumnPinningButtons = function MRT_ColumnPinningButtons(_ref) {
415
413
  })))));
416
414
  };
417
415
 
418
- var MRT_GrabHandleButton = /*#__PURE__*/forwardRef(function (_ref, ref) {
419
- var table = _ref.table;
416
+ var MRT_GrabHandleButton = function MRT_GrabHandleButton(_ref) {
417
+ var handleDragStart = _ref.handleDragStart,
418
+ handleDragEnd = _ref.handleDragEnd,
419
+ table = _ref.table;
420
420
  var _table$options = table.options,
421
421
  DragHandleIcon = _table$options.icons.DragHandleIcon,
422
422
  localization = _table$options.localization;
@@ -428,7 +428,9 @@ var MRT_GrabHandleButton = /*#__PURE__*/forwardRef(function (_ref, ref) {
428
428
  title: localization.grab
429
429
  }, React.createElement(IconButton, {
430
430
  disableRipple: true,
431
- ref: ref,
431
+ draggable: "true",
432
+ onDragStart: handleDragStart,
433
+ onDragEnd: handleDragEnd,
432
434
  size: "small",
433
435
  sx: {
434
436
  cursor: 'grab',
@@ -445,7 +447,7 @@ var MRT_GrabHandleButton = /*#__PURE__*/forwardRef(function (_ref, ref) {
445
447
  }
446
448
  }
447
449
  }, React.createElement(DragHandleIcon, null)));
448
- });
450
+ };
449
451
 
450
452
  var fuzzy = function fuzzy(row, columnId, filterValue, addMeta) {
451
453
  var itemRank = rankItem(row.getValue(columnId), filterValue, {
@@ -664,6 +666,8 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
664
666
  var _column$columns2;
665
667
 
666
668
  var allColumns = _ref.allColumns,
669
+ currentHoveredColumn = _ref.currentHoveredColumn,
670
+ setCurrentHoveredColumn = _ref.setCurrentHoveredColumn,
667
671
  column = _ref.column,
668
672
  isSubMenu = _ref.isSubMenu,
669
673
  table = _ref.table;
@@ -680,30 +684,6 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
680
684
 
681
685
  var columnDef = column.columnDef;
682
686
  var columnDefType = columnDef.columnDefType;
683
-
684
- var _useDrop = useDrop({
685
- accept: 'column',
686
- drop: function drop(movingColumn) {
687
- var newColumnOrder = reorderColumn(movingColumn, column, columnOrder);
688
- setColumnOrder(newColumnOrder);
689
- }
690
- }),
691
- dropRef = _useDrop[1];
692
-
693
- var _useDrag = useDrag({
694
- collect: function collect(monitor) {
695
- return {
696
- isDragging: monitor.isDragging()
697
- };
698
- },
699
- item: function item() {
700
- return column;
701
- },
702
- type: 'column'
703
- }),
704
- dragRef = _useDrag[1],
705
- previewRef = _useDrag[2];
706
-
707
687
  var switchChecked = columnDefType !== 'group' && column.getIsVisible() || columnDefType === 'group' && column.getLeafColumns().some(function (col) {
708
688
  return col.getIsVisible();
709
689
  });
@@ -720,32 +700,64 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
720
700
  }
721
701
  };
722
702
 
703
+ var menuItemRef = React.useRef(null);
704
+
705
+ var _useState = useState(false),
706
+ isDragging = _useState[0],
707
+ setIsDragging = _useState[1];
708
+
709
+ var handleDragStart = function handleDragStart(e) {
710
+ setIsDragging(true);
711
+ e.dataTransfer.setDragImage(menuItemRef.current, 0, 0);
712
+ };
713
+
714
+ var handleDragEnd = function handleDragEnd(_e) {
715
+ setIsDragging(false);
716
+ setCurrentHoveredColumn(null);
717
+
718
+ if (currentHoveredColumn) {
719
+ setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));
720
+ }
721
+ };
722
+
723
+ var handleDragEnter = function handleDragEnter(_e) {
724
+ if (!isDragging) {
725
+ setCurrentHoveredColumn(column);
726
+ }
727
+ };
728
+
723
729
  return React.createElement(React.Fragment, null, React.createElement(MenuItem, {
724
- ref: columnDefType === 'data' ? dropRef : undefined,
725
- sx: {
726
- alignItems: 'center',
727
- justifyContent: 'flex-start',
728
- my: 0,
729
- pl: (column.depth + 0.5) * 2 + "rem",
730
- py: '6px'
730
+ disableRipple: enableColumnOrdering,
731
+ ref: menuItemRef,
732
+ onDragEnter: handleDragEnter,
733
+ sx: function sx(theme) {
734
+ return {
735
+ alignItems: 'center',
736
+ justifyContent: 'flex-start',
737
+ my: 0,
738
+ opacity: isDragging ? 0.5 : 1,
739
+ outline: isDragging ? "1px dashed " + theme.palette.divider : (currentHoveredColumn == null ? void 0 : currentHoveredColumn.id) === column.id ? "2px dashed " + theme.palette.primary.main : 'none',
740
+ pl: (column.depth + 0.5) * 2 + "rem",
741
+ py: '6px'
742
+ };
731
743
  }
732
744
  }, React.createElement(Box, {
733
- ref: previewRef,
734
745
  sx: {
735
746
  display: 'flex',
736
747
  flexWrap: 'nowrap',
737
748
  gap: '8px'
738
749
  }
739
- }, columnDefType !== 'group' && enableColumnOrdering && !allColumns.some(function (col) {
750
+ }, !isSubMenu && columnDefType !== 'group' && enableColumnOrdering && !allColumns.some(function (col) {
740
751
  return col.columnDef.columnDefType === 'group';
741
752
  }) && (columnDef.enableColumnOrdering !== false ? React.createElement(MRT_GrabHandleButton, {
742
- ref: dragRef,
753
+ handleDragEnd: handleDragEnd,
754
+ handleDragStart: handleDragStart,
743
755
  table: table
744
756
  }) : React.createElement(Box, {
745
757
  sx: {
746
758
  width: '28px'
747
759
  }
748
- })), enablePinning && !isSubMenu && (column.getCanPin() ? React.createElement(MRT_ColumnPinningButtons, {
760
+ })), !isSubMenu && enablePinning && (column.getCanPin() ? React.createElement(MRT_ColumnPinningButtons, {
749
761
  column: column,
750
762
  table: table
751
763
  }) : React.createElement(Box, {
@@ -780,9 +792,11 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
780
792
  }, columnDef.header))), (_column$columns2 = column.columns) == null ? void 0 : _column$columns2.map(function (c, i) {
781
793
  return React.createElement(MRT_ShowHideColumnsMenuItems, {
782
794
  allColumns: allColumns,
783
- key: i + "-" + c.id,
784
795
  column: c,
796
+ currentHoveredColumn: currentHoveredColumn,
785
797
  isSubMenu: isSubMenu,
798
+ key: i + "-" + c.id,
799
+ setCurrentHoveredColumn: setCurrentHoveredColumn,
786
800
  table: table
787
801
  });
788
802
  }));
@@ -836,6 +850,11 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
836
850
 
837
851
  return columns;
838
852
  }, [columnOrder, columnPinning, getAllColumns(), getCenterLeafColumns(), getLeftLeafColumns(), getRightLeafColumns()]);
853
+
854
+ var _useState = useState(null),
855
+ currentHoveredColumn = _useState[0],
856
+ setCurrentHoveredColumn = _useState[1];
857
+
839
858
  return React.createElement(Menu, {
840
859
  anchorEl: anchorEl,
841
860
  open: !!anchorEl,
@@ -873,8 +892,10 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
873
892
  return React.createElement(MRT_ShowHideColumnsMenuItems, {
874
893
  allColumns: allColumns,
875
894
  column: column,
895
+ currentHoveredColumn: currentHoveredColumn,
876
896
  isSubMenu: isSubMenu,
877
897
  key: index + "-" + column.id,
898
+ setCurrentHoveredColumn: setCurrentHoveredColumn,
878
899
  table: table
879
900
  });
880
901
  }));
@@ -1477,10 +1498,10 @@ var MRT_ToggleFiltersButton = function MRT_ToggleFiltersButton(_ref) {
1477
1498
  setShowFilters = table.setShowFilters;
1478
1499
 
1479
1500
  var _getState = getState(),
1480
- showFilters = _getState.showFilters;
1501
+ showColumnFilters = _getState.showColumnFilters;
1481
1502
 
1482
1503
  var handleToggleShowFilters = function handleToggleShowFilters() {
1483
- setShowFilters(!showFilters);
1504
+ setShowFilters(!showColumnFilters);
1484
1505
  };
1485
1506
 
1486
1507
  return React.createElement(Tooltip, {
@@ -1489,7 +1510,7 @@ var MRT_ToggleFiltersButton = function MRT_ToggleFiltersButton(_ref) {
1489
1510
  }, React.createElement(IconButton, Object.assign({
1490
1511
  "aria-label": localization.showHideFilters,
1491
1512
  onClick: handleToggleShowFilters
1492
- }, rest), showFilters ? React.createElement(FilterListOffIcon, null) : React.createElement(FilterListIcon, null)));
1513
+ }, rest), showColumnFilters ? React.createElement(FilterListOffIcon, null) : React.createElement(FilterListIcon, null)));
1493
1514
  };
1494
1515
 
1495
1516
  var _excluded$4 = ["table"];
@@ -2204,11 +2225,11 @@ var MRT_TableHeadCellFilterContainer = function MRT_TableHeadCellFilterContainer
2204
2225
 
2205
2226
  var _getState = getState(),
2206
2227
  currentFilterFns = _getState.currentFilterFns,
2207
- showFilters = _getState.showFilters;
2228
+ showColumnFilters = _getState.showColumnFilters;
2208
2229
 
2209
2230
  var column = header.column;
2210
2231
  return React.createElement(Collapse, {
2211
- "in": showFilters,
2232
+ "in": showColumnFilters,
2212
2233
  mountOnEnter: true,
2213
2234
  unmountOnExit: true
2214
2235
  }, currentFilterFns[column.id] === 'between' ? React.createElement(MRT_FilterRangeFields, {
@@ -2272,7 +2293,7 @@ var MRT_TableHeadCellResizeHandle = function MRT_TableHeadCellResizeHandle(_ref)
2272
2293
 
2273
2294
  var _getState = getState(),
2274
2295
  density = _getState.density,
2275
- showFilters = _getState.showFilters;
2296
+ showColumnFilters = _getState.showColumnFilters;
2276
2297
 
2277
2298
  var column = header.column;
2278
2299
  var columnDef = column.columnDef;
@@ -2288,7 +2309,7 @@ var MRT_TableHeadCellResizeHandle = function MRT_TableHeadCellResizeHandle(_ref)
2288
2309
  borderRadius: '2px',
2289
2310
  borderRightWidth: '2px',
2290
2311
  cursor: 'col-resize',
2291
- height: showFilters && columnDefType === 'data' ? '4rem' : '2rem',
2312
+ height: showColumnFilters && columnDefType === 'data' ? '4rem' : '2rem',
2292
2313
  mr: density === 'compact' ? '-0.5rem' : '-1rem',
2293
2314
  opacity: 0.8,
2294
2315
  position: 'absolute',
@@ -2396,12 +2417,10 @@ var MRT_TableHeadCellColumnActionsButton = function MRT_TableHeadCellColumnActio
2396
2417
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2397
2418
  var _ref2, _columnDef$header$len, _columnDef$header;
2398
2419
 
2399
- var dragRef = _ref.dragRef,
2400
- dropRef = _ref.dropRef,
2420
+ var currentHoveredColumn = _ref.currentHoveredColumn,
2421
+ setCurrentHoveredColumn = _ref.setCurrentHoveredColumn,
2401
2422
  header = _ref.header,
2402
- table = _ref.table,
2403
- isDragging = _ref.isDragging,
2404
- previewRef = _ref.previewRef;
2423
+ table = _ref.table;
2405
2424
  var getState = table.getState,
2406
2425
  _table$options = table.options,
2407
2426
  enableColumnActions = _table$options.enableColumnActions,
@@ -2409,11 +2428,12 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2409
2428
  enableColumnResizing = _table$options.enableColumnResizing,
2410
2429
  enableGrouping = _table$options.enableGrouping,
2411
2430
  enableMultiSort = _table$options.enableMultiSort,
2412
- muiTableHeadCellProps = _table$options.muiTableHeadCellProps;
2431
+ muiTableHeadCellProps = _table$options.muiTableHeadCellProps,
2432
+ setColumnOrder = table.setColumnOrder;
2413
2433
 
2414
2434
  var _getState = getState(),
2415
- density = _getState.density,
2416
- showFilters = _getState.showFilters;
2435
+ columnOrder = _getState.columnOrder,
2436
+ density = _getState.density;
2417
2437
 
2418
2438
  var column = header.column;
2419
2439
  var columnDef = column.columnDef;
@@ -2446,30 +2466,56 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2446
2466
  return (table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150;
2447
2467
  };
2448
2468
 
2469
+ var tableHeadCellRef = React.useRef(null);
2470
+
2471
+ var _useState = useState(false),
2472
+ isDragging = _useState[0],
2473
+ setIsDragging = _useState[1];
2474
+
2475
+ var handleDragStart = function handleDragStart(e) {
2476
+ setIsDragging(true);
2477
+ e.dataTransfer.setDragImage(tableHeadCellRef.current, 0, 0);
2478
+ };
2479
+
2480
+ var handleDragEnd = function handleDragEnd(_e) {
2481
+ setIsDragging(false);
2482
+ setCurrentHoveredColumn(null);
2483
+
2484
+ if (currentHoveredColumn) {
2485
+ setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));
2486
+ }
2487
+ };
2488
+
2489
+ var handleDragEnter = function handleDragEnter(_e) {
2490
+ setCurrentHoveredColumn(columnDefType === 'data' ? column : null);
2491
+ };
2492
+
2449
2493
  return React.createElement(TableCell, Object.assign({
2450
2494
  align: columnDefType === 'group' ? 'center' : 'left',
2451
- colSpan: header.colSpan
2495
+ colSpan: header.colSpan,
2496
+ onDragEnter: handleDragEnter,
2497
+ ref: tableHeadCellRef
2452
2498
  }, tableCellProps, {
2453
- ref: columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined,
2454
2499
  sx: function sx(theme) {
2455
2500
  var _columnDef$minSize;
2456
2501
 
2457
2502
  return _extends({
2458
2503
  backgroundColor: column.getIsPinned() && columnDefType !== 'group' ? alpha(lighten(theme.palette.background["default"], 0.04), 0.95) : 'inherit',
2459
2504
  backgroundImage: 'inherit',
2505
+ border: isDragging ? "2px dashed " + theme.palette.divider : (currentHoveredColumn == null ? void 0 : currentHoveredColumn.id) === column.id ? "2px dashed " + theme.palette.primary.main : undefined,
2460
2506
  boxShadow: getIsLastLeftPinnedColumn() ? "4px 0 4px -2px " + alpha(theme.palette.common.black, 0.1) : getIsFirstRightPinnedColumn() ? "-4px 0 4px -2px " + alpha(theme.palette.common.black, 0.1) : undefined,
2461
2507
  fontWeight: 'bold',
2462
- height: '100%',
2463
2508
  left: column.getIsPinned() === 'left' ? column.getStart('left') + "px" : undefined,
2464
2509
  overflow: 'visible',
2510
+ opacity: isDragging ? 0.5 : 1,
2465
2511
  p: density === 'compact' ? columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : density === 'comfortable' ? columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem' : columnDefType === 'display' ? '1rem 1.25rem' : '1.5rem',
2466
2512
  pb: columnDefType === 'display' ? 0 : undefined,
2467
2513
  position: column.getIsPinned() && columnDefType !== 'group' ? 'sticky' : undefined,
2468
- pt: columnDefType !== 'data' ? 0 : density === 'compact' ? '0.25' : density === 'comfortable' ? '.75rem' : '1.25rem',
2514
+ pt: columnDefType === 'group' ? 0 : density === 'compact' ? '0.25' : density === 'comfortable' ? '.75rem' : '1.25rem',
2469
2515
  right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
2470
2516
  transition: "all " + (enableColumnResizing ? 0 : '0.2s') + " ease-in-out",
2471
2517
  userSelect: enableMultiSort && column.getCanSort() ? 'none' : undefined,
2472
- verticalAlign: columnDefType === 'display' && showFilters ? 'center' : 'text-top',
2518
+ verticalAlign: 'text-top',
2473
2519
  zIndex: column.getIsResizing() ? 3 : column.getIsPinned() && columnDefType !== 'group' ? 2 : 1
2474
2520
  }, tableCellProps == null ? void 0 : tableCellProps.sx, {
2475
2521
  maxWidth: "min(" + column.getSize() + "px, fit-content)",
@@ -2478,7 +2524,6 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2478
2524
  });
2479
2525
  }
2480
2526
  }), header.isPlaceholder ? null : columnDefType === 'display' ? headerElement : React.createElement(Box, {
2481
- ref: previewRef,
2482
2527
  sx: {
2483
2528
  alignItems: 'flex-start',
2484
2529
  display: 'flex',
@@ -2507,7 +2552,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2507
2552
  whiteSpace: 'nowrap'
2508
2553
  }
2509
2554
  }, columnDefType === 'data' && (enableColumnOrdering && columnDef.enableColumnOrdering !== false || enableGrouping && columnDef.enableGrouping !== false) && React.createElement(MRT_GrabHandleButton, {
2510
- ref: dragRef,
2555
+ handleDragStart: handleDragStart,
2556
+ handleDragEnd: handleDragEnd,
2511
2557
  table: table
2512
2558
  }), (enableColumnActions || columnDef.enableColumnActions) && columnDef.enableColumnActions !== false && columnDefType !== 'group' && React.createElement(MRT_TableHeadCellColumnActionsButton, {
2513
2559
  header: header,
@@ -2521,58 +2567,12 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2521
2567
  }));
2522
2568
  };
2523
2569
 
2524
- var MRT_DraggableTableHeadCell = function MRT_DraggableTableHeadCell(_ref) {
2525
- var header = _ref.header,
2526
- table = _ref.table;
2527
- var getState = table.getState,
2528
- setColumnOrder = table.setColumnOrder;
2529
-
2530
- var _getState = getState(),
2531
- columnOrder = _getState.columnOrder;
2532
-
2533
- var column = header.column;
2534
-
2535
- var _useDrop = useDrop({
2536
- accept: 'column',
2537
- drop: function drop(movingColumn) {
2538
- var newColumnOrder = reorderColumn(movingColumn, column, columnOrder);
2539
- setColumnOrder(newColumnOrder);
2540
- }
2541
- }),
2542
- dropRef = _useDrop[1];
2543
-
2544
- var _useDrag = useDrag({
2545
- collect: function collect(monitor) {
2546
- return {
2547
- isDragging: monitor.isDragging()
2548
- };
2549
- },
2550
- item: function item() {
2551
- return column;
2552
- },
2553
- type: 'column'
2554
- }),
2555
- isDragging = _useDrag[0].isDragging,
2556
- dragRef = _useDrag[1],
2557
- previewRef = _useDrag[2];
2558
-
2559
- return React.createElement(MRT_TableHeadCell, {
2560
- dragRef: dragRef,
2561
- dropRef: dropRef,
2562
- header: header,
2563
- isDragging: isDragging,
2564
- previewRef: previewRef,
2565
- table: table
2566
- });
2567
- };
2568
-
2569
2570
  var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
2570
- var headerGroup = _ref.headerGroup,
2571
+ var currentHoveredColumn = _ref.currentHoveredColumn,
2572
+ setCurrentHoveredColumn = _ref.setCurrentHoveredColumn,
2573
+ headerGroup = _ref.headerGroup,
2571
2574
  table = _ref.table;
2572
- var _table$options = table.options,
2573
- enableColumnOrdering = _table$options.enableColumnOrdering,
2574
- enableGrouping = _table$options.enableGrouping,
2575
- muiTableHeadRowProps = _table$options.muiTableHeadRowProps;
2575
+ var muiTableHeadRowProps = table.options.muiTableHeadRowProps;
2576
2576
  var tableRowProps = muiTableHeadRowProps instanceof Function ? muiTableHeadRowProps({
2577
2577
  headerGroup: headerGroup,
2578
2578
  table: table
@@ -2585,11 +2585,9 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
2585
2585
  }, tableRowProps == null ? void 0 : tableRowProps.sx);
2586
2586
  }
2587
2587
  }), headerGroup.headers.map(function (header, index) {
2588
- return enableColumnOrdering || enableGrouping ? React.createElement(MRT_DraggableTableHeadCell, {
2589
- header: header,
2590
- key: header.id || index,
2591
- table: table
2592
- }) : React.createElement(MRT_TableHeadCell, {
2588
+ return React.createElement(MRT_TableHeadCell, {
2589
+ currentHoveredColumn: currentHoveredColumn,
2590
+ setCurrentHoveredColumn: setCurrentHoveredColumn,
2593
2591
  header: header,
2594
2592
  key: header.id || index,
2595
2593
  table: table
@@ -2598,7 +2596,9 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
2598
2596
  };
2599
2597
 
2600
2598
  var MRT_TableHead = function MRT_TableHead(_ref) {
2601
- var table = _ref.table;
2599
+ var currentHoveredColumn = _ref.currentHoveredColumn,
2600
+ setCurrentHoveredColumn = _ref.setCurrentHoveredColumn,
2601
+ table = _ref.table;
2602
2602
  var getHeaderGroups = table.getHeaderGroups,
2603
2603
  muiTableHeadProps = table.options.muiTableHeadProps;
2604
2604
  var tableHeadProps = muiTableHeadProps instanceof Function ? muiTableHeadProps({
@@ -2606,6 +2606,8 @@ var MRT_TableHead = function MRT_TableHead(_ref) {
2606
2606
  }) : muiTableHeadProps;
2607
2607
  return React.createElement(TableHead, Object.assign({}, tableHeadProps), getHeaderGroups().map(function (headerGroup) {
2608
2608
  return React.createElement(MRT_TableHeadRow, {
2609
+ currentHoveredColumn: currentHoveredColumn,
2610
+ setCurrentHoveredColumn: setCurrentHoveredColumn,
2609
2611
  headerGroup: headerGroup,
2610
2612
  key: headerGroup.id,
2611
2613
  table: table
@@ -2739,7 +2741,6 @@ var MRT_CopyButton = function MRT_CopyButton(_ref) {
2739
2741
  placement: "top",
2740
2742
  title: copied ? localization.copiedToClipboard : localization.clickToCopy
2741
2743
  }, React.createElement(Button, Object.assign({
2742
- "aria-label": localization.clickToCopy,
2743
2744
  onClick: function onClick() {
2744
2745
  return handleCopy(cell.getValue());
2745
2746
  },
@@ -2769,23 +2770,21 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2769
2770
  var cell = _ref.cell,
2770
2771
  enableHover = _ref.enableHover,
2771
2772
  rowIndex = _ref.rowIndex,
2773
+ setCurrentHoveredColumn = _ref.setCurrentHoveredColumn,
2772
2774
  table = _ref.table;
2773
2775
  var getState = table.getState,
2774
2776
  _table$options = table.options,
2775
2777
  editingMode = _table$options.editingMode,
2776
2778
  enableClickToCopy = _table$options.enableClickToCopy,
2777
- enableColumnOrdering = _table$options.enableColumnOrdering,
2778
2779
  enableEditing = _table$options.enableEditing,
2779
2780
  enableRowNumbers = _table$options.enableRowNumbers,
2780
2781
  muiTableBodyCellProps = _table$options.muiTableBodyCellProps,
2781
2782
  muiTableBodyCellSkeletonProps = _table$options.muiTableBodyCellSkeletonProps,
2782
2783
  rowNumberMode = _table$options.rowNumberMode,
2783
2784
  tableId = _table$options.tableId,
2784
- setColumnOrder = table.setColumnOrder,
2785
2785
  setCurrentEditingCell = table.setCurrentEditingCell;
2786
2786
 
2787
2787
  var _getState = getState(),
2788
- columnOrder = _getState.columnOrder,
2789
2788
  currentEditingCell = _getState.currentEditingCell,
2790
2789
  currentEditingRow = _getState.currentEditingRow,
2791
2790
  density = _getState.density,
@@ -2796,16 +2795,6 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2796
2795
  row = cell.row;
2797
2796
  var columnDef = column.columnDef;
2798
2797
  var columnDefType = columnDef.columnDefType;
2799
-
2800
- var _useDrop = useDrop({
2801
- accept: 'column',
2802
- drop: function drop(movingColumn) {
2803
- var newColumnOrder = reorderColumn(movingColumn, column, columnOrder);
2804
- setColumnOrder(newColumnOrder);
2805
- }
2806
- }),
2807
- dropRef = _useDrop[1];
2808
-
2809
2798
  var mTableCellBodyProps = muiTableBodyCellProps instanceof Function ? muiTableBodyCellProps({
2810
2799
  cell: cell,
2811
2800
  table: table
@@ -2849,10 +2838,14 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2849
2838
  return (table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150;
2850
2839
  };
2851
2840
 
2841
+ var handleDragEnter = function handleDragEnter(_e) {
2842
+ setCurrentHoveredColumn(columnDefType === 'data' ? column : null);
2843
+ };
2844
+
2852
2845
  return React.createElement(TableCell, Object.assign({
2853
- onDoubleClick: handleDoubleClick
2846
+ onDoubleClick: handleDoubleClick,
2847
+ onDragEnter: handleDragEnter
2854
2848
  }, tableCellProps, {
2855
- ref: columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined,
2856
2849
  sx: function sx(theme) {
2857
2850
  var _columnDef$minSize;
2858
2851
 
@@ -2940,6 +2933,7 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2940
2933
 
2941
2934
  var row = _ref.row,
2942
2935
  rowIndex = _ref.rowIndex,
2936
+ setCurrentHoveredColumn = _ref.setCurrentHoveredColumn,
2943
2937
  table = _ref.table;
2944
2938
  var getIsSomeColumnsPinned = table.getIsSomeColumnsPinned,
2945
2939
  _table$options = table.options,
@@ -2968,6 +2962,7 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2968
2962
  key: cell.id,
2969
2963
  enableHover: (tableRowProps == null ? void 0 : tableRowProps.hover) !== false,
2970
2964
  rowIndex: rowIndex,
2965
+ setCurrentHoveredColumn: setCurrentHoveredColumn,
2971
2966
  table: table
2972
2967
  });
2973
2968
  })), renderDetailPanel && !row.getIsGrouped() && React.createElement(MRT_TableDetailPanel, {
@@ -2977,7 +2972,8 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2977
2972
  };
2978
2973
 
2979
2974
  var MRT_TableBody = function MRT_TableBody(_ref) {
2980
- var table = _ref.table,
2975
+ var setCurrentHoveredColumn = _ref.setCurrentHoveredColumn,
2976
+ table = _ref.table,
2981
2977
  tableContainerRef = _ref.tableContainerRef;
2982
2978
  var getRowModel = table.getRowModel,
2983
2979
  getPrePaginationRowModel = table.getPrePaginationRowModel,
@@ -3043,6 +3039,7 @@ var MRT_TableBody = function MRT_TableBody(_ref) {
3043
3039
  key: row.id,
3044
3040
  row: row,
3045
3041
  rowIndex: enableRowVirtualization ? rowOrVirtualRow.index : rowIndex,
3042
+ setCurrentHoveredColumn: setCurrentHoveredColumn,
3046
3043
  table: table
3047
3044
  });
3048
3045
  }), enableRowVirtualization && paddingBottom > 0 && React.createElement("tr", null, React.createElement("td", {
@@ -3160,6 +3157,11 @@ var MRT_Table = function MRT_Table(_ref) {
3160
3157
  var tableProps = muiTableProps instanceof Function ? muiTableProps({
3161
3158
  table: table
3162
3159
  }) : muiTableProps;
3160
+
3161
+ var _useState = useState(null),
3162
+ currentHoveredColumn = _useState[0],
3163
+ setCurrentHoveredColumn = _useState[1];
3164
+
3163
3165
  return React.createElement(Table, Object.assign({
3164
3166
  stickyHeader: enableStickyHeader || enableRowVirtualization || isFullScreen
3165
3167
  }, tableProps, {
@@ -3167,8 +3169,11 @@ var MRT_Table = function MRT_Table(_ref) {
3167
3169
  tableLayout: enableColumnResizing || enableRowVirtualization ? 'fixed' : 'auto'
3168
3170
  }, tableProps == null ? void 0 : tableProps.sx)
3169
3171
  }), enableTableHead && React.createElement(MRT_TableHead, {
3172
+ currentHoveredColumn: currentHoveredColumn,
3173
+ setCurrentHoveredColumn: setCurrentHoveredColumn,
3170
3174
  table: table
3171
3175
  }), React.createElement(MRT_TableBody, {
3176
+ setCurrentHoveredColumn: setCurrentHoveredColumn,
3172
3177
  tableContainerRef: tableContainerRef,
3173
3178
  table: table
3174
3179
  }), enableTableFooter && React.createElement(MRT_TableFooter, {
@@ -3204,8 +3209,9 @@ var MRT_TableContainer = function MRT_TableContainer(_ref) {
3204
3209
  setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);
3205
3210
  });
3206
3211
  var tableContainerRef = React.useRef(null);
3207
- return React.createElement(TableContainer, Object.assign({}, tableContainerProps, {
3208
- ref: tableContainerRef,
3212
+ return React.createElement(TableContainer, Object.assign({
3213
+ ref: tableContainerRef
3214
+ }, tableContainerProps, {
3209
3215
  sx: _extends({
3210
3216
  maxWidth: '100%',
3211
3217
  maxHeight: enableStickyHeader || enableRowVirtualization ? "clamp(350px, calc(100vh - " + totalToolbarHeight + "px), 9999px)" : undefined,
@@ -3243,9 +3249,7 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
3243
3249
  var tablePaperProps = muiTablePaperProps instanceof Function ? muiTablePaperProps({
3244
3250
  table: table
3245
3251
  }) : muiTablePaperProps;
3246
- return React.createElement(DndProvider, {
3247
- backend: HTML5Backend
3248
- }, React.createElement(Paper, Object.assign({
3252
+ return React.createElement(Paper, Object.assign({
3249
3253
  elevation: 2
3250
3254
  }, tablePaperProps, {
3251
3255
  sx: _extends({
@@ -3265,11 +3269,11 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
3265
3269
  table: table
3266
3270
  }), enableToolbarBottom && React.createElement(MRT_ToolbarBottom, {
3267
3271
  table: table
3268
- })));
3272
+ }));
3269
3273
  };
3270
3274
 
3271
3275
  var MRT_TableRoot = function MRT_TableRoot(props) {
3272
- var _initialState$columnO, _initialState$current, _initialState$current2, _initialState$density, _initialState$isFullS, _props$initialState$s, _props$initialState2, _initialState$showFil, _initialState$showGlo, _props$state3, _props$state4, _MRT_FilterFns$curren, _props$onCurrentEditi, _props$onCurrentEditi2, _props$onCurrentFilte, _props$onCurrentGloba, _props$onDensityChang, _props$onIsFullScreen, _props$onShowAlertBan, _props$onShowFiltersC, _props$onShowGlobalFi;
3276
+ var _initialState$columnO, _initialState$current, _initialState$current2, _initialState$density, _initialState$isFullS, _props$initialState$s, _props$initialState2, _initialState$showCol, _initialState$showGlo, _props$state3, _props$state4, _MRT_FilterFns$curren, _props$onCurrentEditi, _props$onCurrentEditi2, _props$onCurrentFilte, _props$onCurrentGloba, _props$onDensityChang, _props$onIsFullScreen, _props$onShowAlertBan, _props$onShowFiltersC, _props$onShowGlobalFi;
3273
3277
 
3274
3278
  var _useState = useState(props.tableId),
3275
3279
  tableId = _useState[0],
@@ -3312,8 +3316,8 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3312
3316
  showAlertBanner = _useState7[0],
3313
3317
  setShowAlertBanner = _useState7[1];
3314
3318
 
3315
- var _useState8 = useState((_initialState$showFil = initialState == null ? void 0 : initialState.showFilters) != null ? _initialState$showFil : false),
3316
- showFilters = _useState8[0],
3319
+ var _useState8 = useState((_initialState$showCol = initialState == null ? void 0 : initialState.showColumnFilters) != null ? _initialState$showCol : false),
3320
+ showColumnFilters = _useState8[0],
3317
3321
  setShowFilters = _useState8[1];
3318
3322
 
3319
3323
  var _useState9 = useState((_initialState$showGlo = initialState == null ? void 0 : initialState.showGlobalFilter) != null ? _initialState$showGlo : false),
@@ -3451,7 +3455,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3451
3455
  density: density,
3452
3456
  isFullScreen: isFullScreen,
3453
3457
  showAlertBanner: showAlertBanner,
3454
- showFilters: showFilters,
3458
+ showColumnFilters: showColumnFilters,
3455
3459
  showGlobalFilter: showGlobalFilter
3456
3460
  }, props.state),
3457
3461
  tableId: tableId