material-react-table 3.0.0 → 3.0.2
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 +1 -1
- package/dist/index.esm.js +42 -35
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +42 -36
- package/dist/index.js.map +1 -1
- package/locales/sv/index.esm.js +6 -6
- package/locales/sv/index.js +6 -6
- package/package.json +33 -33
- package/src/components/body/MRT_TableBodyCell.tsx +1 -1
- package/src/components/footer/MRT_TableFooterCell.tsx +1 -1
- package/src/components/head/MRT_TableHeadCell.tsx +1 -2
- package/src/components/inputs/MRT_EditCellTextField.tsx +1 -1
- package/src/components/inputs/MRT_FilterTextField.tsx +13 -6
- package/src/components/inputs/MRT_GlobalFilterTextField.tsx +1 -1
- package/src/components/menus/MRT_RowActionMenu.tsx +1 -0
- package/src/components/table/MRT_TablePaper.tsx +48 -51
- package/src/locales/sv.ts +6 -6
- package/src/types.ts +1 -1
- package/src/utils/cell.utils.ts +1 -0
- package/src/utils/utils.ts +1 -1
package/dist/index.js
CHANGED
@@ -54,7 +54,6 @@ var ViewColumnIcon = require('@mui/icons-material/ViewColumn');
|
|
54
54
|
var VisibilityOffIcon = require('@mui/icons-material/VisibilityOff');
|
55
55
|
var reactVirtual = require('@tanstack/react-virtual');
|
56
56
|
var Paper = require('@mui/material/Paper');
|
57
|
-
var FocusTrap = require('@mui/material/Unstable_TrapFocus/FocusTrap');
|
58
57
|
var TableContainer = require('@mui/material/TableContainer');
|
59
58
|
var Table = require('@mui/material/Table');
|
60
59
|
var TableBody = require('@mui/material/TableBody');
|
@@ -145,7 +144,6 @@ var SyncAltIcon__default = /*#__PURE__*/_interopDefaultLegacy(SyncAltIcon);
|
|
145
144
|
var ViewColumnIcon__default = /*#__PURE__*/_interopDefaultLegacy(ViewColumnIcon);
|
146
145
|
var VisibilityOffIcon__default = /*#__PURE__*/_interopDefaultLegacy(VisibilityOffIcon);
|
147
146
|
var Paper__default = /*#__PURE__*/_interopDefaultLegacy(Paper);
|
148
|
-
var FocusTrap__default = /*#__PURE__*/_interopDefaultLegacy(FocusTrap);
|
149
147
|
var TableContainer__default = /*#__PURE__*/_interopDefaultLegacy(TableContainer);
|
150
148
|
var Table__default = /*#__PURE__*/_interopDefaultLegacy(Table);
|
151
149
|
var TableBody__default = /*#__PURE__*/_interopDefaultLegacy(TableBody);
|
@@ -528,6 +526,8 @@ const cellKeyboardShortcuts = ({ cell, cellElements, cellValue, containerElement
|
|
528
526
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
529
527
|
if (!table.options.enableKeyboardShortcuts)
|
530
528
|
return;
|
529
|
+
if (event.isPropagationStopped())
|
530
|
+
return;
|
531
531
|
const currentCell = event.currentTarget;
|
532
532
|
if (cellValue && isWinCtrlMacMeta(event) && event.key === 'c') {
|
533
533
|
navigator.clipboard.writeText(cellValue);
|
@@ -1016,7 +1016,7 @@ const MRT_RowActionMenu = (_a) => {
|
|
1016
1016
|
const menuItems = react.useMemo(() => {
|
1017
1017
|
const items = [];
|
1018
1018
|
const editItem = parseFromValuesOrFunc(enableEditing, row) &&
|
1019
|
-
['modal', 'row'].includes(editDisplayMode) && (jsxRuntime.jsx(MRT_ActionMenuItem, { icon: jsxRuntime.jsx(EditIcon, {}), label: localization.edit, onClick: handleEdit, table: table }));
|
1019
|
+
['modal', 'row'].includes(editDisplayMode) && (jsxRuntime.jsx(MRT_ActionMenuItem, { icon: jsxRuntime.jsx(EditIcon, {}), label: localization.edit, onClick: handleEdit, table: table }, 'edit'));
|
1020
1020
|
if (editItem)
|
1021
1021
|
items.push(editItem);
|
1022
1022
|
const rowActionMenuItems = renderRowActionMenuItems === null || renderRowActionMenuItems === void 0 ? void 0 : renderRowActionMenuItems({
|
@@ -2193,7 +2193,7 @@ const MRT_EditCellTextField = (_a) => {
|
|
2193
2193
|
: {})), textFieldProps.InputProps), { sx: (theme) => {
|
2194
2194
|
var _a;
|
2195
2195
|
return (Object.assign({ mb: 0 }, parseFromValuesOrFunc((_a = textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.InputProps) === null || _a === void 0 ? void 0 : _a.sx, theme)));
|
2196
|
-
} }), SelectProps: Object.assign({ MenuProps: { disableScrollLock: true } }, textFieldProps.SelectProps), inputProps: Object.assign({ autoComplete: '
|
2196
|
+
} }), SelectProps: Object.assign({ MenuProps: { disableScrollLock: true } }, textFieldProps.SelectProps), inputProps: Object.assign({ autoComplete: 'off' }, textFieldProps.inputProps), onBlur: handleBlur, onChange: handleChange, onClick: (e) => {
|
2197
2197
|
var _a;
|
2198
2198
|
e.stopPropagation();
|
2199
2199
|
(_a = textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.onClick) === null || _a === void 0 ? void 0 : _a.call(textFieldProps, e);
|
@@ -2336,13 +2336,13 @@ const MRT_TableBodyCell = (_a) => {
|
|
2336
2336
|
};
|
2337
2337
|
const handleKeyDown = (event) => {
|
2338
2338
|
var _a;
|
2339
|
+
(_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, event);
|
2339
2340
|
cellKeyboardShortcuts({
|
2340
2341
|
cell,
|
2341
2342
|
cellValue: cell.getValue(),
|
2342
2343
|
event,
|
2343
2344
|
table,
|
2344
2345
|
});
|
2345
|
-
(_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, event);
|
2346
2346
|
};
|
2347
2347
|
return (jsxRuntime.jsx(TableCell__default["default"], 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': {
|
2348
2348
|
outline: (actionCell === null || actionCell === void 0 ? void 0 : actionCell.id) === cell.id ||
|
@@ -2617,12 +2617,12 @@ const MRT_TableFooterCell = (_a) => {
|
|
2617
2617
|
const tableCellProps = Object.assign(Object.assign(Object.assign({}, parseFromValuesOrFunc(muiTableFooterCellProps, args)), parseFromValuesOrFunc(columnDef.muiTableFooterCellProps, args)), rest);
|
2618
2618
|
const handleKeyDown = (event) => {
|
2619
2619
|
var _a;
|
2620
|
+
(_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, event);
|
2620
2621
|
cellKeyboardShortcuts({
|
2621
2622
|
event,
|
2622
2623
|
cellValue: footer.column.columnDef.footer,
|
2623
2624
|
table,
|
2624
2625
|
});
|
2625
|
-
(_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, event);
|
2626
2626
|
};
|
2627
2627
|
return (jsxRuntime.jsx(TableCell__default["default"], Object.assign({ align: columnDefType === 'group'
|
2628
2628
|
? 'center'
|
@@ -3229,7 +3229,7 @@ const MRT_FilterTextField = (_a) => {
|
|
3229
3229
|
localization[`filter${((_k = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt(0)) === null || _k === void 0 ? void 0 : _k.toUpperCase()) +
|
3230
3230
|
(currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.slice(1))}`]) })) : null, inputProps: {
|
3231
3231
|
'aria-label': filterPlaceholder,
|
3232
|
-
autoComplete: '
|
3232
|
+
autoComplete: 'off',
|
3233
3233
|
disabled: !!filterChipLabel,
|
3234
3234
|
sx: {
|
3235
3235
|
textOverflow: 'ellipsis',
|
@@ -3272,15 +3272,21 @@ const MRT_FilterTextField = (_a) => {
|
|
3272
3272
|
} }))) : (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('date')) ? (jsxRuntime.jsx(DatePicker.DatePicker, Object.assign({}, commonDatePickerProps, datePickerProps, { slotProps: {
|
3273
3273
|
field: Object.assign({ clearable: true, onClear: () => handleClear() }, (_q = datePickerProps === null || datePickerProps === void 0 ? void 0 : datePickerProps.slotProps) === null || _q === void 0 ? void 0 : _q.field),
|
3274
3274
|
textField: Object.assign(Object.assign({}, commonTextFieldProps), (_r = datePickerProps === null || datePickerProps === void 0 ? void 0 : datePickerProps.slotProps) === null || _r === void 0 ? void 0 : _r.textField),
|
3275
|
-
} }))) : isAutocompleteFilter ? (jsxRuntime.jsx(Autocomplete__default["default"], Object.assign({ freeSolo: true, getOptionLabel: (option) => getValueAndLabel(option).label,
|
3275
|
+
} }))) : isAutocompleteFilter ? (jsxRuntime.jsx(Autocomplete__default["default"], Object.assign({ freeSolo: true, getOptionLabel: (option) => getValueAndLabel(option).label,
|
3276
|
+
// @ts-ignore
|
3277
|
+
onChange: (_e, newValue) => handleAutocompleteChange(newValue), options: (_s = dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.map((option) => getValueAndLabel(option))) !== null && _s !== void 0 ? _s : [] }, autocompleteProps, { renderInput: (builtinTextFieldProps) => {
|
3276
3278
|
var _a;
|
3277
3279
|
return (jsxRuntime.jsx(TextField__default["default"], Object.assign({}, builtinTextFieldProps, commonTextFieldProps, { InputProps: Object.assign(Object.assign({}, builtinTextFieldProps.InputProps), { startAdornment: (_a = commonTextFieldProps === null || commonTextFieldProps === void 0 ? void 0 : commonTextFieldProps.InputProps) === null || _a === void 0 ? void 0 : _a.startAdornment }), inputProps: Object.assign(Object.assign({}, builtinTextFieldProps.inputProps), commonTextFieldProps === null || commonTextFieldProps === void 0 ? void 0 : commonTextFieldProps.inputProps), onChange: handleTextFieldChange, onClick: (e) => e.stopPropagation() })));
|
3278
3280
|
}, value: autocompleteValue }))) : (jsxRuntime.jsx(TextField__default["default"], Object.assign({ select: isSelectFilter || isMultiSelectFilter }, commonTextFieldProps, { SelectProps: Object.assign({ MenuProps: { disableScrollLock: true }, displayEmpty: true, multiple: isMultiSelectFilter, renderValue: isMultiSelectFilter
|
3279
|
-
? (selected) => !(selected
|
3281
|
+
? (selected) => !Array.isArray(selected) || selected.length === 0 ? (jsxRuntime.jsx(Box__default["default"], { sx: { opacity: 0.5 }, children: filterPlaceholder })) : (jsxRuntime.jsx(Box__default["default"], { sx: { display: 'flex', flexWrap: 'wrap', gap: '2px' }, children: selected.map((value) => {
|
3280
3282
|
const selectedValue = dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.find((option) => getValueAndLabel(option).value === value);
|
3281
3283
|
return (jsxRuntime.jsx(Chip__default["default"], { label: getValueAndLabel(selectedValue).label }, value));
|
3282
3284
|
}) }))
|
3283
|
-
: undefined }, commonTextFieldProps.SelectProps), onChange: handleTextFieldChange, onClick: (e) => e.stopPropagation(), value:
|
3285
|
+
: undefined }, commonTextFieldProps.SelectProps), onChange: handleTextFieldChange, onClick: (e) => e.stopPropagation(), value: isMultiSelectFilter
|
3286
|
+
? Array.isArray(filterValue)
|
3287
|
+
? filterValue
|
3288
|
+
: []
|
3289
|
+
: '', children: (isSelectFilter || isMultiSelectFilter) && [
|
3284
3290
|
jsxRuntime.jsx(MenuItem__default["default"], { disabled: true, divider: true, hidden: true, value: "", children: jsxRuntime.jsx(Box__default["default"], { sx: { opacity: 0.5 }, children: filterPlaceholder }) }, "p"),
|
3285
3291
|
...[
|
3286
3292
|
(_t = textFieldProps.children) !== null && _t !== void 0 ? _t : dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.map((option, index) => {
|
@@ -3629,13 +3635,13 @@ const MRT_TableHeadCell = (_a) => {
|
|
3629
3635
|
};
|
3630
3636
|
const handleKeyDown = (event) => {
|
3631
3637
|
var _a;
|
3638
|
+
(_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, event);
|
3632
3639
|
cellKeyboardShortcuts({
|
3633
3640
|
event,
|
3634
3641
|
cellValue: header.column.columnDef.header,
|
3635
3642
|
table,
|
3636
3643
|
header,
|
3637
3644
|
});
|
3638
|
-
(_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, event);
|
3639
3645
|
};
|
3640
3646
|
const HeaderElement = (_b = parseFromValuesOrFunc(columnDef.Header, {
|
3641
3647
|
column,
|
@@ -4341,7 +4347,7 @@ const MRT_GlobalFilterTextField = (_a) => {
|
|
4341
4347
|
}
|
4342
4348
|
isMounted.current = true;
|
4343
4349
|
}, [globalFilter]);
|
4344
|
-
return (jsxRuntime.jsxs(Collapse__default["default"], { in: showGlobalFilter, mountOnEnter: true, orientation: "horizontal", unmountOnExit: true, children: [jsxRuntime.jsx(TextField__default["default"], Object.assign({ inputProps: Object.assign({ autoComplete: '
|
4350
|
+
return (jsxRuntime.jsxs(Collapse__default["default"], { in: showGlobalFilter, mountOnEnter: true, orientation: "horizontal", unmountOnExit: true, children: [jsxRuntime.jsx(TextField__default["default"], Object.assign({ inputProps: Object.assign({ autoComplete: 'off' }, textFieldProps.inputProps), onChange: handleChange, placeholder: localization.search, size: "small", value: searchValue !== null && searchValue !== void 0 ? searchValue : '', variant: "outlined" }, textFieldProps, { InputProps: Object.assign(Object.assign({ endAdornment: (jsxRuntime.jsx(InputAdornment__default["default"], { position: "end", children: jsxRuntime.jsx(Tooltip__default["default"], { title: (_b = localization.clearSearch) !== null && _b !== void 0 ? _b : '', children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.clearSearch, disabled: !(searchValue === null || searchValue === void 0 ? void 0 : searchValue.length), onClick: handleClear, size: "small", children: jsxRuntime.jsx(CloseIcon, {}) }) }) }) })), startAdornment: enableGlobalFilterModes ? (jsxRuntime.jsx(InputAdornment__default["default"], { position: "start", children: jsxRuntime.jsx(Tooltip__default["default"], { title: localization.changeSearchMode, children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.changeSearchMode, onClick: handleGlobalFilterMenuOpen, size: "small", sx: { height: '1.75rem', width: '1.75rem' }, children: jsxRuntime.jsx(SearchIcon, {}) }) }) })) : (jsxRuntime.jsx(SearchIcon, { style: { marginRight: '4px' } })) }, textFieldProps.InputProps), { sx: (theme) => {
|
4345
4351
|
var _a;
|
4346
4352
|
return (Object.assign({ mb: 0 }, parseFromValuesOrFunc((_a = textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.InputProps) === null || _a === void 0 ? void 0 : _a.sx, theme)));
|
4347
4353
|
} }), inputRef: (inputRef) => {
|
@@ -4405,30 +4411,30 @@ const MRT_TablePaper = (_a) => {
|
|
4405
4411
|
const { isFullScreen } = getState();
|
4406
4412
|
const paperProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiTablePaperProps, { table })), rest);
|
4407
4413
|
const theme = styles.useTheme();
|
4408
|
-
return (jsxRuntime.
|
4409
|
-
|
4410
|
-
|
4411
|
-
|
4412
|
-
|
4413
|
-
|
4414
|
-
|
4415
|
-
|
4416
|
-
|
4417
|
-
|
4418
|
-
|
4419
|
-
|
4420
|
-
|
4421
|
-
|
4422
|
-
|
4423
|
-
|
4424
|
-
|
4425
|
-
|
4426
|
-
|
4427
|
-
|
4428
|
-
|
4429
|
-
|
4430
|
-
|
4431
|
-
|
4414
|
+
return (jsxRuntime.jsxs(Paper__default["default"], Object.assign({ elevation: 2, onKeyDown: (e) => e.key === 'Escape' && table.setIsFullScreen(false) }, paperProps, { ref: (ref) => {
|
4415
|
+
tablePaperRef.current = ref;
|
4416
|
+
if (paperProps === null || paperProps === void 0 ? void 0 : paperProps.ref) {
|
4417
|
+
//@ts-ignore
|
4418
|
+
paperProps.ref.current = ref;
|
4419
|
+
}
|
4420
|
+
}, style: Object.assign(Object.assign({}, (isFullScreen
|
4421
|
+
? {
|
4422
|
+
bottom: 0,
|
4423
|
+
height: '100dvh',
|
4424
|
+
left: 0,
|
4425
|
+
margin: 0,
|
4426
|
+
maxHeight: '100dvh',
|
4427
|
+
maxWidth: '100dvw',
|
4428
|
+
padding: 0,
|
4429
|
+
position: 'fixed',
|
4430
|
+
right: 0,
|
4431
|
+
top: 0,
|
4432
|
+
width: '100dvw',
|
4433
|
+
zIndex: theme.zIndex.modal,
|
4434
|
+
}
|
4435
|
+
: {})), paperProps === null || paperProps === void 0 ? void 0 : paperProps.style), sx: (theme) => (Object.assign({ backgroundColor: baseBackgroundColor, backgroundImage: 'unset', overflow: 'hidden', transition: 'all 100ms ease-in-out' }, parseFromValuesOrFunc(paperProps === null || paperProps === void 0 ? void 0 : paperProps.sx, theme))), children: [enableTopToolbar &&
|
4436
|
+
((_b = parseFromValuesOrFunc(renderTopToolbar, { table })) !== null && _b !== void 0 ? _b : (jsxRuntime.jsx(MRT_TopToolbar, { table: table }))), jsxRuntime.jsx(MRT_TableContainer, { table: table }), enableBottomToolbar &&
|
4437
|
+
((_c = parseFromValuesOrFunc(renderBottomToolbar, { table })) !== null && _c !== void 0 ? _c : (jsxRuntime.jsx(MRT_BottomToolbar, { table: table })))] })));
|
4432
4438
|
};
|
4433
4439
|
|
4434
4440
|
const isTableInstanceProp = (props) => props.table !== undefined;
|