material-react-table 0.8.12 → 0.8.15

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,6 +1,6 @@
1
- import React, { useMemo, useState, useCallback, Fragment, forwardRef, useLayoutEffect, useEffect } from 'react';
1
+ import React, { useMemo, forwardRef, useState, useCallback, Fragment, useLayoutEffect, useEffect } from 'react';
2
2
  import { ArrowRight, Cancel, CheckBox, ClearAll, Close, DensityMedium, DensitySmall, KeyboardDoubleArrowDown, DragHandle, DynamicFeed, Edit, ExpandLess, ExpandMore, FilterAlt, FilterAltOff, FilterList, FilterListOff, FullscreenExit, Fullscreen, MoreHoriz, MoreVert, PushPin, RestartAlt, Save, Search, SearchOff, Sort, ViewColumn, VisibilityOff } from '@mui/icons-material';
3
- import { createTable, useTableInstance, getCoreRowModel, getExpandedRowModel, getFacetedRowModel, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel } from '@tanstack/react-table';
3
+ import { createTable, getCoreRowModel, getExpandedRowModel, getFacetedRowModel, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, useTableInstance } from '@tanstack/react-table';
4
4
  import { Tooltip, IconButton, Menu, MenuItem, Box, FormControlLabel, Switch, Button, Divider, ListItemIcon, Checkbox, debounce, Collapse, TextField, InputAdornment, TablePagination, Chip, Alert, LinearProgress, useMediaQuery, Toolbar, lighten, alpha, TableSortLabel, TableCell, TableRow, TableHead, darken, Skeleton, TableBody, TableFooter, Table, TableContainer, Paper, Dialog, Grow } from '@mui/material';
5
5
  import { rankItem, rankings } from '@tanstack/match-sorter-utils';
6
6
  import { useDrop, useDrag, DndProvider } from 'react-dnd';
@@ -503,7 +503,8 @@ var MRT_ColumnPinningButtons = function MRT_ColumnPinningButtons(_ref) {
503
503
 
504
504
  return React.createElement(Box, {
505
505
  sx: {
506
- mr: '8px'
506
+ minWidth: '70px',
507
+ textAlign: 'center'
507
508
  }
508
509
  }, column.getIsPinned() ? React.createElement(Tooltip, {
509
510
  arrow: true,
@@ -540,20 +541,136 @@ var MRT_ColumnPinningButtons = function MRT_ColumnPinningButtons(_ref) {
540
541
  })))));
541
542
  };
542
543
 
544
+ var MRT_GrabHandleButton = /*#__PURE__*/forwardRef(function (_ref, ref) {
545
+ var tableInstance = _ref.tableInstance;
546
+ var _tableInstance$option = tableInstance.options,
547
+ DragHandleIcon = _tableInstance$option.icons.DragHandleIcon,
548
+ localization = _tableInstance$option.localization;
549
+ return React.createElement(Tooltip, {
550
+ arrow: true,
551
+ enterDelay: 1000,
552
+ enterNextDelay: 1000,
553
+ placement: "top",
554
+ title: localization.grab
555
+ }, React.createElement(IconButton, {
556
+ disableRipple: true,
557
+ ref: ref,
558
+ size: "small",
559
+ sx: {
560
+ cursor: 'grab',
561
+ m: 0,
562
+ opacity: 0.5,
563
+ p: '2px',
564
+ transition: 'all 0.2s ease-in-out',
565
+ '&:hover': {
566
+ backgroundColor: 'transparent',
567
+ opacity: 1
568
+ },
569
+ '&:active': {
570
+ cursor: 'grabbing'
571
+ }
572
+ }
573
+ }, React.createElement(DragHandleIcon, null)));
574
+ });
575
+
576
+ var getAllLeafColumnDefs = function getAllLeafColumnDefs(columns) {
577
+ var lowestLevelColumns = columns;
578
+ var currentCols = columns;
579
+
580
+ while (!!((_currentCols = currentCols) != null && _currentCols.length) && currentCols.some(function (col) {
581
+ return col.columns;
582
+ })) {
583
+ var _currentCols;
584
+
585
+ var nextCols = currentCols.filter(function (col) {
586
+ return !!col.columns;
587
+ }).map(function (col) {
588
+ return col.columns;
589
+ }).flat();
590
+
591
+ if (nextCols.every(function (col) {
592
+ return !(col != null && col.columns);
593
+ })) {
594
+ lowestLevelColumns = [].concat(lowestLevelColumns, nextCols);
595
+ }
596
+
597
+ currentCols = nextCols;
598
+ }
599
+
600
+ return lowestLevelColumns.filter(function (col) {
601
+ return !col.columns;
602
+ });
603
+ };
604
+ var createGroup = function createGroup(table, column, currentFilterFns) {
605
+ var _column$columns;
606
+
607
+ return table.createGroup(_extends({}, column, {
608
+ columns: column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.map == null ? void 0 : _column$columns.map(function (col) {
609
+ return col.columns ? createGroup(table, col, currentFilterFns) : createDataColumn(table, col, currentFilterFns);
610
+ })
611
+ }));
612
+ };
613
+ var createDataColumn = function createDataColumn(table, column, currentFilterFns) {
614
+ return (// @ts-ignore
615
+ table.createDataColumn(column.id, _extends({
616
+ filterFn: currentFilterFns[column.id] instanceof Function ? currentFilterFns[column.id] : defaultFilterFNs[currentFilterFns[column.id]]
617
+ }, column))
618
+ );
619
+ };
620
+ var createDisplayColumn = function createDisplayColumn(table, column) {
621
+ return table.createDisplayColumn(column);
622
+ };
623
+ var reorderColumn = function reorderColumn(movingColumn, receivingColumn, columnOrder, setColumnOrder) {
624
+ if (movingColumn.getCanPin()) {
625
+ movingColumn.pin(receivingColumn.getIsPinned());
626
+ }
627
+
628
+ columnOrder.splice(columnOrder.indexOf(receivingColumn.id), 0, columnOrder.splice(columnOrder.indexOf(movingColumn.id), 1)[0]);
629
+ setColumnOrder([].concat(columnOrder));
630
+ };
631
+
543
632
  var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
