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.
- package/dist/MaterialReactTable.d.ts +5 -4
- package/dist/localization.d.ts +1 -0
- package/dist/material-react-table.cjs.development.js +109 -117
- package/dist/material-react-table.cjs.development.js.map +1 -1
- package/dist/material-react-table.cjs.production.min.js +1 -1
- package/dist/material-react-table.cjs.production.min.js.map +1 -1
- package/dist/material-react-table.esm.js +110 -118
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/menus/MRT_ShowHideColumnsMenu.d.ts +1 -1
- package/package.json +12 -12
- package/src/MaterialReactTable.tsx +5 -6
- package/src/body/MRT_TableBodyCell.tsx +8 -9
- package/src/buttons/MRT_CopyButton.tsx +7 -3
- package/src/buttons/MRT_ToggleColumnActionMenuButton.tsx +5 -4
- package/src/footer/MRT_TableFooterCell.tsx +2 -2
- package/src/footer/MRT_TableFooterRow.tsx +4 -4
- package/src/head/MRT_DraggableTableHeadCell.tsx +16 -9
- package/src/head/MRT_TableHeadCell.tsx +4 -9
- package/src/head/MRT_TableHeadCellFilterLabel.tsx +3 -1
- package/src/head/MRT_TableHeadCellResizeHandle.tsx +3 -2
- package/src/head/MRT_TableHeadCellSortLabel.tsx +4 -8
- package/src/inputs/MRT_FilterTextField.tsx +1 -1
- package/src/localization.ts +2 -0
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +24 -38
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +15 -6
- package/src/table/MRT_TableRoot.tsx +29 -28
|
@@ -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
|
|
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
|
|
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 (
|
|
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:
|
|
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
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
}
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
}, [getAllColumns(),
|
|
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 &&
|
|
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),
|
|
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(
|
|
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 &&
|
|
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
|
|
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 =
|
|
2194
|
+
var mcTableHeadCellColumnActionsButtonProps = columnDef.muiTableHeadCellColumnActionsButtonProps instanceof Function ? columnDef.muiTableHeadCellColumnActionsButtonProps({
|
|
2192
2195
|
column: column,
|
|
2193
2196
|
tableInstance: tableInstance
|
|
2194
|
-
}) :
|
|
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
|
|
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 = (
|
|
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
|
-
}) : (
|
|
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
|
|
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(
|
|
2368
|
-
|
|
2369
|
-
|
|
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(
|
|
2376
|
-
return reorder(
|
|
2382
|
+
drop: function drop(movingHeader) {
|
|
2383
|
+
return reorder(movingHeader, header);
|
|
2377
2384
|
}
|
|
2378
2385
|
}),
|
|
2379
|
-
|
|
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
|
-
|
|
2394
|
-
|
|
2400
|
+
dragRef = _useDrag[1],
|
|
2401
|
+
previewRef = _useDrag[2];
|
|
2395
2402
|
|
|
2396
2403
|
return React.createElement(MRT_TableHeadCell, {
|
|
2397
|
-
dragRef:
|
|
2398
|
-
dropRef:
|
|
2404
|
+
dragRef: dragRef,
|
|
2405
|
+
dropRef: dropRef,
|
|
2399
2406
|
header: header,
|
|
2400
2407
|
isDragging: isDragging,
|
|
2401
|
-
previewRef:
|
|
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 =
|
|
2573
|
+
var mcTableBodyCellCopyButtonProps = columnDef.muiTableBodyCellCopyButtonProps instanceof Function ? columnDef.muiTableBodyCellCopyButtonProps({
|
|
2565
2574
|
cell: cell,
|
|
2566
2575
|
tableInstance: tableInstance
|
|
2567
|
-
}) :
|
|
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,
|
|
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
|
|
2642
|
-
}, [
|
|
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 ?
|
|
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)) :
|
|
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, (
|
|
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 ?
|
|
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 ?
|
|
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:
|
|
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 (
|
|
2890
|
-
return typeof
|
|
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,
|
|
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
|
|
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
|
|
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({},
|
|
3131
|
+
return _extends({}, initState, parsedState);
|
|
3112
3132
|
}
|
|
3113
3133
|
}
|
|
3114
3134
|
|
|
3115
|
-
return
|
|
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 =
|
|
3158
|
-
setCurrentFilterFns =
|
|
3169
|
+
currentFilterFns = _useState8[0],
|
|
3170
|
+
setCurrentFilterFns = _useState8[1];
|
|
3159
3171
|
|
|
3160
|
-
var
|
|
3161
|
-
currentGlobalFilterFn =
|
|
3162
|
-
setCurrentGlobalFilterFn =
|
|
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 [
|
|
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
|
-
}),
|
|
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)
|