material-react-table 1.5.1 → 1.5.2
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 +21 -13
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/MaterialReactTable.d.ts +3 -0
- package/dist/cjs/types/table/MRT_TableRoot.d.ts +1 -0
- package/dist/esm/material-react-table.esm.js +21 -13
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/MaterialReactTable.d.ts +3 -0
- package/dist/esm/types/table/MRT_TableRoot.d.ts +1 -0
- package/dist/index.d.ts +3 -0
- package/package.json +1 -1
- package/src/MaterialReactTable.tsx +3 -0
- package/src/buttons/MRT_ShowHideColumnsButton.tsx +7 -5
- package/src/table/MRT_TableRoot.tsx +5 -0
- 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';
|
@@ -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
@@ -299,6 +299,7 @@ type MRT_TableInstance<TData extends Record<string, any> = {}> = Omit<Table<TDat
|
|
299
299
|
setShowAlertBanner: Dispatch<SetStateAction<boolean>>;
|
300
300
|
setShowFilters: Dispatch<SetStateAction<boolean>>;
|
301
301
|
setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;
|
302
|
+
setShowToolbarDropZone: Dispatch<SetStateAction<boolean>>;
|
302
303
|
};
|
303
304
|
type MRT_TableState<TData extends Record<string, any> = {}> = TableState & {
|
304
305
|
columnFilterFns: Record<string, MRT_FilterOption>;
|
@@ -321,6 +322,7 @@ type MRT_TableState<TData extends Record<string, any> = {}> = TableState & {
|
|
321
322
|
showGlobalFilter: boolean;
|
322
323
|
showProgressBars: boolean;
|
323
324
|
showSkeletons: boolean;
|
325
|
+
showToolbarDropZone: boolean;
|
324
326
|
};
|
325
327
|
type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<ColumnDef<TData, unknown>, 'accessorKey' | 'aggregatedCell' | 'aggregationFn' | 'cell' | 'columns' | 'filterFn' | 'footer' | 'header' | 'id' | 'sortingFn'> & {
|
326
328
|
AggregatedCell?: ({ cell, column, row, table, }: {
|
@@ -759,6 +761,7 @@ type MaterialReactTableProps<TData extends Record<string, any> = {}> = Omit<Part
|
|
759
761
|
onShowAlertBannerChange?: OnChangeFn<boolean>;
|
760
762
|
onShowFiltersChange?: OnChangeFn<boolean>;
|
761
763
|
onShowGlobalFilterChange?: OnChangeFn<boolean>;
|
764
|
+
onShowToolbarDropZoneChange?: OnChangeFn<boolean>;
|
762
765
|
positionActionsColumn?: 'first' | 'last';
|
763
766
|
positionExpandColumn?: 'first' | 'last';
|
764
767
|
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
|
};
|
@@ -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) {
|
@@ -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(
|