material-react-table 2.0.0-alpha.5 → 2.0.0-beta.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/index.js +141 -68
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +2 -1
- package/dist/cjs/types/column.utils.d.ts +2 -0
- package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
- package/dist/cjs/types/icons.d.ts +1 -0
- package/dist/cjs/types/types.d.ts +12 -19
- package/dist/esm/material-react-table.esm.js +139 -68
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +2 -1
- package/dist/esm/types/column.utils.d.ts +2 -0
- package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
- package/dist/esm/types/icons.d.ts +1 -0
- package/dist/esm/types/types.d.ts +12 -19
- package/dist/index.d.ts +19 -23
- package/locales/ar.esm.js +1 -0
- package/locales/ar.esm.js.map +1 -1
- package/locales/ar.js +1 -0
- package/locales/ar.js.map +1 -1
- package/locales/bg.esm.js +1 -0
- package/locales/bg.esm.js.map +1 -1
- package/locales/bg.js +1 -0
- package/locales/bg.js.map +1 -1
- package/locales/cs.esm.js +1 -0
- package/locales/cs.esm.js.map +1 -1
- package/locales/cs.js +1 -0
- package/locales/cs.js.map +1 -1
- package/locales/da.esm.js +1 -0
- package/locales/da.esm.js.map +1 -1
- package/locales/da.js +1 -0
- package/locales/da.js.map +1 -1
- package/locales/de.esm.js +1 -0
- package/locales/de.esm.js.map +1 -1
- package/locales/de.js +1 -0
- package/locales/de.js.map +1 -1
- package/locales/es.esm.js +1 -0
- package/locales/es.esm.js.map +1 -1
- package/locales/es.js +1 -0
- package/locales/es.js.map +1 -1
- package/locales/et.esm.js +1 -0
- package/locales/et.esm.js.map +1 -1
- package/locales/et.js +1 -0
- package/locales/et.js.map +1 -1
- package/locales/fa.esm.js +1 -0
- package/locales/fa.esm.js.map +1 -1
- package/locales/fa.js +1 -0
- package/locales/fa.js.map +1 -1
- package/locales/fi.esm.js +1 -0
- package/locales/fi.esm.js.map +1 -1
- package/locales/fi.js +1 -0
- package/locales/fi.js.map +1 -1
- package/locales/fr.esm.js +1 -0
- package/locales/fr.esm.js.map +1 -1
- package/locales/fr.js +1 -0
- package/locales/fr.js.map +1 -1
- package/locales/hu.esm.js +1 -0
- package/locales/hu.esm.js.map +1 -1
- package/locales/hu.js +1 -0
- package/locales/hu.js.map +1 -1
- package/locales/hy.esm.js +1 -0
- package/locales/hy.esm.js.map +1 -1
- package/locales/hy.js +1 -0
- package/locales/hy.js.map +1 -1
- package/locales/id.esm.js +1 -0
- package/locales/id.esm.js.map +1 -1
- package/locales/id.js +1 -0
- package/locales/id.js.map +1 -1
- package/locales/it.esm.js +1 -0
- package/locales/it.esm.js.map +1 -1
- package/locales/it.js +1 -0
- package/locales/it.js.map +1 -1
- package/locales/ja.esm.js +1 -0
- package/locales/ja.esm.js.map +1 -1
- package/locales/ja.js +1 -0
- package/locales/ja.js.map +1 -1
- package/locales/ko.esm.js +1 -0
- package/locales/ko.esm.js.map +1 -1
- package/locales/ko.js +1 -0
- package/locales/ko.js.map +1 -1
- package/locales/nl.esm.js +1 -0
- package/locales/nl.esm.js.map +1 -1
- package/locales/nl.js +1 -0
- package/locales/nl.js.map +1 -1
- package/locales/no.esm.js +1 -0
- package/locales/no.esm.js.map +1 -1
- package/locales/no.js +1 -0
- package/locales/no.js.map +1 -1
- package/locales/np.esm.js +1 -1
- package/locales/np.esm.js.map +1 -1
- package/locales/np.js +1 -1
- package/locales/np.js.map +1 -1
- package/locales/pl.esm.js +1 -0
- package/locales/pl.esm.js.map +1 -1
- package/locales/pl.js +1 -0
- package/locales/pl.js.map +1 -1
- package/locales/pt-BR.esm.js +1 -0
- package/locales/pt-BR.esm.js.map +1 -1
- package/locales/pt-BR.js +1 -0
- package/locales/pt-BR.js.map +1 -1
- package/locales/pt.esm.js +1 -0
- package/locales/pt.esm.js.map +1 -1
- package/locales/pt.js +1 -0
- package/locales/pt.js.map +1 -1
- package/locales/ro.esm.js +1 -0
- package/locales/ro.esm.js.map +1 -1
- package/locales/ro.js +1 -0
- package/locales/ro.js.map +1 -1
- package/locales/ru.esm.js +1 -0
- package/locales/ru.esm.js.map +1 -1
- package/locales/ru.js +1 -0
- package/locales/ru.js.map +1 -1
- package/locales/sk.esm.js +1 -0
- package/locales/sk.esm.js.map +1 -1
- package/locales/sk.js +1 -0
- package/locales/sk.js.map +1 -1
- package/locales/sr-Cyrl-RS.esm.js +1 -0
- package/locales/sr-Cyrl-RS.esm.js.map +1 -1
- package/locales/sr-Cyrl-RS.js +1 -0
- package/locales/sr-Cyrl-RS.js.map +1 -1
- package/locales/sr-Latn-RS.esm.js +1 -0
- package/locales/sr-Latn-RS.esm.js.map +1 -1
- package/locales/sr-Latn-RS.js +1 -0
- package/locales/sr-Latn-RS.js.map +1 -1
- package/locales/sv.esm.js +3 -2
- package/locales/sv.esm.js.map +1 -1
- package/locales/sv.js +3 -2
- package/locales/sv.js.map +1 -1
- package/locales/tr.esm.js +1 -0
- package/locales/tr.esm.js.map +1 -1
- package/locales/tr.js +1 -0
- package/locales/tr.js.map +1 -1
- package/locales/uk.esm.js +1 -0
- package/locales/uk.esm.js.map +1 -1
- package/locales/uk.js +1 -0
- package/locales/uk.js.map +1 -1
- package/locales/vi.esm.js +1 -0
- package/locales/vi.esm.js.map +1 -1
- package/locales/vi.js +1 -0
- package/locales/vi.js.map +1 -1
- package/locales/zh-Hans.esm.js +1 -0
- package/locales/zh-Hans.esm.js.map +1 -1
- package/locales/zh-Hans.js +1 -0
- package/locales/zh-Hans.js.map +1 -1
- package/locales/zh-Hant.esm.js +1 -0
- package/locales/zh-Hant.esm.js.map +1 -1
- package/locales/zh-Hant.js +1 -0
- package/locales/zh-Hant.js.map +1 -1
- package/package.json +11 -11
- package/src/body/MRT_TableBody.tsx +20 -4
- package/src/body/MRT_TableBodyCell.tsx +4 -3
- package/src/body/MRT_TableBodyRow.tsx +7 -5
- package/src/body/MRT_TableBodyRowGrabHandle.tsx +1 -0
- package/src/body/index.ts +1 -1
- package/src/buttons/MRT_ExpandButton.tsx +1 -0
- package/src/buttons/MRT_GrabHandleButton.tsx +3 -1
- package/src/column.utils.ts +22 -2
- package/src/filterFns.ts +3 -3
- package/src/footer/MRT_TableFooterCell.tsx +5 -1
- package/src/footer/MRT_TableFooterRow.tsx +2 -2
- package/src/head/MRT_TableHead.tsx +5 -1
- package/src/head/MRT_TableHeadCell.tsx +11 -6
- package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +2 -2
- package/src/head/MRT_TableHeadCellFilterLabel.tsx +6 -1
- package/src/head/MRT_TableHeadCellSortLabel.tsx +18 -12
- package/src/head/MRT_TableHeadRow.tsx +2 -2
- package/src/hooks/useMRT_DisplayColumns.tsx +20 -0
- package/src/hooks/useMRT_TableInstance.ts +6 -6
- package/src/icons.ts +3 -0
- package/src/inputs/MRT_FilterTextField.tsx +4 -3
- package/src/locales/ar.ts +1 -1
- package/src/locales/bg.ts +1 -0
- package/src/locales/cs.ts +1 -0
- package/src/locales/da.ts +1 -0
- package/src/locales/de.ts +1 -0
- package/src/locales/es.ts +1 -0
- package/src/locales/et.ts +1 -0
- package/src/locales/fa.ts +1 -0
- package/src/locales/fi.ts +1 -0
- package/src/locales/fr.ts +1 -0
- package/src/locales/hu.ts +1 -0
- package/src/locales/hy.ts +1 -0
- package/src/locales/id.ts +1 -0
- package/src/locales/it.ts +1 -0
- package/src/locales/ja.ts +1 -0
- package/src/locales/ko.ts +1 -0
- package/src/locales/nl.ts +1 -0
- package/src/locales/no.ts +1 -0
- package/src/locales/np.ts +3 -2
- package/src/locales/pl.ts +1 -0
- package/src/locales/pt-BR.ts +1 -0
- package/src/locales/pt.ts +1 -0
- package/src/locales/ro.ts +1 -0
- package/src/locales/ru.ts +1 -0
- package/src/locales/sk.ts +1 -0
- package/src/locales/sr-Cyrl-RS.ts +1 -0
- package/src/locales/sr-Latn-RS.ts +1 -0
- package/src/locales/sv.ts +3 -2
- package/src/locales/tr.ts +1 -0
- package/src/locales/uk.ts +1 -0
- package/src/locales/vi.ts +1 -0
- package/src/locales/zh-Hans.ts +1 -0
- package/src/locales/zh-Hant.ts +1 -0
- package/src/table/MRT_Table.tsx +24 -10
- package/src/table/MRT_TableContainer.tsx +50 -1
- package/src/toolbar/MRT_LinearProgressBar.tsx +2 -2
- package/src/toolbar/MRT_TablePagination.tsx +3 -4
- package/src/types.ts +12 -11
@@ -1,5 +1,8 @@
|
|
1
1
|
import { useEffect, useLayoutEffect, useState } from 'react';
|
2
|
+
import Box from '@mui/material/Box';
|
3
|
+
import CircularProgress from '@mui/material/CircularProgress';
|
2
4
|
import TableContainer from '@mui/material/TableContainer';
|
5
|
+
import { alpha, lighten } from '@mui/material/styles';
|
3
6
|
import { MRT_Table } from './MRT_Table';
|
4
7
|
import { parseFromValuesOrFunc } from '../column.utils';
|
5
8
|
import { MRT_EditRowModal } from '../modals';
|
@@ -21,11 +24,22 @@ export const MRT_TableContainer = <TData extends Record<string, any>>({
|
|
21
24
|
createDisplayMode,
|
22
25
|
editDisplayMode,
|
23
26
|
enableStickyHeader,
|
27
|
+
localization,
|
28
|
+
muiCircularProgressProps,
|
24
29
|
muiTableContainerProps,
|
25
30
|
},
|
26
31
|
refs: { bottomToolbarRef, tableContainerRef, topToolbarRef },
|
27
32
|
} = table;
|
28
|
-
const {
|
33
|
+
const {
|
34
|
+
creatingRow,
|
35
|
+
editingRow,
|
36
|
+
isFullScreen,
|
37
|
+
isLoading,
|
38
|
+
showLoadingOverlay,
|
39
|
+
} = getState();
|
40
|
+
|
41
|
+
const loading =
|
42
|
+
(isLoading || showLoadingOverlay) && showLoadingOverlay !== false;
|
29
43
|
|
30
44
|
const [totalToolbarHeight, setTotalToolbarHeight] = useState(0);
|
31
45
|
|
@@ -33,6 +47,11 @@ export const MRT_TableContainer = <TData extends Record<string, any>>({
|
|
33
47
|
table,
|
34
48
|
});
|
35
49
|
|
50
|
+
const circularProgressProps = parseFromValuesOrFunc(
|
51
|
+
muiCircularProgressProps,
|
52
|
+
{ table },
|
53
|
+
);
|
54
|
+
|
36
55
|
useIsomorphicLayoutEffect(() => {
|
37
56
|
const topToolbarHeight =
|
38
57
|
typeof document !== 'undefined'
|
@@ -52,6 +71,8 @@ export const MRT_TableContainer = <TData extends Record<string, any>>({
|
|
52
71
|
|
53
72
|
return (
|
54
73
|
<TableContainer
|
74
|
+
aria-busy={loading}
|
75
|
+
aria-describedby="mrt-progress"
|
55
76
|
{...tableContainerProps}
|
56
77
|
ref={(node: HTMLDivElement) => {
|
57
78
|
if (node) {
|
@@ -74,9 +95,37 @@ export const MRT_TableContainer = <TData extends Record<string, any>>({
|
|
74
95
|
: undefined,
|
75
96
|
maxWidth: '100%',
|
76
97
|
overflow: 'auto',
|
98
|
+
position: 'relative',
|
77
99
|
...(parseFromValuesOrFunc(tableContainerProps?.sx, theme) as any),
|
78
100
|
})}
|
79
101
|
>
|
102
|
+
{loading ? (
|
103
|
+
<Box
|
104
|
+
sx={(theme) => ({
|
105
|
+
alignItems: 'center',
|
106
|
+
backgroundColor: alpha(
|
107
|
+
lighten(theme.palette.background.paper, 0.05),
|
108
|
+
0.5,
|
109
|
+
),
|
110
|
+
bottom: 0,
|
111
|
+
display: 'flex',
|
112
|
+
justifyContent: 'center',
|
113
|
+
left: 0,
|
114
|
+
maxHeight: '100vh',
|
115
|
+
position: 'absolute',
|
116
|
+
right: 0,
|
117
|
+
top: 0,
|
118
|
+
width: '100%',
|
119
|
+
zIndex: 2,
|
120
|
+
})}
|
121
|
+
>
|
122
|
+
<CircularProgress
|
123
|
+
aria-label={localization.noRecordsToDisplay}
|
124
|
+
id="mrt-progress"
|
125
|
+
{...circularProgressProps}
|
126
|
+
/>
|
127
|
+
</Box>
|
128
|
+
) : null}
|
80
129
|
<MRT_Table table={table} />
|
81
130
|
{(createModalOpen || editModalOpen) && (
|
82
131
|
<MRT_EditRowModal open table={table} />
|
@@ -16,7 +16,7 @@ export const MRT_LinearProgressBar = <TData extends Record<string, any>>({
|
|
16
16
|
getState,
|
17
17
|
options: { muiLinearProgressProps },
|
18
18
|
} = table;
|
19
|
-
const {
|
19
|
+
const { showProgressBars } = getState();
|
20
20
|
|
21
21
|
const linearProgressProps = parseFromValuesOrFunc(muiLinearProgressProps, {
|
22
22
|
isTopToolbar,
|
@@ -25,7 +25,7 @@ export const MRT_LinearProgressBar = <TData extends Record<string, any>>({
|
|
25
25
|
|
26
26
|
return (
|
27
27
|
<Collapse
|
28
|
-
in={
|
28
|
+
in={showProgressBars}
|
29
29
|
mountOnEnter
|
30
30
|
sx={{
|
31
31
|
bottom: isTopToolbar ? 0 : undefined,
|
@@ -50,11 +50,10 @@ export const MRT_TablePagination = <TData extends Record<string, any> = {}>({
|
|
50
50
|
const lastRowIndex = Math.min(pageIndex * pageSize + pageSize, totalRowCount);
|
51
51
|
|
52
52
|
const {
|
53
|
-
showRowsPerPage = true,
|
54
53
|
rowsPerPageOptions = defaultRowsPerPage,
|
55
54
|
showFirstButton = showFirstLastPageButtons,
|
56
55
|
showLastButton = showFirstLastPageButtons,
|
57
|
-
|
56
|
+
showRowsPerPage = true,
|
58
57
|
...rest
|
59
58
|
} = paginationProps ?? {};
|
60
59
|
|
@@ -84,8 +83,8 @@ export const MRT_TablePagination = <TData extends Record<string, any> = {}>({
|
|
84
83
|
{localization.rowsPerPage}
|
85
84
|
</InputLabel>
|
86
85
|
<Select
|
87
|
-
inputProps={{ 'aria-label': localization.rowsPerPage }}
|
88
86
|
id="mrt-rows-per-page"
|
87
|
+
inputProps={{ 'aria-label': localization.rowsPerPage }}
|
89
88
|
label={localization.rowsPerPage}
|
90
89
|
onChange={(event) => setPageSize(+event.target.value)}
|
91
90
|
sx={{ '&::before': { border: 'none' }, mb: 0 }}
|
@@ -123,7 +122,7 @@ export const MRT_TablePagination = <TData extends Record<string, any> = {}>({
|
|
123
122
|
) : paginationDisplayMode === 'default' ? (
|
124
123
|
<>
|
125
124
|
<Typography
|
126
|
-
sx={{ mb: 0,
|
125
|
+
sx={{ mb: 0, minWidth: '10ch', mx: '4px' }}
|
127
126
|
variant="body2"
|
128
127
|
>{`${
|
129
128
|
lastRowIndex === 0 ? 0 : (firstRowIndex + 1).toLocaleString()
|
package/src/types.ts
CHANGED
@@ -43,6 +43,7 @@ import { type AutocompleteProps } from '@mui/material/Autocomplete';
|
|
43
43
|
import { type ButtonProps } from '@mui/material/Button';
|
44
44
|
import { type CheckboxProps } from '@mui/material/Checkbox';
|
45
45
|
import { type ChipProps } from '@mui/material/Chip';
|
46
|
+
import { type CircularProgressProps } from '@mui/material/CircularProgress';
|
46
47
|
import { type DialogProps } from '@mui/material/Dialog';
|
47
48
|
import { type IconButtonProps } from '@mui/material/IconButton';
|
48
49
|
import { type LinearProgressProps } from '@mui/material/LinearProgress';
|
@@ -158,7 +159,7 @@ export interface MRT_Localization {
|
|
158
159
|
noResultsFound: string;
|
159
160
|
of: string;
|
160
161
|
or: string;
|
161
|
-
pin
|
162
|
+
pin: string;
|
162
163
|
pinToLeft: string;
|
163
164
|
pinToRight: string;
|
164
165
|
resetColumnSize: string;
|
@@ -260,12 +261,8 @@ export type MRT_TableInstance<TData extends Record<string, any>> = Omit<
|
|
260
261
|
setEditingCell: Dispatch<SetStateAction<MRT_Cell<TData> | null>>;
|
261
262
|
setEditingRow: Dispatch<SetStateAction<MRT_Row<TData> | null>>;
|
262
263
|
setGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterOption>>;
|
263
|
-
setHoveredColumn: Dispatch<
|
264
|
-
|
265
|
-
>;
|
266
|
-
setHoveredRow: Dispatch<
|
267
|
-
SetStateAction<{ id: string } | MRT_Row<TData> | null>
|
268
|
-
>;
|
264
|
+
setHoveredColumn: Dispatch<SetStateAction<Partial<MRT_Column<TData>> | null>>;
|
265
|
+
setHoveredRow: Dispatch<SetStateAction<Partial<MRT_Row<TData>> | null>>;
|
269
266
|
setIsFullScreen: Dispatch<SetStateAction<boolean>>;
|
270
267
|
setShowAlertBanner: Dispatch<SetStateAction<boolean>>;
|
271
268
|
setShowColumnFilters: Dispatch<SetStateAction<boolean>>;
|
@@ -288,14 +285,15 @@ export type MRT_TableState<TData extends Record<string, any>> = TableState & {
|
|
288
285
|
editingCell: MRT_Cell<TData> | null;
|
289
286
|
editingRow: MRT_Row<TData> | null;
|
290
287
|
globalFilterFn: MRT_FilterOption;
|
291
|
-
hoveredColumn:
|
292
|
-
hoveredRow:
|
288
|
+
hoveredColumn: Partial<MRT_Column<TData>> | null;
|
289
|
+
hoveredRow: Partial<MRT_Row<TData>> | null;
|
293
290
|
isFullScreen: boolean;
|
294
291
|
isLoading: boolean;
|
295
292
|
isSaving: boolean;
|
296
293
|
showAlertBanner: boolean;
|
297
294
|
showColumnFilters: boolean;
|
298
295
|
showGlobalFilter: boolean;
|
296
|
+
showLoadingOverlay: boolean;
|
299
297
|
showProgressBars: boolean;
|
300
298
|
showSkeletons: boolean;
|
301
299
|
showToolbarDropZone: boolean;
|
@@ -745,6 +743,9 @@ export type MRT_TableOptions<TData extends Record<string, any>> = Omit<
|
|
745
743
|
muiBottomToolbarProps?:
|
746
744
|
| ((props: { table: MRT_TableInstance<TData> }) => ToolbarProps)
|
747
745
|
| ToolbarProps;
|
746
|
+
muiCircularProgressProps?:
|
747
|
+
| ((props: { table: MRT_TableInstance<TData> }) => CircularProgressProps)
|
748
|
+
| CircularProgressProps;
|
748
749
|
muiColumnActionsButtonProps?:
|
749
750
|
| ((props: {
|
750
751
|
column: MRT_Column<TData>;
|
@@ -972,8 +973,8 @@ export type MRT_TableOptions<TData extends Record<string, any>> = Omit<
|
|
972
973
|
values: Record<LiteralUnion<string & DeepKeys<TData>>, any>;
|
973
974
|
}) => Promise<void> | void;
|
974
975
|
onGlobalFilterFnChange?: OnChangeFn<MRT_FilterOption>;
|
975
|
-
onHoveredColumnChange?: OnChangeFn<
|
976
|
-
onHoveredRowChange?: OnChangeFn<
|
976
|
+
onHoveredColumnChange?: OnChangeFn<Partial<MRT_Column<TData>> | null>;
|
977
|
+
onHoveredRowChange?: OnChangeFn<Partial<MRT_Row<TData>> | null>;
|
977
978
|
onIsFullScreenChange?: OnChangeFn<boolean>;
|
978
979
|
onShowAlertBannerChange?: OnChangeFn<boolean>;
|
979
980
|
onShowColumnFiltersChange?: OnChangeFn<boolean>;
|