material-react-table 1.7.4 → 1.8.0
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 +5 -13
- package/dist/cjs/index.js +79 -37
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/MaterialReactTable.d.ts +16 -8
- package/dist/cjs/types/body/MRT_TableBody.d.ts +3 -4
- package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +2 -3
- package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +4 -5
- package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +2 -3
- package/dist/cjs/types/footer/MRT_TableFooter.d.ts +2 -3
- package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +2 -3
- package/dist/cjs/types/head/MRT_TableHead.d.ts +2 -3
- package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +2 -3
- package/dist/cjs/types/table/MRT_TableRoot.d.ts +1 -272
- package/dist/esm/material-react-table.esm.js +77 -38
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/MaterialReactTable.d.ts +16 -8
- package/dist/esm/types/body/MRT_TableBody.d.ts +3 -4
- package/dist/esm/types/body/MRT_TableBodyCell.d.ts +2 -3
- package/dist/esm/types/body/MRT_TableBodyRow.d.ts +4 -5
- package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +2 -3
- package/dist/esm/types/footer/MRT_TableFooter.d.ts +2 -3
- package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +2 -3
- package/dist/esm/types/head/MRT_TableHead.d.ts +2 -3
- package/dist/esm/types/head/MRT_TableHeadRow.d.ts +2 -3
- package/dist/esm/types/table/MRT_TableRoot.d.ts +1 -272
- package/dist/index.d.ts +16 -7
- package/package.json +2 -2
- package/src/MaterialReactTable.tsx +44 -7
- package/src/body/MRT_TableBody.tsx +11 -10
- package/src/body/MRT_TableBodyCell.tsx +8 -12
- package/src/body/MRT_TableBodyCellValue.tsx +1 -0
- package/src/body/MRT_TableBodyRow.tsx +14 -7
- package/src/body/MRT_TableDetailPanel.tsx +2 -3
- package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +4 -1
- package/src/column.utils.ts +6 -1
- package/src/footer/MRT_TableFooter.tsx +2 -3
- package/src/footer/MRT_TableFooterRow.tsx +7 -3
- package/src/head/MRT_TableHead.tsx +2 -3
- package/src/head/MRT_TableHeadRow.tsx +7 -3
- package/src/inputs/MRT_EditCellTextField.tsx +38 -2
- package/src/menus/MRT_FilterOptionMenu.tsx +14 -5
- package/src/menus/MRT_RowActionMenu.tsx +12 -10
- package/src/table/MRT_Table.tsx +2 -3
- package/src/table/MRT_TableRoot.tsx +33 -19
@@ -26,8 +26,7 @@ import {
|
|
26
26
|
showExpandColumn,
|
27
27
|
getColumnId,
|
28
28
|
} from '../column.utils';
|
29
|
-
import
|
30
|
-
import type {
|
29
|
+
import {
|
31
30
|
MRT_Cell,
|
32
31
|
MRT_Column,
|
33
32
|
MRT_ColumnDef,
|
@@ -37,11 +36,14 @@ import type {
|
|
37
36
|
MRT_TableInstance,
|
38
37
|
MRT_TableState,
|
39
38
|
MaterialReactTableProps,
|
39
|
+
MRT_DensityState,
|
40
|
+
MRT_ColumnOrderState,
|
41
|
+
MRT_GroupingState,
|
40
42
|
} from '..';
|
41
43
|
|
42
|
-
export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
|
44
|
+
export const MRT_TableRoot: any = <TData extends Record<string, any> = {}>(
|
43
45
|
props: MaterialReactTableProps<TData> & { localization: MRT_Localization },
|
44
|
-
) => {
|
46
|
+
): JSX.Element => {
|
45
47
|
const bottomToolbarRef = useRef<HTMLDivElement>(null);
|
46
48
|
const editInputRefs = useRef<Record<string, HTMLInputElement>>({});
|
47
49
|
const filterInputRefs = useRef<Record<string, HTMLInputElement>>({});
|
@@ -76,10 +78,10 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
|
|
76
78
|
),
|
77
79
|
),
|
78
80
|
);
|
79
|
-
const [columnOrder, setColumnOrder] = useState(
|
81
|
+
const [columnOrder, setColumnOrder] = useState<MRT_ColumnOrderState>(
|
80
82
|
initialState.columnOrder ?? [],
|
81
83
|
);
|
82
|
-
const [density, setDensity] = useState(
|
84
|
+
const [density, setDensity] = useState<MRT_DensityState>(
|
83
85
|
initialState?.density ?? 'comfortable',
|
84
86
|
);
|
85
87
|
const [draggingColumn, setDraggingColumn] =
|
@@ -96,7 +98,7 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
|
|
96
98
|
const [globalFilterFn, setGlobalFilterFn] = useState<MRT_FilterOption>(
|
97
99
|
initialState.globalFilterFn ?? 'fuzzy',
|
98
100
|
);
|
99
|
-
const [grouping, setGrouping] = useState<
|
101
|
+
const [grouping, setGrouping] = useState<MRT_GroupingState>(
|
100
102
|
initialState.grouping ?? [],
|
101
103
|
);
|
102
104
|
const [hoveredColumn, setHoveredColumn] = useState<
|
@@ -105,19 +107,19 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
|
|
105
107
|
const [hoveredRow, setHoveredRow] = useState<
|
106
108
|
MRT_Row<TData> | { id: string } | null
|
107
109
|
>(initialState.hoveredRow ?? null);
|
108
|
-
const [isFullScreen, setIsFullScreen] = useState(
|
110
|
+
const [isFullScreen, setIsFullScreen] = useState<boolean>(
|
109
111
|
initialState?.isFullScreen ?? false,
|
110
112
|
);
|
111
|
-
const [showAlertBanner, setShowAlertBanner] = useState(
|
113
|
+
const [showAlertBanner, setShowAlertBanner] = useState<boolean>(
|
112
114
|
props.initialState?.showAlertBanner ?? false,
|
113
115
|
);
|
114
|
-
const [showColumnFilters, setShowFilters] = useState(
|
116
|
+
const [showColumnFilters, setShowFilters] = useState<boolean>(
|
115
117
|
initialState?.showColumnFilters ?? false,
|
116
118
|
);
|
117
|
-
const [showGlobalFilter, setShowGlobalFilter] = useState(
|
119
|
+
const [showGlobalFilter, setShowGlobalFilter] = useState<boolean>(
|
118
120
|
initialState?.showGlobalFilter ?? false,
|
119
121
|
);
|
120
|
-
const [showToolbarDropZone, setShowToolbarDropZone] = useState(
|
122
|
+
const [showToolbarDropZone, setShowToolbarDropZone] = useState<boolean>(
|
121
123
|
initialState?.showToolbarDropZone ?? false,
|
122
124
|
);
|
123
125
|
|
@@ -125,14 +127,18 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
|
|
125
127
|
() =>
|
126
128
|
(
|
127
129
|
[
|
128
|
-
columnOrder.includes(
|
130
|
+
(props.state?.columnOrder ?? columnOrder).includes(
|
131
|
+
'mrt-row-drag',
|
132
|
+
) && {
|
129
133
|
header: props.localization.move,
|
130
134
|
size: 60,
|
131
135
|
...props.defaultDisplayColumn,
|
132
136
|
...props.displayColumnDefOptions?.['mrt-row-drag'],
|
133
137
|
id: 'mrt-row-drag',
|
134
138
|
},
|
135
|
-
columnOrder.includes(
|
139
|
+
(props.state?.columnOrder ?? columnOrder).includes(
|
140
|
+
'mrt-row-actions',
|
141
|
+
) && {
|
136
142
|
Cell: ({ cell, row }) => (
|
137
143
|
<MRT_ToggleRowActionMenuButton
|
138
144
|
cell={cell as any}
|
@@ -146,8 +152,10 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
|
|
146
152
|
...props.displayColumnDefOptions?.['mrt-row-actions'],
|
147
153
|
id: 'mrt-row-actions',
|
148
154
|
},
|
149
|
-
columnOrder.includes(
|
150
|
-
|
155
|
+
(props.state?.columnOrder ?? columnOrder).includes(
|
156
|
+
'mrt-row-expand',
|
157
|
+
) &&
|
158
|
+
showExpandColumn(props, props.state?.grouping ?? grouping) && {
|
151
159
|
Cell: ({ row }) => (
|
152
160
|
<MRT_ExpandButton row={row as any} table={table as any} />
|
153
161
|
),
|
@@ -160,7 +168,9 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
|
|
160
168
|
...props.displayColumnDefOptions?.['mrt-row-expand'],
|
161
169
|
id: 'mrt-row-expand',
|
162
170
|
},
|
163
|
-
columnOrder.includes(
|
171
|
+
(props.state?.columnOrder ?? columnOrder).includes(
|
172
|
+
'mrt-row-select',
|
173
|
+
) && {
|
164
174
|
Cell: ({ row }) => (
|
165
175
|
<MRT_SelectCheckbox row={row as any} table={table as any} />
|
166
176
|
),
|
@@ -174,7 +184,9 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
|
|
174
184
|
...props.displayColumnDefOptions?.['mrt-row-select'],
|
175
185
|
id: 'mrt-row-select',
|
176
186
|
},
|
177
|
-
columnOrder.includes(
|
187
|
+
(props.state?.columnOrder ?? columnOrder).includes(
|
188
|
+
'mrt-row-numbers',
|
189
|
+
) && {
|
178
190
|
Cell: ({ row }) => row.index + 1,
|
179
191
|
Header: () => props.localization.rowNumber,
|
180
192
|
header: props.localization.rowNumbers,
|
@@ -206,6 +218,8 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
|
|
206
218
|
props.localization,
|
207
219
|
props.positionActionsColumn,
|
208
220
|
props.renderDetailPanel,
|
221
|
+
props.state?.columnOrder,
|
222
|
+
props.state?.grouping,
|
209
223
|
],
|
210
224
|
);
|
211
225
|
|
@@ -289,7 +303,7 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
|
|
289
303
|
showGlobalFilter,
|
290
304
|
showToolbarDropZone,
|
291
305
|
...props.state,
|
292
|
-
}
|
306
|
+
},
|
293
307
|
}),
|
294
308
|
refs: {
|
295
309
|
bottomToolbarRef,
|