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.
@@ -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;
@@ -1,5 +1,5 @@
1
1
  import { FC } from 'react';
2
- import { MRT_TableInstance } from '..';
2
+ import type { MRT_TableInstance } from '..';
3
3
  interface Props {
4
4
  table: MRT_TableInstance;
5
5
  }
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
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.5.1",
2
+ "version": "1.5.3",
3
3
  "license": "MIT",
4
4
  "name": "material-react-table",
5
5
  "description": "A fully featured Material UI V5 implementation of TanStack React Table V8, written from the ground up in TypeScript.",
@@ -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
- <MRT_ShowHideColumnsMenu
45
- anchorEl={anchorEl}
46
- setAnchorEl={setAnchorEl}
47
- table={table}
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]: 'fuzzy',
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 } = getState();
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
- return (
28
- <Fade
29
- unmountOnExit
30
- mountOnEnter
31
- in={
29
+ useEffect(() => {
30
+ if (table.options.state?.showToolbarDropZone !== undefined) {
31
+ setShowToolbarDropZone(
32
32
  !!enableGrouping &&
33
- !!draggingColumn &&
34
- !grouping.includes(draggingColumn.id)
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(