544
633
  var _column$columns2;
545
634
 
546
- var column = _ref.column,
635
+ var allColumns = _ref.allColumns,
636
+ column = _ref.column,
547
637
  isSubMenu = _ref.isSubMenu,
548
638
  tableInstance = _ref.tableInstance;
549
639
  var getState = tableInstance.getState,
550
- onToggleColumnVisibility = tableInstance.options.onToggleColumnVisibility;
640
+ _tableInstance$option = tableInstance.options,
641
+ enableColumnOrdering = _tableInstance$option.enableColumnOrdering,
642
+ onToggleColumnVisibility = _tableInstance$option.onToggleColumnVisibility,
643
+ setColumnOrder = tableInstance.setColumnOrder;
551
644
 
552
645
  var _getState = getState(),
646
+ columnOrder = _getState.columnOrder,
553
647
  columnVisibility = _getState.columnVisibility;
554
648
 
555
649
  var columnDef = column.columnDef,
556
650
  columnDefType = column.columnDefType;
651
+
652
+ var _useDrop = useDrop({
653
+ accept: 'column',
654
+ drop: function drop(movingColumn) {
655
+ return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
656
+ }
657
+ }),
658
+ dropRef = _useDrop[1];
659
+
660
+ var _useDrag = useDrag({
661
+ collect: function collect(monitor) {
662
+ return {
663
+ isDragging: monitor.isDragging()
664
+ };
665
+ },
666
+ item: function item() {
667
+ return column;
668
+ },
669
+ type: 'column'
670
+ }),
671
+ dragRef = _useDrag[1],
672
+ previewRef = _useDrag[2];
673
+
557
674
  var switchChecked = columnDefType !== 'group' && column.getIsVisible() || columnDefType === 'group' && column.getLeafColumns().some(function (col) {
558
675
  return col.getIsVisible();
559
676
  });
@@ -577,6 +694,7 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
577
694
  };
578
695
 
