material-react-table 3.0.0-beta.2 → 3.0.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/index.d.ts +4 -0
- package/dist/index.esm.js +38 -39
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +38 -38
- package/dist/index.js.map +1 -1
- package/locales/no/index.esm.js +1 -1
- package/locales/no/index.js +1 -1
- package/package.json +3 -3
- package/src/components/buttons/MRT_RowPinButton.tsx +2 -0
- package/src/components/buttons/MRT_ToggleFullScreenButton.tsx +2 -0
- package/src/components/table/MRT_TableLoadingOverlay.tsx +2 -1
- package/src/components/table/MRT_TablePaper.tsx +52 -48
- package/src/components/toolbar/MRT_TablePagination.tsx +4 -6
- package/src/hooks/useMRT_TableOptions.ts +3 -1
- package/src/locales/no.ts +2 -1
- package/src/types.ts +4 -0
package/dist/index.js
CHANGED
@@ -54,7 +54,7 @@ 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
|
57
|
+
var FocusTrap = require('@mui/material/Unstable_TrapFocus/FocusTrap');
|
58
58
|
var TableContainer = require('@mui/material/TableContainer');
|
59
59
|
var Table = require('@mui/material/Table');
|
60
60
|
var TableBody = require('@mui/material/TableBody');
|
@@ -145,6 +145,7 @@ var SyncAltIcon__default = /*#__PURE__*/_interopDefaultLegacy(SyncAltIcon);
|
|
145
145
|
var ViewColumnIcon__default = /*#__PURE__*/_interopDefaultLegacy(ViewColumnIcon);
|
146
146
|
var VisibilityOffIcon__default = /*#__PURE__*/_interopDefaultLegacy(VisibilityOffIcon);
|
147
147
|
var Paper__default = /*#__PURE__*/_interopDefaultLegacy(Paper);
|
148
|
+
var FocusTrap__default = /*#__PURE__*/_interopDefaultLegacy(FocusTrap);
|
148
149
|
var TableContainer__default = /*#__PURE__*/_interopDefaultLegacy(TableContainer);
|
149
150
|
var Table__default = /*#__PURE__*/_interopDefaultLegacy(Table);
|
150
151
|
var TableBody__default = /*#__PURE__*/_interopDefaultLegacy(TableBody);
|
@@ -1251,7 +1252,7 @@ const MRT_RowPinButton = (_a) => {
|
|
1251
1252
|
event.stopPropagation();
|
1252
1253
|
row.pin(isPinned ? false : pinningPosition);
|
1253
1254
|
};
|
1254
|
-
return (jsxRuntime.jsx(Tooltip__default["default"], Object.assign({}, getCommonTooltipProps(), { open: tooltipOpened, title: isPinned ? localization.unpin : localization.pin, children: jsxRuntime.jsx(IconButton__default["default"], Object.assign({ "aria-label": localization.pin, onClick: handleTogglePin, onMouseEnter: () => setTooltipOpened(true), onMouseLeave: () => setTooltipOpened(false), size: "small" }, rest, { sx: (theme) => (Object.assign({ height: '24px', width: '24px' }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), children: isPinned ? (jsxRuntime.jsx(CloseIcon, {})) : (jsxRuntime.jsx(PushPinIcon, { fontSize: "small", style: {
|
1255
|
+
return (jsxRuntime.jsx(Tooltip__default["default"], Object.assign({}, getCommonTooltipProps(), { open: tooltipOpened, title: isPinned ? localization.unpin : localization.pin, children: jsxRuntime.jsx(IconButton__default["default"], Object.assign({ "aria-label": localization.pin, onBlur: () => setTooltipOpened(false), onClick: handleTogglePin, onFocus: () => setTooltipOpened(true), onMouseEnter: () => setTooltipOpened(true), onMouseLeave: () => setTooltipOpened(false), size: "small" }, rest, { sx: (theme) => (Object.assign({ height: '24px', width: '24px' }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), children: isPinned ? (jsxRuntime.jsx(CloseIcon, {})) : (jsxRuntime.jsx(PushPinIcon, { fontSize: "small", style: {
|
1255
1256
|
transform: `rotate(${rowPinningDisplayMode === 'sticky'
|
1256
1257
|
? 135
|
1257
1258
|
: pinningPosition === 'top'
|
@@ -1502,7 +1503,7 @@ const MRT_DefaultDisplayColumn = {
|
|
1502
1503
|
};
|
1503
1504
|
const useMRT_TableOptions = (_a) => {
|
1504
1505
|
var _b;
|
1505
|
-
var { aggregationFns, autoResetExpanded = false, columnFilterDisplayMode = 'subheader', columnResizeDirection, columnResizeMode = 'onChange', createDisplayMode = 'modal', defaultColumn, defaultDisplayColumn, editDisplayMode = 'modal', enableBatchRowSelection = true, enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnPinning = false, enableColumnResizing = false, enableColumnVirtualization, enableDensityToggle = true, enableExpandAll = true, enableExpanding, enableFacetedValues = false, enableFilterMatchHighlighting = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableKeyboardShortcuts = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enableRowPinning = false, enableRowSelection = false, enableRowVirtualization, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, layoutMode, localization, manualFiltering, manualGrouping, manualPagination, manualSorting, mrtTheme, paginationDisplayMode = 'default', positionActionsColumn = 'first', positionCreatingRow = 'top', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberDisplayMode = 'static', rowPinningDisplayMode = 'sticky', selectAllMode = 'page', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnFilterDisplayMode", "columnResizeDirection", "columnResizeMode", "createDisplayMode", "defaultColumn", "defaultDisplayColumn", "editDisplayMode", "enableBatchRowSelection", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnPinning", "enableColumnResizing", "enableColumnVirtualization", "enableDensityToggle", "enableExpandAll", "enableExpanding", "enableFacetedValues", "enableFilterMatchHighlighting", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableKeyboardShortcuts", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enableRowPinning", "enableRowSelection", "enableRowVirtualization", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "layoutMode", "localization", "manualFiltering", "manualGrouping", "manualPagination", "manualSorting", "mrtTheme", "paginationDisplayMode", "positionActionsColumn", "positionCreatingRow", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberDisplayMode", "rowPinningDisplayMode", "selectAllMode", "sortingFns"]);
|
1506
|
+
var { aggregationFns, autoResetExpanded = false, columnFilterDisplayMode = 'subheader', columnResizeDirection, columnResizeMode = 'onChange', createDisplayMode = 'modal', defaultColumn, defaultDisplayColumn, editDisplayMode = 'modal', enableBatchRowSelection = true, enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnPinning = false, enableColumnResizing = false, enableColumnVirtualization, enableDensityToggle = true, enableExpandAll = true, enableExpanding, enableFacetedValues = false, enableFilterMatchHighlighting = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableKeyboardShortcuts = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enableRowPinning = false, enableRowSelection = false, enableRowVirtualization, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, id = react.useId(), layoutMode, localization, manualFiltering, manualGrouping, manualPagination, manualSorting, mrtTheme, paginationDisplayMode = 'default', positionActionsColumn = 'first', positionCreatingRow = 'top', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberDisplayMode = 'static', rowPinningDisplayMode = 'sticky', selectAllMode = 'page', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnFilterDisplayMode", "columnResizeDirection", "columnResizeMode", "createDisplayMode", "defaultColumn", "defaultDisplayColumn", "editDisplayMode", "enableBatchRowSelection", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnPinning", "enableColumnResizing", "enableColumnVirtualization", "enableDensityToggle", "enableExpandAll", "enableExpanding", "enableFacetedValues", "enableFilterMatchHighlighting", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableKeyboardShortcuts", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enableRowPinning", "enableRowSelection", "enableRowVirtualization", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "id", "layoutMode", "localization", "manualFiltering", "manualGrouping", "manualPagination", "manualSorting", "mrtTheme", "paginationDisplayMode", "positionActionsColumn", "positionCreatingRow", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberDisplayMode", "rowPinningDisplayMode", "selectAllMode", "sortingFns"]);
|
1506
1507
|
const theme = styles.useTheme();
|
1507
1508
|
icons = react.useMemo(() => (Object.assign(Object.assign({}, MRT_Default_Icons), icons)), [icons]);
|
1508
1509
|
localization = react.useMemo(() => (Object.assign(Object.assign({}, MRT_Localization_EN), localization)), [localization]);
|
@@ -1587,6 +1588,7 @@ const useMRT_TableOptions = (_a) => {
|
|
1587
1588
|
: undefined, getGroupedRowModel: enableGrouping && !manualGrouping ? reactTable.getGroupedRowModel() : undefined, getPaginationRowModel: enablePagination && !manualPagination
|
1588
1589
|
? reactTable.getPaginationRowModel()
|
1589
1590
|
: undefined, getSortedRowModel: enableSorting && !manualSorting ? reactTable.getSortedRowModel() : undefined, getSubRows: (row) => row === null || row === void 0 ? void 0 : row.subRows, icons,
|
1591
|
+
id,
|
1590
1592
|
layoutMode,
|
1591
1593
|
localization,
|
1592
1594
|
manualFiltering,
|
@@ -3840,7 +3842,7 @@ const MRT_Table = (_a) => {
|
|
3840
3842
|
const MRT_TableLoadingOverlay = (_a) => {
|
3841
3843
|
var _b;
|
3842
3844
|
var { table } = _a, rest = __rest(_a, ["table"]);
|
3843
|
-
const { options: { localization, mrtTheme: { baseBackgroundColor }, muiCircularProgressProps, }, } = table;
|
3845
|
+
const { options: { id, localization, mrtTheme: { baseBackgroundColor }, muiCircularProgressProps, }, } = table;
|
3844
3846
|
const circularProgressProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiCircularProgressProps, { table })), rest);
|
3845
3847
|
return (jsxRuntime.jsx(Box__default["default"], { sx: {
|
3846
3848
|
alignItems: 'center',
|
@@ -3855,7 +3857,7 @@ const MRT_TableLoadingOverlay = (_a) => {
|
|
3855
3857
|
top: 0,
|
3856
3858
|
width: '100%',
|
3857
3859
|
zIndex: 3,
|
3858
|
-
}, children: (_b = circularProgressProps === null || circularProgressProps === void 0 ? void 0 : circularProgressProps.Component) !== null && _b !== void 0 ? _b : (jsxRuntime.jsx(CircularProgress__default["default"], Object.assign({ "aria-label": localization.noRecordsToDisplay, id:
|
3860
|
+
}, children: (_b = circularProgressProps === null || circularProgressProps === void 0 ? void 0 : circularProgressProps.Component) !== null && _b !== void 0 ? _b : (jsxRuntime.jsx(CircularProgress__default["default"], Object.assign({ "aria-label": localization.noRecordsToDisplay, id: `mrt-progress-${id}` }, circularProgressProps))) }));
|
3859
3861
|
};
|
3860
3862
|
|
3861
3863
|
const MRT_CellActionMenu = (_a) => {
|
@@ -4001,8 +4003,8 @@ const MRT_TablePagination = (_a) => {
|
|
4001
4003
|
var { position = 'bottom', table } = _a, rest = __rest(_a, ["position", "table"]);
|
4002
4004
|
const theme = styles.useTheme();
|
4003
4005
|
const isMobile = useMediaQuery__default["default"]('(max-width: 720px)');
|
4004
|
-
const { getState, options: { enableToolbarInternalActions, icons: { ChevronLeftIcon, ChevronRightIcon, FirstPageIcon, LastPageIcon }, localization, muiPaginationProps, paginationDisplayMode, }, } = table;
|
4005
|
-
const { pagination: { pageIndex = 0, pageSize = 10 },
|
4006
|
+
const { getState, options: { enableToolbarInternalActions, icons: { ChevronLeftIcon, ChevronRightIcon, FirstPageIcon, LastPageIcon }, id, localization, muiPaginationProps, paginationDisplayMode, }, } = table;
|
4007
|
+
const { pagination: { pageIndex = 0, pageSize = 10 }, } = getState();
|
4006
4008
|
const paginationProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiPaginationProps, {
|
4007
4009
|
table,
|
4008
4010
|
})), rest);
|
@@ -4025,18 +4027,16 @@ const MRT_TablePagination = (_a) => {
|
|
4025
4027
|
gap: '8px',
|
4026
4028
|
justifyContent: { md: 'space-between', sm: 'center' },
|
4027
4029
|
justifySelf: 'flex-end',
|
4028
|
-
mt: position === 'top' &&
|
4029
|
-
enableToolbarInternalActions &&
|
4030
|
-
!showGlobalFilter
|
4030
|
+
mt: position === 'top' && enableToolbarInternalActions
|
4031
4031
|
? '3rem'
|
4032
4032
|
: undefined,
|
4033
4033
|
position: 'relative',
|
4034
4034
|
px: '8px',
|
4035
4035
|
py: '12px',
|
4036
4036
|
zIndex: 2,
|
4037
|
-
}, children: [showRowsPerPage && (jsxRuntime.jsxs(Box__default["default"], { sx: { alignItems: 'center', display: 'flex', gap: '8px' }, children: [jsxRuntime.jsx(InputLabel__default["default"], { htmlFor:
|
4037
|
+
}, children: [showRowsPerPage && (jsxRuntime.jsxs(Box__default["default"], { sx: { alignItems: 'center', display: 'flex', gap: '8px' }, children: [jsxRuntime.jsx(InputLabel__default["default"], { htmlFor: `mrt-rows-per-page-${id}`, sx: { mb: 0 }, children: localization.rowsPerPage }), jsxRuntime.jsx(Select__default["default"], Object.assign({ MenuProps: { disableScrollLock: true }, disableUnderline: true, disabled: disabled, inputProps: {
|
4038
4038
|
'aria-label': localization.rowsPerPage,
|
4039
|
-
id:
|
4039
|
+
id: `mrt-rows-per-page-${id}`,
|
4040
4040
|
}, label: localization.rowsPerPage, onChange: (event) => table.setPageSize(+event.target.value), sx: { mb: 0 }, value: pageSize, variant: "standard" }, SelectProps, { children: rowsPerPageOptions.map((option) => {
|
4041
4041
|
var _a;
|
4042
4042
|
const value = typeof option !== 'number' ? option.value : option;
|
@@ -4276,7 +4276,7 @@ const MRT_ToggleFullScreenButton = (_a) => {
|
|
4276
4276
|
setTooltipOpened(false);
|
4277
4277
|
setIsFullScreen(!isFullScreen);
|
4278
4278
|
};
|
4279
|
-
return (jsxRuntime.jsx(Tooltip__default["default"], { open: tooltipOpened, title: (_b = rest === null || rest === void 0 ? void 0 : rest.title) !== null && _b !== void 0 ? _b : localization.toggleFullScreen, children: jsxRuntime.jsx(IconButton__default["default"], Object.assign({ "aria-label": localization.toggleFullScreen, onClick: handleToggleFullScreen, onMouseEnter: () => setTooltipOpened(true), onMouseLeave: () => setTooltipOpened(false) }, rest, { title: undefined, children: isFullScreen ? jsxRuntime.jsx(FullscreenExitIcon, {}) : jsxRuntime.jsx(FullscreenIcon, {}) })) }));
|
4279
|
+
return (jsxRuntime.jsx(Tooltip__default["default"], { open: tooltipOpened, title: (_b = rest === null || rest === void 0 ? void 0 : rest.title) !== null && _b !== void 0 ? _b : localization.toggleFullScreen, children: jsxRuntime.jsx(IconButton__default["default"], Object.assign({ "aria-label": localization.toggleFullScreen, onBlur: () => setTooltipOpened(false), onClick: handleToggleFullScreen, onFocus: () => setTooltipOpened(true), onMouseEnter: () => setTooltipOpened(true), onMouseLeave: () => setTooltipOpened(false) }, rest, { title: undefined, children: isFullScreen ? jsxRuntime.jsx(FullscreenExitIcon, {}) : jsxRuntime.jsx(FullscreenIcon, {}) })) }));
|
4280
4280
|
};
|
4281
4281
|
|
4282
4282
|
const MRT_ToggleGlobalFilterButton = (_a) => {
|
@@ -4404,31 +4404,31 @@ const MRT_TablePaper = (_a) => {
|
|
4404
4404
|
const { getState, options: { enableBottomToolbar, enableTopToolbar, mrtTheme: { baseBackgroundColor }, muiTablePaperProps, renderBottomToolbar, renderTopToolbar, }, refs: { tablePaperRef }, } = table;
|
4405
4405
|
const { isFullScreen } = getState();
|
4406
4406
|
const paperProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiTablePaperProps, { table })), rest);
|
4407
|
-
const theme =
|
4408
|
-
return (jsxRuntime.jsxs(Paper__default["default"], Object.assign({ elevation: 2 }, paperProps, { ref: (ref) => {
|
4409
|
-
|
4410
|
-
|
4411
|
-
|
4412
|
-
|
4413
|
-
|
4414
|
-
|
4415
|
-
|
4416
|
-
|
4417
|
-
|
4418
|
-
|
4419
|
-
|
4420
|
-
|
4421
|
-
|
4422
|
-
|
4423
|
-
|
4424
|
-
|
4425
|
-
|
4426
|
-
|
4427
|
-
|
4428
|
-
|
4429
|
-
|
4430
|
-
|
4431
|
-
|
4407
|
+
const theme = styles.useTheme();
|
4408
|
+
return (jsxRuntime.jsx(FocusTrap__default["default"], { disableEnforceFocus: true, open: isFullScreen, children: jsxRuntime.jsxs(Paper__default["default"], Object.assign({ elevation: 2, onKeyDown: (e) => e.key === 'Escape' && table.setIsFullScreen(false) }, paperProps, { ref: (ref) => {
|
4409
|
+
tablePaperRef.current = ref;
|
4410
|
+
if (paperProps === null || paperProps === void 0 ? void 0 : paperProps.ref) {
|
4411
|
+
//@ts-ignore
|
4412
|
+
paperProps.ref.current = ref;
|
4413
|
+
}
|
4414
|
+
}, style: Object.assign(Object.assign({}, (isFullScreen
|
4415
|
+
? {
|
4416
|
+
bottom: 0,
|
4417
|
+
height: '100dvh',
|
4418
|
+
left: 0,
|
4419
|
+
margin: 0,
|
4420
|
+
maxHeight: '100dvh',
|
4421
|
+
maxWidth: '100dvw',
|
4422
|
+
padding: 0,
|
4423
|
+
position: 'fixed',
|
4424
|
+
right: 0,
|
4425
|
+
top: 0,
|
4426
|
+
width: '100dvw',
|
4427
|
+
zIndex: theme.zIndex.modal,
|
4428
|
+
}
|
4429
|
+
: {})), 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 &&
|
4430
|
+
((_b = parseFromValuesOrFunc(renderTopToolbar, { table })) !== null && _b !== void 0 ? _b : (jsxRuntime.jsx(MRT_TopToolbar, { table: table }))), jsxRuntime.jsx(MRT_TableContainer, { table: table }), enableBottomToolbar &&
|
4431
|
+
((_c = parseFromValuesOrFunc(renderBottomToolbar, { table })) !== null && _c !== void 0 ? _c : (jsxRuntime.jsx(MRT_BottomToolbar, { table: table })))] })) }));
|
4432
4432
|
};
|
4433
4433
|
|
4434
4434
|
const isTableInstanceProp = (props) => props.table !== undefined;
|