material-react-table 0.33.6 → 0.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/MaterialReactTable.d.ts +45 -53
- package/dist/cjs/buttons/MRT_ColumnPinningButtons.d.ts +4 -5
- package/dist/cjs/buttons/MRT_FullScreenToggleButton.d.ts +3 -4
- package/dist/cjs/buttons/MRT_GrabHandleButton.d.ts +4 -4
- package/dist/cjs/buttons/MRT_ShowHideColumnsButton.d.ts +3 -4
- package/dist/cjs/buttons/MRT_ToggleDensePaddingButton.d.ts +3 -4
- package/dist/cjs/buttons/MRT_ToggleFiltersButton.d.ts +3 -4
- package/dist/cjs/buttons/MRT_ToggleGlobalFilterButton.d.ts +3 -4
- package/dist/cjs/index.d.ts +8 -2
- package/dist/cjs/index.js +651 -140
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/inputs/MRT_GlobalFilterTextField.d.ts +3 -4
- package/dist/cjs/menus/MRT_FilterOptionMenu.d.ts +3 -4
- package/dist/cjs/menus/MRT_ShowHideColumnsMenu.d.ts +3 -4
- package/dist/cjs/menus/MRT_ShowHideColumnsMenuItems.d.ts +8 -8
- package/dist/cjs/table/MRT_TableRoot.d.ts +0 -1
- package/dist/cjs/toolbar/MRT_ToolbarInternalButtons.d.ts +1 -1
- package/dist/esm/MaterialReactTable.d.ts +45 -53
- package/dist/esm/buttons/MRT_ColumnPinningButtons.d.ts +4 -5
- package/dist/esm/buttons/MRT_FullScreenToggleButton.d.ts +3 -4
- package/dist/esm/buttons/MRT_GrabHandleButton.d.ts +4 -4
- package/dist/esm/buttons/MRT_ShowHideColumnsButton.d.ts +3 -4
- package/dist/esm/buttons/MRT_ToggleDensePaddingButton.d.ts +3 -4
- package/dist/esm/buttons/MRT_ToggleFiltersButton.d.ts +3 -4
- package/dist/esm/buttons/MRT_ToggleGlobalFilterButton.d.ts +3 -4
- package/dist/esm/index.d.ts +8 -2
- package/dist/esm/inputs/MRT_GlobalFilterTextField.d.ts +3 -4
- package/dist/esm/material-react-table.esm.js +644 -141
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/menus/MRT_FilterOptionMenu.d.ts +3 -4
- package/dist/esm/menus/MRT_ShowHideColumnsMenu.d.ts +3 -4
- package/dist/esm/menus/MRT_ShowHideColumnsMenuItems.d.ts +8 -8
- package/dist/esm/table/MRT_TableRoot.d.ts +0 -1
- package/dist/esm/toolbar/MRT_ToolbarInternalButtons.d.ts +1 -1
- package/dist/index.d.ts +76 -54
- package/package.json +5 -5
- package/src/MaterialReactTable.tsx +49 -50
- package/src/body/MRT_TableBody.tsx +30 -11
- package/src/body/MRT_TableBodyCell.tsx +17 -18
- package/src/body/MRT_TableBodyRow.tsx +7 -10
- package/src/body/MRT_TableBodyRowGrabHandle.tsx +5 -5
- package/src/buttons/MRT_ColumnPinningButtons.tsx +10 -5
- package/src/buttons/MRT_EditActionButtons.tsx +10 -6
- package/src/buttons/MRT_FullScreenToggleButton.tsx +10 -4
- package/src/buttons/MRT_GrabHandleButton.tsx +5 -5
- package/src/buttons/MRT_ShowHideColumnsButton.tsx +10 -4
- package/src/buttons/MRT_ToggleDensePaddingButton.tsx +10 -4
- package/src/buttons/MRT_ToggleFiltersButton.tsx +10 -4
- package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +10 -4
- package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +4 -4
- package/src/head/MRT_TableHeadCell.tsx +11 -16
- package/src/head/MRT_TableHeadCellGrabHandle.tsx +11 -12
- package/src/index.tsx +17 -3
- package/src/inputs/MRT_EditCellTextField.tsx +13 -13
- package/src/inputs/MRT_GlobalFilterTextField.tsx +8 -10
- package/src/menus/MRT_FilterOptionMenu.tsx +5 -5
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +13 -10
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +24 -22
- package/src/table/MRT_TableRoot.tsx +59 -66
- package/src/toolbar/MRT_ToolbarDropZone.tsx +6 -10
- package/src/toolbar/MRT_ToolbarInternalButtons.tsx +2 -7
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import React, { useMemo, useState, useCallback, Fragment, useEffect,
|
|
1
|
+
import React, { useMemo, useRef, useState, useCallback, Fragment, useEffect, useLayoutEffect } from 'react';
|
|
2
2
|
import { aggregationFns, filterFns, sortingFns, useReactTable, getCoreRowModel, getExpandedRowModel, getFacetedRowModel, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel } from '@tanstack/react-table';
|
|
3
3
|
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';
|
|
4
4
|
import { rankItem, rankings, compareItems } from '@tanstack/match-sorter-utils';
|
|
5
5
|
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';
|
|
6
|
-
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
7
6
|
|
|
8
7
|
/******************************************************************************
|
|
9
8
|
Copyright (c) Microsoft Corporation.
|
|
@@ -422,7 +421,7 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, table,
|
|
|
422
421
|
label)))));
|
|
423
422
|
};
|
|
424
423
|
|
|
425
|
-
const MRT_ColumnPinningButtons = ({ column, table }) => {
|
|
424
|
+
const MRT_ColumnPinningButtons = ({ column, table, }) => {
|
|
426
425
|
const { options: { icons: { PushPinIcon }, localization, }, } = table;
|
|
427
426
|
const handlePinColumn = (pinDirection) => {
|
|
428
427
|
column.pin(pinDirection);
|
|
@@ -560,7 +559,7 @@ const getDefaultColumnFilterFn = (columnDef) => {
|
|
|
560
559
|
return 'fuzzy';
|
|
561
560
|
};
|
|
562
561
|
|
|
563
|
-
const MRT_ShowHideColumnsMenuItems = ({ allColumns,
|
|
562
|
+
const MRT_ShowHideColumnsMenuItems = ({ allColumns, hoveredColumn, setHoveredColumn, column, isSubMenu, table, }) => {
|
|
564
563
|
var _a;
|
|
565
564
|
const { getState, options: { enableColumnOrdering, enableHiding, enablePinning, localization, }, setColumnOrder, } = table;
|
|
566
565
|
const { columnOrder } = getState();
|
|
@@ -580,7 +579,7 @@ const MRT_ShowHideColumnsMenuItems = ({ allColumns, currentHoveredColumn, setCur
|
|
|
580
579
|
column.toggleVisibility();
|
|
581
580
|
}
|
|
582
581
|
};
|
|
583
|
-
const menuItemRef =
|
|
582
|
+
const menuItemRef = useRef(null);
|
|
584
583
|
const [isDragging, setIsDragging] = useState(false);
|
|
585
584
|
const handleDragStart = (e) => {
|
|
586
585
|
setIsDragging(true);
|
|
@@ -588,14 +587,14 @@ const MRT_ShowHideColumnsMenuItems = ({ allColumns, currentHoveredColumn, setCur
|
|
|
588
587
|
};
|
|
589
588
|
const handleDragEnd = (_e) => {
|
|
590
589
|
setIsDragging(false);
|
|
591
|
-
|
|
592
|
-
if (
|
|
593
|
-
setColumnOrder(reorderColumn(column,
|
|
590
|
+
setHoveredColumn(null);
|
|
591
|
+
if (hoveredColumn) {
|
|
592
|
+
setColumnOrder(reorderColumn(column, hoveredColumn, columnOrder));
|
|
594
593
|
}
|
|
595
594
|
};
|
|
596
595
|
const handleDragEnter = (_e) => {
|
|
597
596
|
if (!isDragging) {
|
|
598
|
-
|
|
597
|
+
setHoveredColumn(column);
|
|
599
598
|
}
|
|
600
599
|
};
|
|
601
600
|
return (React.createElement(React.Fragment, null,
|
|
@@ -606,7 +605,7 @@ const MRT_ShowHideColumnsMenuItems = ({ allColumns, currentHoveredColumn, setCur
|
|
|
606
605
|
opacity: isDragging ? 0.5 : 1,
|
|
607
606
|
outline: isDragging
|
|
608
607
|
? `1px dashed ${theme.palette.divider}`
|
|
609
|
-
: (
|
|
608
|
+
: (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
|
|
610
609
|
? `2px dashed ${theme.palette.primary.main}`
|
|
611
610
|
: 'none',
|
|
612
611
|
pl: `${(column.depth + 0.5) * 2}rem`,
|
|
@@ -636,7 +635,7 @@ const MRT_ShowHideColumnsMenuItems = ({ allColumns, currentHoveredColumn, setCur
|
|
|
636
635
|
React.createElement(Switch, null)), disabled: (isSubMenu && switchChecked) ||
|
|
637
636
|
!column.getCanHide() ||
|
|
638
637
|
column.getIsGrouped(), label: columnDef.header, onChange: () => handleToggleColumnHidden(column) })) : (React.createElement(Typography, { sx: { alignSelf: 'center' } }, columnDef.header)))), (_a = column.columns) === null || _a === void 0 ? void 0 :
|
|
639
|
-
_a.map((c, i) => (React.createElement(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: c,
|
|
638
|
+
_a.map((c, i) => (React.createElement(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: c, hoveredColumn: hoveredColumn, isSubMenu: isSubMenu, key: `${i}-${c.id}`, setHoveredColumn: setHoveredColumn, table: table })))));
|
|
640
639
|
};
|
|
641
640
|
|
|
642
641
|
const MRT_ShowHideColumnsMenu = ({ anchorEl, isSubMenu, setAnchorEl, table, }) => {
|
|
@@ -666,7 +665,7 @@ const MRT_ShowHideColumnsMenu = ({ anchorEl, isSubMenu, setAnchorEl, table, }) =
|
|
|
666
665
|
getLeftLeafColumns(),
|
|
667
666
|
getRightLeafColumns(),
|
|
668
667
|
]);
|
|
669
|
-
const [
|
|
668
|
+
const [hoveredColumn, setHoveredColumn] = useState(null);
|
|
670
669
|
return (React.createElement(Menu, { anchorEl: anchorEl, open: !!anchorEl, onClose: () => setAnchorEl(null), MenuListProps: {
|
|
671
670
|
dense: density === 'compact',
|
|
672
671
|
} },
|
|
@@ -681,7 +680,7 @@ const MRT_ShowHideColumnsMenu = ({ anchorEl, isSubMenu, setAnchorEl, table, }) =
|
|
|
681
680
|
!isSubMenu && enablePinning && (React.createElement(Button, { disabled: !getIsSomeColumnsPinned(), onClick: () => table.resetColumnPinning(true) }, localization.unpinAll)),
|
|
682
681
|
React.createElement(Button, { disabled: getIsAllColumnsVisible(), onClick: () => toggleAllColumnsVisible(true) }, localization.showAll)),
|
|
683
682
|
React.createElement(Divider, null),
|
|
684
|
-
allColumns.map((column, index) => (React.createElement(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: column,
|
|
683
|
+
allColumns.map((column, index) => (React.createElement(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: column, hoveredColumn: hoveredColumn, isSubMenu: isSubMenu, key: `${index}-${column.id}`, setHoveredColumn: setHoveredColumn, table: table })))));
|
|
685
684
|
};
|
|
686
685
|
|
|
687
686
|
const commonMenuItemStyles = {
|
|
@@ -874,16 +873,20 @@ const MRT_RowActionMenu = ({ anchorEl, handleEdit, row, setAnchorEl, table, }) =
|
|
|
874
873
|
};
|
|
875
874
|
|
|
876
875
|
const MRT_EditActionButtons = ({ row, table }) => {
|
|
877
|
-
const { getState, options: { icons: { CancelIcon, SaveIcon }, localization, onEditRowSubmit, },
|
|
878
|
-
const {
|
|
876
|
+
const { getState, options: { icons: { CancelIcon, SaveIcon }, localization, onEditRowSubmit, }, setEditingRow, } = table;
|
|
877
|
+
const { editingRow } = getState();
|
|
879
878
|
const handleCancel = () => {
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
setCurrentEditingRow(null);
|
|
879
|
+
row._valuesCache = Object.assign({}, row.original);
|
|
880
|
+
setEditingRow(null);
|
|
883
881
|
};
|
|
884
882
|
const handleSave = () => {
|
|
885
|
-
|
|
886
|
-
|
|
883
|
+
var _a;
|
|
884
|
+
onEditRowSubmit === null || onEditRowSubmit === void 0 ? void 0 : onEditRowSubmit({
|
|
885
|
+
row: editingRow !== null && editingRow !== void 0 ? editingRow : row,
|
|
886
|
+
table,
|
|
887
|
+
values: (_a = editingRow === null || editingRow === void 0 ? void 0 : editingRow._valuesCache) !== null && _a !== void 0 ? _a : Object.assign({}, row.original),
|
|
888
|
+
});
|
|
889
|
+
setEditingRow(null);
|
|
887
890
|
};
|
|
888
891
|
return (React.createElement(Box, { sx: { display: 'flex', gap: '0.75rem' } },
|
|
889
892
|
React.createElement(Tooltip, { arrow: true, title: localization.cancel },
|
|
@@ -905,8 +908,8 @@ const commonIconButtonStyles = {
|
|
|
905
908
|
},
|
|
906
909
|
};
|
|
907
910
|
const MRT_ToggleRowActionMenuButton = ({ row, table }) => {
|
|
908
|
-
const { getState, options: { enableEditing, icons: { EditIcon, MoreHorizIcon }, localization, renderRowActionMenuItems, renderRowActions, },
|
|
909
|
-
const {
|
|
911
|
+
const { getState, options: { enableEditing, icons: { EditIcon, MoreHorizIcon }, localization, renderRowActionMenuItems, renderRowActions, }, setEditingRow, } = table;
|
|
912
|
+
const { editingRow } = getState();
|
|
910
913
|
const [anchorEl, setAnchorEl] = useState(null);
|
|
911
914
|
const handleOpenRowActionMenu = (event) => {
|
|
912
915
|
event.stopPropagation();
|
|
@@ -914,10 +917,10 @@ const MRT_ToggleRowActionMenuButton = ({ row, table }) => {
|
|
|
914
917
|
setAnchorEl(event.currentTarget);
|
|
915
918
|
};
|
|
916
919
|
const handleStartEditMode = () => {
|
|
917
|
-
|
|
920
|
+
setEditingRow(Object.assign({}, row));
|
|
918
921
|
setAnchorEl(null);
|
|
919
922
|
};
|
|
920
|
-
return (React.createElement(React.Fragment, null, renderRowActions ? (React.createElement(React.Fragment, null, renderRowActions({ row, table }))) : row.id === (
|
|
923
|
+
return (React.createElement(React.Fragment, null, renderRowActions ? (React.createElement(React.Fragment, null, renderRowActions({ row, table }))) : row.id === (editingRow === null || editingRow === void 0 ? void 0 : editingRow.id) ? (React.createElement(MRT_EditActionButtons, { row: row, table: table })) : !renderRowActionMenuItems && enableEditing ? (React.createElement(Tooltip, { placement: "right", arrow: true, title: localization.edit },
|
|
921
924
|
React.createElement(IconButton, { sx: commonIconButtonStyles, onClick: handleStartEditMode },
|
|
922
925
|
React.createElement(EditIcon, null)))) : renderRowActionMenuItems ? (React.createElement(React.Fragment, null,
|
|
923
926
|
React.createElement(Tooltip, { arrow: true, enterDelay: 1000, enterNextDelay: 1000, title: localization.rowActions },
|
|
@@ -950,7 +953,7 @@ const MRT_SelectCheckbox = ({ row, selectAll, table }) => {
|
|
|
950
953
|
: checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.sx))) }))));
|
|
951
954
|
};
|
|
952
955
|
|
|
953
|
-
const MRT_GlobalFilterTextField = ({ table }) => {
|
|
956
|
+
const MRT_GlobalFilterTextField = ({ table, }) => {
|
|
954
957
|
var _a;
|
|
955
958
|
const { getState, setGlobalFilter, options: { enableGlobalFilterChangeMode, icons: { SearchIcon, CloseIcon }, localization, muiSearchTextFieldProps, tableId, }, } = table;
|
|
956
959
|
const { globalFilter, showGlobalFilter } = getState();
|
|
@@ -1135,11 +1138,6 @@ const MRT_ToolbarInternalButtons = ({ table }) => {
|
|
|
1135
1138
|
display: 'flex',
|
|
1136
1139
|
zIndex: 3,
|
|
1137
1140
|
} }, (_a = renderToolbarInternalActions === null || renderToolbarInternalActions === void 0 ? void 0 : renderToolbarInternalActions({
|
|
1138
|
-
MRT_FullScreenToggleButton,
|
|
1139
|
-
MRT_ShowHideColumnsButton,
|
|
1140
|
-
MRT_ToggleDensePaddingButton,
|
|
1141
|
-
MRT_ToggleFiltersButton,
|
|
1142
|
-
MRT_ToggleGlobalFilterButton,
|
|
1143
1141
|
table,
|
|
1144
1142
|
})) !== null && _a !== void 0 ? _a : (React.createElement(React.Fragment, null,
|
|
1145
1143
|
enableGlobalFilter && positionGlobalFilter === 'right' && (React.createElement(MRT_GlobalFilterTextField, { table: table })),
|
|
@@ -1152,15 +1150,15 @@ const MRT_ToolbarInternalButtons = ({ table }) => {
|
|
|
1152
1150
|
|
|
1153
1151
|
const MRT_ToolbarDropZone = ({ table }) => {
|
|
1154
1152
|
var _a, _b;
|
|
1155
|
-
const { getState, options: { enableGrouping, localization },
|
|
1156
|
-
const {
|
|
1153
|
+
const { getState, options: { enableGrouping, localization }, setHoveredColumn, } = table;
|
|
1154
|
+
const { draggingColumn, hoveredColumn } = getState();
|
|
1157
1155
|
const handleDragEnter = (_event) => {
|
|
1158
|
-
|
|
1156
|
+
setHoveredColumn({ id: 'drop-zone' });
|
|
1159
1157
|
};
|
|
1160
|
-
return (React.createElement(Fade, { unmountOnExit: true, mountOnEnter: true, in: !!enableGrouping && !!
|
|
1158
|
+
return (React.createElement(Fade, { unmountOnExit: true, mountOnEnter: true, in: !!enableGrouping && !!draggingColumn },
|
|
1161
1159
|
React.createElement(Box, { sx: (theme) => ({
|
|
1162
1160
|
alignItems: 'center',
|
|
1163
|
-
backgroundColor: alpha(theme.palette.info.main, (
|
|
1161
|
+
backgroundColor: alpha(theme.palette.info.main, (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone' ? 0.2 : 0.1),
|
|
1164
1162
|
border: `dashed ${theme.palette.info.main} 2px`,
|
|
1165
1163
|
display: 'flex',
|
|
1166
1164
|
justifyContent: 'center',
|
|
@@ -1169,7 +1167,7 @@ const MRT_ToolbarDropZone = ({ table }) => {
|
|
|
1169
1167
|
width: 'calc(100% - 4px)',
|
|
1170
1168
|
zIndex: 2,
|
|
1171
1169
|
}), onDragEnter: handleDragEnter },
|
|
1172
|
-
React.createElement(Typography, null, localization.dropToGroupBy.replace('{column}', (_b = (_a =
|
|
1170
|
+
React.createElement(Typography, null, localization.dropToGroupBy.replace('{column}', (_b = (_a = draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.columnDef) === null || _a === void 0 ? void 0 : _a.header) !== null && _b !== void 0 ? _b : '')))));
|
|
1173
1171
|
};
|
|
1174
1172
|
|
|
1175
1173
|
const commonToolbarStyles = ({ theme }) => ({
|
|
@@ -1499,9 +1497,9 @@ const MRT_TableHeadCellFilterLabel = ({ header, table }) => {
|
|
|
1499
1497
|
};
|
|
1500
1498
|
|
|
1501
1499
|
const MRT_TableHeadCellGrabHandle = ({ column, table, tableHeadCellRef, }) => {
|
|
1502
|
-
const { getState, options: { enableColumnOrdering, muiTableHeadCellDragHandleProps, onColumnDrop, }, setColumnOrder,
|
|
1500
|
+
const { getState, options: { enableColumnOrdering, muiTableHeadCellDragHandleProps, onColumnDrop, }, setColumnOrder, setDraggingColumn, setHoveredColumn, } = table;
|
|
1503
1501
|
const { columnDef } = column;
|
|
1504
|
-
const {
|
|
1502
|
+
const { hoveredColumn, draggingColumn, columnOrder } = getState();
|
|
1505
1503
|
const mIconButtonProps = muiTableHeadCellDragHandleProps instanceof Function
|
|
1506
1504
|
? muiTableHeadCellDragHandleProps({ column, table })
|
|
1507
1505
|
: muiTableHeadCellDragHandleProps;
|
|
@@ -1510,25 +1508,25 @@ const MRT_TableHeadCellGrabHandle = ({ column, table, tableHeadCellRef, }) => {
|
|
|
1510
1508
|
: columnDef.muiTableHeadCellDragHandleProps;
|
|
1511
1509
|
const iconButtonProps = Object.assign(Object.assign({}, mIconButtonProps), mcIconButtonProps);
|
|
1512
1510
|
const handleDragStart = (e) => {
|
|
1513
|
-
|
|
1511
|
+
setDraggingColumn(column);
|
|
1514
1512
|
e.dataTransfer.setDragImage(tableHeadCellRef.current, 0, 0);
|
|
1515
1513
|
};
|
|
1516
1514
|
const handleDragEnd = (event) => {
|
|
1517
1515
|
onColumnDrop === null || onColumnDrop === void 0 ? void 0 : onColumnDrop({
|
|
1518
1516
|
event,
|
|
1519
1517
|
draggedColumn: column,
|
|
1520
|
-
targetColumn:
|
|
1518
|
+
targetColumn: hoveredColumn,
|
|
1521
1519
|
});
|
|
1522
|
-
if ((
|
|
1520
|
+
if ((hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone') {
|
|
1523
1521
|
column.toggleGrouping();
|
|
1524
1522
|
}
|
|
1525
1523
|
else if (enableColumnOrdering &&
|
|
1526
|
-
|
|
1527
|
-
(
|
|
1528
|
-
setColumnOrder(reorderColumn(column,
|
|
1524
|
+
hoveredColumn &&
|
|
1525
|
+
(hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) !== (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id)) {
|
|
1526
|
+
setColumnOrder(reorderColumn(column, hoveredColumn, columnOrder));
|
|
1529
1527
|
}
|
|
1530
|
-
|
|
1531
|
-
|
|
1528
|
+
setDraggingColumn(null);
|
|
1529
|
+
setHoveredColumn(null);
|
|
1532
1530
|
};
|
|
1533
1531
|
return (React.createElement(MRT_GrabHandleButton, { iconButtonProps: iconButtonProps, onDragStart: handleDragStart, onDragEnd: handleDragEnd, table: table }));
|
|
1534
1532
|
};
|
|
@@ -1586,8 +1584,8 @@ const MRT_TableHeadCellSortLabel = ({ header, table }) => {
|
|
|
1586
1584
|
const MRT_TableHeadCell = ({ header, table }) => {
|
|
1587
1585
|
var _a, _b, _c, _d;
|
|
1588
1586
|
const theme = useTheme();
|
|
1589
|
-
const { getState, options: { enableColumnActions, enableColumnDragging, enableColumnOrdering, enableColumnResizing, enableGrouping, enableMultiSort, muiTableHeadCellProps, },
|
|
1590
|
-
const { density,
|
|
1587
|
+
const { getState, options: { enableColumnActions, enableColumnDragging, enableColumnOrdering, enableColumnResizing, enableGrouping, enableMultiSort, muiTableHeadCellProps, }, setHoveredColumn, } = table;
|
|
1588
|
+
const { density, draggingColumn, hoveredColumn, showColumnFilters } = getState();
|
|
1591
1589
|
const { column } = header;
|
|
1592
1590
|
const { columnDef } = column;
|
|
1593
1591
|
const { columnDefType } = columnDef;
|
|
@@ -1609,16 +1607,16 @@ const MRT_TableHeadCell = ({ header, table }) => {
|
|
|
1609
1607
|
return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150);
|
|
1610
1608
|
};
|
|
1611
1609
|
const handleDragEnter = (_e) => {
|
|
1612
|
-
if (enableGrouping && (
|
|
1613
|
-
|
|
1610
|
+
if (enableGrouping && (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone') {
|
|
1611
|
+
setHoveredColumn(null);
|
|
1614
1612
|
}
|
|
1615
|
-
if (enableColumnOrdering &&
|
|
1616
|
-
|
|
1613
|
+
if (enableColumnOrdering && draggingColumn) {
|
|
1614
|
+
setHoveredColumn(columnDef.enableColumnOrdering !== false ? column : null);
|
|
1617
1615
|
}
|
|
1618
1616
|
};
|
|
1619
|
-
const draggingBorder = (
|
|
1617
|
+
const draggingBorder = (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id
|
|
1620
1618
|
? `1px dashed ${theme.palette.text.secondary}`
|
|
1621
|
-
: (
|
|
1619
|
+
: (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
|
|
1622
1620
|
? `2px dashed ${theme.palette.primary.main}`
|
|
1623
1621
|
: undefined;
|
|
1624
1622
|
const draggingBorders = draggingBorder
|
|
@@ -1646,8 +1644,7 @@ const MRT_TableHeadCell = ({ header, table }) => {
|
|
|
1646
1644
|
? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`
|
|
1647
1645
|
: undefined, fontWeight: 'bold', left: column.getIsPinned() === 'left'
|
|
1648
1646
|
? `${column.getStart('left')}px`
|
|
1649
|
-
: undefined, overflow: 'visible', opacity: (
|
|
1650
|
-
(currentHoveredColumn === null || currentHoveredColumn === void 0 ? void 0 : currentHoveredColumn.id) === column.id
|
|
1647
|
+
: undefined, overflow: 'visible', opacity: (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id || (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
|
|
1651
1648
|
? 0.5
|
|
1652
1649
|
: 1, p: density === 'compact'
|
|
1653
1650
|
? '0.5rem'
|
|
@@ -1669,7 +1666,7 @@ const MRT_TableHeadCell = ({ header, table }) => {
|
|
|
1669
1666
|
? '0.25'
|
|
1670
1667
|
: density === 'comfortable'
|
|
1671
1668
|
? '.75rem'
|
|
1672
|
-
: '1.25rem', right: column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined, transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`, userSelect: enableMultiSort && column.getCanSort() ? 'none' : undefined, verticalAlign: 'top', zIndex: column.getIsResizing() || (
|
|
1669
|
+
: '1.25rem', right: column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined, transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`, userSelect: enableMultiSort && column.getCanSort() ? 'none' : undefined, verticalAlign: 'top', zIndex: column.getIsResizing() || (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id
|
|
1673
1670
|
? 3
|
|
1674
1671
|
: column.getIsPinned() && columnDefType !== 'group'
|
|
1675
1672
|
? 2
|
|
@@ -1733,29 +1730,522 @@ const MRT_TableHead = ({ table }) => {
|
|
|
1733
1730
|
return (React.createElement(TableHead, Object.assign({}, tableHeadProps), getHeaderGroups().map((headerGroup) => (React.createElement(MRT_TableHeadRow, { headerGroup: headerGroup, key: headerGroup.id, table: table })))));
|
|
1734
1731
|
};
|
|
1735
1732
|
|
|
1733
|
+
function _extends() {
|
|
1734
|
+
_extends = Object.assign || function (target) {
|
|
1735
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
1736
|
+
var source = arguments[i];
|
|
1737
|
+
|
|
1738
|
+
for (var key in source) {
|
|
1739
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
1740
|
+
target[key] = source[key];
|
|
1741
|
+
}
|
|
1742
|
+
}
|
|
1743
|
+
}
|
|
1744
|
+
|
|
1745
|
+
return target;
|
|
1746
|
+
};
|
|
1747
|
+
|
|
1748
|
+
return _extends.apply(this, arguments);
|
|
1749
|
+
}
|
|
1750
|
+
|
|
1751
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
1752
|
+
if (source == null) return {};
|
|
1753
|
+
var target = {};
|
|
1754
|
+
var sourceKeys = Object.keys(source);
|
|
1755
|
+
var key, i;
|
|
1756
|
+
|
|
1757
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
|
1758
|
+
key = sourceKeys[i];
|
|
1759
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
1760
|
+
target[key] = source[key];
|
|
1761
|
+
}
|
|
1762
|
+
|
|
1763
|
+
return target;
|
|
1764
|
+
}
|
|
1765
|
+
|
|
1766
|
+
var props = ['bottom', 'height', 'left', 'right', 'top', 'width'];
|
|
1767
|
+
|
|
1768
|
+
var rectChanged = function rectChanged(a, b) {
|
|
1769
|
+
if (a === void 0) {
|
|
1770
|
+
a = {};
|
|
1771
|
+
}
|
|
1772
|
+
|
|
1773
|
+
if (b === void 0) {
|
|
1774
|
+
b = {};
|
|
1775
|
+
}
|
|
1776
|
+
|
|
1777
|
+
return props.some(function (prop) {
|
|
1778
|
+
return a[prop] !== b[prop];
|
|
1779
|
+
});
|
|
1780
|
+
};
|
|
1781
|
+
|
|
1782
|
+
var observedNodes = /*#__PURE__*/new Map();
|
|
1783
|
+
var rafId;
|
|
1784
|
+
|
|
1785
|
+
var run = function run() {
|
|
1786
|
+
var changedStates = [];
|
|
1787
|
+
observedNodes.forEach(function (state, node) {
|
|
1788
|
+
var newRect = node.getBoundingClientRect();
|
|
1789
|
+
|
|
1790
|
+
if (rectChanged(newRect, state.rect)) {
|
|
1791
|
+
state.rect = newRect;
|
|
1792
|
+
changedStates.push(state);
|
|
1793
|
+
}
|
|
1794
|
+
});
|
|
1795
|
+
changedStates.forEach(function (state) {
|
|
1796
|
+
state.callbacks.forEach(function (cb) {
|
|
1797
|
+
return cb(state.rect);
|
|
1798
|
+
});
|
|
1799
|
+
});
|
|
1800
|
+
rafId = window.requestAnimationFrame(run);
|
|
1801
|
+
};
|
|
1802
|
+
|
|
1803
|
+
function observeRect(node, cb) {
|
|
1804
|
+
return {
|
|
1805
|
+
observe: function observe() {
|
|
1806
|
+
var wasEmpty = observedNodes.size === 0;
|
|
1807
|
+
|
|
1808
|
+
if (observedNodes.has(node)) {
|
|
1809
|
+
observedNodes.get(node).callbacks.push(cb);
|
|
1810
|
+
} else {
|
|
1811
|
+
observedNodes.set(node, {
|
|
1812
|
+
rect: undefined,
|
|
1813
|
+
hasRectChanged: false,
|
|
1814
|
+
callbacks: [cb]
|
|
1815
|
+
});
|
|
1816
|
+
}
|
|
1817
|
+
|
|
1818
|
+
if (wasEmpty) run();
|
|
1819
|
+
},
|
|
1820
|
+
unobserve: function unobserve() {
|
|
1821
|
+
var state = observedNodes.get(node);
|
|
1822
|
+
|
|
1823
|
+
if (state) {
|
|
1824
|
+
// Remove the callback
|
|
1825
|
+
var index = state.callbacks.indexOf(cb);
|
|
1826
|
+
if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference
|
|
1827
|
+
|
|
1828
|
+
if (!state.callbacks.length) observedNodes["delete"](node); // Stop the loop
|
|
1829
|
+
|
|
1830
|
+
if (!observedNodes.size) cancelAnimationFrame(rafId);
|
|
1831
|
+
}
|
|
1832
|
+
}
|
|
1833
|
+
};
|
|
1834
|
+
}
|
|
1835
|
+
|
|
1836
|
+
var useIsomorphicLayoutEffect$1 = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
|
|
1837
|
+
|
|
1838
|
+
function useRect(nodeRef, initialRect) {
|
|
1839
|
+
if (initialRect === void 0) {
|
|
1840
|
+
initialRect = {
|
|
1841
|
+
width: 0,
|
|
1842
|
+
height: 0
|
|
1843
|
+
};
|
|
1844
|
+
}
|
|
1845
|
+
|
|
1846
|
+
var _React$useState = React.useState(nodeRef.current),
|
|
1847
|
+
element = _React$useState[0],
|
|
1848
|
+
setElement = _React$useState[1];
|
|
1849
|
+
|
|
1850
|
+
var _React$useReducer = React.useReducer(rectReducer, initialRect),
|
|
1851
|
+
rect = _React$useReducer[0],
|
|
1852
|
+
dispatch = _React$useReducer[1];
|
|
1853
|
+
|
|
1854
|
+
var initialRectSet = React.useRef(false);
|
|
1855
|
+
useIsomorphicLayoutEffect$1(function () {
|
|
1856
|
+
if (nodeRef.current !== element) {
|
|
1857
|
+
setElement(nodeRef.current);
|
|
1858
|
+
}
|
|
1859
|
+
});
|
|
1860
|
+
useIsomorphicLayoutEffect$1(function () {
|
|
1861
|
+
if (element && !initialRectSet.current) {
|
|
1862
|
+
initialRectSet.current = true;
|
|
1863
|
+
|
|
1864
|
+
var _rect = element.getBoundingClientRect();
|
|
1865
|
+
|
|
1866
|
+
dispatch({
|
|
1867
|
+
rect: _rect
|
|
1868
|
+
});
|
|
1869
|
+
}
|
|
1870
|
+
}, [element]);
|
|
1871
|
+
React.useEffect(function () {
|
|
1872
|
+
if (!element) {
|
|
1873
|
+
return;
|
|
1874
|
+
}
|
|
1875
|
+
|
|
1876
|
+
var observer = observeRect(element, function (rect) {
|
|
1877
|
+
dispatch({
|
|
1878
|
+
rect: rect
|
|
1879
|
+
});
|
|
1880
|
+
});
|
|
1881
|
+
observer.observe();
|
|
1882
|
+
return function () {
|
|
1883
|
+
observer.unobserve();
|
|
1884
|
+
};
|
|
1885
|
+
}, [element]);
|
|
1886
|
+
return rect;
|
|
1887
|
+
}
|
|
1888
|
+
|
|
1889
|
+
function rectReducer(state, action) {
|
|
1890
|
+
var rect = action.rect;
|
|
1891
|
+
|
|
1892
|
+
if (state.height !== rect.height || state.width !== rect.width) {
|
|
1893
|
+
return rect;
|
|
1894
|
+
}
|
|
1895
|
+
|
|
1896
|
+
return state;
|
|
1897
|
+
}
|
|
1898
|
+
|
|
1899
|
+
var defaultEstimateSize = function defaultEstimateSize() {
|
|
1900
|
+
return 50;
|
|
1901
|
+
};
|
|
1902
|
+
|
|
1903
|
+
var defaultKeyExtractor = function defaultKeyExtractor(index) {
|
|
1904
|
+
return index;
|
|
1905
|
+
};
|
|
1906
|
+
|
|
1907
|
+
var defaultMeasureSize = function defaultMeasureSize(el, horizontal) {
|
|
1908
|
+
var key = horizontal ? 'offsetWidth' : 'offsetHeight';
|
|
1909
|
+
return el[key];
|
|
1910
|
+
};
|
|
1911
|
+
|
|
1912
|
+
var defaultRangeExtractor = function defaultRangeExtractor(range) {
|
|
1913
|
+
var start = Math.max(range.start - range.overscan, 0);
|
|
1914
|
+
var end = Math.min(range.end + range.overscan, range.size - 1);
|
|
1915
|
+
var arr = [];
|
|
1916
|
+
|
|
1917
|
+
for (var i = start; i <= end; i++) {
|
|
1918
|
+
arr.push(i);
|
|
1919
|
+
}
|
|
1920
|
+
|
|
1921
|
+
return arr;
|
|
1922
|
+
};
|
|
1923
|
+
function useVirtual(_ref) {
|
|
1924
|
+
var _measurements;
|
|
1925
|
+
|
|
1926
|
+
var _ref$size = _ref.size,
|
|
1927
|
+
size = _ref$size === void 0 ? 0 : _ref$size,
|
|
1928
|
+
_ref$estimateSize = _ref.estimateSize,
|
|
1929
|
+
estimateSize = _ref$estimateSize === void 0 ? defaultEstimateSize : _ref$estimateSize,
|
|
1930
|
+
_ref$overscan = _ref.overscan,
|
|
1931
|
+
overscan = _ref$overscan === void 0 ? 1 : _ref$overscan,
|
|
1932
|
+
_ref$paddingStart = _ref.paddingStart,
|
|
1933
|
+
paddingStart = _ref$paddingStart === void 0 ? 0 : _ref$paddingStart,
|
|
1934
|
+
_ref$paddingEnd = _ref.paddingEnd,
|
|
1935
|
+
paddingEnd = _ref$paddingEnd === void 0 ? 0 : _ref$paddingEnd,
|
|
1936
|
+
parentRef = _ref.parentRef,
|
|
1937
|
+
horizontal = _ref.horizontal,
|
|
1938
|
+
scrollToFn = _ref.scrollToFn,
|
|
1939
|
+
useObserver = _ref.useObserver,
|
|
1940
|
+
initialRect = _ref.initialRect,
|
|
1941
|
+
onScrollElement = _ref.onScrollElement,
|
|
1942
|
+
scrollOffsetFn = _ref.scrollOffsetFn,
|
|
1943
|
+
_ref$keyExtractor = _ref.keyExtractor,
|
|
1944
|
+
keyExtractor = _ref$keyExtractor === void 0 ? defaultKeyExtractor : _ref$keyExtractor,
|
|
1945
|
+
_ref$measureSize = _ref.measureSize,
|
|
1946
|
+
measureSize = _ref$measureSize === void 0 ? defaultMeasureSize : _ref$measureSize,
|
|
1947
|
+
_ref$rangeExtractor = _ref.rangeExtractor,
|
|
1948
|
+
rangeExtractor = _ref$rangeExtractor === void 0 ? defaultRangeExtractor : _ref$rangeExtractor;
|
|
1949
|
+
var sizeKey = horizontal ? 'width' : 'height';
|
|
1950
|
+
var scrollKey = horizontal ? 'scrollLeft' : 'scrollTop';
|
|
1951
|
+
var latestRef = React.useRef({
|
|
1952
|
+
scrollOffset: 0,
|
|
1953
|
+
measurements: []
|
|
1954
|
+
});
|
|
1955
|
+
|
|
1956
|
+
var _React$useState = React.useState(0),
|
|
1957
|
+
scrollOffset = _React$useState[0],
|
|
1958
|
+
setScrollOffset = _React$useState[1];
|
|
1959
|
+
|
|
1960
|
+
latestRef.current.scrollOffset = scrollOffset;
|
|
1961
|
+
var useMeasureParent = useObserver || useRect;
|
|
1962
|
+
|
|
1963
|
+
var _useMeasureParent = useMeasureParent(parentRef, initialRect),
|
|
1964
|
+
outerSize = _useMeasureParent[sizeKey];
|
|
1965
|
+
|
|
1966
|
+
latestRef.current.outerSize = outerSize;
|
|
1967
|
+
var defaultScrollToFn = React.useCallback(function (offset) {
|
|
1968
|
+
if (parentRef.current) {
|
|
1969
|
+
parentRef.current[scrollKey] = offset;
|
|
1970
|
+
}
|
|
1971
|
+
}, [parentRef, scrollKey]);
|
|
1972
|
+
var resolvedScrollToFn = scrollToFn || defaultScrollToFn;
|
|
1973
|
+
scrollToFn = React.useCallback(function (offset) {
|
|
1974
|
+
resolvedScrollToFn(offset, defaultScrollToFn);
|
|
1975
|
+
}, [defaultScrollToFn, resolvedScrollToFn]);
|
|
1976
|
+
|
|
1977
|
+
var _React$useState2 = React.useState({}),
|
|
1978
|
+
measuredCache = _React$useState2[0],
|
|
1979
|
+
setMeasuredCache = _React$useState2[1];
|
|
1980
|
+
|
|
1981
|
+
var measure = React.useCallback(function () {
|
|
1982
|
+
return setMeasuredCache({});
|
|
1983
|
+
}, []);
|
|
1984
|
+
var pendingMeasuredCacheIndexesRef = React.useRef([]);
|
|
1985
|
+
var measurements = React.useMemo(function () {
|
|
1986
|
+
var min = pendingMeasuredCacheIndexesRef.current.length > 0 ? Math.min.apply(Math, pendingMeasuredCacheIndexesRef.current) : 0;
|
|
1987
|
+
pendingMeasuredCacheIndexesRef.current = [];
|
|
1988
|
+
var measurements = latestRef.current.measurements.slice(0, min);
|
|
1989
|
+
|
|
1990
|
+
for (var i = min; i < size; i++) {
|
|
1991
|
+
var key = keyExtractor(i);
|
|
1992
|
+
var measuredSize = measuredCache[key];
|
|
1993
|
+
|
|
1994
|
+
var _start = measurements[i - 1] ? measurements[i - 1].end : paddingStart;
|
|
1995
|
+
|
|
1996
|
+
var _size = typeof measuredSize === 'number' ? measuredSize : estimateSize(i);
|
|
1997
|
+
|
|
1998
|
+
var _end = _start + _size;
|
|
1999
|
+
|
|
2000
|
+
measurements[i] = {
|
|
2001
|
+
index: i,
|
|
2002
|
+
start: _start,
|
|
2003
|
+
size: _size,
|
|
2004
|
+
end: _end,
|
|
2005
|
+
key: key
|
|
2006
|
+
};
|
|
2007
|
+
}
|
|
2008
|
+
|
|
2009
|
+
return measurements;
|
|
2010
|
+
}, [estimateSize, measuredCache, paddingStart, size, keyExtractor]);
|
|
2011
|
+
var totalSize = (((_measurements = measurements[size - 1]) == null ? void 0 : _measurements.end) || paddingStart) + paddingEnd;
|
|
2012
|
+
latestRef.current.measurements = measurements;
|
|
2013
|
+
latestRef.current.totalSize = totalSize;
|
|
2014
|
+
var element = onScrollElement ? onScrollElement.current : parentRef.current;
|
|
2015
|
+
var scrollOffsetFnRef = React.useRef(scrollOffsetFn);
|
|
2016
|
+
scrollOffsetFnRef.current = scrollOffsetFn;
|
|
2017
|
+
useIsomorphicLayoutEffect$1(function () {
|
|
2018
|
+
if (!element) {
|
|
2019
|
+
setScrollOffset(0);
|
|
2020
|
+
return;
|
|
2021
|
+
}
|
|
2022
|
+
|
|
2023
|
+
var onScroll = function onScroll(event) {
|
|
2024
|
+
var offset = scrollOffsetFnRef.current ? scrollOffsetFnRef.current(event) : element[scrollKey];
|
|
2025
|
+
setScrollOffset(offset);
|
|
2026
|
+
};
|
|
2027
|
+
|
|
2028
|
+
onScroll();
|
|
2029
|
+
element.addEventListener('scroll', onScroll, {
|
|
2030
|
+
capture: false,
|
|
2031
|
+
passive: true
|
|
2032
|
+
});
|
|
2033
|
+
return function () {
|
|
2034
|
+
element.removeEventListener('scroll', onScroll);
|
|
2035
|
+
};
|
|
2036
|
+
}, [element, scrollKey]);
|
|
2037
|
+
|
|
2038
|
+
var _calculateRange = calculateRange(latestRef.current),
|
|
2039
|
+
start = _calculateRange.start,
|
|
2040
|
+
end = _calculateRange.end;
|
|
2041
|
+
|
|
2042
|
+
var indexes = React.useMemo(function () {
|
|
2043
|
+
return rangeExtractor({
|
|
2044
|
+
start: start,
|
|
2045
|
+
end: end,
|
|
2046
|
+
overscan: overscan,
|
|
2047
|
+
size: measurements.length
|
|
2048
|
+
});
|
|
2049
|
+
}, [start, end, overscan, measurements.length, rangeExtractor]);
|
|
2050
|
+
var measureSizeRef = React.useRef(measureSize);
|
|
2051
|
+
measureSizeRef.current = measureSize;
|
|
2052
|
+
var virtualItems = React.useMemo(function () {
|
|
2053
|
+
var virtualItems = [];
|
|
2054
|
+
|
|
2055
|
+
var _loop = function _loop(k, len) {
|
|
2056
|
+
var i = indexes[k];
|
|
2057
|
+
var measurement = measurements[i];
|
|
2058
|
+
|
|
2059
|
+
var item = _extends(_extends({}, measurement), {}, {
|
|
2060
|
+
measureRef: function measureRef(el) {
|
|
2061
|
+
if (el) {
|
|
2062
|
+
var measuredSize = measureSizeRef.current(el, horizontal);
|
|
2063
|
+
|
|
2064
|
+
if (measuredSize !== item.size) {
|
|
2065
|
+
var _scrollOffset = latestRef.current.scrollOffset;
|
|
2066
|
+
|
|
2067
|
+
if (item.start < _scrollOffset) {
|
|
2068
|
+
defaultScrollToFn(_scrollOffset + (measuredSize - item.size));
|
|
2069
|
+
}
|
|
2070
|
+
|
|
2071
|
+
pendingMeasuredCacheIndexesRef.current.push(i);
|
|
2072
|
+
setMeasuredCache(function (old) {
|
|
2073
|
+
var _extends2;
|
|
2074
|
+
|
|
2075
|
+
return _extends(_extends({}, old), {}, (_extends2 = {}, _extends2[item.key] = measuredSize, _extends2));
|
|
2076
|
+
});
|
|
2077
|
+
}
|
|
2078
|
+
}
|
|
2079
|
+
}
|
|
2080
|
+
});
|
|
2081
|
+
|
|
2082
|
+
virtualItems.push(item);
|
|
2083
|
+
};
|
|
2084
|
+
|
|
2085
|
+
for (var k = 0, len = indexes.length; k < len; k++) {
|
|
2086
|
+
_loop(k);
|
|
2087
|
+
}
|
|
2088
|
+
|
|
2089
|
+
return virtualItems;
|
|
2090
|
+
}, [indexes, defaultScrollToFn, horizontal, measurements]);
|
|
2091
|
+
var mountedRef = React.useRef(false);
|
|
2092
|
+
useIsomorphicLayoutEffect$1(function () {
|
|
2093
|
+
if (mountedRef.current) {
|
|
2094
|
+
setMeasuredCache({});
|
|
2095
|
+
}
|
|
2096
|
+
|
|
2097
|
+
mountedRef.current = true;
|
|
2098
|
+
}, [estimateSize]);
|
|
2099
|
+
var scrollToOffset = React.useCallback(function (toOffset, _temp) {
|
|
2100
|
+
var _ref2 = _temp === void 0 ? {} : _temp,
|
|
2101
|
+
_ref2$align = _ref2.align,
|
|
2102
|
+
align = _ref2$align === void 0 ? 'start' : _ref2$align;
|
|
2103
|
+
|
|
2104
|
+
var _latestRef$current = latestRef.current,
|
|
2105
|
+
scrollOffset = _latestRef$current.scrollOffset,
|
|
2106
|
+
outerSize = _latestRef$current.outerSize;
|
|
2107
|
+
|
|
2108
|
+
if (align === 'auto') {
|
|
2109
|
+
if (toOffset <= scrollOffset) {
|
|
2110
|
+
align = 'start';
|
|
2111
|
+
} else if (toOffset >= scrollOffset + outerSize) {
|
|
2112
|
+
align = 'end';
|
|
2113
|
+
} else {
|
|
2114
|
+
align = 'start';
|
|
2115
|
+
}
|
|
2116
|
+
}
|
|
2117
|
+
|
|
2118
|
+
if (align === 'start') {
|
|
2119
|
+
scrollToFn(toOffset);
|
|
2120
|
+
} else if (align === 'end') {
|
|
2121
|
+
scrollToFn(toOffset - outerSize);
|
|
2122
|
+
} else if (align === 'center') {
|
|
2123
|
+
scrollToFn(toOffset - outerSize / 2);
|
|
2124
|
+
}
|
|
2125
|
+
}, [scrollToFn]);
|
|
2126
|
+
var tryScrollToIndex = React.useCallback(function (index, _temp2) {
|
|
2127
|
+
var _ref3 = _temp2 === void 0 ? {} : _temp2,
|
|
2128
|
+
_ref3$align = _ref3.align,
|
|
2129
|
+
align = _ref3$align === void 0 ? 'auto' : _ref3$align,
|
|
2130
|
+
rest = _objectWithoutPropertiesLoose(_ref3, ["align"]);
|
|
2131
|
+
|
|
2132
|
+
var _latestRef$current2 = latestRef.current,
|
|
2133
|
+
measurements = _latestRef$current2.measurements,
|
|
2134
|
+
scrollOffset = _latestRef$current2.scrollOffset,
|
|
2135
|
+
outerSize = _latestRef$current2.outerSize;
|
|
2136
|
+
var measurement = measurements[Math.max(0, Math.min(index, size - 1))];
|
|
2137
|
+
|
|
2138
|
+
if (!measurement) {
|
|
2139
|
+
return;
|
|
2140
|
+
}
|
|
2141
|
+
|
|
2142
|
+
if (align === 'auto') {
|
|
2143
|
+
if (measurement.end >= scrollOffset + outerSize) {
|
|
2144
|
+
align = 'end';
|
|
2145
|
+
} else if (measurement.start <= scrollOffset) {
|
|
2146
|
+
align = 'start';
|
|
2147
|
+
} else {
|
|
2148
|
+
return;
|
|
2149
|
+
}
|
|
2150
|
+
}
|
|
2151
|
+
|
|
2152
|
+
var toOffset = align === 'center' ? measurement.start + measurement.size / 2 : align === 'end' ? measurement.end : measurement.start;
|
|
2153
|
+
scrollToOffset(toOffset, _extends({
|
|
2154
|
+
align: align
|
|
2155
|
+
}, rest));
|
|
2156
|
+
}, [scrollToOffset, size]);
|
|
2157
|
+
var scrollToIndex = React.useCallback(function () {
|
|
2158
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2159
|
+
args[_key] = arguments[_key];
|
|
2160
|
+
}
|
|
2161
|
+
|
|
2162
|
+
// We do a double request here because of
|
|
2163
|
+
// dynamic sizes which can cause offset shift
|
|
2164
|
+
// and end up in the wrong spot. Unfortunately,
|
|
2165
|
+
// we can't know about those dynamic sizes until
|
|
2166
|
+
// we try and render them. So double down!
|
|
2167
|
+
tryScrollToIndex.apply(void 0, args);
|
|
2168
|
+
requestAnimationFrame(function () {
|
|
2169
|
+
tryScrollToIndex.apply(void 0, args);
|
|
2170
|
+
});
|
|
2171
|
+
}, [tryScrollToIndex]);
|
|
2172
|
+
return {
|
|
2173
|
+
virtualItems: virtualItems,
|
|
2174
|
+
totalSize: totalSize,
|
|
2175
|
+
scrollToOffset: scrollToOffset,
|
|
2176
|
+
scrollToIndex: scrollToIndex,
|
|
2177
|
+
measure: measure
|
|
2178
|
+
};
|
|
2179
|
+
}
|
|
2180
|
+
|
|
2181
|
+
var findNearestBinarySearch = function findNearestBinarySearch(low, high, getCurrentValue, value) {
|
|
2182
|
+
while (low <= high) {
|
|
2183
|
+
var middle = (low + high) / 2 | 0;
|
|
2184
|
+
var currentValue = getCurrentValue(middle);
|
|
2185
|
+
|
|
2186
|
+
if (currentValue < value) {
|
|
2187
|
+
low = middle + 1;
|
|
2188
|
+
} else if (currentValue > value) {
|
|
2189
|
+
high = middle - 1;
|
|
2190
|
+
} else {
|
|
2191
|
+
return middle;
|
|
2192
|
+
}
|
|
2193
|
+
}
|
|
2194
|
+
|
|
2195
|
+
if (low > 0) {
|
|
2196
|
+
return low - 1;
|
|
2197
|
+
} else {
|
|
2198
|
+
return 0;
|
|
2199
|
+
}
|
|
2200
|
+
};
|
|
2201
|
+
|
|
2202
|
+
function calculateRange(_ref4) {
|
|
2203
|
+
var measurements = _ref4.measurements,
|
|
2204
|
+
outerSize = _ref4.outerSize,
|
|
2205
|
+
scrollOffset = _ref4.scrollOffset;
|
|
2206
|
+
var size = measurements.length - 1;
|
|
2207
|
+
|
|
2208
|
+
var getOffset = function getOffset(index) {
|
|
2209
|
+
return measurements[index].start;
|
|
2210
|
+
};
|
|
2211
|
+
|
|
2212
|
+
var start = findNearestBinarySearch(0, size, getOffset, scrollOffset);
|
|
2213
|
+
var end = start;
|
|
2214
|
+
|
|
2215
|
+
while (end < size && measurements[end].end < scrollOffset + outerSize) {
|
|
2216
|
+
end++;
|
|
2217
|
+
}
|
|
2218
|
+
|
|
2219
|
+
return {
|
|
2220
|
+
start: start,
|
|
2221
|
+
end: end
|
|
2222
|
+
};
|
|
2223
|
+
}
|
|
2224
|
+
|
|
1736
2225
|
const MRT_EditCellTextField = ({ cell, table }) => {
|
|
1737
2226
|
var _a;
|
|
1738
|
-
const { getState, options: { tableId,
|
|
2227
|
+
const { getState, options: { tableId, muiTableBodyCellEditTextFieldProps, onCellEditBlur, onCellEditChange, }, setEditingCell, setEditingRow, } = table;
|
|
1739
2228
|
const { column, row } = cell;
|
|
1740
2229
|
const { columnDef } = column;
|
|
1741
|
-
const
|
|
2230
|
+
const { editingRow } = getState();
|
|
2231
|
+
const [value, setValue] = useState(() => cell.getValue());
|
|
1742
2232
|
const handleChange = (event) => {
|
|
1743
2233
|
var _a;
|
|
1744
2234
|
setValue(event.target.value);
|
|
1745
|
-
(_a = columnDef.onCellEditChange) === null || _a === void 0 ? void 0 : _a.call(columnDef, { event, cell, table });
|
|
1746
|
-
onCellEditChange === null || onCellEditChange === void 0 ? void 0 : onCellEditChange({ event, cell, table });
|
|
2235
|
+
(_a = columnDef.onCellEditChange) === null || _a === void 0 ? void 0 : _a.call(columnDef, { event, cell, table, value });
|
|
2236
|
+
onCellEditChange === null || onCellEditChange === void 0 ? void 0 : onCellEditChange({ event, cell, table, value });
|
|
1747
2237
|
};
|
|
1748
2238
|
const handleBlur = (event) => {
|
|
1749
2239
|
var _a;
|
|
1750
|
-
if (
|
|
2240
|
+
if (editingRow) {
|
|
1751
2241
|
if (!row._valuesCache)
|
|
1752
2242
|
row._valuesCache = {};
|
|
1753
2243
|
row._valuesCache[column.id] = value;
|
|
1754
|
-
|
|
2244
|
+
setEditingRow(Object.assign({}, editingRow));
|
|
1755
2245
|
}
|
|
1756
|
-
|
|
1757
|
-
(_a = columnDef.onCellEditBlur) === null || _a === void 0 ? void 0 : _a.call(columnDef, { event, cell, table });
|
|
1758
|
-
onCellEditBlur === null || onCellEditBlur === void 0 ? void 0 : onCellEditBlur({ event, cell, table });
|
|
2246
|
+
setEditingCell(null);
|
|
2247
|
+
(_a = columnDef.onCellEditBlur) === null || _a === void 0 ? void 0 : _a.call(columnDef, { event, cell, table, value });
|
|
2248
|
+
onCellEditBlur === null || onCellEditBlur === void 0 ? void 0 : onCellEditBlur({ event, cell, table, value });
|
|
1759
2249
|
};
|
|
1760
2250
|
const mTableBodyCellEditTextFieldProps = muiTableBodyCellEditTextFieldProps instanceof Function
|
|
1761
2251
|
? muiTableBodyCellEditTextFieldProps({ cell, table })
|
|
@@ -1767,10 +2257,10 @@ const MRT_EditCellTextField = ({ cell, table }) => {
|
|
|
1767
2257
|
})
|
|
1768
2258
|
: columnDef.muiTableBodyCellEditTextFieldProps;
|
|
1769
2259
|
const textFieldProps = Object.assign(Object.assign({}, mTableBodyCellEditTextFieldProps), mcTableBodyCellEditTextFieldProps);
|
|
1770
|
-
if (
|
|
2260
|
+
if (columnDef.Edit) {
|
|
1771
2261
|
return React.createElement(React.Fragment, null, (_a = columnDef.Edit) === null || _a === void 0 ? void 0 : _a.call(columnDef, { cell, column, table }));
|
|
1772
2262
|
}
|
|
1773
|
-
return (React.createElement(TextField, Object.assign({ id: `mrt-${tableId}-edit-cell-text-field-${cell.id}`, margin: "
|
|
2263
|
+
return (React.createElement(TextField, Object.assign({ id: `mrt-${tableId}-edit-cell-text-field-${cell.id}`, margin: "none", onBlur: handleBlur, onChange: handleChange, onClick: (e) => e.stopPropagation(), placeholder: columnDef.header, value: value, variant: "standard" }, textFieldProps)));
|
|
1774
2264
|
};
|
|
1775
2265
|
|
|
1776
2266
|
const MRT_CopyButton = ({ cell, children, table }) => {
|
|
@@ -1806,16 +2296,16 @@ const MRT_TableBodyRowGrabHandle = ({ cell, rowRef, table, }) => {
|
|
|
1806
2296
|
: muiTableBodyRowDragHandleProps;
|
|
1807
2297
|
const handleDragStart = (e) => {
|
|
1808
2298
|
e.dataTransfer.setDragImage(rowRef.current, 0, 0);
|
|
1809
|
-
table.
|
|
2299
|
+
table.setDraggingRow(cell.row);
|
|
1810
2300
|
};
|
|
1811
2301
|
const handleDragEnd = (event) => {
|
|
1812
2302
|
onRowDrop === null || onRowDrop === void 0 ? void 0 : onRowDrop({
|
|
1813
2303
|
event,
|
|
1814
|
-
draggedRow: table.getState().
|
|
1815
|
-
targetRow: table.getState().
|
|
2304
|
+
draggedRow: table.getState().draggingRow,
|
|
2305
|
+
targetRow: table.getState().hoveredRow,
|
|
1816
2306
|
});
|
|
1817
|
-
table.
|
|
1818
|
-
table.
|
|
2307
|
+
table.setDraggingRow(null);
|
|
2308
|
+
table.setHoveredRow(null);
|
|
1819
2309
|
};
|
|
1820
2310
|
return (React.createElement(MRT_GrabHandleButton, { iconButtonProps: iconButtonProps, onDragStart: handleDragStart, onDragEnd: handleDragEnd, table: table }));
|
|
1821
2311
|
};
|
|
@@ -1823,8 +2313,8 @@ const MRT_TableBodyRowGrabHandle = ({ cell, rowRef, table, }) => {
|
|
|
1823
2313
|
const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
|
|
1824
2314
|
var _a, _b, _c, _d, _f, _g, _h, _j;
|
|
1825
2315
|
const theme = useTheme();
|
|
1826
|
-
const { getState, options: { editingMode, enableClickToCopy, enableColumnOrdering, enableEditing, enableGrouping, enablePagination, enableRowNumbers, muiTableBodyCellProps, muiTableBodyCellSkeletonProps, rowNumberMode, tableId, },
|
|
1827
|
-
const {
|
|
2316
|
+
const { getState, options: { editingMode, enableClickToCopy, enableColumnOrdering, enableEditing, enableGrouping, enablePagination, enableRowNumbers, muiTableBodyCellProps, muiTableBodyCellSkeletonProps, rowNumberMode, tableId, }, setEditingCell, setHoveredColumn, } = table;
|
|
2317
|
+
const { draggingColumn, editingCell, editingRow, hoveredColumn, density, isLoading, showSkeletons, } = getState();
|
|
1828
2318
|
const { column, row } = cell;
|
|
1829
2319
|
const { columnDef } = column;
|
|
1830
2320
|
const { columnDefType } = columnDef;
|
|
@@ -1839,8 +2329,8 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
|
|
|
1839
2329
|
columnDef.enableEditing !== false;
|
|
1840
2330
|
const isEditing = isEditable &&
|
|
1841
2331
|
(editingMode === 'table' ||
|
|
1842
|
-
(
|
|
1843
|
-
(
|
|
2332
|
+
(editingRow === null || editingRow === void 0 ? void 0 : editingRow.id) === row.id ||
|
|
2333
|
+
(editingCell === null || editingCell === void 0 ? void 0 : editingCell.id) === cell.id);
|
|
1844
2334
|
const [skeletonWidth, setSkeletonWidth] = useState(0);
|
|
1845
2335
|
useEffect(() => setSkeletonWidth(isLoading || showSkeletons
|
|
1846
2336
|
? columnDefType === 'display'
|
|
@@ -1852,7 +2342,7 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
|
|
|
1852
2342
|
if ((enableEditing || columnDef.enableEditing) &&
|
|
1853
2343
|
columnDef.enableEditing !== false &&
|
|
1854
2344
|
editingMode === 'cell') {
|
|
1855
|
-
|
|
2345
|
+
setEditingCell(cell);
|
|
1856
2346
|
setTimeout(() => {
|
|
1857
2347
|
const textField = document.getElementById(`mrt-${tableId}-edit-cell-text-field-${cell.id}`);
|
|
1858
2348
|
if (textField) {
|
|
@@ -1873,16 +2363,16 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
|
|
|
1873
2363
|
return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150);
|
|
1874
2364
|
};
|
|
1875
2365
|
const handleDragEnter = (_e) => {
|
|
1876
|
-
if (enableGrouping && (
|
|
1877
|
-
|
|
2366
|
+
if (enableGrouping && (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone') {
|
|
2367
|
+
setHoveredColumn(null);
|
|
1878
2368
|
}
|
|
1879
|
-
if (enableColumnOrdering &&
|
|
1880
|
-
|
|
2369
|
+
if (enableColumnOrdering && draggingColumn) {
|
|
2370
|
+
setHoveredColumn(columnDef.enableColumnOrdering !== false ? column : null);
|
|
1881
2371
|
}
|
|
1882
2372
|
};
|
|
1883
|
-
const draggingBorder = (
|
|
2373
|
+
const draggingBorder = (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id
|
|
1884
2374
|
? `1px dashed ${theme.palette.text.secondary}`
|
|
1885
|
-
: (
|
|
2375
|
+
: (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
|
|
1886
2376
|
? `2px dashed ${theme.palette.primary.main}`
|
|
1887
2377
|
: undefined;
|
|
1888
2378
|
const draggingBorders = draggingBorder
|
|
@@ -1908,8 +2398,7 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
|
|
|
1908
2398
|
? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`
|
|
1909
2399
|
: undefined, cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text', left: column.getIsPinned() === 'left'
|
|
1910
2400
|
? `${column.getStart('left')}px`
|
|
1911
|
-
: undefined, opacity: (
|
|
1912
|
-
(currentHoveredColumn === null || currentHoveredColumn === void 0 ? void 0 : currentHoveredColumn.id) === column.id
|
|
2401
|
+
: undefined, opacity: (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id || (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
|
|
1913
2402
|
? 0.5
|
|
1914
2403
|
: 1, overflow: 'hidden', p: density === 'compact'
|
|
1915
2404
|
? columnDefType === 'display'
|
|
@@ -1928,7 +2417,7 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
|
|
|
1928
2417
|
: density === 'comfortable'
|
|
1929
2418
|
? 0.75
|
|
1930
2419
|
: 1.25)}rem`
|
|
1931
|
-
: undefined, position: column.getIsPinned() ? 'sticky' : 'relative', right: column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined, textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined, transition: 'all 0.2s ease-in-out', whiteSpace: density === 'compact' ? 'nowrap' : 'normal', zIndex: (
|
|
2420
|
+
: undefined, position: column.getIsPinned() ? 'sticky' : 'relative', right: column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined, textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined, transition: 'all 0.2s ease-in-out', whiteSpace: density === 'compact' ? 'nowrap' : 'normal', zIndex: (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id
|
|
1932
2421
|
? 2
|
|
1933
2422
|
: column.getIsPinned()
|
|
1934
2423
|
? 1
|
|
@@ -1974,20 +2463,20 @@ const MRT_TableDetailPanel = ({ row, table }) => {
|
|
|
1974
2463
|
const MRT_TableBodyRow = ({ row, rowIndex, table }) => {
|
|
1975
2464
|
var _a, _b;
|
|
1976
2465
|
const theme = useTheme();
|
|
1977
|
-
const { getIsSomeColumnsPinned, getState, options: { enableRowOrdering, muiTableBodyRowProps, renderDetailPanel },
|
|
1978
|
-
const {
|
|
2466
|
+
const { getIsSomeColumnsPinned, getState, options: { enableRowOrdering, muiTableBodyRowProps, renderDetailPanel }, setHoveredRow, } = table;
|
|
2467
|
+
const { draggingRow, hoveredRow } = getState();
|
|
1979
2468
|
const tableRowProps = muiTableBodyRowProps instanceof Function
|
|
1980
2469
|
? muiTableBodyRowProps({ row, table })
|
|
1981
2470
|
: muiTableBodyRowProps;
|
|
1982
2471
|
const handleDragEnter = (_e) => {
|
|
1983
|
-
if (enableRowOrdering &&
|
|
1984
|
-
|
|
2472
|
+
if (enableRowOrdering && draggingRow) {
|
|
2473
|
+
setHoveredRow(row);
|
|
1985
2474
|
}
|
|
1986
2475
|
};
|
|
1987
2476
|
const rowRef = useRef(null);
|
|
1988
|
-
const draggingBorder = (
|
|
2477
|
+
const draggingBorder = (draggingRow === null || draggingRow === void 0 ? void 0 : draggingRow.id) === row.id
|
|
1989
2478
|
? `1px dashed ${theme.palette.text.secondary}`
|
|
1990
|
-
: (
|
|
2479
|
+
: (hoveredRow === null || hoveredRow === void 0 ? void 0 : hoveredRow.id) === row.id
|
|
1991
2480
|
? `2px dashed ${theme.palette.primary.main}`
|
|
1992
2481
|
: undefined;
|
|
1993
2482
|
const draggingBorders = draggingBorder
|
|
@@ -1996,10 +2485,7 @@ const MRT_TableBodyRow = ({ row, rowIndex, table }) => {
|
|
|
1996
2485
|
}
|
|
1997
2486
|
: undefined;
|
|
1998
2487
|
return (React.createElement(React.Fragment, null,
|
|
1999
|
-
React.createElement(TableRow, Object.assign({ onDragEnter: handleDragEnter, hover: true, selected: row.getIsSelected(), ref: rowRef }, tableRowProps, { sx: (theme) => (Object.assign(Object.assign({ backgroundColor: lighten(theme.palette.background.default, 0.06), opacity: (
|
|
2000
|
-
(currentHoveredRow === null || currentHoveredRow === void 0 ? void 0 : currentHoveredRow.id) === row.id
|
|
2001
|
-
? 0.5
|
|
2002
|
-
: 1, transition: 'all 0.2s ease-in-out', '&:hover td': {
|
|
2488
|
+
React.createElement(TableRow, Object.assign({ onDragEnter: handleDragEnter, hover: true, selected: row.getIsSelected(), ref: rowRef }, tableRowProps, { sx: (theme) => (Object.assign(Object.assign({ backgroundColor: lighten(theme.palette.background.default, 0.06), opacity: (draggingRow === null || draggingRow === void 0 ? void 0 : draggingRow.id) === row.id || (hoveredRow === null || hoveredRow === void 0 ? void 0 : hoveredRow.id) === row.id ? 0.5 : 1, transition: 'all 0.2s ease-in-out', '&:hover td': {
|
|
2003
2489
|
backgroundColor: (tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.hover) !== false && getIsSomeColumnsPinned()
|
|
2004
2490
|
? theme.palette.mode === 'dark'
|
|
2005
2491
|
? `${lighten(theme.palette.background.default, 0.12)}`
|
|
@@ -2013,7 +2499,7 @@ const MRT_TableBodyRow = ({ row, rowIndex, table }) => {
|
|
|
2013
2499
|
|
|
2014
2500
|
const MRT_TableBody = ({ table, tableContainerRef }) => {
|
|
2015
2501
|
const { getRowModel, getPrePaginationRowModel, getState, options: { enableGlobalFilterRankedResults, enablePagination, enableRowVirtualization, muiTableBodyProps, virtualizerProps, }, } = table;
|
|
2016
|
-
const {
|
|
2502
|
+
const { globalFilter, pagination, sorting } = getState();
|
|
2017
2503
|
const tableBodyProps = muiTableBodyProps instanceof Function
|
|
2018
2504
|
? muiTableBodyProps({ table })
|
|
2019
2505
|
: muiTableBodyProps;
|
|
@@ -2041,19 +2527,37 @@ const MRT_TableBody = ({ table, tableContainerRef }) => {
|
|
|
2041
2527
|
globalFilter,
|
|
2042
2528
|
]);
|
|
2043
2529
|
const rowVirtualizer = enableRowVirtualization
|
|
2044
|
-
?
|
|
2530
|
+
? useVirtual(Object.assign({ size: rows.length, parentRef: tableContainerRef, overscan: 15 }, vProps))
|
|
2045
2531
|
: {};
|
|
2532
|
+
// const rowVirtualizer: Virtualizer = enableRowVirtualization
|
|
2533
|
+
// ? useVirtualizer({
|
|
2534
|
+
// count: rows.length,
|
|
2535
|
+
// estimateSize: () => (density === 'compact' ? 25 : 50),
|
|
2536
|
+
// getScrollElement: () => tableContainerRef.current as HTMLDivElement,
|
|
2537
|
+
// overscan: 15,
|
|
2538
|
+
// ...vProps,
|
|
2539
|
+
// })
|
|
2540
|
+
// : ({} as any);
|
|
2046
2541
|
const virtualRows = enableRowVirtualization
|
|
2047
|
-
? rowVirtualizer.
|
|
2542
|
+
? rowVirtualizer.virtualItems
|
|
2048
2543
|
: [];
|
|
2544
|
+
// const virtualRows = enableRowVirtualization
|
|
2545
|
+
// ? rowVirtualizer.getVirtualItems()
|
|
2546
|
+
// : [];
|
|
2049
2547
|
let paddingTop = 0;
|
|
2050
2548
|
let paddingBottom = 0;
|
|
2051
2549
|
if (enableRowVirtualization) {
|
|
2052
2550
|
paddingTop = !!virtualRows.length ? virtualRows[0].start : 0;
|
|
2053
2551
|
paddingBottom = !!virtualRows.length
|
|
2054
|
-
? rowVirtualizer.
|
|
2552
|
+
? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end
|
|
2055
2553
|
: 0;
|
|
2056
2554
|
}
|
|
2555
|
+
// if (enableRowVirtualization) {
|
|
2556
|
+
// paddingTop = !!virtualRows.length ? virtualRows[0].start : 0;
|
|
2557
|
+
// paddingBottom = !!virtualRows.length
|
|
2558
|
+
// ? rowVirtualizer.getTotalSize() - virtualRows[virtualRows.length - 1].end
|
|
2559
|
+
// : 0;
|
|
2560
|
+
// }
|
|
2057
2561
|
return (React.createElement(TableBody, Object.assign({}, tableBodyProps),
|
|
2058
2562
|
enableRowVirtualization && paddingTop > 0 && (React.createElement("tr", null,
|
|
2059
2563
|
React.createElement("td", { style: { height: `${paddingTop}px` } }))),
|
|
@@ -2188,7 +2692,7 @@ const MRT_TablePaper = ({ table }) => {
|
|
|
2188
2692
|
};
|
|
2189
2693
|
|
|
2190
2694
|
const MRT_TableRoot = (props) => {
|
|
2191
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;
|
|
2695
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8;
|
|
2192
2696
|
const [tableId, setIdPrefix] = useState(props.tableId);
|
|
2193
2697
|
useEffect(() => { var _a; return setIdPrefix((_a = props.tableId) !== null && _a !== void 0 ? _a : Math.random().toString(36).substring(2, 9)); }, [props.tableId]);
|
|
2194
2698
|
const initialState = useMemo(() => {
|
|
@@ -2196,31 +2700,34 @@ const MRT_TableRoot = (props) => {
|
|
|
2196
2700
|
const initState = (_a = props.initialState) !== null && _a !== void 0 ? _a : {};
|
|
2197
2701
|
initState.columnOrder =
|
|
2198
2702
|
(_b = initState.columnOrder) !== null && _b !== void 0 ? _b : getDefaultColumnOrderIds(props);
|
|
2703
|
+
initState.columnFilterFns = Object.assign({}, ...getAllLeafColumnDefs(props.columns).map((col) => {
|
|
2704
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
2705
|
+
return ({
|
|
2706
|
+
[(_d = (_b = (_a = col.id) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : (_c = col.accessorKey) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : '']: col.filterFn instanceof Function
|
|
2707
|
+
? (_e = col.filterFn.name) !== null && _e !== void 0 ? _e : 'custom'
|
|
2708
|
+
: (_m = (_f = col.filterFn) !== null && _f !== void 0 ? _f : (_g = initialState === null || initialState === void 0 ? void 0 : initialState.columnFilterFns) === null || _g === void 0 ? void 0 : _g[(_l = (_j = (_h = col.id) === null || _h === void 0 ? void 0 : _h.toString()) !== null && _j !== void 0 ? _j : (_k = col.accessorKey) === null || _k === void 0 ? void 0 : _k.toString()) !== null && _l !== void 0 ? _l : '']) !== null && _m !== void 0 ? _m : getDefaultColumnFilterFn(col),
|
|
2709
|
+
});
|
|
2710
|
+
}));
|
|
2711
|
+
initState.globalFilterFn =
|
|
2712
|
+
props.globalFilterFn instanceof String
|
|
2713
|
+
? props.globalFilterFn
|
|
2714
|
+
: 'fuzzy';
|
|
2199
2715
|
return initState;
|
|
2200
2716
|
}, []);
|
|
2201
|
-
const [
|
|
2202
|
-
const [
|
|
2203
|
-
const [
|
|
2204
|
-
const [
|
|
2205
|
-
const [
|
|
2206
|
-
const [
|
|
2207
|
-
const [
|
|
2208
|
-
const [
|
|
2209
|
-
const [
|
|
2210
|
-
const [
|
|
2211
|
-
const [
|
|
2212
|
-
const [
|
|
2213
|
-
const [
|
|
2214
|
-
|
|
2215
|
-
return ({
|
|
2216
|
-
[(_d = (_b = (_a = col.id) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : (_c = col.accessorKey) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : '']: col.filterFn instanceof Function
|
|
2217
|
-
? (_e = col.filterFn.name) !== null && _e !== void 0 ? _e : 'custom'
|
|
2218
|
-
: (_m = (_f = col.filterFn) !== null && _f !== void 0 ? _f : (_g = initialState === null || initialState === void 0 ? void 0 : initialState.columnFilterFns) === null || _g === void 0 ? void 0 : _g[(_l = (_j = (_h = col.id) === null || _h === void 0 ? void 0 : _h.toString()) !== null && _j !== void 0 ? _j : (_k = col.accessorKey) === null || _k === void 0 ? void 0 : _k.toString()) !== null && _l !== void 0 ? _l : '']) !== null && _m !== void 0 ? _m : getDefaultColumnFilterFn(col),
|
|
2219
|
-
});
|
|
2220
|
-
})));
|
|
2221
|
-
const [globalFilterFn, setGlobalFilterFn] = useState(props.globalFilterFn instanceof String
|
|
2222
|
-
? props.globalFilterFn
|
|
2223
|
-
: 'fuzzy');
|
|
2717
|
+
const [columnFilterFns, setColumnFilterFns] = useState((_a = initialState.columnFilterFns) !== null && _a !== void 0 ? _a : {});
|
|
2718
|
+
const [columnOrder, setColumnOrder] = useState((_b = initialState.columnOrder) !== null && _b !== void 0 ? _b : []);
|
|
2719
|
+
const [density, setDensity] = useState((_c = initialState === null || initialState === void 0 ? void 0 : initialState.density) !== null && _c !== void 0 ? _c : 'comfortable');
|
|
2720
|
+
const [draggingColumn, setDraggingColumn] = useState((_d = initialState.draggingColumn) !== null && _d !== void 0 ? _d : null);
|
|
2721
|
+
const [draggingRow, setDraggingRow] = useState((_e = initialState.draggingRow) !== null && _e !== void 0 ? _e : null);
|
|
2722
|
+
const [editingCell, setEditingCell] = useState((_f = initialState.editingCell) !== null && _f !== void 0 ? _f : null);
|
|
2723
|
+
const [editingRow, setEditingRow] = useState((_g = initialState.editingRow) !== null && _g !== void 0 ? _g : null);
|
|
2724
|
+
const [globalFilterFn, setGlobalFilterFn] = useState((_h = initialState.globalFilterFn) !== null && _h !== void 0 ? _h : 'fuzzy');
|
|
2725
|
+
const [hoveredColumn, setHoveredColumn] = useState((_j = initialState.hoveredColumn) !== null && _j !== void 0 ? _j : null);
|
|
2726
|
+
const [hoveredRow, setHoveredRow] = useState((_k = initialState.hoveredRow) !== null && _k !== void 0 ? _k : null);
|
|
2727
|
+
const [isFullScreen, setIsFullScreen] = useState((_l = initialState === null || initialState === void 0 ? void 0 : initialState.isFullScreen) !== null && _l !== void 0 ? _l : false);
|
|
2728
|
+
const [showAlertBanner, setShowAlertBanner] = useState((_o = (_m = props.initialState) === null || _m === void 0 ? void 0 : _m.showAlertBanner) !== null && _o !== void 0 ? _o : false);
|
|
2729
|
+
const [showColumnFilters, setShowFilters] = useState((_p = initialState === null || initialState === void 0 ? void 0 : initialState.showColumnFilters) !== null && _p !== void 0 ? _p : false);
|
|
2730
|
+
const [showGlobalFilter, setShowGlobalFilter] = useState((_q = initialState === null || initialState === void 0 ? void 0 : initialState.showGlobalFilter) !== null && _q !== void 0 ? _q : false);
|
|
2224
2731
|
const displayColumns = useMemo(() => {
|
|
2225
2732
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
2226
2733
|
return [
|
|
@@ -2247,8 +2754,6 @@ const MRT_TableRoot = (props) => {
|
|
|
2247
2754
|
props.enableRowSelection,
|
|
2248
2755
|
props.enableSelectAll,
|
|
2249
2756
|
props.localization,
|
|
2250
|
-
props.muiTableBodyCellProps,
|
|
2251
|
-
props.muiTableHeadCellProps,
|
|
2252
2757
|
props.positionActionsColumn,
|
|
2253
2758
|
]);
|
|
2254
2759
|
const columnDefs = useMemo(() => prepareColumns([...displayColumns, ...props.columns], columnFilterFns, props.filterFns, props.sortingFns), [columnFilterFns, displayColumns, props.columns]);
|
|
@@ -2267,26 +2772,24 @@ const MRT_TableRoot = (props) => {
|
|
|
2267
2772
|
});
|
|
2268
2773
|
})))
|
|
2269
2774
|
: props.data;
|
|
2270
|
-
}, [props.data, (
|
|
2775
|
+
}, [props.data, (_r = props.state) === null || _r === void 0 ? void 0 : _r.isLoading, (_s = props.state) === null || _s === void 0 ? void 0 : _s.showSkeletons]);
|
|
2271
2776
|
//@ts-ignore
|
|
2272
2777
|
const table = Object.assign(Object.assign({}, useReactTable(Object.assign(Object.assign({ getCoreRowModel: getCoreRowModel(), getExpandedRowModel: getExpandedRowModel(), getFacetedRowModel: getFacetedRowModel(), getFilteredRowModel: getFilteredRowModel(), getGroupedRowModel: getGroupedRowModel(), getPaginationRowModel: getPaginationRowModel(), getSortedRowModel: getSortedRowModel(), onColumnOrderChange: setColumnOrder, getSubRows: (row) => row === null || row === void 0 ? void 0 : row.subRows }, props), {
|
|
2273
2778
|
//@ts-ignore
|
|
2274
|
-
columns: columnDefs, data, globalFilterFn:
|
|
2275
|
-
|
|
2276
|
-
(_r = props.filterFns[globalFilterFn]) !== null && _r !== void 0 ? _r : props.filterFns.fuzzy, initialState, state: Object.assign({ columnOrder,
|
|
2277
|
-
currentDraggingColumn,
|
|
2278
|
-
currentDraggingRow,
|
|
2279
|
-
currentEditingCell,
|
|
2280
|
-
currentEditingRow,
|
|
2281
|
-
columnFilterFns,
|
|
2282
|
-
globalFilterFn,
|
|
2283
|
-
currentHoveredColumn,
|
|
2284
|
-
currentHoveredRow,
|
|
2779
|
+
columns: columnDefs, data, globalFilterFn: (_u = (_t = props.filterFns) === null || _t === void 0 ? void 0 : _t[globalFilterFn]) !== null && _u !== void 0 ? _u : (_v = props.filterFns) === null || _v === void 0 ? void 0 : _v.fuzzy, initialState, state: Object.assign({ columnFilterFns,
|
|
2780
|
+
columnOrder,
|
|
2285
2781
|
density,
|
|
2782
|
+
draggingColumn,
|
|
2783
|
+
draggingRow,
|
|
2784
|
+
editingCell,
|
|
2785
|
+
editingRow,
|
|
2786
|
+
globalFilterFn,
|
|
2787
|
+
hoveredColumn,
|
|
2788
|
+
hoveredRow,
|
|
2286
2789
|
isFullScreen,
|
|
2287
2790
|
showAlertBanner,
|
|
2288
2791
|
showColumnFilters,
|
|
2289
|
-
showGlobalFilter }, props.state), tableId }))), {
|
|
2792
|
+
showGlobalFilter }, props.state), tableId }))), { setColumnFilterFns: (_w = props.onFilterFnsChange) !== null && _w !== void 0 ? _w : setColumnFilterFns, setDensity: (_x = props.onDensityChange) !== null && _x !== void 0 ? _x : setDensity, setDraggingColumn: (_y = props.onDraggingColumnChange) !== null && _y !== void 0 ? _y : setDraggingColumn, setDraggingRow: (_z = props.onDraggingRowChange) !== null && _z !== void 0 ? _z : setDraggingRow, setEditingCell: (_0 = props.onEditingCellChange) !== null && _0 !== void 0 ? _0 : setEditingCell, setEditingRow: (_1 = props.onEditingRowChange) !== null && _1 !== void 0 ? _1 : setEditingRow, setGlobalFilterFn: (_2 = props.onGlobalFilterFnChange) !== null && _2 !== void 0 ? _2 : setGlobalFilterFn, setHoveredColumn: (_3 = props.onHoveredColumnChange) !== null && _3 !== void 0 ? _3 : setHoveredColumn, setHoveredRow: (_4 = props.onHoveredRowChange) !== null && _4 !== void 0 ? _4 : setHoveredRow, setIsFullScreen: (_5 = props.onIsFullScreenChange) !== null && _5 !== void 0 ? _5 : setIsFullScreen, setShowAlertBanner: (_6 = props.onShowAlertBannerChange) !== null && _6 !== void 0 ? _6 : setShowAlertBanner, setShowFilters: (_7 = props.onShowFiltersChange) !== null && _7 !== void 0 ? _7 : setShowFilters, setShowGlobalFilter: (_8 = props.onShowGlobalFilterChange) !== null && _8 !== void 0 ? _8 : setShowGlobalFilter });
|
|
2290
2793
|
return (React.createElement(React.Fragment, null,
|
|
2291
2794
|
React.createElement(Dialog, { PaperComponent: Box, TransitionComponent: Grow, disablePortal: true, fullScreen: true, keepMounted: false, onClose: () => setIsFullScreen(false), open: isFullScreen, transitionDuration: 400 },
|
|
2292
2795
|
React.createElement(MRT_TablePaper, { table: table })),
|
|
@@ -2298,5 +2801,5 @@ var MaterialReactTable = (_a) => {
|
|
|
2298
2801
|
return (React.createElement(MRT_TableRoot, Object.assign({ aggregationFns: Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns), autoResetExpanded: autoResetExpanded, columnResizeMode: columnResizeMode, defaultColumn: defaultColumn, editingMode: editingMode, enableBottomToolbar: enableBottomToolbar, enableColumnActions: enableColumnActions, enableColumnFilterChangeMode: enableColumnFilterChangeMode, enableColumnFilters: enableColumnFilters, enableColumnOrdering: enableColumnOrdering, enableColumnResizing: enableColumnResizing, enableDensityToggle: enableDensityToggle, enableExpandAll: enableExpandAll, enableFilters: enableFilters, enableFullScreenToggle: enableFullScreenToggle, enableGlobalFilter: enableGlobalFilter, enableGlobalFilterChangeMode: enableGlobalFilterChangeMode, enableGlobalFilterRankedResults: enableGlobalFilterRankedResults, enableGrouping: enableGrouping, enableHiding: enableHiding, enableMultiRowSelection: enableMultiRowSelection, enableMultiSort: enableMultiSort, enablePagination: enablePagination, enablePinning: enablePinning, enableRowSelection: enableRowSelection, enableSelectAll: enableSelectAll, enableSorting: enableSorting, enableStickyHeader: enableStickyHeader, enableTableFooter: enableTableFooter, enableTableHead: enableTableHead, enableToolbarInternalActions: enableToolbarInternalActions, enableTopToolbar: enableTopToolbar, filterFns: Object.assign(Object.assign({}, MRT_FilterFns), filterFns), icons: Object.assign(Object.assign({}, MRT_Default_Icons), icons), localization: Object.assign(Object.assign({}, MRT_DefaultLocalization_EN), localization), positionActionsColumn: positionActionsColumn, positionExpandColumn: positionExpandColumn, positionGlobalFilter: positionGlobalFilter, positionPagination: positionPagination, positionToolbarAlertBanner: positionToolbarAlertBanner, positionToolbarDropZone: positionToolbarDropZone, rowNumberMode: rowNumberMode, selectAllMode: selectAllMode, sortingFns: Object.assign(Object.assign({}, MRT_SortingFns), sortingFns) }, rest)));
|
|
2299
2802
|
};
|
|
2300
2803
|
|
|
2301
|
-
export { MaterialReactTable as default };
|
|
2804
|
+
export { MRT_FullScreenToggleButton, MRT_GlobalFilterTextField, MRT_ShowHideColumnsButton, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleGlobalFilterButton, MaterialReactTable as default };
|
|
2302
2805
|
//# sourceMappingURL=material-react-table.esm.js.map
|