material-react-table 0.21.0 → 0.22.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.
@@ -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
  }));
@@ -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
@@ -2769,23 +2771,21 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2769
2771
  var cell = _ref.cell,
2770
2772
  enableHover = _ref.enableHover,
2771
2773
  rowIndex = _ref.rowIndex,
2774
+ setCurrentHoveredColumn = _ref.setCurrentHoveredColumn,
2772
2775
  table = _ref.table;
2773
2776
  var getState = table.getState,
2774
2777
  _table$options = table.options,
2775
2778
  editingMode = _table$options.editingMode,
2776
2779
  enableClickToCopy = _table$options.enableClickToCopy,
2777
- enableColumnOrdering = _table$options.enableColumnOrdering,
2778
2780
  enableEditing = _table$options.enableEditing,
2779
2781
  enableRowNumbers = _table$options.enableRowNumbers,
2780
2782
  muiTableBodyCellProps = _table$options.muiTableBodyCellProps,
2781
2783
  muiTableBodyCellSkeletonProps = _table$options.muiTableBodyCellSkeletonProps,
2782
2784
  rowNumberMode = _table$options.rowNumberMode,
2783
2785
  tableId = _table$options.tableId,
2784
- setColumnOrder = table.setColumnOrder,
2785
2786
  setCurrentEditingCell = table.setCurrentEditingCell;
2786
2787
 
2787
2788
  var _getState = getState(),
2788
- columnOrder = _getState.columnOrder,
2789
2789
  currentEditingCell = _getState.currentEditingCell,
2790
2790
  currentEditingRow = _getState.currentEditingRow,
2791
2791
  density = _getState.density,
@@ -2796,16 +2796,6 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2796
2796
  row = cell.row;
2797
2797
  var columnDef = column.columnDef;
2798
2798
  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
