material-react-table 0.4.6 → 0.4.9

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.
Files changed (53) hide show
  1. package/README.md +3 -2
  2. package/dist/MaterialReactTable.d.ts +68 -23
  3. package/dist/body/MRT_TableBodyCell.d.ts +2 -2
  4. package/dist/body/MRT_TableBodyRow.d.ts +2 -2
  5. package/dist/body/MRT_TableDetailPanel.d.ts +2 -2
  6. package/dist/buttons/MRT_EditActionButtons.d.ts +2 -2
  7. package/dist/buttons/MRT_ExpandButton.d.ts +2 -2
  8. package/dist/buttons/MRT_ToggleColumnActionMenuButton.d.ts +2 -2
  9. package/dist/buttons/MRT_ToggleRowActionMenuButton.d.ts +2 -2
  10. package/dist/footer/MRT_TableFooterCell.d.ts +2 -2
  11. package/dist/footer/MRT_TableFooterRow.d.ts +2 -2
  12. package/dist/head/MRT_TableHeadCell.d.ts +2 -2
  13. package/dist/head/MRT_TableHeadRow.d.ts +2 -2
  14. package/dist/inputs/MRT_EditCellTextField.d.ts +2 -2
  15. package/dist/inputs/MRT_FilterTextField.d.ts +2 -2
  16. package/dist/inputs/MRT_SelectCheckbox.d.ts +2 -2
  17. package/dist/material-react-table.cjs.development.js +42 -26
  18. package/dist/material-react-table.cjs.development.js.map +1 -1
  19. package/dist/material-react-table.cjs.production.min.js +1 -1
  20. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  21. package/dist/material-react-table.esm.js +43 -27
  22. package/dist/material-react-table.esm.js.map +1 -1
  23. package/dist/menus/MRT_ColumnActionMenu.d.ts +2 -2
  24. package/dist/menus/MRT_RowActionMenu.d.ts +2 -2
  25. package/dist/menus/MRT_ShowHideColumnsMenu.d.ts +2 -2
  26. package/dist/useMRT.d.ts +4 -4
  27. package/package.json +1 -1
  28. package/src/@types/react-table-config.d.ts +18 -121
  29. package/src/MaterialReactTable.tsx +183 -23
  30. package/src/body/MRT_TableBody.tsx +2 -1
  31. package/src/body/MRT_TableBodyCell.tsx +2 -2
  32. package/src/body/MRT_TableBodyRow.tsx +6 -4
  33. package/src/body/MRT_TableDetailPanel.tsx +9 -16
  34. package/src/buttons/MRT_EditActionButtons.tsx +2 -2
  35. package/src/buttons/MRT_ExpandButton.tsx +2 -2
  36. package/src/buttons/MRT_ShowHideColumnsButton.tsx +2 -1
  37. package/src/buttons/MRT_ToggleColumnActionMenuButton.tsx +2 -2
  38. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +3 -3
  39. package/src/footer/MRT_TableFooter.tsx +2 -1
  40. package/src/footer/MRT_TableFooterCell.tsx +2 -2
  41. package/src/footer/MRT_TableFooterRow.tsx +3 -3
  42. package/src/head/MRT_TableHead.tsx +2 -1
  43. package/src/head/MRT_TableHeadCell.tsx +2 -2
  44. package/src/head/MRT_TableHeadRow.tsx +3 -3
  45. package/src/index.tsx +2 -0
  46. package/src/inputs/MRT_EditCellTextField.tsx +2 -2
  47. package/src/inputs/MRT_FilterTextField.tsx +3 -2
  48. package/src/inputs/MRT_SelectCheckbox.tsx +3 -3
  49. package/src/menus/MRT_ColumnActionMenu.tsx +2 -2
  50. package/src/menus/MRT_RowActionMenu.tsx +2 -2
  51. package/src/menus/MRT_ShowHideColumnsMenu.tsx +3 -2
  52. package/src/table/MRT_TableContainer.tsx +19 -1
  53. package/src/useMRT.tsx +18 -15
@@ -1,8 +1,8 @@
1
1
  import { FC } from 'react';
2
- import { HeaderGroup } from 'react-table';
2
+ import { MRT_HeaderGroup } from '..';
3
3
  interface Props {
4
4
  anchorEl: HTMLElement | null;
5
- column: HeaderGroup;
5
+ column: MRT_HeaderGroup;
6
6
  setAnchorEl: (anchorEl: HTMLElement | null) => void;
7
7
  }
