material-react-table 0.9.7 → 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 +176 -158
- package/dist/body/MRT_TableBody.d.ts +1 -1
- package/dist/body/MRT_TableBodyCell.d.ts +1 -1
- package/dist/body/MRT_TableBodyRow.d.ts +1 -1
- package/dist/body/MRT_TableDetailPanel.d.ts +1 -1
- package/dist/buttons/MRT_ColumnPinningButtons.d.ts +1 -1
- package/dist/buttons/MRT_CopyButton.d.ts +1 -1
- package/dist/buttons/MRT_EditActionButtons.d.ts +1 -1
- package/dist/buttons/MRT_ExpandAllButton.d.ts +1 -1
- package/dist/buttons/MRT_ExpandButton.d.ts +1 -1
- package/dist/buttons/MRT_FullScreenToggleButton.d.ts +1 -1
- package/dist/buttons/MRT_GrabHandleButton.d.ts +1 -1
- package/dist/buttons/MRT_ShowHideColumnsButton.d.ts +1 -1
- package/dist/buttons/MRT_ToggleColumnActionMenuButton.d.ts +1 -1
- package/dist/buttons/MRT_ToggleDensePaddingButton.d.ts +1 -1
- package/dist/buttons/MRT_ToggleFiltersButton.d.ts +1 -1
- package/dist/buttons/MRT_ToggleGlobalFilterButton.d.ts +1 -1
- package/dist/buttons/MRT_ToggleRowActionMenuButton.d.ts +1 -1
- package/dist/filtersFNs.d.ts +2 -2
- package/dist/footer/MRT_TableFooter.d.ts +1 -1
- package/dist/footer/MRT_TableFooterCell.d.ts +1 -1
- package/dist/footer/MRT_TableFooterRow.d.ts +1 -1
- package/dist/head/MRT_DraggableTableHeadCell.d.ts +1 -1
- package/dist/head/MRT_TableHead.d.ts +1 -1
- package/dist/head/MRT_TableHeadCell.d.ts +1 -1
- package/dist/head/MRT_TableHeadCellFilterContainer.d.ts +1 -1
- package/dist/head/MRT_TableHeadCellFilterLabel.d.ts +1 -1
- package/dist/head/MRT_TableHeadCellResizeHandle.d.ts +1 -1
- package/dist/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
- package/dist/head/MRT_TableHeadRow.d.ts +1 -1
- package/dist/inputs/MRT_EditCellTextField.d.ts +1 -1
- package/dist/inputs/MRT_FilterRangeFields.d.ts +1 -1
- package/dist/inputs/MRT_FilterTextField.d.ts +1 -1
- package/dist/inputs/MRT_SearchTextField.d.ts +1 -1
- package/dist/inputs/MRT_SelectCheckbox.d.ts +1 -1
- package/dist/material-react-table.cjs.development.js +607 -577
- 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 +607 -577
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/menus/MRT_ColumnActionMenu.d.ts +1 -1
- package/dist/menus/MRT_FilterOptionMenu.d.ts +1 -1
- package/dist/menus/MRT_RowActionMenu.d.ts +1 -1
- package/dist/menus/MRT_ShowHideColumnsMenu.d.ts +1 -1
- package/dist/menus/MRT_ShowHideColumnsMenuItems.d.ts +1 -1
- package/dist/table/MRT_Table.d.ts +1 -1
- package/dist/table/MRT_TableContainer.d.ts +1 -1
- package/dist/table/MRT_TablePaper.d.ts +1 -1
- package/dist/toolbar/MRT_LinearProgressBar.d.ts +1 -1
- package/dist/toolbar/MRT_TablePagination.d.ts +1 -1
- package/dist/toolbar/MRT_ToolbarAlertBanner.d.ts +1 -1
- package/dist/toolbar/MRT_ToolbarBottom.d.ts +1 -1
- package/dist/toolbar/MRT_ToolbarInternalButtons.d.ts +1 -1
- package/dist/toolbar/MRT_ToolbarTop.d.ts +1 -1
- package/dist/utils.d.ts +2 -2
- package/package.json +1 -1
- package/src/MaterialReactTable.tsx +227 -211
- package/src/body/MRT_TableBody.tsx +5 -8
- package/src/body/MRT_TableBodyCell.tsx +15 -19
- package/src/body/MRT_TableBodyRow.tsx +8 -12
- package/src/body/MRT_TableDetailPanel.tsx +13 -11
- package/src/buttons/MRT_ColumnPinningButtons.tsx +3 -6
- package/src/buttons/MRT_CopyButton.tsx +5 -9
- package/src/buttons/MRT_EditActionButtons.tsx +5 -5
- package/src/buttons/MRT_ExpandAllButton.tsx +3 -3
- package/src/buttons/MRT_ExpandButton.tsx +5 -5
- package/src/buttons/MRT_FullScreenToggleButton.tsx +6 -6
- package/src/buttons/MRT_GrabHandleButton.tsx +3 -3
- package/src/buttons/MRT_ShowHideColumnsButton.tsx +4 -7
- package/src/buttons/MRT_ToggleColumnActionMenuButton.tsx +6 -6
- package/src/buttons/MRT_ToggleDensePaddingButton.tsx +6 -6
- package/src/buttons/MRT_ToggleFiltersButton.tsx +6 -9
- package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +7 -7
- package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +6 -9
- package/src/filtersFNs.ts +2 -2
- package/src/footer/MRT_TableFooter.tsx +5 -5
- package/src/footer/MRT_TableFooterCell.tsx +6 -6
- package/src/footer/MRT_TableFooterRow.tsx +5 -8
- package/src/head/MRT_DraggableTableHeadCell.tsx +4 -7
- package/src/head/MRT_TableHead.tsx +5 -5
- package/src/head/MRT_TableHeadCell.tsx +14 -22
- package/src/head/MRT_TableHeadCellFilterContainer.tsx +6 -7
- package/src/head/MRT_TableHeadCellFilterLabel.tsx +3 -3
- package/src/head/MRT_TableHeadCellResizeHandle.tsx +3 -3
- package/src/head/MRT_TableHeadCellSortLabel.tsx +3 -6
- package/src/head/MRT_TableHeadRow.tsx +6 -6
- package/src/inputs/MRT_EditCellTextField.tsx +12 -12
- package/src/inputs/MRT_FilterRangeFields.tsx +5 -13
- package/src/inputs/MRT_FilterTextField.tsx +82 -53
- package/src/inputs/MRT_SearchTextField.tsx +17 -13
- package/src/inputs/MRT_SelectCheckbox.tsx +14 -20
- package/src/menus/MRT_ColumnActionMenu.tsx +5 -5
- package/src/menus/MRT_FilterOptionMenu.tsx +43 -36
- package/src/menus/MRT_RowActionMenu.tsx +4 -4
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +6 -6
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +9 -12
- package/src/table/MRT_Table.tsx +7 -7
- package/src/table/MRT_TableContainer.tsx +5 -8
- package/src/table/MRT_TablePaper.tsx +7 -9
- package/src/table/MRT_TableRoot.tsx +13 -21
- package/src/toolbar/MRT_LinearProgressBar.tsx +4 -7
- package/src/toolbar/MRT_TablePagination.tsx +4 -4
- package/src/toolbar/MRT_ToolbarAlertBanner.tsx +6 -8
- package/src/toolbar/MRT_ToolbarBottom.tsx +8 -8
- package/src/toolbar/MRT_ToolbarInternalButtons.tsx +10 -12
- package/src/toolbar/MRT_ToolbarTop.tsx +10 -10
- package/src/utils.ts +2 -2
- package/dist/enums.d.ts +0 -13
- package/src/enums.ts +0 -13
|
@@ -7,14 +7,14 @@ interface Props {
|
|
|
7
7
|
anchorEl: HTMLElement | null;
|
|
8
8
|
isSubMenu?: boolean;
|
|
9
9
|
setAnchorEl: (anchorEl: HTMLElement | null) => void;
|
|
10
|
-
|
|
10
|
+
instance: MRT_TableInstance;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export const MRT_ShowHideColumnsMenu: FC<Props> = ({
|
|
14
14
|
anchorEl,
|
|
15
15
|
isSubMenu,
|
|
16
16
|
setAnchorEl,
|
|
17
|
-
|
|
17
|
+
instance,
|
|
18
18
|
}) => {
|
|
19
19
|
const {
|
|
20
20
|
getAllColumns,
|
|
@@ -28,7 +28,7 @@ export const MRT_ShowHideColumnsMenu: FC<Props> = ({
|
|
|
28
28
|
getState,
|
|
29
29
|
toggleAllColumnsVisible,
|
|
30
30
|
options: { localization, enablePinning, enableColumnOrdering },
|
|
31
|
-
} =
|
|
31
|
+
} = instance;
|
|
32
32
|
|
|
33
33
|
const { isDensePadding, columnOrder, columnPinning } = getState();
|
|
34
34
|
|
|
@@ -88,14 +88,14 @@ export const MRT_ShowHideColumnsMenu: FC<Props> = ({
|
|
|
88
88
|
</Button>
|
|
89
89
|
)}
|
|
90
90
|
{!isSubMenu && enableColumnOrdering && (
|
|
91
|
-
<Button onClick={() =>
|
|
91
|
+
<Button onClick={() => instance.resetColumnOrder()}>
|
|
92
92
|
{localization.resetOrder}
|
|
93
93
|
</Button>
|
|
94
94
|
)}
|
|
95
95
|
{!isSubMenu && enablePinning && (
|
|
96
96
|
<Button
|
|
97
97
|
disabled={!getIsSomeColumnsPinned()}
|
|
98
|
-
onClick={() =>
|
|
98
|
+
onClick={() => instance.resetColumnPinning(true)}
|
|
99
99
|
>
|
|
100
100
|
{localization.unpinAll}
|
|
101
101
|
</Button>
|
|
@@ -114,7 +114,7 @@ export const MRT_ShowHideColumnsMenu: FC<Props> = ({
|
|
|
114
114
|
column={column}
|
|
115
115
|
isSubMenu={isSubMenu}
|
|
116
116
|
key={`${index}-${column.id}`}
|
|
117
|
-
|
|
117
|
+
instance={instance}
|
|
118
118
|
/>
|
|
119
119
|
))}
|
|
120
120
|
</Menu>
|
|
@@ -10,20 +10,20 @@ interface Props {
|
|
|
10
10
|
allColumns: MRT_Column[];
|
|
11
11
|
column: MRT_Column;
|
|
12
12
|
isSubMenu?: boolean;
|
|
13
|
-
|
|
13
|
+
instance: MRT_TableInstance;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export const MRT_ShowHideColumnsMenuItems: FC<Props> = ({
|
|
17
17
|
allColumns,
|
|
18
18
|
column,
|
|
19
19
|
isSubMenu,
|
|
20
|
-
|
|
20
|
+
instance,
|
|
21
21
|
}) => {
|
|
22
22
|
const {
|
|
23
23
|
getState,
|
|
24
|
-
options: { enableColumnOrdering,
|
|
24
|
+
options: { enableColumnOrdering, onColumnVisibilityChanged },
|
|
25
25
|
setColumnOrder,
|
|
26
|
-
} =
|
|
26
|
+
} = instance;
|
|
27
27
|
|
|
28
28
|
const { columnOrder, columnVisibility } = getState();
|
|
29
29
|
|
|
@@ -56,10 +56,10 @@ 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,
|
|
63
63
|
});
|
|
64
64
|
};
|
|
65
65
|
|
|
@@ -89,14 +89,11 @@ export const MRT_ShowHideColumnsMenuItems: FC<Props> = ({
|
|
|
89
89
|
!allColumns.some((col) => col.columnDefType === 'group') && (
|
|
90
90
|
<MRT_GrabHandleButton
|
|
91
91
|
ref={dragRef as Ref<HTMLButtonElement>}
|
|
92
|
-
|
|
92
|
+
instance={instance}
|
|
93
93
|
/>
|
|
94
94
|
)}
|
|
95
95
|
{!isSubMenu && column.getCanPin() && (
|
|
96
|
-
<MRT_ColumnPinningButtons
|
|
97
|
-
column={column}
|
|
98
|
-
tableInstance={tableInstance}
|
|
99
|
-
/>
|
|
96
|
+
<MRT_ColumnPinningButtons column={column} instance={instance} />
|
|
100
97
|
)}
|
|
101
98
|
<FormControlLabel
|
|
102
99
|
componentsProps={{
|
|
@@ -125,7 +122,7 @@ export const MRT_ShowHideColumnsMenuItems: FC<Props> = ({
|
|
|
125
122
|
key={`${i}-${c.id}`}
|
|
126
123
|
column={c}
|
|
127
124
|
isSubMenu={isSubMenu}
|
|
128
|
-
|
|
125
|
+
instance={instance}
|
|
129
126
|
/>
|
|
130
127
|
))}
|
|
131
128
|
</>
|
package/src/table/MRT_Table.tsx
CHANGED
|
@@ -7,10 +7,10 @@ import { MRT_TableInstance } from '..';
|
|
|
7
7
|
|
|
8
8
|
interface Props {
|
|
9
9
|
tableContainerRef: RefObject<HTMLDivElement>;
|
|
10
|
-
|
|
10
|
+
instance: MRT_TableInstance;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export const MRT_Table: FC<Props> = ({ tableContainerRef,
|
|
13
|
+
export const MRT_Table: FC<Props> = ({ tableContainerRef, instance }) => {
|
|
14
14
|
const {
|
|
15
15
|
getState,
|
|
16
16
|
options: {
|
|
@@ -21,13 +21,13 @@ export const MRT_Table: FC<Props> = ({ tableContainerRef, tableInstance }) => {
|
|
|
21
21
|
enableTableHead,
|
|
22
22
|
muiTableProps,
|
|
23
23
|
},
|
|
24
|
-
} =
|
|
24
|
+
} = instance;
|
|
25
25
|
|
|
26
26
|
const { isFullScreen } = getState();
|
|
27
27
|
|
|
28
28
|
const tableProps =
|
|
29
29
|
muiTableProps instanceof Function
|
|
30
|
-
? muiTableProps({
|
|
30
|
+
? muiTableProps({ instance })
|
|
31
31
|
: muiTableProps;
|
|
32
32
|
|
|
33
33
|
return (
|
|
@@ -42,12 +42,12 @@ export const MRT_Table: FC<Props> = ({ tableContainerRef, tableInstance }) => {
|
|
|
42
42
|
...tableProps?.sx,
|
|
43
43
|
}}
|
|
44
44
|
>
|
|
45
|
-
{enableTableHead && <MRT_TableHead
|
|
45
|
+
{enableTableHead && <MRT_TableHead instance={instance} />}
|
|
46
46
|
<MRT_TableBody
|
|
47
47
|
tableContainerRef={tableContainerRef}
|
|
48
|
-
|
|
48
|
+
instance={instance}
|
|
49
49
|
/>
|
|
50
|
-
{enableTableFooter && <MRT_TableFooter
|
|
50
|
+
{enableTableFooter && <MRT_TableFooter instance={instance} />}
|
|
51
51
|
</Table>
|
|
52
52
|
);
|
|
53
53
|
};
|
|
@@ -7,10 +7,10 @@ const useIsomorphicLayoutEffect =
|
|
|
7
7
|
typeof window !== 'undefined' ? useLayoutEffect : useEffect;
|
|
8
8
|
|
|
9
9
|
interface Props {
|
|
10
|
-
|
|
10
|
+
instance: MRT_TableInstance;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export const MRT_TableContainer: FC<Props> = ({
|
|
13
|
+
export const MRT_TableContainer: FC<Props> = ({ instance }) => {
|
|
14
14
|
const {
|
|
15
15
|
getState,
|
|
16
16
|
options: {
|
|
@@ -19,7 +19,7 @@ export const MRT_TableContainer: FC<Props> = ({ tableInstance }) => {
|
|
|
19
19
|
muiTableContainerProps,
|
|
20
20
|
tableId,
|
|
21
21
|
},
|
|
22
|
-
} =
|
|
22
|
+
} = instance;
|
|
23
23
|
|
|
24
24
|
const { isFullScreen } = getState();
|
|
25
25
|
|
|
@@ -27,7 +27,7 @@ export const MRT_TableContainer: FC<Props> = ({ tableInstance }) => {
|
|
|
27
27
|
|
|
28
28
|
const tableContainerProps =
|
|
29
29
|
muiTableContainerProps instanceof Function
|
|
30
|
-
? muiTableContainerProps({
|
|
30
|
+
? muiTableContainerProps({ instance })
|
|
31
31
|
: muiTableContainerProps;
|
|
32
32
|
|
|
33
33
|
useIsomorphicLayoutEffect(() => {
|
|
@@ -68,10 +68,7 @@ export const MRT_TableContainer: FC<Props> = ({ tableInstance }) => {
|
|
|
68
68
|
...tableContainerProps?.style,
|
|
69
69
|
}}
|
|
70
70
|
>
|
|
71
|
-
<MRT_Table
|
|
72
|
-
tableContainerRef={tableContainerRef}
|
|
73
|
-
tableInstance={tableInstance}
|
|
74
|
-
/>
|
|
71
|
+
<MRT_Table tableContainerRef={tableContainerRef} instance={instance} />
|
|
75
72
|
</TableContainer>
|
|
76
73
|
);
|
|
77
74
|
};
|
|
@@ -8,14 +8,14 @@ import { MRT_TableContainer } from './MRT_TableContainer';
|
|
|
8
8
|
import type { MRT_TableInstance } from '..';
|
|
9
9
|
|
|
10
10
|
interface Props {
|
|
11
|
-
|
|
11
|
+
instance: MRT_TableInstance;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
export const MRT_TablePaper: FC<Props> = ({
|
|
14
|
+
export const MRT_TablePaper: FC<Props> = ({ instance }) => {
|
|
15
15
|
const {
|
|
16
16
|
getState,
|
|
17
17
|
options: { enableToolbarBottom, enableToolbarTop, muiTablePaperProps },
|
|
18
|
-
} =
|
|
18
|
+
} = instance;
|
|
19
19
|
|
|
20
20
|
const { isFullScreen } = getState();
|
|
21
21
|
|
|
@@ -31,7 +31,7 @@ export const MRT_TablePaper: FC<Props> = ({ tableInstance }) => {
|
|
|
31
31
|
|
|
32
32
|
const tablePaperProps =
|
|
33
33
|
muiTablePaperProps instanceof Function
|
|
34
|
-
? muiTablePaperProps({
|
|
34
|
+
? muiTablePaperProps({ instance })
|
|
35
35
|
: muiTablePaperProps;
|
|
36
36
|
|
|
37
37
|
return (
|
|
@@ -50,11 +50,9 @@ export const MRT_TablePaper: FC<Props> = ({ tableInstance }) => {
|
|
|
50
50
|
width: isFullScreen ? '100vw' : undefined,
|
|
51
51
|
}}
|
|
52
52
|
>
|
|
53
|
-
{enableToolbarTop && <MRT_ToolbarTop
|
|
54
|
-
<MRT_TableContainer
|
|
55
|
-
{enableToolbarBottom &&
|
|
56
|
-
<MRT_ToolbarBottom tableInstance={tableInstance} />
|
|
57
|
-
)}
|
|
53
|
+
{enableToolbarTop && <MRT_ToolbarTop instance={instance} />}
|
|
54
|
+
<MRT_TableContainer instance={instance} />
|
|
55
|
+
{enableToolbarBottom && <MRT_ToolbarBottom instance={instance} />}
|
|
58
56
|
</Paper>
|
|
59
57
|
</DndProvider>
|
|
60
58
|
);
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
MRT_Cell,
|
|
19
19
|
MRT_ColumnDef,
|
|
20
20
|
MRT_FilterFn,
|
|
21
|
+
MRT_FILTER_OPTION,
|
|
21
22
|
MRT_Row,
|
|
22
23
|
MRT_TableInstance,
|
|
23
24
|
MRT_TableState,
|
|
@@ -35,7 +36,6 @@ import {
|
|
|
35
36
|
getAllLeafColumnDefs,
|
|
36
37
|
} from '../utils';
|
|
37
38
|
import { defaultFilterFNs } from '../filtersFNs';
|
|
38
|
-
import { MRT_FILTER_OPTION } from '../enums';
|
|
39
39
|
import { Box, Dialog, Grow } from '@mui/material';
|
|
40
40
|
|
|
41
41
|
export const MRT_TableRoot = <D extends Record<string, any> = {}>(
|
|
@@ -124,16 +124,14 @@ export const MRT_TableRoot = <D extends Record<string, any> = {}>(
|
|
|
124
124
|
[c.id as string]:
|
|
125
125
|
c.filterFn ??
|
|
126
126
|
initialState?.currentFilterFns?.[c.id] ??
|
|
127
|
-
(!!c.filterSelectOptions?.length
|
|
128
|
-
? MRT_FILTER_OPTION.EQUALS
|
|
129
|
-
: MRT_FILTER_OPTION.FUZZY),
|
|
127
|
+
(!!c.filterSelectOptions?.length ? 'equals' : 'fuzzy'),
|
|
130
128
|
})),
|
|
131
129
|
),
|
|
132
130
|
);
|
|
133
131
|
|
|
134
132
|
const [currentGlobalFilterFn, setCurrentGlobalFilterFn] = useState<
|
|
135
133
|
MRT_FILTER_OPTION | FilterFn<ReactTableGenerics> | string | number | symbol
|
|
136
|
-
>(props.globalFilterFn ??
|
|
134
|
+
>(props.globalFilterFn ?? 'fuzzy');
|
|
137
135
|
|
|
138
136
|
const table = useMemo(
|
|
139
137
|
() =>
|
|
@@ -163,7 +161,7 @@ export const MRT_TableRoot = <D extends Record<string, any> = {}>(
|
|
|
163
161
|
Cell: ({ cell }) => (
|
|
164
162
|
<MRT_ToggleRowActionMenuButton
|
|
165
163
|
row={cell.row as any}
|
|
166
|
-
|
|
164
|
+
instance={instance}
|
|
167
165
|
/>
|
|
168
166
|
),
|
|
169
167
|
header: props.localization?.actions,
|
|
@@ -175,14 +173,11 @@ export const MRT_TableRoot = <D extends Record<string, any> = {}>(
|
|
|
175
173
|
showExpandColumn &&
|
|
176
174
|
createDisplayColumn(table, {
|
|
177
175
|
Cell: ({ cell }) => (
|
|
178
|
-
<MRT_ExpandButton
|
|
179
|
-
row={cell.row as any}
|
|
180
|
-
tableInstance={tableInstance}
|
|
181
|
-
/>
|
|
176
|
+
<MRT_ExpandButton row={cell.row as any} instance={instance} />
|
|
182
177
|
),
|
|
183
178
|
Header: () =>
|
|
184
179
|
props.enableExpandAll ? (
|
|
185
|
-
<MRT_ExpandAllButton
|
|
180
|
+
<MRT_ExpandAllButton instance={instance} />
|
|
186
181
|
) : null,
|
|
187
182
|
header: props.localization?.expand,
|
|
188
183
|
id: 'mrt-expand',
|
|
@@ -193,14 +188,11 @@ export const MRT_TableRoot = <D extends Record<string, any> = {}>(
|
|
|
193
188
|
props.enableRowSelection &&
|
|
194
189
|
createDisplayColumn(table, {
|
|
195
190
|
Cell: ({ cell }) => (
|
|
196
|
-
<MRT_SelectCheckbox
|
|
197
|
-
row={cell.row as any}
|
|
198
|
-
tableInstance={tableInstance}
|
|
199
|
-
/>
|
|
191
|
+
<MRT_SelectCheckbox row={cell.row as any} instance={instance} />
|
|
200
192
|
),
|
|
201
193
|
Header: () =>
|
|
202
194
|
props.enableSelectAll ? (
|
|
203
|
-
<MRT_SelectCheckbox selectAll
|
|
195
|
+
<MRT_SelectCheckbox selectAll instance={instance} />
|
|
204
196
|
) : null,
|
|
205
197
|
header: props.localization?.select,
|
|
206
198
|
id: 'mrt-select',
|
|
@@ -265,7 +257,7 @@ export const MRT_TableRoot = <D extends Record<string, any> = {}>(
|
|
|
265
257
|
);
|
|
266
258
|
|
|
267
259
|
//@ts-ignore
|
|
268
|
-
const
|
|
260
|
+
const instance = {
|
|
269
261
|
//@ts-ignore
|
|
270
262
|
...useTableInstance(table, {
|
|
271
263
|
...props,
|
|
@@ -311,7 +303,7 @@ export const MRT_TableRoot = <D extends Record<string, any> = {}>(
|
|
|
311
303
|
}
|
|
312
304
|
const itemArgs: [string, string] = [
|
|
313
305
|
`mrt-${tableId}-table-state`,
|
|
314
|
-
JSON.stringify(
|
|
306
|
+
JSON.stringify(instance.getState()),
|
|
315
307
|
];
|
|
316
308
|
if (props.persistentStateMode === 'localStorage') {
|
|
317
309
|
localStorage.setItem(...itemArgs);
|
|
@@ -322,7 +314,7 @@ export const MRT_TableRoot = <D extends Record<string, any> = {}>(
|
|
|
322
314
|
props.enablePersistentState,
|
|
323
315
|
props.tableId,
|
|
324
316
|
props.persistentStateMode,
|
|
325
|
-
|
|
317
|
+
instance,
|
|
326
318
|
]);
|
|
327
319
|
|
|
328
320
|
return (
|
|
@@ -337,9 +329,9 @@ export const MRT_TableRoot = <D extends Record<string, any> = {}>(
|
|
|
337
329
|
open={isFullScreen}
|
|
338
330
|
transitionDuration={400}
|
|
339
331
|
>
|
|
340
|
-
<MRT_TablePaper
|
|
332
|
+
<MRT_TablePaper instance={instance} />
|
|
341
333
|
</Dialog>
|
|
342
|
-
{!isFullScreen && <MRT_TablePaper
|
|
334
|
+
{!isFullScreen && <MRT_TablePaper instance={instance} />}
|
|
343
335
|
</>
|
|
344
336
|
);
|
|
345
337
|
};
|
|
@@ -4,23 +4,20 @@ import { MRT_TableInstance } from '..';
|
|
|
4
4
|
|
|
5
5
|
interface Props {
|
|
6
6
|
alignTo: 'bottom' | 'top';
|
|
7
|
-
|
|
7
|
+
instance: MRT_TableInstance;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
export const MRT_LinearProgressBar: FC<Props> = ({
|
|
11
|
-
alignTo,
|
|
12
|
-
tableInstance,
|
|
13
|
-
}) => {
|
|
10
|
+
export const MRT_LinearProgressBar: FC<Props> = ({ alignTo, instance }) => {
|
|
14
11
|
const {
|
|
15
12
|
options: { muiLinearProgressProps },
|
|
16
13
|
getState,
|
|
17
|
-
} =
|
|
14
|
+
} = instance;
|
|
18
15
|
|
|
19
16
|
const { isLoading, showProgressBars } = getState();
|
|
20
17
|
|
|
21
18
|
const linearProgressProps =
|
|
22
19
|
muiLinearProgressProps instanceof Function
|
|
23
|
-
? muiLinearProgressProps({
|
|
20
|
+
? muiLinearProgressProps({ instance })
|
|
24
21
|
: muiLinearProgressProps;
|
|
25
22
|
|
|
26
23
|
return (
|
|
@@ -3,17 +3,17 @@ import { TablePagination } from '@mui/material';
|
|
|
3
3
|
import { MRT_TableInstance } from '..';
|
|
4
4
|
|
|
5
5
|
interface Props {
|
|
6
|
-
|
|
6
|
+
instance: MRT_TableInstance;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export const MRT_TablePagination: FC<Props> = ({
|
|
9
|
+
export const MRT_TablePagination: FC<Props> = ({ instance }) => {
|
|
10
10
|
const {
|
|
11
11
|
getPrePaginationRowModel,
|
|
12
12
|
getState,
|
|
13
13
|
setPageIndex,
|
|
14
14
|
setPageSize,
|
|
15
15
|
options: { muiTablePaginationProps },
|
|
16
|
-
} =
|
|
16
|
+
} = instance;
|
|
17
17
|
|
|
18
18
|
const {
|
|
19
19
|
pagination: { pageSize = 10, pageIndex = 0 },
|
|
@@ -21,7 +21,7 @@ export const MRT_TablePagination: FC<Props> = ({ tableInstance }) => {
|
|
|
21
21
|
|
|
22
22
|
const tablePaginationProps =
|
|
23
23
|
muiTablePaginationProps instanceof Function
|
|
24
|
-
? muiTablePaginationProps({
|
|
24
|
+
? muiTablePaginationProps({ instance })
|
|
25
25
|
: muiTablePaginationProps;
|
|
26
26
|
|
|
27
27
|
const handleChangeRowsPerPage = (event: ChangeEvent<HTMLInputElement>) => {
|
|
@@ -4,25 +4,25 @@ import { MRT_TableInstance } from '..';
|
|
|
4
4
|
|
|
5
5
|
interface Props {
|
|
6
6
|
stackAlertBanner?: boolean;
|
|
7
|
-
|
|
7
|
+
instance: MRT_TableInstance;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
export const MRT_ToolbarAlertBanner: FC<Props> = ({
|
|
11
11
|
stackAlertBanner,
|
|
12
|
-
|
|
12
|
+
instance,
|
|
13
13
|
}) => {
|
|
14
14
|
const {
|
|
15
15
|
getPrePaginationRowModel,
|
|
16
16
|
getSelectedRowModel,
|
|
17
17
|
getState,
|
|
18
18
|
options: { localization, muiTableToolbarAlertBannerProps },
|
|
19
|
-
} =
|
|
19
|
+
} = instance;
|
|
20
20
|
|
|
21
21
|
const { grouping } = getState();
|
|
22
22
|
|
|
23
23
|
const alertProps =
|
|
24
24
|
muiTableToolbarAlertBannerProps instanceof Function
|
|
25
|
-
? muiTableToolbarAlertBannerProps({
|
|
25
|
+
? muiTableToolbarAlertBannerProps({ instance })
|
|
26
26
|
: muiTableToolbarAlertBannerProps;
|
|
27
27
|
|
|
28
28
|
const selectMessage =
|
|
@@ -47,10 +47,8 @@ export const MRT_ToolbarAlertBanner: FC<Props> = ({
|
|
|
47
47
|
{index > 0 ? localization.thenBy : ''}
|
|
48
48
|
<Chip
|
|
49
49
|
color="secondary"
|
|
50
|
-
label={
|
|
51
|
-
onDelete={() =>
|
|
52
|
-
tableInstance.getColumn(columnId).toggleGrouping()
|
|
53
|
-
}
|
|
50
|
+
label={instance.getColumn(columnId).columnDef.header}
|
|
51
|
+
onDelete={() => instance.getColumn(columnId).toggleGrouping()}
|
|
54
52
|
/>
|
|
55
53
|
</Fragment>
|
|
56
54
|
))}
|
|
@@ -8,10 +8,10 @@ import { commonToolbarStyles } from './MRT_ToolbarTop';
|
|
|
8
8
|
import { MRT_TableInstance } from '..';
|
|
9
9
|
|
|
10
10
|
interface Props {
|
|
11
|
-
|
|
11
|
+
instance: MRT_TableInstance;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
export const MRT_ToolbarBottom: FC<Props> = ({
|
|
14
|
+
export const MRT_ToolbarBottom: FC<Props> = ({ instance }) => {
|
|
15
15
|
const {
|
|
16
16
|
getState,
|
|
17
17
|
options: {
|
|
@@ -24,7 +24,7 @@ export const MRT_ToolbarBottom: FC<Props> = ({ tableInstance }) => {
|
|
|
24
24
|
positionToolbarAlertBanner,
|
|
25
25
|
renderToolbarCustomActions,
|
|
26
26
|
},
|
|
27
|
-
} =
|
|
27
|
+
} = instance;
|
|
28
28
|
|
|
29
29
|
const { isFullScreen } = getState();
|
|
30
30
|
|
|
@@ -32,7 +32,7 @@ export const MRT_ToolbarBottom: FC<Props> = ({ tableInstance }) => {
|
|
|
32
32
|
|
|
33
33
|
const toolbarProps =
|
|
34
34
|
muiTableToolbarBottomProps instanceof Function
|
|
35
|
-
? muiTableToolbarBottomProps({
|
|
35
|
+
? muiTableToolbarBottomProps({ instance })
|
|
36
36
|
: muiTableToolbarBottomProps;
|
|
37
37
|
|
|
38
38
|
const stackAlertBanner =
|
|
@@ -58,9 +58,9 @@ export const MRT_ToolbarBottom: FC<Props> = ({ tableInstance }) => {
|
|
|
58
58
|
} as any)
|
|
59
59
|
}
|
|
60
60
|
>
|
|
61
|
-
<MRT_LinearProgressBar alignTo="top"
|
|
61
|
+
<MRT_LinearProgressBar alignTo="top" instance={instance} />
|
|
62
62
|
{positionToolbarAlertBanner === 'bottom' && (
|
|
63
|
-
<MRT_ToolbarAlertBanner
|
|
63
|
+
<MRT_ToolbarAlertBanner instance={instance} />
|
|
64
64
|
)}
|
|
65
65
|
<Box
|
|
66
66
|
sx={{
|
|
@@ -73,13 +73,13 @@ export const MRT_ToolbarBottom: FC<Props> = ({ tableInstance }) => {
|
|
|
73
73
|
}}
|
|
74
74
|
>
|
|
75
75
|
{enableToolbarInternalActions && positionToolbarActions === 'bottom' ? (
|
|
76
|
-
<MRT_ToolbarInternalButtons
|
|
76
|
+
<MRT_ToolbarInternalButtons instance={instance} />
|
|
77
77
|
) : (
|
|
78
78
|
<span />
|
|
79
79
|
)}
|
|
80
80
|
{enablePagination &&
|
|
81
81
|
['bottom', 'both'].includes(positionPagination ?? '') && (
|
|
82
|
-
<MRT_TablePagination
|
|
82
|
+
<MRT_TablePagination instance={instance} />
|
|
83
83
|
)}
|
|
84
84
|
</Box>
|
|
85
85
|
</Toolbar>
|
|
@@ -9,10 +9,10 @@ import { MRT_TableInstance } from '..';
|
|
|
9
9
|
import { MRT_SearchTextField } from '../inputs/MRT_SearchTextField';
|
|
10
10
|
|
|
11
11
|
interface Props {
|
|
12
|
-
|
|
12
|
+
instance: MRT_TableInstance;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
export const MRT_ToolbarInternalButtons: FC<Props> = ({
|
|
15
|
+
export const MRT_ToolbarInternalButtons: FC<Props> = ({ instance }) => {
|
|
16
16
|
const {
|
|
17
17
|
options: {
|
|
18
18
|
enableColumnFilters,
|
|
@@ -24,7 +24,7 @@ export const MRT_ToolbarInternalButtons: FC<Props> = ({ tableInstance }) => {
|
|
|
24
24
|
positionGlobalFilter,
|
|
25
25
|
renderToolbarInternalActions,
|
|
26
26
|
},
|
|
27
|
-
} =
|
|
27
|
+
} = instance;
|
|
28
28
|
|
|
29
29
|
return (
|
|
30
30
|
<Box
|
|
@@ -40,26 +40,24 @@ export const MRT_ToolbarInternalButtons: FC<Props> = ({ tableInstance }) => {
|
|
|
40
40
|
MRT_ToggleDensePaddingButton,
|
|
41
41
|
MRT_ToggleFiltersButton,
|
|
42
42
|
MRT_ToggleGlobalFilterButton,
|
|
43
|
-
|
|
43
|
+
instance,
|
|
44
44
|
}) ?? (
|
|
45
45
|
<>
|
|
46
46
|
{enableGlobalFilter && positionGlobalFilter === 'right' && (
|
|
47
|
-
<MRT_SearchTextField
|
|
47
|
+
<MRT_SearchTextField instance={instance} />
|
|
48
48
|
)}
|
|
49
49
|
{enableFilters && enableGlobalFilter && (
|
|
50
|
-
<MRT_ToggleGlobalFilterButton
|
|
50
|
+
<MRT_ToggleGlobalFilterButton instance={instance} />
|
|
51
51
|
)}
|
|
52
52
|
{enableFilters && enableColumnFilters && (
|
|
53
|
-
<MRT_ToggleFiltersButton
|
|
54
|
-
)}
|
|
55
|
-
{enableHiding && (
|
|
56
|
-
<MRT_ShowHideColumnsButton tableInstance={tableInstance} />
|
|
53
|
+
<MRT_ToggleFiltersButton instance={instance} />
|
|
57
54
|
)}
|
|
55
|
+
{enableHiding && <MRT_ShowHideColumnsButton instance={instance} />}
|
|
58
56
|
{enableDensePaddingToggle && (
|
|
59
|
-
<MRT_ToggleDensePaddingButton
|
|
57
|
+
<MRT_ToggleDensePaddingButton instance={instance} />
|
|
60
58
|
)}
|
|
61
59
|
{enableFullScreenToggle && (
|
|
62
|
-
<MRT_FullScreenToggleButton
|
|
60
|
+
<MRT_FullScreenToggleButton instance={instance} />
|
|
63
61
|
)}
|
|
64
62
|
</>
|
|
65
63
|
)}
|
|
@@ -20,10 +20,10 @@ export const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({
|
|
|
20
20
|
});
|
|
21
21
|
|
|
22
22
|
interface Props {
|
|
23
|
-
|
|
23
|
+
instance: MRT_TableInstance;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
export const MRT_ToolbarTop: FC<Props> = ({
|
|
26
|
+
export const MRT_ToolbarTop: FC<Props> = ({ instance }) => {
|
|
27
27
|
const {
|
|
28
28
|
getState,
|
|
29
29
|
options: {
|
|
@@ -38,7 +38,7 @@ export const MRT_ToolbarTop: FC<Props> = ({ tableInstance }) => {
|
|
|
38
38
|
positionToolbarAlertBanner,
|
|
39
39
|
renderToolbarCustomActions,
|
|
40
40
|
},
|
|
41
|
-
} =
|
|
41
|
+
} = instance;
|
|
42
42
|
|
|
43
43
|
const { isFullScreen, showGlobalFilter } = getState();
|
|
44
44
|
|
|
@@ -46,7 +46,7 @@ export const MRT_ToolbarTop: FC<Props> = ({ tableInstance }) => {
|
|
|
46
46
|
|
|
47
47
|
const toolbarProps =
|
|
48
48
|
muiTableToolbarTopProps instanceof Function
|
|
49
|
-
? muiTableToolbarTopProps({
|
|
49
|
+
? muiTableToolbarTopProps({ instance })
|
|
50
50
|
: muiTableToolbarTopProps;
|
|
51
51
|
|
|
52
52
|
const stackAlertBanner =
|
|
@@ -71,7 +71,7 @@ export const MRT_ToolbarTop: FC<Props> = ({ tableInstance }) => {
|
|
|
71
71
|
{positionToolbarAlertBanner === 'top' && (
|
|
72
72
|
<MRT_ToolbarAlertBanner
|
|
73
73
|
stackAlertBanner={stackAlertBanner}
|
|
74
|
-
|
|
74
|
+
instance={instance}
|
|
75
75
|
/>
|
|
76
76
|
)}
|
|
77
77
|
<Box
|
|
@@ -87,20 +87,20 @@ export const MRT_ToolbarTop: FC<Props> = ({ tableInstance }) => {
|
|
|
87
87
|
}}
|
|
88
88
|
>
|
|
89
89
|
{enableGlobalFilter && positionGlobalFilter === 'left' && (
|
|
90
|
-
<MRT_SearchTextField
|
|
90
|
+
<MRT_SearchTextField instance={instance} />
|
|
91
91
|
)}
|
|
92
|
-
{renderToolbarCustomActions?.({
|
|
92
|
+
{renderToolbarCustomActions?.({ instance }) ?? <span />}
|
|
93
93
|
{enableToolbarInternalActions && positionToolbarActions === 'top' && (
|
|
94
|
-
<MRT_ToolbarInternalButtons
|
|
94
|
+
<MRT_ToolbarInternalButtons instance={instance} />
|
|
95
95
|
)}
|
|
96
96
|
</Box>
|
|
97
97
|
<div>
|
|
98
98
|
{enablePagination &&
|
|
99
99
|
['top', 'both'].includes(positionPagination ?? '') && (
|
|
100
|
-
<MRT_TablePagination
|
|
100
|
+
<MRT_TablePagination instance={instance} />
|
|
101
101
|
)}
|
|
102
102
|
</div>
|
|
103
|
-
<MRT_LinearProgressBar alignTo="bottom"
|
|
103
|
+
<MRT_LinearProgressBar alignTo="bottom" instance={instance} />
|
|
104
104
|
</Toolbar>
|
|
105
105
|
);
|
|
106
106
|
};
|
package/src/utils.ts
CHANGED
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
Updater,
|
|
6
6
|
} from '@tanstack/react-table';
|
|
7
7
|
import { MRT_Column, MRT_ColumnDef, MRT_FilterFn } from '.';
|
|
8
|
-
import { MRT_FILTER_OPTION } from './enums';
|
|
9
8
|
import { defaultFilterFNs } from './filtersFNs';
|
|
10
9
|
|
|
11
10
|
export const getAllLeafColumnDefs = (
|
|
@@ -49,7 +48,8 @@ export const createDataColumn = <D extends Record<string, any> = {}>(
|
|
|
49
48
|
filterFn:
|
|
50
49
|
currentFilterFns[column.id] instanceof Function
|
|
51
50
|
? currentFilterFns[column.id]
|
|
52
|
-
:
|
|
51
|
+
: // @ts-ignore
|
|
52
|
+
defaultFilterFNs[currentFilterFns[column.id]],
|
|
53
53
|
...column,
|
|
54
54
|
}) as any;
|
|
55
55
|
|
package/dist/enums.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare enum MRT_FILTER_OPTION {
|
|
2
|
-
BETWEEN = "between",
|
|
3
|
-
CONTAINS = "contains",
|
|
4
|
-
EMPTY = "empty",
|
|
5
|
-
ENDS_WITH = "endsWith",
|
|
6
|
-
EQUALS = "equals",
|
|
7
|
-
FUZZY = "fuzzy",
|
|
8
|
-
GREATER_THAN = "greaterThan",
|
|
9
|
-
LESS_THAN = "lessThan",
|
|
10
|
-
NOT_EMPTY = "notEmpty",
|
|
11
|
-
NOT_EQUALS = "notEquals",
|
|
12
|
-
STARTS_WITH = "startsWith"
|
|
13
|
-
}
|