material-react-table-narender 2.13.4 → 2.13.6
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/index.d.ts +3 -0
- package/dist/index.esm.js +56 -8
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +56 -7
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/components/menus/MRT_ShowHideColumnsMenu.tsx +12 -0
- package/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx +29 -0
- package/src/icons.ts +2 -0
- package/src/utils/cell.utils.ts +16 -0
package/dist/index.d.ts
CHANGED
@@ -233,6 +233,9 @@ declare const MRT_Default_Icons: {
|
|
233
233
|
readonly VisibilityOffIcon: _mui_material_OverridableComponent.OverridableComponent<_mui_material.SvgIconTypeMap<{}, "svg">> & {
|
234
234
|
muiName: string;
|
235
235
|
};
|
236
|
+
readonly SettingsBackupRestoreIcon: _mui_material_OverridableComponent.OverridableComponent<_mui_material.SvgIconTypeMap<{}, "svg">> & {
|
237
|
+
muiName: string;
|
238
|
+
};
|
236
239
|
};
|
237
240
|
type MRT_Icons = Record<keyof typeof MRT_Default_Icons, any>;
|
238
241
|
|
package/dist/index.esm.js
CHANGED
@@ -48,9 +48,10 @@ import SortIcon from '@mui/icons-material/Sort';
|
|
48
48
|
import SyncAltIcon from '@mui/icons-material/SyncAlt';
|
49
49
|
import ViewColumnIcon from '@mui/icons-material/ViewColumn';
|
50
50
|
import VisibilityOffIcon from '@mui/icons-material/VisibilityOff';
|
51
|
+
import SettingsBackupRestoreIcon from '@mui/icons-material/SettingsBackupRestore';
|
51
52
|
import { defaultRangeExtractor, useVirtualizer } from '@tanstack/react-virtual';
|
52
53
|
import Paper from '@mui/material/Paper';
|
53
|
-
import { useTheme as useTheme$1 } from '@mui/material';
|
54
|
+
import { Button as Button$1, useTheme as useTheme$1 } from '@mui/material';
|
54
55
|
import TableContainer from '@mui/material/TableContainer';
|
55
56
|
import Table from '@mui/material/Table';
|
56
57
|
import TableBody from '@mui/material/TableBody';
|
@@ -435,6 +436,7 @@ const openEditingCell = ({ cell, table, }) => {
|
|
435
436
|
};
|
436
437
|
const cellKeyboardShortcuts = ({ cell, cellElements, cellValue, containerElement, event, header, parentElement, table, }) => {
|
437
438
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
439
|
+
debugger;
|
438
440
|
if (!table.options.enableKeyboardShortcuts)
|
439
441
|
return;
|
440
442
|
if (event.isPropagationStopped())
|
@@ -501,6 +503,16 @@ const cellKeyboardShortcuts = ({ cell, cellElements, cellValue, containerElement
|
|
501
503
|
'PageDown',
|
502
504
|
].includes(event.key)) {
|
503
505
|
event.preventDefault();
|
506
|
+
if (['ArrowDown'].includes(event.key)) {
|
507
|
+
debugger; // This will pause execution for debugging purposes
|
508
|
+
// Select the input element within the MUI Autocomplete component
|
509
|
+
const autocomplete = currentCell.querySelector('.MuiAutocomplete-root input[type="text"]');
|
510
|
+
// Check if the current cell is an MUI Autocomplete
|
511
|
+
if (autocomplete) {
|
512
|
+
return; // Exit the function if it's an Autocomplete
|
513
|
+
}
|
514
|
+
// Additional logic for when it's not an Autocomplete can go here
|
515
|
+
}
|
504
516
|
const currentRow = parentElement || currentCell.closest('tr');
|
505
517
|
const tableElement = containerElement || currentCell.closest('table');
|
506
518
|
const allCells = cellElements ||
|
@@ -1269,6 +1281,7 @@ const MRT_Default_Icons = {
|
|
1269
1281
|
SyncAltIcon,
|
1270
1282
|
ViewColumnIcon,
|
1271
1283
|
VisibilityOffIcon,
|
1284
|
+
SettingsBackupRestoreIcon
|
1272
1285
|
};
|
1273
1286
|
|
1274
1287
|
const MRT_Localization_EN = {
|
@@ -2217,7 +2230,17 @@ const MRT_TableBodyCell = (_a) => {
|
|
2217
2230
|
table.refs.actionCellRef.current = e.currentTarget;
|
2218
2231
|
}
|
2219
2232
|
};
|
2220
|
-
|
2233
|
+
const handleKeyDown = (event) => {
|
2234
|
+
var _a;
|
2235
|
+
(_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, event);
|
2236
|
+
cellKeyboardShortcuts({
|
2237
|
+
cell,
|
2238
|
+
cellValue: cell.getValue(),
|
2239
|
+
event,
|
2240
|
+
table,
|
2241
|
+
});
|
2242
|
+
};
|
2243
|
+
return (jsx(TableCell, Object.assign({ align: theme.direction === 'rtl' ? 'right' : 'left', "data-index": staticColumnIndex, "data-pinned": !!isColumnPinned || undefined, tabIndex: enableKeyboardShortcuts ? 0 : undefined }, tableCellProps, { onKeyDown: handleKeyDown, onContextMenu: handleContextMenu, onDoubleClick: handleDoubleClick, onDragEnter: handleDragEnter, onDragOver: handleDragOver, sx: (theme) => (Object.assign(Object.assign({ '&:hover': {
|
2221
2244
|
outline: (actionCell === null || actionCell === void 0 ? void 0 : actionCell.id) === cell.id ||
|
2222
2245
|
(editDisplayMode === 'cell' && isEditable) ||
|
2223
2246
|
(editDisplayMode === 'table' && (isCreating || isEditing))
|
@@ -2487,11 +2510,20 @@ const MRT_TableFooterCell = (_a) => {
|
|
2487
2510
|
column.getIsPinned();
|
2488
2511
|
const args = { column, table };
|
2489
2512
|
const tableCellProps = Object.assign(Object.assign(Object.assign({}, parseFromValuesOrFunc(muiTableFooterCellProps, args)), parseFromValuesOrFunc(columnDef.muiTableFooterCellProps, args)), rest);
|
2513
|
+
const handleKeyDown = (event) => {
|
2514
|
+
var _a;
|
2515
|
+
(_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, event);
|
2516
|
+
cellKeyboardShortcuts({
|
2517
|
+
event,
|
2518
|
+
cellValue: footer.column.columnDef.footer,
|
2519
|
+
table,
|
2520
|
+
});
|
2521
|
+
};
|
2490
2522
|
return (jsx(TableCell, Object.assign({ align: columnDefType === 'group'
|
2491
2523
|
? 'center'
|
2492
2524
|
: theme.direction === 'rtl'
|
2493
2525
|
? 'right'
|
2494
|
-
: 'left', colSpan: footer.colSpan, "data-index": staticColumnIndex, "data-pinned": !!isColumnPinned || undefined, tabIndex: enableKeyboardShortcuts ? 0 : undefined, variant: "footer" }, tableCellProps, { sx: (theme) => (Object.assign(Object.assign({ fontWeight: 'bold', p: density === 'compact'
|
2526
|
+
: 'left', colSpan: footer.colSpan, "data-index": staticColumnIndex, "data-pinned": !!isColumnPinned || undefined, tabIndex: enableKeyboardShortcuts ? 0 : undefined, variant: "footer" }, tableCellProps, { onKeyDown: handleKeyDown, sx: (theme) => (Object.assign(Object.assign({ fontWeight: 'bold', p: density === 'compact'
|
2495
2527
|
? '0.5rem'
|
2496
2528
|
: density === 'comfortable'
|
2497
2529
|
? '1rem'
|
@@ -3476,6 +3508,16 @@ const MRT_TableHeadCell = (_a) => {
|
|
3476
3508
|
e.preventDefault();
|
3477
3509
|
}
|
3478
3510
|
};
|
3511
|
+
const handleKeyDown = (event) => {
|
3512
|
+
var _a;
|
3513
|
+
(_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, event);
|
3514
|
+
cellKeyboardShortcuts({
|
3515
|
+
event,
|
3516
|
+
cellValue: header.column.columnDef.header,
|
3517
|
+
table,
|
3518
|
+
header,
|
3519
|
+
});
|
3520
|
+
};
|
3479
3521
|
const HeaderElement = (_b = parseFromValuesOrFunc(columnDef.Header, {
|
3480
3522
|
column,
|
3481
3523
|
header,
|
@@ -3497,7 +3539,7 @@ const MRT_TableHeadCell = (_a) => {
|
|
3497
3539
|
(_a = columnVirtualizer === null || columnVirtualizer === void 0 ? void 0 : columnVirtualizer.measureElement) === null || _a === void 0 ? void 0 : _a.call(columnVirtualizer, node);
|
3498
3540
|
}
|
3499
3541
|
}
|
3500
|
-
} }, tableCellProps, { sx: (theme) => (Object.assign(Object.assign({ '& :hover': {
|
3542
|
+
} }, tableCellProps, { onKeyDown: handleKeyDown, sx: (theme) => (Object.assign(Object.assign({ '& :hover': {
|
3501
3543
|
'.MuiButtonBase-root': {
|
3502
3544
|
opacity: 1,
|
3503
3545
|
},
|
@@ -3962,7 +4004,7 @@ const MRT_ColumnPinningButtons = (_a) => {
|
|
3962
4004
|
const MRT_ShowHideColumnsMenuItems = (_a) => {
|
3963
4005
|
var _b;
|
3964
4006
|
var { allColumns, column, hoveredColumn, isNestedColumns, setHoveredColumn, table } = _a, rest = __rest(_a, ["allColumns", "column", "hoveredColumn", "isNestedColumns", "setHoveredColumn", "table"]);
|
3965
|
-
const { getState, options: { enableColumnOrdering, enableColumnPinning, enableHiding, localization, mrtTheme: { draggingBorderColor }, }, setColumnOrder, } = table;
|
4007
|
+
const { getState, options: { enableColumnOrdering, enableColumnPinning, enableHiding, localization, enableColumnResizing, mrtTheme: { draggingBorderColor }, icons: { SettingsBackupRestoreIcon }, }, setColumnOrder, } = table;
|
3966
4008
|
const { columnOrder } = getState();
|
3967
4009
|
const { columnDef } = column;
|
3968
4010
|
const { columnDefType } = columnDef;
|
@@ -4023,12 +4065,15 @@ const MRT_ShowHideColumnsMenuItems = (_a) => {
|
|
4023
4065
|
opacity: columnDefType !== 'display' ? 1 : 0.5,
|
4024
4066
|
},
|
4025
4067
|
},
|
4026
|
-
}, control: jsx(Tooltip, Object.assign({}, getCommonTooltipProps(), { title: localization.toggleVisibility, children: jsx(Switch, {}) })), disabled: !column.getCanHide(), label: columnDef.header, onChange: () => handleToggleColumnHidden(column) })) : (jsx(Typography, { sx: { alignSelf: 'center' }, children: columnDef.header }))
|
4068
|
+
}, control: jsx(Tooltip, Object.assign({}, getCommonTooltipProps(), { title: localization.toggleVisibility, children: jsx(Switch, {}) })), disabled: !column.getCanHide(), label: columnDef.header, onChange: () => handleToggleColumnHidden(column) })) : (jsx(Typography, { sx: { alignSelf: 'center' }, children: columnDef.header })), enableColumnResizing && columnDefType !== 'group' &&
|
4069
|
+
(columnDef.enableResizing !== false ? (jsx(Tooltip, Object.assign({}, getCommonTooltipProps(), { title: localization.resetColumnSize, children: jsx(Button$1, { onClick: () => {
|
4070
|
+
column.resetSize();
|
4071
|
+
}, children: jsx(SettingsBackupRestoreIcon, {}) }) }))) : (jsx(Box, { sx: { width: '28px' } })))] }) })), (_b = column.columns) === null || _b === void 0 ? void 0 : _b.map((c, i) => (jsx(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: c, hoveredColumn: hoveredColumn, isNestedColumns: isNestedColumns, setHoveredColumn: setHoveredColumn, table: table }, `${i}-${c.id}`)))] }));
|
4027
4072
|
};
|
4028
4073
|
|
4029
4074
|
const MRT_ShowHideColumnsMenu = (_a) => {
|
4030
4075
|
var { anchorEl, setAnchorEl, table } = _a, rest = __rest(_a, ["anchorEl", "setAnchorEl", "table"]);
|
4031
|
-
const { getAllColumns, getAllLeafColumns, getCenterLeafColumns, getIsAllColumnsVisible, getIsSomeColumnsPinned, getIsSomeColumnsVisible, getLeftLeafColumns, getRightLeafColumns, getState, options: { enableColumnOrdering, enableColumnPinning, enableHiding, localization, mrtTheme: { menuBackgroundColor }, }, } = table;
|
4076
|
+
const { getAllColumns, getAllLeafColumns, getCenterLeafColumns, getIsAllColumnsVisible, getIsSomeColumnsPinned, getIsSomeColumnsVisible, getLeftLeafColumns, getRightLeafColumns, getState, options: { enableColumnOrdering, enableColumnPinning, enableHiding, localization, enableColumnResizing, mrtTheme: { menuBackgroundColor }, }, } = table;
|
4032
4077
|
const { columnOrder, columnPinning, density } = getState();
|
4033
4078
|
const handleToggleAllColumns = (value) => {
|
4034
4079
|
getAllLeafColumns()
|
@@ -4066,7 +4111,9 @@ const MRT_ShowHideColumnsMenu = (_a) => {
|
|
4066
4111
|
justifyContent: 'space-between',
|
4067
4112
|
p: '0.5rem',
|
4068
4113
|
pt: 0,
|
4069
|
-
}, children: [enableHiding && (jsx(Button, { disabled: !getIsSomeColumnsVisible(), onClick: () => handleToggleAllColumns(false), children: localization.hideAll })), enableColumnOrdering && (jsx(Button, { onClick: () => table.setColumnOrder(getDefaultColumnOrderIds(table.options, true)), children: localization.resetOrder })), enableColumnPinning && (jsx(Button, { disabled: !getIsSomeColumnsPinned(), onClick: () => table.resetColumnPinning(true), children: localization.unpinAll })), enableHiding && (jsx(Button, { disabled: getIsAllColumnsVisible(), onClick: () => handleToggleAllColumns(true), children: localization.showAll }))
|
4114
|
+
}, children: [enableHiding && (jsx(Button, { disabled: !getIsSomeColumnsVisible(), onClick: () => handleToggleAllColumns(false), children: localization.hideAll })), enableColumnOrdering && (jsx(Button, { onClick: () => table.setColumnOrder(getDefaultColumnOrderIds(table.options, true)), children: localization.resetOrder })), enableColumnPinning && (jsx(Button, { disabled: !getIsSomeColumnsPinned(), onClick: () => table.resetColumnPinning(true), children: localization.unpinAll })), enableHiding && (jsx(Button, { disabled: getIsAllColumnsVisible(), onClick: () => handleToggleAllColumns(true), children: localization.showAll })), enableColumnResizing && (jsx(Button, { onClick: () => {
|
4115
|
+
table.resetColumnSizing(true);
|
4116
|
+
}, children: localization.resetColumnSize }))] }), jsx(Divider, {}), allColumns.map((column, index) => (jsx(MRT_ShowHideColumnsMenuItems, { allColumns: allColumns, column: column, hoveredColumn: hoveredColumn, isNestedColumns: isNestedColumns, setHoveredColumn: setHoveredColumn, table: table }, `${index}-${column.id}`)))] })));
|
4070
4117
|
};
|
4071
4118
|
|
4072
4119
|
const MRT_ShowHideColumnsButton = (_a) => {
|
@@ -4275,6 +4322,7 @@ const MRT_TablePaper = (_a) => {
|
|
4275
4322
|
const isTableInstanceProp = (props) => props.table !== undefined;
|
4276
4323
|
const MaterialReactTable = (props) => {
|
4277
4324
|
let table;
|
4325
|
+
debugger;
|
4278
4326
|
if (isTableInstanceProp(props)) {
|
4279
4327
|
table = props.table;
|
4280
4328
|
}
|