8
8
  export declare const MRT_ColumnActionMenu: FC<Props>;
@@ -1,8 +1,8 @@
1
1
  import { FC } from 'react';
2
- import { Row } from 'react-table';
2
+ import { MRT_Row } from '..';
3
3
  interface Props {
4
4
  anchorEl: HTMLElement | null;
5
- row: Row;
5
+ row: MRT_Row;
6
6
  setAnchorEl: (anchorEl: HTMLElement | null) => void;
7
7
  handleEdit: () => void;
8
8
  }
@@ -1,7 +1,7 @@
1
1
  import { FC } from 'react';
2
- import { ColumnInstance } from 'react-table';
2
+ import { MRT_ColumnInstance } from '..';
3
3
  interface Props {
4
- column: ColumnInstance;
4
+ column: MRT_ColumnInstance;
5
5
  }
6
6
  export declare const MRT_ShowHideColumnsMenu: FC<Props>;
7
7
  export {};
package/dist/useMRT.d.ts CHANGED
@@ -1,24 +1,24 @@
1
1
  import React, { PropsWithChildren } from 'react';
2
- import { Row, TableInstance } from 'react-table';
2
+ import { MRT_Row, MRT_TableInstance } from '.';
3
3
  import { MRT_Icons } from './icons';
4
4
  import { MRT_Localization } from './localization';
5
5
  import { MaterialReactTableProps } from './MaterialReactTable';
6
6
  export declare type UseMRT<D extends {} = {}> = MaterialReactTableProps<D> & {
7
7
  anyRowsCanExpand: boolean;
8
8
  anyRowsExpanded: boolean;
9
- currentEditingRow: Row<D> | null;
9
+ currentEditingRow: MRT_Row<D> | null;
10
10
  densePadding: boolean;
11
11
  fullScreen: boolean;
12
12
  icons: MRT_Icons;
13
13
  localization: MRT_Localization;
14
- setCurrentEditingRow: (currentRowEditingId: Row<D> | null) => void;
14
+ setCurrentEditingRow: (currentRowEditingId: MRT_Row<D> | null) => void;
15
15
  setDensePadding: (densePadding: boolean) => void;
16
16
  setFullScreen: (fullScreen: boolean) => void;
17
17
  setShowFilters: (showFilters: boolean) => void;
18
18
  setShowSearch: (showSearch: boolean) => void;
19
19
  showFilters: boolean;
20
20
  showSearch: boolean;
21
- tableInstance: TableInstance<D>;
21
+ tableInstance: MRT_TableInstance<D>;
22
22
  };
23
23
  export declare const MaterialReactTableProvider: <D extends {}>(props: React.PropsWithChildren<MaterialReactTableProps<D>>) => JSX.Element;
24
24
  export declare const useMRT: <D extends {}>() => UseMRT<D>;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.4.6",
2
+ "version": "0.4.9",
3
3
  "license": "MIT",
4
4
  "name": "material-react-table",
5
5
  "description": "A fully featured Material-UI implementation of react-table, inspired by material-table and the mui DataGrid, written from the ground up in TypeScript.",
@@ -1,102 +1,23 @@
1
- import { ChangeEvent, ReactNode } from 'react';
2
- import { TableCellProps, TextFieldProps } from '@mui/material';
3
1
  import {
4
- UseColumnOrderInstanceProps,
5
- UseColumnOrderState,
6
- UseExpandedHooks,
7
- UseExpandedInstanceProps,
8
- UseExpandedOptions,
9
- UseExpandedRowProps,
10
- UseExpandedState,
11
- UseFiltersColumnOptions,
12
- UseFiltersColumnProps,
13
- UseFiltersInstanceProps,
14
- UseFiltersOptions,
15
- UseFiltersState,
16
- UseGlobalFiltersColumnOptions,
17
- UseGlobalFiltersInstanceProps,
18
- UseGlobalFiltersOptions,
19
- UseGlobalFiltersState,
20
- UseGroupByCellProps,
21
- UseGroupByColumnOptions,
22
- UseGroupByColumnProps,
23
2
  UseGroupByHooks,
24
- UseGroupByInstanceProps,
25
- UseGroupByOptions,
26
- UseGroupByRowProps,
27
- UseGroupByState,
28
- UsePaginationInstanceProps,
29
- UsePaginationOptions,
30
- UsePaginationState,
31
- UseResizeColumnsColumnOptions,
32
- UseResizeColumnsColumnProps,
33
- UseResizeColumnsOptions,
34
- UseResizeColumnsState,
35
3
  UseRowSelectHooks,
36
- UseRowSelectInstanceProps,
37
- UseRowSelectOptions,
38
- UseRowSelectRowProps,
39
- UseRowSelectState,
40
- UseRowStateCellProps,
41
- UseRowStateInstanceProps,
42
- UseRowStateOptions,
43
- UseRowStateRowProps,
44
- UseRowStateState,
45
- UseSortByColumnOptions,
46
- UseSortByColumnProps,
47
4
  UseSortByHooks,
48
- UseSortByInstanceProps,
49
- UseSortByOptions,
50
- UseSortByState,
51
5
  } from 'react-table';
