material-react-table 0.11.0 → 0.12.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/MaterialReactTable.d.ts +65 -51
- package/dist/filtersFNs.d.ts +2 -2
- package/dist/material-react-table.cjs.development.js +98 -56
- package/dist/material-react-table.cjs.development.js.map +1 -1
- package/dist/material-react-table.cjs.production.min.js +1 -1
- package/dist/material-react-table.cjs.production.min.js.map +1 -1
- package/dist/material-react-table.esm.js +98 -56
- package/dist/material-react-table.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/MaterialReactTable.tsx +91 -66
- package/src/body/MRT_TableBodyCell.tsx +2 -2
- package/src/body/MRT_TableBodyRow.tsx +2 -2
- package/src/body/MRT_TableDetailPanel.tsx +2 -2
- package/src/buttons/MRT_EditActionButtons.tsx +2 -2
- package/src/buttons/MRT_ExpandButton.tsx +2 -2
- package/src/buttons/MRT_FullScreenToggleButton.tsx +2 -2
- package/src/buttons/MRT_ToggleDensePaddingButton.tsx +2 -2
- package/src/buttons/MRT_ToggleFiltersButton.tsx +2 -2
- package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +2 -2
- package/src/filtersFNs.ts +2 -2
- package/src/inputs/MRT_EditCellTextField.tsx +6 -6
- package/src/inputs/MRT_FilterTextField.tsx +72 -39
- package/src/inputs/MRT_SearchTextField.tsx +12 -8
- package/src/inputs/MRT_SelectCheckbox.tsx +4 -4
- package/src/menus/MRT_FilterOptionMenu.tsx +10 -3
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +2 -2
|
@@ -29,7 +29,8 @@ export const MRT_SearchTextField: FC<Props> = ({ instance }) => {
|
|
|
29
29
|
tableId,
|
|
30
30
|
localization,
|
|
31
31
|
muiSearchTextFieldProps,
|
|
32
|
-
|
|
32
|
+
onGlobalFilterValueChanged,
|
|
33
|
+
onGlobalFilterValueChangedDebounced,
|
|
33
34
|
},
|
|
34
35
|
} = instance;
|
|
35
36
|
|
|
@@ -38,14 +39,20 @@ export const MRT_SearchTextField: FC<Props> = ({ instance }) => {
|
|
|
38
39
|
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
|
|
39
40
|
const [searchValue, setSearchValue] = useState(globalFilter ?? '');
|
|
40
41
|
|
|
41
|
-
const
|
|
42
|
+
const handleChangeDebounced = useCallback(
|
|
42
43
|
debounce((event: ChangeEvent<HTMLInputElement>) => {
|
|
43
44
|
setGlobalFilter(event.target.value ?? undefined);
|
|
44
|
-
|
|
45
|
-
},
|
|
45
|
+
onGlobalFilterValueChangedDebounced?.({ event, instance });
|
|
46
|
+
}, 250),
|
|
46
47
|
[],
|
|
47
48
|
);
|
|
48
49
|
|
|
50
|
+
const handleChange = (event: ChangeEvent<HTMLInputElement>) => {
|
|
51
|
+
setSearchValue(event.target.value);
|
|
52
|
+
handleChangeDebounced(event);
|
|
53
|
+
onGlobalFilterValueChanged?.({ event, instance });
|
|
54
|
+
};
|
|
55
|
+
|
|
49
56
|
const handleGlobalFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {
|
|
50
57
|
setAnchorEl(event.currentTarget);
|
|
51
58
|
};
|
|
@@ -65,10 +72,7 @@ export const MRT_SearchTextField: FC<Props> = ({ instance }) => {
|
|
|
65
72
|
<TextField
|
|
66
73
|
id={`mrt-${tableId}-search-text-field`}
|
|
67
74
|
placeholder={localization.search}
|
|
68
|
-
onChange={
|
|
69
|
-
setSearchValue(event.target.value);
|
|
70
|
-
handleChange(event);
|
|
71
|
-
}}
|
|
75
|
+
onChange={handleChange}
|
|
72
76
|
value={searchValue ?? ''}
|
|
73
77
|
variant="standard"
|
|
74
78
|
InputProps={{
|
|
@@ -16,8 +16,8 @@ export const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, instance }) => {
|
|
|
16
16
|
options: {
|
|
17
17
|
localization,
|
|
18
18
|
muiSelectCheckboxProps,
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
onRowSelectionChanged,
|
|
20
|
+
onRowSelectAllChanged,
|
|
21
21
|
selectAllMode,
|
|
22
22
|
},
|
|
23
23
|
} = instance;
|
|
@@ -31,14 +31,14 @@ export const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, instance }) => {
|
|
|
31
31
|
} else if (selectAllMode === 'page') {
|
|
32
32
|
instance.getToggleAllPageRowsSelectedHandler()(event as any);
|
|
33
33
|
}
|
|
34
|
-
|
|
34
|
+
onRowSelectAllChanged?.({
|
|
35
35
|
event,
|
|
36
36
|
selectedRows: event.target.checked ? getRowModel().flatRows : [],
|
|
37
37
|
instance,
|
|
38
38
|
});
|
|
39
39
|
} else if (row) {
|
|
40
40
|
row?.getToggleSelectedHandler()(event as any);
|
|
41
|
-
|
|
41
|
+
onRowSelectionChanged?.({
|
|
42
42
|
event,
|
|
43
43
|
row,
|
|
44
44
|
selectedRows: event.target.checked
|
|
@@ -43,7 +43,11 @@ export const MRT_FilterOptionMenu: FC<Props> = ({
|
|
|
43
43
|
}) => {
|
|
44
44
|
const {
|
|
45
45
|
getState,
|
|
46
|
-
options: {
|
|
46
|
+
options: {
|
|
47
|
+
enabledGlobalFilterOptions,
|
|
48
|
+
enabledColumnFilterOptions,
|
|
49
|
+
localization,
|
|
50
|
+
},
|
|
47
51
|
setCurrentFilterFns,
|
|
48
52
|
setCurrentGlobalFilterFn,
|
|
49
53
|
} = instance;
|
|
@@ -55,6 +59,9 @@ export const MRT_FilterOptionMenu: FC<Props> = ({
|
|
|
55
59
|
|
|
56
60
|
const { columnDef } = column ?? {};
|
|
57
61
|
|
|
62
|
+
const allowedColumnFilterOptions =
|
|
63
|
+
columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;
|
|
64
|
+
|
|
58
65
|
const filterOptions = useMemo(
|
|
59
66
|
() =>
|
|
60
67
|
[
|
|
@@ -126,8 +133,8 @@ export const MRT_FilterOptionMenu: FC<Props> = ({
|
|
|
126
133
|
},
|
|
127
134
|
].filter((filterType) =>
|
|
128
135
|
columnDef
|
|
129
|
-
?
|
|
130
|
-
|
|
136
|
+
? allowedColumnFilterOptions === undefined ||
|
|
137
|
+
allowedColumnFilterOptions?.includes(filterType.option)
|
|
131
138
|
: (!enabledGlobalFilterOptions ||
|
|
132
139
|
enabledGlobalFilterOptions.includes(filterType.option)) &&
|
|
133
140
|
['fuzzy', 'contains'].includes(filterType.option),
|
|
@@ -21,7 +21,7 @@ export const MRT_ShowHideColumnsMenuItems: FC<Props> = ({
|
|
|
21
21
|
}) => {
|
|
22
22
|
const {
|
|
23
23
|
getState,
|
|
24
|
-
options: { enableColumnOrdering,
|
|
24
|
+
options: { enableColumnOrdering, onColumnVisibilityChanged },
|
|
25
25
|
setColumnOrder,
|
|
26
26
|
} = instance;
|
|
27
27
|
|
|
@@ -56,7 +56,7 @@ export const MRT_ShowHideColumnsMenuItems: FC<Props> = ({
|
|
|
56
56
|
} else {
|
|
57
57
|
column.toggleVisibility();
|
|
58
58
|
}
|
|
59
|
-
|
|
59
|
+
onColumnVisibilityChanged?.({
|
|
60
60
|
column,
|
|
61
61
|
columnVisibility,
|
|
62
62
|
instance,
|