579
696
  return React.createElement(React.Fragment, null, React.createElement(MenuItem, {
697
+ ref: columnDefType === 'data' ? dropRef : undefined,
580
698
  sx: {
581
699
  alignItems: 'center',
582
700
  justifyContent: 'flex-start',
@@ -584,27 +702,40 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
584
702
  pl: (column.depth + 0.5) * 2 + "rem",
585
703
  py: '6px'
586
704
  }
587
- }, !isSubMenu && column.getCanPin() && React.createElement(MRT_ColumnPinningButtons, {
705
+ }, React.createElement(Box, {
706
+ ref: previewRef,
707
+ sx: {
708
+ display: 'flex',
709
+ flexWrap: 'nowrap',
710
+ gap: '8px'
711
+ }
712
+ }, columnDefType !== 'group' && enableColumnOrdering && columnDef.enableColumnOrdering !== false && !allColumns.some(function (col) {
713
+ return col.columnDefType === 'group';
714
+ }) && React.createElement(MRT_GrabHandleButton, {
715
+ ref: dragRef,
716
+ tableInstance: tableInstance
717
+ }), !isSubMenu && column.getCanPin() && React.createElement(MRT_ColumnPinningButtons, {
588
718
  column: column,
589
719
  tableInstance: tableInstance
590
720
  }), React.createElement(FormControlLabel, {
591
721
  componentsProps: {
592
722
  typography: {
593
723
  sx: {
594
- marginBottom: 0,
724
+ mb: 0,
595
725
  opacity: columnDefType !== 'display' ? 1 : 0.5
596
726
  }
597
727
  }
598
728
  },
599
729
  checked: switchChecked,
600
730
  control: React.createElement(Switch, null),
601
- disabled: isSubMenu && switchChecked || !column.getCanHide(),
731
+ disabled: isSubMenu && switchChecked || !column.getCanHide() || column.getIsGrouped(),
602
732
  label: columnDef.header,
603
733
  onChange: function onChange() {
604
734
  return handleToggleColumnHidden(column);
605
735
  }
606
- })), (_column$columns2 = column.columns) == null ? void 0 : _column$columns2.map(function (c, i) {
736
+ }))), (_column$columns2 = column.columns) == null ? void 0 : _column$columns2.map(function (c, i) {
607
737
  return React.createElement(MRT_ShowHideColumnsMenuItems, {
738
+ allColumns: allColumns,
608
739
  key: i + "-" + c.id,
609
740
  column: c,
610
741
  isSubMenu: isSubMenu,
@@ -620,9 +751,12 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
620
751
  tableInstance = _ref.tableInstance;
621
752
  var getAllColumns = tableInstance.getAllColumns,
622
753
  getAllLeafColumns = tableInstance.getAllLeafColumns,
754
+ getCenterLeafColumns = tableInstance.getCenterLeafColumns,
623
755
  getIsAllColumnsVisible = tableInstance.getIsAllColumnsVisible,
624
756
  getIsSomeColumnsPinned = tableInstance.getIsSomeColumnsPinned,
625
757
  getIsSomeColumnsVisible = tableInstance.getIsSomeColumnsVisible,
758
+ getLeftLeafColumns = tableInstance.getLeftLeafColumns,
759
+ getRightLeafColumns = tableInstance.getRightLeafColumns,
626
760
  getState = tableInstance.getState,
627
761
  toggleAllColumnsVisible = tableInstance.toggleAllColumnsVisible,
628
762
  _tableInstance$option = tableInstance.options,
@@ -649,17 +783,15 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
649
783
  if (columnOrder.length > 0 && !columns.some(function (col) {
650
784
  return col.columnDefType === 'group';
651
785
  })) {
652
- var _columnOrder$map;
653
-
654
- return (_columnOrder$map = columnOrder.map(function (colId) {
655
- return columns.find(function (col) {
656
- return col.id === colId;
786
+ return [].concat(getLeftLeafColumns(), [].concat(new Set(columnOrder)).map(function (colId) {
787
+ return getCenterLeafColumns().find(function (col) {
788
+ return (col == null ? void 0 : col.id) === colId;
657
789
  });
658
- })) != null ? _columnOrder$map : columns;
790
+ }), getRightLeafColumns()).filter(Boolean);
659
791
  }
660
792
 
661
793
  return columns;
662
- }, [getAllColumns(), columnOrder, columnPinning]);
794
+ }, [columnOrder, columnPinning, getAllColumns(), getCenterLeafColumns(), getLeftLeafColumns(), getRightLeafColumns()]);
663
795
  return React.createElement(Menu, {
664
796
  anchorEl: anchorEl,
665
797
  open: !!anchorEl,
@@ -695,6 +827,7 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
695
827
  }
696
828
  }, localization.showAll)), React.createElement(Divider, null), allColumns.map(function (column, index) {
697
829
  return React.createElement(MRT_ShowHideColumnsMenuItems, {
830
+ allColumns: allColumns,
698
831
  column: column,
699
832
  isSubMenu: isSubMenu,
700
833
  key: index + "-" + column.id,
@@ -1149,14 +1282,20 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1149
1282
  localization = _tableInstance$option.localization,
1150
1283
  muiSelectCheckboxProps = _tableInstance$option.muiSelectCheckboxProps,
1151
1284
  onSelectChange = _tableInstance$option.onSelectChange,
1152
- onSelectAllChange = _tableInstance$option.onSelectAllChange;
1285
+ onSelectAllChange = _tableInstance$option.onSelectAllChange,
1286
+ selectAllMode = _tableInstance$option.selectAllMode;
1153
1287
 
1154
1288
  var _getState = getState(),
1155
1289
  isDensePadding = _getState.isDensePadding;
1156
1290
 
1157
1291
  var handleSelectChange = function handleSelectChange(event) {
1158
1292
  if (selectAll) {
1159
- tableInstance.getToggleAllRowsSelectedHandler()(event);
1293
+ if (selectAllMode === 'all') {
1294
+ tableInstance.getToggleAllRowsSelectedHandler()(event);
1295
+ } else if (selectAllMode === 'page') {
1296
+ tableInstance.getToggleAllPageRowsSelectedHandler()(event);
1297
+ }
1298
+
1160
1299
  onSelectAllChange == null ? void 0 : onSelectAllChange({
1161
1300
  event: event,
1162
1301
  selectedRows: event.target.checked ? getRowModel().flatRows : [],
@@ -2074,38 +2213,6 @@ var MRT_TableHeadCellFilterLabel = function MRT_TableHeadCellFilterLabel(_ref) {
2074
2213
  }, showFilters && !column.getFilterValue() ? React.createElement(FilterAltOffIcon, null) : React.createElement(FilterAltIcon, null)));
2075
2214
  };
2076
2215
 
2077
- var MRT_TableHeadCellGrabHandle = /*#__PURE__*/forwardRef(function (_ref, ref) {
2078
- var tableInstance = _ref.tableInstance;
2079
- var _tableInstance$option = tableInstance.options,
2080
- DragHandleIcon = _tableInstance$option.icons.DragHandleIcon,
2081
- localization = _tableInstance$option.localization;
2082
- return React.createElement(Tooltip, {
2083
- arrow: true,
2084
- enterDelay: 1000,
2085
- enterNextDelay: 1000,
2086
- placement: "top",
2087
- title: localization.grab
2088
- }, React.createElement(IconButton, {
2089
- disableRipple: true,
2090
- ref: ref,
2091
- size: "small",
2092
- sx: {
2093
- cursor: 'grab',
2094
- m: 0,
2095
- opacity: 0.5,
2096
- p: '2px',
2097
- transition: 'all 0.2s ease-in-out',
2098
- '&:hover': {
2099
- backgroundColor: 'transparent',
2100
- opacity: 1
2101
- },
2102
- '&:active': {
2103
- cursor: 'grabbing'
2104
- }
2105
- }
2106
- }, React.createElement(DragHandleIcon, null)));
2107
- });
2108
-
2109
2216
  var MRT_TableHeadCellResizeHandle = function MRT_TableHeadCellResizeHandle(_ref) {
2110
2217
  var header = _ref.header,
2111
2218
  tableInstance = _ref.tableInstance;
@@ -2229,7 +2336,7 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
2229
2336
  };
2230
2337
 
2231
2338
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2232
- var _columnDef$Header, _columnDef$minSize, _columnDef$header$len, _columnDef$header;
2339
+ var _ref2, _ref3, _columnDef$minSize, _columnDef$header$len, _columnDef$header;
2233
2340
 
2234
2341
  var dragRef = _ref.dragRef,
2235
2342
  dropRef = _ref.dropRef,
@@ -2263,10 +2370,10 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2263
2370
 
2264
2371
  var tableCellProps = _extends({}, mTableHeadCellProps, mcTableHeadCellProps);
2265
2372
 
2266
- var headerElement = (columnDef == null ? void 0 : columnDef.Header) instanceof Function ? columnDef == null ? void 0 : columnDef.Header == null ? void 0 : columnDef.Header({
2373
+ var headerElement = (_ref2 = (_ref3 = (columnDef == null ? void 0 : columnDef.Header) instanceof Function ? columnDef == null ? void 0 : columnDef.Header == null ? void 0 : columnDef.Header({
2267
2374
  header: header,
2268
2375
  tableInstance: tableInstance
2269
- }) : (_columnDef$Header = columnDef == null ? void 0 : columnDef.Header) != null ? _columnDef$Header : header.renderHeader();
2376
+ }) : columnDef == null ? void 0 : columnDef.Header) != null ? _ref3 : header.renderHeader()) != null ? _ref2 : columnDef.header;
2270
2377
 
2271
2378
  var getIsLastLeftPinnedColumn = function getIsLastLeftPinnedColumn() {
2272
2379
  return column.getIsPinned() === 'left' && tableInstance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex();
@@ -2284,7 +2391,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2284
2391
  align: columnDefType === 'group' ? 'center' : 'left',
2285
2392
  colSpan: header.colSpan
2286
2393
  }, tableCellProps, {
2287
- ref: columnDefType === 'data' ? dropRef : undefined,
2394
+ ref: columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined,
2288
2395
  sx: function sx(theme) {
2289
2396
  return _extends({
2290
2397
  backgroundColor: column.getIsPinned() && columnDefType !== 'group' ? alpha(lighten(theme.palette.background["default"], 0.04), 0.95) : 'inherit',
@@ -2297,7 +2404,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2297
2404
  p: isDensePadding ? columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2298
2405
  pb: columnDefType === 'display' ? 0 : undefined,
2299
2406
  position: column.getIsPinned() && columnDefType !== 'group' ? 'sticky' : undefined,
2300
- pt: columnDefType !== 'data' ? 0 : isDensePadding ? '0.25' : '.5rem',
2407
+ pt: columnDefType !== 'data' ? 0 : isDensePadding ? '0.25' : '.75rem',
2301
2408
  right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
2302
2409
  transition: "all " + (enableColumnResizing ? 0 : '0.2s') + " ease-in-out",
2303
2410
  verticalAlign: 'text-top',
@@ -2339,8 +2446,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2339
2446
  sx: {
2340
2447
  whiteSpace: 'nowrap'
2341
2448
  }
2342
- }, columnDefType === 'data' && (enableColumnOrdering && columnDef.enableColumnOrdering !== false || enableGrouping && columnDef.enableGrouping !== false) && React.createElement(MRT_TableHeadCellGrabHandle, {
2343
- header: header,
2449
+ }, columnDefType === 'data' && (enableColumnOrdering && columnDef.enableColumnOrdering !== false || enableGrouping && columnDef.enableGrouping !== false) && React.createElement(MRT_GrabHandleButton, {
2344
2450
  ref: dragRef,
2345
2451
  tableInstance: tableInstance
2346
2452
  }), (enableColumnActions || columnDef.enableColumnActions) && columnDef.enableColumnActions !== false && columnDefType !== 'group' && React.createElement(MRT_ToggleColumnActionMenuButton, {
@@ -2367,20 +2473,12 @@ var MRT_DraggableTableHeadCell = function MRT_DraggableTableHeadCell(_ref) {
2367
2473
  var _getState = getState(),
2368
2474
  columnOrder = _getState.columnOrder;
2369
2475
 
2370
- var reorder = function reorder(movingHeader, receivingHeader) {
2371
- if (movingHeader.column.getCanPin()) {
2372
- movingHeader.column.pin(receivingHeader.column.getIsPinned());
2373
- }
2374
-
2375
- var currentIndex = movingHeader.index;
2376
- columnOrder.splice(receivingHeader.index, 0, columnOrder.splice(currentIndex, 1)[0]);
2377
- setColumnOrder([].concat(columnOrder));
2378
- };
2476
+ var column = header.column;
2379
2477
 
2380
2478
  var _useDrop = useDrop({
2381
- accept: 'header',
2382
- drop: function drop(movingHeader) {
2383
- return reorder(movingHeader, header);
2479
+ accept: 'column',
2480
+ drop: function drop(movingColumn) {
2481
+ return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
2384
2482
  }
2385
2483
  }),
2386
2484
  dropRef = _useDrop[1];
@@ -2392,9 +2490,9 @@ var MRT_DraggableTableHeadCell = function MRT_DraggableTableHeadCell(_ref) {
2392
2490
  };
2393
2491
  },
2394
2492
  item: function item() {
2395
- return header;
2493
+ return column;
2396
2494
  },
2397
- type: 'header'
2495
+ type: 'column'
2398
2496
  }),
2399
2497
  isDragging = _useDrag[0].isDragging,
2400
2498
  dragRef = _useDrag[1],
@@ -2618,14 +2716,17 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2618
2716
  _tableInstance$option = tableInstance.options,
2619
2717
  editingMode = _tableInstance$option.editingMode,
2620
2718
  enableClickToCopy = _tableInstance$option.enableClickToCopy,
2719
+ enableColumnOrdering = _tableInstance$option.enableColumnOrdering,
2621
2720
  enableEditing = _tableInstance$option.enableEditing,
2622
2721
  idPrefix = _tableInstance$option.idPrefix,
2623
2722
  muiTableBodyCellProps = _tableInstance$option.muiTableBodyCellProps,
2624
2723
  muiTableBodyCellSkeletonProps = _tableInstance$option.muiTableBodyCellSkeletonProps,
2625
2724
  onCellClick = _tableInstance$option.onCellClick,
2725
+ setColumnOrder = tableInstance.setColumnOrder,
2626
2726
  setCurrentEditingCell = tableInstance.setCurrentEditingCell;
2627
2727
 
2628
2728
  var _getState = getState(),
2729
+ columnOrder = _getState.columnOrder,
2629
2730
  currentEditingCell = _getState.currentEditingCell,
2630
2731
  currentEditingRow = _getState.currentEditingRow,
2631
2732
  isDensePadding = _getState.isDensePadding,
@@ -2636,6 +2737,15 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2636
2737
  row = cell.row;
2637
2738
  var columnDef = column.columnDef,
2638
2739
  columnDefType = column.columnDefType;
2740
+
2741
+ var _useDrop = useDrop({
2742
+ accept: 'column',
2743
+ drop: function drop(movingColumn) {
2744
+ return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
2745
+ }
2746
+ }),
2747
+ dropRef = _useDrop[1];
2748
+
2639
2749
  var mTableCellBodyProps = muiTableBodyCellProps instanceof Function ? muiTableBodyCellProps({
2640
2750
  cell: cell,
2641
2751
  tableInstance: tableInstance
@@ -2689,6 +2799,7 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2689
2799
  },
2690
2800
  onDoubleClick: handleDoubleClick
2691
2801
  }, tableCellProps, {
2802
+ ref: columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined,
2692
2803
  sx: function sx(theme) {
2693
2804
  return _extends({
2694
2805
  backgroundColor: column.getIsPinned() ? alpha(lighten(theme.palette.background["default"], 0.04), 0.95) : undefined,
@@ -2840,7 +2951,7 @@ var MRT_TableBody = function MRT_TableBody(_ref) {
2840
2951
  };
2841
2952
 
2842
2953
  var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
2843
- var _ref2, _ref3, _columnDef$Footer;
2954
+ var _ref2, _ref3, _ref4;
2844
2955
 
2845
2956
  var footer = _ref.footer,
2846
2957
  tableInstance = _ref.tableInstance;
@@ -2884,10 +2995,10 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
2884
2995
  verticalAlign: 'text-top'
2885
2996
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2886
2997
  }
2887
- }), React.createElement(React.Fragment, null, footer.isPlaceholder ? null : columnDef.Footer instanceof Function ? columnDef.Footer == null ? void 0 : columnDef.Footer({
2998
+ }), React.createElement(React.Fragment, null, footer.isPlaceholder ? null : (_ref2 = (_ref3 = (_ref4 = columnDef.Footer instanceof Function ? columnDef.Footer == null ? void 0 : columnDef.Footer({
2888
2999
  footer: footer,
2889
3000
  tableInstance: tableInstance
2890
- }) : (_ref2 = (_ref3 = (_columnDef$Footer = columnDef.Footer) != null ? _columnDef$Footer : columnDef.footer) != null ? _ref3 : footer.renderFooter()) != null ? _ref2 : null));
3001
+ }) : columnDef.Footer) != null ? _ref4 : columnDef.footer) != null ? _ref3 : footer.renderFooter()) != null ? _ref2 : null));
2891
3002
  };
2892
3003
 
2893
3004
  var MRT_TableFooterRow = function MRT_TableFooterRow(_ref) {
@@ -3040,54 +3151,6 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
3040
3151
  })));
3041
3152
  };
3042
3153
 
3043
- var getAllLeafColumnDefs = function getAllLeafColumnDefs(columns) {
3044
- var lowestLevelColumns = columns;
3045
- var currentCols = columns;
3046
-
3047
- while (!!((_currentCols = currentCols) != null && _currentCols.length) && currentCols.some(function (col) {
3048
- return col.columns;
3049
- })) {
3050
- var _currentCols;
3051
-
3052
- var nextCols = currentCols.filter(function (col) {
3053
- return !!col.columns;
3054
- }).map(function (col) {
3055
- return col.columns;
3056
- }).flat();
3057
-
3058
- if (nextCols.every(function (col) {
3059
- return !(col != null && col.columns);
3060
- })) {
3061
- lowestLevelColumns = [].concat(lowestLevelColumns, nextCols);
3062
- }
3063
-
3064
- currentCols = nextCols;
3065
- }
3066
-
3067
- return lowestLevelColumns.filter(function (col) {
3068
- return !col.columns;
3069
- });
3070
- };
3071
- var createGroup = function createGroup(table, column, currentFilterFns) {
3072
- var _column$columns;
3073
-
3074
- return table.createGroup(_extends({}, column, {
3075
- columns: column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.map == null ? void 0 : _column$columns.map(function (col) {
3076
- return col.columns ? createGroup(table, col, currentFilterFns) : createDataColumn(table, col, currentFilterFns);
3077
- })
3078
- }));
3079
- };
3080
- var createDataColumn = function createDataColumn(table, column, currentFilterFns) {
3081
- return (// @ts-ignore
3082
- table.createDataColumn(column.id, _extends({
3083
- filterFn: currentFilterFns[column.id] instanceof Function ? currentFilterFns[column.id] : defaultFilterFNs[currentFilterFns[column.id]]
3084
- }, column))
3085
- );
3086
- };
3087
- var createDisplayColumn = function createDisplayColumn(table, column) {
3088
- return table.createDisplayColumn(column);
3089
- };
3090
-
3091
3154
  var MRT_TableRoot = function MRT_TableRoot(props) {
3092
3155
  var _initialState$current, _initialState$current2, _initialState$isDense, _initialState$isFullS, _initialState$showFil, _initialState$showGlo, _props$globalFilterFn, _props$state3, _props$state4;
3093
3156
 
@@ -3106,7 +3169,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3106
3169
  var _props$initialState, _initState$columnOrde;
3107
3170
 
3108
3171
  var initState = (_props$initialState = props.initialState) != null ? _props$initialState : {};
3109
- initState.columnOrder = ((_initState$columnOrde = initState == null ? void 0 : initState.columnOrder) != null ? _initState$columnOrde : props.enableColumnOrdering) ? [showActionColumn && 'mrt-row-actions', showExpandColumn && 'mrt-expand', props.enableRowSelection && 'mrt-select', props.enableRowNumbers && 'mrt-row-numbers'].concat(getAllLeafColumnDefs(props.columns).map(function (c) {
3172
+ initState.columnOrder = ((_initState$columnOrde = initState == null ? void 0 : initState.columnOrder) != null ? _initState$columnOrde : props.enableColumnOrdering || props.enableGrouping) ? [showActionColumn && 'mrt-row-actions', showExpandColumn && 'mrt-expand', props.enableRowSelection && 'mrt-select', props.enableRowNumbers && 'mrt-row-numbers'].concat(getAllLeafColumnDefs(props.columns).map(function (c) {
3110
3173
  return c.id;
3111
3174
  })).filter(Boolean) : [];
3112
3175
 
@@ -3174,7 +3237,24 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3174
3237
  setCurrentGlobalFilterFn = _useState9[1];
3175
3238
 
3176
3239
  var table = useMemo(function () {
3177
- return createTable();
3240
+ return (// @ts-ignore
3241
+ createTable().setOptions({
3242
+ //@ts-ignore
3243
+ filterFns: defaultFilterFNs,
3244
+ getCoreRowModel: getCoreRowModel(),
3245
+ getExpandedRowModel: getExpandedRowModel(),
3246
+ getFacetedRowModel: getFacetedRowModel(),
3247
+ getFilteredRowModel: getFilteredRowModel(),
3248
+ getGroupedRowModel: getGroupedRowModel(),
3249
+ getPaginationRowModel: getPaginationRowModel(),
3250
+ getSortedRowModel: getSortedRowModel(),
3251
+ getSubRows: function getSubRows(row) {
3252
+ return row == null ? void 0 : row.subRows;
3253
+ },
3254
+ idPrefix: idPrefix,
3255
+ initialState: initialState
3256
+ })
3257
+ );
3178
3258
  }, []);
3179
3259
  var displayColumns = useMemo(function () {
3180
3260
  var _props$localization, _props$localization2, _props$localization3, _props$localization5;
@@ -3189,6 +3269,8 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3189
3269
  },
3190
3270
  header: (_props$localization = props.localization) == null ? void 0 : _props$localization.actions,
3191
3271
  id: 'mrt-row-actions',
3272
+ muiTableBodyCellProps: props.muiTableBodyCellProps,
3273
+ muiTableHeadCellProps: props.muiTableHeadCellProps,
3192
3274
  size: 60
3193
3275
  }), showExpandColumn && createDisplayColumn(table, {
3194
3276
  Cell: function Cell(_ref4) {
@@ -3205,6 +3287,8 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3205
3287
  },
3206
3288
  header: (_props$localization2 = props.localization) == null ? void 0 : _props$localization2.expand,
3207
3289
  id: 'mrt-expand',
3290
+ muiTableBodyCellProps: props.muiTableBodyCellProps,
3291
+ muiTableHeadCellProps: props.muiTableHeadCellProps,
3208
3292
  size: 50
3209
3293
  }), props.enableRowSelection && createDisplayColumn(table, {
3210
3294
  Cell: function Cell(_ref5) {
@@ -3222,6 +3306,8 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3222
3306
  },
3223
3307
  header: (_props$localization3 = props.localization) == null ? void 0 : _props$localization3.select,
3224
3308
  id: 'mrt-select',
3309
+ muiTableBodyCellProps: props.muiTableBodyCellProps,
3310
+ muiTableHeadCellProps: props.muiTableHeadCellProps,
3225
3311
  size: 50
3226
3312
  }), props.enableRowNumbers && createDisplayColumn(table, {
3227
3313
  Cell: function Cell(_ref6) {
@@ -3235,6 +3321,8 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3235
3321
  },
3236
3322
  header: (_props$localization5 = props.localization) == null ? void 0 : _props$localization5.rowNumbers,
3237
3323
  id: 'mrt-row-numbers',
3324
+ muiTableBodyCellProps: props.muiTableBodyCellProps,
3325
+ muiTableHeadCellProps: props.muiTableHeadCellProps,
3238
3326
  size: 50
3239
3327
  })].filter(Boolean);
3240
3328
  }, [props.editingMode, props.enableEditing, props.enableExpandAll, props.enableExpanding, props.enableGrouping, props.enableRowActions, props.enableRowNumbers, props.enableRowSelection, props.enableSelectAll, props.localization, table]);
@@ -3255,26 +3343,12 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3255
3343
  }) : props.data;
3256
3344
  }, [props.data, (_props$state3 = props.state) == null ? void 0 : _props$state3.isLoading, (_props$state4 = props.state) == null ? void 0 : _props$state4.showSkeletons]); //@ts-ignore