52
-
53
- export type MRT_ColumnInterface<D extends {} = {}> =
54
- UseFiltersColumnOptions<D> &
55
- UseGlobalFiltersColumnOptions<D> &
56
- UseGroupByColumnOptions<D> &
57
- UseResizeColumnsColumnOptions<D> &
58
- UseSortByColumnOptions<D> & {
59
- disableFilters?: boolean;
60
- Filter?: ({ column }: { column: HeaderGroup<D> }) => ReactNode;
61
- editable?: boolean;
62
- Edit?: ({ cell, onChange }: { cell: Cell<D> }) => ReactNode;
63
- muiTableBodyCellProps?:
64
- | TableCellProps
65
- | ((cell: Cell<D>) => TableCellProps);
66
- muiTableHeadCellProps?:
67
- | TableCellProps
68
- | ((column: Column<D>) => TableCellProps);
69
- muiTableFooterCellProps?:
70
- | TableCellProps
71
- | ((column: Column<D>) => TableCellProps);
72
- muiTableBodyCellEditTextFieldProps?:
73
- | TextFieldProps
74
- | ((cell: Cell<D>) => TextFieldProps);
75
- muiTableHeadCellFilterTextFieldProps?:
76
- | TextFieldProps
77
- | ((column: Column<D>) => TextFieldProps);
78
- onCellEditChange?: (
79
- event: ChangeEvent<HTMLInputElement>,
80
- cell: Cell<D>,
81
- ) => void;
82
- onFilterChange?: (
83
- event: ChangeEvent<HTMLInputElement>,
84
- filterValue: any,
85
- ) => void;
86
- };
6
+ import {
7
+ MRT_Cell,
8
+ MRT_ColumnInstance,
9
+ MRT_ColumnInterface,
10
+ MRT_Row,
11
+ MRT_TableInstance,
12
+ MRT_TableOptions,
13
+ MRT_TableState,
14
+ } from '..';
87
15
 
