material-react-table 0.6.10 → 0.7.0-alpha.11
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 +29 -21
- package/dist/MaterialReactTable.d.ts +311 -110
- package/dist/body/MRT_TableBody.d.ts +3 -0
- package/dist/body/MRT_TableBodyCell.d.ts +2 -11
- package/dist/body/MRT_TableBodyRow.d.ts +3 -1
- package/dist/body/MRT_TableDetailPanel.d.ts +2 -1
- package/dist/buttons/MRT_CopyButton.d.ts +2 -1
- package/dist/buttons/MRT_EditActionButtons.d.ts +2 -1
- package/dist/buttons/MRT_ExpandAllButton.d.ts +2 -0
- package/dist/buttons/MRT_ExpandButton.d.ts +2 -1
- package/dist/buttons/MRT_FullScreenToggleButton.d.ts +2 -0
- package/dist/buttons/MRT_ShowHideColumnsButton.d.ts +2 -0
- package/dist/buttons/MRT_ToggleColumnActionMenuButton.d.ts +3 -2
- package/dist/buttons/MRT_ToggleDensePaddingButton.d.ts +2 -0
- package/dist/buttons/MRT_ToggleFiltersButton.d.ts +2 -0
- package/dist/buttons/MRT_ToggleRowActionMenuButton.d.ts +2 -1
- package/dist/buttons/MRT_ToggleSearchButton.d.ts +2 -0
- package/dist/footer/MRT_TableFooter.d.ts +3 -0
- package/dist/footer/MRT_TableFooterCell.d.ts +3 -2
- package/dist/footer/MRT_TableFooterRow.d.ts +2 -1
- package/dist/head/MRT_TableHead.d.ts +3 -0
- package/dist/head/MRT_TableHeadCell.d.ts +4 -18
- package/dist/head/MRT_TableHeadRow.d.ts +2 -1
- package/dist/icons.d.ts +1 -1
- package/dist/inputs/MRT_EditCellTextField.d.ts +2 -1
- package/dist/inputs/MRT_FilterTextField.d.ts +3 -2
- package/dist/inputs/MRT_SearchTextField.d.ts +2 -0
- package/dist/inputs/MRT_SelectCheckbox.d.ts +2 -1
- package/dist/localization.d.ts +8 -2
- package/dist/material-react-table.cjs.development.js +2253 -2482
- 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 +2254 -2483
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/menus/MRT_ColumnActionMenu.d.ts +3 -2
- package/dist/menus/MRT_FilterTypeMenu.d.ts +4 -3
- package/dist/menus/MRT_RowActionMenu.d.ts +3 -2
- package/dist/menus/MRT_ShowHideColumnsMenu.d.ts +2 -0
- package/dist/menus/MRT_ShowHideColumnsMenuItems.d.ts +2 -1
- package/dist/table/MRT_Table.d.ts +3 -0
- package/dist/table/MRT_TableContainer.d.ts +2 -0
- package/dist/table/MRT_TablePaper.d.ts +7 -0
- package/dist/table/MRT_TableRoot.d.ts +3 -0
- package/dist/toolbar/MRT_LinearProgressBar.d.ts +2 -0
- package/dist/toolbar/MRT_TablePagination.d.ts +2 -0
- package/dist/toolbar/MRT_ToolbarAlertBanner.d.ts +2 -0
- package/dist/toolbar/MRT_ToolbarBottom.d.ts +2 -0
- package/dist/toolbar/MRT_ToolbarInternalButtons.d.ts +2 -0
- package/dist/toolbar/MRT_ToolbarTop.d.ts +4 -2
- package/dist/utils.d.ts +12 -2
- package/package.json +29 -30
- package/src/MaterialReactTable.tsx +615 -302
- package/src/body/MRT_TableBody.tsx +26 -22
- package/src/body/MRT_TableBodyCell.tsx +78 -60
- package/src/body/MRT_TableBodyRow.tsx +37 -76
- package/src/body/MRT_TableDetailPanel.tsx +21 -17
- package/src/buttons/MRT_CopyButton.tsx +14 -8
- package/src/buttons/MRT_EditActionButtons.tsx +16 -13
- package/src/buttons/MRT_ExpandAllButton.tsx +24 -9
- package/src/buttons/MRT_ExpandButton.tsx +22 -15
- package/src/buttons/MRT_FullScreenToggleButton.tsx +18 -11
- package/src/buttons/MRT_ShowHideColumnsButton.tsx +18 -7
- package/src/buttons/MRT_ToggleColumnActionMenuButton.tsx +22 -11
- package/src/buttons/MRT_ToggleDensePaddingButton.tsx +18 -11
- package/src/buttons/MRT_ToggleFiltersButton.tsx +16 -9
- package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +30 -25
- package/src/buttons/MRT_ToggleSearchButton.tsx +24 -12
- package/src/footer/MRT_TableFooter.tsx +24 -8
- package/src/footer/MRT_TableFooterCell.tsx +34 -26
- package/src/footer/MRT_TableFooterRow.tsx +21 -39
- package/src/head/MRT_TableHead.tsx +24 -8
- package/src/head/MRT_TableHeadCell.tsx +183 -141
- package/src/head/MRT_TableHeadRow.tsx +16 -104
- package/src/icons.ts +3 -3
- package/src/inputs/MRT_EditCellTextField.tsx +36 -24
- package/src/inputs/MRT_FilterTextField.tsx +52 -31
- package/src/inputs/MRT_SearchTextField.tsx +46 -24
- package/src/inputs/MRT_SelectCheckbox.tsx +42 -30
- package/src/localization.ts +14 -2
- package/src/menus/MRT_ColumnActionMenu.tsx +128 -68
- package/src/menus/MRT_FilterTypeMenu.tsx +23 -20
- package/src/menus/MRT_RowActionMenu.tsx +22 -15
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +52 -20
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +27 -17
- package/src/table/MRT_Table.tsx +25 -15
- package/src/table/MRT_TableContainer.tsx +106 -45
- package/src/table/MRT_TablePaper.tsx +65 -0
- package/src/table/MRT_TableRoot.tsx +240 -0
- package/src/toolbar/MRT_LinearProgressBar.tsx +10 -7
- package/src/toolbar/MRT_TablePagination.tsx +33 -19
- package/src/toolbar/MRT_ToolbarAlertBanner.tsx +33 -20
- package/src/toolbar/MRT_ToolbarBottom.tsx +32 -21
- package/src/toolbar/MRT_ToolbarInternalButtons.tsx +35 -20
- package/src/toolbar/MRT_ToolbarTop.tsx +36 -29
- package/src/utils.ts +37 -8
- package/dist/head/MRT_TableHeadCellActions.d.ts +0 -5
- package/dist/table/MRT_TableSpacerCell.d.ts +0 -6
- package/dist/useMRT.d.ts +0 -28
- package/src/@types/faker.d.ts +0 -4
- package/src/@types/react-table-config.d.ts +0 -53
- package/src/head/MRT_TableHeadCellActions.tsx +0 -29
- package/src/table/MRT_TableSpacerCell.tsx +0 -20
- package/src/useMRT.tsx +0 -226
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, {
|
|
2
|
+
ChangeEvent,
|
|
3
|
+
FC,
|
|
4
|
+
MouseEvent,
|
|
5
|
+
useCallback,
|
|
6
|
+
useState,
|
|
7
|
+
} from 'react';
|
|
2
8
|
import {
|
|
3
9
|
Chip,
|
|
10
|
+
debounce,
|
|
4
11
|
IconButton,
|
|
5
12
|
InputAdornment,
|
|
6
13
|
MenuItem,
|
|
@@ -8,36 +15,41 @@ import {
|
|
|
8
15
|
TextFieldProps,
|
|
9
16
|
Tooltip,
|
|
10
17
|
} from '@mui/material';
|
|
11
|
-
import {
|
|
12
|
-
import { useMRT } from '../useMRT';
|
|
13
|
-
import type { MRT_HeaderGroup } from '..';
|
|
18
|
+
import type { MRT_Header, MRT_TableInstance } from '..';
|
|
14
19
|
import { MRT_FilterTypeMenu } from '../menus/MRT_FilterTypeMenu';
|
|
15
20
|
import { MRT_FILTER_TYPE } from '../enums';
|
|
16
21
|
|
|
17
22
|
interface Props {
|
|
18
|
-
|
|
23
|
+
header: MRT_Header;
|
|
24
|
+
tableInstance: MRT_TableInstance;
|
|
19
25
|
}
|
|
20
26
|
|
|
21
|
-
export const MRT_FilterTextField: FC<Props> = ({
|
|
27
|
+
export const MRT_FilterTextField: FC<Props> = ({ header, tableInstance }) => {
|
|
22
28
|
const {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
29
|
+
getState,
|
|
30
|
+
options: {
|
|
31
|
+
icons: { FilterListIcon, CloseIcon },
|
|
32
|
+
idPrefix,
|
|
33
|
+
localization,
|
|
34
|
+
muiTableHeadCellFilterTextFieldProps,
|
|
35
|
+
},
|
|
27
36
|
setCurrentFilterTypes,
|
|
28
|
-
|
|
29
|
-
|
|
37
|
+
} = tableInstance;
|
|
38
|
+
|
|
39
|
+
const { column } = header;
|
|
40
|
+
|
|
41
|
+
const { currentFilterTypes } = getState();
|
|
30
42
|
|
|
31
43
|
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
|
|
32
44
|
|
|
33
45
|
const mTableHeadCellFilterTextFieldProps =
|
|
34
46
|
muiTableHeadCellFilterTextFieldProps instanceof Function
|
|
35
|
-
? muiTableHeadCellFilterTextFieldProps(column)
|
|
47
|
+
? muiTableHeadCellFilterTextFieldProps({ column, tableInstance })
|
|
36
48
|
: muiTableHeadCellFilterTextFieldProps;
|
|
37
49
|
|
|
38
50
|
const mcTableHeadCellFilterTextFieldProps =
|
|
39
51
|
column.muiTableHeadCellFilterTextFieldProps instanceof Function
|
|
40
|
-
? column.muiTableHeadCellFilterTextFieldProps(column)
|
|
52
|
+
? column.muiTableHeadCellFilterTextFieldProps({ column, tableInstance })
|
|
41
53
|
: column.muiTableHeadCellFilterTextFieldProps;
|
|
42
54
|
|
|
43
55
|
const textFieldProps = {
|
|
@@ -45,11 +57,18 @@ export const MRT_FilterTextField: FC<Props> = ({ column }) => {
|
|
|
45
57
|
...mcTableHeadCellFilterTextFieldProps,
|
|
46
58
|
} as TextFieldProps;
|
|
47
59
|
|
|
48
|
-
const [filterValue, setFilterValue] = useState(
|
|
60
|
+
const [filterValue, setFilterValue] = useState<string>(
|
|
61
|
+
(column.getColumnFilterValue() ?? '') as string,
|
|
62
|
+
);
|
|
49
63
|
|
|
50
|
-
const handleChange =
|
|
51
|
-
|
|
52
|
-
|
|
64
|
+
const handleChange = useCallback(
|
|
65
|
+
debounce(
|
|
66
|
+
(event: ChangeEvent<HTMLInputElement>) =>
|
|
67
|
+
column.setColumnFilterValue(event.target.value ?? undefined),
|
|
68
|
+
150,
|
|
69
|
+
),
|
|
70
|
+
[],
|
|
71
|
+
);
|
|
53
72
|
|
|
54
73
|
const handleFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {
|
|
55
74
|
setAnchorEl(event.currentTarget);
|
|
@@ -57,24 +76,24 @@ export const MRT_FilterTextField: FC<Props> = ({ column }) => {
|
|
|
57
76
|
|
|
58
77
|
const handleClear = () => {
|
|
59
78
|
setFilterValue('');
|
|
60
|
-
column.
|
|
79
|
+
column.setColumnFilterValue(undefined);
|
|
61
80
|
};
|
|
62
81
|
|
|
63
82
|
const handleClearFilterChip = () => {
|
|
64
83
|
setFilterValue('');
|
|
65
|
-
column.
|
|
84
|
+
column.setColumnFilterValue(undefined);
|
|
66
85
|
setCurrentFilterTypes((prev) => ({
|
|
67
86
|
...prev,
|
|
68
|
-
[
|
|
87
|
+
[header.id]: MRT_FILTER_TYPE.BEST_MATCH,
|
|
69
88
|
}));
|
|
70
89
|
};
|
|
71
90
|
|
|
72
91
|
if (column.Filter) {
|
|
73
|
-
return <>{column.Filter?.({
|
|
92
|
+
return <>{column.Filter?.({ header, tableInstance })}</>;
|
|
74
93
|
}
|
|
75
94
|
|
|
76
|
-
const filterId = `mrt-${idPrefix}-${
|
|
77
|
-
const filterType =
|
|
95
|
+
const filterId = `mrt-${idPrefix}-${header.id}-filter-text-field`;
|
|
96
|
+
const filterType = currentFilterTypes?.[header.id];
|
|
78
97
|
const isSelectFilter = !!column.filterSelectOptions;
|
|
79
98
|
const filterChipLabel =
|
|
80
99
|
!(filterType instanceof Function) &&
|
|
@@ -88,7 +107,7 @@ export const MRT_FilterTextField: FC<Props> = ({ column }) => {
|
|
|
88
107
|
: '';
|
|
89
108
|
const filterPlaceholder = localization.filterByColumn?.replace(
|
|
90
109
|
'{column}',
|
|
91
|
-
String(column.
|
|
110
|
+
String(column.header),
|
|
92
111
|
);
|
|
93
112
|
|
|
94
113
|
return (
|
|
@@ -134,13 +153,14 @@ export const MRT_FilterTextField: FC<Props> = ({ column }) => {
|
|
|
134
153
|
label={isSelectFilter && !filterValue ? filterPlaceholder : undefined}
|
|
135
154
|
margin="none"
|
|
136
155
|
placeholder={
|
|
137
|
-
|
|
156
|
+
filterPlaceholder
|
|
157
|
+
// filterChipLabel || isSelectFilter ? undefined : filterPlaceholder
|
|
138
158
|
}
|
|
139
|
-
onChange={(
|
|
140
|
-
setFilterValue(
|
|
141
|
-
handleChange(
|
|
159
|
+
onChange={(event: ChangeEvent<HTMLInputElement>) => {
|
|
160
|
+
setFilterValue(event.target.value);
|
|
161
|
+
handleChange(event);
|
|
142
162
|
}}
|
|
143
|
-
onClick={(e) => e.stopPropagation()}
|
|
163
|
+
onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}
|
|
144
164
|
select={isSelectFilter}
|
|
145
165
|
value={filterValue ?? ''}
|
|
146
166
|
variant="standard"
|
|
@@ -230,8 +250,9 @@ export const MRT_FilterTextField: FC<Props> = ({ column }) => {
|
|
|
230
250
|
</TextField>
|
|
231
251
|
<MRT_FilterTypeMenu
|
|
232
252
|
anchorEl={anchorEl}
|
|
233
|
-
|
|
253
|
+
header={header}
|
|
234
254
|
setAnchorEl={setAnchorEl}
|
|
255
|
+
tableInstance={tableInstance}
|
|
235
256
|
/>
|
|
236
257
|
</>
|
|
237
258
|
);
|
|
@@ -1,36 +1,49 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, {
|
|
2
|
+
ChangeEvent,
|
|
3
|
+
FC,
|
|
4
|
+
MouseEvent,
|
|
5
|
+
useCallback,
|
|
6
|
+
useState,
|
|
7
|
+
} from 'react';
|
|
2
8
|
import {
|
|
3
9
|
Collapse,
|
|
10
|
+
debounce,
|
|
4
11
|
IconButton,
|
|
5
12
|
InputAdornment,
|
|
6
13
|
TextField,
|
|
7
14
|
Tooltip,
|
|
8
15
|
} from '@mui/material';
|
|
9
|
-
import { useMRT } from '../useMRT';
|
|
10
|
-
import { useAsyncDebounce } from 'react-table';
|
|
11
16
|
import { MRT_FilterTypeMenu } from '../menus/MRT_FilterTypeMenu';
|
|
17
|
+
import { MRT_TableInstance } from '..';
|
|
12
18
|
|
|
13
|
-
interface Props {
|
|
19
|
+
interface Props {
|
|
20
|
+
tableInstance: MRT_TableInstance;
|
|
21
|
+
}
|
|
14
22
|
|
|
15
|
-
export const MRT_SearchTextField: FC<Props> = () => {
|
|
23
|
+
export const MRT_SearchTextField: FC<Props> = ({ tableInstance }) => {
|
|
16
24
|
const {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
25
|
+
getState,
|
|
26
|
+
setGlobalFilter,
|
|
27
|
+
options: {
|
|
28
|
+
icons: { SearchIcon, CloseIcon },
|
|
29
|
+
idPrefix,
|
|
30
|
+
localization,
|
|
31
|
+
muiSearchTextFieldProps,
|
|
32
|
+
onGlobalFilterChange,
|
|
33
|
+
},
|
|
34
|
+
} = tableInstance;
|
|
35
|
+
|
|
36
|
+
const { globalFilter, showSearch } = getState();
|
|
24
37
|
|
|
25
38
|
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
|
|
26
|
-
const [searchValue, setSearchValue] = useState('');
|
|
39
|
+
const [searchValue, setSearchValue] = useState(globalFilter ?? '');
|
|
27
40
|
|
|
28
|
-
const handleChange =
|
|
29
|
-
(event: ChangeEvent<HTMLInputElement>) => {
|
|
30
|
-
|
|
31
|
-
onGlobalFilterChange?.(event);
|
|
32
|
-
},
|
|
33
|
-
|
|
41
|
+
const handleChange = useCallback(
|
|
42
|
+
debounce((event: ChangeEvent<HTMLInputElement>) => {
|
|
43
|
+
setGlobalFilter(event.target.value ?? undefined);
|
|
44
|
+
onGlobalFilterChange?.({ event, tableInstance });
|
|
45
|
+
}, 200),
|
|
46
|
+
[],
|
|
34
47
|
);
|
|
35
48
|
|
|
36
49
|
const handleGlobalFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {
|
|
@@ -39,11 +52,16 @@ export const MRT_SearchTextField: FC<Props> = () => {
|
|
|
39
52
|
|
|
40
53
|
const handleClear = () => {
|
|
41
54
|
setSearchValue('');
|
|
42
|
-
|
|
55
|
+
setGlobalFilter(undefined);
|
|
43
56
|
};
|
|
44
57
|
|
|
58
|
+
const textFieldProps =
|
|
59
|
+
muiSearchTextFieldProps instanceof Function
|
|
60
|
+
? muiSearchTextFieldProps({ tableInstance })
|
|
61
|
+
: muiSearchTextFieldProps;
|
|
62
|
+
|
|
45
63
|
return (
|
|
46
|
-
<Collapse in={
|
|
64
|
+
<Collapse in={showSearch} orientation="horizontal">
|
|
47
65
|
<TextField
|
|
48
66
|
id={`mrt-${idPrefix}-search-text-field`}
|
|
49
67
|
placeholder={localization.search}
|
|
@@ -84,10 +102,14 @@ export const MRT_SearchTextField: FC<Props> = () => {
|
|
|
84
102
|
</InputAdornment>
|
|
85
103
|
),
|
|
86
104
|
}}
|
|
87
|
-
{...
|
|
88
|
-
sx={{ justifySelf: 'end', ...
|
|
105
|
+
{...textFieldProps}
|
|
106
|
+
sx={{ justifySelf: 'end', ...textFieldProps?.sx }}
|
|
107
|
+
/>
|
|
108
|
+
<MRT_FilterTypeMenu
|
|
109
|
+
anchorEl={anchorEl}
|
|
110
|
+
setAnchorEl={setAnchorEl}
|
|
111
|
+
tableInstance={tableInstance}
|
|
89
112
|
/>
|
|
90
|
-
<MRT_FilterTypeMenu anchorEl={anchorEl} setAnchorEl={setAnchorEl} />
|
|
91
113
|
</Collapse>
|
|
92
114
|
);
|
|
93
115
|
};
|
|
@@ -1,62 +1,69 @@
|
|
|
1
1
|
import React, { ChangeEvent, FC } from 'react';
|
|
2
2
|
import { Checkbox, Tooltip } from '@mui/material';
|
|
3
|
-
import {
|
|
4
|
-
import type { MRT_Row } from '..';
|
|
3
|
+
import type { MRT_Row, MRT_TableInstance } from '..';
|
|
5
4
|
|
|
6
5
|
interface Props {
|
|
7
6
|
row?: MRT_Row;
|
|
8
7
|
selectAll?: boolean;
|
|
8
|
+
tableInstance: MRT_TableInstance;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
export const MRT_SelectCheckbox: FC<Props> = ({
|
|
11
|
+
export const MRT_SelectCheckbox: FC<Props> = ({
|
|
12
|
+
row,
|
|
13
|
+
selectAll,
|
|
14
|
+
tableInstance,
|
|
15
|
+
}) => {
|
|
12
16
|
const {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
getRowModel,
|
|
18
|
+
getSelectedRowModel,
|
|
19
|
+
getState,
|
|
20
|
+
getToggleAllRowsSelectedProps,
|
|
21
|
+
options: {
|
|
22
|
+
isLoading,
|
|
23
|
+
localization,
|
|
24
|
+
muiSelectCheckboxProps,
|
|
25
|
+
onSelectChange,
|
|
26
|
+
onSelectAllChange,
|
|
20
27
|
},
|
|
21
|
-
} =
|
|
28
|
+
} = tableInstance;
|
|
29
|
+
|
|
30
|
+
const { isDensePadding } = getState();
|
|
22
31
|
|
|
23
32
|
const handleSelectChange = (event: ChangeEvent<HTMLInputElement>) => {
|
|
24
33
|
if (selectAll) {
|
|
25
|
-
|
|
26
|
-
onSelectAllChange?.(
|
|
34
|
+
getToggleAllRowsSelectedProps?.()?.onChange?.(event as any);
|
|
35
|
+
onSelectAllChange?.({
|
|
27
36
|
event,
|
|
28
|
-
event.target.checked ?
|
|
29
|
-
|
|
37
|
+
selectedRows: event.target.checked ? getRowModel().flatRows : [],
|
|
38
|
+
tableInstance,
|
|
39
|
+
});
|
|
30
40
|
} else if (row) {
|
|
31
|
-
row?.
|
|
32
|
-
onSelectChange?.(
|
|
41
|
+
row?.getToggleSelectedProps()?.onChange?.(event as any);
|
|
42
|
+
onSelectChange?.({
|
|
33
43
|
event,
|
|
34
44
|
row,
|
|
35
|
-
event.target.checked
|
|
36
|
-
? [...
|
|
37
|
-
:
|
|
45
|
+
selectedRows: event.target.checked
|
|
46
|
+
? [...getSelectedRowModel().flatRows, row]
|
|
47
|
+
: getSelectedRowModel().flatRows.filter(
|
|
38
48
|
(selectedRow) => selectedRow.id !== row.id,
|
|
39
49
|
),
|
|
40
|
-
|
|
50
|
+
tableInstance,
|
|
51
|
+
});
|
|
41
52
|
}
|
|
42
53
|
};
|
|
43
54
|
|
|
44
55
|
const mTableBodyRowSelectCheckboxProps =
|
|
45
56
|
muiSelectCheckboxProps instanceof Function
|
|
46
|
-
? muiSelectCheckboxProps(selectAll, row, tableInstance)
|
|
57
|
+
? muiSelectCheckboxProps({ isSelectAll: !!selectAll, row, tableInstance })
|
|
47
58
|
: muiSelectCheckboxProps;
|
|
48
59
|
|
|
49
60
|
const rtSelectCheckboxProps = selectAll
|
|
50
|
-
?
|
|
51
|
-
: row?.
|
|
61
|
+
? getToggleAllRowsSelectedProps()
|
|
62
|
+
: row?.getToggleSelectedProps();
|
|
52
63
|
|
|
53
64
|
const checkboxProps = {
|
|
54
|
-
...mTableBodyRowSelectCheckboxProps,
|
|
55
65
|
...rtSelectCheckboxProps,
|
|
56
|
-
|
|
57
|
-
...rtSelectCheckboxProps?.style,
|
|
58
|
-
...mTableBodyRowSelectCheckboxProps?.style,
|
|
59
|
-
},
|
|
66
|
+
...mTableBodyRowSelectCheckboxProps,
|
|
60
67
|
};
|
|
61
68
|
|
|
62
69
|
return (
|
|
@@ -69,13 +76,18 @@ export const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll }) => {
|
|
|
69
76
|
}
|
|
70
77
|
>
|
|
71
78
|
<Checkbox
|
|
79
|
+
disabled={isLoading}
|
|
72
80
|
inputProps={{
|
|
73
81
|
'aria-label': selectAll
|
|
74
82
|
? localization.toggleSelectAll
|
|
75
83
|
: localization.toggleSelectRow,
|
|
76
84
|
}}
|
|
77
|
-
size={
|
|
85
|
+
size={isDensePadding ? 'small' : 'medium'}
|
|
78
86
|
{...checkboxProps}
|
|
87
|
+
sx={{
|
|
88
|
+
height: isDensePadding ? '1.75rem' : '2.25rem',
|
|
89
|
+
width: isDensePadding ? '1.75rem' : '2.25rem',
|
|
90
|
+
}}
|
|
79
91
|
onChange={handleSelectChange}
|
|
80
92
|
title={undefined}
|
|
81
93
|
/>
|
package/src/localization.ts
CHANGED
|
@@ -12,13 +12,13 @@ export interface MRT_Localization {
|
|
|
12
12
|
edit: string;
|
|
13
13
|
expand: string;
|
|
14
14
|
expandAll: string;
|
|
15
|
+
filterBestMatch: string;
|
|
15
16
|
filterBestMatchFirst: string;
|
|
16
17
|
filterByColumn: string;
|
|
17
18
|
filterContains: string;
|
|
18
19
|
filterEmpty: string;
|
|
19
20
|
filterEndsWith: string;
|
|
20
21
|
filterEquals: string;
|
|
21
|
-
filterBestMatch: string;
|
|
22
22
|
filterGreaterThan: string;
|
|
23
23
|
filterLessThan: string;
|
|
24
24
|
filterMode: string;
|
|
@@ -30,13 +30,18 @@ export interface MRT_Localization {
|
|
|
30
30
|
groupedBy: string;
|
|
31
31
|
hideAll: string;
|
|
32
32
|
hideColumn: string;
|
|
33
|
+
pinToLeft: string;
|
|
34
|
+
pinToRight: string;
|
|
33
35
|
rowActions: string;
|
|
36
|
+
rowNumber: string;
|
|
37
|
+
rowNumbers: string;
|
|
34
38
|
save: string;
|
|
35
39
|
search: string;
|
|
40
|
+
select: string;
|
|
36
41
|
selectedCountOfRowCountRowsSelected: string;
|
|
37
42
|
showAll: string;
|
|
38
|
-
showHideColumns: string;
|
|
39
43
|
showAllColumns: string;
|
|
44
|
+
showHideColumns: string;
|
|
40
45
|
showHideFilters: string;
|
|
41
46
|
showHideSearch: string;
|
|
42
47
|
sortByColumnAsc: string;
|
|
@@ -47,6 +52,7 @@ export interface MRT_Localization {
|
|
|
47
52
|
toggleSelectAll: string;
|
|
48
53
|
toggleSelectRow: string;
|
|
49
54
|
ungroupByColumn: string;
|
|
55
|
+
unpin: string;
|
|
50
56
|
}
|
|
51
57
|
|
|
52
58
|
export const MRT_DefaultLocalization_EN: MRT_Localization = {
|
|
@@ -81,11 +87,16 @@ export const MRT_DefaultLocalization_EN: MRT_Localization = {
|
|
|
81
87
|
groupedBy: 'Grouped by ',
|
|
82
88
|
hideAll: 'Hide all',
|
|
83
89
|
hideColumn: 'Hide {column} column',
|
|
90
|
+
pinToLeft: 'Pin to left',
|
|
91
|
+
pinToRight: 'Pin to right',
|
|
84
92
|
rowActions: 'Row Actions',
|
|
93
|
+
rowNumber: '#',
|
|
94
|
+
rowNumbers: 'Row Numbers',
|
|
85
95
|
save: 'Save',
|
|
86
96
|
search: 'Search',
|
|
87
97
|
selectedCountOfRowCountRowsSelected:
|
|
88
98
|
'{selectedCount} of {rowCount} row(s) selected',
|
|
99
|
+
select: 'Select',
|
|
89
100
|
showAll: 'Show all',
|
|
90
101
|
showAllColumns: 'Show all columns',
|
|
91
102
|
showHideColumns: 'Show/Hide columns',
|
|
@@ -99,4 +110,5 @@ export const MRT_DefaultLocalization_EN: MRT_Localization = {
|
|
|
99
110
|
toggleSelectAll: 'Toggle select all',
|
|
100
111
|
toggleSelectRow: 'Toggle select row',
|
|
101
112
|
ungroupByColumn: 'Ungroup by {column}',
|
|
113
|
+
unpin: 'Unpin',
|
|
102
114
|
};
|