material-react-table 0.40.1 → 0.40.4
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 +5 -3
- package/dist/cjs/index.js +37 -15
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/menus/MRT_FilterOptionMenu.d.ts +1 -1
- package/dist/cjs/menus/MRT_RowActionMenu.d.ts +2 -2
- package/dist/esm/MaterialReactTable.d.ts +5 -3
- package/dist/esm/material-react-table.esm.js +37 -15
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/menus/MRT_FilterOptionMenu.d.ts +1 -1
- package/dist/esm/menus/MRT_RowActionMenu.d.ts +2 -2
- package/dist/index.d.ts +5 -3
- package/package.json +4 -4
- package/src/MaterialReactTable.tsx +7 -5
- package/src/buttons/MRT_CopyButton.tsx +4 -3
- package/src/buttons/MRT_EditActionButtons.tsx +4 -1
- package/src/buttons/MRT_ExpandButton.tsx +5 -3
- package/src/buttons/MRT_GrabHandleButton.tsx +4 -0
- package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +8 -3
- package/src/inputs/MRT_EditCellTextField.tsx +4 -2
- package/src/inputs/MRT_SelectCheckbox.tsx +4 -0
- package/src/menus/MRT_FilterOptionMenu.tsx +9 -3
- package/src/menus/MRT_RowActionMenu.tsx +2 -2
|
@@ -216,10 +216,12 @@ export declare type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit
|
|
|
216
216
|
table: MRT_TableInstance<TData>;
|
|
217
217
|
column: MRT_Column<TData>;
|
|
218
218
|
}) => TableCellProps);
|
|
219
|
-
renderColumnFilterModeMenuItems?: ({
|
|
220
|
-
table: MRT_TableInstance<TData>;
|
|
219
|
+
renderColumnFilterModeMenuItems?: ({ column, internalFilterOptions, onSelectFilterMode, table, }: {
|
|
221
220
|
column: MRT_Column<TData>;
|
|
222
|
-
|
|
221
|
+
internalFilterOptions: MRT_InternalFilterOption[];
|
|
222
|
+
onSelectFilterMode: (filterMode: MRT_FilterOption) => void;
|
|
223
|
+
table: MRT_TableInstance<TData>;
|
|
224
|
+
}) => ReactNode;
|
|
223
225
|
sortingFn?: MRT_SortingFn;
|
|
224
226
|
};
|
|
225
227
|
export declare type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<MRT_ColumnDef<TData>, 'id'> & {
|
package/dist/cjs/index.js
CHANGED
|
@@ -282,12 +282,15 @@ const MRT_ExpandButton = ({ row, table }) => {
|
|
|
282
282
|
const iconButtonProps = muiExpandButtonProps instanceof Function
|
|
283
283
|
? muiExpandButtonProps({ table, row })
|
|
284
284
|
: muiExpandButtonProps;
|
|
285
|
-
const handleToggleExpand = () => {
|
|
285
|
+
const handleToggleExpand = (event) => {
|
|
286
|
+
var _a;
|
|
287
|
+
event.stopPropagation();
|
|
286
288
|
row.toggleExpanded();
|
|
289
|
+
(_a = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(iconButtonProps, event);
|
|
287
290
|
};
|
|
288
291
|
return (React__default["default"].createElement(material.Tooltip, { arrow: true, enterDelay: 1000, enterNextDelay: 1000, title: localization.expand },
|
|
289
292
|
React__default["default"].createElement("span", null,
|
|
290
|
-
React__default["default"].createElement(material.IconButton, Object.assign({ "aria-label": localization.expand, disabled: !row.getCanExpand() && !renderDetailPanel
|
|
293
|
+
React__default["default"].createElement(material.IconButton, Object.assign({ "aria-label": localization.expand, disabled: !row.getCanExpand() && !renderDetailPanel }, iconButtonProps, { onClick: handleToggleExpand, sx: (theme) => (Object.assign({ height: density === 'compact' ? '1.75rem' : '2.25rem', width: density === 'compact' ? '1.75rem' : '2.25rem' }, ((iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx) instanceof Function
|
|
291
294
|
? iconButtonProps.sx(theme)
|
|
292
295
|
: iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.sx))) }),
|
|
293
296
|
React__default["default"].createElement(ExpandMoreIcon, { style: {
|
|
@@ -387,7 +390,7 @@ const mrtFilterOptions = (localization) => [
|
|
|
387
390
|
},
|
|
388
391
|
];
|
|
389
392
|
const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, table, }) => {
|
|
390
|
-
var _a, _b;
|
|
393
|
+
var _a, _b, _c, _d;
|
|
391
394
|
const { getState, options: { enabledGlobalFilterOptions, columnFilterModeOptions, localization, renderColumnFilterModeMenuItems, renderGlobalFilterModeMenuItems, }, setColumnFilterFns, setGlobalFilterFn, } = table;
|
|
392
395
|
const { globalFilterFn, density } = getState();
|
|
393
396
|
const { column } = header !== null && header !== void 0 ? header : {};
|
|
@@ -421,8 +424,13 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, table,
|
|
|
421
424
|
const filterOption = !!header && columnDef ? columnDef._filterFn : globalFilterFn;
|
|
422
425
|
return (React__default["default"].createElement(material.Menu, { anchorEl: anchorEl, anchorOrigin: { vertical: 'center', horizontal: 'right' }, onClose: () => setAnchorEl(null), open: !!anchorEl, MenuListProps: {
|
|
423
426
|
dense: density === 'compact',
|
|
424
|
-
} }, (
|
|
425
|
-
? renderColumnFilterModeMenuItems === null ||
|
|
427
|
+
} }, (_d = (header && column && columnDef
|
|
428
|
+
? (_c = (_b = columnDef.renderColumnFilterModeMenuItems) === null || _b === void 0 ? void 0 : _b.call(columnDef, {
|
|
429
|
+
column: column,
|
|
430
|
+
internalFilterOptions,
|
|
431
|
+
onSelectFilterMode: handleSelectFilterMode,
|
|
432
|
+
table,
|
|
433
|
+
})) !== null && _c !== void 0 ? _c : renderColumnFilterModeMenuItems === null || renderColumnFilterModeMenuItems === void 0 ? void 0 : renderColumnFilterModeMenuItems({
|
|
426
434
|
column: column,
|
|
427
435
|
internalFilterOptions,
|
|
428
436
|
onSelectFilterMode: handleSelectFilterMode,
|
|
@@ -432,7 +440,7 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, table,
|
|
|
432
440
|
internalFilterOptions,
|
|
433
441
|
onSelectFilterMode: handleSelectFilterMode,
|
|
434
442
|
table,
|
|
435
|
-
}))) !== null &&
|
|
443
|
+
}))) !== null && _d !== void 0 ? _d : internalFilterOptions.map(({ option, label, divider, symbol }, index) => (React__default["default"].createElement(material.MenuItem, { divider: divider, key: index, onClick: () => handleSelectFilterMode(option), selected: option === filterOption, sx: {
|
|
436
444
|
alignItems: 'center',
|
|
437
445
|
display: 'flex',
|
|
438
446
|
gap: '2ch',
|
|
@@ -466,7 +474,11 @@ const MRT_ColumnPinningButtons = ({ column, table, }) => {
|
|
|
466
474
|
const MRT_GrabHandleButton = ({ iconButtonProps, onDragEnd, onDragStart, table, }) => {
|
|
467
475
|
const { options: { icons: { DragHandleIcon }, localization, }, } = table;
|
|
468
476
|
return (React__default["default"].createElement(material.Tooltip, { arrow: true, enterDelay: 1000, enterNextDelay: 1000, placement: "top", title: localization.move },
|
|
469
|
-
React__default["default"].createElement(material.IconButton, Object.assign({ disableRipple: true, draggable: "true", onDragStart: onDragStart, onDragEnd: onDragEnd, size: "small" }, iconButtonProps, {
|
|
477
|
+
React__default["default"].createElement(material.IconButton, Object.assign({ disableRipple: true, draggable: "true", onDragStart: onDragStart, onDragEnd: onDragEnd, size: "small" }, iconButtonProps, { onClick: (e) => {
|
|
478
|
+
var _a;
|
|
479
|
+
e.stopPropagation();
|
|
480
|
+
(_a = iconButtonProps === null || iconButtonProps === void 0 ? void 0 : iconButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(iconButtonProps, e);
|
|
481
|
+
}, sx: (theme) => (Object.assign({ cursor: 'grab', m: 0, opacity: 0.5, p: '2px', transition: 'all 0.2s ease-in-out', '&:hover': {
|
|
470
482
|
backgroundColor: 'transparent',
|
|
471
483
|
opacity: 1,
|
|
472
484
|
}, '&:active': {
|
|
@@ -917,7 +929,7 @@ const MRT_EditActionButtons = ({ row, table, variant = 'icon', }) => {
|
|
|
917
929
|
values: (_b = editingRow === null || editingRow === void 0 ? void 0 : editingRow._valuesCache) !== null && _b !== void 0 ? _b : Object.assign({}, row.original),
|
|
918
930
|
});
|
|
919
931
|
};
|
|
920
|
-
return (React__default["default"].createElement(material.Box, { sx: { display: 'flex', gap: '0.75rem' } }, variant === 'icon' ? (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
932
|
+
return (React__default["default"].createElement(material.Box, { onClick: (e) => e.stopPropagation(), sx: { display: 'flex', gap: '0.75rem' } }, variant === 'icon' ? (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
921
933
|
React__default["default"].createElement(material.Tooltip, { arrow: true, title: localization.cancel },
|
|
922
934
|
React__default["default"].createElement(material.IconButton, { "aria-label": localization.cancel, onClick: handleCancel },
|
|
923
935
|
React__default["default"].createElement(CancelIcon, null))),
|
|
@@ -938,7 +950,7 @@ const commonIconButtonStyles = {
|
|
|
938
950
|
opacity: 1,
|
|
939
951
|
},
|
|
940
952
|
};
|
|
941
|
-
const MRT_ToggleRowActionMenuButton = ({ cell, row, table }) => {
|
|
953
|
+
const MRT_ToggleRowActionMenuButton = ({ cell, row, table, }) => {
|
|
942
954
|
const { getState, options: { editingMode, enableEditing, icons: { EditIcon, MoreHorizIcon }, localization, renderRowActionMenuItems, renderRowActions, }, setEditingRow, } = table;
|
|
943
955
|
const { editingRow } = getState();
|
|
944
956
|
const [anchorEl, setAnchorEl] = React.useState(null);
|
|
@@ -947,7 +959,8 @@ const MRT_ToggleRowActionMenuButton = ({ cell, row, table }) => {
|
|
|
947
959
|
event.preventDefault();
|
|
948
960
|
setAnchorEl(event.currentTarget);
|
|
949
961
|
};
|
|
950
|
-
const handleStartEditMode = () => {
|
|
962
|
+
const handleStartEditMode = (event) => {
|
|
963
|
+
event.stopPropagation();
|
|
951
964
|
setEditingRow(Object.assign({}, row));
|
|
952
965
|
setAnchorEl(null);
|
|
953
966
|
};
|
|
@@ -979,7 +992,11 @@ const MRT_SelectCheckbox = ({ row, selectAll, table }) => {
|
|
|
979
992
|
? selectAllMode === 'all'
|
|
980
993
|
? table.getToggleAllRowsSelectedHandler()
|
|
981
994
|
: table.getToggleAllPageRowsSelectedHandler()
|
|
982
|
-
: row.getToggleSelectedHandler(), size: density === 'compact' ? 'small' : 'medium' }, checkboxProps, {
|
|
995
|
+
: row.getToggleSelectedHandler(), size: density === 'compact' ? 'small' : 'medium' }, checkboxProps, { onClick: (e) => {
|
|
996
|
+
var _a;
|
|
997
|
+
e.stopPropagation();
|
|
998
|
+
(_a = checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.onClick) === null || _a === void 0 ? void 0 : _a.call(checkboxProps, e);
|
|
999
|
+
}, sx: (theme) => (Object.assign({ height: density === 'compact' ? '1.75rem' : '2.5rem', width: density === 'compact' ? '1.75rem' : '2.5rem', m: density !== 'compact' ? '-0.4rem' : undefined }, ((checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.sx) instanceof Function
|
|
983
1000
|
? checkboxProps.sx(theme)
|
|
984
1001
|
: checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.sx))) }))));
|
|
985
1002
|
};
|
|
@@ -1839,7 +1856,11 @@ const MRT_EditCellTextField = ({ cell, showLabel, table, }) => {
|
|
|
1839
1856
|
textFieldProps.inputRef = inputRef;
|
|
1840
1857
|
}
|
|
1841
1858
|
}
|
|
1842
|
-
}, label: showLabel ? column.columnDef.header : undefined, margin: "none", name: column.id,
|
|
1859
|
+
}, label: showLabel ? column.columnDef.header : undefined, margin: "none", name: column.id, placeholder: columnDef.header, value: value, variant: "standard" }, textFieldProps, { onClick: (e) => {
|
|
1860
|
+
var _a;
|
|
1861
|
+
e.stopPropagation();
|
|
1862
|
+
(_a = textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.onClick) === null || _a === void 0 ? void 0 : _a.call(textFieldProps, e);
|
|
1863
|
+
}, onBlur: handleBlur, onChange: handleChange, onKeyDown: handleEnterKeyDown })));
|
|
1843
1864
|
};
|
|
1844
1865
|
|
|
1845
1866
|
const MRT_CopyButton = ({ cell, children, table, }) => {
|
|
@@ -1847,7 +1868,8 @@ const MRT_CopyButton = ({ cell, children, table, }) => {
|
|
|
1847
1868
|
const { column, row } = cell;
|
|
1848
1869
|
const { columnDef } = column;
|
|
1849
1870
|
const [copied, setCopied] = React.useState(false);
|
|
1850
|
-
const handleCopy = (text) => {
|
|
1871
|
+
const handleCopy = (event, text) => {
|
|
1872
|
+
event.stopPropagation();
|
|
1851
1873
|
navigator.clipboard.writeText(text);
|
|
1852
1874
|
setCopied(true);
|
|
1853
1875
|
setTimeout(() => setCopied(false), 4000);
|
|
@@ -1863,7 +1885,7 @@ const MRT_CopyButton = ({ cell, children, table, }) => {
|
|
|
1863
1885
|
: columnDef.muiTableBodyCellCopyButtonProps;
|
|
1864
1886
|
const buttonProps = Object.assign(Object.assign({}, mTableBodyCellCopyButtonProps), mcTableBodyCellCopyButtonProps);
|
|
1865
1887
|
return (React__default["default"].createElement(material.Tooltip, { arrow: true, enterDelay: 1000, enterNextDelay: 1000, placement: "top", title: copied ? localization.copiedToClipboard : localization.clickToCopy },
|
|
1866
|
-
React__default["default"].createElement(material.Button, Object.assign({ onClick: () => handleCopy(cell.getValue()), size: "small", type: "button", variant: "text" }, buttonProps, { sx: (theme) => (Object.assign({ backgroundColor: 'transparent', border: 'none', color: 'inherit', cursor: 'copy', fontFamily: 'inherit', fontSize: 'inherit', letterSpacing: 'inherit', m: '-0.25rem', minWidth: 'unset', textAlign: 'inherit', textTransform: 'inherit' }, ((buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.sx) instanceof Function
|
|
1888
|
+
React__default["default"].createElement(material.Button, Object.assign({ onClick: (e) => handleCopy(e, cell.getValue()), size: "small", type: "button", variant: "text" }, buttonProps, { sx: (theme) => (Object.assign({ backgroundColor: 'transparent', border: 'none', color: 'inherit', cursor: 'copy', fontFamily: 'inherit', fontSize: 'inherit', letterSpacing: 'inherit', m: '-0.25rem', minWidth: 'unset', textAlign: 'inherit', textTransform: 'inherit' }, ((buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.sx) instanceof Function
|
|
1867
1889
|
? buttonProps.sx(theme)
|
|
1868
1890
|
: buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.sx))) }), children)));
|
|
1869
1891
|
};
|
|
@@ -2469,7 +2491,7 @@ const MRT_TableRoot = (props) => {
|
|
|
2469
2491
|
|
|
2470
2492
|
var MaterialReactTable = (_a) => {
|
|
2471
2493
|
var { aggregationFns, autoResetExpanded = false, columnResizeMode = 'onEnd', defaultColumn = { minSize: 40, maxSize: 1000, size: 180 }, editingMode = 'modal', enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnResizing = false, enableDensityToggle = true, enableExpandAll = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enablePinning = false, enableRowSelection = false, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, localization, positionActionsColumn = 'first', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberMode = 'original', selectAllMode = 'all', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "localization", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberMode", "selectAllMode", "sortingFns"]);
|
|
2472
|
-
return (React__default["default"].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,
|
|
2494
|
+
return (React__default["default"].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, enableColumnFilters: enableColumnFilters, enableColumnOrdering: enableColumnOrdering, enableColumnResizing: enableColumnResizing, enableDensityToggle: enableDensityToggle, enableExpandAll: enableExpandAll, enableFilters: enableFilters, enableFullScreenToggle: enableFullScreenToggle, enableGlobalFilter: enableGlobalFilter, 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)));
|
|
2473
2495
|
};
|
|
2474
2496
|
|
|
2475
2497
|
exports.MRT_CopyButton = MRT_CopyButton;
|