material-react-table 0.8.14 → 0.9.1
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 -1
- package/dist/MaterialReactTable.d.ts +41 -37
- package/dist/material-react-table.cjs.development.js +223 -185
- package/dist/material-react-table.cjs.development.js.map +1 -1
- package/dist/material-react-table.cjs.production.min.js +1 -1
- package/dist/material-react-table.cjs.production.min.js.map +1 -1
- package/dist/material-react-table.esm.js +223 -185
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/table/MRT_TableRoot.d.ts +1 -0
- package/dist/toolbar/MRT_LinearProgressBar.d.ts +1 -0
- package/dist/utils.d.ts +4 -3
- package/package.json +9 -9
- package/src/MaterialReactTable.tsx +56 -47
- package/src/body/MRT_TableBodyCell.tsx +28 -10
- package/src/body/MRT_TableBodyRow.tsx +4 -3
- package/src/body/MRT_TableDetailPanel.tsx +2 -2
- package/src/buttons/MRT_ColumnPinningButtons.tsx +1 -1
- package/src/buttons/MRT_EditActionButtons.tsx +2 -2
- package/src/buttons/MRT_ExpandButton.tsx +2 -2
- package/src/buttons/MRT_FullScreenToggleButton.tsx +2 -2
- package/src/buttons/MRT_ToggleDensePaddingButton.tsx +2 -2
- package/src/buttons/MRT_ToggleFiltersButton.tsx +2 -2
- package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +4 -4
- package/src/footer/MRT_TableFooterCell.tsx +6 -6
- package/src/head/MRT_DraggableTableHeadCell.tsx +8 -16
- package/src/head/MRT_TableHeadCell.tsx +12 -10
- package/src/head/MRT_TableHeadCellFilterLabel.tsx +1 -0
- package/src/inputs/MRT_EditCellTextField.tsx +8 -8
- package/src/inputs/MRT_FilterTextField.tsx +2 -2
- package/src/inputs/MRT_SearchTextField.tsx +4 -4
- package/src/inputs/MRT_SelectCheckbox.tsx +4 -4
- package/src/menus/MRT_ColumnActionMenu.tsx +2 -2
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +18 -5
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +18 -18
- package/src/table/MRT_TableContainer.tsx +3 -3
- package/src/table/MRT_TableRoot.tsx +24 -13
- package/src/toolbar/MRT_LinearProgressBar.tsx +17 -2
- package/src/toolbar/MRT_ToolbarBottom.tsx +4 -4
- package/src/toolbar/MRT_ToolbarInternalButtons.tsx +2 -1
- package/src/toolbar/MRT_ToolbarTop.tsx +13 -6
- package/src/utils.ts +24 -2
|
@@ -5,6 +5,7 @@ import { MRT_TablePagination } from './MRT_TablePagination';
|
|
|
5
5
|
import { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';
|
|
6
6
|
import { MRT_LinearProgressBar } from './MRT_LinearProgressBar';
|
|
7
7
|
import { MRT_TableInstance } from '..';
|
|
8
|
+
import { MRT_SearchTextField } from '../inputs/MRT_SearchTextField';
|
|
8
9
|
|
|
9
10
|
export const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({
|
|
10
11
|
backgroundColor: lighten(theme.palette.background.default, 0.04),
|
|
@@ -26,18 +27,20 @@ export const MRT_ToolbarTop: FC<Props> = ({ tableInstance }) => {
|
|
|
26
27
|
const {
|
|
27
28
|
getState,
|
|
28
29
|
options: {
|
|
30
|
+
enableGlobalFilter,
|
|
29
31
|
enablePagination,
|
|
30
32
|
enableToolbarInternalActions,
|
|
31
|
-
|
|
33
|
+
tableId,
|
|
32
34
|
muiTableToolbarTopProps,
|
|
33
35
|
positionPagination,
|
|
36
|
+
positionGlobalFilter,
|
|
34
37
|
positionToolbarActions,
|
|
35
38
|
positionToolbarAlertBanner,
|
|
36
39
|
renderToolbarCustomActions,
|
|
37
40
|
},
|
|
38
41
|
} = tableInstance;
|
|
39
42
|
|
|
40
|
-
const { isFullScreen } = getState();
|
|
43
|
+
const { isFullScreen, showGlobalFilter } = getState();
|
|
41
44
|
|
|
42
45
|
const isMobile = useMediaQuery('(max-width:720px)');
|
|
43
46
|
|
|
@@ -48,11 +51,12 @@ export const MRT_ToolbarTop: FC<Props> = ({ tableInstance }) => {
|
|
|
48
51
|
|
|
49
52
|
const stackAlertBanner =
|
|
50
53
|
isMobile ||
|
|
51
|
-
(positionToolbarAlertBanner === 'top' &&
|
|
54
|
+
(positionToolbarAlertBanner === 'top' &&
|
|
55
|
+
(!!renderToolbarCustomActions || showGlobalFilter));
|
|
52
56
|
|
|
53
57
|
return (
|
|
54
58
|
<Toolbar
|
|
55
|
-
id={`mrt-${
|
|
59
|
+
id={`mrt-${tableId}-toolbar-top`}
|
|
56
60
|
variant="dense"
|
|
57
61
|
{...toolbarProps}
|
|
58
62
|
sx={(theme) =>
|
|
@@ -78,9 +82,12 @@ export const MRT_ToolbarTop: FC<Props> = ({ tableInstance }) => {
|
|
|
78
82
|
position: stackAlertBanner ? 'relative' : 'absolute',
|
|
79
83
|
right: 0,
|
|
80
84
|
top: 0,
|
|
81
|
-
width: '
|
|
85
|
+
width: renderToolbarCustomActions ? '100%' : undefined,
|
|
82
86
|
}}
|
|
83
87
|
>
|
|
88
|
+
{enableGlobalFilter && positionGlobalFilter === 'left' && (
|
|
89
|
+
<MRT_SearchTextField tableInstance={tableInstance} />
|
|
90
|
+
)}
|
|
84
91
|
{renderToolbarCustomActions?.({ tableInstance }) ?? <span />}
|
|
85
92
|
{enableToolbarInternalActions && positionToolbarActions === 'top' && (
|
|
86
93
|
<MRT_ToolbarInternalButtons tableInstance={tableInstance} />
|
|
@@ -92,7 +99,7 @@ export const MRT_ToolbarTop: FC<Props> = ({ tableInstance }) => {
|
|
|
92
99
|
<MRT_TablePagination tableInstance={tableInstance} />
|
|
93
100
|
)}
|
|
94
101
|
</div>
|
|
95
|
-
<MRT_LinearProgressBar tableInstance={tableInstance} />
|
|
102
|
+
<MRT_LinearProgressBar alignTo="bottom" tableInstance={tableInstance} />
|
|
96
103
|
</Toolbar>
|
|
97
104
|
);
|
|
98
105
|
};
|
package/src/utils.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
ColumnDef,
|
|
3
|
+
ColumnOrderState,
|
|
4
|
+
Table,
|
|
5
|
+
Updater,
|
|
6
|
+
} from '@tanstack/react-table';
|
|
7
|
+
import { MRT_Column, MRT_ColumnDef, MRT_FilterFn } from '.';
|
|
3
8
|
import { MRT_FILTER_OPTION } from './enums';
|
|
4
9
|
import { defaultFilterFNs } from './filtersFNs';
|
|
5
10
|
|
|
@@ -52,3 +57,20 @@ export const createDisplayColumn = <D extends Record<string, any> = {}>(
|
|
|
52
57
|
table: Table<D>,
|
|
53
58
|
column: Omit<MRT_ColumnDef<D>, 'header'> & { header?: string },
|
|
54
59
|
): ColumnDef<D> => table.createDisplayColumn(column as ColumnDef<D>);
|
|
60
|
+
|
|
61
|
+
export const reorderColumn = (
|
|
62
|
+
movingColumn: MRT_Column,
|
|
63
|
+
receivingColumn: MRT_Column,
|
|
64
|
+
columnOrder: ColumnOrderState,
|
|
65
|
+
setColumnOrder: (updater: Updater<ColumnOrderState>) => void,
|
|
66
|
+
) => {
|
|
67
|
+
if (movingColumn.getCanPin()) {
|
|
68
|
+
movingColumn.pin(receivingColumn.getIsPinned());
|
|
69
|
+
}
|
|
70
|
+
columnOrder.splice(
|
|
71
|
+
columnOrder.indexOf(receivingColumn.id),
|
|
72
|
+
0,
|
|
73
|
+
columnOrder.splice(columnOrder.indexOf(movingColumn.id), 1)[0],
|
|
74
|
+
);
|
|
75
|
+
setColumnOrder([...columnOrder]);
|
|
76
|
+
};
|