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/README.md +15 -13
- package/dist/cjs/MaterialReactTable.d.ts +4 -2
- package/dist/cjs/column.utils.d.ts +81 -76
- package/dist/cjs/index.js +39 -30
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/MaterialReactTable.d.ts +4 -2
- package/dist/esm/column.utils.d.ts +81 -76
- package/dist/esm/material-react-table.esm.js +39 -30
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/package.json +4 -4
- package/src/MaterialReactTable.tsx +19 -1
- package/src/column.utils.ts +18 -25
- package/src/inputs/MRT_FilterTextField.tsx +6 -3
- package/src/table/MRT_TableRoot.tsx +18 -13
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.
|
|
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.
|
|
57
|
-
"@mui/icons-material": "^5.10.
|
|
58
|
-
"@mui/material": "^5.10.
|
|
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}
|
package/src/column.utils.ts
CHANGED
|
@@ -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
|
|
53
|
-
columnFilterFns
|
|
54
|
-
|
|
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
|
-
...(
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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.
|
|
216
|
-
props.
|
|
217
|
-
|
|
218
|
-
|
|
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(
|