3257
3345
 
3258
- var tableInstance = _extends({}, useTableInstance(table, _extends({
3259
- filterFns: defaultFilterFNs,
3260
- getCoreRowModel: getCoreRowModel(),
3261
- getExpandedRowModel: getExpandedRowModel(),
3262
- getFacetedRowModel: getFacetedRowModel(),
3263
- getFilteredRowModel: getFilteredRowModel(),
3264
- getGroupedRowModel: getGroupedRowModel(),
3265
- getPaginationRowModel: getPaginationRowModel(),
3266
- getSortedRowModel: getSortedRowModel(),
3267
- getSubRows: function getSubRows(row) {
3268
- return row == null ? void 0 : row.subRows;
3269
- },
3270
- //@ts-ignore
3271
- globalFilterFn: currentGlobalFilterFn
3272
- }, props, {
3346
+ var tableInstance = _extends({}, useTableInstance(table, _extends({}, props, {
3273
3347
  //@ts-ignore
3274
3348
  columns: columns,
3275
3349
  data: data,
3276
- idPrefix: idPrefix,
3277
- initialState: initialState,
3350
+ //@ts-ignore
3351
+ globalFilterFn: currentGlobalFilterFn,
3278
3352
  state: _extends({
3279
3353
  currentEditingCell: currentEditingCell,
3280
3354
  currentEditingRow: currentEditingRow,
@@ -3336,7 +3410,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3336
3410
  }));
3337
3411
  };
3338
3412
 
3339
- var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensePaddingToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
3413
+ var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensePaddingToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner", "selectAllMode"];
3340
3414
  var MaterialReactTable = (function (_ref) {
3341
3415
  var _ref$autoResetExpande = _ref.autoResetExpanded,
3342
3416
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -3406,6 +3480,8 @@ var MaterialReactTable = (function (_ref) {
3406
3480
  positionToolbarActions = _ref$positionToolbarA === void 0 ? 'top' : _ref$positionToolbarA,
3407
3481
  _ref$positionToolbarA2 = _ref.positionToolbarAlertBanner,
3408
3482
  positionToolbarAlertBanner = _ref$positionToolbarA2 === void 0 ? 'top' : _ref$positionToolbarA2,
3483
+ _ref$selectAllMode = _ref.selectAllMode,
3484
+ selectAllMode = _ref$selectAllMode === void 0 ? 'all' : _ref$selectAllMode,
3409
3485
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
3410
3486
 
3411
3487
  return React.createElement(MRT_TableRoot, Object.assign({
@@ -3441,7 +3517,8 @@ var MaterialReactTable = (function (_ref) {
3441
3517
  positionActionsColumn: positionActionsColumn,
3442
3518
  positionPagination: positionPagination,
3443
3519
  positionToolbarActions: positionToolbarActions,
3444
- positionToolbarAlertBanner: positionToolbarAlertBanner
3520
+ positionToolbarAlertBanner: positionToolbarAlertBanner,
3521
+ selectAllMode: selectAllMode
3445
3522
  }, rest));
3446
3523
  });
3447
3524