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
package/src/column.utils.ts
CHANGED
|
@@ -171,7 +171,6 @@ export const getLeadingDisplayColumnIds = <TData extends MRT_RowData>(
|
|
|
171
171
|
'mrt-row-expand',
|
|
172
172
|
props.enableRowSelection && 'mrt-row-select',
|
|
173
173
|
props.enableRowNumbers && 'mrt-row-numbers',
|
|
174
|
-
props.layoutMode === 'grid-no-grow' && 'mrt-row-spacer',
|
|
175
174
|
].filter(Boolean) as MRT_DisplayColumnIds[];
|
|
176
175
|
|
|
177
176
|
export const getTrailingDisplayColumnIds = <TData extends MRT_RowData>(
|
|
@@ -186,6 +185,7 @@ export const getTrailingDisplayColumnIds = <TData extends MRT_RowData>(
|
|
|
186
185
|
props.positionExpandColumn === 'last' &&
|
|
187
186
|
showExpandColumn(props) &&
|
|
188
187
|
'mrt-row-expand',
|
|
188
|
+
props.layoutMode === 'grid-no-grow' && 'mrt-row-spacer',
|
|
189
189
|
].filter(Boolean) as MRT_DisplayColumnIds[];
|
|
190
190
|
|
|
191
191
|
export const getDefaultColumnOrderIds = <TData extends MRT_RowData>(
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type VirtualItem } from '@tanstack/react-virtual';
|
|
2
|
-
import TableFooter from '@mui/material/TableFooter';
|
|
2
|
+
import TableFooter, { type TableFooterProps } from '@mui/material/TableFooter';
|
|
3
3
|
import { MRT_TableFooterRow } from './MRT_TableFooterRow';
|
|
4
4
|
import { parseFromValuesOrFunc } from '../column.utils';
|
|
5
5
|
import { type MRT_RowData, type MRT_TableInstance } from '../types';
|
|
6
6
|
|
|
7
|
-
interface Props<TData extends MRT_RowData> {
|
|
7
|
+
interface Props<TData extends MRT_RowData> extends TableFooterProps {
|
|
8
8
|
table: MRT_TableInstance<TData>;
|
|
9
9
|
virtualColumns?: VirtualItem[];
|
|
10
10
|
virtualPaddingLeft?: number;
|
|
@@ -16,6 +16,7 @@ export const MRT_TableFooter = <TData extends MRT_RowData>({
|
|
|
16
16
|
virtualColumns,
|
|
17
17
|
virtualPaddingLeft,
|
|
18
18
|
virtualPaddingRight,
|
|
19
|
+
...rest
|
|
19
20
|
}: Props<TData>) => {
|
|
20
21
|
const {
|
|
21
22
|
getFooterGroups,
|
|
@@ -25,9 +26,12 @@ export const MRT_TableFooter = <TData extends MRT_RowData>({
|
|
|
25
26
|
} = table;
|
|
26
27
|
const { isFullScreen } = getState();
|
|
27
28
|
|
|
28
|
-
const tableFooterProps =
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
const tableFooterProps = {
|
|
30
|
+
...parseFromValuesOrFunc(muiTableFooterProps, {
|
|
31
|
+
table,
|
|
32
|
+
}),
|
|
33
|
+
...rest,
|
|
34
|
+
};
|
|
31
35
|
|
|
32
36
|
const stickFooter =
|
|
33
37
|
(isFullScreen || enableStickyFooter) && enableStickyFooter !== false;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import TableCell from '@mui/material/TableCell';
|
|
1
|
+
import TableCell, { type TableCellProps } from '@mui/material/TableCell';
|
|
2
2
|
import { getCommonCellStyles, parseFromValuesOrFunc } from '../column.utils';
|
|
3
3
|
import {
|
|
4
4
|
type MRT_Header,
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
type MRT_TableInstance,
|
|
7
7
|
} from '../types';
|
|
8
8
|
|
|
9
|
-
interface Props<TData extends MRT_RowData> {
|
|
9
|
+
interface Props<TData extends MRT_RowData> extends TableCellProps {
|
|
10
10
|
footer: MRT_Header<TData>;
|
|
11
11
|
table: MRT_TableInstance<TData>;
|
|
12
12
|
}
|
|
@@ -14,6 +14,7 @@ interface Props<TData extends MRT_RowData> {
|
|
|
14
14
|
export const MRT_TableFooterCell = <TData extends MRT_RowData>({
|
|
15
15
|
footer,
|
|
16
16
|
table,
|
|
17
|
+
...rest
|
|
17
18
|
}: Props<TData>) => {
|
|
18
19
|
const {
|
|
19
20
|
getState,
|
|
@@ -24,12 +25,11 @@ export const MRT_TableFooterCell = <TData extends MRT_RowData>({
|
|
|
24
25
|
const { columnDef } = column;
|
|
25
26
|
const { columnDefType } = columnDef;
|
|
26
27
|
|
|
28
|
+
const args = { column, table };
|
|
27
29
|
const tableCellProps = {
|
|
28
|
-
...parseFromValuesOrFunc(muiTableFooterCellProps,
|
|
29
|
-
...parseFromValuesOrFunc(columnDef.muiTableFooterCellProps,
|
|
30
|
-
|
|
31
|
-
table,
|
|
32
|
-
}),
|
|
30
|
+
...parseFromValuesOrFunc(muiTableFooterCellProps, args),
|
|
31
|
+
...parseFromValuesOrFunc(columnDef.muiTableFooterCellProps, args),
|
|
32
|
+
...rest,
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
return (
|
|
@@ -39,7 +39,7 @@ export const MRT_TableFooterCell = <TData extends MRT_RowData>({
|
|
|
39
39
|
variant="head"
|
|
40
40
|
{...tableCellProps}
|
|
41
41
|
sx={(theme) => ({
|
|
42
|
-
display: layoutMode?.startsWith('grid') ? 'grid' :
|
|
42
|
+
display: layoutMode?.startsWith('grid') ? 'grid' : undefined,
|
|
43
43
|
fontWeight: 'bold',
|
|
44
44
|
justifyContent: columnDefType === 'group' ? 'center' : undefined,
|
|
45
45
|
p:
|
|
@@ -56,10 +56,11 @@ export const MRT_TableFooterCell = <TData extends MRT_RowData>({
|
|
|
56
56
|
tableCellProps,
|
|
57
57
|
theme,
|
|
58
58
|
}),
|
|
59
|
+
...(parseFromValuesOrFunc(tableCellProps?.sx, theme) as any),
|
|
59
60
|
})}
|
|
60
61
|
>
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
{tableCellProps.children ??
|
|
63
|
+
(footer.isPlaceholder
|
|
63
64
|
? null
|
|
64
65
|
: parseFromValuesOrFunc(columnDef.Footer, {
|
|
65
66
|
column,
|
|
@@ -67,8 +68,7 @@ export const MRT_TableFooterCell = <TData extends MRT_RowData>({
|
|
|
67
68
|
table,
|
|
68
69
|
}) ??
|
|
69
70
|
columnDef.footer ??
|
|
70
|
-
null}
|
|
71
|
-
</>
|
|
71
|
+
null)}
|
|
72
72
|
</TableCell>
|
|
73
73
|
);
|
|
74
74
|
};
|
|
@@ -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 { lighten } from '@mui/material/styles';
|
|
4
4
|
import { MRT_TableFooterCell } from './MRT_TableFooterCell';
|
|
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
|
footerGroup: MRT_HeaderGroup<TData>;
|
|
15
15
|
table: MRT_TableInstance<TData>;
|
|
16
16
|
virtualColumns?: VirtualItem[];
|
|
@@ -24,6 +24,7 @@ export const MRT_TableFooterRow = <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, muiTableFooterRowProps },
|
|
@@ -40,10 +41,13 @@ export const MRT_TableFooterRow = <TData extends MRT_RowData>({
|
|
|
40
41
|
)
|
|
41
42
|
return null;
|
|
42
43
|
|
|
43
|
-
const tableRowProps =
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
const tableRowProps = {
|
|
45
|
+
...parseFromValuesOrFunc(muiTableFooterRowProps, {
|
|
46
|
+
footerGroup,
|
|
47
|
+
table,
|
|
48
|
+
}),
|
|
49
|
+
...rest,
|
|
50
|
+
};
|
|
47
51
|
|
|
48
52
|
return (
|
|
49
53
|
<TableRow
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { type VirtualItem } from '@tanstack/react-virtual';
|
|
2
|
-
import TableHead from '@mui/material/TableHead';
|
|
2
|
+
import TableHead, { type TableHeadProps } from '@mui/material/TableHead';
|
|
3
3
|
import { MRT_TableHeadRow } from './MRT_TableHeadRow';
|
|
4
4
|
import { parseFromValuesOrFunc } from '../column.utils';
|
|
5
5
|
import { MRT_ToolbarAlertBanner } from '../toolbar';
|
|
6
6
|
import { type MRT_RowData, type MRT_TableInstance } from '../types';
|
|
7
7
|
|
|
8
|
-
interface Props<TData extends MRT_RowData> {
|
|
8
|
+
interface Props<TData extends MRT_RowData> extends TableHeadProps {
|
|
9
9
|
table: MRT_TableInstance<TData>;
|
|
10
10
|
virtualColumns?: VirtualItem[];
|
|
11
11
|
virtualPaddingLeft?: number;
|
|
@@ -17,6 +17,7 @@ export const MRT_TableHead = <TData extends MRT_RowData>({
|
|
|
17
17
|
virtualColumns,
|
|
18
18
|
virtualPaddingLeft,
|
|
19
19
|
virtualPaddingRight,
|
|
20
|
+
...rest
|
|
20
21
|
}: Props<TData>) => {
|
|
21
22
|
const {
|
|
22
23
|
getHeaderGroups,
|
|
@@ -32,7 +33,10 @@ export const MRT_TableHead = <TData extends MRT_RowData>({
|
|
|
32
33
|
} = table;
|
|
33
34
|
const { isFullScreen, showAlertBanner } = getState();
|
|
34
35
|
|
|
35
|
-
const tableHeadProps =
|
|
36
|
+
const tableHeadProps = {
|
|
37
|
+
...parseFromValuesOrFunc(muiTableHeadProps, { table }),
|
|
38
|
+
...rest,
|
|
39
|
+
};
|
|
36
40
|
|
|
37
41
|
const stickyHeader = enableStickyHeader || isFullScreen;
|
|
38
42
|
|
|
@@ -65,7 +69,7 @@ export const MRT_TableHead = <TData extends MRT_RowData>({
|
|
|
65
69
|
<th
|
|
66
70
|
colSpan={table.getVisibleLeafColumns().length}
|
|
67
71
|
style={{
|
|
68
|
-
display: layoutMode?.startsWith('grid') ? 'grid' :
|
|
72
|
+
display: layoutMode?.startsWith('grid') ? 'grid' : undefined,
|
|
69
73
|
padding: 0,
|
|
70
74
|
}}
|
|
71
75
|
>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type DragEvent, useMemo } from 'react';
|
|
2
2
|
import Box from '@mui/material/Box';
|
|
3
|
-
import TableCell from '@mui/material/TableCell';
|
|
3
|
+
import TableCell, { type TableCellProps } from '@mui/material/TableCell';
|
|
4
4
|
import { useTheme } from '@mui/material/styles';
|
|
5
5
|
import { type Theme } from '@mui/material/styles';
|
|
6
6
|
import { MRT_TableHeadCellColumnActionsButton } from './MRT_TableHeadCellColumnActionsButton';
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
type MRT_TableInstance,
|
|
18
18
|
} from '../types';
|
|
19
19
|
|
|
20
|
-
interface Props<TData extends MRT_RowData> {
|
|
20
|
+
interface Props<TData extends MRT_RowData> extends TableCellProps {
|
|
21
21
|
header: MRT_Header<TData>;
|
|
22
22
|
table: MRT_TableInstance<TData>;
|
|
23
23
|
}
|
|
@@ -25,6 +25,7 @@ interface Props<TData extends MRT_RowData> {
|
|
|
25
25
|
export const MRT_TableHeadCell = <TData extends MRT_RowData>({
|
|
26
26
|
header,
|
|
27
27
|
table,
|
|
28
|
+
...rest
|
|
28
29
|
}: Props<TData>) => {
|
|
29
30
|
const theme = useTheme();
|
|
30
31
|
const {
|
|
@@ -60,6 +61,7 @@ export const MRT_TableHeadCell = <TData extends MRT_RowData>({
|
|
|
60
61
|
column,
|
|
61
62
|
table,
|
|
62
63
|
}),
|
|
64
|
+
...rest,
|
|
63
65
|
};
|
|
64
66
|
|
|
65
67
|
const showColumnActions =
|
|
@@ -186,97 +188,104 @@ export const MRT_TableHeadCell = <TData extends MRT_RowData>({
|
|
|
186
188
|
...draggingBorders,
|
|
187
189
|
})}
|
|
188
190
|
>
|
|
189
|
-
{header.isPlaceholder
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
sx={{
|
|
193
|
-
alignItems: 'center',
|
|
194
|
-
display: 'flex',
|
|
195
|
-
flexDirection:
|
|
196
|
-
tableCellProps?.align === 'right' ? 'row-reverse' : 'row',
|
|
197
|
-
justifyContent:
|
|
198
|
-
columnDefType === 'group' || tableCellProps?.align === 'center'
|
|
199
|
-
? 'center'
|
|
200
|
-
: column.getCanResize()
|
|
201
|
-
? 'space-between'
|
|
202
|
-
: 'flex-start',
|
|
203
|
-
position: 'relative',
|
|
204
|
-
width: '100%',
|
|
205
|
-
}}
|
|
206
|
-
>
|
|
207
|
-
<Box
|
|
208
|
-
className="Mui-TableHeadCell-Content-Labels"
|
|
209
|
-
onClick={column.getToggleSortingHandler()}
|
|
210
|
-
sx={{
|
|
211
|
-
alignItems: 'center',
|
|
212
|
-
cursor:
|
|
213
|
-
column.getCanSort() && columnDefType !== 'group'
|
|
214
|
-
? 'pointer'
|
|
215
|
-
: undefined,
|
|
216
|
-
display: 'flex',
|
|
217
|
-
flexDirection:
|
|
218
|
-
tableCellProps?.align === 'right' ? 'row-reverse' : 'row',
|
|
219
|
-
overflow: columnDefType === 'data' ? 'hidden' : undefined,
|
|
220
|
-
pl:
|
|
221
|
-
tableCellProps?.align === 'center'
|
|
222
|
-
? `${headerPL}rem`
|
|
223
|
-
: undefined,
|
|
224
|
-
}}
|
|
225
|
-
>
|
|
191
|
+
{header.isPlaceholder
|
|
192
|
+
? null
|
|
193
|
+
: tableCellProps.children ?? (
|
|
226
194
|
<Box
|
|
227
|
-
className="Mui-TableHeadCell-Content
|
|
195
|
+
className="Mui-TableHeadCell-Content"
|
|
228
196
|
sx={{
|
|
229
|
-
'
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
197
|
+
alignItems: 'center',
|
|
198
|
+
display: 'flex',
|
|
199
|
+
flexDirection:
|
|
200
|
+
tableCellProps?.align === 'right' ? 'row-reverse' : 'row',
|
|
201
|
+
justifyContent:
|
|
202
|
+
columnDefType === 'group' ||
|
|
203
|
+
tableCellProps?.align === 'center'
|
|
204
|
+
? 'center'
|
|
205
|
+
: column.getCanResize()
|
|
206
|
+
? 'space-between'
|
|
207
|
+
: 'flex-start',
|
|
208
|
+
position: 'relative',
|
|
209
|
+
width: '100%',
|
|
237
210
|
}}
|
|
238
|
-
title={columnDefType === 'data' ? columnDef.header : undefined}
|
|
239
211
|
>
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
<
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
212
|
+
<Box
|
|
213
|
+
className="Mui-TableHeadCell-Content-Labels"
|
|
214
|
+
onClick={column.getToggleSortingHandler()}
|
|
215
|
+
sx={{
|
|
216
|
+
alignItems: 'center',
|
|
217
|
+
cursor:
|
|
218
|
+
column.getCanSort() && columnDefType !== 'group'
|
|
219
|
+
? 'pointer'
|
|
220
|
+
: undefined,
|
|
221
|
+
display: 'flex',
|
|
222
|
+
flexDirection:
|
|
223
|
+
tableCellProps?.align === 'right' ? 'row-reverse' : 'row',
|
|
224
|
+
overflow: columnDefType === 'data' ? 'hidden' : undefined,
|
|
225
|
+
pl:
|
|
226
|
+
tableCellProps?.align === 'center'
|
|
227
|
+
? `${headerPL}rem`
|
|
228
|
+
: undefined,
|
|
229
|
+
}}
|
|
230
|
+
>
|
|
231
|
+
<Box
|
|
232
|
+
className="Mui-TableHeadCell-Content-Wrapper"
|
|
233
|
+
sx={{
|
|
234
|
+
'&:hover': {
|
|
235
|
+
textOverflow: 'clip',
|
|
236
|
+
},
|
|
237
|
+
minWidth: `${Math.min(columnDef.header?.length ?? 0, 4)}ch`,
|
|
238
|
+
overflow: columnDefType === 'data' ? 'hidden' : undefined,
|
|
239
|
+
textOverflow: 'ellipsis',
|
|
240
|
+
whiteSpace:
|
|
241
|
+
(columnDef.header?.length ?? 0) < 20
|
|
242
|
+
? 'nowrap'
|
|
243
|
+
: 'normal',
|
|
264
244
|
}}
|
|
265
|
-
|
|
245
|
+
title={
|
|
246
|
+
columnDefType === 'data' ? columnDef.header : undefined
|
|
247
|
+
}
|
|
248
|
+
>
|
|
249
|
+
{headerElement}
|
|
250
|
+
</Box>
|
|
251
|
+
{column.getCanFilter() && (
|
|
252
|
+
<MRT_TableHeadCellFilterLabel header={header} table={table} />
|
|
253
|
+
)}
|
|
254
|
+
{column.getCanSort() && (
|
|
255
|
+
<MRT_TableHeadCellSortLabel
|
|
256
|
+
header={header}
|
|
257
|
+
table={table}
|
|
258
|
+
tableCellProps={tableCellProps}
|
|
259
|
+
/>
|
|
260
|
+
)}
|
|
261
|
+
</Box>
|
|
262
|
+
{columnDefType !== 'group' && (
|
|
263
|
+
<Box
|
|
264
|
+
className="Mui-TableHeadCell-Content-Actions"
|
|
265
|
+
sx={{ whiteSpace: 'nowrap' }}
|
|
266
|
+
>
|
|
267
|
+
{showDragHandle && (
|
|
268
|
+
<MRT_TableHeadCellGrabHandle
|
|
269
|
+
column={column}
|
|
270
|
+
table={table}
|
|
271
|
+
tableHeadCellRef={{
|
|
272
|
+
current: tableHeadCellRefs.current[column.id],
|
|
273
|
+
}}
|
|
274
|
+
/>
|
|
275
|
+
)}
|
|
276
|
+
{showColumnActions && (
|
|
277
|
+
<MRT_TableHeadCellColumnActionsButton
|
|
278
|
+
header={header}
|
|
279
|
+
table={table}
|
|
280
|
+
/>
|
|
281
|
+
)}
|
|
282
|
+
</Box>
|
|
266
283
|
)}
|
|
267
|
-
{
|
|
268
|
-
<
|
|
269
|
-
header={header}
|
|
270
|
-
table={table}
|
|
271
|
-
/>
|
|
284
|
+
{column.getCanResize() && (
|
|
285
|
+
<MRT_TableHeadCellResizeHandle header={header} table={table} />
|
|
272
286
|
)}
|
|
273
287
|
</Box>
|
|
274
288
|
)}
|
|
275
|
-
{column.getCanResize() && (
|
|
276
|
-
<MRT_TableHeadCellResizeHandle header={header} table={table} />
|
|
277
|
-
)}
|
|
278
|
-
</Box>
|
|
279
|
-
)}
|
|
280
289
|
{columnFilterDisplayMode === 'subheader' && column.getCanFilter() && (
|
|
281
290
|
<MRT_TableHeadCellFilterContainer header={header} table={table} />
|
|
282
291
|
)}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type MouseEvent, useState } from 'react';
|
|
2
|
-
import IconButton from '@mui/material/IconButton';
|
|
2
|
+
import IconButton, { type IconButtonProps } from '@mui/material/IconButton';
|
|
3
3
|
import Tooltip from '@mui/material/Tooltip';
|
|
4
4
|
import { parseFromValuesOrFunc } from '../column.utils';
|
|
5
5
|
import { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu';
|
|
@@ -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 IconButtonProps {
|
|
13
13
|
header: MRT_Header<TData>;
|
|
14
14
|
table: MRT_TableInstance<TData>;
|
|
15
15
|
}
|
|
@@ -19,6 +19,7 @@ export const MRT_TableHeadCellColumnActionsButton = <
|
|
|
19
19
|
>({
|
|
20
20
|
header,
|
|
21
21
|
table,
|
|
22
|
+
...rest
|
|
22
23
|
}: Props<TData>) => {
|
|
23
24
|
const {
|
|
24
25
|
options: {
|
|
@@ -48,6 +49,7 @@ export const MRT_TableHeadCellColumnActionsButton = <
|
|
|
48
49
|
column,
|
|
49
50
|
table,
|
|
50
51
|
}),
|
|
52
|
+
...rest,
|
|
51
53
|
};
|
|
52
54
|
|
|
53
55
|
return (
|
|
@@ -71,7 +73,7 @@ export const MRT_TableHeadCellColumnActionsButton = <
|
|
|
71
73
|
height: '2rem',
|
|
72
74
|
m: '-4px',
|
|
73
75
|
opacity: 0.3,
|
|
74
|
-
transform: `scale(0.
|
|
76
|
+
transform: `scale(0.8) ${
|
|
75
77
|
columnFilterDisplayMode !== 'popover' ? 'translateX(-4px)' : ''
|
|
76
78
|
}`,
|
|
77
79
|
transition: 'opacity 150ms',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import Collapse from '@mui/material/Collapse';
|
|
1
|
+
import Collapse, { type CollapseProps } from '@mui/material/Collapse';
|
|
2
2
|
import { MRT_FilterCheckbox } from '../inputs/MRT_FilterCheckbox';
|
|
3
3
|
import { MRT_FilterRangeFields } from '../inputs/MRT_FilterRangeFields';
|
|
4
4
|
import { MRT_FilterRangeSlider } from '../inputs/MRT_FilterRangeSlider';
|
|
@@ -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 CollapseProps {
|
|
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_TableHeadCellFilterContainer = <TData extends MRT_RowData>({
|
|
18
18
|
header,
|
|
19
19
|
table,
|
|
20
|
+
...rest
|
|
20
21
|
}: Props<TData>) => {
|
|
21
22
|
const {
|
|
22
23
|
getState,
|
|
@@ -31,6 +32,7 @@ export const MRT_TableHeadCellFilterContainer = <TData extends MRT_RowData>({
|
|
|
31
32
|
in={showColumnFilters || columnFilterDisplayMode === 'popover'}
|
|
32
33
|
mountOnEnter
|
|
33
34
|
unmountOnExit
|
|
35
|
+
{...rest}
|
|
34
36
|
>
|
|
35
37
|
{columnDef.filterVariant === 'checkbox' ? (
|
|
36
38
|
<MRT_FilterCheckbox column={column} table={table} />
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { type MouseEvent, useState } from 'react';
|
|
2
2
|
import Box from '@mui/material/Box';
|
|
3
3
|
import Grow from '@mui/material/Grow';
|
|
4
|
-
import IconButton from '@mui/material/IconButton';
|
|
4
|
+
import IconButton, { type IconButtonProps } from '@mui/material/IconButton';
|
|
5
5
|
import Popover from '@mui/material/Popover';
|
|
6
6
|
import Tooltip from '@mui/material/Tooltip';
|
|
7
7
|
import { MRT_TableHeadCellFilterContainer } from './MRT_TableHeadCellFilterContainer';
|
|
8
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
|
8
9
|
import {
|
|
9
10
|
type MRT_Header,
|
|
10
11
|
type MRT_RowData,
|
|
11
12
|
type MRT_TableInstance,
|
|
12
13
|
} from '../types';
|
|
13
14
|
|
|
14
|
-
interface Props<TData extends MRT_RowData> {
|
|
15
|
+
interface Props<TData extends MRT_RowData> extends IconButtonProps {
|
|
15
16
|
header: MRT_Header<TData>;
|
|
16
17
|
table: MRT_TableInstance<TData>;
|
|
17
18
|
}
|
|
@@ -19,6 +20,7 @@ interface Props<TData extends MRT_RowData> {
|
|
|
19
20
|
export const MRT_TableHeadCellFilterLabel = <TData extends MRT_RowData = {}>({
|
|
20
21
|
header,
|
|
21
22
|
table,
|
|
23
|
+
...rest
|
|
22
24
|
}: Props<TData>) => {
|
|
23
25
|
const {
|
|
24
26
|
options: {
|
|
@@ -106,7 +108,8 @@ export const MRT_TableHeadCellFilterLabel = <TData extends MRT_RowData = {}>({
|
|
|
106
108
|
event.stopPropagation();
|
|
107
109
|
}}
|
|
108
110
|
size="small"
|
|
109
|
-
|
|
111
|
+
{...rest}
|
|
112
|
+
sx={(theme) => ({
|
|
110
113
|
height: '16px',
|
|
111
114
|
ml: '4px',
|
|
112
115
|
opacity: isFilterActive ? 1 : 0.3,
|
|
@@ -114,7 +117,8 @@ export const MRT_TableHeadCellFilterLabel = <TData extends MRT_RowData = {}>({
|
|
|
114
117
|
transform: 'scale(0.75)',
|
|
115
118
|
transition: 'all 150ms ease-in-out',
|
|
116
119
|
width: '16px',
|
|
117
|
-
|
|
120
|
+
...(parseFromValuesOrFunc(rest?.sx, theme) as any),
|
|
121
|
+
})}
|
|
118
122
|
>
|
|
119
123
|
<FilterAltIcon />
|
|
120
124
|
</IconButton>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type DragEvent, type RefObject } from 'react';
|
|
2
|
+
import { type IconButtonProps } from '@mui/material/IconButton';
|
|
2
3
|
import { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';
|
|
3
4
|
import { parseFromValuesOrFunc, reorderColumn } from '../column.utils';
|
|
4
5
|
import {
|
|
@@ -7,7 +8,7 @@ import {
|
|
|
7
8
|
type MRT_TableInstance,
|
|
8
9
|
} from '../types';
|
|
9
10
|
|
|
10
|
-
interface Props<TData extends MRT_RowData> {
|
|
11
|
+
interface Props<TData extends MRT_RowData> extends IconButtonProps {
|
|
11
12
|
column: MRT_Column<TData>;
|
|
12
13
|
table: MRT_TableInstance<TData>;
|
|
13
14
|
tableHeadCellRef: RefObject<HTMLTableCellElement>;
|
|
@@ -17,6 +18,7 @@ export const MRT_TableHeadCellGrabHandle = <TData extends MRT_RowData>({
|
|
|
17
18
|
column,
|
|
18
19
|
table,
|
|
19
20
|
tableHeadCellRef,
|
|
21
|
+
...rest
|
|
20
22
|
}: Props<TData>) => {
|
|
21
23
|
const {
|
|
22
24
|
getState,
|
|
@@ -34,6 +36,7 @@ export const MRT_TableHeadCellGrabHandle = <TData extends MRT_RowData>({
|
|
|
34
36
|
column,
|
|
35
37
|
table,
|
|
36
38
|
}),
|
|
39
|
+
...rest
|
|
37
40
|
};
|
|
38
41
|
|
|
39
42
|
const handleDragStart = (event: DragEvent<HTMLButtonElement>) => {
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import Box from '@mui/material/Box';
|
|
2
|
-
import Divider from '@mui/material/Divider';
|
|
2
|
+
import Divider, { type DividerProps } from '@mui/material/Divider';
|
|
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 DividerProps {
|
|
10
11
|
header: MRT_Header<TData>;
|
|
11
12
|
table: MRT_TableInstance<TData>;
|
|
12
13
|
}
|
|
@@ -14,6 +15,7 @@ interface Props<TData extends MRT_RowData> {
|
|
|
14
15
|
export const MRT_TableHeadCellResizeHandle = <TData extends MRT_RowData>({
|
|
15
16
|
header,
|
|
16
17
|
table,
|
|
18
|
+
...rest
|
|
17
19
|
}: Props<TData>) => {
|
|
18
20
|
const {
|
|
19
21
|
getState,
|
|
@@ -62,7 +64,7 @@ export const MRT_TableHeadCellResizeHandle = <TData extends MRT_RowData>({
|
|
|
62
64
|
className="Mui-TableHeadCell-ResizeHandle-Divider"
|
|
63
65
|
flexItem
|
|
64
66
|
orientation="vertical"
|
|
65
|
-
sx={{
|
|
67
|
+
sx={(theme) => ({
|
|
66
68
|
borderRadius: '2px',
|
|
67
69
|
borderWidth: '2px',
|
|
68
70
|
height: '24px',
|
|
@@ -72,7 +74,8 @@ export const MRT_TableHeadCellResizeHandle = <TData extends MRT_RowData>({
|
|
|
72
74
|
: 'all 150ms ease-in-out',
|
|
73
75
|
userSelect: 'none',
|
|
74
76
|
zIndex: 4,
|
|
75
|
-
|
|
77
|
+
...(parseFromValuesOrFunc(rest?.sx, theme) as any),
|
|
78
|
+
})}
|
|
76
79
|
/>
|
|
77
80
|
</Box>
|
|
78
81
|
);
|