material-react-table 0.8.11 → 0.8.12

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
1
  import React, { useMemo, useState, useCallback, Fragment, forwardRef, 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, functionalUpdate } from '@tanstack/react-table';
3
+ import { createTable, useTableInstance, getCoreRowModel, getExpandedRowModel, getFacetedRowModel, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel } 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';
@@ -81,6 +81,7 @@ var MRT_DefaultLocalization_EN = {
81
81
  pinToLeft: 'Pin to left',
82
82
  pinToRight: 'Pin to right',
83
83
  resetColumnSize: 'Reset column size',
84
+ resetOrder: 'Reset order',
84
85
  rowActions: 'Row Actions',
85
86
  rowNumber: '#',
86
87
  rowNumbers: 'Row Numbers',
@@ -551,12 +552,14 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
551
552
  var _getState = getState(),
552
553
  columnVisibility = _getState.columnVisibility;
553
554
 
554
- var switchChecked = column.columnDefType !== 'group' && column.getIsVisible() || column.columnDefType === 'group' && column.getLeafColumns().some(function (col) {
555
+ var columnDef = column.columnDef,
556
+ columnDefType = column.columnDefType;
557
+ var switchChecked = columnDefType !== 'group' && column.getIsVisible() || columnDefType === 'group' && column.getLeafColumns().some(function (col) {
555
558
  return col.getIsVisible();
556
559
  });
557
560
 
558
561
  var handleToggleColumnHidden = function handleToggleColumnHidden(column) {
559
- if (column.columnDefType === 'group') {
562
+ if (columnDefType === 'group') {
560
563
  var _column$columns;
561
564
 
562
565
  column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.forEach == null ? void 0 : _column$columns.forEach(function (childColumn) {
@@ -588,14 +591,15 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
588
591
  componentsProps: {
589
592
  typography: {
590
593
  sx: {
591
- marginBottom: 0
594
+ marginBottom: 0,
595
+ opacity: columnDefType !== 'display' ? 1 : 0.5
592
596
  }
593
597
  }
594
598
  },
595
599
  checked: switchChecked,
596
600
  control: React.createElement(Switch, null),
597
601
  disabled: isSubMenu && switchChecked || !column.getCanHide(),
598
- label: column.columnDef.header,
602
+ label: columnDef.header,
599
603
  onChange: function onChange() {
600
604
  return handleToggleColumnHidden(column);
601
605
  }
@@ -615,18 +619,21 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
615
619
  setAnchorEl = _ref.setAnchorEl,
616
620
  tableInstance = _ref.tableInstance;
617
621
  var getAllColumns = tableInstance.getAllColumns,
622
+ getAllLeafColumns = tableInstance.getAllLeafColumns,
618
623
  getIsAllColumnsVisible = tableInstance.getIsAllColumnsVisible,
619
- getIsSomeColumnsVisible = tableInstance.getIsSomeColumnsVisible,
620
624
  getIsSomeColumnsPinned = tableInstance.getIsSomeColumnsPinned,
625
+ getIsSomeColumnsVisible = tableInstance.getIsSomeColumnsVisible,
621
626
  getState = tableInstance.getState,
622
627
  toggleAllColumnsVisible = tableInstance.toggleAllColumnsVisible,
623
- getAllLeafColumns = tableInstance.getAllLeafColumns,
624
628
  _tableInstance$option = tableInstance.options,
625
629
  localization = _tableInstance$option.localization,
626
- enablePinning = _tableInstance$option.enablePinning;
630
+ enablePinning = _tableInstance$option.enablePinning,
631
+ enableColumnOrdering = _tableInstance$option.enableColumnOrdering;
627
632
 
628
633
  var _getState = getState(),
629
- isDensePadding = _getState.isDensePadding;
634
+ isDensePadding = _getState.isDensePadding,
635
+ columnOrder = _getState.columnOrder,
636
+ columnPinning = _getState.columnPinning;
630
637
 
631
638
  var hideAllColumns = function hideAllColumns() {
632
639
  getAllLeafColumns().filter(function (col) {
@@ -636,23 +643,23 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
636
643
  });
637
644
  };
638
645
 
639
- var allDisplayColumns = useMemo(function () {
640
- return getAllColumns().filter(function (col) {
641
- return col.columnDefType === 'display';
642
- });
643
- }, [getAllColumns()]);
644
- var allDataColumns = useMemo(function () {
645
- var dataColumns = getAllColumns().filter(function (col) {
646
- return col.columnDefType !== 'display';
647
- });
648
- return getIsSomeColumnsPinned() ? [].concat(dataColumns.filter(function (c) {
649
- return c.getIsPinned() === 'left';
650
- }), [null], dataColumns.filter(function (c) {
651
- return c.getIsPinned() === false;
652
- }), [null], dataColumns.filter(function (c) {
653
- return c.getIsPinned() === 'right';
654
- })) : dataColumns;
655
- }, [getAllColumns(), getState().columnPinning, getIsSomeColumnsPinned()]);
646
+ var allColumns = useMemo(function () {
647
+ var columns = getAllColumns();
648
+
649
+ if (columnOrder.length > 0 && !columns.some(function (col) {
650
+ return col.columnDefType === 'group';
651
+ })) {
652
+ var _columnOrder$map;
653
+
654
+ return (_columnOrder$map = columnOrder.map(function (colId) {
655
+ return columns.find(function (col) {
656
+ return col.id === colId;
657
+ });
658
+ })) != null ? _columnOrder$map : columns;
659
+ }
660
+
661
+ return columns;
662
+ }, [getAllColumns(), columnOrder, columnPinning]);
656
663
  return React.createElement(Menu, {
657
664
  anchorEl: anchorEl,
658
665
  open: !!anchorEl,
@@ -672,7 +679,11 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
672
679
  }, !isSubMenu && React.createElement(Button, {
673
680
  disabled: !getIsSomeColumnsVisible(),
674
681
  onClick: hideAllColumns
675
- }, localization.hideAll), !isSubMenu && enablePinning && React.createElement(Button, {
682
+ }, localization.hideAll), !isSubMenu && enableColumnOrdering && React.createElement(Button, {
683
+ onClick: function onClick() {
684
+ return tableInstance.resetColumnOrder();
685
+ }
686
+ }, localization.resetOrder), !isSubMenu && enablePinning && React.createElement(Button, {
676
687
  disabled: !getIsSomeColumnsPinned(),
677
688
  onClick: function onClick() {
678
689
  return tableInstance.resetColumnPinning(true);
@@ -682,22 +693,13 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
682
693
  onClick: function onClick() {
683
694
  return toggleAllColumnsVisible(true);
684
695
  }
685
- }, localization.showAll)), React.createElement(Divider, null), allDisplayColumns.map(function (column, index) {
696
+ }, localization.showAll)), React.createElement(Divider, null), allColumns.map(function (column, index) {
686
697
  return React.createElement(MRT_ShowHideColumnsMenuItems, {
687
698
  column: column,
688
699
  isSubMenu: isSubMenu,
689
700
  key: index + "-" + column.id,
690
701
  tableInstance: tableInstance
691
702
  });
692
- }), React.createElement(Divider, null), allDataColumns.map(function (column, index) {
693
- return column ? React.createElement(MRT_ShowHideColumnsMenuItems, {
694
- column: column,
695
- isSubMenu: isSubMenu,
696
- key: index + "-" + column.id,
697
- tableInstance: tableInstance
698
- }) : React.createElement(Divider, {
699
- key: index + "-divider"
700
- });
701
703
  }));
702
704
  };
703
705
 
@@ -1867,9 +1869,6 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1867
1869
  var filterChipLabel = !(filterFn instanceof Function) && [MRT_FILTER_OPTION.EMPTY, MRT_FILTER_OPTION.NOT_EMPTY].includes(filterFn) ? //@ts-ignore
1868
1870
  localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))] : '';
1869
1871
  var filterPlaceholder = inputIndex === undefined ? (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(columnDef.header)) : inputIndex === 0 ? localization.min : inputIndex === 1 ? localization.max : '';
1870
- console.log({
1871
- textFieldProps: textFieldProps
1872
- });
1873
1872
  return React.createElement(React.Fragment, null, React.createElement(TextField, Object.assign({
1874
1873
  fullWidth: true,
1875
1874
  id: filterId,
@@ -2047,8 +2046,9 @@ var MRT_TableHeadCellFilterLabel = function MRT_TableHeadCellFilterLabel(_ref) {
2047
2046
  showFilters = _getState.showFilters;
2048
2047
 
2049
2048
  var column = header.column;
2049
+ var columnDef = column.columnDef;
2050
2050
  var filterFn = (_getState2 = getState()) == null ? void 0 : (_getState2$currentFil = _getState2.currentFilterFns) == null ? void 0 : _getState2$currentFil[header.id];
2051
- var filterTooltip = !!column.getFilterValue() ? localization.filteringByColumn.replace('{column}', String(column.columnDef.header)).replace('{filterType}', filterFn instanceof Function ? '' : // @ts-ignore
2051
+ var filterTooltip = !!column.getFilterValue() ? localization.filteringByColumn.replace('{column}', String(columnDef.header)).replace('{filterType}', filterFn instanceof Function ? '' : // @ts-ignore
2052
2052
  localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))]).replace('{filterValue}', "\"" + (Array.isArray(column.getFilterValue()) ? column.getFilterValue().join("\" " + localization.and + " \"") : column.getFilterValue()) + "\"").replace('" "', '') : localization.showHideFilters;
2053
2053
  return React.createElement(Tooltip, {
2054
2054
  arrow: true,
@@ -2115,6 +2115,7 @@ var MRT_TableHeadCellResizeHandle = function MRT_TableHeadCellResizeHandle(_ref)
2115
2115
  showFilters = _getState.showFilters;
2116
2116
 
2117
2117
  var column = header.column;
2118
+ var columnDefType = column.columnDefType;
2118
2119
  return React.createElement(Divider, {
2119
2120
  flexItem: true,
2120
2121
  orientation: "vertical",
@@ -2126,7 +2127,7 @@ var MRT_TableHeadCellResizeHandle = function MRT_TableHeadCellResizeHandle(_ref)
2126
2127
  borderRadius: '2px',
2127
2128
  borderRightWidth: '2px',
2128
2129
  cursor: 'col-resize',
2129
- height: showFilters && column.columnDefType === 'data' ? '4rem' : '2rem',
2130
+ height: showFilters && columnDefType === 'data' ? '4rem' : '2rem',
2130
2131
  opacity: 0.8,
2131
2132
  position: 'absolute',
2132
2133
  right: '1px',
@@ -2153,7 +2154,8 @@ var MRT_TableHeadCellSortLabel = function MRT_TableHeadCellSortLabel(_ref) {
2153
2154
  tableInstance = _ref.tableInstance;
2154
2155
  var localization = tableInstance.options.localization;
2155
2156
  var column = header.column;
2156
- var sortTooltip = !!column.getIsSorted() ? column.getIsSorted() === 'desc' ? localization.sortedByColumnDesc.replace('{column}', column.columnDef.header) : localization.sortedByColumnAsc.replace('{column}', column.columnDef.header) : localization.unsorted;
2157
+ var columnDef = column.columnDef;
2158
+ var sortTooltip = !!column.getIsSorted() ? column.getIsSorted() === 'desc' ? localization.sortedByColumnDesc.replace('{column}', columnDef.header) : localization.sortedByColumnAsc.replace('{column}', columnDef.header) : localization.unsorted;
2157
2159
  return React.createElement(Tooltip, {
2158
2160
  arrow: true,
2159
2161
  placement: "top",
@@ -2173,6 +2175,7 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
2173
2175
  localization = _tableInstance$option.localization,
2174
2176
  muiTableHeadCellColumnActionsButtonProps = _tableInstance$option.muiTableHeadCellColumnActionsButtonProps;
2175
2177
  var column = header.column;
2178
+ var columnDef = column.columnDef;
2176
2179
 
2177
2180
  var _useState = useState(null),
2178
2181
  anchorEl = _useState[0],
@@ -2188,10 +2191,10 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
2188
2191
  column: column,
2189
2192
  tableInstance: tableInstance
2190
2193
  }) : muiTableHeadCellColumnActionsButtonProps;
2191
- var mcTableHeadCellColumnActionsButtonProps = column.columnDef.muiTableHeadCellColumnActionsButtonProps instanceof Function ? column.columnDef.muiTableHeadCellColumnActionsButtonProps({
2194
+ var mcTableHeadCellColumnActionsButtonProps = columnDef.muiTableHeadCellColumnActionsButtonProps instanceof Function ? columnDef.muiTableHeadCellColumnActionsButtonProps({
2192
2195
  column: column,
2193
2196
  tableInstance: tableInstance
2194
- }) : column.columnDef.muiTableHeadCellColumnActionsButtonProps;
2197
+ }) : columnDef.muiTableHeadCellColumnActionsButtonProps;
2195
2198
 
2196
2199
  var iconButtonProps = _extends({}, mTableHeadCellColumnActionsButtonProps, mcTableHeadCellColumnActionsButtonProps);
2197
2200
 
@@ -2226,7 +2229,7 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
2226
2229
  };
2227
2230
 
2228
2231
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2229
- var _column$columnDef, _column$columnDef2, _column$columnDef$Hea, _column$columnDef3, _columnDef$minSize, _columnDef$header$len, _columnDef$header;
2232
+ var _columnDef$Header, _columnDef$minSize, _columnDef$header$len, _columnDef$header;
2230
2233
 
2231
2234
  var dragRef = _ref.dragRef,
2232
2235
  dropRef = _ref.dropRef,
@@ -2260,10 +2263,10 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2260
2263
 
2261
2264
  var tableCellProps = _extends({}, mTableHeadCellProps, mcTableHeadCellProps);
2262
2265
 
2263
- var headerElement = ((_column$columnDef = column.columnDef) == null ? void 0 : _column$columnDef.Header) instanceof Function ? (_column$columnDef2 = column.columnDef) == null ? void 0 : _column$columnDef2.Header == null ? void 0 : _column$columnDef2.Header({
2266
+ var headerElement = (columnDef == null ? void 0 : columnDef.Header) instanceof Function ? columnDef == null ? void 0 : columnDef.Header == null ? void 0 : columnDef.Header({
2264
2267
  header: header,
2265
2268
  tableInstance: tableInstance
2266
- }) : (_column$columnDef$Hea = (_column$columnDef3 = column.columnDef) == null ? void 0 : _column$columnDef3.Header) != null ? _column$columnDef$Hea : header.renderHeader();
2269
+ }) : (_columnDef$Header = columnDef == null ? void 0 : columnDef.Header) != null ? _columnDef$Header : header.renderHeader();
2267
2270
 
2268
2271
  var getIsLastLeftPinnedColumn = function getIsLastLeftPinnedColumn() {
2269
2272
  return column.getIsPinned() === 'left' && tableInstance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex();
@@ -2294,7 +2297,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2294
2297
  p: isDensePadding ? columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2295
2298
  pb: columnDefType === 'display' ? 0 : undefined,
2296
2299
  position: column.getIsPinned() && columnDefType !== 'group' ? 'sticky' : undefined,
2297
- pt: columnDefType === 'display' ? 0 : isDensePadding ? '0.75rem' : '1.25rem',
2300
+ pt: columnDefType !== 'data' ? 0 : isDensePadding ? '0.25' : '.5rem',
2298
2301
  right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
2299
2302
  transition: "all " + (enableColumnResizing ? 0 : '0.2s') + " ease-in-out",
2300
2303
  verticalAlign: 'text-top',
@@ -2364,19 +2367,23 @@ var MRT_DraggableTableHeadCell = function MRT_DraggableTableHeadCell(_ref) {
2364
2367
  var _getState = getState(),
2365
2368
  columnOrder = _getState.columnOrder;
2366
2369
 
2367
- var reorder = function reorder(item, newIndex) {
2368
- var currentIndex = item.index;
2369
- columnOrder.splice(newIndex, 0, columnOrder.splice(currentIndex, 1)[0]);
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]);
2370
2377
  setColumnOrder([].concat(columnOrder));
2371
2378
  };
2372
2379
 
2373
2380
  var _useDrop = useDrop({
2374
2381
  accept: 'header',
2375
- drop: function drop(item) {
2376
- return reorder(item, header.index);
2382
+ drop: function drop(movingHeader) {
2383
+ return reorder(movingHeader, header);
2377
2384
  }
2378
2385
  }),
2379
- drop = _useDrop[1];
2386
+ dropRef = _useDrop[1];
2380
2387
 
2381
2388
  var _useDrag = useDrag({
2382
2389
  collect: function collect(monitor) {
@@ -2390,15 +2397,15 @@ var MRT_DraggableTableHeadCell = function MRT_DraggableTableHeadCell(_ref) {
2390
2397
  type: 'header'
2391
2398
  }),
2392
2399
  isDragging = _useDrag[0].isDragging,
2393
- drag = _useDrag[1],
2394
- preview = _useDrag[2];
2400
+ dragRef = _useDrag[1],
2401
+ previewRef = _useDrag[2];
2395
2402
 
2396
2403
  return React.createElement(MRT_TableHeadCell, {
2397
- dragRef: drag,
2398
- dropRef: drop,
2404
+ dragRef: dragRef,
2405
+ dropRef: dropRef,
2399
2406
  header: header,
2400
2407
  isDragging: isDragging,
2401
- previewRef: preview,
2408
+ previewRef: previewRef,
2402
2409
  tableInstance: tableInstance
2403
2410
  });
2404
2411
  };
@@ -2544,6 +2551,8 @@ var MRT_CopyButton = function MRT_CopyButton(_ref) {
2544
2551
  var _tableInstance$option = tableInstance.options,
2545
2552
  localization = _tableInstance$option.localization,
2546
2553
  muiTableBodyCellCopyButtonProps = _tableInstance$option.muiTableBodyCellCopyButtonProps;
2554
+ var column = cell.column;
2555
+ var columnDef = column.columnDef;
2547
2556
 
2548
2557
  var _useState = useState(false),
2549
2558
  copied = _useState[0],
@@ -2561,10 +2570,10 @@ var MRT_CopyButton = function MRT_CopyButton(_ref) {
2561
2570
  cell: cell,
2562
2571
  tableInstance: tableInstance
2563
2572
  }) : muiTableBodyCellCopyButtonProps;
2564
- var mcTableBodyCellCopyButtonProps = cell.column.columnDef.muiTableBodyCellCopyButtonProps instanceof Function ? cell.column.columnDef.muiTableBodyCellCopyButtonProps({
2573
+ var mcTableBodyCellCopyButtonProps = columnDef.muiTableBodyCellCopyButtonProps instanceof Function ? columnDef.muiTableBodyCellCopyButtonProps({
2565
2574
  cell: cell,
2566
2575
  tableInstance: tableInstance
2567
- }) : cell.column.columnDef.muiTableBodyCellCopyButtonProps;
2576
+ }) : columnDef.muiTableBodyCellCopyButtonProps;
2568
2577
 
2569
2578
  var buttonProps = _extends({}, mTableBodyCellCopyButtonProps, mcTableBodyCellCopyButtonProps);
2570
2579
 
@@ -2600,7 +2609,7 @@ var MRT_CopyButton = function MRT_CopyButton(_ref) {
2600
2609
  };
2601
2610
 
2602
2611
  var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2603
- var _columnDef$minSize, _cell$column$columnDe, _cell$column$columnDe2, _row$subRows, _cell$column$columnDe3, _cell$column$columnDe4, _row$subRows$length, _row$subRows2;
2612
+ var _columnDef$minSize, _columnDef$Cell, _row$subRows, _columnDef$Cell2, _row$subRows$length, _row$subRows2;
2604
2613
 
2605
2614
  var cell = _ref.cell,
2606
2615
  enableHover = _ref.enableHover,
@@ -2625,7 +2634,8 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2625
2634
 
2626
2635
  var column = cell.column,
2627
2636
  row = cell.row;
2628
- var columnDef = column.columnDef;
2637
+ var columnDef = column.columnDef,
2638
+ columnDefType = column.columnDefType;
2629
2639
  var mTableCellBodyProps = muiTableBodyCellProps instanceof Function ? muiTableBodyCellProps({
2630
2640
  cell: cell,
2631
2641
  tableInstance: tableInstance
@@ -2638,8 +2648,8 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2638
2648
  var tableCellProps = _extends({}, mTableCellBodyProps, mcTableCellBodyProps);
2639
2649
 
2640
2650
  var skeletonWidth = useMemo(function () {
2641
- return column.columnDefType === 'display' ? column.getSize() / 2 : Math.random() * (column.getSize() - column.getSize() / 3) + column.getSize() / 3;
2642
- }, [column.columnDefType, column.getSize()]);
2651
+ return columnDefType === 'display' ? column.getSize() / 2 : Math.random() * (column.getSize() - column.getSize() / 3) + column.getSize() / 3;
2652
+ }, [columnDefType, column.getSize()]);
2643
2653
  var isEditable = (enableEditing || columnDef.enableEditing) && columnDef.enableEditing !== false;
2644
2654
  var isEditing = isEditable && (editingMode === 'table' || (currentEditingRow == null ? void 0 : currentEditingRow.id) === row.id || (currentEditingCell == null ? void 0 : currentEditingCell.id) === cell.id);
2645
2655
 
@@ -2685,7 +2695,7 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2685
2695
  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,
2686
2696
  cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',
2687
2697
  left: column.getIsPinned() === 'left' ? column.getStart('left') + "px" : undefined,
2688
- p: isDensePadding ? column.columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : column.columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2698
+ p: isDensePadding ? columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2689
2699
  pl: column.id === 'mrt-expand' ? row.depth + (isDensePadding ? 0.5 : 0.75) + "rem" : undefined,
2690
2700
  position: column.getIsPinned() ? 'sticky' : 'relative',
2691
2701
  right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
@@ -2706,7 +2716,7 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2706
2716
  animation: "wave",
2707
2717
  height: 20,
2708
2718
  width: skeletonWidth
2709
- }, muiTableBodyCellSkeletonProps)) : column.columnDefType === 'display' ? columnDef.Cell == null ? void 0 : columnDef.Cell({
2719
+ }, muiTableBodyCellSkeletonProps)) : columnDefType === 'display' ? columnDef.Cell == null ? void 0 : columnDef.Cell({
2710
2720
  cell: cell,
2711
2721
  tableInstance: tableInstance
2712
2722
  }) : cell.getIsPlaceholder() || row.getIsGrouped() && column.id !== row.groupingColumnId ? null : cell.getIsAggregated() ? cell.renderAggregatedCell() : isEditing ? React.createElement(MRT_EditCellTextField, {
@@ -2715,13 +2725,13 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2715
2725
  }) : (enableClickToCopy || columnDef.enableClickToCopy) && columnDef.enableClickToCopy !== false ? React.createElement(React.Fragment, null, React.createElement(MRT_CopyButton, {
2716
2726
  cell: cell,
2717
2727
  tableInstance: tableInstance
2718
- }, React.createElement(React.Fragment, null, (_cell$column$columnDe = (_cell$column$columnDe2 = cell.column.columnDef) == null ? void 0 : _cell$column$columnDe2.Cell == null ? void 0 : _cell$column$columnDe2.Cell({
2728
+ }, React.createElement(React.Fragment, null, (_columnDef$Cell = columnDef == null ? void 0 : columnDef.Cell == null ? void 0 : columnDef.Cell({
2719
2729
  cell: cell,
2720
2730
  tableInstance: tableInstance
2721
- })) != null ? _cell$column$columnDe : cell.renderCell())), row.getIsGrouped() && React.createElement(React.Fragment, null, " (", (_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length, ")")) : React.createElement(React.Fragment, null, (_cell$column$columnDe3 = (_cell$column$columnDe4 = cell.column.columnDef) == null ? void 0 : _cell$column$columnDe4.Cell == null ? void 0 : _cell$column$columnDe4.Cell({
2731
+ })) != null ? _columnDef$Cell : cell.renderCell())), row.getIsGrouped() && React.createElement(React.Fragment, null, " (", (_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length, ")")) : React.createElement(React.Fragment, null, (_columnDef$Cell2 = columnDef == null ? void 0 : columnDef.Cell == null ? void 0 : columnDef.Cell({
2722
2732
  cell: cell,
2723
2733
  tableInstance: tableInstance
2724
- })) != null ? _cell$column$columnDe3 : cell.renderCell(), row.getIsGrouped() && React.createElement(React.Fragment, null, " (", (_row$subRows$length = (_row$subRows2 = row.subRows) == null ? void 0 : _row$subRows2.length) != null ? _row$subRows$length : '', ")"))));
2734
+ })) != null ? _columnDef$Cell2 : cell.renderCell(), row.getIsGrouped() && React.createElement(React.Fragment, null, " (", (_row$subRows$length = (_row$subRows2 = row.subRows) == null ? void 0 : _row$subRows2.length) != null ? _row$subRows$length : '', ")"))));
2725
2735
  };
2726
2736
 
2727
2737
  var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
@@ -2843,7 +2853,8 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
2843
2853
  isDensePadding = _getState.isDensePadding;
2844
2854
 
2845
2855
  var column = footer.column;
2846
- var columnDef = column.columnDef;
2856
+ var columnDef = column.columnDef,
2857
+ columnDefType = column.columnDefType;
2847
2858
  var mTableFooterCellProps = muiTableFooterCellProps instanceof Function ? muiTableFooterCellProps({
2848
2859
  column: column,
2849
2860
  tableInstance: tableInstance
@@ -2856,7 +2867,7 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
2856
2867
  var tableCellProps = _extends({}, mTableFooterCellProps, mcTableFooterCellProps);
2857
2868
 
2858
2869
  return React.createElement(TableCell, Object.assign({
2859
- align: column.columnDefType === 'group' ? 'center' : 'left',
2870
+ align: columnDefType === 'group' ? 'center' : 'left',
2860
2871
  colSpan: footer.colSpan,
2861
2872
  variant: "head"
2862
2873
  }, tableCellProps, {
@@ -2886,8 +2897,8 @@ var MRT_TableFooterRow = function MRT_TableFooterRow(_ref) {
2886
2897
  tableInstance = _ref.tableInstance;
2887
2898
  var muiTableFooterRowProps = tableInstance.options.muiTableFooterRowProps; // if no content in row, skip row
2888
2899
 
2889
- if (!((_footerGroup$headers = footerGroup.headers) != null && _footerGroup$headers.some(function (h) {
2890
- return typeof h.column.columnDef.footer === 'string' && !!h.column.columnDef.footer || h.column.columnDef.Footer;
2900
+ if (!((_footerGroup$headers = footerGroup.headers) != null && _footerGroup$headers.some(function (header) {
2901
+ return typeof header.column.columnDef.footer === 'string' && !!header.column.columnDef.footer || header.column.columnDef.Footer;
2891
2902
  }))) return null;
2892
2903
  var tableRowProps = muiTableFooterRowProps instanceof Function ? muiTableFooterRowProps({
2893
2904
  footerGroup: footerGroup,
@@ -3078,7 +3089,7 @@ var createDisplayColumn = function createDisplayColumn(table, column) {
3078
3089
  };
3079
3090
 
3080
3091
  var MRT_TableRoot = function MRT_TableRoot(props) {
3081
- var _initialState$current, _initialState$current2, _initialState$isDense, _initialState$isFullS, _initialState$showFil, _initialState$showGlo, _initialState$paginat, _initialState$paginat2, _initialState$paginat3, _initialState$paginat4, _initialState$paginat5, _props$globalFilterFn, _props$state3, _props$state4;
3092
+ var _initialState$current, _initialState$current2, _initialState$isDense, _initialState$isFullS, _initialState$showFil, _initialState$showGlo, _props$globalFilterFn, _props$state3, _props$state4;
3082
3093
 
3083
3094
  var _useState = useState(props.idPrefix),
3084
3095
  idPrefix = _useState[0],
@@ -3089,9 +3100,18 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3089
3100
 
3090
3101
  return setIdPrefix((_props$idPrefix = props.idPrefix) != null ? _props$idPrefix : Math.random().toString(36).substring(2, 9));
3091
3102
  }, [props.idPrefix]);
3103
+ var showActionColumn = props.enableRowActions || props.enableEditing && props.editingMode === 'row';
3104
+ var showExpandColumn = props.enableExpanding || props.enableGrouping;
3092
3105
  var initialState = useMemo(function () {
3106
+ var _props$initialState, _initState$columnOrde;
3107
+
3108
+ 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) {
3110
+ return c.id;
3111
+ })).filter(Boolean) : [];
3112
+
3093
3113
  if (!props.enablePersistentState || !props.idPrefix) {
3094
- return props.initialState;
3114
+ return initState;
3095
3115
  }
3096
3116
 
3097
3117
  if (typeof window === 'undefined') {
@@ -3099,7 +3119,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3099
3119
  console.error('The MRT Persistent Table State feature is not supported if using SSR, but you can wrap your <MaterialReactTable /> in a MUI <NoSsr> tags to let it work');
3100
3120
  }
3101
3121
 
3102
- return props.initialState;
3122
+ return initState;
3103
3123
  }
3104
3124
 
3105
3125
  var storedState = props.persistentStateMode === 'localStorage' ? localStorage.getItem("mrt-" + idPrefix + "-table-state") : props.persistentStateMode === 'sessionStorage' ? sessionStorage.getItem("mrt-" + idPrefix + "-table-state") : '{}';
@@ -3108,11 +3128,11 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3108
3128
  var parsedState = JSON.parse(storedState);
3109
3129
 
3110
3130
  if (parsedState) {
3111
- return _extends({}, props.initialState, parsedState);
3131
+ return _extends({}, initState, parsedState);
3112
3132
  }
3113
3133
  }
3114
3134
 
3115
- return props.initialState;
3135
+ return initState;
3116
3136
  }, []);
3117
3137
 
3118
3138
  var _useState2 = useState((_initialState$current = initialState == null ? void 0 : initialState.currentEditingCell) != null ? _initialState$current : null),
@@ -3139,27 +3159,19 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3139
3159
  showGlobalFilter = _useState7[0],
3140
3160
  setShowGlobalFilter = _useState7[1];
3141
3161
 
3142
- var _useState8 = useState({
3143
- pageIndex: (_initialState$paginat = initialState == null ? void 0 : (_initialState$paginat2 = initialState.pagination) == null ? void 0 : _initialState$paginat2.pageIndex) != null ? _initialState$paginat : 0,
3144
- pageSize: (_initialState$paginat3 = initialState == null ? void 0 : (_initialState$paginat4 = initialState.pagination) == null ? void 0 : _initialState$paginat4.pageSize) != null ? _initialState$paginat3 : 10,
3145
- pageCount: initialState == null ? void 0 : (_initialState$paginat5 = initialState.pagination) == null ? void 0 : _initialState$paginat5.pageCount
3146
- }),
3147
- pagination = _useState8[0],
3148
- setPagination = _useState8[1];
3149
-
3150
- var _useState9 = useState(function () {
3162
+ var _useState8 = useState(function () {
3151
3163
  return Object.assign.apply(Object, [{}].concat(getAllLeafColumnDefs(props.columns).map(function (c) {
3152
3164
  var _ref, _c$filterFn, _initialState$current3, _c$filterSelectOption, _ref2;
3153
3165
 
3154
3166
  return _ref2 = {}, _ref2[c.id] = (_ref = (_c$filterFn = c.filterFn) != null ? _c$filterFn : initialState == null ? void 0 : (_initialState$current3 = initialState.currentFilterFns) == null ? void 0 : _initialState$current3[c.id]) != null ? _ref : !!((_c$filterSelectOption = c.filterSelectOptions) != null && _c$filterSelectOption.length) ? MRT_FILTER_OPTION.EQUALS : MRT_FILTER_OPTION.FUZZY, _ref2;
3155
3167
  })));
3156
3168
  }),
3157
- currentFilterFns = _useState9[0],
3158
- setCurrentFilterFns = _useState9[1];
3169
+ currentFilterFns = _useState8[0],
3170
+ setCurrentFilterFns = _useState8[1];
3159
3171
 
3160
- var _useState10 = useState((_props$globalFilterFn = props.globalFilterFn) != null ? _props$globalFilterFn : MRT_FILTER_OPTION.FUZZY),
3161
- currentGlobalFilterFn = _useState10[0],
3162
- setCurrentGlobalFilterFn = _useState10[1];
3172
+ var _useState9 = useState((_props$globalFilterFn = props.globalFilterFn) != null ? _props$globalFilterFn : MRT_FILTER_OPTION.FUZZY),
3173
+ currentGlobalFilterFn = _useState9[0],
3174
+ setCurrentGlobalFilterFn = _useState9[1];
3163
3175
 
3164
3176
  var table = useMemo(function () {
3165
3177
  return createTable();
@@ -3167,7 +3179,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3167
3179
  var displayColumns = useMemo(function () {
3168
3180
  var _props$localization, _props$localization2, _props$localization3, _props$localization5;
3169
3181
 
3170
- return [(props.enableRowActions || props.enableEditing && props.editingMode === 'row') && createDisplayColumn(table, {
3182
+ return [showActionColumn && createDisplayColumn(table, {
3171
3183
  Cell: function Cell(_ref3) {
3172
3184
  var cell = _ref3.cell;
3173
3185
  return React.createElement(MRT_ToggleRowActionMenuButton, {
@@ -3178,7 +3190,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3178
3190
  header: (_props$localization = props.localization) == null ? void 0 : _props$localization.actions,
3179
3191
  id: 'mrt-row-actions',
3180
3192
  size: 60
3181
- }), (props.enableExpanding || props.enableGrouping) && createDisplayColumn(table, {
3193
+ }), showExpandColumn && createDisplayColumn(table, {
3182
3194
  Cell: function Cell(_ref4) {
3183
3195
  var cell = _ref4.cell;
3184
3196
  return React.createElement(MRT_ExpandButton, {
@@ -3241,18 +3253,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3241
3253
  return _ref7 = {}, _ref7[c.id] = null, _ref7;
3242
3254
  })));
3243
3255
  }) : props.data;
3244
- }, [props.data, (_props$state3 = props.state) == null ? void 0 : _props$state3.isLoading, (_props$state4 = props.state) == null ? void 0 : _props$state4.showSkeletons]);
3245
-
3246
- var _useState11 = useState(function () {
3247
- var _initialState$columnO;
3248
-
3249
- return ((_initialState$columnO = initialState == null ? void 0 : initialState.columnOrder) != null ? _initialState$columnO : props.enableColumnOrdering) ? getAllLeafColumnDefs(columns).map(function (c) {
3250
- return c.id;
3251
- }) : [];
3252
- }),
3253
- columnOrder = _useState11[0],
3254
- setColumnOrder = _useState11[1]; //@ts-ignore
3255
-
3256
+ }, [props.data, (_props$state3 = props.state) == null ? void 0 : _props$state3.isLoading, (_props$state4 = props.state) == null ? void 0 : _props$state4.showSkeletons]); //@ts-ignore
3256
3257
 
3257
3258
  var tableInstance = _extends({}, useTableInstance(table, _extends({
3258
3259
  filterFns: defaultFilterFNs,
@@ -3267,13 +3268,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3267
3268
  return row == null ? void 0 : row.subRows;
3268
3269
  },
3269
3270
  //@ts-ignore
3270
- globalFilterFn: currentGlobalFilterFn,
3271
- onColumnOrderChange: setColumnOrder,
3272
- onPaginationChange: function onPaginationChange(updater) {
3273
- return setPagination(function (old) {
3274
- return functionalUpdate(updater, old);
3275
- });
3276
- }
3271
+ globalFilterFn: currentGlobalFilterFn
3277
3272
  }, props, {
3278
3273
  //@ts-ignore
3279
3274
  columns: columns,
@@ -3281,15 +3276,12 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3281
3276
  idPrefix: idPrefix,
3282
3277
  initialState: initialState,
3283
3278
  state: _extends({
3284
- columnOrder: columnOrder,
3285
3279
  currentEditingCell: currentEditingCell,
3286
3280
  currentEditingRow: currentEditingRow,
3287
3281
  currentFilterFns: currentFilterFns,
3288
3282
  currentGlobalFilterFn: currentGlobalFilterFn,
3289
3283
  isDensePadding: isDensePadding,
3290
3284
  isFullScreen: isFullScreen,
3291
- //@ts-ignore
3292
- pagination: pagination,
3293
3285
  showFilters: showFilters,
3294
3286
  showGlobalFilter: showGlobalFilter
3295
3287
  }, props.state)