material-react-table 2.0.0-alpha.1 → 2.0.0-alpha.2
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 +2 -2
- package/dist/cjs/index.js +2400 -2365
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/MaterialReactTable.d.ts +1 -1
- package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +1 -1
- package/dist/cjs/types/buttons/MRT_RowPinButton.d.ts +2 -2
- package/dist/cjs/types/column.utils.d.ts +6 -6
- package/dist/cjs/types/filterFns.d.ts +14 -14
- package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +1 -1
- package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
- package/dist/cjs/types/hooks/useMRT_DisplayColumns.d.ts +3 -3
- package/dist/cjs/types/icons.d.ts +1 -1
- package/dist/cjs/types/inputs/MRT_FilterRangeSlider.d.ts +1 -1
- package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
- package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +1 -1
- package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +2 -2
- package/dist/cjs/types/toolbar/MRT_TopToolbar.d.ts +1 -1
- package/dist/cjs/types/types.d.ts +198 -198
- package/dist/esm/material-react-table.esm.js +2027 -1993
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/MaterialReactTable.d.ts +1 -1
- package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +1 -1
- package/dist/esm/types/buttons/MRT_RowPinButton.d.ts +2 -2
- package/dist/esm/types/column.utils.d.ts +6 -6
- package/dist/esm/types/filterFns.d.ts +14 -14
- package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +1 -1
- package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
- package/dist/esm/types/hooks/useMRT_DisplayColumns.d.ts +3 -3
- package/dist/esm/types/icons.d.ts +1 -1
- package/dist/esm/types/inputs/MRT_FilterRangeSlider.d.ts +1 -1
- package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
- package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +1 -1
- package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +2 -2
- package/dist/esm/types/toolbar/MRT_TopToolbar.d.ts +1 -1
- package/dist/esm/types/types.d.ts +198 -198
- package/dist/index.d.ts +239 -239
- package/locales/fr.esm.js +1 -1
- package/locales/fr.esm.js.map +1 -1
- package/locales/fr.js +1 -1
- package/locales/fr.js.map +1 -1
- package/locales/tr.d.ts +2 -0
- package/locales/tr.esm.d.ts +2 -0
- package/locales/tr.esm.js +93 -0
- package/locales/tr.esm.js.map +1 -0
- package/locales/tr.js +97 -0
- package/locales/tr.js.map +1 -0
- package/locales/uk.d.ts +2 -0
- package/locales/uk.esm.d.ts +2 -0
- package/locales/uk.esm.js +93 -0
- package/locales/uk.esm.js.map +1 -0
- package/locales/uk.js +97 -0
- package/locales/uk.js.map +1 -0
- package/locales/vi.d.ts +2 -0
- package/locales/vi.esm.d.ts +2 -0
- package/locales/vi.esm.js +93 -0
- package/locales/vi.esm.js.map +1 -0
- package/locales/vi.js +97 -0
- package/locales/vi.js.map +1 -0
- package/locales/zh-Hans.d.ts +2 -0
- package/locales/zh-Hans.esm.d.ts +2 -0
- package/locales/zh-Hans.esm.js +93 -0
- package/locales/zh-Hans.esm.js.map +1 -0
- package/locales/zh-Hans.js +97 -0
- package/locales/zh-Hans.js.map +1 -0
- package/locales/zh-Hant.d.ts +2 -0
- package/locales/zh-Hant.esm.d.ts +2 -0
- package/locales/zh-Hant.esm.js +93 -0
- package/locales/zh-Hant.esm.js.map +1 -0
- package/locales/zh-Hant.js +97 -0
- package/locales/zh-Hant.js.map +1 -0
- package/package.json +2 -1
- package/src/MaterialReactTable.tsx +2 -2
- package/src/body/MRT_TableBody.tsx +9 -9
- package/src/body/MRT_TableBodyCell.tsx +22 -22
- package/src/body/MRT_TableBodyCellValue.tsx +5 -5
- package/src/body/MRT_TableBodyRow.tsx +32 -32
- package/src/body/MRT_TableBodyRowGrabHandle.tsx +2 -2
- package/src/body/MRT_TableBodyRowPinButton.tsx +3 -3
- package/src/body/MRT_TableDetailPanel.tsx +3 -3
- package/src/buttons/MRT_CopyButton.tsx +1 -1
- package/src/buttons/MRT_EditActionButtons.tsx +4 -4
- package/src/buttons/MRT_ExpandAllButton.tsx +3 -3
- package/src/buttons/MRT_ExpandButton.tsx +1 -1
- package/src/buttons/MRT_GrabHandleButton.tsx +10 -10
- package/src/buttons/MRT_RowPinButton.tsx +5 -5
- package/src/buttons/MRT_ShowHideColumnsButton.tsx +1 -1
- package/src/buttons/MRT_ToggleFullScreenButton.tsx +2 -2
- package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +8 -8
- package/src/column.utils.ts +23 -17
- package/src/filterFns.ts +29 -29
- package/src/footer/MRT_TableFooter.tsx +9 -9
- package/src/footer/MRT_TableFooterCell.tsx +1 -1
- package/src/footer/MRT_TableFooterRow.tsx +2 -2
- package/src/head/MRT_TableHead.tsx +9 -9
- package/src/head/MRT_TableHeadCell.tsx +10 -6
- package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +9 -6
- package/src/head/MRT_TableHeadCellFilterContainer.tsx +11 -4
- package/src/head/MRT_TableHeadCellFilterLabel.tsx +106 -61
- package/src/head/MRT_TableHeadCellGrabHandle.tsx +2 -2
- package/src/head/MRT_TableHeadCellResizeHandle.tsx +11 -11
- package/src/head/MRT_TableHeadCellSortLabel.tsx +8 -8
- package/src/head/MRT_TableHeadRow.tsx +2 -2
- package/src/hooks/useMRT_DisplayColumns.tsx +5 -5
- package/src/hooks/useMRT_Effects.ts +3 -3
- package/src/hooks/useMRT_TableInstance.ts +15 -14
- package/src/hooks/useMRT_TableOptions.ts +3 -3
- package/src/icons.ts +2 -2
- package/src/inputs/MRT_EditCellTextField.tsx +9 -9
- package/src/inputs/MRT_FilterCheckbox.tsx +7 -7
- package/src/inputs/MRT_FilterRangeFields.tsx +1 -1
- package/src/inputs/MRT_FilterRangeSlider.tsx +6 -6
- package/src/inputs/MRT_FilterTextField.tsx +75 -75
- package/src/inputs/MRT_GlobalFilterTextField.tsx +26 -26
- package/src/inputs/MRT_SelectCheckbox.tsx +7 -7
- package/src/locales/fr.ts +1 -1
- package/src/menus/MRT_ColumnActionMenu.tsx +14 -14
- package/src/menus/MRT_FilterOptionMenu.tsx +35 -35
- package/src/menus/MRT_RowActionMenu.tsx +7 -7
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +6 -6
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +5 -5
- package/src/modals/MRT_EditRowModal.tsx +8 -8
- package/src/sortingFns.ts +1 -1
- package/src/table/MRT_Table.tsx +7 -7
- package/src/table/MRT_TableContainer.tsx +10 -10
- package/src/table/MRT_TablePaper.tsx +9 -9
- package/src/toolbar/MRT_BottomToolbar.tsx +5 -5
- package/src/toolbar/MRT_LinearProgressBar.tsx +4 -4
- package/src/toolbar/MRT_TablePagination.tsx +19 -19
- package/src/toolbar/MRT_ToolbarAlertBanner.tsx +4 -4
- package/src/toolbar/MRT_ToolbarDropZone.tsx +6 -6
- package/src/toolbar/MRT_ToolbarInternalButtons.tsx +8 -5
- package/src/toolbar/MRT_TopToolbar.tsx +7 -7
- package/src/types.ts +263 -263
- package/src/useMaterialReactTable.ts +1 -1
@@ -14,88 +14,88 @@ export const mrtFilterOptions = (
|
|
14
14
|
localization: MRT_Localization,
|
15
15
|
): MRT_InternalFilterOption[] => [
|
16
16
|
{
|
17
|
+
divider: false,
|
18
|
+
label: localization.filterFuzzy,
|
17
19
|
option: 'fuzzy',
|
18
20
|
symbol: '≈',
|
19
|
-
label: localization.filterFuzzy,
|
20
|
-
divider: false,
|
21
21
|
},
|
22
22
|
{
|
23
|
+
divider: false,
|
24
|
+
label: localization.filterContains,
|
23
25
|
option: 'contains',
|
24
26
|
symbol: '*',
|
25
|
-
label: localization.filterContains,
|
26
|
-
divider: false,
|
27
27
|
},
|
28
28
|
{
|
29
|
+
divider: false,
|
30
|
+
label: localization.filterStartsWith,
|
29
31
|
option: 'startsWith',
|
30
32
|
symbol: 'a',
|
31
|
-
label: localization.filterStartsWith,
|
32
|
-
divider: false,
|
33
33
|
},
|
34
34
|
{
|
35
|
+
divider: true,
|
36
|
+
label: localization.filterEndsWith,
|
35
37
|
option: 'endsWith',
|
36
38
|
symbol: 'z',
|
37
|
-
label: localization.filterEndsWith,
|
38
|
-
divider: true,
|
39
39
|
},
|
40
40
|
{
|
41
|
+
divider: false,
|
42
|
+
label: localization.filterEquals,
|
41
43
|
option: 'equals',
|
42
44
|
symbol: '=',
|
43
|
-
label: localization.filterEquals,
|
44
|
-
divider: false,
|
45
45
|
},
|
46
46
|
{
|
47
|
+
divider: true,
|
48
|
+
label: localization.filterNotEquals,
|
47
49
|
option: 'notEquals',
|
48
50
|
symbol: '≠',
|
49
|
-
label: localization.filterNotEquals,
|
50
|
-
divider: true,
|
51
51
|
},
|
52
52
|
{
|
53
|
+
divider: false,
|
54
|
+
label: localization.filterBetween,
|
53
55
|
option: 'between',
|
54
56
|
symbol: '⇿',
|
55
|
-
label: localization.filterBetween,
|
56
|
-
divider: false,
|
57
57
|
},
|
58
58
|
{
|
59
|
+
divider: true,
|
60
|
+
label: localization.filterBetweenInclusive,
|
59
61
|
option: 'betweenInclusive',
|
60
62
|
symbol: '⬌',
|
61
|
-
label: localization.filterBetweenInclusive,
|
62
|
-
divider: true,
|
63
63
|
},
|
64
64
|
{
|
65
|
+
divider: false,
|
66
|
+
label: localization.filterGreaterThan,
|
65
67
|
option: 'greaterThan',
|
66
68
|
symbol: '>',
|
67
|
-
label: localization.filterGreaterThan,
|
68
|
-
divider: false,
|
69
69
|
},
|
70
70
|
{
|
71
|
+
divider: false,
|
72
|
+
label: localization.filterGreaterThanOrEqualTo,
|
71
73
|
option: 'greaterThanOrEqualTo',
|
72
74
|
symbol: '≥',
|
73
|
-
label: localization.filterGreaterThanOrEqualTo,
|
74
|
-
divider: false,
|
75
75
|
},
|
76
76
|
{
|
77
|
+
divider: false,
|
78
|
+
label: localization.filterLessThan,
|
77
79
|
option: 'lessThan',
|
78
80
|
symbol: '<',
|
79
|
-
label: localization.filterLessThan,
|
80
|
-
divider: false,
|
81
81
|
},
|
82
82
|
{
|
83
|
+
divider: true,
|
84
|
+
label: localization.filterLessThanOrEqualTo,
|
83
85
|
option: 'lessThanOrEqualTo',
|
84
86
|
symbol: '≤',
|
85
|
-
label: localization.filterLessThanOrEqualTo,
|
86
|
-
divider: true,
|
87
87
|
},
|
88
88
|
{
|
89
|
+
divider: false,
|
90
|
+
label: localization.filterEmpty,
|
89
91
|
option: 'empty',
|
90
92
|
symbol: '∅',
|
91
|
-
label: localization.filterEmpty,
|
92
|
-
divider: false,
|
93
93
|
},
|
94
94
|
{
|
95
|
+
divider: false,
|
96
|
+
label: localization.filterNotEmpty,
|
95
97
|
option: 'notEmpty',
|
96
98
|
symbol: '!∅',
|
97
|
-
label: localization.filterNotEmpty,
|
98
|
-
divider: false,
|
99
99
|
},
|
100
100
|
];
|
101
101
|
|
@@ -133,7 +133,7 @@ export const MRT_FilterOptionMenu = <TData extends Record<string, any>>({
|
|
133
133
|
setColumnFilterFns,
|
134
134
|
setGlobalFilterFn,
|
135
135
|
} = table;
|
136
|
-
const {
|
136
|
+
const { density, globalFilterFn } = getState();
|
137
137
|
const { column } = header ?? {};
|
138
138
|
const { columnDef } = column ?? {};
|
139
139
|
const currentFilterValue = column?.getFilterValue();
|
@@ -156,7 +156,7 @@ export const MRT_FilterOptionMenu = <TData extends Record<string, any>>({
|
|
156
156
|
allowedColumnFilterOptions?.includes(filterOption.option)
|
157
157
|
: (!globalFilterModeOptions ||
|
158
158
|
globalFilterModeOptions.includes(filterOption.option)) &&
|
159
|
-
['
|
159
|
+
['contains', 'fuzzy', 'startsWith'].includes(filterOption.option),
|
160
160
|
),
|
161
161
|
[],
|
162
162
|
);
|
@@ -232,13 +232,13 @@ export const MRT_FilterOptionMenu = <TData extends Record<string, any>>({
|
|
232
232
|
|
233
233
|
return (
|
234
234
|
<Menu
|
235
|
-
anchorEl={anchorEl}
|
236
|
-
anchorOrigin={{ vertical: 'center', horizontal: 'right' }}
|
237
|
-
onClose={() => setAnchorEl(null)}
|
238
|
-
open={!!anchorEl}
|
239
235
|
MenuListProps={{
|
240
236
|
dense: density === 'compact',
|
241
237
|
}}
|
238
|
+
anchorEl={anchorEl}
|
239
|
+
anchorOrigin={{ horizontal: 'right', vertical: 'center' }}
|
240
|
+
onClose={() => setAnchorEl(null)}
|
241
|
+
open={!!anchorEl}
|
242
242
|
>
|
243
243
|
{(header && column && columnDef
|
244
244
|
? columnDef.renderColumnFilterModeMenuItems?.({
|
@@ -259,7 +259,7 @@ export const MRT_FilterOptionMenu = <TData extends Record<string, any>>({
|
|
259
259
|
table,
|
260
260
|
})) ??
|
261
261
|
internalFilterOptions.map(
|
262
|
-
({
|
262
|
+
({ divider, label, option, symbol }, index) => (
|
263
263
|
<MenuItem
|
264
264
|
divider={divider}
|
265
265
|
key={index}
|
@@ -7,8 +7,8 @@ import {
|
|
7
7
|
commonListItemStyles,
|
8
8
|
commonMenuItemStyles,
|
9
9
|
} from './MRT_ColumnActionMenu';
|
10
|
-
import { type MRT_Row, type MRT_TableInstance } from '../types';
|
11
10
|
import { parseFromValuesOrFunc } from '../column.utils';
|
11
|
+
import { type MRT_Row, type MRT_TableInstance } from '../types';
|
12
12
|
|
13
13
|
interface Props<TData extends Record<string, any>> {
|
14
14
|
anchorEl: HTMLElement | null;
|
@@ -28,8 +28,8 @@ export const MRT_RowActionMenu = <TData extends Record<string, any>>({
|
|
28
28
|
const {
|
29
29
|
getState,
|
30
30
|
options: {
|
31
|
-
icons: { EditIcon },
|
32
31
|
enableEditing,
|
32
|
+
icons: { EditIcon },
|
33
33
|
localization,
|
34
34
|
renderRowActionMenuItems,
|
35
35
|
},
|
@@ -38,13 +38,13 @@ export const MRT_RowActionMenu = <TData extends Record<string, any>>({
|
|
38
38
|
|
39
39
|
return (
|
40
40
|
<Menu
|
41
|
-
anchorEl={anchorEl}
|
42
|
-
open={!!anchorEl}
|
43
|
-
onClick={(event) => event.stopPropagation()}
|
44
|
-
onClose={() => setAnchorEl(null)}
|
45
41
|
MenuListProps={{
|
46
42
|
dense: density === 'compact',
|
47
43
|
}}
|
44
|
+
anchorEl={anchorEl}
|
45
|
+
onClick={(event) => event.stopPropagation()}
|
46
|
+
onClose={() => setAnchorEl(null)}
|
47
|
+
open={!!anchorEl}
|
48
48
|
>
|
49
49
|
{parseFromValuesOrFunc(enableEditing, row) && (
|
50
50
|
<MenuItem onClick={handleEdit} sx={commonMenuItemStyles}>
|
@@ -57,9 +57,9 @@ export const MRT_RowActionMenu = <TData extends Record<string, any>>({
|
|
57
57
|
</MenuItem>
|
58
58
|
)}
|
59
59
|
{renderRowActionMenuItems?.({
|
60
|
+
closeMenu: () => setAnchorEl(null),
|
60
61
|
row,
|
61
62
|
table,
|
62
|
-
closeMenu: () => setAnchorEl(null),
|
63
63
|
})}
|
64
64
|
</Menu>
|
65
65
|
);
|
@@ -29,15 +29,15 @@ export const MRT_ShowHideColumnsMenu = <TData extends Record<string, any>>({
|
|
29
29
|
getLeftLeafColumns,
|
30
30
|
getRightLeafColumns,
|
31
31
|
getState,
|
32
|
-
toggleAllColumnsVisible,
|
33
32
|
options: {
|
34
33
|
enableColumnOrdering,
|
35
|
-
enableHiding,
|
36
34
|
enableColumnPinning,
|
35
|
+
enableHiding,
|
37
36
|
localization,
|
38
37
|
},
|
38
|
+
toggleAllColumnsVisible,
|
39
39
|
} = table;
|
40
|
-
const {
|
40
|
+
const { columnOrder, columnPinning, density } = getState();
|
41
41
|
|
42
42
|
const hideAllColumns = () => {
|
43
43
|
getAllLeafColumns()
|
@@ -75,12 +75,12 @@ export const MRT_ShowHideColumnsMenu = <TData extends Record<string, any>>({
|
|
75
75
|
|
76
76
|
return (
|
77
77
|
<Menu
|
78
|
-
anchorEl={anchorEl}
|
79
|
-
open={!!anchorEl}
|
80
|
-
onClose={() => setAnchorEl(null)}
|
81
78
|
MenuListProps={{
|
82
79
|
dense: density === 'compact',
|
83
80
|
}}
|
81
|
+
anchorEl={anchorEl}
|
82
|
+
onClose={() => setAnchorEl(null)}
|
83
|
+
open={!!anchorEl}
|
84
84
|
>
|
85
85
|
<Box
|
86
86
|
sx={{
|
@@ -28,17 +28,17 @@ export const MRT_ShowHideColumnsMenuItems = <
|
|
28
28
|
TData extends Record<string, any>,
|
29
29
|
>({
|
30
30
|
allColumns,
|
31
|
+
column,
|
31
32
|
hoveredColumn,
|
32
33
|
setHoveredColumn,
|
33
|
-
column,
|
34
34
|
table,
|
35
35
|
}: Props<TData>) => {
|
36
36
|
const {
|
37
37
|
getState,
|
38
38
|
options: {
|
39
39
|
enableColumnOrdering,
|
40
|
-
enableHiding,
|
41
40
|
enableColumnPinning,
|
41
|
+
enableHiding,
|
42
42
|
localization,
|
43
43
|
},
|
44
44
|
setColumnOrder,
|
@@ -89,19 +89,19 @@ export const MRT_ShowHideColumnsMenuItems = <
|
|
89
89
|
<>
|
90
90
|
<MenuItem
|
91
91
|
disableRipple
|
92
|
-
ref={menuItemRef as any}
|
93
92
|
onDragEnter={handleDragEnter}
|
93
|
+
ref={menuItemRef as any}
|
94
94
|
sx={(theme) => ({
|
95
95
|
alignItems: 'center',
|
96
96
|
justifyContent: 'flex-start',
|
97
97
|
my: 0,
|
98
98
|
opacity: isDragging ? 0.5 : 1,
|
99
|
-
outlineOffset: '-2px',
|
100
99
|
outline: isDragging
|
101
100
|
? `2px dashed ${theme.palette.divider}`
|
102
101
|
: hoveredColumn?.id === column.id
|
103
102
|
? `2px dashed ${theme.palette.primary.main}`
|
104
103
|
: 'none',
|
104
|
+
outlineOffset: '-2px',
|
105
105
|
pl: `${(column.depth + 0.5) * 2}rem`,
|
106
106
|
py: '6px',
|
107
107
|
})}
|
@@ -135,6 +135,7 @@ export const MRT_ShowHideColumnsMenuItems = <
|
|
135
135
|
))}
|
136
136
|
{enableHiding ? (
|
137
137
|
<FormControlLabel
|
138
|
+
checked={switchChecked}
|
138
139
|
componentsProps={{
|
139
140
|
typography: {
|
140
141
|
sx: {
|
@@ -143,7 +144,6 @@ export const MRT_ShowHideColumnsMenuItems = <
|
|
143
144
|
},
|
144
145
|
},
|
145
146
|
}}
|
146
|
-
checked={switchChecked}
|
147
147
|
control={
|
148
148
|
<Tooltip
|
149
149
|
arrow
|
@@ -4,9 +4,9 @@ import DialogContent from '@mui/material/DialogContent';
|
|
4
4
|
import DialogTitle from '@mui/material/DialogTitle';
|
5
5
|
import Stack from '@mui/material/Stack';
|
6
6
|
import { MRT_EditActionButtons } from '../buttons/MRT_EditActionButtons';
|
7
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
7
8
|
import { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';
|
8
9
|
import { type MRT_Row, type MRT_TableInstance } from '../types';
|
9
|
-
import { parseFromValuesOrFunc } from '../column.utils';
|
10
10
|
|
11
11
|
interface Props<TData extends Record<string, any>> {
|
12
12
|
open: boolean;
|
@@ -21,15 +21,15 @@ export const MRT_EditRowModal = <TData extends Record<string, any>>({
|
|
21
21
|
getState,
|
22
22
|
options: {
|
23
23
|
localization,
|
24
|
-
onEditingRowCancel,
|
25
|
-
onCreatingRowCancel,
|
26
|
-
renderEditRowModalContent,
|
27
|
-
renderCreateRowModalContent,
|
28
24
|
muiCreateRowModalProps,
|
29
25
|
muiEditRowModalProps,
|
26
|
+
onCreatingRowCancel,
|
27
|
+
onEditingRowCancel,
|
28
|
+
renderCreateRowModalContent,
|
29
|
+
renderEditRowModalContent,
|
30
30
|
},
|
31
|
-
setEditingRow,
|
32
31
|
setCreatingRow,
|
32
|
+
setEditingRow,
|
33
33
|
} = table;
|
34
34
|
const { creatingRow, editingRow } = getState();
|
35
35
|
const row = (creatingRow ?? editingRow) as MRT_Row<TData>;
|
@@ -71,14 +71,14 @@ export const MRT_EditRowModal = <TData extends Record<string, any>>({
|
|
71
71
|
>
|
72
72
|
{((creatingRow &&
|
73
73
|
renderCreateRowModalContent?.({
|
74
|
+
internalEditComponents,
|
74
75
|
row,
|
75
76
|
table,
|
76
|
-
internalEditComponents,
|
77
77
|
})) ||
|
78
78
|
renderEditRowModalContent?.({
|
79
|
+
internalEditComponents,
|
79
80
|
row,
|
80
81
|
table,
|
81
|
-
internalEditComponents,
|
82
82
|
})) ?? (
|
83
83
|
<>
|
84
84
|
<DialogTitle sx={{ textAlign: 'center' }}>
|
package/src/sortingFns.ts
CHANGED
package/src/table/MRT_Table.tsx
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
import { useCallback, useMemo } from 'react';
|
2
2
|
import {
|
3
|
-
defaultRangeExtractor,
|
4
|
-
useVirtualizer,
|
5
3
|
type Range,
|
6
4
|
type Virtualizer,
|
5
|
+
defaultRangeExtractor,
|
6
|
+
useVirtualizer,
|
7
7
|
} from '@tanstack/react-virtual';
|
8
8
|
import Table from '@mui/material/Table';
|
9
|
-
import {
|
10
|
-
import { Memo_MRT_TableBody, MRT_TableBody } from '../body/MRT_TableBody';
|
11
|
-
import { MRT_TableFooter } from '../footer/MRT_TableFooter';
|
9
|
+
import { MRT_TableBody, Memo_MRT_TableBody } from '../body/MRT_TableBody';
|
12
10
|
import { parseCSSVarId, parseFromValuesOrFunc } from '../column.utils';
|
11
|
+
import { MRT_TableFooter } from '../footer/MRT_TableFooter';
|
12
|
+
import { MRT_TableHead } from '../head/MRT_TableHead';
|
13
13
|
import { type MRT_TableInstance } from '../types';
|
14
14
|
|
15
15
|
interface Props<TData extends Record<string, any>> {
|
@@ -26,9 +26,9 @@ export const MRT_Table = <TData extends Record<string, any>>({
|
|
26
26
|
columnVirtualizerInstanceRef,
|
27
27
|
columnVirtualizerOptions,
|
28
28
|
columns,
|
29
|
+
enableColumnPinning,
|
29
30
|
enableColumnResizing,
|
30
31
|
enableColumnVirtualization,
|
31
|
-
enableColumnPinning,
|
32
32
|
enableStickyHeader,
|
33
33
|
enableTableFooter,
|
34
34
|
enableTableHead,
|
@@ -147,6 +147,7 @@ export const MRT_Table = <TData extends Record<string, any>>({
|
|
147
147
|
<Table
|
148
148
|
stickyHeader={enableStickyHeader || isFullScreen}
|
149
149
|
{...tableProps}
|
150
|
+
style={{ ...columnSizeVars, ...tableProps?.style }}
|
150
151
|
sx={(theme) => ({
|
151
152
|
borderCollapse: 'separate',
|
152
153
|
display: layoutMode === 'grid' ? 'grid' : 'table',
|
@@ -154,7 +155,6 @@ export const MRT_Table = <TData extends Record<string, any>>({
|
|
154
155
|
layoutMode !== 'grid' && enableColumnResizing ? 'fixed' : undefined,
|
155
156
|
...(parseFromValuesOrFunc(tableProps?.sx, theme) as any),
|
156
157
|
})}
|
157
|
-
style={{ ...columnSizeVars, ...tableProps?.style }}
|
158
158
|
>
|
159
159
|
{enableTableHead && <MRT_TableHead {...props} />}
|
160
160
|
{memoMode === 'table-body' || columnSizingInfo.isResizingColumn ? (
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { useEffect, useLayoutEffect, useState } from 'react';
|
2
2
|
import TableContainer from '@mui/material/TableContainer';
|
3
3
|
import { MRT_Table } from './MRT_Table';
|
4
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
4
5
|
import { MRT_EditRowModal } from '../modals';
|
5
6
|
import { type MRT_TableInstance } from '../types';
|
6
|
-
import { parseFromValuesOrFunc } from '../column.utils';
|
7
7
|
|
8
8
|
const useIsomorphicLayoutEffect =
|
9
9
|
typeof window !== 'undefined' ? useLayoutEffect : useEffect;
|
@@ -23,9 +23,9 @@ export const MRT_TableContainer = <TData extends Record<string, any>>({
|
|
23
23
|
enableStickyHeader,
|
24
24
|
muiTableContainerProps,
|
25
25
|
},
|
26
|
-
refs: {
|
26
|
+
refs: { bottomToolbarRef, tableContainerRef, topToolbarRef },
|
27
27
|
} = table;
|
28
|
-
const {
|
28
|
+
const { creatingRow, editingRow, isFullScreen } = getState();
|
29
29
|
|
30
30
|
const [totalToolbarHeight, setTotalToolbarHeight] = useState(0);
|
31
31
|
|
@@ -62,20 +62,20 @@ export const MRT_TableContainer = <TData extends Record<string, any>>({
|
|
62
62
|
}
|
63
63
|
}
|
64
64
|
}}
|
65
|
+
style={{
|
66
|
+
maxHeight: isFullScreen
|
67
|
+
? `calc(100vh - ${totalToolbarHeight}px)`
|
68
|
+
: undefined,
|
69
|
+
...tableContainerProps?.style,
|
70
|
+
}}
|
65
71
|
sx={(theme) => ({
|
66
|
-
maxWidth: '100%',
|
67
72
|
maxHeight: enableStickyHeader
|
68
73
|
? `clamp(350px, calc(100vh - ${totalToolbarHeight}px), 9999px)`
|
69
74
|
: undefined,
|
75
|
+
maxWidth: '100%',
|
70
76
|
overflow: 'auto',
|
71
77
|
...(parseFromValuesOrFunc(tableContainerProps?.sx, theme) as any),
|
72
78
|
})}
|
73
|
-
style={{
|
74
|
-
maxHeight: isFullScreen
|
75
|
-
? `calc(100vh - ${totalToolbarHeight}px)`
|
76
|
-
: undefined,
|
77
|
-
...tableContainerProps?.style,
|
78
|
-
}}
|
79
79
|
>
|
80
80
|
<MRT_Table table={table} />
|
81
81
|
{(createModalOpen || editModalOpen) && (
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import Paper from '@mui/material/Paper';
|
2
|
-
import { MRT_TopToolbar } from '../toolbar/MRT_TopToolbar';
|
3
|
-
import { MRT_BottomToolbar } from '../toolbar/MRT_BottomToolbar';
|
4
2
|
import { MRT_TableContainer } from './MRT_TableContainer';
|
5
|
-
import { type MRT_TableInstance } from '../types';
|
6
3
|
import { parseFromValuesOrFunc } from '../column.utils';
|
4
|
+
import { MRT_BottomToolbar } from '../toolbar/MRT_BottomToolbar';
|
5
|
+
import { MRT_TopToolbar } from '../toolbar/MRT_TopToolbar';
|
6
|
+
import { type MRT_TableInstance } from '../types';
|
7
7
|
|
8
8
|
interface Props<TData extends Record<string, any>> {
|
9
9
|
table: MRT_TableInstance<TData>;
|
@@ -38,13 +38,7 @@ export const MRT_TablePaper = <TData extends Record<string, any>>({
|
|
38
38
|
tablePaperProps.ref.current = ref;
|
39
39
|
}
|
40
40
|
}}
|
41
|
-
sx={(theme) => ({
|
42
|
-
overflow: 'hidden',
|
43
|
-
transition: 'all 100ms ease-in-out',
|
44
|
-
...(parseFromValuesOrFunc(tablePaperProps?.sx, theme) as any),
|
45
|
-
})}
|
46
41
|
style={{
|
47
|
-
...tablePaperProps?.style,
|
48
42
|
...(isFullScreen
|
49
43
|
? {
|
50
44
|
bottom: 0,
|
@@ -61,7 +55,13 @@ export const MRT_TablePaper = <TData extends Record<string, any>>({
|
|
61
55
|
zIndex: 10,
|
62
56
|
}
|
63
57
|
: {}),
|
58
|
+
...tablePaperProps?.style,
|
64
59
|
}}
|
60
|
+
sx={(theme) => ({
|
61
|
+
overflow: 'hidden',
|
62
|
+
transition: 'all 100ms ease-in-out',
|
63
|
+
...(parseFromValuesOrFunc(tablePaperProps?.sx, theme) as any),
|
64
|
+
})}
|
65
65
|
>
|
66
66
|
{enableTopToolbar &&
|
67
67
|
(parseFromValuesOrFunc(renderTopToolbar, { table }) ?? (
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import Box from '@mui/material/Box';
|
2
2
|
import Toolbar from '@mui/material/Toolbar';
|
3
|
-
import useMediaQuery from '@mui/material/useMediaQuery';
|
4
3
|
import { alpha } from '@mui/material/styles';
|
4
|
+
import useMediaQuery from '@mui/material/useMediaQuery';
|
5
|
+
import { MRT_LinearProgressBar } from './MRT_LinearProgressBar';
|
5
6
|
import { MRT_TablePagination } from './MRT_TablePagination';
|
6
7
|
import { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';
|
7
8
|
import { MRT_ToolbarDropZone } from './MRT_ToolbarDropZone';
|
8
|
-
import { MRT_LinearProgressBar } from './MRT_LinearProgressBar';
|
9
9
|
import { commonToolbarStyles } from './MRT_TopToolbar';
|
10
|
-
import { type MRT_TableInstance } from '../types';
|
11
10
|
import { parseFromValuesOrFunc } from '../column.utils';
|
11
|
+
import { type MRT_TableInstance } from '../types';
|
12
12
|
|
13
13
|
interface Props<TData extends Record<string, any>> {
|
14
14
|
table: MRT_TableInstance<TData>;
|
@@ -98,8 +98,8 @@ export const MRT_BottomToolbar = <TData extends Record<string, any>>({
|
|
98
98
|
}}
|
99
99
|
>
|
100
100
|
{enablePagination &&
|
101
|
-
['
|
102
|
-
<MRT_TablePagination table={table}
|
101
|
+
['both', 'bottom'].includes(positionPagination ?? '') && (
|
102
|
+
<MRT_TablePagination position="bottom" table={table} />
|
103
103
|
)}
|
104
104
|
</Box>
|
105
105
|
</Box>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import Collapse from '@mui/material/Collapse';
|
2
2
|
import LinearProgress from '@mui/material/LinearProgress';
|
3
|
-
import { type MRT_TableInstance } from '../types';
|
4
3
|
import { parseFromValuesOrFunc } from '../column.utils';
|
4
|
+
import { type MRT_TableInstance } from '../types';
|
5
5
|
|
6
6
|
interface Props<TData extends Record<string, any>> {
|
7
7
|
isTopToolbar: boolean;
|
@@ -13,8 +13,8 @@ export const MRT_LinearProgressBar = <TData extends Record<string, any>>({
|
|
13
13
|
table,
|
14
14
|
}: Props<TData>) => {
|
15
15
|
const {
|
16
|
-
options: { muiLinearProgressProps },
|
17
16
|
getState,
|
17
|
+
options: { muiLinearProgressProps },
|
18
18
|
} = table;
|
19
19
|
const { isLoading, showProgressBars } = getState();
|
20
20
|
|
@@ -27,17 +27,17 @@ export const MRT_LinearProgressBar = <TData extends Record<string, any>>({
|
|
27
27
|
<Collapse
|
28
28
|
in={isLoading || showProgressBars}
|
29
29
|
mountOnEnter
|
30
|
-
unmountOnExit
|
31
30
|
sx={{
|
32
31
|
bottom: isTopToolbar ? 0 : undefined,
|
33
32
|
position: 'absolute',
|
34
33
|
top: !isTopToolbar ? 0 : undefined,
|
35
34
|
width: '100%',
|
36
35
|
}}
|
36
|
+
unmountOnExit
|
37
37
|
>
|
38
38
|
<LinearProgress
|
39
|
-
aria-label="Loading"
|
40
39
|
aria-busy="true"
|
40
|
+
aria-label="Loading"
|
41
41
|
sx={{ position: 'relative' }}
|
42
42
|
{...linearProgressProps}
|
43
43
|
/>
|
@@ -1,31 +1,31 @@
|
|
1
1
|
import { type ChangeEvent } from 'react';
|
2
2
|
import TablePagination from '@mui/material/TablePagination';
|
3
|
-
import { type MRT_TableInstance } from '../types';
|
4
3
|
import { parseFromValuesOrFunc } from '../column.utils';
|
4
|
+
import { type MRT_TableInstance } from '../types';
|
5
5
|
|
6
6
|
interface Props<TData extends Record<string, any>> {
|
7
|
-
position?: '
|
7
|
+
position?: 'bottom' | 'top';
|
8
8
|
table: MRT_TableInstance<TData>;
|
9
9
|
}
|
10
10
|
|
11
11
|
export const MRT_TablePagination = <TData extends Record<string, any>>({
|
12
|
-
table,
|
13
12
|
position = 'bottom',
|
13
|
+
table,
|
14
14
|
}: Props<TData>) => {
|
15
15
|
const {
|
16
16
|
getPrePaginationRowModel,
|
17
17
|
getState,
|
18
|
-
setPageIndex,
|
19
|
-
setPageSize,
|
20
18
|
options: {
|
21
|
-
muiTablePaginationProps,
|
22
19
|
enableToolbarInternalActions,
|
23
20
|
localization,
|
21
|
+
muiTablePaginationProps,
|
24
22
|
rowCount,
|
25
23
|
},
|
24
|
+
setPageIndex,
|
25
|
+
setPageSize,
|
26
26
|
} = table;
|
27
27
|
const {
|
28
|
-
pagination: {
|
28
|
+
pagination: { pageIndex = 0, pageSize = 10 },
|
29
29
|
showGlobalFilter,
|
30
30
|
} = getState();
|
31
31
|
|
@@ -53,7 +53,7 @@ export const MRT_TablePagination = <TData extends Record<string, any>>({
|
|
53
53
|
? localization.goToNextPage
|
54
54
|
: localization.goToPreviousPage
|
55
55
|
}
|
56
|
-
labelDisplayedRows={({ from, to
|
56
|
+
labelDisplayedRows={({ count, from, to }) =>
|
57
57
|
`${from}-${to} ${localization.of} ${count}`
|
58
58
|
}
|
59
59
|
labelRowsPerPage={localization.rowsPerPage}
|
@@ -69,28 +69,28 @@ export const MRT_TablePagination = <TData extends Record<string, any>>({
|
|
69
69
|
showLastButton={showFirstLastPageButtons}
|
70
70
|
{...tablePaginationProps}
|
71
71
|
SelectProps={{
|
72
|
-
sx: { m: '0 1rem 0 1ch' },
|
73
72
|
MenuProps: { MenuListProps: { disablePadding: true }, sx: { m: 0 } },
|
73
|
+
sx: { m: '0 1rem 0 1ch' },
|
74
74
|
...tablePaginationProps?.SelectProps,
|
75
75
|
}}
|
76
76
|
sx={(theme) => ({
|
77
|
-
'& .MuiTablePagination-
|
78
|
-
display: 'flex',
|
79
|
-
alignItems: 'center',
|
80
|
-
},
|
81
|
-
'& .MuiTablePagination-selectLabel': {
|
82
|
-
m: '0 -1px',
|
83
|
-
},
|
84
|
-
'&. MuiInputBase-root': {
|
77
|
+
'& . MuiTablePagination-select': {
|
85
78
|
m: '0 1px',
|
86
79
|
},
|
87
|
-
'& .
|
80
|
+
'& .MuiTablePagination-actions': {
|
88
81
|
m: '0 1px',
|
89
82
|
},
|
90
83
|
'& .MuiTablePagination-displayedRows': {
|
91
84
|
m: '0 1px',
|
92
85
|
},
|
93
|
-
'& .MuiTablePagination-
|
86
|
+
'& .MuiTablePagination-selectLabel': {
|
87
|
+
m: '0 -1px',
|
88
|
+
},
|
89
|
+
'& .MuiTablePagination-toolbar': {
|
90
|
+
alignItems: 'center',
|
91
|
+
display: 'flex',
|
92
|
+
},
|
93
|
+
'&. MuiInputBase-root': {
|
94
94
|
m: '0 1px',
|
95
95
|
},
|
96
96
|
mt:
|
@@ -4,8 +4,8 @@ import AlertTitle from '@mui/material/AlertTitle';
|
|
4
4
|
import Box from '@mui/material/Box';
|
5
5
|
import Chip from '@mui/material/Chip';
|
6
6
|
import Collapse from '@mui/material/Collapse';
|
7
|
-
import { type MRT_TableInstance } from '../types';
|
8
7
|
import { parseFromValuesOrFunc } from '../column.utils';
|
8
|
+
import { type MRT_TableInstance } from '../types';
|
9
9
|
|
10
10
|
interface Props<TData extends Record<string, any>> {
|
11
11
|
stackAlertBanner: boolean;
|
@@ -22,8 +22,8 @@ export const MRT_ToolbarAlertBanner = <TData extends Record<string, any>>({
|
|
22
22
|
getState,
|
23
23
|
options: {
|
24
24
|
localization,
|
25
|
-
muiToolbarAlertBannerProps,
|
26
25
|
muiToolbarAlertBannerChipProps,
|
26
|
+
muiToolbarAlertBannerProps,
|
27
27
|
positionToolbarAlertBanner,
|
28
28
|
rowCount,
|
29
29
|
},
|
@@ -81,13 +81,13 @@ export const MRT_ToolbarAlertBanner = <TData extends Record<string, any>>({
|
|
81
81
|
borderRadius: 0,
|
82
82
|
fontSize: '1rem',
|
83
83
|
left: 0,
|
84
|
-
p: 0,
|
85
|
-
position: 'relative',
|
86
84
|
mb: stackAlertBanner
|
87
85
|
? 0
|
88
86
|
: positionToolbarAlertBanner === 'bottom'
|
89
87
|
? '-1rem'
|
90
88
|
: undefined,
|
89
|
+
p: 0,
|
90
|
+
position: 'relative',
|
91
91
|
right: 0,
|
92
92
|
top: 0,
|
93
93
|
width: '100%',
|