material-react-table 0.35.2 → 0.36.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/dist/cjs/MaterialReactTable.d.ts +7 -31
- package/dist/cjs/index.js +18 -17
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/MaterialReactTable.d.ts +7 -31
- package/dist/esm/material-react-table.esm.js +18 -17
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/index.d.ts +7 -31
- package/package.json +1 -1
- package/src/MaterialReactTable.tsx +7 -58
- package/src/body/MRT_TableBodyCell.tsx +4 -1
- package/src/inputs/MRT_EditCellTextField.tsx +20 -27
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Dispatch, SetStateAction, ReactNode,
|
|
1
|
+
import { Dispatch, SetStateAction, ReactNode, DragEvent } from 'react';
|
|
2
2
|
import { ButtonProps, TextFieldProps, TableCellProps, IconButtonProps, LinearProgressProps, CheckboxProps, SkeletonProps, TableBodyProps, TableRowProps, ToolbarProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, PaperProps, TableProps, AlertProps } from '@mui/material';
|
|
3
3
|
import { Row, Table, TableState, ColumnDef, DeepKeys, Column, Header, HeaderGroup, Cell, SortingFn, FilterFn, TableOptions, OnChangeFn } from '@tanstack/react-table';
|
|
4
4
|
import { Options } from 'react-virtual';
|
|
@@ -356,15 +356,15 @@ declare type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<Column
|
|
|
356
356
|
* @default gets set to the same value as `accessorKey` by default
|
|
357
357
|
*/
|
|
358
358
|
id?: LiteralUnion<string & keyof TData>;
|
|
359
|
-
muiTableBodyCellCopyButtonProps?: ButtonProps | (({
|
|
359
|
+
muiTableBodyCellCopyButtonProps?: ButtonProps | (({ cell, table, }: {
|
|
360
360
|
table: MRT_TableInstance<TData>;
|
|
361
361
|
cell: MRT_Cell<TData>;
|
|
362
362
|
}) => ButtonProps);
|
|
363
|
-
muiTableBodyCellEditTextFieldProps?: TextFieldProps | (({
|
|
364
|
-
table: MRT_TableInstance<TData>;
|
|
363
|
+
muiTableBodyCellEditTextFieldProps?: TextFieldProps | (({ cell, table, }: {
|
|
365
364
|
cell: MRT_Cell<TData>;
|
|
365
|
+
table: MRT_TableInstance<TData>;
|
|
366
366
|
}) => TextFieldProps);
|
|
367
|
-
muiTableBodyCellProps?: TableCellProps | (({
|
|
367
|
+
muiTableBodyCellProps?: TableCellProps | (({ cell, table, }: {
|
|
368
368
|
table: MRT_TableInstance<TData>;
|
|
369
369
|
cell: MRT_Cell<TData>;
|
|
370
370
|
}) => TableCellProps);
|
|
@@ -389,18 +389,6 @@ declare type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<Column
|
|
|
389
389
|
table: MRT_TableInstance<TData>;
|
|
390
390
|
column: MRT_Column<TData>;
|
|
391
391
|
}) => TableCellProps);
|
|
392
|
-
onCellEditBlur?: ({ cell, event, table, value, }: {
|
|
393
|
-
event: FocusEvent<HTMLInputElement>;
|
|
394
|
-
cell: MRT_Cell<TData>;
|
|
395
|
-
table: MRT_TableInstance<TData>;
|
|
396
|
-
value: string;
|
|
397
|
-
}) => void;
|
|
398
|
-
onCellEditChange?: ({ cell, event, table, value, }: {
|
|
399
|
-
event: ChangeEvent<HTMLInputElement>;
|
|
400
|
-
cell: MRT_Cell<TData>;
|
|
401
|
-
table: MRT_TableInstance<TData>;
|
|
402
|
-
value: string;
|
|
403
|
-
}) => void;
|
|
404
392
|
sortingFn?: MRT_SortingFn;
|
|
405
393
|
};
|
|
406
394
|
declare type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<MRT_ColumnDef<TData>, 'id'> & {
|
|
@@ -508,9 +496,9 @@ declare type MaterialReactTableProps<TData extends Record<string, any> = {}> = O
|
|
|
508
496
|
table: MRT_TableInstance<TData>;
|
|
509
497
|
cell: MRT_Cell<TData>;
|
|
510
498
|
}) => ButtonProps);
|
|
511
|
-
muiTableBodyCellEditTextFieldProps?: TextFieldProps | (({
|
|
512
|
-
table: MRT_TableInstance<TData>;
|
|
499
|
+
muiTableBodyCellEditTextFieldProps?: TextFieldProps | (({ cell, table, }: {
|
|
513
500
|
cell: MRT_Cell<TData>;
|
|
501
|
+
table: MRT_TableInstance<TData>;
|
|
514
502
|
}) => TextFieldProps);
|
|
515
503
|
muiTableBodyCellProps?: TableCellProps | (({ table, cell, }: {
|
|
516
504
|
table: MRT_TableInstance<TData>;
|
|
@@ -591,18 +579,6 @@ declare type MaterialReactTableProps<TData extends Record<string, any> = {}> = O
|
|
|
591
579
|
muiTableTopToolbarProps?: ToolbarProps | (({ table }: {
|
|
592
580
|
table: MRT_TableInstance<TData>;
|
|
593
581
|
}) => ToolbarProps);
|
|
594
|
-
onCellEditBlur?: ({ cell, event, table, value, }: {
|
|
595
|
-
event: FocusEvent<HTMLInputElement>;
|
|
596
|
-
cell: MRT_Cell<TData>;
|
|
597
|
-
table: MRT_TableInstance<TData>;
|
|
598
|
-
value: string;
|
|
599
|
-
}) => void;
|
|
600
|
-
onCellEditChange?: ({ cell, event, table, value, }: {
|
|
601
|
-
event: ChangeEvent<HTMLInputElement>;
|
|
602
|
-
cell: MRT_Cell<TData>;
|
|
603
|
-
table: MRT_TableInstance<TData>;
|
|
604
|
-
value: string;
|
|
605
|
-
}) => void;
|
|
606
582
|
onColumnDrop?: ({ event, draggedColumn, targetColumn, }: {
|
|
607
583
|
event: DragEvent<HTMLButtonElement>;
|
|
608
584
|
draggedColumn: MRT_Column<TData>;
|
package/package.json
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
ChangeEvent,
|
|
3
|
-
Dispatch,
|
|
4
|
-
DragEvent,
|
|
5
|
-
FocusEvent,
|
|
6
|
-
ReactNode,
|
|
7
|
-
SetStateAction,
|
|
8
|
-
} from 'react';
|
|
1
|
+
import React, { Dispatch, DragEvent, ReactNode, SetStateAction } from 'react';
|
|
9
2
|
import type {
|
|
10
3
|
AlertProps,
|
|
11
4
|
ButtonProps,
|
|
@@ -263,8 +256,8 @@ export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<
|
|
|
263
256
|
muiTableBodyCellCopyButtonProps?:
|
|
264
257
|
| ButtonProps
|
|
265
258
|
| (({
|
|
266
|
-
table,
|
|
267
259
|
cell,
|
|
260
|
+
table,
|
|
268
261
|
}: {
|
|
269
262
|
table: MRT_TableInstance<TData>;
|
|
270
263
|
cell: MRT_Cell<TData>;
|
|
@@ -272,17 +265,17 @@ export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<
|
|
|
272
265
|
muiTableBodyCellEditTextFieldProps?:
|
|
273
266
|
| TextFieldProps
|
|
274
267
|
| (({
|
|
275
|
-
table,
|
|
276
268
|
cell,
|
|
269
|
+
table,
|
|
277
270
|
}: {
|
|
278
|
-
table: MRT_TableInstance<TData>;
|
|
279
271
|
cell: MRT_Cell<TData>;
|
|
272
|
+
table: MRT_TableInstance<TData>;
|
|
280
273
|
}) => TextFieldProps);
|
|
281
274
|
muiTableBodyCellProps?:
|
|
282
275
|
| TableCellProps
|
|
283
276
|
| (({
|
|
284
|
-
table,
|
|
285
277
|
cell,
|
|
278
|
+
table,
|
|
286
279
|
}: {
|
|
287
280
|
table: MRT_TableInstance<TData>;
|
|
288
281
|
cell: MRT_Cell<TData>;
|
|
@@ -334,28 +327,6 @@ export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<
|
|
|
334
327
|
table: MRT_TableInstance<TData>;
|
|
335
328
|
column: MRT_Column<TData>;
|
|
336
329
|
}) => TableCellProps);
|
|
337
|
-
onCellEditBlur?: ({
|
|
338
|
-
cell,
|
|
339
|
-
event,
|
|
340
|
-
table,
|
|
341
|
-
value,
|
|
342
|
-
}: {
|
|
343
|
-
event: FocusEvent<HTMLInputElement>;
|
|
344
|
-
cell: MRT_Cell<TData>;
|
|
345
|
-
table: MRT_TableInstance<TData>;
|
|
346
|
-
value: string;
|
|
347
|
-
}) => void;
|
|
348
|
-
onCellEditChange?: ({
|
|
349
|
-
cell,
|
|
350
|
-
event,
|
|
351
|
-
table,
|
|
352
|
-
value,
|
|
353
|
-
}: {
|
|
354
|
-
event: ChangeEvent<HTMLInputElement>;
|
|
355
|
-
cell: MRT_Cell<TData>;
|
|
356
|
-
table: MRT_TableInstance<TData>;
|
|
357
|
-
value: string;
|
|
358
|
-
}) => void;
|
|
359
330
|
sortingFn?: MRT_SortingFn;
|
|
360
331
|
};
|
|
361
332
|
|
|
@@ -539,11 +510,11 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> =
|
|
|
539
510
|
muiTableBodyCellEditTextFieldProps?:
|
|
540
511
|
| TextFieldProps
|
|
541
512
|
| (({
|
|
542
|
-
table,
|
|
543
513
|
cell,
|
|
514
|
+
table,
|
|
544
515
|
}: {
|
|
545
|
-
table: MRT_TableInstance<TData>;
|
|
546
516
|
cell: MRT_Cell<TData>;
|
|
517
|
+
table: MRT_TableInstance<TData>;
|
|
547
518
|
}) => TextFieldProps);
|
|
548
519
|
muiTableBodyCellProps?:
|
|
549
520
|
| TableCellProps
|
|
@@ -693,28 +664,6 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> =
|
|
|
693
664
|
muiTableTopToolbarProps?:
|
|
694
665
|
| ToolbarProps
|
|
695
666
|
| (({ table }: { table: MRT_TableInstance<TData> }) => ToolbarProps);
|
|
696
|
-
onCellEditBlur?: ({
|
|
697
|
-
cell,
|
|
698
|
-
event,
|
|
699
|
-
table,
|
|
700
|
-
value,
|
|
701
|
-
}: {
|
|
702
|
-
event: FocusEvent<HTMLInputElement>;
|
|
703
|
-
cell: MRT_Cell<TData>;
|
|
704
|
-
table: MRT_TableInstance<TData>;
|
|
705
|
-
value: string;
|
|
706
|
-
}) => void;
|
|
707
|
-
onCellEditChange?: ({
|
|
708
|
-
cell,
|
|
709
|
-
event,
|
|
710
|
-
table,
|
|
711
|
-
value,
|
|
712
|
-
}: {
|
|
713
|
-
event: ChangeEvent<HTMLInputElement>;
|
|
714
|
-
cell: MRT_Cell<TData>;
|
|
715
|
-
table: MRT_TableInstance<TData>;
|
|
716
|
-
value: string;
|
|
717
|
-
}) => void;
|
|
718
667
|
onColumnDrop?: ({
|
|
719
668
|
event,
|
|
720
669
|
draggedColumn,
|
|
@@ -238,7 +238,10 @@ export const MRT_TableBodyCell: FC<Props> = ({
|
|
|
238
238
|
: undefined,
|
|
239
239
|
'&:hover': {
|
|
240
240
|
backgroundColor:
|
|
241
|
-
enableHover &&
|
|
241
|
+
enableHover &&
|
|
242
|
+
enableEditing &&
|
|
243
|
+
columnDef.enableEditing !== false &&
|
|
244
|
+
editingMode !== 'row'
|
|
242
245
|
? theme.palette.mode === 'dark'
|
|
243
246
|
? `${lighten(
|
|
244
247
|
theme.palette.background.default,
|
|
@@ -5,7 +5,7 @@ import React, {
|
|
|
5
5
|
MouseEvent,
|
|
6
6
|
useState,
|
|
7
7
|
} from 'react';
|
|
8
|
-
import { TextField } from '@mui/material';
|
|
8
|
+
import { TextField, TextFieldProps } from '@mui/material';
|
|
9
9
|
import type { MRT_Cell, MRT_Row, MRT_TableInstance } from '..';
|
|
10
10
|
|
|
11
11
|
interface Props {
|
|
@@ -16,12 +16,7 @@ interface Props {
|
|
|
16
16
|
export const MRT_EditCellTextField: FC<Props> = ({ cell, table }) => {
|
|
17
17
|
const {
|
|
18
18
|
getState,
|
|
19
|
-
options: {
|
|
20
|
-
tableId,
|
|
21
|
-
muiTableBodyCellEditTextFieldProps,
|
|
22
|
-
onCellEditBlur,
|
|
23
|
-
onCellEditChange,
|
|
24
|
-
},
|
|
19
|
+
options: { tableId, muiTableBodyCellEditTextFieldProps },
|
|
25
20
|
setEditingCell,
|
|
26
21
|
setEditingRow,
|
|
27
22
|
} = table;
|
|
@@ -31,23 +26,6 @@ export const MRT_EditCellTextField: FC<Props> = ({ cell, table }) => {
|
|
|
31
26
|
|
|
32
27
|
const [value, setValue] = useState(() => cell.getValue<string>());
|
|
33
28
|
|
|
34
|
-
const handleChange = (event: ChangeEvent<HTMLInputElement>) => {
|
|
35
|
-
setValue(event.target.value);
|
|
36
|
-
columnDef.onCellEditChange?.({ event, cell, table, value });
|
|
37
|
-
onCellEditChange?.({ event, cell, table, value });
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
const handleBlur = (event: FocusEvent<HTMLInputElement>) => {
|
|
41
|
-
if (editingRow) {
|
|
42
|
-
if (!row._valuesCache) row._valuesCache = {};
|
|
43
|
-
(row._valuesCache as Record<string, any>)[column.id] = value;
|
|
44
|
-
setEditingRow({ ...editingRow } as MRT_Row);
|
|
45
|
-
}
|
|
46
|
-
setEditingCell(null);
|
|
47
|
-
columnDef.onCellEditBlur?.({ event, cell, table, value });
|
|
48
|
-
onCellEditBlur?.({ event, cell, table, value });
|
|
49
|
-
};
|
|
50
|
-
|
|
51
29
|
const mTableBodyCellEditTextFieldProps =
|
|
52
30
|
muiTableBodyCellEditTextFieldProps instanceof Function
|
|
53
31
|
? muiTableBodyCellEditTextFieldProps({ cell, table })
|
|
@@ -61,11 +39,26 @@ export const MRT_EditCellTextField: FC<Props> = ({ cell, table }) => {
|
|
|
61
39
|
})
|
|
62
40
|
: columnDef.muiTableBodyCellEditTextFieldProps;
|
|
63
41
|
|
|
64
|
-
const textFieldProps = {
|
|
42
|
+
const textFieldProps: TextFieldProps = {
|
|
65
43
|
...mTableBodyCellEditTextFieldProps,
|
|
66
44
|
...mcTableBodyCellEditTextFieldProps,
|
|
67
45
|
};
|
|
68
46
|
|
|
47
|
+
const handleChange = (event: ChangeEvent<HTMLInputElement>) => {
|
|
48
|
+
textFieldProps.onChange?.(event);
|
|
49
|
+
setValue(event.target.value);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const handleBlur = (event: FocusEvent<HTMLInputElement>) => {
|
|
53
|
+
textFieldProps.onBlur?.(event);
|
|
54
|
+
if (editingRow) {
|
|
55
|
+
if (!row._valuesCache) row._valuesCache = {};
|
|
56
|
+
(row._valuesCache as Record<string, any>)[column.id] = value;
|
|
57
|
+
setEditingRow({ ...editingRow } as MRT_Row);
|
|
58
|
+
}
|
|
59
|
+
setEditingCell(null);
|
|
60
|
+
};
|
|
61
|
+
|
|
69
62
|
if (columnDef.Edit) {
|
|
70
63
|
return <>{columnDef.Edit?.({ cell, column, table })}</>;
|
|
71
64
|
}
|
|
@@ -74,13 +67,13 @@ export const MRT_EditCellTextField: FC<Props> = ({ cell, table }) => {
|
|
|
74
67
|
<TextField
|
|
75
68
|
id={`mrt-${tableId}-edit-cell-text-field-${cell.id}`}
|
|
76
69
|
margin="none"
|
|
77
|
-
onBlur={handleBlur}
|
|
78
|
-
onChange={handleChange}
|
|
79
70
|
onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}
|
|
80
71
|
placeholder={columnDef.header}
|
|
81
72
|
value={value}
|
|
82
73
|
variant="standard"
|
|
83
74
|
{...textFieldProps}
|
|
75
|
+
onBlur={handleBlur}
|
|
76
|
+
onChange={handleChange}
|
|
84
77
|
/>
|
|
85
78
|
);
|
|
86
79
|
};
|