material-react-table 2.0.0-beta.0 → 2.0.0-beta.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 +1 -1
- package/dist/cjs/index.js +119 -81
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/MaterialReactTable.d.ts +4 -4
- package/dist/cjs/types/body/MRT_TableBody.d.ts +4 -4
- package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +5 -5
- package/dist/cjs/types/body/MRT_TableBodyCellValue.d.ts +3 -3
- package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +5 -5
- package/dist/cjs/types/body/MRT_TableBodyRowGrabHandle.d.ts +3 -3
- package/dist/cjs/types/body/MRT_TableBodyRowPinButton.d.ts +3 -3
- package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +3 -3
- package/dist/cjs/types/buttons/MRT_ColumnPinningButtons.d.ts +3 -3
- package/dist/cjs/types/buttons/MRT_CopyButton.d.ts +3 -3
- package/dist/cjs/types/buttons/MRT_EditActionButtons.d.ts +3 -3
- package/dist/cjs/types/buttons/MRT_ExpandAllButton.d.ts +3 -3
- package/dist/cjs/types/buttons/MRT_ExpandButton.d.ts +3 -3
- package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +3 -3
- package/dist/cjs/types/buttons/MRT_RowPinButton.d.ts +3 -3
- package/dist/cjs/types/buttons/MRT_ShowHideColumnsButton.d.ts +3 -3
- package/dist/cjs/types/buttons/MRT_ToggleDensePaddingButton.d.ts +3 -3
- package/dist/cjs/types/buttons/MRT_ToggleFiltersButton.d.ts +3 -3
- package/dist/cjs/types/buttons/MRT_ToggleFullScreenButton.d.ts +3 -3
- package/dist/cjs/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +3 -3
- package/dist/cjs/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +3 -3
- package/dist/cjs/types/column.utils.d.ts +34 -33
- package/dist/cjs/types/filterFns.d.ts +15 -14
- package/dist/cjs/types/footer/MRT_TableFooter.d.ts +3 -3
- package/dist/cjs/types/footer/MRT_TableFooterCell.d.ts +3 -3
- package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +3 -3
- package/dist/cjs/types/head/MRT_TableHead.d.ts +3 -3
- package/dist/cjs/types/head/MRT_TableHeadCell.d.ts +3 -3
- package/dist/cjs/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +3 -3
- package/dist/cjs/types/head/MRT_TableHeadCellFilterContainer.d.ts +3 -3
- package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +3 -3
- package/dist/cjs/types/head/MRT_TableHeadCellGrabHandle.d.ts +3 -3
- package/dist/cjs/types/head/MRT_TableHeadCellResizeHandle.d.ts +3 -3
- package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +3 -3
- package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +3 -3
- package/dist/cjs/types/hooks/useMRT_DisplayColumns.d.ts +3 -3
- package/dist/cjs/types/hooks/useMRT_Effects.d.ts +2 -2
- package/dist/cjs/types/hooks/useMRT_TableInstance.d.ts +2 -2
- package/dist/cjs/types/hooks/useMRT_TableOptions.d.ts +2 -2
- package/dist/cjs/types/inputs/MRT_EditCellTextField.d.ts +3 -3
- package/dist/cjs/types/inputs/MRT_FilterCheckbox.d.ts +3 -3
- package/dist/cjs/types/inputs/MRT_FilterRangeFields.d.ts +3 -3
- package/dist/cjs/types/inputs/MRT_FilterRangeSlider.d.ts +3 -3
- package/dist/cjs/types/inputs/MRT_FilterTextField.d.ts +3 -3
- package/dist/cjs/types/inputs/MRT_GlobalFilterTextField.d.ts +3 -3
- package/dist/cjs/types/inputs/MRT_SelectCheckbox.d.ts +3 -3
- package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +3 -3
- package/dist/cjs/types/menus/MRT_FilterOptionMenu.d.ts +3 -3
- package/dist/cjs/types/menus/MRT_RowActionMenu.d.ts +3 -3
- package/dist/cjs/types/menus/MRT_ShowHideColumnsMenu.d.ts +3 -3
- package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +3 -3
- package/dist/cjs/types/modals/MRT_EditRowModal.d.ts +3 -3
- package/dist/cjs/types/sortingFns.d.ts +3 -3
- package/dist/cjs/types/table/MRT_Table.d.ts +3 -3
- package/dist/cjs/types/table/MRT_TableContainer.d.ts +3 -3
- package/dist/cjs/types/table/MRT_TablePaper.d.ts +3 -3
- package/dist/cjs/types/toolbar/MRT_BottomToolbar.d.ts +3 -3
- package/dist/cjs/types/toolbar/MRT_LinearProgressBar.d.ts +3 -3
- package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +3 -3
- package/dist/cjs/types/toolbar/MRT_ToolbarAlertBanner.d.ts +3 -3
- package/dist/cjs/types/toolbar/MRT_ToolbarDropZone.d.ts +3 -3
- package/dist/cjs/types/toolbar/MRT_ToolbarInternalButtons.d.ts +3 -3
- package/dist/cjs/types/toolbar/MRT_TopToolbar.d.ts +3 -3
- package/dist/cjs/types/types.d.ts +50 -40
- package/dist/cjs/types/useMaterialReactTable.d.ts +2 -2
- package/dist/esm/material-react-table.esm.js +119 -82
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/MaterialReactTable.d.ts +4 -4
- package/dist/esm/types/body/MRT_TableBody.d.ts +4 -4
- package/dist/esm/types/body/MRT_TableBodyCell.d.ts +5 -5
- package/dist/esm/types/body/MRT_TableBodyCellValue.d.ts +3 -3
- package/dist/esm/types/body/MRT_TableBodyRow.d.ts +5 -5
- package/dist/esm/types/body/MRT_TableBodyRowGrabHandle.d.ts +3 -3
- package/dist/esm/types/body/MRT_TableBodyRowPinButton.d.ts +3 -3
- package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +3 -3
- package/dist/esm/types/buttons/MRT_ColumnPinningButtons.d.ts +3 -3
- package/dist/esm/types/buttons/MRT_CopyButton.d.ts +3 -3
- package/dist/esm/types/buttons/MRT_EditActionButtons.d.ts +3 -3
- package/dist/esm/types/buttons/MRT_ExpandAllButton.d.ts +3 -3
- package/dist/esm/types/buttons/MRT_ExpandButton.d.ts +3 -3
- package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +3 -3
- package/dist/esm/types/buttons/MRT_RowPinButton.d.ts +3 -3
- package/dist/esm/types/buttons/MRT_ShowHideColumnsButton.d.ts +3 -3
- package/dist/esm/types/buttons/MRT_ToggleDensePaddingButton.d.ts +3 -3
- package/dist/esm/types/buttons/MRT_ToggleFiltersButton.d.ts +3 -3
- package/dist/esm/types/buttons/MRT_ToggleFullScreenButton.d.ts +3 -3
- package/dist/esm/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +3 -3
- package/dist/esm/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +3 -3
- package/dist/esm/types/column.utils.d.ts +34 -33
- package/dist/esm/types/filterFns.d.ts +15 -14
- package/dist/esm/types/footer/MRT_TableFooter.d.ts +3 -3
- package/dist/esm/types/footer/MRT_TableFooterCell.d.ts +3 -3
- package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +3 -3
- package/dist/esm/types/head/MRT_TableHead.d.ts +3 -3
- package/dist/esm/types/head/MRT_TableHeadCell.d.ts +3 -3
- package/dist/esm/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +3 -3
- package/dist/esm/types/head/MRT_TableHeadCellFilterContainer.d.ts +3 -3
- package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +3 -3
- package/dist/esm/types/head/MRT_TableHeadCellGrabHandle.d.ts +3 -3
- package/dist/esm/types/head/MRT_TableHeadCellResizeHandle.d.ts +3 -3
- package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +3 -3
- package/dist/esm/types/head/MRT_TableHeadRow.d.ts +3 -3
- package/dist/esm/types/hooks/useMRT_DisplayColumns.d.ts +3 -3
- package/dist/esm/types/hooks/useMRT_Effects.d.ts +2 -2
- package/dist/esm/types/hooks/useMRT_TableInstance.d.ts +2 -2
- package/dist/esm/types/hooks/useMRT_TableOptions.d.ts +2 -2
- package/dist/esm/types/inputs/MRT_EditCellTextField.d.ts +3 -3
- package/dist/esm/types/inputs/MRT_FilterCheckbox.d.ts +3 -3
- package/dist/esm/types/inputs/MRT_FilterRangeFields.d.ts +3 -3
- package/dist/esm/types/inputs/MRT_FilterRangeSlider.d.ts +3 -3
- package/dist/esm/types/inputs/MRT_FilterTextField.d.ts +3 -3
- package/dist/esm/types/inputs/MRT_GlobalFilterTextField.d.ts +3 -3
- package/dist/esm/types/inputs/MRT_SelectCheckbox.d.ts +3 -3
- package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +3 -3
- package/dist/esm/types/menus/MRT_FilterOptionMenu.d.ts +3 -3
- package/dist/esm/types/menus/MRT_RowActionMenu.d.ts +3 -3
- package/dist/esm/types/menus/MRT_ShowHideColumnsMenu.d.ts +3 -3
- package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +3 -3
- package/dist/esm/types/modals/MRT_EditRowModal.d.ts +3 -3
- package/dist/esm/types/sortingFns.d.ts +3 -3
- package/dist/esm/types/table/MRT_Table.d.ts +3 -3
- package/dist/esm/types/table/MRT_TableContainer.d.ts +3 -3
- package/dist/esm/types/table/MRT_TablePaper.d.ts +3 -3
- package/dist/esm/types/toolbar/MRT_BottomToolbar.d.ts +3 -3
- package/dist/esm/types/toolbar/MRT_LinearProgressBar.d.ts +3 -3
- package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +3 -3
- package/dist/esm/types/toolbar/MRT_ToolbarAlertBanner.d.ts +3 -3
- package/dist/esm/types/toolbar/MRT_ToolbarDropZone.d.ts +3 -3
- package/dist/esm/types/toolbar/MRT_ToolbarInternalButtons.d.ts +3 -3
- package/dist/esm/types/toolbar/MRT_TopToolbar.d.ts +3 -3
- package/dist/esm/types/types.d.ts +50 -40
- package/dist/esm/types/useMaterialReactTable.d.ts +2 -2
- package/dist/index.d.ts +219 -208
- package/package.json +1 -1
- package/src/MaterialReactTable.tsx +5 -4
- package/src/body/MRT_TableBody.tsx +12 -3
- package/src/body/MRT_TableBodyCell.tsx +28 -8
- package/src/body/MRT_TableBodyCellValue.tsx +7 -3
- package/src/body/MRT_TableBodyRow.tsx +9 -4
- package/src/body/MRT_TableBodyRowGrabHandle.tsx +7 -3
- package/src/body/MRT_TableBodyRowPinButton.tsx +7 -3
- package/src/body/MRT_TableDetailPanel.tsx +8 -5
- package/src/buttons/MRT_ColumnPinningButtons.tsx +7 -3
- package/src/buttons/MRT_CopyButton.tsx +7 -3
- package/src/buttons/MRT_EditActionButtons.tsx +7 -3
- package/src/buttons/MRT_ExpandAllButton.tsx +5 -6
- package/src/buttons/MRT_ExpandButton.tsx +9 -6
- package/src/buttons/MRT_GrabHandleButton.tsx +3 -3
- package/src/buttons/MRT_RowPinButton.tsx +7 -3
- package/src/buttons/MRT_ShowHideColumnsButton.tsx +3 -3
- package/src/buttons/MRT_ToggleDensePaddingButton.tsx +3 -5
- package/src/buttons/MRT_ToggleFiltersButton.tsx +3 -3
- package/src/buttons/MRT_ToggleFullScreenButton.tsx +3 -3
- package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +3 -5
- package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +8 -5
- package/src/column.utils.ts +41 -17
- package/src/filterFns.ts +15 -14
- package/src/footer/MRT_TableFooter.tsx +3 -3
- package/src/footer/MRT_TableFooterCell.tsx +7 -3
- package/src/footer/MRT_TableFooterRow.tsx +3 -2
- package/src/head/MRT_TableHead.tsx +3 -3
- package/src/head/MRT_TableHeadCell.tsx +28 -16
- package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +7 -3
- package/src/head/MRT_TableHeadCellFilterContainer.tsx +7 -5
- package/src/head/MRT_TableHeadCellFilterLabel.tsx +7 -5
- package/src/head/MRT_TableHeadCellGrabHandle.tsx +7 -3
- package/src/head/MRT_TableHeadCellResizeHandle.tsx +15 -8
- package/src/head/MRT_TableHeadCellSortLabel.tsx +7 -3
- package/src/head/MRT_TableHeadRow.tsx +3 -2
- package/src/hooks/useMRT_DisplayColumns.tsx +3 -2
- package/src/hooks/useMRT_Effects.ts +6 -2
- package/src/hooks/useMRT_TableInstance.ts +3 -2
- package/src/hooks/useMRT_TableOptions.ts +7 -3
- package/src/inputs/MRT_EditCellTextField.tsx +17 -5
- package/src/inputs/MRT_FilterCheckbox.tsx +7 -3
- package/src/inputs/MRT_FilterRangeFields.tsx +7 -3
- package/src/inputs/MRT_FilterRangeSlider.tsx +7 -3
- package/src/inputs/MRT_FilterTextField.tsx +9 -3
- package/src/inputs/MRT_GlobalFilterTextField.tsx +3 -3
- package/src/inputs/MRT_SelectCheckbox.tsx +7 -3
- package/src/menus/MRT_ColumnActionMenu.tsx +7 -3
- package/src/menus/MRT_FilterOptionMenu.tsx +3 -2
- package/src/menus/MRT_RowActionMenu.tsx +7 -3
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +7 -3
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +7 -5
- package/src/modals/MRT_EditRowModal.tsx +7 -3
- package/src/sortingFns.ts +3 -3
- package/src/table/MRT_Table.tsx +3 -3
- package/src/table/MRT_TableContainer.tsx +3 -3
- package/src/table/MRT_TablePaper.tsx +4 -4
- package/src/toolbar/MRT_BottomToolbar.tsx +3 -3
- package/src/toolbar/MRT_LinearProgressBar.tsx +3 -3
- package/src/toolbar/MRT_TablePagination.tsx +8 -5
- package/src/toolbar/MRT_ToolbarAlertBanner.tsx +3 -3
- package/src/toolbar/MRT_ToolbarDropZone.tsx +3 -3
- package/src/toolbar/MRT_ToolbarInternalButtons.tsx +3 -3
- package/src/toolbar/MRT_TopToolbar.tsx +3 -3
- package/src/types.ts +75 -45
- package/src/useMaterialReactTable.ts +6 -2
|
@@ -4,13 +4,13 @@ import { MRT_ToggleDensePaddingButton } from '../buttons/MRT_ToggleDensePaddingB
|
|
|
4
4
|
import { MRT_ToggleFiltersButton } from '../buttons/MRT_ToggleFiltersButton';
|
|
5
5
|
import { MRT_ToggleFullScreenButton } from '../buttons/MRT_ToggleFullScreenButton';
|
|
6
6
|
import { MRT_ToggleGlobalFilterButton } from '../buttons/MRT_ToggleGlobalFilterButton';
|
|
7
|
-
import { type MRT_TableInstance } from '../types';
|
|
7
|
+
import { type MRT_RowData, type MRT_TableInstance } from '../types';
|
|
8
8
|
|
|
9
|
-
interface Props<TData extends
|
|
9
|
+
interface Props<TData extends MRT_RowData> {
|
|
10
10
|
table: MRT_TableInstance<TData>;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export const MRT_ToolbarInternalButtons = <TData extends
|
|
13
|
+
export const MRT_ToolbarInternalButtons = <TData extends MRT_RowData>({
|
|
14
14
|
table,
|
|
15
15
|
}: Props<TData>) => {
|
|
16
16
|
const {
|
|
@@ -10,7 +10,7 @@ import { MRT_ToolbarDropZone } from './MRT_ToolbarDropZone';
|
|
|
10
10
|
import { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';
|
|
11
11
|
import { parseFromValuesOrFunc } from '../column.utils';
|
|
12
12
|
import { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';
|
|
13
|
-
import { type MRT_TableInstance } from '../types';
|
|
13
|
+
import { type MRT_RowData, type MRT_TableInstance } from '../types';
|
|
14
14
|
|
|
15
15
|
export const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({
|
|
16
16
|
alignItems: 'flex-start',
|
|
@@ -25,11 +25,11 @@ export const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({
|
|
|
25
25
|
zIndex: 1,
|
|
26
26
|
});
|
|
27
27
|
|
|
28
|
-
interface Props<TData extends
|
|
28
|
+
interface Props<TData extends MRT_RowData> {
|
|
29
29
|
table: MRT_TableInstance<TData>;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
export const MRT_TopToolbar = <TData extends
|
|
32
|
+
export const MRT_TopToolbar = <TData extends MRT_RowData>({
|
|
33
33
|
table,
|
|
34
34
|
}: Props<TData>) => {
|
|
35
35
|
const {
|
package/src/types.ts
CHANGED
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
type SetStateAction,
|
|
7
7
|
} from 'react';
|
|
8
8
|
import {
|
|
9
|
+
type AccessorFn,
|
|
9
10
|
type AggregationFn,
|
|
10
11
|
type Cell,
|
|
11
12
|
type Column,
|
|
@@ -16,6 +17,7 @@ import {
|
|
|
16
17
|
type ColumnSizingInfoState,
|
|
17
18
|
type ColumnSizingState,
|
|
18
19
|
type DeepKeys,
|
|
20
|
+
type DeepValue,
|
|
19
21
|
type ExpandedState,
|
|
20
22
|
type FilterFn,
|
|
21
23
|
type GroupingState,
|
|
@@ -82,6 +84,8 @@ export type MRT_DensityState = 'comfortable' | 'compact' | 'spacious';
|
|
|
82
84
|
|
|
83
85
|
export type MRT_ColumnFilterFnsState = Record<string, MRT_FilterOption>;
|
|
84
86
|
|
|
87
|
+
export type MRT_RowData = Record<string, any>;
|
|
88
|
+
|
|
85
89
|
export type {
|
|
86
90
|
ColumnFiltersState as MRT_ColumnFiltersState,
|
|
87
91
|
ColumnOrderState as MRT_ColumnOrderState,
|
|
@@ -100,6 +104,22 @@ export type {
|
|
|
100
104
|
VisibilityState as MRT_VisibilityState,
|
|
101
105
|
};
|
|
102
106
|
|
|
107
|
+
export type MRT_ColumnHelper<TData extends MRT_RowData> = {
|
|
108
|
+
accessor: <
|
|
109
|
+
TAccessor extends AccessorFn<TData> | DeepKeys<TData>,
|
|
110
|
+
TValue extends TAccessor extends AccessorFn<TData, infer TReturn>
|
|
111
|
+
? TReturn
|
|
112
|
+
: TAccessor extends DeepKeys<TData>
|
|
113
|
+
? DeepValue<TData, TAccessor>
|
|
114
|
+
: never,
|
|
115
|
+
>(
|
|
116
|
+
accessor: TAccessor,
|
|
117
|
+
column: MRT_DisplayColumnDef<TData, TValue>,
|
|
118
|
+
) => MRT_ColumnDef<TData, TValue>;
|
|
119
|
+
display: (column: MRT_DisplayColumnDef<TData>) => MRT_ColumnDef<TData>;
|
|
120
|
+
group: (column: MRT_GroupColumnDef<TData>) => MRT_ColumnDef<TData>;
|
|
121
|
+
};
|
|
122
|
+
|
|
103
123
|
export interface MRT_Localization {
|
|
104
124
|
actions: string;
|
|
105
125
|
and: string;
|
|
@@ -192,13 +212,13 @@ export interface MRT_Localization {
|
|
|
192
212
|
unpinAll: string;
|
|
193
213
|
}
|
|
194
214
|
|
|
195
|
-
export interface MRT_RowModel<TData extends
|
|
215
|
+
export interface MRT_RowModel<TData extends MRT_RowData> {
|
|
196
216
|
flatRows: MRT_Row<TData>[];
|
|
197
217
|
rows: MRT_Row<TData>[];
|
|
198
218
|
rowsById: { [key: string]: MRT_Row<TData> };
|
|
199
219
|
}
|
|
200
220
|
|
|
201
|
-
export type MRT_TableInstance<TData extends
|
|
221
|
+
export type MRT_TableInstance<TData extends MRT_RowData> = Omit<
|
|
202
222
|
Table<TData>,
|
|
203
223
|
| 'getAllColumns'
|
|
204
224
|
| 'getAllFlatColumns'
|
|
@@ -270,13 +290,13 @@ export type MRT_TableInstance<TData extends Record<string, any>> = Omit<
|
|
|
270
290
|
setShowToolbarDropZone: Dispatch<SetStateAction<boolean>>;
|
|
271
291
|
};
|
|
272
292
|
|
|
273
|
-
export type MRT_DefinedTableOptions<TData extends
|
|
293
|
+
export type MRT_DefinedTableOptions<TData extends MRT_RowData> =
|
|
274
294
|
MRT_TableOptions<TData> & {
|
|
275
295
|
icons: MRT_Icons;
|
|
276
296
|
localization: MRT_Localization;
|
|
277
297
|
};
|
|
278
298
|
|
|
279
|
-
export type MRT_TableState<TData extends
|
|
299
|
+
export type MRT_TableState<TData extends MRT_RowData> = TableState & {
|
|
280
300
|
columnFilterFns: MRT_ColumnFilterFnsState;
|
|
281
301
|
creatingRow: MRT_Row<TData> | null;
|
|
282
302
|
density: MRT_DensityState;
|
|
@@ -299,8 +319,8 @@ export type MRT_TableState<TData extends Record<string, any>> = TableState & {
|
|
|
299
319
|
showToolbarDropZone: boolean;
|
|
300
320
|
};
|
|
301
321
|
|
|
302
|
-
export type MRT_ColumnDef<TData extends
|
|
303
|
-
ColumnDef<TData,
|
|
322
|
+
export type MRT_ColumnDef<TData extends MRT_RowData, TValue = unknown> = Omit<
|
|
323
|
+
ColumnDef<TData, TValue>,
|
|
304
324
|
| 'accessorKey'
|
|
305
325
|
| 'aggregatedCell'
|
|
306
326
|
| 'aggregationFn'
|
|
@@ -313,54 +333,54 @@ export type MRT_ColumnDef<TData extends Record<string, any>> = Omit<
|
|
|
313
333
|
| 'sortingFn'
|
|
314
334
|
> & {
|
|
315
335
|
AggregatedCell?: (props: {
|
|
316
|
-
cell: MRT_Cell<TData>;
|
|
317
|
-
column: MRT_Column<TData>;
|
|
336
|
+
cell: MRT_Cell<TData, TValue>;
|
|
337
|
+
column: MRT_Column<TData, TValue>;
|
|
318
338
|
row: MRT_Row<TData>;
|
|
319
339
|
table: MRT_TableInstance<TData>;
|
|
320
340
|
}) => ReactNode;
|
|
321
341
|
Cell?: (props: {
|
|
322
|
-
cell: MRT_Cell<TData>;
|
|
323
|
-
column: MRT_Column<TData>;
|
|
324
|
-
renderedCellValue: ReactNode
|
|
342
|
+
cell: MRT_Cell<TData, TValue>;
|
|
343
|
+
column: MRT_Column<TData, TValue>;
|
|
344
|
+
renderedCellValue: ReactNode;
|
|
325
345
|
row: MRT_Row<TData>;
|
|
326
346
|
rowRef?: RefObject<HTMLTableRowElement>;
|
|
327
347
|
table: MRT_TableInstance<TData>;
|
|
328
348
|
}) => ReactNode;
|
|
329
349
|
Edit?: (props: {
|
|
330
|
-
cell: MRT_Cell<TData>;
|
|
331
|
-
column: MRT_Column<TData>;
|
|
350
|
+
cell: MRT_Cell<TData, TValue>;
|
|
351
|
+
column: MRT_Column<TData, TValue>;
|
|
332
352
|
row: MRT_Row<TData>;
|
|
333
353
|
table: MRT_TableInstance<TData>;
|
|
334
354
|
}) => ReactNode;
|
|
335
355
|
Filter?: (props: {
|
|
336
|
-
column: MRT_Column<TData>;
|
|
356
|
+
column: MRT_Column<TData, TValue>;
|
|
337
357
|
header: MRT_Header<TData>;
|
|
338
358
|
rangeFilterIndex?: number;
|
|
339
359
|
table: MRT_TableInstance<TData>;
|
|
340
360
|
}) => ReactNode;
|
|
341
361
|
Footer?:
|
|
342
362
|
| ((props: {
|
|
343
|
-
column: MRT_Column<TData>;
|
|
363
|
+
column: MRT_Column<TData, TValue>;
|
|
344
364
|
footer: MRT_Header<TData>;
|
|
345
365
|
table: MRT_TableInstance<TData>;
|
|
346
366
|
}) => ReactNode)
|
|
347
367
|
| ReactNode;
|
|
348
368
|
GroupedCell?: (props: {
|
|
349
|
-
cell: MRT_Cell<TData>;
|
|
350
|
-
column: MRT_Column<TData>;
|
|
369
|
+
cell: MRT_Cell<TData, TValue>;
|
|
370
|
+
column: MRT_Column<TData, TValue>;
|
|
351
371
|
row: MRT_Row<TData>;
|
|
352
372
|
table: MRT_TableInstance<TData>;
|
|
353
373
|
}) => ReactNode;
|
|
354
374
|
Header?:
|
|
355
375
|
| ((props: {
|
|
356
|
-
column: MRT_Column<TData>;
|
|
376
|
+
column: MRT_Column<TData, TValue>;
|
|
357
377
|
header: MRT_Header<TData>;
|
|
358
378
|
table: MRT_TableInstance<TData>;
|
|
359
379
|
}) => ReactNode)
|
|
360
380
|
| ReactNode;
|
|
361
381
|
PlaceholderCell?: (props: {
|
|
362
|
-
cell: MRT_Cell<TData>;
|
|
363
|
-
column: MRT_Column<TData>;
|
|
382
|
+
cell: MRT_Cell<TData, TValue>;
|
|
383
|
+
column: MRT_Column<TData, TValue>;
|
|
364
384
|
row: MRT_Row<TData>;
|
|
365
385
|
table: MRT_TableInstance<TData>;
|
|
366
386
|
}) => ReactNode;
|
|
@@ -370,7 +390,7 @@ export type MRT_ColumnDef<TData extends Record<string, any>> = Omit<
|
|
|
370
390
|
*
|
|
371
391
|
* @example accessorFn: (row) => row.username
|
|
372
392
|
*/
|
|
373
|
-
accessorFn?: (originalRow: TData) =>
|
|
393
|
+
accessorFn?: (originalRow: TData) => TValue;
|
|
374
394
|
/**
|
|
375
395
|
* Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.
|
|
376
396
|
* Specify which key in the row this column should use to access the correct data.
|
|
@@ -393,7 +413,7 @@ export type MRT_ColumnDef<TData extends Record<string, any>> = Omit<
|
|
|
393
413
|
columnFilterModeOptions?: Array<
|
|
394
414
|
LiteralUnion<string & MRT_FilterOption>
|
|
395
415
|
> | null;
|
|
396
|
-
columns?: MRT_ColumnDef<TData>[];
|
|
416
|
+
columns?: MRT_ColumnDef<TData, TValue>[];
|
|
397
417
|
editSelectOptions?: ({ text: string; value: any } | string)[];
|
|
398
418
|
editVariant?: 'select' | 'text';
|
|
399
419
|
enableClickToCopy?: boolean;
|
|
@@ -447,7 +467,7 @@ export type MRT_ColumnDef<TData extends Record<string, any>> = Omit<
|
|
|
447
467
|
| IconButtonProps;
|
|
448
468
|
muiCopyButtonProps?:
|
|
449
469
|
| ((props: {
|
|
450
|
-
cell: MRT_Cell<TData>;
|
|
470
|
+
cell: MRT_Cell<TData, TValue>;
|
|
451
471
|
column: MRT_Column<TData>;
|
|
452
472
|
row: MRT_Row<TData>;
|
|
453
473
|
table: MRT_TableInstance<TData>;
|
|
@@ -455,7 +475,7 @@ export type MRT_ColumnDef<TData extends Record<string, any>> = Omit<
|
|
|
455
475
|
| ButtonProps;
|
|
456
476
|
muiEditTextFieldProps?:
|
|
457
477
|
| ((props: {
|
|
458
|
-
cell: MRT_Cell<TData>;
|
|
478
|
+
cell: MRT_Cell<TData, TValue>;
|
|
459
479
|
column: MRT_Column<TData>;
|
|
460
480
|
row: MRT_Row<TData>;
|
|
461
481
|
table: MRT_TableInstance<TData>;
|
|
@@ -495,7 +515,7 @@ export type MRT_ColumnDef<TData extends Record<string, any>> = Omit<
|
|
|
495
515
|
| TextFieldProps;
|
|
496
516
|
muiTableBodyCellProps?:
|
|
497
517
|
| ((props: {
|
|
498
|
-
cell: MRT_Cell<TData>;
|
|
518
|
+
cell: MRT_Cell<TData, TValue>;
|
|
499
519
|
column: MRT_Column<TData>;
|
|
500
520
|
row: MRT_Row<TData>;
|
|
501
521
|
table: MRT_TableInstance<TData>;
|
|
@@ -528,41 +548,51 @@ export type MRT_ColumnDef<TData extends Record<string, any>> = Omit<
|
|
|
528
548
|
sortingFn?: MRT_SortingFn<TData>;
|
|
529
549
|
};
|
|
530
550
|
|
|
531
|
-
export type
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
>
|
|
551
|
+
export type MRT_DisplayColumnDef<
|
|
552
|
+
TData extends MRT_RowData,
|
|
553
|
+
TValue = unknown,
|
|
554
|
+
> = Omit<MRT_ColumnDef<TData, TValue>, 'accessorFn' | 'accessorKey'>;
|
|
555
|
+
|
|
556
|
+
export type MRT_GroupColumnDef<TData extends MRT_RowData> =
|
|
557
|
+
MRT_DisplayColumnDef<TData, any> & {
|
|
558
|
+
columns: MRT_ColumnDef<TData>[];
|
|
559
|
+
};
|
|
560
|
+
|
|
561
|
+
export type MRT_DefinedColumnDef<
|
|
562
|
+
TData extends MRT_RowData,
|
|
563
|
+
TValue = unknown,
|
|
564
|
+
> = Omit<MRT_ColumnDef<TData, TValue>, 'defaultDisplayColumn' | 'id'> & {
|
|
535
565
|
_filterFn: MRT_FilterOption;
|
|
536
|
-
defaultDisplayColumn: Partial<MRT_ColumnDef<TData>>;
|
|
566
|
+
defaultDisplayColumn: Partial<MRT_ColumnDef<TData, TValue>>;
|
|
537
567
|
id: string;
|
|
538
568
|
};
|
|
539
569
|
|
|
540
|
-
export type MRT_Column<TData extends
|
|
541
|
-
Column<TData,
|
|
570
|
+
export type MRT_Column<TData extends MRT_RowData, TValue = unknown> = Omit<
|
|
571
|
+
Column<TData, TValue>,
|
|
542
572
|
'columnDef' | 'columns' | 'filterFn' | 'footer' | 'header'
|
|
543
573
|
> & {
|
|
544
|
-
columnDef: MRT_DefinedColumnDef<TData>;
|
|
545
|
-
columns?: MRT_Column<TData>[];
|
|
574
|
+
columnDef: MRT_DefinedColumnDef<TData, TValue>;
|
|
575
|
+
columns?: MRT_Column<TData, TValue>[];
|
|
546
576
|
filterFn?: MRT_FilterFn<TData>;
|
|
547
577
|
footer: string;
|
|
548
578
|
header: string;
|
|
549
579
|
};
|
|
550
580
|
|
|
551
|
-
export type MRT_Header<TData extends
|
|
581
|
+
export type MRT_Header<TData extends MRT_RowData> = Omit<
|
|
552
582
|
Header<TData, unknown>,
|
|
553
583
|
'column'
|
|
554
584
|
> & {
|
|
555
585
|
column: MRT_Column<TData>;
|
|
556
586
|
};
|
|
557
587
|
|
|
558
|
-
export type MRT_HeaderGroup<TData extends
|
|
588
|
+
export type MRT_HeaderGroup<TData extends MRT_RowData> = Omit<
|
|
559
589
|
HeaderGroup<TData>,
|
|
560
590
|
'headers'
|
|
561
591
|
> & {
|
|
562
592
|
headers: MRT_Header<TData>[];
|
|
563
593
|
};
|
|
564
594
|
|
|
565
|
-
export type MRT_Row<TData extends
|
|
595
|
+
export type MRT_Row<TData extends MRT_RowData> = Omit<
|
|
566
596
|
Row<TData>,
|
|
567
597
|
'_valuesCache' | 'getAllCells' | 'getVisibleCells' | 'subRows'
|
|
568
598
|
> & {
|
|
@@ -572,17 +602,17 @@ export type MRT_Row<TData extends Record<string, any>> = Omit<
|
|
|
572
602
|
subRows?: MRT_Row<TData>[];
|
|
573
603
|
};
|
|
574
604
|
|
|
575
|
-
export type MRT_Cell<TData extends
|
|
576
|
-
Cell<TData,
|
|
605
|
+
export type MRT_Cell<TData extends MRT_RowData, TValue = unknown> = Omit<
|
|
606
|
+
Cell<TData, TValue>,
|
|
577
607
|
'column' | 'row'
|
|
578
608
|
> & {
|
|
579
|
-
column: MRT_Column<TData>;
|
|
609
|
+
column: MRT_Column<TData, TValue>;
|
|
580
610
|
row: MRT_Row<TData>;
|
|
581
611
|
};
|
|
582
612
|
|
|
583
613
|
export type MRT_AggregationOption = string & keyof typeof MRT_AggregationFns;
|
|
584
614
|
|
|
585
|
-
export type MRT_AggregationFn<TData extends
|
|
615
|
+
export type MRT_AggregationFn<TData extends MRT_RowData> =
|
|
586
616
|
| AggregationFn<TData>
|
|
587
617
|
| MRT_AggregationOption;
|
|
588
618
|
|
|
@@ -590,7 +620,7 @@ export type MRT_SortingOption = LiteralUnion<
|
|
|
590
620
|
string & keyof typeof MRT_SortingFns
|
|
591
621
|
>;
|
|
592
622
|
|
|
593
|
-
export type MRT_SortingFn<TData extends
|
|
623
|
+
export type MRT_SortingFn<TData extends MRT_RowData> =
|
|
594
624
|
| MRT_SortingOption
|
|
595
625
|
| SortingFn<TData>;
|
|
596
626
|
|
|
@@ -598,7 +628,7 @@ export type MRT_FilterOption = LiteralUnion<
|
|
|
598
628
|
string & keyof typeof MRT_FilterFns
|
|
599
629
|
>;
|
|
600
630
|
|
|
601
|
-
export type MRT_FilterFn<TData extends
|
|
631
|
+
export type MRT_FilterFn<TData extends MRT_RowData> =
|
|
602
632
|
| FilterFn<TData>
|
|
603
633
|
| MRT_FilterOption;
|
|
604
634
|
|
|
@@ -626,7 +656,7 @@ export type MRT_DisplayColumnIds =
|
|
|
626
656
|
* See the full props list on the official docs site:
|
|
627
657
|
* @link https://www.material-react-table.com/docs/api/props
|
|
628
658
|
*/
|
|
629
|
-
export type MRT_TableOptions<TData extends
|
|
659
|
+
export type MRT_TableOptions<TData extends MRT_RowData> = Omit<
|
|
630
660
|
Partial<TableOptions<TData>>,
|
|
631
661
|
| 'columns'
|
|
632
662
|
| 'data'
|
|
@@ -662,7 +692,7 @@ export type MRT_TableOptions<TData extends Record<string, any>> = Omit<
|
|
|
662
692
|
* See all Columns Options on the official docs site:
|
|
663
693
|
* @link https://www.material-react-table.com/docs/api/column-options
|
|
664
694
|
*/
|
|
665
|
-
columns: MRT_ColumnDef<TData>[];
|
|
695
|
+
columns: MRT_ColumnDef<TData, any>[];
|
|
666
696
|
createDisplayMode?: 'custom' | 'modal' | 'row';
|
|
667
697
|
/**
|
|
668
698
|
* Pass your data as an array of objects. Objects can theoretically be any shape, but it's best to keep them consistent.
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { useMRT_TableInstance } from './hooks/useMRT_TableInstance';
|
|
2
2
|
import { useMRT_TableOptions } from './hooks/useMRT_TableOptions';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
type MRT_RowData,
|
|
5
|
+
type MRT_TableInstance,
|
|
6
|
+
type MRT_TableOptions,
|
|
7
|
+
} from './types';
|
|
4
8
|
|
|
5
|
-
export const useMaterialReactTable = <TData extends
|
|
9
|
+
export const useMaterialReactTable = <TData extends MRT_RowData>(
|
|
6
10
|
tableOptions: MRT_TableOptions<TData>,
|
|
7
11
|
): MRT_TableInstance<TData> => {
|
|
8
12
|
const parsedTableOptions = useMRT_TableOptions(tableOptions);
|