88
16
  declare module 'react-table' {
17
+ // take this file as-is, or comment out the sections that don't apply to your plugin configuration
18
+
89
19
  export interface TableOptions<D extends Record<string, unknown>>
90
- extends UseExpandedOptions<D>,
91
- UseFiltersOptions<D>,
92
- UseGlobalFiltersOptions<D>,
93
- UseGroupByOptions<D>,
94
- UsePaginationOptions<D>,
95
- UseResizeColumnsOptions<D>,
96
- UseRowSelectOptions<D>,
97
- UseRowStateOptions<D>,
98
- UseSortByOptions<D>,
99
- Record<string, any> {}
20
+ extends MRT_TableOptions<D> {}
100
21
 
101
22
  export interface Hooks<
102
23
  D extends Record<string, unknown> = Record<string, unknown>,
@@ -107,50 +28,26 @@ declare module 'react-table' {
107
28
 
108
29
  export interface TableInstance<
109
30
  D extends Record<string, unknown> = Record<string, unknown>,
110
- > extends UseColumnOrderInstanceProps<D>,
111
- UseExpandedInstanceProps<D>,
112
- UseFiltersInstanceProps<D>,
113
- UseGlobalFiltersInstanceProps<D>,
114
- UseGroupByInstanceProps<D>,
115
- UsePaginationInstanceProps<D>,
116
- UseRowSelectInstanceProps<D>,
117
- UseRowStateInstanceProps<D>,
118
- UseSortByInstanceProps<D> {}
31
+ > extends MRT_TableInstance<D> {}
119
32
 
120
33
  export interface TableState<
121
34
  D extends Record<string, unknown> = Record<string, unknown>,
122
- > extends UseColumnOrderState<D>,
123
- UseExpandedState<D>,
124
- UseFiltersState<D>,
125
- UseGlobalFiltersState<D>,
126
- UseGroupByState<D>,
127
- UsePaginationState<D>,
128
- UseResizeColumnsState<D>,
129
- UseRowSelectState<D>,
130
- UseRowStateState<D>,
131
- UseSortByState<D> {}
35
+ > extends MRT_TableState<D> {}
132
36
 
133
37
  export interface ColumnInterface<
134
38
  D extends Record<string, unknown> = Record<string, unknown>,
135
- > extends MRT_ColumnInterface {}
39
+ > extends MRT_ColumnInterface<D> {}
136
40
 
137
41
  export interface ColumnInstance<
138
42
  D extends Record<string, unknown> = Record<string, unknown>,
139
- > extends UseFiltersColumnProps<D>,
140
- UseGroupByColumnProps<D>,
141
- UseResizeColumnsColumnProps<D>,
142
- UseSortByColumnProps<D> {}
43
+ > extends MRT_ColumnInstance<D> {}
143
44
 
144
45
  export interface Cell<
145
46
  D extends Record<string, unknown> = Record<string, unknown>,
146
47
  V = any,
147
- > extends UseGroupByCellProps<D>,
148
- UseRowStateCellProps<D> {}
48
+ > extends MRT_Cell<D> {}
149
49
 
150
50
  export interface Row<
151
51
  D extends Record<string, unknown> = Record<string, unknown>,
152
- > extends UseExpandedRowProps<D>,
153
- UseGroupByRowProps<D>,
154
- UseRowSelectRowProps<D>,
155
- UseRowStateRowProps<D> {}
52
+ > extends MRT_Row<D> {}
156
53
  }
@@ -16,29 +16,66 @@ import {
16
16
  import {
17
17
  Cell,
18
18
  Column,
19
+ ColumnInstance,
20
+ // ColumnInterface,
19
21
  HeaderGroup,
20
22
  Row,
21
23
  TableInstance,
22
24
  TableOptions,
25
+ TableState,
26
+ UseColumnOrderInstanceProps,
27
+ UseColumnOrderState,
28
+ UseExpandedInstanceProps,
23
29
  UseExpandedOptions,
30
+ UseExpandedRowProps,
31
+ UseExpandedState,
32
+ UseFiltersColumnOptions,
33
+ UseFiltersColumnProps,
34
+ UseFiltersInstanceProps,
24
35
  UseFiltersOptions,
36
+ UseFiltersState,
37
+ UseGlobalFiltersColumnOptions,
38
+ UseGlobalFiltersInstanceProps,
25
39
  UseGlobalFiltersOptions,
40
+ UseGlobalFiltersState,
41
+ UseGroupByCellProps,
42
+ UseGroupByColumnOptions,
43
+ UseGroupByColumnProps,
44
+ UseGroupByInstanceProps,
26
45
  UseGroupByOptions,
46
+ UseGroupByRowProps,
47
+ UseGroupByState,
48
+ UsePaginationInstanceProps,
27
49
  UsePaginationOptions,
50
+ UsePaginationState,
51
+ UseResizeColumnsColumnOptions,
52
+ UseResizeColumnsColumnProps,
28
53
  UseResizeColumnsOptions,
54
+ UseResizeColumnsState,
55
+ UseRowSelectInstanceProps,
29
56
  UseRowSelectOptions,
57
+ UseRowSelectRowProps,
58
+ UseRowSelectState,
59
+ UseRowStateCellProps,
60
+ UseRowStateInstanceProps,
30
61
  UseRowStateOptions,
62
+ UseRowStateRowProps,
63
+ UseRowStateState,
64
+ UseSortByColumnOptions,
65
+ UseSortByColumnProps,
66
+ UseSortByInstanceProps,
31
67
  UseSortByOptions,
68
+ UseSortByState,
69
+ UseTableHeaderGroupProps,
70
+ UseTableInstanceProps,
32
71
  UseTableOptions,
33
72
  } from 'react-table';
34
73
  import { MaterialReactTableProvider } from './useMRT';
35
74
  import { MRT_TableContainer } from './table/MRT_TableContainer';
36
- import { MRT_ColumnInterface } from './@types/react-table-config';
37
75
  import { MRT_Localization, MRT_DefaultLocalization_EN } from './localization';
38
76
  import { MRT_Default_Icons, MRT_Icons } from './icons';
39
77
 
40
- export type MaterialReactTableProps<D extends {} = {}> = TableOptions<D> &
41
- UseTableOptions<D> &
78
+ export type MRT_TableOptions<D extends {} = {}> = TableOptions<D> &
42
79
  UseExpandedOptions<D> &
43
80
  UseFiltersOptions<D> &
44
81
  UseGlobalFiltersOptions<D> &
@@ -49,10 +86,129 @@ export type MaterialReactTableProps<D extends {} = {}> = TableOptions<D> &
49
86
  UseRowStateOptions<D> &
50
87
  UseSortByOptions<D> & {
51
88
  columns: (Column<D> & MRT_ColumnInterface)[];
52
- defaultDensePadding?: boolean;
53
- defaultFullScreen?: boolean;
54
- defaultShowFilters?: boolean;
55
- defaultShowSearchTextField?: boolean;
89
+ data: D[];
90
+ initialState?: Partial<MRT_TableState>;
91
+ };
92
+
93
+ export type MRT_TableInstance<D extends {} = {}> = TableInstance<D> &
94
+ UseTableInstanceProps<D> &
95
+ UseColumnOrderInstanceProps<D> &
96
+ UseExpandedInstanceProps<D> &
97
+ UseFiltersInstanceProps<D> &
98
+ UseGlobalFiltersInstanceProps<D> &
99
+ UseGroupByInstanceProps<D> &
100
+ UsePaginationInstanceProps<D> &
101
+ UseRowSelectInstanceProps<D> &
102
+ UseRowStateInstanceProps<D> &
103
+ UseSortByInstanceProps<D> & {
104
+ columns: (Column<D> & MRT_ColumnInstance<D>)[];
105
+ headerGroups: MRT_HeaderGroup<D>[];
106
+ footerGroups: MRT_HeaderGroup<D>[];
107
+ state: MRT_TableState<D>;
108
+ rows: MRT_Row<D>[];
109
+ page: MRT_Row<D>[];
110
+ resetResizing: () => void;
111
+ getToggleAllRowsExpandedProps: () => void;
112
+ };
113
+
114
+ export type MRT_ColumnInterface<D extends {} = {}> =
115
+ // ColumnInterface<D> &
116
+ UseFiltersColumnOptions<D> &
117
+ UseGlobalFiltersColumnOptions<D> &
118
+ UseGroupByColumnOptions<D> &
119
+ UseResizeColumnsColumnOptions<D> &
120
+ UseSortByColumnOptions<D> & {
121
+ Edit?: ({
122
+ cell,
123
+ onChange,
124
+ }: {
125
+ cell: MRT_Cell<D>;
126
+ onChange?: (event: ChangeEvent<HTMLInputElement>) => void;
127
+ }) => ReactNode;
128
+ Filter?: ({ column }: { column: MRT_HeaderGroup<D> }) => ReactNode;
129
+ Footer?: string;
130
+ Header?: string;
131
+ disableFilters?: boolean;
132
+ editable?: boolean;
133
+ muiTableBodyCellEditTextFieldProps?:
134
+ | TextFieldProps
135
+ | ((cell: MRT_Cell<D>) => TextFieldProps);
136
+ muiTableBodyCellProps?:
137
+ | TableCellProps
138
+ | ((cell: MRT_Cell<D>) => TableCellProps);
139
+ muiTableFooterCellProps?:
140
+ | TableCellProps
141
+ | ((column: Column<D>) => TableCellProps);
142
+ muiTableHeadCellFilterTextFieldProps?:
143
+ | TextFieldProps
144
+ | ((column: Column<D>) => TextFieldProps);
145
+ muiTableHeadCellProps?:
146
+ | TableCellProps
147
+ | ((column: Column<D>) => TableCellProps);
148
+ onCellEditChange?: (
149
+ event: ChangeEvent<HTMLInputElement>,
150
+ cell: MRT_Cell<D>,
151
+ ) => void;
152
+ onFilterChange?: (
153
+ event: ChangeEvent<HTMLInputElement>,
154
+ filterValue: any,
155
+ ) => void;
156
+ };
157
+
158
+ export type MRT_ColumnInstance<D extends {} = {}> = ColumnInstance<D> &
159
+ UseFiltersColumnProps<D> &
160
+ UseGroupByColumnProps<D> &
161
+ UseResizeColumnsColumnProps<D> &
162
+ UseSortByColumnProps<D> & {
163
+ columns?: MRT_ColumnInstance<D>[];
164
+ };
165
+
166
+ export type MRT_HeaderGroup<D extends {} = {}> = HeaderGroup<D> &
167
+ MRT_ColumnInstance<D> &
168
+ UseTableHeaderGroupProps<D> & {
169
+ headers: MRT_HeaderGroup<D>[];
170
+ };
171
+
172
+ export type MRT_Row<D extends {} = {}> = Row<D> &
173
+ UseExpandedRowProps<D> &
174
+ UseGroupByRowProps<D> &
175
+ UseRowSelectRowProps<D> &
176
+ UseRowStateRowProps<D> & {
177
+ cells: MRT_Cell<D>[];
178
+ };
179
+
180
+ export type MRT_Cell<D extends {} = {}, _V = any> = Cell<D> &
181
+ UseGroupByCellProps<D> &
182
+ UseRowStateCellProps<D> & {};
183
+
184
+ export type MRT_TableState<D extends {} = {}> = TableState<D> &
185
+ UseColumnOrderState<D> &
186
+ UseExpandedState<D> &
187
+ UseFiltersState<D> &
188
+ UseGlobalFiltersState<D> &
189
+ UseGroupByState<D> &
190
+ UsePaginationState<D> &
191
+ UseResizeColumnsState<D> &
192
+ UseRowSelectState<D> &
193
+ UseRowStateState<D> &
194
+ UseSortByState<D> & {
195
+ densePadding?: boolean;
196
+ fullScreen?: boolean;
197
+ showFilters?: boolean;
198
+ showSearchTextField?: boolean;
199
+ };
200
+
201
+ export type MaterialReactTableProps<D extends {} = {}> = UseTableOptions<D> &
202
+ UseExpandedOptions<D> &
203
+ UseFiltersOptions<D> &
204
+ UseGlobalFiltersOptions<D> &
205
+ UseGroupByOptions<D> &
206
+ UsePaginationOptions<D> &
207
+ UseResizeColumnsOptions<D> &
208
+ UseRowSelectOptions<D> &
209
+ UseRowStateOptions<D> &
210
+ UseSortByOptions<D> &
211
+ MRT_TableOptions<D> & {
56
212
  disableColumnActions?: boolean;
57
213
  disableColumnHiding?: boolean;
58
214
  disableDensePaddingToggle?: boolean;
@@ -60,16 +216,16 @@ export type MaterialReactTableProps<D extends {} = {}> = TableOptions<D> &
60
216
  disableFullScreenToggle?: boolean;
61
217
  disableSelectAll?: boolean;
62
218
  disableSubRowTree?: boolean;
63
- enableRowNumbers?: boolean;
64
219
  enableColumnGrouping?: boolean;
65
220
  enableColumnResizing?: boolean;
66
221
  enableRowActions?: boolean;
67
222
  enableRowEditing?: boolean;
223
+ enableRowNumbers?: boolean;
68
224
  enableSelection?: boolean;
69
225
  hideTableFooter?: boolean;
70
226
  hideTableHead?: boolean;
71
- hideToolbarInternalActions?: boolean;
72
227
  hideToolbarBottom?: boolean;
228
+ hideToolbarInternalActions?: boolean;
73
229
  hideToolbarTop?: boolean;
74
230
  icons?: Partial<MRT_Icons>;
75
231
  isFetching?: boolean;
@@ -78,15 +234,15 @@ export type MaterialReactTableProps<D extends {} = {}> = TableOptions<D> &
78
234
  muiSearchTextFieldProps?: TextFieldProps;
79
235
  muiTableBodyCellEditTextFieldProps?:
80
236
  | TextFieldProps
81
- | ((cell?: Cell<D>) => TextFieldProps);
237
+ | ((cell?: MRT_Cell<D>) => TextFieldProps);
82
238
  muiTableBodyCellProps?:
83
239
  | TableCellProps
84
- | ((cell?: Cell<D>) => TableCellProps);
240
+ | ((cell?: MRT_Cell<D>) => TableCellProps);
85
241
  muiTableBodyProps?: TableBodyProps;
86
242
  muiTableBodyRowProps?: TableRowProps | ((row: Row<D>) => TableRowProps);
87
243
  muiTableContainerProps?:
88
244
  | TableContainerProps
89
- | ((table: TableInstance<D>) => TableContainerProps);
245
+ | ((table: MRT_TableInstance<D>) => TableContainerProps);
90
246
  muiTableDetailPanelProps?:
91
247
  | TableCellProps
92
248
  | ((row: Row<D>) => TableCellProps);
@@ -96,7 +252,7 @@ export type MaterialReactTableProps<D extends {} = {}> = TableOptions<D> &
96
252
  muiTableFooterProps?: TableFooterProps;
97
253
  muiTableFooterRowProps?:
98
254
  | TableRowProps
99
- | ((footerGroup: HeaderGroup<D>) => TableRowProps);
255
+ | ((footerGroup: MRT_HeaderGroup<D>) => TableRowProps);
100
256
  muiTableHeadCellFilterTextFieldProps?:
101
257
  | TextFieldProps
102
258
  | ((column: Column<D>) => TextFieldProps);
@@ -106,23 +262,25 @@ export type MaterialReactTableProps<D extends {} = {}> = TableOptions<D> &
106
262
  muiTableHeadProps?: TableHeadProps;
107
263
  muiTableHeadRowProps?:
108
264
  | TableRowProps
109
- | ((row: HeaderGroup<D>) => TableRowProps);
265
+ | ((row: MRT_HeaderGroup<D>) => TableRowProps);
110
266
  muiTablePaginationProps?:
111
267
  | Partial<TablePaginationProps>
112
- | ((tableInstance: TableInstance<D>) => Partial<TablePaginationProps>);
268
+ | ((
269
+ tableInstance: MRT_TableInstance<D>,
270
+ ) => Partial<TablePaginationProps>);
113
271
  muiTableProps?: TableProps;
114
272
  muiTableToolbarAlertBannerProps?:
115
273
  | AlertProps
116
- | ((tableInstance: TableInstance<D>) => AlertProps);
274
+ | ((tableInstance: MRT_TableInstance<D>) => AlertProps);
117
275
  muiTableToolbarBottomProps?:
118
276
  | ToolbarProps
119
- | ((tableInstance: TableInstance<D>) => ToolbarProps);
277
+ | ((tableInstance: MRT_TableInstance<D>) => ToolbarProps);
120
278
  muiTableToolbarTopProps?:
121
279
  | ToolbarProps
122
- | ((tableInstance: TableInstance<D>) => ToolbarProps);
280
+ | ((tableInstance: MRT_TableInstance<D>) => ToolbarProps);
123
281
  onCellClick?: (
124
282
  event: MouseEvent<HTMLTableCellElement>,
125
- cell: Cell<D>,
283
+ cell: MRT_Cell<D>,
126
284
  ) => void;
127
285
  onColumnHide?: (column: Column<D>, visibleColumns: Column<D>[]) => void;
128
286
  onDetailPanelClick?: (
@@ -149,16 +307,18 @@ export type MaterialReactTableProps<D extends {} = {}> = TableOptions<D> &
149
307
  renderDetailPanel?: (row: Row<D>) => ReactNode;
150
308
  renderRowActionMenuItems?: (
151
309
  rowData: Row<D>,
152
- tableInstance: TableInstance<D>,
310
+ tableInstance: MRT_TableInstance<D>,
153
311
  closeMenu: () => void,
154
312
  ) => ReactNode[];
155
313
  renderRowActions?: (
156
314
  row: Row<D>,
157
- tableInstance: TableInstance<D>,
315
+ tableInstance: MRT_TableInstance<D>,
316
+ ) => ReactNode;
317
+ renderToolbarCustomActions?: (
318
+ tableInstance: MRT_TableInstance<D>,
158
319
  ) => ReactNode;
159
- renderToolbarCustomActions?: (tableInstance: TableInstance<D>) => ReactNode;
160
320
  renderToolbarInternalActions?: (
161
- tableInstance: TableInstance<D>,
321
+ tableInstance: MRT_TableInstance<D>,
162
322
  {
163
323
  MRT_ToggleSearchButton,
164
324
  MRT_ToggleFiltersButton,
@@ -2,6 +2,7 @@ import React, { FC } from 'react';
2
2
  import { styled, TableBody as MuiTableBody } from '@mui/material';
3
3
  import { MRT_TableBodyRow } from './MRT_TableBodyRow';
4
4
  import { useMRT } from '../useMRT';
5
+ import { MRT_Row } from '..';
5
6
 
6
7
  const TableBody = styled(MuiTableBody)({
7
8
  overflowY: 'hidden',
@@ -25,7 +26,7 @@ export const MRT_TableBody: FC<Props> = () => {
25
26
 
26
27
  return (
27
28
  <TableBody {...tableBodyProps}>
28
- {rows.map((row) => {
29
+ {rows.map((row: MRT_Row) => {
29
30
  tableInstance.prepareRow(row);
30
31
  return <MRT_TableBodyRow key={row.getRowProps().key} row={row} />;
31
32
  })}
@@ -1,8 +1,8 @@
1
1
  import React, { FC, MouseEvent } from 'react';
2
2
  import { styled, TableCell as MuiTableCell } from '@mui/material';
3
- import { Cell } from 'react-table';
4
3
  import { useMRT } from '../useMRT';
5
4
  import { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';
5
+ import { MRT_Cell } from '..';
6
6
 
7
7
  export const MRT_StyledTableBodyCell = styled(MuiTableCell, {
8
8
  shouldForwardProp: (prop) => prop !== 'densePadding',
@@ -13,7 +13,7 @@ export const MRT_StyledTableBodyCell = styled(MuiTableCell, {
13
13
  }));
14
14
 
15
15
  interface Props {
16
- cell: Cell;
16
+ cell: MRT_Cell;
17
17
  }
18
18
 
19
19
  export const MRT_TableBodyCell: FC<Props> = ({ cell }) => {
@@ -1,6 +1,5 @@
1
1
  import React, { FC, MouseEvent } from 'react';
2
2
  import { alpha, styled, TableRow as MuiTableRow } from '@mui/material';
3
- import { Row } from 'react-table';
4
3
  import {
5
4
  MRT_StyledTableBodyCell,
6
5
  MRT_TableBodyCell,
@@ -10,6 +9,7 @@ import { MRT_TableDetailPanel } from './MRT_TableDetailPanel';
10
9
  import { MRT_ExpandButton } from '../buttons/MRT_ExpandButton';
11
10
  import { MRT_SelectCheckbox } from '../inputs/MRT_SelectCheckbox';
12
11
  import { MRT_ToggleRowActionMenuButton } from '../buttons/MRT_ToggleRowActionMenuButton';
12
+ import { MRT_Cell, MRT_Row } from '..';
13
13
 
14
14
  export const TableRow = styled(MuiTableRow, {
15
15
  shouldForwardProp: (prop) => prop !== 'isSelected',
@@ -20,7 +20,7 @@ export const TableRow = styled(MuiTableRow, {
20
20
  }));
21
21
 
22
22
  interface Props {
23
- row: Row;
23
+ row: MRT_Row;
24
24
  }
25
25
 
26
26
  export const MRT_TableBodyRow: FC<Props> = ({ row }) => {
@@ -71,7 +71,7 @@ export const MRT_TableBodyRow: FC<Props> = ({ row }) => {
71
71
  <MRT_ExpandButton row={row} />
72
72
  )}
73
73
  {enableSelection && <MRT_SelectCheckbox row={row} />}
74
- {row.cells.map((cell) => (
74
+ {row.cells.map((cell: MRT_Cell) => (
75
75
  <MRT_TableBodyCell key={cell.getCellProps().key} cell={cell} />
76
76
  ))}
77
77
  {(enableRowActions || enableRowEditing) &&
@@ -79,7 +79,9 @@ export const MRT_TableBodyRow: FC<Props> = ({ row }) => {
79
79
  <MRT_ToggleRowActionMenuButton row={row} />
80
80
  )}
81
81
  </TableRow>
82
- {renderDetailPanel && <MRT_TableDetailPanel row={row} />}
82
+ {renderDetailPanel && !row.isGrouped && (
83
+ <MRT_TableDetailPanel row={row} />
84
+ )}
83
85
  </>
84
86
  );
85
87
  };