material-react-table 0.40.10 → 0.41.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 CHANGED
@@ -423,7 +423,8 @@ declare type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<Column
423
423
  }) => ReactNode[];
424
424
  sortingFn?: MRT_SortingFn;
425
425
  };
426
- declare type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<MRT_ColumnDef<TData>, 'id'> & {
426
+ declare type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<MRT_ColumnDef<TData>, 'id' | 'defaultDisplayColumn'> & {
427
+ defaultDisplayColumn: Partial<MRT_ColumnDef<TData>>;
427
428
  id: string;
428
429
  _filterFn: MRT_FilterOption;
429
430
  };
@@ -475,6 +476,7 @@ declare type MaterialReactTableProps<TData extends Record<string, any> = {}> = O
475
476
  columns: MRT_ColumnDef<TData>[];
476
477
  data: TData[];
477
478
  defaultColumn?: Partial<MRT_ColumnDef<TData>>;
479
+ defaultDisplayColumn?: Partial<MRT_ColumnDef<TData>>;
478
480
  displayColumnDefOptions?: Partial<{
479
481
  [key in MRT_DisplayColumnIds]: Partial<MRT_ColumnDef>;
480
482
  }>;
@@ -724,7 +726,7 @@ declare type Virtualizer = {
724
726
  scrollToIndex: (index: number, options?: any | undefined) => void;
725
727
  measure: () => void;
726
728
  };
727
- declare const _default: <TData extends Record<string, any> = {}>({ aggregationFns, autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableBottomToolbar, enableColumnActions, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarInternalActions, enableTopToolbar, filterFns, icons, localization, positionActionsColumn, positionExpandColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, positionToolbarDropZone, rowNumberMode, selectAllMode, sortingFns, ...rest }: MaterialReactTableProps<TData>) => JSX.Element;
729
+ declare const _default: <TData extends Record<string, any> = {}>({ aggregationFns, autoResetExpanded, columnResizeMode, defaultColumn, defaultDisplayColumn, editingMode, enableBottomToolbar, enableColumnActions, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarInternalActions, enableTopToolbar, filterFns, icons, localization, positionActionsColumn, positionExpandColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, positionToolbarDropZone, rowNumberMode, selectAllMode, sortingFns, ...rest }: MaterialReactTableProps<TData>) => JSX.Element;
728
730
 
729
731
  interface Props$6<TData extends Record<string, any> = {}> {
730
732
  cell: MRT_Cell<TData>;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.40.10",
2
+ "version": "0.41.0",
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.",
@@ -53,9 +53,9 @@
53
53
  "@babel/preset-react": "^7.18.6",
54
54
  "@emotion/react": "^11.10.0",
55
55
  "@emotion/styled": "^11.10.0",
56
- "@faker-js/faker": "^7.4.0",
57
- "@mui/icons-material": "^5.10.2",
58
- "@mui/material": "^5.10.2",
56
+ "@faker-js/faker": "^7.5.0",
57
+ "@mui/icons-material": "^5.10.3",
58
+ "@mui/material": "^5.10.3",
59
59
  "@rollup/plugin-babel": "^5.3.1",
60
60
  "@rollup/plugin-node-resolve": "^13.3.0",
61
61
  "@rollup/plugin-typescript": "^8.4.0",
@@ -391,8 +391,9 @@ export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<
391
391
 
392
392
  export type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<
393
393
  MRT_ColumnDef<TData>,
394
- 'id'
394
+ 'id' | 'defaultDisplayColumn'
395
395
  > & {
396
+ defaultDisplayColumn: Partial<MRT_ColumnDef<TData>>;
396
397
  id: string;
397
398
  _filterFn: MRT_FilterOption;
398
399
  };
@@ -495,6 +496,7 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> =
495
496
  columns: MRT_ColumnDef<TData>[];
496
497
  data: TData[];
497
498
  defaultColumn?: Partial<MRT_ColumnDef<TData>>;
499
+ defaultDisplayColumn?: Partial<MRT_ColumnDef<TData>>;
498
500
  displayColumnDefOptions?: Partial<{
499
501
  [key in MRT_DisplayColumnIds]: Partial<MRT_ColumnDef>;
500
502
  }>;
@@ -898,6 +900,7 @@ export default <TData extends Record<string, any> = {}>({
898
900
  autoResetExpanded = false,
899
901
  columnResizeMode = 'onEnd',
900
902
  defaultColumn = { minSize: 40, maxSize: 1000, size: 180 },
903
+ defaultDisplayColumn,
901
904
  editingMode = 'modal',
902
905
  enableBottomToolbar = true,
903
906
  enableColumnActions = true,
@@ -943,6 +946,21 @@ export default <TData extends Record<string, any> = {}>({
943
946
  autoResetExpanded={autoResetExpanded}
944
947
  columnResizeMode={columnResizeMode}
945
948
  defaultColumn={defaultColumn}
949
+ defaultDisplayColumn={{
950
+ columnDefType: 'display',
951
+ enableClickToCopy: false,
952
+ enableColumnActions: false,
953
+ enableColumnDragging: false,
954
+ enableColumnFilter: false,
955
+ enableColumnOrdering: false,
956
+ enableEditing: false,
957
+ enableGlobalFilter: false,
958
+ enableGrouping: false,
959
+ enableHiding: false,
960
+ enableResizing: false,
961
+ enableSorting: false,
962
+ ...defaultDisplayColumn,
963
+ }}
946
964
  editingMode={editingMode}
947
965
  enableBottomToolbar={enableBottomToolbar}
948
966
  enableColumnActions={enableColumnActions}
@@ -10,21 +10,6 @@ import {
10
10
  import { MRT_FilterFns } from './filterFns';
11
11
  import { MRT_SortingFns } from './sortingFns';
12
12
 
13
- export const defaultDisplayColumnDefOptions = {
14
- columnDefType: 'display',
15
- enableClickToCopy: false,
16
- enableColumnActions: false,
17
- enableColumnDragging: false,
18
- enableColumnFilter: false,
19
- enableColumnOrdering: false,
20
- enableEditing: false,
21
- enableGlobalFilter: false,
22
- enableGrouping: false,
23
- enableHiding: false,
24
- enableResizing: false,
25
- enableSorting: false,
26
- } as Partial<MRT_ColumnDef>;
27
-
28
13
  export const getColumnId = <TData extends Record<string, any> = {}>(
29
14
  columnDef: MRT_ColumnDef<TData>,
30
15
  ): string =>
@@ -48,13 +33,20 @@ export const getAllLeafColumnDefs = <TData extends Record<string, any> = {}>(
48
33
  return lowestLevelColumns.filter((col) => !col.columns);
49
34
  };
50
35
 
51
- export const prepareColumns = <TData extends Record<string, any> = {}>(
52
- columnDefs: MRT_ColumnDef<TData>[],
53
- columnFilterFns: { [key: string]: MRT_FilterOption },
54
- filterFns: typeof MRT_FilterFns & MaterialReactTableProps<TData>['filterFns'],
36
+ export const prepareColumns = <TData extends Record<string, any> = {}>({
37
+ columnDefs,
38
+ columnFilterFns,
39
+ defaultDisplayColumn,
40
+ filterFns,
41
+ sortingFns,
42
+ }: {
43
+ columnDefs: MRT_ColumnDef<TData>[];
44
+ columnFilterFns: { [key: string]: MRT_FilterOption };
45
+ defaultDisplayColumn: Partial<MRT_ColumnDef<TData>>;
46
+ filterFns: typeof MRT_FilterFns & MaterialReactTableProps<TData>['filterFns'];
55
47
  sortingFns: typeof MRT_SortingFns &
56
- MaterialReactTableProps<TData>['sortingFns'],
57
- ): MRT_DefinedColumnDef<TData>[] =>
48
+ MaterialReactTableProps<TData>['sortingFns'];
49
+ }): MRT_DefinedColumnDef<TData>[] =>
58
50
  columnDefs.map((columnDef) => {
59
51
  if (!columnDef.id) columnDef.id = getColumnId(columnDef);
60
52
  if (process.env.NODE_ENV !== 'production' && !columnDef.id) {
@@ -65,12 +57,13 @@ export const prepareColumns = <TData extends Record<string, any> = {}>(
65
57
  if (!columnDef.columnDefType) columnDef.columnDefType = 'data';
66
58
  if (!!columnDef.columns?.length) {
67
59
  columnDef.columnDefType = 'group';
68
- columnDef.columns = prepareColumns(
69
- columnDef.columns,
60
+ columnDef.columns = prepareColumns({
61
+ columnDefs: columnDef.columns,
70
62
  columnFilterFns,
63
+ defaultDisplayColumn,
71
64
  filterFns,
72
65
  sortingFns,
73
- );
66
+ });
74
67
  } else if (columnDef.columnDefType === 'data') {
75
68
  if (Object.keys(filterFns).includes(columnFilterFns[columnDef.id])) {
76
69
  columnDef.filterFn =
@@ -84,7 +77,7 @@ export const prepareColumns = <TData extends Record<string, any> = {}>(
84
77
  }
85
78
  } else if (columnDef.columnDefType === 'display') {
86
79
  columnDef = {
87
- ...(defaultDisplayColumnDefOptions as MRT_ColumnDef<TData>),
80
+ ...(defaultDisplayColumn as MRT_ColumnDef<TData>),
88
81
  ...columnDef,
89
82
  };
90
83
  }
@@ -3,6 +3,7 @@ import React, {
3
3
  FC,
4
4
  MouseEvent,
5
5
  useCallback,
6
+ useEffect,
6
7
  useState,
7
8
  } from 'react';
8
9
  import {
@@ -169,6 +170,10 @@ export const MRT_FilterTextField: FC<Props> = ({
169
170
  setAnchorEl(event.currentTarget);
170
171
  };
171
172
 
173
+ useEffect(() => {
174
+ setFilterValue('');
175
+ }, [columnDef._filterFn]);
176
+
172
177
  if (columnDef.Filter) {
173
178
  return <>{columnDef.Filter?.({ column, header, table })}</>;
174
179
  }
@@ -241,9 +246,7 @@ export const MRT_FilterTextField: FC<Props> = ({
241
246
  />
242
247
  )}
243
248
  </InputAdornment>
244
- ) : (
245
- <FilterListIcon style={{ marginRight: '4px' }} />
246
- ),
249
+ ) : null,
247
250
  endAdornment: !filterChipLabel && (
248
251
  <InputAdornment position="end">
249
252
  <Tooltip
@@ -22,7 +22,6 @@ import {
22
22
  getAllLeafColumnDefs,
23
23
  getDefaultColumnOrderIds,
24
24
  getDefaultColumnFilterFn,
25
- defaultDisplayColumnDefOptions,
26
25
  showExpandColumn,
27
26
  getColumnId,
28
27
  } from '../column.utils';
@@ -125,7 +124,7 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
125
124
  columnOrder.includes('mrt-row-drag') && {
126
125
  header: props.localization?.move,
127
126
  size: 60,
128
- ...defaultDisplayColumnDefOptions,
127
+ ...props.defaultDisplayColumn,
129
128
  ...props.displayColumnDefOptions?.['mrt-row-drag'],
130
129
  id: 'mrt-row-drag',
131
130
  },
@@ -139,7 +138,7 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
139
138
  ),
140
139
  header: props.localization?.actions,
141
140
  size: 70,
142
- ...defaultDisplayColumnDefOptions,
141
+ ...props.defaultDisplayColumn,
143
142
  ...props.displayColumnDefOptions?.['mrt-row-actions'],
144
143
  id: 'mrt-row-actions',
145
144
  },
@@ -154,7 +153,7 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
154
153
  ) : null,
155
154
  header: props.localization?.expand,
156
155
  size: 60,
157
- ...defaultDisplayColumnDefOptions,
156
+ ...props.defaultDisplayColumn,
158
157
  ...props.displayColumnDefOptions?.['mrt-row-expand'],
159
158
  id: 'mrt-row-expand',
160
159
  },
@@ -168,7 +167,7 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
168
167
  ) : null,
169
168
  header: props.localization?.select,
170
169
  size: 60,
171
- ...defaultDisplayColumnDefOptions,
170
+ ...props.defaultDisplayColumn,
172
171
  ...props.displayColumnDefOptions?.['mrt-row-select'],
173
172
  id: 'mrt-row-select',
174
173
  },
@@ -177,7 +176,7 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
177
176
  Header: () => props.localization?.rowNumber,
178
177
  header: props.localization?.rowNumbers,
179
178
  size: 60,
180
- ...defaultDisplayColumnDefOptions,
179
+ ...props.defaultDisplayColumn,
181
180
  ...props.displayColumnDefOptions?.['mrt-row-numbers'],
182
181
  id: 'mrt-row-numbers',
183
182
  },
@@ -209,13 +208,19 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
209
208
 
210
209
  const columnDefs = useMemo(
211
210
  () =>
212
- prepareColumns(
213
- [...displayColumns, ...props.columns],
214
- columnFilterFns,
215
- props.filterFns as any,
216
- props.sortingFns as any,
217
- ),
218
- [columnFilterFns, displayColumns, props.columns],
211
+ prepareColumns({
212
+ columnDefs: [...displayColumns, ...props.columns],
213
+ columnFilterFns: props.state?.columnFilterFns ?? columnFilterFns,
214
+ defaultDisplayColumn: props.defaultDisplayColumn ?? {},
215
+ filterFns: props.filterFns as any,
216
+ sortingFns: props.sortingFns as any,
217
+ }),
218
+ [
219
+ columnFilterFns,
220
+ displayColumns,
221
+ props.columns,
222
+ props.state?.columnFilterFns,
223
+ ],
219
224
  );
220
225
 
221
226
  const data: TData[] = useMemo(