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.
@@ -1,4 +1,4 @@
1
- import { ChangeEvent, Dispatch, DragEvent, FocusEvent, ReactNode, SetStateAction } from 'react';
1
+ import { Dispatch, DragEvent, ReactNode, SetStateAction } from 'react';
2
2
  import type { AlertProps, ButtonProps, CheckboxProps, IconButtonProps, LinearProgressProps, PaperProps, SkeletonProps, TableBodyProps, TableCellProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, TableProps, TableRowProps, TextFieldProps, ToolbarProps } from '@mui/material';
3
3
  import type { Cell, Column, ColumnDef, DeepKeys, FilterFn, Header, HeaderGroup, OnChangeFn, Row, SortingFn, Table, TableOptions, TableState } from '@tanstack/react-table';
4
4
  import type { Options as VirtualizerOptions } from 'react-virtual';
@@ -165,15 +165,15 @@ export declare type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit
165
165
  * @default gets set to the same value as `accessorKey` by default
166
166
  */
167
167
  id?: LiteralUnion<string & keyof TData>;
168
- muiTableBodyCellCopyButtonProps?: ButtonProps | (({ table, cell, }: {
168
+ muiTableBodyCellCopyButtonProps?: ButtonProps | (({ cell, table, }: {
169
169
  table: MRT_TableInstance<TData>;
170
170
  cell: MRT_Cell<TData>;
171
171
  }) => ButtonProps);
172
- muiTableBodyCellEditTextFieldProps?: TextFieldProps | (({ table, cell, }: {
173
- table: MRT_TableInstance<TData>;
172
+ muiTableBodyCellEditTextFieldProps?: TextFieldProps | (({ cell, table, }: {
174
173
  cell: MRT_Cell<TData>;
174
+ table: MRT_TableInstance<TData>;
175
175
  }) => TextFieldProps);
176
- muiTableBodyCellProps?: TableCellProps | (({ table, cell, }: {
176
+ muiTableBodyCellProps?: TableCellProps | (({ cell, table, }: {
177
177
  table: MRT_TableInstance<TData>;
178
178
  cell: MRT_Cell<TData>;
179
179
  }) => TableCellProps);
@@ -198,18 +198,6 @@ export declare type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit
198
198
  table: MRT_TableInstance<TData>;
199
199
  column: MRT_Column<TData>;
200
200
  }) => TableCellProps);
201
- onCellEditBlur?: ({ cell, event, table, value, }: {
202
- event: FocusEvent<HTMLInputElement>;
203
- cell: MRT_Cell<TData>;
204
- table: MRT_TableInstance<TData>;
205
- value: string;
206
- }) => void;
207
- onCellEditChange?: ({ cell, event, table, value, }: {
208
- event: ChangeEvent<HTMLInputElement>;
209
- cell: MRT_Cell<TData>;
210
- table: MRT_TableInstance<TData>;
211
- value: string;
212
- }) => void;
213
201
  sortingFn?: MRT_SortingFn;
214
202
  };
215
203
  export declare type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<MRT_ColumnDef<TData>, 'id'> & {
@@ -317,9 +305,9 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
317
305
  table: MRT_TableInstance<TData>;
318
306
  cell: MRT_Cell<TData>;
319
307
  }) => ButtonProps);
320
- muiTableBodyCellEditTextFieldProps?: TextFieldProps | (({ table, cell, }: {
321
- table: MRT_TableInstance<TData>;
308
+ muiTableBodyCellEditTextFieldProps?: TextFieldProps | (({ cell, table, }: {
322
309
  cell: MRT_Cell<TData>;
310
+ table: MRT_TableInstance<TData>;
323
311
  }) => TextFieldProps);
324
312
  muiTableBodyCellProps?: TableCellProps | (({ table, cell, }: {
325
313
  table: MRT_TableInstance<TData>;
@@ -400,18 +388,6 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
400
388
  muiTableTopToolbarProps?: ToolbarProps | (({ table }: {
401
389
  table: MRT_TableInstance<TData>;
402
390
  }) => ToolbarProps);
403
- onCellEditBlur?: ({ cell, event, table, value, }: {
404
- event: FocusEvent<HTMLInputElement>;
405
- cell: MRT_Cell<TData>;
406
- table: MRT_TableInstance<TData>;
407
- value: string;
408
- }) => void;
409
- onCellEditChange?: ({ cell, event, table, value, }: {
410
- event: ChangeEvent<HTMLInputElement>;
411
- cell: MRT_Cell<TData>;
412
- table: MRT_TableInstance<TData>;
413
- value: string;
414
- }) => void;
415
391
  onColumnDrop?: ({ event, draggedColumn, targetColumn, }: {
416
392
  event: DragEvent<HTMLButtonElement>;
417
393
  draggedColumn: MRT_Column<TData>;
@@ -1733,19 +1733,29 @@ const MRT_TableHead = ({ table }) => {
1733
1733
 
1734
1734
  const MRT_EditCellTextField = ({ cell, table }) => {
1735
1735
  var _a;
1736
- const { getState, options: { tableId, muiTableBodyCellEditTextFieldProps, onCellEditBlur, onCellEditChange, }, setEditingCell, setEditingRow, } = table;
1736
+ const { getState, options: { tableId, muiTableBodyCellEditTextFieldProps }, setEditingCell, setEditingRow, } = table;
1737
1737
  const { column, row } = cell;
1738
1738
  const { columnDef } = column;
1739
1739
  const { editingRow } = getState();
1740
1740
  const [value, setValue] = useState(() => cell.getValue());
1741
+ const mTableBodyCellEditTextFieldProps = muiTableBodyCellEditTextFieldProps instanceof Function
1742
+ ? muiTableBodyCellEditTextFieldProps({ cell, table })
1743
+ : muiTableBodyCellEditTextFieldProps;
1744
+ const mcTableBodyCellEditTextFieldProps = columnDef.muiTableBodyCellEditTextFieldProps instanceof Function
1745
+ ? columnDef.muiTableBodyCellEditTextFieldProps({
1746
+ cell,
1747
+ table,
1748
+ })
1749
+ : columnDef.muiTableBodyCellEditTextFieldProps;
1750
+ const textFieldProps = Object.assign(Object.assign({}, mTableBodyCellEditTextFieldProps), mcTableBodyCellEditTextFieldProps);
1741
1751
  const handleChange = (event) => {
1742
1752
  var _a;
1753
+ (_a = textFieldProps.onChange) === null || _a === void 0 ? void 0 : _a.call(textFieldProps, event);
1743
1754
  setValue(event.target.value);
1744
- (_a = columnDef.onCellEditChange) === null || _a === void 0 ? void 0 : _a.call(columnDef, { event, cell, table, value });
1745
- onCellEditChange === null || onCellEditChange === void 0 ? void 0 : onCellEditChange({ event, cell, table, value });
1746
1755
  };
1747
1756
  const handleBlur = (event) => {
1748
1757
  var _a;
1758
+ (_a = textFieldProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(textFieldProps, event);
1749
1759
  if (editingRow) {
1750
1760
  if (!row._valuesCache)
1751
1761
  row._valuesCache = {};
@@ -1753,23 +1763,11 @@ const MRT_EditCellTextField = ({ cell, table }) => {
1753
1763
  setEditingRow(Object.assign({}, editingRow));
1754
1764
  }
1755
1765
  setEditingCell(null);
1756
- (_a = columnDef.onCellEditBlur) === null || _a === void 0 ? void 0 : _a.call(columnDef, { event, cell, table, value });
1757
- onCellEditBlur === null || onCellEditBlur === void 0 ? void 0 : onCellEditBlur({ event, cell, table, value });
1758
1766
  };
1759
- const mTableBodyCellEditTextFieldProps = muiTableBodyCellEditTextFieldProps instanceof Function
1760
- ? muiTableBodyCellEditTextFieldProps({ cell, table })
1761
- : muiTableBodyCellEditTextFieldProps;
1762
- const mcTableBodyCellEditTextFieldProps = columnDef.muiTableBodyCellEditTextFieldProps instanceof Function
1763
- ? columnDef.muiTableBodyCellEditTextFieldProps({
1764
- cell,
1765
- table,
1766
- })
1767
- : columnDef.muiTableBodyCellEditTextFieldProps;
1768
- const textFieldProps = Object.assign(Object.assign({}, mTableBodyCellEditTextFieldProps), mcTableBodyCellEditTextFieldProps);
1769
1767
  if (columnDef.Edit) {
1770
1768
  return React.createElement(React.Fragment, null, (_a = columnDef.Edit) === null || _a === void 0 ? void 0 : _a.call(columnDef, { cell, column, table }));
1771
1769
  }
1772
- return (React.createElement(TextField, Object.assign({ id: `mrt-${tableId}-edit-cell-text-field-${cell.id}`, margin: "none", onBlur: handleBlur, onChange: handleChange, onClick: (e) => e.stopPropagation(), placeholder: columnDef.header, value: value, variant: "standard" }, textFieldProps)));
1770
+ return (React.createElement(TextField, Object.assign({ id: `mrt-${tableId}-edit-cell-text-field-${cell.id}`, margin: "none", onClick: (e) => e.stopPropagation(), placeholder: columnDef.header, value: value, variant: "standard" }, textFieldProps, { onBlur: handleBlur, onChange: handleChange })));
1773
1771
  };
1774
1772
 
1775
1773
  const MRT_CopyButton = ({ cell, children, table }) => {
@@ -1931,7 +1929,10 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
1931
1929
  : column.getIsPinned()
1932
1930
  ? 1
1933
1931
  : undefined, '&:hover': {
1934
- backgroundColor: enableHover && enableEditing && editingMode !== 'row'
1932
+ backgroundColor: enableHover &&
1933
+ enableEditing &&
1934
+ columnDef.enableEditing !== false &&
1935
+ editingMode !== 'row'
1935
1936
  ? theme.palette.mode === 'dark'
1936
1937
  ? `${lighten(theme.palette.background.default, 0.13)} !important`
1937
1938
  : `${darken(theme.palette.background.default, 0.07)} !important`