material-react-table 0.30.1 → 0.31.1
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 +23 -10
- package/dist/column.utils.d.ts +1 -1
- package/dist/localization.d.ts +1 -0
- package/dist/material-react-table.cjs.development.js +87 -13
- 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 +88 -14
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/toolbar/MRT_ToolbarDropZone.d.ts +7 -0
- package/package.json +4 -7
- package/src/MaterialReactTable.tsx +20 -9
- package/src/body/MRT_TableBodyCell.tsx +4 -0
- package/src/column.utils.ts +1 -0
- package/src/head/MRT_TableHeadCell.tsx +15 -2
- package/src/head/MRT_TableHeadCellGrabHandle.tsx +6 -2
- package/src/inputs/MRT_FilterTextField.tsx +28 -26
- package/src/inputs/MRT_GlobalFilterTextField.tsx +1 -1
- package/src/localization.ts +2 -0
- package/src/table/MRT_TableRoot.tsx +9 -7
- package/src/toolbar/MRT_ToolbarBottom.tsx +5 -0
- package/src/toolbar/MRT_ToolbarDropZone.tsx +54 -0
- package/src/toolbar/MRT_ToolbarTop.tsx +5 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useMemo, useState, useCallback, Fragment, useRef, useLayoutEffect, useEffect } from 'react';
|
|
2
2
|
import { ArrowRight, Cancel, CheckBox, ClearAll, Close, DensityLarge, DensityMedium, DensitySmall, DragHandle, DynamicFeed, Edit, ExpandLess, ExpandMore, FilterAlt, FilterAltOff, FilterList, FilterListOff, FullscreenExit, Fullscreen, KeyboardDoubleArrowDown, MoreHoriz, MoreVert, PushPin, RestartAlt, Save, Search, SearchOff, Sort, ViewColumn, VisibilityOff } from '@mui/icons-material';
|
|
3
3
|
import { filterFns, sortingFns, useReactTable, getCoreRowModel, getExpandedRowModel, getFacetedRowModel, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel } from '@tanstack/react-table';
|
|
4
|
-
import { Tooltip, IconButton, Menu, MenuItem, Box, FormControlLabel, Switch, Typography, Button, Divider, ListItemIcon, Checkbox, debounce, Collapse, TextField, InputAdornment, LinearProgress, TablePagination, Chip, Alert, AlertTitle, useMediaQuery, Toolbar, lighten,
|
|
4
|
+
import { Tooltip, IconButton, Menu, MenuItem, Box, FormControlLabel, Switch, Typography, Button, Divider, ListItemIcon, Checkbox, debounce, Collapse, TextField, InputAdornment, LinearProgress, TablePagination, Chip, Alert, AlertTitle, Fade, alpha, useMediaQuery, Toolbar, lighten, ListItemText, Grow, TableSortLabel, useTheme, TableCell, TableRow, TableHead, darken, Skeleton, TableBody, TableFooter, Table, TableContainer, Paper, Dialog } from '@mui/material';
|
|
5
5
|
import { rankItem, rankings, compareItems } from '@tanstack/match-sorter-utils';
|
|
6
6
|
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
7
7
|
|
|
@@ -49,6 +49,7 @@ var MRT_DefaultLocalization_EN = {
|
|
|
49
49
|
clickToCopy: 'Click to copy',
|
|
50
50
|
columnActions: 'Column Actions',
|
|
51
51
|
copiedToClipboard: 'Copied to clipboard',
|
|
52
|
+
dropToGroupBy: 'Drop to group by {column}',
|
|
52
53
|
edit: 'Edit',
|
|
53
54
|
expand: 'Expand',
|
|
54
55
|
expandAll: 'Expand all',
|
|
@@ -711,7 +712,8 @@ var prepareColumns = function prepareColumns(columnDefs, currentFilterFns) {
|
|
|
711
712
|
if (Object.keys(MRT_FilterFns).includes(currentFilterFns[columnDef.id])) {
|
|
712
713
|
var _MRT_FilterFns$curren;
|
|
713
714
|
|
|
714
|
-
columnDef.filterFn =
|
|
715
|
+
columnDef.filterFn = // @ts-ignore
|
|
716
|
+
(_MRT_FilterFns$curren = MRT_FilterFns[currentFilterFns[columnDef.id]]) != null ? _MRT_FilterFns$curren : MRT_FilterFns.fuzzy; //@ts-ignore
|
|
715
717
|
|
|
716
718
|
columnDef._filterFn = currentFilterFns[columnDef.id];
|
|
717
719
|
}
|
|
@@ -1547,7 +1549,11 @@ var MRT_GlobalFilterTextField = function MRT_GlobalFilterTextField(_ref) {
|
|
|
1547
1549
|
height: '1.75rem',
|
|
1548
1550
|
width: '1.75rem'
|
|
1549
1551
|
}
|
|
1550
|
-
}, React.createElement(SearchIcon, null)))) : React.createElement(SearchIcon,
|
|
1552
|
+
}, React.createElement(SearchIcon, null)))) : React.createElement(SearchIcon, {
|
|
1553
|
+
style: {
|
|
1554
|
+
marginRight: '4px'
|
|
1555
|
+
}
|
|
1556
|
+
}),
|
|
1551
1557
|
endAdornment: React.createElement(InputAdornment, {
|
|
1552
1558
|
position: "end"
|
|
1553
1559
|
}, React.createElement(Tooltip, {
|
|
@@ -1923,6 +1929,48 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
|
|
|
1923
1929
|
})));
|
|
1924
1930
|
};
|
|
1925
1931
|
|
|
1932
|
+
var MRT_ToolbarDropZone = function MRT_ToolbarDropZone(_ref) {
|
|
1933
|
+
var _currentDraggingColum, _currentDraggingColum2;
|
|
1934
|
+
|
|
1935
|
+
var table = _ref.table;
|
|
1936
|
+
var getState = table.getState,
|
|
1937
|
+
_table$options = table.options,
|
|
1938
|
+
enableGrouping = _table$options.enableGrouping,
|
|
1939
|
+
localization = _table$options.localization,
|
|
1940
|
+
setCurrentHoveredColumn = table.setCurrentHoveredColumn;
|
|
1941
|
+
|
|
1942
|
+
var _getState = getState(),
|
|
1943
|
+
currentDraggingColumn = _getState.currentDraggingColumn,
|
|
1944
|
+
currentHoveredColumn = _getState.currentHoveredColumn;
|
|
1945
|
+
|
|
1946
|
+
var handleDragEnter = function handleDragEnter(_event) {
|
|
1947
|
+
setCurrentHoveredColumn({
|
|
1948
|
+
id: 'drop-zone'
|
|
1949
|
+
});
|
|
1950
|
+
};
|
|
1951
|
+
|
|
1952
|
+
return React.createElement(Fade, {
|
|
1953
|
+
unmountOnExit: true,
|
|
1954
|
+
mountOnEnter: true,
|
|
1955
|
+
"in": !!enableGrouping && !!currentDraggingColumn
|
|
1956
|
+
}, React.createElement(Box, {
|
|
1957
|
+
sx: function sx(theme) {
|
|
1958
|
+
return {
|
|
1959
|
+
alignItems: 'center',
|
|
1960
|
+
backgroundColor: alpha(theme.palette.info.main, (currentHoveredColumn == null ? void 0 : currentHoveredColumn.id) === 'drop-zone' ? 0.2 : 0.1),
|
|
1961
|
+
border: "dashed " + theme.palette.info.main + " 2px",
|
|
1962
|
+
display: 'flex',
|
|
1963
|
+
justifyContent: 'center',
|
|
1964
|
+
height: 'calc(100% - 4px)',
|
|
1965
|
+
position: 'absolute',
|
|
1966
|
+
width: 'calc(100% - 4px)',
|
|
1967
|
+
zIndex: 2
|
|
1968
|
+
};
|
|
1969
|
+
},
|
|
1970
|
+
onDragEnter: handleDragEnter
|
|
1971
|
+
}, React.createElement(Typography, null, localization.dropToGroupBy.replace('{column}', (_currentDraggingColum = currentDraggingColumn == null ? void 0 : (_currentDraggingColum2 = currentDraggingColumn.columnDef) == null ? void 0 : _currentDraggingColum2.header) != null ? _currentDraggingColum : ''))));
|
|
1972
|
+
};
|
|
1973
|
+
|
|
1926
1974
|
var commonToolbarStyles = function commonToolbarStyles(_ref) {
|
|
1927
1975
|
var theme = _ref.theme;
|
|
1928
1976
|
return {
|
|
@@ -1950,6 +1998,7 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
|
|
|
1950
1998
|
positionGlobalFilter = _table$options.positionGlobalFilter,
|
|
1951
1999
|
positionPagination = _table$options.positionPagination,
|
|
1952
2000
|
positionToolbarAlertBanner = _table$options.positionToolbarAlertBanner,
|
|
2001
|
+
positionToolbarDropZone = _table$options.positionToolbarDropZone,
|
|
1953
2002
|
renderToolbarTopCustomActions = _table$options.renderToolbarTopCustomActions,
|
|
1954
2003
|
tableId = _table$options.tableId;
|
|
1955
2004
|
|
|
@@ -1977,6 +2026,8 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
|
|
|
1977
2026
|
}), positionToolbarAlertBanner === 'top' && React.createElement(MRT_ToolbarAlertBanner, {
|
|
1978
2027
|
stackAlertBanner: stackAlertBanner,
|
|
1979
2028
|
table: table
|
|
2029
|
+
}), ['both', 'top'].includes(positionToolbarDropZone != null ? positionToolbarDropZone : '') && React.createElement(MRT_ToolbarDropZone, {
|
|
2030
|
+
table: table
|
|
1980
2031
|
}), React.createElement(Box, {
|
|
1981
2032
|
sx: {
|
|
1982
2033
|
alignItems: 'flex-start',
|
|
@@ -2014,6 +2065,7 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
|
|
|
2014
2065
|
muiTableToolbarBottomProps = _table$options.muiTableToolbarBottomProps,
|
|
2015
2066
|
positionPagination = _table$options.positionPagination,
|
|
2016
2067
|
positionToolbarAlertBanner = _table$options.positionToolbarAlertBanner,
|
|
2068
|
+
positionToolbarDropZone = _table$options.positionToolbarDropZone,
|
|
2017
2069
|
renderToolbarBottomCustomActions = _table$options.renderToolbarBottomCustomActions,
|
|
2018
2070
|
tableId = _table$options.tableId;
|
|
2019
2071
|
|
|
@@ -2045,6 +2097,8 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
|
|
|
2045
2097
|
table: table
|
|
2046
2098
|
}), positionToolbarAlertBanner === 'bottom' && React.createElement(MRT_ToolbarAlertBanner, {
|
|
2047
2099
|
table: table
|
|
2100
|
+
}), ['both', 'bottom'].includes(positionToolbarDropZone != null ? positionToolbarDropZone : '') && React.createElement(MRT_ToolbarDropZone, {
|
|
2101
|
+
table: table
|
|
2048
2102
|
}), React.createElement(Box, {
|
|
2049
2103
|
sx: {
|
|
2050
2104
|
display: 'flex',
|
|
@@ -2298,7 +2352,11 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
2298
2352
|
}, React.createElement(FilterListIcon, null)))), filterChipLabel && React.createElement(Chip, {
|
|
2299
2353
|
onDelete: handleClearEmptyFilterChip,
|
|
2300
2354
|
label: filterChipLabel
|
|
2301
|
-
})) : React.createElement(FilterListIcon,
|
|
2355
|
+
})) : React.createElement(FilterListIcon, {
|
|
2356
|
+
style: {
|
|
2357
|
+
marginRight: '4px'
|
|
2358
|
+
}
|
|
2359
|
+
}),
|
|
2302
2360
|
endAdornment: !filterChipLabel && React.createElement(InputAdornment, {
|
|
2303
2361
|
position: "end"
|
|
2304
2362
|
}, React.createElement(Tooltip, {
|
|
@@ -2343,7 +2401,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
2343
2401
|
return _extends({
|
|
2344
2402
|
p: 0,
|
|
2345
2403
|
minWidth: !filterChipLabel ? '6rem' : 'auto',
|
|
2346
|
-
width: '
|
|
2404
|
+
width: '100%',
|
|
2347
2405
|
'& .MuiSelect-icon': {
|
|
2348
2406
|
mr: '1.5rem'
|
|
2349
2407
|
}
|
|
@@ -2517,7 +2575,9 @@ var MRT_TableHeadCellGrabHandle = function MRT_TableHeadCellGrabHandle(_ref) {
|
|
|
2517
2575
|
targetColumn: currentHoveredColumn
|
|
2518
2576
|
});
|
|
2519
2577
|
|
|
2520
|
-
if (
|
|
2578
|
+
if ((currentHoveredColumn == null ? void 0 : currentHoveredColumn.id) === 'drop-zone') {
|
|
2579
|
+
column.toggleGrouping();
|
|
2580
|
+
} else if (enableColumnOrdering && currentHoveredColumn && (currentHoveredColumn == null ? void 0 : currentHoveredColumn.id) !== (currentDraggingColumn == null ? void 0 : currentDraggingColumn.id)) {
|
|
2521
2581
|
setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));
|
|
2522
2582
|
}
|
|
2523
2583
|
|
|
@@ -2624,7 +2684,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
2624
2684
|
var _getState = getState(),
|
|
2625
2685
|
density = _getState.density,
|
|
2626
2686
|
currentDraggingColumn = _getState.currentDraggingColumn,
|
|
2627
|
-
currentHoveredColumn = _getState.currentHoveredColumn
|
|
2687
|
+
currentHoveredColumn = _getState.currentHoveredColumn,
|
|
2688
|
+
showColumnFilters = _getState.showColumnFilters;
|
|
2628
2689
|
|
|
2629
2690
|
var column = header.column;
|
|
2630
2691
|
var columnDef = column.columnDef;
|
|
@@ -2653,6 +2714,10 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
2653
2714
|
};
|
|
2654
2715
|
|
|
2655
2716
|
var handleDragEnter = function handleDragEnter(_e) {
|
|
2717
|
+
if (enableGrouping && (currentHoveredColumn == null ? void 0 : currentHoveredColumn.id) === 'drop-zone') {
|
|
2718
|
+
setCurrentHoveredColumn(null);
|
|
2719
|
+
}
|
|
2720
|
+
|
|
2656
2721
|
if (enableColumnOrdering && currentDraggingColumn) {
|
|
2657
2722
|
setCurrentHoveredColumn(columnDef.enableColumnOrdering !== false ? column : null);
|
|
2658
2723
|
}
|
|
@@ -2687,7 +2752,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
2687
2752
|
overflow: 'visible',
|
|
2688
2753
|
opacity: (currentDraggingColumn == null ? void 0 : currentDraggingColumn.id) === column.id || (currentHoveredColumn == null ? void 0 : currentHoveredColumn.id) === column.id ? 0.5 : 1,
|
|
2689
2754
|
p: density === 'compact' ? '0.5rem' : density === 'comfortable' ? columnDefType === 'display' ? '0.75rem' : '1rem' : columnDefType === 'display' ? '1rem 1.25rem' : '1.5rem',
|
|
2690
|
-
pb: columnDefType === 'display' ? 0 :
|
|
2755
|
+
pb: columnDefType === 'display' ? 0 : showColumnFilters || density === 'compact' ? '0.4rem' : '0.6rem',
|
|
2691
2756
|
position: column.getIsPinned() && columnDefType !== 'group' ? 'sticky' : undefined,
|
|
2692
2757
|
pt: columnDefType === 'group' ? 0 : density === 'compact' ? '0.25' : density === 'comfortable' ? '.75rem' : '1.25rem',
|
|
2693
2758
|
right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
|
|
@@ -2987,6 +3052,7 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
|
|
|
2987
3052
|
enableClickToCopy = _table$options.enableClickToCopy,
|
|
2988
3053
|
enableColumnOrdering = _table$options.enableColumnOrdering,
|
|
2989
3054
|
enableEditing = _table$options.enableEditing,
|
|
3055
|
+
enableGrouping = _table$options.enableGrouping,
|
|
2990
3056
|
enablePagination = _table$options.enablePagination,
|
|
2991
3057
|
enableRowNumbers = _table$options.enableRowNumbers,
|
|
2992
3058
|
muiTableBodyCellProps = _table$options.muiTableBodyCellProps,
|
|
@@ -3053,6 +3119,10 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
|
|
|
3053
3119
|
};
|
|
3054
3120
|
|
|
3055
3121
|
var handleDragEnter = function handleDragEnter(_e) {
|
|
3122
|
+
if (enableGrouping && (currentHoveredColumn == null ? void 0 : currentHoveredColumn.id) === 'drop-zone') {
|
|
3123
|
+
setCurrentHoveredColumn(null);
|
|
3124
|
+
}
|
|
3125
|
+
|
|
3056
3126
|
if (enableColumnOrdering && currentDraggingColumn) {
|
|
3057
3127
|
setCurrentHoveredColumn(columnDef.enableColumnOrdering !== false ? column : null);
|
|
3058
3128
|
}
|
|
@@ -3713,15 +3783,16 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
|
|
|
3713
3783
|
getGroupedRowModel: getGroupedRowModel(),
|
|
3714
3784
|
getPaginationRowModel: getPaginationRowModel(),
|
|
3715
3785
|
getSortedRowModel: getSortedRowModel(),
|
|
3716
|
-
onColumnOrderChange: setColumnOrder
|
|
3786
|
+
onColumnOrderChange: setColumnOrder,
|
|
3787
|
+
getSubRows: function getSubRows(row) {
|
|
3788
|
+
return row == null ? void 0 : row.subRows;
|
|
3789
|
+
}
|
|
3717
3790
|
}, props, {
|
|
3718
3791
|
//@ts-ignore
|
|
3719
3792
|
columns: columnDefs,
|
|
3720
3793
|
data: data,
|
|
3721
|
-
|
|
3722
|
-
|
|
3723
|
-
},
|
|
3724
|
-
globalFilterFn: (_MRT_FilterFns$curren = MRT_FilterFns[currentGlobalFilterFn]) != null ? _MRT_FilterFns$curren : MRT_FilterFns.fuzzy,
|
|
3794
|
+
globalFilterFn: //@ts-ignore
|
|
3795
|
+
(_MRT_FilterFns$curren = MRT_FilterFns[currentGlobalFilterFn]) != null ? _MRT_FilterFns$curren : MRT_FilterFns.fuzzy,
|
|
3725
3796
|
initialState: initialState,
|
|
3726
3797
|
state: _extends({
|
|
3727
3798
|
columnOrder: columnOrder,
|
|
@@ -3777,7 +3848,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
|
|
|
3777
3848
|
}));
|
|
3778
3849
|
};
|
|
3779
3850
|
|
|
3780
|
-
var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilterChangeMode", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterChangeMode", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "rowNumberMode", "selectAllMode"];
|
|
3851
|
+
var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilterChangeMode", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterChangeMode", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberMode", "selectAllMode"];
|
|
3781
3852
|
var MaterialReactTable = (function (_ref) {
|
|
3782
3853
|
var _ref$autoResetExpande = _ref.autoResetExpanded,
|
|
3783
3854
|
autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
|
|
@@ -3857,6 +3928,8 @@ var MaterialReactTable = (function (_ref) {
|
|
|
3857
3928
|
positionPagination = _ref$positionPaginati === void 0 ? 'bottom' : _ref$positionPaginati,
|
|
3858
3929
|
_ref$positionToolbarA = _ref.positionToolbarAlertBanner,
|
|
3859
3930
|
positionToolbarAlertBanner = _ref$positionToolbarA === void 0 ? 'top' : _ref$positionToolbarA,
|
|
3931
|
+
_ref$positionToolbarD = _ref.positionToolbarDropZone,
|
|
3932
|
+
positionToolbarDropZone = _ref$positionToolbarD === void 0 ? 'top' : _ref$positionToolbarD,
|
|
3860
3933
|
_ref$rowNumberMode = _ref.rowNumberMode,
|
|
3861
3934
|
rowNumberMode = _ref$rowNumberMode === void 0 ? 'original' : _ref$rowNumberMode,
|
|
3862
3935
|
_ref$selectAllMode = _ref.selectAllMode,
|
|
@@ -3902,6 +3975,7 @@ var MaterialReactTable = (function (_ref) {
|
|
|
3902
3975
|
positionGlobalFilter: positionGlobalFilter,
|
|
3903
3976
|
positionPagination: positionPagination,
|
|
3904
3977
|
positionToolbarAlertBanner: positionToolbarAlertBanner,
|
|
3978
|
+
positionToolbarDropZone: positionToolbarDropZone,
|
|
3905
3979
|
rowNumberMode: rowNumberMode,
|
|
3906
3980
|
selectAllMode: selectAllMode
|
|
3907
3981
|
}, rest));
|