material-react-table 2.6.0 → 2.7.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 +224 -240
- package/dist/index.esm.js +2248 -2211
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +2353 -2315
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/body/MRT_TableBody.tsx +3 -25
- package/src/body/MRT_TableBodyRow.tsx +4 -2
- package/src/body/MRT_TableDetailPanel.tsx +3 -3
- package/src/buttons/MRT_CopyButton.tsx +2 -3
- package/src/buttons/MRT_ExpandAllButton.tsx +2 -2
- package/src/buttons/MRT_ExpandButton.tsx +5 -2
- package/src/buttons/MRT_GrabHandleButton.tsx +2 -3
- package/src/buttons/MRT_RowPinButton.tsx +2 -2
- package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +6 -6
- package/src/column.utils.ts +22 -29
- package/src/head/MRT_TableHead.tsx +1 -1
- package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +2 -3
- package/src/hooks/useMRT_DisplayColumns.tsx +43 -52
- package/src/hooks/useMRT_Effects.ts +6 -5
- package/src/hooks/useMRT_Rows.ts +30 -4
- package/src/hooks/useMRT_TableInstance.ts +44 -55
- package/src/hooks/useMRT_TableOptions.ts +2 -0
- package/src/icons.ts +4 -38
- package/src/index.ts +84 -10
- package/src/inputs/MRT_FilterCheckbox.tsx +2 -2
- package/src/inputs/MRT_SelectCheckbox.tsx +2 -2
- package/src/menus/MRT_ColumnActionMenu.tsx +11 -3
- package/src/menus/MRT_FilterOptionMenu.tsx +8 -0
- package/src/menus/MRT_RowActionMenu.tsx +14 -3
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +8 -0
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +2 -3
- package/src/style.utils.ts +29 -13
- package/src/table/MRT_TableContainer.tsx +1 -1
- package/src/toolbar/MRT_TablePagination.tsx +7 -5
- package/src/toolbar/MRT_ToolbarAlertBanner.tsx +1 -1
- package/src/types.ts +5 -0
- package/src/body/index.ts +0 -7
- package/src/buttons/index.ts +0 -13
- package/src/footer/index.ts +0 -3
- package/src/head/index.ts +0 -9
- package/src/hooks/index.ts +0 -7
- package/src/inputs/index.ts +0 -7
- package/src/menus/index.ts +0 -5
- package/src/modals/index.ts +0 -1
- package/src/table/index.ts +0 -5
- package/src/toolbar/index.ts +0 -7
package/src/style.utils.ts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import { type CSSProperties } from 'react';
|
2
2
|
import { type TableCellProps } from '@mui/material/TableCell';
|
3
|
+
import { type TooltipProps } from '@mui/material/Tooltip';
|
3
4
|
import { alpha, darken, lighten } from '@mui/material/styles';
|
4
5
|
import { type Theme } from '@mui/material/styles';
|
5
6
|
import {
|
@@ -20,20 +21,26 @@ export const parseCSSVarId = (id: string) => id.replace(/[^a-zA-Z0-9]/g, '_');
|
|
20
21
|
export const getMRTTheme = <TData extends MRT_RowData>(
|
21
22
|
table: MRT_TableInstance<TData>,
|
22
23
|
theme: Theme,
|
23
|
-
) =>
|
24
|
-
|
25
|
-
|
24
|
+
) => {
|
25
|
+
const themeOverrides = parseFromValuesOrFunc(table.options.mrtTheme, theme);
|
26
|
+
const baseBackgroundColor =
|
27
|
+
themeOverrides?.baseBackgroundColor ??
|
28
|
+
(theme.palette.mode === 'dark'
|
26
29
|
? lighten(theme.palette.background.default, 0.05)
|
27
|
-
: theme.palette.background.default
|
28
|
-
|
29
|
-
|
30
|
-
theme.palette.
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
30
|
+
: theme.palette.background.default);
|
31
|
+
return {
|
32
|
+
baseBackgroundColor,
|
33
|
+
draggingBorderColor: theme.palette.primary.main,
|
34
|
+
matchHighlightColor:
|
35
|
+
theme.palette.mode === 'dark'
|
36
|
+
? darken(theme.palette.warning.dark, 0.25)
|
37
|
+
: lighten(theme.palette.warning.light, 0.5),
|
38
|
+
menuBackgroundColor: lighten(baseBackgroundColor, 0.07),
|
39
|
+
pinnedRowBackgroundColor: alpha(theme.palette.primary.main, 0.1),
|
40
|
+
selectedRowBackgroundColor: alpha(theme.palette.primary.main, 0.2),
|
41
|
+
...themeOverrides,
|
42
|
+
};
|
43
|
+
};
|
37
44
|
|
38
45
|
export const getCommonMRTCellStyles = <TData extends MRT_RowData>({
|
39
46
|
column,
|
@@ -133,3 +140,12 @@ export const flipIconStyles = (theme: Theme) =>
|
|
133
140
|
theme.direction === 'rtl'
|
134
141
|
? { style: { transform: 'scaleX(-1)' } }
|
135
142
|
: undefined;
|
143
|
+
|
144
|
+
export const getCommonTooltipProps = (
|
145
|
+
placement?: TooltipProps['placement'],
|
146
|
+
): Partial<TooltipProps> => ({
|
147
|
+
disableInteractive: true,
|
148
|
+
enterDelay: 1000,
|
149
|
+
enterNextDelay: 1000,
|
150
|
+
placement,
|
151
|
+
});
|
@@ -5,7 +5,7 @@ import TableContainer, {
|
|
5
5
|
import { MRT_Table } from './MRT_Table';
|
6
6
|
import { MRT_TableLoadingOverlay } from './MRT_TableLoadingOverlay';
|
7
7
|
import { parseFromValuesOrFunc } from '../column.utils';
|
8
|
-
import { MRT_EditRowModal } from '../modals';
|
8
|
+
import { MRT_EditRowModal } from '../modals/MRT_EditRowModal';
|
9
9
|
import { type MRT_RowData, type MRT_TableInstance } from '../types';
|
10
10
|
|
11
11
|
const useIsomorphicLayoutEffect =
|
@@ -9,7 +9,7 @@ import Tooltip from '@mui/material/Tooltip';
|
|
9
9
|
import Typography from '@mui/material/Typography';
|
10
10
|
import { useTheme } from '@mui/material/styles';
|
11
11
|
import { parseFromValuesOrFunc } from '../column.utils';
|
12
|
-
import { flipIconStyles } from '../style.utils';
|
12
|
+
import { flipIconStyles, getCommonTooltipProps } from '../style.utils';
|
13
13
|
import { type MRT_RowData, type MRT_TableInstance } from '../types';
|
14
14
|
|
15
15
|
const defaultRowsPerPage = [5, 10, 15, 20, 25, 30, 50, 100];
|
@@ -79,6 +79,8 @@ export const MRT_TablePagination = <TData extends MRT_RowData>({
|
|
79
79
|
const disableBack = pageIndex <= 0 || disabled;
|
80
80
|
const disableNext = lastRowIndex >= totalRowCount || disabled;
|
81
81
|
|
82
|
+
const tooltipProps = getCommonTooltipProps();
|
83
|
+
|
82
84
|
return (
|
83
85
|
<Box
|
84
86
|
className="MuiTablePagination-root"
|
@@ -173,7 +175,7 @@ export const MRT_TablePagination = <TData extends MRT_RowData>({
|
|
173
175
|
} ${totalRowCount.toLocaleString()}`}</Typography>
|
174
176
|
<Box gap="xs">
|
175
177
|
{showFirstButton && (
|
176
|
-
<Tooltip
|
178
|
+
<Tooltip {...tooltipProps} title={localization.goToFirstPage}>
|
177
179
|
<span>
|
178
180
|
<IconButton
|
179
181
|
aria-label={localization.goToFirstPage}
|
@@ -186,7 +188,7 @@ export const MRT_TablePagination = <TData extends MRT_RowData>({
|
|
186
188
|
</span>
|
187
189
|
</Tooltip>
|
188
190
|
)}
|
189
|
-
<Tooltip
|
191
|
+
<Tooltip {...tooltipProps} title={localization.goToPreviousPage}>
|
190
192
|
<span>
|
191
193
|
<IconButton
|
192
194
|
aria-label={localization.goToPreviousPage}
|
@@ -198,7 +200,7 @@ export const MRT_TablePagination = <TData extends MRT_RowData>({
|
|
198
200
|
</IconButton>
|
199
201
|
</span>
|
200
202
|
</Tooltip>
|
201
|
-
<Tooltip
|
203
|
+
<Tooltip {...tooltipProps} title={localization.goToNextPage}>
|
202
204
|
<span>
|
203
205
|
<IconButton
|
204
206
|
aria-label={localization.goToNextPage}
|
@@ -211,7 +213,7 @@ export const MRT_TablePagination = <TData extends MRT_RowData>({
|
|
211
213
|
</span>
|
212
214
|
</Tooltip>
|
213
215
|
{showLastButton && (
|
214
|
-
<Tooltip
|
216
|
+
<Tooltip {...tooltipProps} title={localization.goToLastPage}>
|
215
217
|
<span>
|
216
218
|
<IconButton
|
217
219
|
aria-label={localization.goToLastPage}
|
@@ -6,7 +6,7 @@ import Chip from '@mui/material/Chip';
|
|
6
6
|
import Collapse from '@mui/material/Collapse';
|
7
7
|
import Stack from '@mui/material/Stack';
|
8
8
|
import { parseFromValuesOrFunc } from '../column.utils';
|
9
|
-
import { MRT_SelectCheckbox } from '../inputs';
|
9
|
+
import { MRT_SelectCheckbox } from '../inputs/MRT_SelectCheckbox';
|
10
10
|
import { type MRT_RowData, type MRT_TableInstance } from '../types';
|
11
11
|
|
12
12
|
interface Props<TData extends MRT_RowData> extends AlertProps {
|
package/src/types.ts
CHANGED
@@ -247,6 +247,7 @@ export interface MRT_Theme {
|
|
247
247
|
baseBackgroundColor?: CSSProperties['backgroundColor'];
|
248
248
|
draggingBorderColor?: CSSProperties['borderColor'];
|
249
249
|
matchHighlightColor?: CSSProperties['backgroundColor'];
|
250
|
+
menuBackgroundColor?: CSSProperties['backgroundColor'];
|
250
251
|
pinnedRowBackgroundColor?: CSSProperties['backgroundColor'];
|
251
252
|
selectedRowBackgroundColor?: CSSProperties['backgroundColor'];
|
252
253
|
}
|
@@ -919,6 +920,7 @@ export type MRT_TableOptions<TData extends MRT_RowData> = Omit<
|
|
919
920
|
muiExpandButtonProps?:
|
920
921
|
| ((props: {
|
921
922
|
row: MRT_Row<TData>;
|
923
|
+
staticRowIndex?: number;
|
922
924
|
table: MRT_TableInstance<TData>;
|
923
925
|
}) => IconButtonProps)
|
924
926
|
| IconButtonProps;
|
@@ -1122,6 +1124,7 @@ export type MRT_TableOptions<TData extends MRT_RowData> = Omit<
|
|
1122
1124
|
onShowToolbarDropZoneChange?: OnChangeFn<boolean>;
|
1123
1125
|
paginationDisplayMode?: 'custom' | 'default' | 'pages';
|
1124
1126
|
positionActionsColumn?: 'first' | 'last';
|
1127
|
+
positionCreatingRow?: 'bottom' | 'top' | number;
|
1125
1128
|
positionExpandColumn?: 'first' | 'last';
|
1126
1129
|
positionGlobalFilter?: 'left' | 'none' | 'right';
|
1127
1130
|
positionPagination?: 'both' | 'bottom' | 'none' | 'top';
|
@@ -1170,11 +1173,13 @@ export type MRT_TableOptions<TData extends MRT_RowData> = Omit<
|
|
1170
1173
|
renderRowActionMenuItems?: (props: {
|
1171
1174
|
closeMenu: () => void;
|
1172
1175
|
row: MRT_Row<TData>;
|
1176
|
+
staticRowIndex?: number;
|
1173
1177
|
table: MRT_TableInstance<TData>;
|
1174
1178
|
}) => ReactNode[];
|
1175
1179
|
renderRowActions?: (props: {
|
1176
1180
|
cell: MRT_Cell<TData>;
|
1177
1181
|
row: MRT_Row<TData>;
|
1182
|
+
staticRowIndex?: number;
|
1178
1183
|
table: MRT_TableInstance<TData>;
|
1179
1184
|
}) => ReactNode;
|
1180
1185
|
renderToolbarAlertBannerContent?: (props: {
|
package/src/body/index.ts
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
export * from './MRT_TableBody';
|
2
|
-
export * from './MRT_TableBodyCell';
|
3
|
-
export * from './MRT_TableBodyCellValue';
|
4
|
-
export * from './MRT_TableBodyRow';
|
5
|
-
export * from './MRT_TableBodyRowGrabHandle';
|
6
|
-
export * from './MRT_TableBodyRowPinButton';
|
7
|
-
export * from './MRT_TableDetailPanel';
|
package/src/buttons/index.ts
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
export * from './MRT_ColumnPinningButtons';
|
2
|
-
export * from './MRT_CopyButton';
|
3
|
-
export * from './MRT_EditActionButtons';
|
4
|
-
export * from './MRT_ExpandAllButton';
|
5
|
-
export * from './MRT_ExpandButton';
|
6
|
-
export * from './MRT_GrabHandleButton';
|
7
|
-
export * from './MRT_RowPinButton';
|
8
|
-
export * from './MRT_ShowHideColumnsButton';
|
9
|
-
export * from './MRT_ToggleDensePaddingButton';
|
10
|
-
export * from './MRT_ToggleFiltersButton';
|
11
|
-
export * from './MRT_ToggleFullScreenButton';
|
12
|
-
export * from './MRT_ToggleGlobalFilterButton';
|
13
|
-
export * from './MRT_ToggleRowActionMenuButton';
|
package/src/footer/index.ts
DELETED
package/src/head/index.ts
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
export * from './MRT_TableHead';
|
2
|
-
export * from './MRT_TableHeadCell';
|
3
|
-
export * from './MRT_TableHeadCellColumnActionsButton';
|
4
|
-
export * from './MRT_TableHeadCellFilterContainer';
|
5
|
-
export * from './MRT_TableHeadCellFilterLabel';
|
6
|
-
export * from './MRT_TableHeadCellGrabHandle';
|
7
|
-
export * from './MRT_TableHeadCellResizeHandle';
|
8
|
-
export * from './MRT_TableHeadCellSortLabel';
|
9
|
-
export * from './MRT_TableHeadRow';
|
package/src/hooks/index.ts
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
export * from './useMRT_ColumnVirtualizer';
|
2
|
-
export * from './useMRT_DisplayColumns';
|
3
|
-
export * from './useMRT_Effects';
|
4
|
-
export * from './useMRT_RowVirtualizer';
|
5
|
-
export * from './useMRT_Rows';
|
6
|
-
export * from './useMRT_TableInstance';
|
7
|
-
export * from './useMRT_TableOptions';
|
package/src/inputs/index.ts
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
export * from './MRT_EditCellTextField';
|
2
|
-
export * from './MRT_FilterCheckbox';
|
3
|
-
export * from './MRT_FilterRangeFields';
|
4
|
-
export * from './MRT_FilterRangeSlider';
|
5
|
-
export * from './MRT_FilterTextField';
|
6
|
-
export * from './MRT_GlobalFilterTextField';
|
7
|
-
export * from './MRT_SelectCheckbox';
|
package/src/menus/index.ts
DELETED
package/src/modals/index.ts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
export * from './MRT_EditRowModal';
|
package/src/table/index.ts
DELETED
package/src/toolbar/index.ts
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
export * from './MRT_BottomToolbar';
|
2
|
-
export * from './MRT_LinearProgressBar';
|
3
|
-
export * from './MRT_TablePagination';
|
4
|
-
export * from './MRT_ToolbarAlertBanner';
|
5
|
-
export * from './MRT_ToolbarDropZone';
|
6
|
-
export * from './MRT_ToolbarInternalButtons';
|
7
|
-
export * from './MRT_TopToolbar';
|