material-react-table 1.0.0-beta.8 → 1.0.0-beta.9
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/MaterialReactTable.d.ts +6 -0
- package/dist/cjs/index.js +18 -14
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/menus/MRT_FilterOptionMenu.d.ts +2 -1
- package/dist/esm/MaterialReactTable.d.ts +6 -0
- package/dist/esm/material-react-table.esm.js +19 -15
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/menus/MRT_FilterOptionMenu.d.ts +2 -1
- package/dist/index.d.ts +6 -0
- package/package.json +1 -1
- package/src/MaterialReactTable.tsx +10 -0
- package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +7 -2
- package/src/inputs/MRT_FilterTextField.tsx +1 -5
- package/src/inputs/MRT_GlobalFilterTextField.tsx +1 -0
- package/src/menus/MRT_FilterOptionMenu.tsx +18 -1
- package/src/table/MRT_TablePaper.tsx +13 -3
|
@@ -6,7 +6,8 @@ interface Props<TData extends Record<string, any> = {}> {
|
|
|
6
6
|
header?: MRT_Header<TData>;
|
|
7
7
|
onSelect?: () => void;
|
|
8
8
|
setAnchorEl: (anchorEl: HTMLElement | null) => void;
|
|
9
|
+
setFilterValue?: (filterValue: any) => void;
|
|
9
10
|
table: MRT_TableInstance<TData>;
|
|
10
11
|
}
|
|
11
|
-
export declare const MRT_FilterOptionMenu: <TData extends Record<string, any> = {}>({ anchorEl, header, onSelect, setAnchorEl, table, }: Props<TData>) => JSX.Element;
|
|
12
|
+
export declare const MRT_FilterOptionMenu: <TData extends Record<string, any> = {}>({ anchorEl, header, onSelect, setAnchorEl, setFilterValue, table, }: Props<TData>) => JSX.Element;
|
|
12
13
|
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -660,6 +660,9 @@ declare type MaterialReactTableProps<TData extends Record<string, any> = {}> = O
|
|
|
660
660
|
positionPagination?: 'bottom' | 'top' | 'both';
|
|
661
661
|
positionToolbarAlertBanner?: 'bottom' | 'top' | 'none';
|
|
662
662
|
positionToolbarDropZone?: 'bottom' | 'top' | 'none' | 'both';
|
|
663
|
+
renderBottomToolbar?: ({ table, }: {
|
|
664
|
+
table: MRT_TableInstance<TData>;
|
|
665
|
+
}) => ReactNode | ReactNode[];
|
|
663
666
|
renderBottomToolbarCustomActions?: ({ table, }: {
|
|
664
667
|
table: MRT_TableInstance<TData>;
|
|
665
668
|
}) => ReactNode;
|
|
@@ -696,6 +699,9 @@ declare type MaterialReactTableProps<TData extends Record<string, any> = {}> = O
|
|
|
696
699
|
renderToolbarInternalActions?: ({ table, }: {
|
|
697
700
|
table: MRT_TableInstance<TData>;
|
|
698
701
|
}) => ReactNode;
|
|
702
|
+
renderTopToolbar?: ({ table, }: {
|
|
703
|
+
table: MRT_TableInstance<TData>;
|
|
704
|
+
}) => ReactNode | ReactNode[];
|
|
699
705
|
renderTopToolbarCustomActions?: ({ table, }: {
|
|
700
706
|
table: MRT_TableInstance<TData>;
|
|
701
707
|
}) => ReactNode;
|
package/package.json
CHANGED
|
@@ -783,6 +783,11 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> =
|
|
|
783
783
|
positionPagination?: 'bottom' | 'top' | 'both';
|
|
784
784
|
positionToolbarAlertBanner?: 'bottom' | 'top' | 'none';
|
|
785
785
|
positionToolbarDropZone?: 'bottom' | 'top' | 'none' | 'both';
|
|
786
|
+
renderBottomToolbar?: ({
|
|
787
|
+
table,
|
|
788
|
+
}: {
|
|
789
|
+
table: MRT_TableInstance<TData>;
|
|
790
|
+
}) => ReactNode | ReactNode[];
|
|
786
791
|
renderBottomToolbarCustomActions?: ({
|
|
787
792
|
table,
|
|
788
793
|
}: {
|
|
@@ -847,6 +852,11 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> =
|
|
|
847
852
|
}: {
|
|
848
853
|
table: MRT_TableInstance<TData>;
|
|
849
854
|
}) => ReactNode;
|
|
855
|
+
renderTopToolbar?: ({
|
|
856
|
+
table,
|
|
857
|
+
}: {
|
|
858
|
+
table: MRT_TableInstance<TData>;
|
|
859
|
+
}) => ReactNode | ReactNode[];
|
|
850
860
|
renderTopToolbarCustomActions?: ({
|
|
851
861
|
table,
|
|
852
862
|
}: {
|
|
@@ -23,7 +23,7 @@ export const MRT_ToggleGlobalFilterButton = <
|
|
|
23
23
|
refs: { searchInputRef },
|
|
24
24
|
setShowGlobalFilter,
|
|
25
25
|
} = table;
|
|
26
|
-
const { showGlobalFilter } = getState();
|
|
26
|
+
const { globalFilter, showGlobalFilter } = getState();
|
|
27
27
|
|
|
28
28
|
const handleToggleSearch = () => {
|
|
29
29
|
setShowGlobalFilter(!showGlobalFilter);
|
|
@@ -32,7 +32,12 @@ export const MRT_ToggleGlobalFilterButton = <
|
|
|
32
32
|
|
|
33
33
|
return (
|
|
34
34
|
<Tooltip arrow title={rest?.title ?? localization.showHideSearch}>
|
|
35
|
-
<IconButton
|
|
35
|
+
<IconButton
|
|
36
|
+
disabled={!!globalFilter}
|
|
37
|
+
onClick={handleToggleSearch}
|
|
38
|
+
{...rest}
|
|
39
|
+
title={undefined}
|
|
40
|
+
>
|
|
36
41
|
{showGlobalFilter ? <SearchOffIcon /> : <SearchIcon />}
|
|
37
42
|
</IconButton>
|
|
38
43
|
</Tooltip>
|
|
@@ -3,7 +3,6 @@ import React, {
|
|
|
3
3
|
FC,
|
|
4
4
|
MouseEvent,
|
|
5
5
|
useCallback,
|
|
6
|
-
useEffect,
|
|
7
6
|
useState,
|
|
8
7
|
} from 'react';
|
|
9
8
|
import {
|
|
@@ -170,10 +169,6 @@ export const MRT_FilterTextField: FC<Props> = ({
|
|
|
170
169
|
setAnchorEl(event.currentTarget);
|
|
171
170
|
};
|
|
172
171
|
|
|
173
|
-
useEffect(() => {
|
|
174
|
-
handleClear();
|
|
175
|
-
}, [columnDef._filterFn]);
|
|
176
|
-
|
|
177
172
|
if (columnDef.Filter) {
|
|
178
173
|
return <>{columnDef.Filter?.({ column, header, table })}</>;
|
|
179
174
|
}
|
|
@@ -374,6 +369,7 @@ export const MRT_FilterTextField: FC<Props> = ({
|
|
|
374
369
|
header={header}
|
|
375
370
|
setAnchorEl={setAnchorEl}
|
|
376
371
|
table={table}
|
|
372
|
+
setFilterValue={setFilterValue}
|
|
377
373
|
/>
|
|
378
374
|
</>
|
|
379
375
|
);
|
|
@@ -102,6 +102,7 @@ interface Props<TData extends Record<string, any> = {}> {
|
|
|
102
102
|
header?: MRT_Header<TData>;
|
|
103
103
|
onSelect?: () => void;
|
|
104
104
|
setAnchorEl: (anchorEl: HTMLElement | null) => void;
|
|
105
|
+
setFilterValue?: (filterValue: any) => void;
|
|
105
106
|
table: MRT_TableInstance<TData>;
|
|
106
107
|
}
|
|
107
108
|
|
|
@@ -110,6 +111,7 @@ export const MRT_FilterOptionMenu = <TData extends Record<string, any> = {}>({
|
|
|
110
111
|
header,
|
|
111
112
|
onSelect,
|
|
112
113
|
setAnchorEl,
|
|
114
|
+
setFilterValue,
|
|
113
115
|
table,
|
|
114
116
|
}: Props<TData>) => {
|
|
115
117
|
const {
|
|
@@ -152,10 +154,25 @@ export const MRT_FilterOptionMenu = <TData extends Record<string, any> = {}>({
|
|
|
152
154
|
}));
|
|
153
155
|
if (['empty', 'notEmpty'].includes(option as string)) {
|
|
154
156
|
column.setFilterValue(' ');
|
|
155
|
-
} else if (
|
|
157
|
+
} else if (
|
|
158
|
+
columnDef?.filterVariant === 'multi-select' ||
|
|
159
|
+
['arrIncludesSome', 'arrIncludesAll', 'arrIncludes'].includes(
|
|
160
|
+
option as string,
|
|
161
|
+
)
|
|
162
|
+
) {
|
|
163
|
+
column.setFilterValue([]);
|
|
164
|
+
setFilterValue?.([]);
|
|
165
|
+
} else if (
|
|
166
|
+
columnDef?.filterVariant === 'range' ||
|
|
167
|
+
['between', 'betweenInclusive', 'inNumberRange'].includes(
|
|
168
|
+
option as MRT_FilterOption,
|
|
169
|
+
)
|
|
170
|
+
) {
|
|
156
171
|
column.setFilterValue(['', '']);
|
|
172
|
+
setFilterValue?.('');
|
|
157
173
|
} else {
|
|
158
174
|
column.setFilterValue('');
|
|
175
|
+
setFilterValue?.('');
|
|
159
176
|
}
|
|
160
177
|
} else {
|
|
161
178
|
setGlobalFilterFn(option);
|
|
@@ -12,7 +12,13 @@ interface Props {
|
|
|
12
12
|
export const MRT_TablePaper: FC<Props> = ({ table }) => {
|
|
13
13
|
const {
|
|
14
14
|
getState,
|
|
15
|
-
options: {
|
|
15
|
+
options: {
|
|
16
|
+
enableBottomToolbar,
|
|
17
|
+
enableTopToolbar,
|
|
18
|
+
muiTablePaperProps,
|
|
19
|
+
renderBottomToolbar,
|
|
20
|
+
renderTopToolbar,
|
|
21
|
+
},
|
|
16
22
|
refs: { tablePaperRef },
|
|
17
23
|
} = table;
|
|
18
24
|
const { isFullScreen } = getState();
|
|
@@ -53,9 +59,13 @@ export const MRT_TablePaper: FC<Props> = ({ table }) => {
|
|
|
53
59
|
: {}),
|
|
54
60
|
}}
|
|
55
61
|
>
|
|
56
|
-
{enableTopToolbar &&
|
|
62
|
+
{(enableTopToolbar && renderTopToolbar?.({ table })) ?? (
|
|
63
|
+
<MRT_TopToolbar table={table} />
|
|
64
|
+
)}
|
|
57
65
|
<MRT_TableContainer table={table} />
|
|
58
|
-
{enableBottomToolbar &&
|
|
66
|
+
{(enableBottomToolbar && renderBottomToolbar?.({ table })) ?? (
|
|
67
|
+
<MRT_BottomToolbar table={table} />
|
|
68
|
+
)}
|
|
59
69
|
</Paper>
|
|
60
70
|
);
|
|
61
71
|
};
|