material-react-table 2.0.0-beta.2 → 2.0.0-beta.4
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/index.js +417 -410
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/body/MRT_TableBody.d.ts +4 -3
- package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +5 -5
- package/dist/cjs/types/body/MRT_TableBodyRowGrabHandle.d.ts +3 -2
- package/dist/cjs/types/body/MRT_TableBodyRowPinButton.d.ts +3 -2
- package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +3 -2
- package/dist/cjs/types/buttons/MRT_ColumnPinningButtons.d.ts +3 -2
- package/dist/cjs/types/buttons/MRT_CopyButton.d.ts +3 -4
- package/dist/cjs/types/buttons/MRT_EditActionButtons.d.ts +3 -2
- package/dist/cjs/types/buttons/MRT_ExpandAllButton.d.ts +3 -2
- package/dist/cjs/types/buttons/MRT_ExpandButton.d.ts +2 -1
- package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +2 -2
- package/dist/cjs/types/buttons/MRT_RowPinButton.d.ts +3 -2
- package/dist/cjs/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +3 -2
- package/dist/cjs/types/footer/MRT_TableFooter.d.ts +3 -2
- package/dist/cjs/types/footer/MRT_TableFooterCell.d.ts +3 -2
- package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHead.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadCell.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadCellFilterContainer.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadCellGrabHandle.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadCellResizeHandle.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +3 -2
- package/dist/cjs/types/inputs/MRT_EditCellTextField.d.ts +3 -2
- package/dist/cjs/types/inputs/MRT_FilterCheckbox.d.ts +3 -2
- package/dist/cjs/types/inputs/MRT_FilterRangeFields.d.ts +3 -2
- package/dist/cjs/types/inputs/MRT_FilterRangeSlider.d.ts +3 -2
- package/dist/cjs/types/inputs/MRT_FilterTextField.d.ts +3 -2
- package/dist/cjs/types/inputs/MRT_GlobalFilterTextField.d.ts +3 -2
- package/dist/cjs/types/inputs/MRT_SelectCheckbox.d.ts +3 -2
- package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +3 -2
- package/dist/cjs/types/menus/MRT_FilterOptionMenu.d.ts +3 -2
- package/dist/cjs/types/menus/MRT_RowActionMenu.d.ts +3 -2
- package/dist/cjs/types/menus/MRT_ShowHideColumnsMenu.d.ts +3 -2
- package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +3 -2
- package/dist/cjs/types/modals/MRT_EditRowModal.d.ts +3 -2
- package/dist/cjs/types/table/MRT_Table.d.ts +3 -2
- package/dist/cjs/types/table/MRT_TableContainer.d.ts +3 -2
- package/dist/cjs/types/table/MRT_TableLoadingOverlay.d.ts +7 -0
- package/dist/cjs/types/table/MRT_TablePaper.d.ts +3 -2
- package/dist/cjs/types/table/index.d.ts +1 -0
- package/dist/cjs/types/toolbar/MRT_BottomToolbar.d.ts +3 -2
- package/dist/cjs/types/toolbar/MRT_LinearProgressBar.d.ts +3 -2
- package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +6 -2
- package/dist/cjs/types/toolbar/MRT_ToolbarAlertBanner.d.ts +3 -2
- package/dist/cjs/types/toolbar/MRT_ToolbarDropZone.d.ts +3 -2
- package/dist/cjs/types/toolbar/MRT_ToolbarInternalButtons.d.ts +3 -2
- package/dist/cjs/types/toolbar/MRT_TopToolbar.d.ts +1 -2
- package/dist/cjs/types/types.d.ts +3 -3
- package/dist/esm/material-react-table.esm.js +415 -408
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/body/MRT_TableBody.d.ts +4 -3
- package/dist/esm/types/body/MRT_TableBodyCell.d.ts +5 -5
- package/dist/esm/types/body/MRT_TableBodyRowGrabHandle.d.ts +3 -2
- package/dist/esm/types/body/MRT_TableBodyRowPinButton.d.ts +3 -2
- package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +3 -2
- package/dist/esm/types/buttons/MRT_ColumnPinningButtons.d.ts +3 -2
- package/dist/esm/types/buttons/MRT_CopyButton.d.ts +3 -4
- package/dist/esm/types/buttons/MRT_EditActionButtons.d.ts +3 -2
- package/dist/esm/types/buttons/MRT_ExpandAllButton.d.ts +3 -2
- package/dist/esm/types/buttons/MRT_ExpandButton.d.ts +2 -1
- package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +2 -2
- package/dist/esm/types/buttons/MRT_RowPinButton.d.ts +3 -2
- package/dist/esm/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +3 -2
- package/dist/esm/types/footer/MRT_TableFooter.d.ts +3 -2
- package/dist/esm/types/footer/MRT_TableFooterCell.d.ts +3 -2
- package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHead.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadCell.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadCellFilterContainer.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadCellGrabHandle.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadCellResizeHandle.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadRow.d.ts +3 -2
- package/dist/esm/types/inputs/MRT_EditCellTextField.d.ts +3 -2
- package/dist/esm/types/inputs/MRT_FilterCheckbox.d.ts +3 -2
- package/dist/esm/types/inputs/MRT_FilterRangeFields.d.ts +3 -2
- package/dist/esm/types/inputs/MRT_FilterRangeSlider.d.ts +3 -2
- package/dist/esm/types/inputs/MRT_FilterTextField.d.ts +3 -2
- package/dist/esm/types/inputs/MRT_GlobalFilterTextField.d.ts +3 -2
- package/dist/esm/types/inputs/MRT_SelectCheckbox.d.ts +3 -2
- package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +3 -2
- package/dist/esm/types/menus/MRT_FilterOptionMenu.d.ts +3 -2
- package/dist/esm/types/menus/MRT_RowActionMenu.d.ts +3 -2
- package/dist/esm/types/menus/MRT_ShowHideColumnsMenu.d.ts +3 -2
- package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +3 -2
- package/dist/esm/types/modals/MRT_EditRowModal.d.ts +3 -2
- package/dist/esm/types/table/MRT_Table.d.ts +3 -2
- package/dist/esm/types/table/MRT_TableContainer.d.ts +3 -2
- package/dist/esm/types/table/MRT_TableLoadingOverlay.d.ts +7 -0
- package/dist/esm/types/table/MRT_TablePaper.d.ts +3 -2
- package/dist/esm/types/table/index.d.ts +1 -0
- package/dist/esm/types/toolbar/MRT_BottomToolbar.d.ts +3 -2
- package/dist/esm/types/toolbar/MRT_LinearProgressBar.d.ts +3 -2
- package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +6 -2
- package/dist/esm/types/toolbar/MRT_ToolbarAlertBanner.d.ts +3 -2
- package/dist/esm/types/toolbar/MRT_ToolbarDropZone.d.ts +3 -2
- package/dist/esm/types/toolbar/MRT_ToolbarInternalButtons.d.ts +3 -2
- package/dist/esm/types/toolbar/MRT_TopToolbar.d.ts +1 -2
- package/dist/esm/types/types.d.ts +3 -3
- package/dist/index.d.ts +130 -119
- package/package.json +1 -1
- package/src/body/MRT_TableBody.tsx +8 -4
- package/src/body/MRT_TableBodyCell.tsx +60 -61
- package/src/body/MRT_TableBodyRow.tsx +3 -3
- package/src/body/MRT_TableBodyRowGrabHandle.tsx +10 -5
- package/src/body/MRT_TableBodyRowPinButton.tsx +12 -5
- package/src/body/MRT_TableDetailPanel.tsx +11 -7
- package/src/buttons/MRT_ColumnPinningButtons.tsx +12 -3
- package/src/buttons/MRT_CopyButton.tsx +6 -8
- package/src/buttons/MRT_EditActionButtons.tsx +9 -3
- package/src/buttons/MRT_ExpandAllButton.tsx +9 -5
- package/src/buttons/MRT_ExpandButton.tsx +2 -2
- package/src/buttons/MRT_GrabHandleButton.tsx +8 -5
- package/src/buttons/MRT_RowPinButton.tsx +8 -4
- package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +7 -3
- package/src/column.utils.ts +1 -1
- package/src/footer/MRT_TableFooter.tsx +9 -5
- package/src/footer/MRT_TableFooterCell.tsx +12 -12
- package/src/footer/MRT_TableFooterRow.tsx +10 -6
- package/src/head/MRT_TableHead.tsx +8 -4
- package/src/head/MRT_TableHeadCell.tsx +93 -84
- package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +5 -3
- package/src/head/MRT_TableHeadCellFilterContainer.tsx +4 -2
- package/src/head/MRT_TableHeadCellFilterLabel.tsx +8 -4
- package/src/head/MRT_TableHeadCellGrabHandle.tsx +4 -1
- package/src/head/MRT_TableHeadCellResizeHandle.tsx +7 -4
- package/src/head/MRT_TableHeadCellSortLabel.tsx +28 -12
- package/src/head/MRT_TableHeadRow.tsx +10 -6
- package/src/hooks/useMRT_DisplayColumns.tsx +2 -1
- package/src/inputs/MRT_EditCellTextField.tsx +16 -2
- package/src/inputs/MRT_FilterCheckbox.tsx +4 -2
- package/src/inputs/MRT_FilterRangeFields.tsx +13 -3
- package/src/inputs/MRT_FilterRangeSlider.tsx +4 -2
- package/src/inputs/MRT_FilterTextField.tsx +3 -1
- package/src/inputs/MRT_GlobalFilterTextField.tsx +9 -5
- package/src/inputs/MRT_SelectCheckbox.tsx +8 -4
- package/src/menus/MRT_ColumnActionMenu.tsx +4 -2
- package/src/menus/MRT_FilterOptionMenu.tsx +4 -2
- package/src/menus/MRT_RowActionMenu.tsx +4 -2
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +4 -2
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +6 -3
- package/src/modals/MRT_EditRowModal.tsx +5 -3
- package/src/table/MRT_Table.tsx +25 -31
- package/src/table/MRT_TableContainer.tsx +15 -44
- package/src/table/MRT_TableLoadingOverlay.tsx +53 -0
- package/src/table/MRT_TablePaper.tsx +7 -3
- package/src/table/index.ts +1 -0
- package/src/toolbar/MRT_BottomToolbar.tsx +9 -7
- package/src/toolbar/MRT_LinearProgressBar.tsx +14 -8
- package/src/toolbar/MRT_TablePagination.tsx +18 -8
- package/src/toolbar/MRT_ToolbarAlertBanner.tsx +9 -5
- package/src/toolbar/MRT_ToolbarDropZone.tsx +6 -2
- package/src/toolbar/MRT_ToolbarInternalButtons.tsx +8 -4
- package/src/toolbar/MRT_TopToolbar.tsx +5 -8
- package/src/types.ts +5 -5
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import Badge from '@mui/material/Badge';
|
|
2
2
|
import { type TableCellProps } from '@mui/material/TableCell';
|
|
3
|
-
import TableSortLabel
|
|
3
|
+
import TableSortLabel, {
|
|
4
|
+
type TableSortLabelProps,
|
|
5
|
+
} from '@mui/material/TableSortLabel';
|
|
4
6
|
import Tooltip from '@mui/material/Tooltip';
|
|
7
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
|
5
8
|
import {
|
|
6
9
|
type MRT_Header,
|
|
7
10
|
type MRT_RowData,
|
|
8
11
|
type MRT_TableInstance,
|
|
9
12
|
} from '../types';
|
|
10
13
|
|
|
11
|
-
interface Props<TData extends MRT_RowData> {
|
|
14
|
+
interface Props<TData extends MRT_RowData> extends TableSortLabelProps {
|
|
12
15
|
header: MRT_Header<TData>;
|
|
13
16
|
table: MRT_TableInstance<TData>;
|
|
14
17
|
tableCellProps?: TableCellProps;
|
|
@@ -17,6 +20,7 @@ interface Props<TData extends MRT_RowData> {
|
|
|
17
20
|
export const MRT_TableHeadCellSortLabel = <TData extends MRT_RowData>({
|
|
18
21
|
header,
|
|
19
22
|
table,
|
|
23
|
+
...rest
|
|
20
24
|
}: Props<TData>) => {
|
|
21
25
|
const {
|
|
22
26
|
getState,
|
|
@@ -27,17 +31,20 @@ export const MRT_TableHeadCellSortLabel = <TData extends MRT_RowData>({
|
|
|
27
31
|
} = table;
|
|
28
32
|
const { column } = header;
|
|
29
33
|
const { columnDef } = column;
|
|
30
|
-
const { sorting } = getState();
|
|
34
|
+
const { isLoading, showSkeletons, sorting } = getState();
|
|
31
35
|
|
|
32
36
|
const isSorted = !!column.getIsSorted();
|
|
33
37
|
|
|
34
|
-
const sortTooltip =
|
|
35
|
-
|
|
36
|
-
?
|
|
37
|
-
:
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
const sortTooltip =
|
|
39
|
+
isLoading || showSkeletons
|
|
40
|
+
? ''
|
|
41
|
+
: column.getIsSorted()
|
|
42
|
+
? column.getIsSorted() === 'desc'
|
|
43
|
+
? localization.sortedByColumnDesc.replace('{column}', columnDef.header)
|
|
44
|
+
: localization.sortedByColumnAsc.replace('{column}', columnDef.header)
|
|
45
|
+
: column.getNextSortingOrder() === 'desc'
|
|
46
|
+
? localization.sortByColumnDesc.replace('{column}', columnDef.header)
|
|
47
|
+
: localization.sortByColumnAsc.replace('{column}', columnDef.header);
|
|
41
48
|
|
|
42
49
|
return (
|
|
43
50
|
<Tooltip arrow placement="top" title={sortTooltip}>
|
|
@@ -65,12 +72,21 @@ export const MRT_TableHeadCellSortLabel = <TData extends MRT_RowData>({
|
|
|
65
72
|
e.stopPropagation();
|
|
66
73
|
header.column.getToggleSortingHandler()?.(e);
|
|
67
74
|
}}
|
|
68
|
-
|
|
75
|
+
{...rest}
|
|
76
|
+
sx={(theme) => ({
|
|
77
|
+
'.MuiTableSortLabel-icon': {
|
|
78
|
+
color: `${
|
|
79
|
+
theme.palette.mode === 'dark'
|
|
80
|
+
? theme.palette.text.primary
|
|
81
|
+
: theme.palette.text.secondary
|
|
82
|
+
} !important`,
|
|
83
|
+
},
|
|
69
84
|
flex: '0 0',
|
|
70
85
|
opacity: isSorted ? 1 : 0.3,
|
|
71
86
|
transition: 'all 150ms ease-in-out',
|
|
72
87
|
width: '3ch',
|
|
73
|
-
|
|
88
|
+
...(parseFromValuesOrFunc(rest?.sx, theme) as any),
|
|
89
|
+
})}
|
|
74
90
|
/>
|
|
75
91
|
</Badge>
|
|
76
92
|
</Tooltip>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type VirtualItem } from '@tanstack/react-virtual';
|
|
2
|
-
import TableRow from '@mui/material/TableRow';
|
|
2
|
+
import TableRow, { type TableRowProps } from '@mui/material/TableRow';
|
|
3
3
|
import { alpha, lighten } from '@mui/material/styles';
|
|
4
4
|
import { MRT_TableHeadCell } from './MRT_TableHeadCell';
|
|
5
5
|
import { parseFromValuesOrFunc } from '../column.utils';
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
type MRT_TableInstance,
|
|
11
11
|
} from '../types';
|
|
12
12
|
|
|
13
|
-
interface Props<TData extends MRT_RowData> {
|
|
13
|
+
interface Props<TData extends MRT_RowData> extends TableRowProps {
|
|
14
14
|
headerGroup: MRT_HeaderGroup<TData>;
|
|
15
15
|
table: MRT_TableInstance<TData>;
|
|
16
16
|
virtualColumns?: VirtualItem[];
|
|
@@ -24,15 +24,19 @@ export const MRT_TableHeadRow = <TData extends MRT_RowData>({
|
|
|
24
24
|
virtualColumns,
|
|
25
25
|
virtualPaddingLeft,
|
|
26
26
|
virtualPaddingRight,
|
|
27
|
+
...rest
|
|
27
28
|
}: Props<TData>) => {
|
|
28
29
|
const {
|
|
29
30
|
options: { layoutMode, muiTableHeadRowProps },
|
|
30
31
|
} = table;
|
|
31
32
|
|
|
32
|
-
const tableRowProps =
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
const tableRowProps = {
|
|
34
|
+
...parseFromValuesOrFunc(muiTableHeadRowProps, {
|
|
35
|
+
headerGroup,
|
|
36
|
+
table,
|
|
37
|
+
}),
|
|
38
|
+
rest,
|
|
39
|
+
};
|
|
36
40
|
|
|
37
41
|
return (
|
|
38
42
|
<TableRow
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
} from '../types';
|
|
17
17
|
|
|
18
18
|
const blankColProps = {
|
|
19
|
+
children: null,
|
|
19
20
|
sx: {
|
|
20
21
|
flex: '1 0 auto',
|
|
21
22
|
minWidth: 0,
|
|
@@ -139,7 +140,7 @@ export const useMRT_DisplayColumns = <TData extends MRT_RowData>({
|
|
|
139
140
|
) && {
|
|
140
141
|
columnDefType: 'display',
|
|
141
142
|
header: '',
|
|
142
|
-
id: 'spacer',
|
|
143
|
+
id: 'mrt-row-spacer',
|
|
143
144
|
muiTableBodyCellProps: blankColProps,
|
|
144
145
|
muiTableFooterCellProps: blankColProps,
|
|
145
146
|
muiTableHeadCellProps: blankColProps,
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
type MRT_TableInstance,
|
|
15
15
|
} from '../types';
|
|
16
16
|
|
|
17
|
-
interface Props<TData extends MRT_RowData> {
|
|
17
|
+
interface Props<TData extends MRT_RowData> extends TextFieldProps<'standard'> {
|
|
18
18
|
cell: MRT_Cell<TData>;
|
|
19
19
|
table: MRT_TableInstance<TData>;
|
|
20
20
|
}
|
|
@@ -22,6 +22,7 @@ interface Props<TData extends MRT_RowData> {
|
|
|
22
22
|
export const MRT_EditCellTextField = <TData extends MRT_RowData>({
|
|
23
23
|
cell,
|
|
24
24
|
table,
|
|
25
|
+
...rest
|
|
25
26
|
}: Props<TData>) => {
|
|
26
27
|
const {
|
|
27
28
|
getState,
|
|
@@ -54,6 +55,7 @@ export const MRT_EditCellTextField = <TData extends MRT_RowData>({
|
|
|
54
55
|
row,
|
|
55
56
|
table,
|
|
56
57
|
}),
|
|
58
|
+
...rest,
|
|
57
59
|
};
|
|
58
60
|
|
|
59
61
|
const saveInputValueToRowCache = (newValue: string) => {
|
|
@@ -104,7 +106,7 @@ export const MRT_EditCellTextField = <TData extends MRT_RowData>({
|
|
|
104
106
|
}
|
|
105
107
|
}}
|
|
106
108
|
label={
|
|
107
|
-
|
|
109
|
+
['custom', 'modal'].includes(
|
|
108
110
|
(isCreating ? createDisplayMode : editDisplayMode) as string,
|
|
109
111
|
)
|
|
110
112
|
? columnDef.header
|
|
@@ -120,15 +122,27 @@ export const MRT_EditCellTextField = <TData extends MRT_RowData>({
|
|
|
120
122
|
: undefined
|
|
121
123
|
}
|
|
122
124
|
select={isSelectEdit}
|
|
125
|
+
size="small"
|
|
123
126
|
value={value}
|
|
124
127
|
variant="standard"
|
|
125
128
|
{...textFieldProps}
|
|
126
129
|
InputProps={{
|
|
127
130
|
disableUnderline: editDisplayMode === 'table',
|
|
128
131
|
...textFieldProps.InputProps,
|
|
132
|
+
sx: (theme) => ({
|
|
133
|
+
mb: 0,
|
|
134
|
+
...(parseFromValuesOrFunc(
|
|
135
|
+
textFieldProps?.InputProps?.sx,
|
|
136
|
+
theme,
|
|
137
|
+
) as any),
|
|
138
|
+
}),
|
|
129
139
|
}}
|
|
130
140
|
inputProps={{
|
|
131
141
|
autoComplete: 'new-password', // disable autocomplete and autofill
|
|
142
|
+
sx: {
|
|
143
|
+
p: 0,
|
|
144
|
+
...textFieldProps?.inputProps?.sx,
|
|
145
|
+
},
|
|
132
146
|
...textFieldProps.inputProps,
|
|
133
147
|
}}
|
|
134
148
|
onBlur={handleBlur}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import Checkbox from '@mui/material/Checkbox';
|
|
1
|
+
import Checkbox, { type CheckboxProps } from '@mui/material/Checkbox';
|
|
2
2
|
import FormControlLabel from '@mui/material/FormControlLabel';
|
|
3
3
|
import Tooltip from '@mui/material/Tooltip';
|
|
4
4
|
import { parseFromValuesOrFunc } from '../column.utils';
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
type MRT_TableInstance,
|
|
9
9
|
} from '../types';
|
|
10
10
|
|
|
11
|
-
interface Props<TData extends MRT_RowData> {
|
|
11
|
+
interface Props<TData extends MRT_RowData> extends CheckboxProps {
|
|
12
12
|
column: MRT_Column<TData>;
|
|
13
13
|
table: MRT_TableInstance<TData>;
|
|
14
14
|
}
|
|
@@ -16,6 +16,7 @@ interface Props<TData extends MRT_RowData> {
|
|
|
16
16
|
export const MRT_FilterCheckbox = <TData extends MRT_RowData>({
|
|
17
17
|
column,
|
|
18
18
|
table,
|
|
19
|
+
...rest
|
|
19
20
|
}: Props<TData>) => {
|
|
20
21
|
const {
|
|
21
22
|
getState,
|
|
@@ -33,6 +34,7 @@ export const MRT_FilterCheckbox = <TData extends MRT_RowData>({
|
|
|
33
34
|
column,
|
|
34
35
|
table,
|
|
35
36
|
}),
|
|
37
|
+
...rest,
|
|
36
38
|
};
|
|
37
39
|
|
|
38
40
|
const filterLabel = localization.filterByColumn?.replace(
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import Box from '@mui/material/Box';
|
|
1
|
+
import Box, { type BoxProps } from '@mui/material/Box';
|
|
2
2
|
import { MRT_FilterTextField } from './MRT_FilterTextField';
|
|
3
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
|
3
4
|
import {
|
|
4
5
|
type MRT_Header,
|
|
5
6
|
type MRT_RowData,
|
|
6
7
|
type MRT_TableInstance,
|
|
7
8
|
} from '../types';
|
|
8
9
|
|
|
9
|
-
interface Props<TData extends MRT_RowData> {
|
|
10
|
+
interface Props<TData extends MRT_RowData> extends BoxProps {
|
|
10
11
|
header: MRT_Header<TData>;
|
|
11
12
|
table: MRT_TableInstance<TData>;
|
|
12
13
|
}
|
|
@@ -14,9 +15,18 @@ interface Props<TData extends MRT_RowData> {
|
|
|
14
15
|
export const MRT_FilterRangeFields = <TData extends MRT_RowData>({
|
|
15
16
|
header,
|
|
16
17
|
table,
|
|
18
|
+
...rest
|
|
17
19
|
}: Props<TData>) => {
|
|
18
20
|
return (
|
|
19
|
-
<Box
|
|
21
|
+
<Box
|
|
22
|
+
{...rest}
|
|
23
|
+
sx={(theme) => ({
|
|
24
|
+
display: 'grid',
|
|
25
|
+
gap: '1rem',
|
|
26
|
+
gridTemplateColumns: '1fr 1fr',
|
|
27
|
+
...(parseFromValuesOrFunc(rest?.sx, theme) as any),
|
|
28
|
+
})}
|
|
29
|
+
>
|
|
20
30
|
<MRT_FilterTextField header={header} rangeFilterIndex={0} table={table} />
|
|
21
31
|
<MRT_FilterTextField header={header} rangeFilterIndex={1} table={table} />
|
|
22
32
|
</Box>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useEffect, useRef, useState } from 'react';
|
|
2
2
|
import FormHelperText from '@mui/material/FormHelperText';
|
|
3
|
-
import Slider from '@mui/material/Slider';
|
|
3
|
+
import Slider, { type SliderProps } from '@mui/material/Slider';
|
|
4
4
|
import Stack from '@mui/material/Stack';
|
|
5
5
|
import { parseFromValuesOrFunc } from '../column.utils';
|
|
6
6
|
import {
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
type MRT_TableInstance,
|
|
10
10
|
} from '../types';
|
|
11
11
|
|
|
12
|
-
interface Props<TData extends MRT_RowData> {
|
|
12
|
+
interface Props<TData extends MRT_RowData> extends SliderProps {
|
|
13
13
|
header: MRT_Header<TData>;
|
|
14
14
|
table: MRT_TableInstance<TData>;
|
|
15
15
|
}
|
|
@@ -17,6 +17,7 @@ interface Props<TData extends MRT_RowData> {
|
|
|
17
17
|
export const MRT_FilterRangeSlider = <TData extends MRT_RowData>({
|
|
18
18
|
header,
|
|
19
19
|
table,
|
|
20
|
+
...rest
|
|
20
21
|
}: Props<TData>) => {
|
|
21
22
|
const {
|
|
22
23
|
options: { enableColumnFilterModes, localization, muiFilterSliderProps },
|
|
@@ -33,6 +34,7 @@ export const MRT_FilterRangeSlider = <TData extends MRT_RowData>({
|
|
|
33
34
|
const sliderProps = {
|
|
34
35
|
...parseFromValuesOrFunc(muiFilterSliderProps, { column, table }),
|
|
35
36
|
...parseFromValuesOrFunc(columnDef.muiFilterSliderProps, { column, table }),
|
|
37
|
+
...rest,
|
|
36
38
|
};
|
|
37
39
|
|
|
38
40
|
let [min, max] =
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
type MRT_TableInstance,
|
|
30
30
|
} from '../types';
|
|
31
31
|
|
|
32
|
-
interface Props<TData extends MRT_RowData> {
|
|
32
|
+
interface Props<TData extends MRT_RowData> extends TextFieldProps<'standard'> {
|
|
33
33
|
header: MRT_Header<TData>;
|
|
34
34
|
rangeFilterIndex?: number;
|
|
35
35
|
table: MRT_TableInstance<TData>;
|
|
@@ -39,6 +39,7 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
|
39
39
|
header,
|
|
40
40
|
rangeFilterIndex,
|
|
41
41
|
table,
|
|
42
|
+
...rest
|
|
42
43
|
}: Props<TData>) => {
|
|
43
44
|
const {
|
|
44
45
|
options: {
|
|
@@ -64,6 +65,7 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
|
64
65
|
column,
|
|
65
66
|
table,
|
|
66
67
|
}),
|
|
68
|
+
...rest,
|
|
67
69
|
};
|
|
68
70
|
|
|
69
71
|
const autocompleteProps = {
|
|
@@ -9,19 +9,20 @@ import {
|
|
|
9
9
|
import Collapse from '@mui/material/Collapse';
|
|
10
10
|
import IconButton from '@mui/material/IconButton';
|
|
11
11
|
import InputAdornment from '@mui/material/InputAdornment';
|
|
12
|
-
import TextField from '@mui/material/TextField';
|
|
12
|
+
import TextField, { type TextFieldProps } from '@mui/material/TextField';
|
|
13
13
|
import Tooltip from '@mui/material/Tooltip';
|
|
14
14
|
import { debounce } from '@mui/material/utils';
|
|
15
15
|
import { parseFromValuesOrFunc } from '../column.utils';
|
|
16
16
|
import { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';
|
|
17
17
|
import { type MRT_RowData, type MRT_TableInstance } from '../types';
|
|
18
18
|
|
|
19
|
-
interface Props<TData extends MRT_RowData> {
|
|
19
|
+
interface Props<TData extends MRT_RowData> extends TextFieldProps<'standard'> {
|
|
20
20
|
table: MRT_TableInstance<TData>;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export const MRT_GlobalFilterTextField = <TData extends MRT_RowData>({
|
|
24
24
|
table,
|
|
25
|
+
...rest
|
|
25
26
|
}: Props<TData>) => {
|
|
26
27
|
const {
|
|
27
28
|
getState,
|
|
@@ -37,9 +38,12 @@ export const MRT_GlobalFilterTextField = <TData extends MRT_RowData>({
|
|
|
37
38
|
} = table;
|
|
38
39
|
const { globalFilter, showGlobalFilter } = getState();
|
|
39
40
|
|
|
40
|
-
const textFieldProps =
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
const textFieldProps = {
|
|
42
|
+
...parseFromValuesOrFunc(muiSearchTextFieldProps, {
|
|
43
|
+
table,
|
|
44
|
+
}),
|
|
45
|
+
...rest,
|
|
46
|
+
};
|
|
43
47
|
|
|
44
48
|
const isMounted = useRef(false);
|
|
45
49
|
const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
type MRT_TableInstance,
|
|
11
11
|
} from '../types';
|
|
12
12
|
|
|
13
|
-
interface Props<TData extends MRT_RowData> {
|
|
13
|
+
interface Props<TData extends MRT_RowData> extends CheckboxProps {
|
|
14
14
|
row?: MRT_Row<TData>;
|
|
15
15
|
selectAll?: boolean;
|
|
16
16
|
table: MRT_TableInstance<TData>;
|
|
@@ -20,6 +20,7 @@ export const MRT_SelectCheckbox = <TData extends MRT_RowData>({
|
|
|
20
20
|
row,
|
|
21
21
|
selectAll,
|
|
22
22
|
table,
|
|
23
|
+
...rest
|
|
23
24
|
}: Props<TData>) => {
|
|
24
25
|
const {
|
|
25
26
|
getState,
|
|
@@ -35,9 +36,12 @@ export const MRT_SelectCheckbox = <TData extends MRT_RowData>({
|
|
|
35
36
|
} = table;
|
|
36
37
|
const { density, isLoading } = getState();
|
|
37
38
|
|
|
38
|
-
const checkboxProps =
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
const checkboxProps = {
|
|
40
|
+
...(!row
|
|
41
|
+
? parseFromValuesOrFunc(muiSelectAllCheckboxProps, { table })
|
|
42
|
+
: parseFromValuesOrFunc(muiSelectCheckboxProps, { row, table })),
|
|
43
|
+
...rest,
|
|
44
|
+
};
|
|
41
45
|
|
|
42
46
|
const allRowsSelected = selectAll
|
|
43
47
|
? selectAllMode === 'page'
|
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import Box from '@mui/material/Box';
|
|
4
4
|
import IconButton from '@mui/material/IconButton';
|
|
5
5
|
import ListItemIcon from '@mui/material/ListItemIcon';
|
|
6
|
-
import Menu from '@mui/material/Menu';
|
|
6
|
+
import Menu, { type MenuProps } from '@mui/material/Menu';
|
|
7
7
|
import MenuItem from '@mui/material/MenuItem';
|
|
8
8
|
import { MRT_FilterOptionMenu } from './MRT_FilterOptionMenu';
|
|
9
9
|
import {
|
|
@@ -24,7 +24,7 @@ export const commonListItemStyles = {
|
|
|
24
24
|
display: 'flex',
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
interface Props<TData extends MRT_RowData> {
|
|
27
|
+
interface Props<TData extends MRT_RowData> extends Partial<MenuProps> {
|
|
28
28
|
anchorEl: HTMLElement | null;
|
|
29
29
|
header: MRT_Header<TData>;
|
|
30
30
|
setAnchorEl: (anchorEl: HTMLElement | null) => void;
|
|
@@ -36,6 +36,7 @@ export const MRT_ColumnActionMenu = <TData extends MRT_RowData>({
|
|
|
36
36
|
header,
|
|
37
37
|
setAnchorEl,
|
|
38
38
|
table,
|
|
39
|
+
...rest
|
|
39
40
|
}: Props<TData>) => {
|
|
40
41
|
const {
|
|
41
42
|
getState,
|
|
@@ -396,6 +397,7 @@ export const MRT_ColumnActionMenu = <TData extends MRT_RowData>({
|
|
|
396
397
|
anchorEl={anchorEl}
|
|
397
398
|
onClose={() => setAnchorEl(null)}
|
|
398
399
|
open={!!anchorEl}
|
|
400
|
+
{...rest}
|
|
399
401
|
>
|
|
400
402
|
{columnDef.renderColumnActionsMenuItems?.({
|
|
401
403
|
closeMenu: () => setAnchorEl(null),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
2
|
import Box from '@mui/material/Box';
|
|
3
|
-
import Menu from '@mui/material/Menu';
|
|
3
|
+
import Menu, { type MenuProps } from '@mui/material/Menu';
|
|
4
4
|
import MenuItem from '@mui/material/MenuItem';
|
|
5
5
|
import {
|
|
6
6
|
type MRT_FilterOption,
|
|
@@ -105,7 +105,7 @@ const emptyModes = ['empty', 'notEmpty'];
|
|
|
105
105
|
const arrModes = ['arrIncludesSome', 'arrIncludesAll', 'arrIncludes'];
|
|
106
106
|
const rangeVariants = ['range-slider', 'date-range', 'range'];
|
|
107
107
|
|
|
108
|
-
interface Props<TData extends MRT_RowData> {
|
|
108
|
+
interface Props<TData extends MRT_RowData> extends Partial<MenuProps> {
|
|
109
109
|
anchorEl: HTMLElement | null;
|
|
110
110
|
header?: MRT_Header<TData>;
|
|
111
111
|
onSelect?: () => void;
|
|
@@ -121,6 +121,7 @@ export const MRT_FilterOptionMenu = <TData extends MRT_RowData>({
|
|
|
121
121
|
setAnchorEl,
|
|
122
122
|
setFilterValue,
|
|
123
123
|
table,
|
|
124
|
+
...rest
|
|
124
125
|
}: Props<TData>) => {
|
|
125
126
|
const {
|
|
126
127
|
getState,
|
|
@@ -240,6 +241,7 @@ export const MRT_FilterOptionMenu = <TData extends MRT_RowData>({
|
|
|
240
241
|
anchorOrigin={{ horizontal: 'right', vertical: 'center' }}
|
|
241
242
|
onClose={() => setAnchorEl(null)}
|
|
242
243
|
open={!!anchorEl}
|
|
244
|
+
{...rest}
|
|
243
245
|
>
|
|
244
246
|
{(header && column && columnDef
|
|
245
247
|
? columnDef.renderColumnFilterModeMenuItems?.({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type MouseEvent } from 'react';
|
|
2
2
|
import Box from '@mui/material/Box';
|
|
3
3
|
import ListItemIcon from '@mui/material/ListItemIcon';
|
|
4
|
-
import Menu from '@mui/material/Menu';
|
|
4
|
+
import Menu, { type MenuProps } from '@mui/material/Menu';
|
|
5
5
|
import MenuItem from '@mui/material/MenuItem';
|
|
6
6
|
import {
|
|
7
7
|
commonListItemStyles,
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
type MRT_TableInstance,
|
|
15
15
|
} from '../types';
|
|
16
16
|
|
|
17
|
-
interface Props<TData extends MRT_RowData> {
|
|
17
|
+
interface Props<TData extends MRT_RowData> extends Partial<MenuProps> {
|
|
18
18
|
anchorEl: HTMLElement | null;
|
|
19
19
|
handleEdit: (event: MouseEvent) => void;
|
|
20
20
|
row: MRT_Row<TData>;
|
|
@@ -28,6 +28,7 @@ export const MRT_RowActionMenu = <TData extends MRT_RowData>({
|
|
|
28
28
|
row,
|
|
29
29
|
setAnchorEl,
|
|
30
30
|
table,
|
|
31
|
+
...rest
|
|
31
32
|
}: Props<TData>) => {
|
|
32
33
|
const {
|
|
33
34
|
getState,
|
|
@@ -49,6 +50,7 @@ export const MRT_RowActionMenu = <TData extends MRT_RowData>({
|
|
|
49
50
|
onClick={(event) => event.stopPropagation()}
|
|
50
51
|
onClose={() => setAnchorEl(null)}
|
|
51
52
|
open={!!anchorEl}
|
|
53
|
+
{...rest}
|
|
52
54
|
>
|
|
53
55
|
{parseFromValuesOrFunc(enableEditing, row) && (
|
|
54
56
|
<MenuItem onClick={handleEdit} sx={commonMenuItemStyles}>
|
|
@@ -2,7 +2,7 @@ import { useMemo, useState } from 'react';
|
|
|
2
2
|
import Box from '@mui/material/Box';
|
|
3
3
|
import Button from '@mui/material/Button';
|
|
4
4
|
import Divider from '@mui/material/Divider';
|
|
5
|
-
import Menu from '@mui/material/Menu';
|
|
5
|
+
import Menu, { type MenuProps } from '@mui/material/Menu';
|
|
6
6
|
import { MRT_ShowHideColumnsMenuItems } from './MRT_ShowHideColumnsMenuItems';
|
|
7
7
|
import { getDefaultColumnOrderIds } from '../column.utils';
|
|
8
8
|
import {
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
type MRT_TableInstance,
|
|
12
12
|
} from '../types';
|
|
13
13
|
|
|
14
|
-
interface Props<TData extends MRT_RowData> {
|
|
14
|
+
interface Props<TData extends MRT_RowData> extends Partial<MenuProps> {
|
|
15
15
|
anchorEl: HTMLElement | null;
|
|
16
16
|
isSubMenu?: boolean;
|
|
17
17
|
setAnchorEl: (anchorEl: HTMLElement | null) => void;
|
|
@@ -22,6 +22,7 @@ export const MRT_ShowHideColumnsMenu = <TData extends MRT_RowData>({
|
|
|
22
22
|
anchorEl,
|
|
23
23
|
setAnchorEl,
|
|
24
24
|
table,
|
|
25
|
+
...rest
|
|
25
26
|
}: Props<TData>) => {
|
|
26
27
|
const {
|
|
27
28
|
getAllColumns,
|
|
@@ -85,6 +86,7 @@ export const MRT_ShowHideColumnsMenu = <TData extends MRT_RowData>({
|
|
|
85
86
|
anchorEl={anchorEl}
|
|
86
87
|
onClose={() => setAnchorEl(null)}
|
|
87
88
|
open={!!anchorEl}
|
|
89
|
+
{...rest}
|
|
88
90
|
>
|
|
89
91
|
<Box
|
|
90
92
|
sx={{
|
|
@@ -7,20 +7,20 @@ import {
|
|
|
7
7
|
} from 'react';
|
|
8
8
|
import Box from '@mui/material/Box';
|
|
9
9
|
import FormControlLabel from '@mui/material/FormControlLabel';
|
|
10
|
-
import MenuItem from '@mui/material/MenuItem';
|
|
10
|
+
import MenuItem, { type MenuItemProps } from '@mui/material/MenuItem';
|
|
11
11
|
import Switch from '@mui/material/Switch';
|
|
12
12
|
import Tooltip from '@mui/material/Tooltip';
|
|
13
13
|
import Typography from '@mui/material/Typography';
|
|
14
14
|
import { MRT_ColumnPinningButtons } from '../buttons/MRT_ColumnPinningButtons';
|
|
15
15
|
import { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';
|
|
16
|
-
import { reorderColumn } from '../column.utils';
|
|
16
|
+
import { parseFromValuesOrFunc, reorderColumn } from '../column.utils';
|
|
17
17
|
import {
|
|
18
18
|
type MRT_Column,
|
|
19
19
|
type MRT_RowData,
|
|
20
20
|
type MRT_TableInstance,
|
|
21
21
|
} from '../types';
|
|
22
22
|
|
|
23
|
-
interface Props<TData extends MRT_RowData> {
|
|
23
|
+
interface Props<TData extends MRT_RowData> extends MenuItemProps {
|
|
24
24
|
allColumns: MRT_Column<TData>[];
|
|
25
25
|
column: MRT_Column<TData>;
|
|
26
26
|
hoveredColumn: MRT_Column<TData> | null;
|
|
@@ -34,6 +34,7 @@ export const MRT_ShowHideColumnsMenuItems = <TData extends MRT_RowData>({
|
|
|
34
34
|
hoveredColumn,
|
|
35
35
|
setHoveredColumn,
|
|
36
36
|
table,
|
|
37
|
+
...rest
|
|
37
38
|
}: Props<TData>) => {
|
|
38
39
|
const {
|
|
39
40
|
getState,
|
|
@@ -93,6 +94,7 @@ export const MRT_ShowHideColumnsMenuItems = <TData extends MRT_RowData>({
|
|
|
93
94
|
disableRipple
|
|
94
95
|
onDragEnter={handleDragEnter}
|
|
95
96
|
ref={menuItemRef as any}
|
|
97
|
+
{...rest}
|
|
96
98
|
sx={(theme) => ({
|
|
97
99
|
alignItems: 'center',
|
|
98
100
|
justifyContent: 'flex-start',
|
|
@@ -106,6 +108,7 @@ export const MRT_ShowHideColumnsMenuItems = <TData extends MRT_RowData>({
|
|
|
106
108
|
outlineOffset: '-2px',
|
|
107
109
|
pl: `${(column.depth + 0.5) * 2}rem`,
|
|
108
110
|
py: '6px',
|
|
111
|
+
...(parseFromValuesOrFunc(rest?.sx, theme) as any),
|
|
109
112
|
})}
|
|
110
113
|
>
|
|
111
114
|
<Box
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import Dialog from '@mui/material/Dialog';
|
|
1
|
+
import Dialog, { type DialogProps } from '@mui/material/Dialog';
|
|
2
2
|
import DialogActions from '@mui/material/DialogActions';
|
|
3
3
|
import DialogContent from '@mui/material/DialogContent';
|
|
4
4
|
import DialogTitle from '@mui/material/DialogTitle';
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
type MRT_TableInstance,
|
|
13
13
|
} from '../types';
|
|
14
14
|
|
|
15
|
-
interface Props<TData extends MRT_RowData> {
|
|
15
|
+
interface Props<TData extends MRT_RowData> extends Partial<DialogProps> {
|
|
16
16
|
open: boolean;
|
|
17
17
|
table: MRT_TableInstance<TData>;
|
|
18
18
|
}
|
|
@@ -20,6 +20,7 @@ interface Props<TData extends MRT_RowData> {
|
|
|
20
20
|
export const MRT_EditRowModal = <TData extends MRT_RowData>({
|
|
21
21
|
open,
|
|
22
22
|
table,
|
|
23
|
+
...rest
|
|
23
24
|
}: Props<TData>) => {
|
|
24
25
|
const {
|
|
25
26
|
getState,
|
|
@@ -42,6 +43,7 @@ export const MRT_EditRowModal = <TData extends MRT_RowData>({
|
|
|
42
43
|
...parseFromValuesOrFunc(muiEditRowModalProps, { row, table }),
|
|
43
44
|
...(creatingRow &&
|
|
44
45
|
parseFromValuesOrFunc(muiCreateRowModalProps, { row, table })),
|
|
46
|
+
...rest,
|
|
45
47
|
};
|
|
46
48
|
|
|
47
49
|
const internalEditComponents = row
|
|
@@ -92,7 +94,7 @@ export const MRT_EditRowModal = <TData extends MRT_RowData>({
|
|
|
92
94
|
<form onSubmit={(e) => e.preventDefault()}>
|
|
93
95
|
<Stack
|
|
94
96
|
sx={{
|
|
95
|
-
gap: '
|
|
97
|
+
gap: '32px',
|
|
96
98
|
paddingTop: '16px',
|
|
97
99
|
width: '100%',
|
|
98
100
|
}}
|