2799
  var mTableCellBodyProps = muiTableBodyCellProps instanceof Function ? muiTableBodyCellProps({
2810
2800
  cell: cell,
2811
2801
  table: table
@@ -2849,10 +2839,14 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2849
2839
  return (table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150;
2850
2840
  };
2851
2841
 
2842
+ var handleDragEnter = function handleDragEnter(_e) {
2843
+ setCurrentHoveredColumn(columnDefType === 'data' ? column : null);
2844
+ };
2845
+
2852
2846
  return React.createElement(TableCell, Object.assign({
2853
- onDoubleClick: handleDoubleClick
2847
+ onDoubleClick: handleDoubleClick,
2848
+ onDragEnter: handleDragEnter
2854
2849
  }, tableCellProps, {
2855
- ref: columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined,
2856
2850
  sx: function sx(theme) {
2857
2851
  var _columnDef$minSize;
2858
2852
 
@@ -2940,6 +2934,7 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2940
2934
 
2941
2935
  var row = _ref.row,
2942
2936
  rowIndex = _ref.rowIndex,
2937
+ setCurrentHoveredColumn = _ref.setCurrentHoveredColumn,
2943
2938
  table = _ref.table;
2944
2939
  var getIsSomeColumnsPinned = table.getIsSomeColumnsPinned,
2945
2940
  _table$options = table.options,
@@ -2968,6 +2963,7 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2968
2963
  key: cell.id,
2969
2964
  enableHover: (tableRowProps == null ? void 0 : tableRowProps.hover) !== false,
2970
2965
  rowIndex: rowIndex,
2966
+ setCurrentHoveredColumn: setCurrentHoveredColumn,
2971
2967
  table: table
2972
2968
  });
2973
2969
  })), renderDetailPanel && !row.getIsGrouped() && React.createElement(MRT_TableDetailPanel, {
@@ -2977,7 +2973,8 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2977
2973
  };
2978
2974
 
2979
2975
  var MRT_TableBody = function MRT_TableBody(_ref) {
2980
- var table = _ref.table,
2976
+ var setCurrentHoveredColumn = _ref.setCurrentHoveredColumn,
2977
+ table = _ref.table,
2981
2978
  tableContainerRef = _ref.tableContainerRef;
2982
2979
  var getRowModel = table.getRowModel,
2983
2980
  getPrePaginationRowModel = table.getPrePaginationRowModel,
@@ -3043,6 +3040,7 @@ var MRT_TableBody = function MRT_TableBody(_ref) {
3043
3040
  key: row.id,
3044
3041
  row: row,
3045
3042
  rowIndex: enableRowVirtualization ? rowOrVirtualRow.index : rowIndex,
3043
+ setCurrentHoveredColumn: setCurrentHoveredColumn,
3046
3044
  table: table
3047
3045
  });
3048
3046
  }), enableRowVirtualization && paddingBottom > 0 && React.createElement("tr", null, React.createElement("td", {
@@ -3160,6 +3158,11 @@ var MRT_Table = function MRT_Table(_ref) {
3160
3158
  var tableProps = muiTableProps instanceof Function ? muiTableProps({
3161
3159
  table: table
3162
3160
  }) : muiTableProps;
3161
+
3162
+ var _useState = useState(null),
3163
+ currentHoveredColumn = _useState[0],
3164
+ setCurrentHoveredColumn = _useState[1];
3165
+
3163
3166
  return React.createElement(Table, Object.assign({
3164
3167
  stickyHeader: enableStickyHeader || enableRowVirtualization || isFullScreen
3165
3168
  }, tableProps, {
@@ -3167,8 +3170,11 @@ var MRT_Table = function MRT_Table(_ref) {
3167
3170
  tableLayout: enableColumnResizing || enableRowVirtualization ? 'fixed' : 'auto'
3168
3171
  }, tableProps == null ? void 0 : tableProps.sx)
3169
3172
  }), enableTableHead && React.createElement(MRT_TableHead, {
3173
+ currentHoveredColumn: currentHoveredColumn,
3174
+ setCurrentHoveredColumn: setCurrentHoveredColumn,
3170
3175
  table: table
3171
3176
  }), React.createElement(MRT_TableBody, {
3177
+ setCurrentHoveredColumn: setCurrentHoveredColumn,
3172
3178
  tableContainerRef: tableContainerRef,
3173
3179
  table: table
3174
3180
  }), enableTableFooter && React.createElement(MRT_TableFooter, {
@@ -3204,8 +3210,9 @@ var MRT_TableContainer = function MRT_TableContainer(_ref) {
3204
3210
  setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);
3205
3211
  });
3206
3212
  var tableContainerRef = React.useRef(null);
3207
- return React.createElement(TableContainer, Object.assign({}, tableContainerProps, {
3208
- ref: tableContainerRef,
3213
+ return React.createElement(TableContainer, Object.assign({
3214
+ ref: tableContainerRef
3215
+ }, tableContainerProps, {
3209
3216
  sx: _extends({
3210
3217
  maxWidth: '100%',
3211
3218
  maxHeight: enableStickyHeader || enableRowVirtualization ? "clamp(350px, calc(100vh - " + totalToolbarHeight + "px), 9999px)" : undefined,
@@ -3243,9 +3250,7 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
3243
3250
  var tablePaperProps = muiTablePaperProps instanceof Function ? muiTablePaperProps({
3244
3251
  table: table
3245
3252
  }) : muiTablePaperProps;
3246
- return React.createElement(DndProvider, {
3247
- backend: HTML5Backend
3248
- }, React.createElement(Paper, Object.assign({
3253
+ return React.createElement(Paper, Object.assign({
3249
3254
  elevation: 2
3250
3255
  }, tablePaperProps, {
3251
3256
  sx: _extends({
@@ -3265,7 +3270,7 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
3265
3270
  table: table
3266
3271
  }), enableToolbarBottom && React.createElement(MRT_ToolbarBottom, {
3267
3272
  table: table
3268
- })));
3273
+ }));
3269
3274
  };
3270
3275
 
3271
3276
  var MRT_TableRoot = function MRT_TableRoot(props) {