material-react-table 1.5.1 → 1.5.3
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 +25 -20
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/MaterialReactTable.d.ts +3 -0
- package/dist/cjs/types/icons.d.ts +0 -2
- package/dist/cjs/types/table/MRT_TableRoot.d.ts +1 -0
- package/dist/cjs/types/toolbar/MRT_BottomToolbar.d.ts +1 -1
- package/dist/esm/material-react-table.esm.js +25 -18
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/MaterialReactTable.d.ts +3 -0
- package/dist/esm/types/icons.d.ts +0 -2
- package/dist/esm/types/table/MRT_TableRoot.d.ts +1 -0
- package/dist/esm/types/toolbar/MRT_BottomToolbar.d.ts +1 -1
- package/dist/index.d.ts +3 -2
- package/package.json +1 -1
- package/src/MaterialReactTable.tsx +3 -0
- package/src/buttons/MRT_ShowHideColumnsButton.tsx +7 -5
- package/src/icons.ts +0 -6
- package/src/inputs/MRT_FilterTextField.tsx +3 -1
- package/src/table/MRT_TableRoot.tsx +5 -0
- package/src/toolbar/MRT_BottomToolbar.tsx +2 -2
- package/src/toolbar/MRT_ToolbarDropZone.tsx +16 -11
@@ -176,6 +176,7 @@ export type MRT_TableInstance<TData extends Record<string, any> = {}> = Omit<Tab
|
|
176
176
|
setShowAlertBanner: Dispatch<SetStateAction<boolean>>;
|
177
177
|
setShowFilters: Dispatch<SetStateAction<boolean>>;
|
178
178
|
setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;
|
179
|
+
setShowToolbarDropZone: Dispatch<SetStateAction<boolean>>;
|
179
180
|
};
|
180
181
|
export type MRT_TableState<TData extends Record<string, any> = {}> = TableState & {
|
181
182
|
columnFilterFns: Record<string, MRT_FilterOption>;
|
@@ -198,6 +199,7 @@ export type MRT_TableState<TData extends Record<string, any> = {}> = TableState
|
|
198
199
|
showGlobalFilter: boolean;
|
199
200
|
showProgressBars: boolean;
|
200
201
|
showSkeletons: boolean;
|
202
|
+
showToolbarDropZone: boolean;
|
201
203
|
};
|
202
204
|
export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<ColumnDef<TData, unknown>, 'accessorKey' | 'aggregatedCell' | 'aggregationFn' | 'cell' | 'columns' | 'filterFn' | 'footer' | 'header' | 'id' | 'sortingFn'> & {
|
203
205
|
AggregatedCell?: ({ cell, column, row, table, }: {
|
@@ -636,6 +638,7 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
|
|
636
638
|
onShowAlertBannerChange?: OnChangeFn<boolean>;
|
637
639
|
onShowFiltersChange?: OnChangeFn<boolean>;
|
638
640
|
onShowGlobalFilterChange?: OnChangeFn<boolean>;
|
641
|
+
onShowToolbarDropZoneChange?: OnChangeFn<boolean>;
|
639
642
|
positionActionsColumn?: 'first' | 'last';
|
640
643
|
positionExpandColumn?: 'first' | 'last';
|
641
644
|
positionGlobalFilter?: 'left' | 'right' | 'none';
|
@@ -2,7 +2,6 @@ export interface MRT_Icons {
|
|
2
2
|
ArrowDownwardIcon: any;
|
3
3
|
ArrowRightIcon: any;
|
4
4
|
CancelIcon: any;
|
5
|
-
CheckBoxIcon: any;
|
6
5
|
ClearAllIcon: any;
|
7
6
|
CloseIcon: any;
|
8
7
|
DensityLargeIcon: any;
|
@@ -15,7 +14,6 @@ export interface MRT_Icons {
|
|
15
14
|
ExpandLessIcon: any;
|
16
15
|
ExpandMoreIcon: any;
|
17
16
|
FilterAltIcon: any;
|
18
|
-
FilterAltOffIcon: any;
|
19
17
|
FilterListIcon: any;
|
20
18
|
FilterListOffIcon: any;
|
21
19
|
FullscreenExitIcon: any;
|
@@ -199,6 +199,7 @@ export declare const MRT_TableRoot: <TData extends Record<string, any> = {}>(pro
|
|
199
199
|
onShowAlertBannerChange?: import("@tanstack/react-table").OnChangeFn<boolean> | undefined;
|
200
200
|
onShowFiltersChange?: import("@tanstack/react-table").OnChangeFn<boolean> | undefined;
|
201
201
|
onShowGlobalFilterChange?: import("@tanstack/react-table").OnChangeFn<boolean> | undefined;
|
202
|
+
onShowToolbarDropZoneChange?: import("@tanstack/react-table").OnChangeFn<boolean> | undefined;
|
202
203
|
positionActionsColumn?: "first" | "last" | undefined;
|
203
204
|
positionExpandColumn?: "first" | "last" | undefined;
|
204
205
|
positionGlobalFilter?: "left" | "right" | "none" | undefined;
|
package/dist/index.d.ts
CHANGED
@@ -107,7 +107,6 @@ interface MRT_Icons {
|
|
107
107
|
ArrowDownwardIcon: any;
|
108
108
|
ArrowRightIcon: any;
|
109
109
|
CancelIcon: any;
|
110
|
-
CheckBoxIcon: any;
|
111
110
|
ClearAllIcon: any;
|
112
111
|
CloseIcon: any;
|
113
112
|
DensityLargeIcon: any;
|
@@ -120,7 +119,6 @@ interface MRT_Icons {
|
|
120
119
|
ExpandLessIcon: any;
|
121
120
|
ExpandMoreIcon: any;
|
122
121
|
FilterAltIcon: any;
|
123
|
-
FilterAltOffIcon: any;
|
124
122
|
FilterListIcon: any;
|
125
123
|
FilterListOffIcon: any;
|
126
124
|
FullscreenExitIcon: any;
|
@@ -299,6 +297,7 @@ type MRT_TableInstance<TData extends Record<string, any> = {}> = Omit<Table<TDat
|
|
299
297
|
setShowAlertBanner: Dispatch<SetStateAction<boolean>>;
|
300
298
|
setShowFilters: Dispatch<SetStateAction<boolean>>;
|
301
299
|
setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;
|
300
|
+
setShowToolbarDropZone: Dispatch<SetStateAction<boolean>>;
|
302
301
|
};
|
303
302
|
type MRT_TableState<TData extends Record<string, any> = {}> = TableState & {
|
304
303
|
columnFilterFns: Record<string, MRT_FilterOption>;
|
@@ -321,6 +320,7 @@ type MRT_TableState<TData extends Record<string, any> = {}> = TableState & {
|
|
321
320
|
showGlobalFilter: boolean;
|
322
321
|
showProgressBars: boolean;
|
323
322
|
showSkeletons: boolean;
|
323
|
+
showToolbarDropZone: boolean;
|
324
324
|
};
|
325
325
|
type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<ColumnDef<TData, unknown>, 'accessorKey' | 'aggregatedCell' | 'aggregationFn' | 'cell' | 'columns' | 'filterFn' | 'footer' | 'header' | 'id' | 'sortingFn'> & {
|
326
326
|
AggregatedCell?: ({ cell, column, row, table, }: {
|
@@ -759,6 +759,7 @@ type MaterialReactTableProps<TData extends Record<string, any> = {}> = Omit<Part
|
|
759
759
|
onShowAlertBannerChange?: OnChangeFn<boolean>;
|
760
760
|
onShowFiltersChange?: OnChangeFn<boolean>;
|
761
761
|
onShowGlobalFilterChange?: OnChangeFn<boolean>;
|
762
|
+
onShowToolbarDropZoneChange?: OnChangeFn<boolean>;
|
762
763
|
positionActionsColumn?: 'first' | 'last';
|
763
764
|
positionExpandColumn?: 'first' | 'last';
|
764
765
|
positionGlobalFilter?: 'left' | 'right' | 'none';
|
package/package.json
CHANGED
@@ -222,6 +222,7 @@ export type MRT_TableInstance<TData extends Record<string, any> = {}> = Omit<
|
|
222
222
|
setShowAlertBanner: Dispatch<SetStateAction<boolean>>;
|
223
223
|
setShowFilters: Dispatch<SetStateAction<boolean>>;
|
224
224
|
setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;
|
225
|
+
setShowToolbarDropZone: Dispatch<SetStateAction<boolean>>;
|
225
226
|
};
|
226
227
|
|
227
228
|
export type MRT_TableState<TData extends Record<string, any> = {}> =
|
@@ -242,6 +243,7 @@ export type MRT_TableState<TData extends Record<string, any> = {}> =
|
|
242
243
|
showGlobalFilter: boolean;
|
243
244
|
showProgressBars: boolean;
|
244
245
|
showSkeletons: boolean;
|
246
|
+
showToolbarDropZone: boolean;
|
245
247
|
};
|
246
248
|
|
247
249
|
export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<
|
@@ -971,6 +973,7 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> =
|
|
971
973
|
onShowAlertBannerChange?: OnChangeFn<boolean>;
|
972
974
|
onShowFiltersChange?: OnChangeFn<boolean>;
|
973
975
|
onShowGlobalFilterChange?: OnChangeFn<boolean>;
|
976
|
+
onShowToolbarDropZoneChange?: OnChangeFn<boolean>;
|
974
977
|
positionActionsColumn?: 'first' | 'last';
|
975
978
|
positionExpandColumn?: 'first' | 'last';
|
976
979
|
positionGlobalFilter?: 'left' | 'right' | 'none';
|
@@ -41,11 +41,13 @@ export const MRT_ShowHideColumnsButton = <
|
|
41
41
|
<ViewColumnIcon />
|
42
42
|
</IconButton>
|
43
43
|
</Tooltip>
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
44
|
+
{anchorEl && (
|
45
|
+
<MRT_ShowHideColumnsMenu
|
46
|
+
anchorEl={anchorEl}
|
47
|
+
setAnchorEl={setAnchorEl}
|
48
|
+
table={table}
|
49
|
+
/>
|
50
|
+
)}
|
49
51
|
</>
|
50
52
|
);
|
51
53
|
};
|
package/src/icons.ts
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
import ArrowDownwardIcon from '@mui/icons-material/ArrowDownward';
|
2
2
|
import ArrowRightIcon from '@mui/icons-material/ArrowRight';
|
3
3
|
import CancelIcon from '@mui/icons-material/Cancel';
|
4
|
-
import CheckBoxIcon from '@mui/icons-material/CheckBox';
|
5
4
|
import ClearAllIcon from '@mui/icons-material/ClearAll';
|
6
5
|
import CloseIcon from '@mui/icons-material/Close';
|
7
6
|
import DensityLargeIcon from '@mui/icons-material/DensityLarge';
|
@@ -13,7 +12,6 @@ import EditIcon from '@mui/icons-material/Edit';
|
|
13
12
|
import ExpandLessIcon from '@mui/icons-material/ExpandLess';
|
14
13
|
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
15
14
|
import FilterAltIcon from '@mui/icons-material/FilterAlt';
|
16
|
-
import FilterAltOffIcon from '@mui/icons-material/FilterAltOff';
|
17
15
|
import FilterListIcon from '@mui/icons-material/FilterList';
|
18
16
|
import FilterListOffIcon from '@mui/icons-material/FilterListOff';
|
19
17
|
import FullscreenExitIcon from '@mui/icons-material/FullscreenExit';
|
@@ -34,7 +32,6 @@ export interface MRT_Icons {
|
|
34
32
|
ArrowDownwardIcon: any;
|
35
33
|
ArrowRightIcon: any;
|
36
34
|
CancelIcon: any;
|
37
|
-
CheckBoxIcon: any;
|
38
35
|
ClearAllIcon: any;
|
39
36
|
CloseIcon: any;
|
40
37
|
DensityLargeIcon: any;
|
@@ -47,7 +44,6 @@ export interface MRT_Icons {
|
|
47
44
|
ExpandLessIcon: any;
|
48
45
|
ExpandMoreIcon: any;
|
49
46
|
FilterAltIcon: any;
|
50
|
-
FilterAltOffIcon: any;
|
51
47
|
FilterListIcon: any;
|
52
48
|
FilterListOffIcon: any;
|
53
49
|
FullscreenExitIcon: any;
|
@@ -68,7 +64,6 @@ export const MRT_Default_Icons: MRT_Icons = {
|
|
68
64
|
ArrowDownwardIcon,
|
69
65
|
ArrowRightIcon,
|
70
66
|
CancelIcon,
|
71
|
-
CheckBoxIcon,
|
72
67
|
ClearAllIcon,
|
73
68
|
CloseIcon,
|
74
69
|
DensityLargeIcon,
|
@@ -80,7 +75,6 @@ export const MRT_Default_Icons: MRT_Icons = {
|
|
80
75
|
ExpandLessIcon,
|
81
76
|
ExpandMoreIcon,
|
82
77
|
FilterAltIcon,
|
83
|
-
FilterAltOffIcon,
|
84
78
|
FilterListIcon,
|
85
79
|
FilterListOffIcon,
|
86
80
|
FullscreenExitIcon,
|
@@ -165,7 +165,9 @@ export const MRT_FilterTextField: FC<Props> = ({
|
|
165
165
|
column.setFilterValue(undefined);
|
166
166
|
setColumnFilterFns((prev) => ({
|
167
167
|
...prev,
|
168
|
-
[header.id]:
|
168
|
+
[header.id]: columnDef.columnFilterModeOptions?.[0]
|
169
|
+
?? columnFilterModeOptions?.[0]
|
170
|
+
?? 'fuzzy',
|
169
171
|
}));
|
170
172
|
};
|
171
173
|
|
@@ -117,6 +117,9 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
|
|
117
117
|
const [showGlobalFilter, setShowGlobalFilter] = useState(
|
118
118
|
initialState?.showGlobalFilter ?? false,
|
119
119
|
);
|
120
|
+
const [showToolbarDropZone, setShowToolbarDropZone] = useState(
|
121
|
+
initialState?.showToolbarDropZone ?? false,
|
122
|
+
);
|
120
123
|
|
121
124
|
const displayColumns = useMemo(
|
122
125
|
() =>
|
@@ -284,6 +287,7 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
|
|
284
287
|
showAlertBanner,
|
285
288
|
showColumnFilters,
|
286
289
|
showGlobalFilter,
|
290
|
+
showToolbarDropZone,
|
287
291
|
...props.state,
|
288
292
|
} as TableState,
|
289
293
|
}),
|
@@ -310,6 +314,7 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
|
|
310
314
|
setShowAlertBanner: props.onShowAlertBannerChange ?? setShowAlertBanner,
|
311
315
|
setShowFilters: props.onShowFiltersChange ?? setShowFilters,
|
312
316
|
setShowGlobalFilter: props.onShowGlobalFilterChange ?? setShowGlobalFilter,
|
317
|
+
setShowToolbarDropZone: props.onShowToolbarDropZoneChange ?? setShowToolbarDropZone,
|
313
318
|
} as MRT_TableInstance<TData>;
|
314
319
|
|
315
320
|
if (props.tableInstanceRef) {
|
@@ -5,10 +5,10 @@ import useMediaQuery from '@mui/material/useMediaQuery';
|
|
5
5
|
import { alpha } from '@mui/material/styles';
|
6
6
|
import { MRT_TablePagination } from './MRT_TablePagination';
|
7
7
|
import { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';
|
8
|
+
import { MRT_ToolbarDropZone } from './MRT_ToolbarDropZone';
|
8
9
|
import { MRT_LinearProgressBar } from './MRT_LinearProgressBar';
|
9
10
|
import { commonToolbarStyles } from './MRT_TopToolbar';
|
10
|
-
import { MRT_TableInstance } from '..';
|
11
|
-
import { MRT_ToolbarDropZone } from './MRT_ToolbarDropZone';
|
11
|
+
import type { MRT_TableInstance } from '..';
|
12
12
|
|
13
13
|
interface Props {
|
14
14
|
table: MRT_TableInstance;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { DragEvent } from 'react';
|
1
|
+
import React, { DragEvent, useEffect } from 'react';
|
2
2
|
import { alpha } from '@mui/material/styles';
|
3
3
|
import Box from '@mui/material/Box';
|
4
4
|
import Fade from '@mui/material/Fade';
|
@@ -16,25 +16,30 @@ export const MRT_ToolbarDropZone = <TData extends Record<string, any> = {}>({
|
|
16
16
|
getState,
|
17
17
|
options: { enableGrouping, localization },
|
18
18
|
setHoveredColumn,
|
19
|
+
setShowToolbarDropZone,
|
19
20
|
} = table;
|
20
21
|
|
21
|
-
const { draggingColumn, hoveredColumn, grouping } =
|
22
|
+
const { draggingColumn, hoveredColumn, grouping, showToolbarDropZone } =
|
23
|
+
getState();
|
22
24
|
|
23
25
|
const handleDragEnter = (_event: DragEvent<HTMLDivElement>) => {
|
24
26
|
setHoveredColumn({ id: 'drop-zone' });
|
25
27
|
};
|
26
28
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
mountOnEnter
|
31
|
-
in={
|
29
|
+
useEffect(() => {
|
30
|
+
if (table.options.state?.showToolbarDropZone !== undefined) {
|
31
|
+
setShowToolbarDropZone(
|
32
32
|
!!enableGrouping &&
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
!!draggingColumn &&
|
34
|
+
!grouping.includes(draggingColumn.id),
|
35
|
+
);
|
36
|
+
}
|
37
|
+
}, [enableGrouping, draggingColumn, grouping]);
|
38
|
+
|
39
|
+
return (
|
40
|
+
<Fade in={showToolbarDropZone}>
|
37
41
|
<Box
|
42
|
+
className="Mui-ToolbarDropZone"
|
38
43
|
sx={(theme) => ({
|
39
44
|
alignItems: 'center',
|
40
45
|
backgroundColor: alpha(
|