material-react-table 0.35.2 → 0.36.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.
@@ -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'> & {
@@ -261,7 +249,7 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
261
249
  displayColumnDefOptions?: Partial<{
262
250
  [key in MRT_DisplayColumnIds]: Partial<MRT_ColumnDef>;
263
251
  }>;
264
- editingMode?: 'table' | 'row' | 'cell';
252
+ editingMode?: 'table' | 'modal' | 'row' | 'cell';
265
253
  enableBottomToolbar?: boolean;
266
254
  enableClickToCopy?: boolean;
267
255
  enableColumnActions?: boolean;
@@ -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>;
@@ -0,0 +1,8 @@
1
+ import type { MRT_Row, MRT_TableInstance } from '..';
2
+ interface Props<TData extends Record<string, any> = {}> {
3
+ open: boolean;
4
+ row: MRT_Row<TData>;
5
+ table: MRT_TableInstance<TData>;
6
+ }
7
+ export declare const MRT_EditRowModal: <TData extends Record<string, any> = {}>({ open, row, table, }: Props<TData>) => JSX.Element;
8
+ export {};
@@ -1,8 +1,8 @@
1
- import { FC } from 'react';
2
1
  import type { MRT_Row, MRT_TableInstance } from '..';
3
- interface Props {
4
- row: MRT_Row;
5
- table: MRT_TableInstance;
2
+ interface Props<TData extends Record<string, any> = {}> {
3
+ row: MRT_Row<TData>;
4
+ table: MRT_TableInstance<TData>;
5
+ variant?: 'icon' | 'text';
6
6
  }
7
- export declare const MRT_EditActionButtons: FC<Props>;
7
+ export declare const MRT_EditActionButtons: <TData extends Record<string, any> = {}>({ row, table, variant, }: Props<TData>) => JSX.Element;
8
8
  export {};
package/dist/cjs/index.js CHANGED
@@ -530,29 +530,37 @@ const reorderColumn = (draggedColumn, targetColumn, columnOrder) => {
530
530
  columnOrder.splice(columnOrder.indexOf(targetColumn.id), 0, columnOrder.splice(columnOrder.indexOf(draggedColumn.id), 1)[0]);
531
531
  return [...columnOrder];
532
532
  };
533
- const getLeadingDisplayColumnIds = (props) => [
534
- (props.enableRowDragging || props.enableRowOrdering) && 'mrt-row-drag',
535
- ((props.positionActionsColumn === 'first' && props.enableRowActions) ||
536
- (props.enableEditing && props.editingMode === 'row')) &&
537
- 'mrt-row-actions',
538
- props.positionExpandColumn === 'first' &&
539
- (props.enableExpanding ||
540
- props.enableGrouping ||
541
- props.renderDetailPanel) &&
542
- 'mrt-row-expand',
543
- props.enableRowSelection && 'mrt-row-select',
544
- props.enableRowNumbers && 'mrt-row-numbers',
545
- ].filter(Boolean);
546
- const getTrailingDisplayColumnIds = (props) => [
547
- ((props.positionActionsColumn === 'last' && props.enableRowActions) ||
548
- (props.enableEditing && props.editingMode === 'row')) &&
549
- 'mrt-row-actions',
550
- props.positionExpandColumn === 'last' &&
551
- (props.enableExpanding ||
552
- props.enableGrouping ||
553
- props.renderDetailPanel) &&
554
- 'mrt-row-expand',
555
- ];
533
+ const getLeadingDisplayColumnIds = (props) => {
534
+ var _a;
535
+ return [
536
+ (props.enableRowDragging || props.enableRowOrdering) && 'mrt-row-drag',
537
+ ((props.positionActionsColumn === 'first' && props.enableRowActions) ||
538
+ (props.enableEditing &&
539
+ ['row', 'modal'].includes((_a = props.editingMode) !== null && _a !== void 0 ? _a : ''))) &&
540
+ 'mrt-row-actions',
541
+ props.positionExpandColumn === 'first' &&
542
+ (props.enableExpanding ||
543
+ props.enableGrouping ||
544
+ props.renderDetailPanel) &&
545
+ 'mrt-row-expand',
546
+ props.enableRowSelection && 'mrt-row-select',
547
+ props.enableRowNumbers && 'mrt-row-numbers',
548
+ ].filter(Boolean);
549
+ };
550
+ const getTrailingDisplayColumnIds = (props) => {
551
+ var _a;
552
+ return [
553
+ ((props.positionActionsColumn === 'last' && props.enableRowActions) ||
554
+ (props.enableEditing &&
555
+ ['row', 'modal'].includes((_a = props.editingMode) !== null && _a !== void 0 ? _a : ''))) &&
556
+ 'mrt-row-actions',
557
+ props.positionExpandColumn === 'last' &&
558
+ (props.enableExpanding ||
559
+ props.enableGrouping ||
560
+ props.renderDetailPanel) &&
561
+ 'mrt-row-expand',
562
+ ];
563
+ };
556
564
  const getDefaultColumnOrderIds = (props) => [
557
565
  ...getLeadingDisplayColumnIds(props),
558
566
  ...getAllLeafColumnDefs(props.columns).map((columnDef) => getColumnId(columnDef)),
@@ -881,11 +889,10 @@ const MRT_RowActionMenu = ({ anchorEl, handleEdit, row, setAnchorEl, table, }) =
881
889
  })));
882
890
  };
883
891
 
884
- const MRT_EditActionButtons = ({ row, table }) => {
892
+ const MRT_EditActionButtons = ({ row, table, variant = 'icon', }) => {
885
893
  const { getState, options: { icons: { CancelIcon, SaveIcon }, localization, onEditingRowSave, }, setEditingRow, } = table;
886
894
  const { editingRow } = getState();
887
895
  const handleCancel = () => {
888
- row._valuesCache = Object.assign({}, row.original);
889
896
  setEditingRow(null);
890
897
  };
891
898
  const handleSave = () => {
@@ -897,13 +904,15 @@ const MRT_EditActionButtons = ({ row, table }) => {
897
904
  });
898
905
  setEditingRow(null);
899
906
  };
900
- return (React__default["default"].createElement(material.Box, { sx: { display: 'flex', gap: '0.75rem' } },
907
+ return (React__default["default"].createElement(material.Box, { sx: { display: 'flex', gap: '0.75rem' } }, variant === 'icon' ? (React__default["default"].createElement(React__default["default"].Fragment, null,
901
908
  React__default["default"].createElement(material.Tooltip, { arrow: true, title: localization.cancel },
902
909
  React__default["default"].createElement(material.IconButton, { "aria-label": localization.cancel, onClick: handleCancel },
903
910
  React__default["default"].createElement(CancelIcon, null))),
904
911
  React__default["default"].createElement(material.Tooltip, { arrow: true, title: localization.save },
905
912
  React__default["default"].createElement(material.IconButton, { "aria-label": localization.save, color: "info", onClick: handleSave },
906
- React__default["default"].createElement(SaveIcon, null)))));
913
+ React__default["default"].createElement(SaveIcon, null))))) : (React__default["default"].createElement(React__default["default"].Fragment, null,
914
+ React__default["default"].createElement(material.Button, { onClick: handleCancel }, localization.cancel),
915
+ React__default["default"].createElement(material.Button, { onClick: handleSave, variant: "contained" }, localization.save)))));
907
916
  };
908
917
 
909
918
  const commonIconButtonStyles = {
@@ -917,7 +926,7 @@ const commonIconButtonStyles = {
917
926
  },
918
927
  };
919
928
  const MRT_ToggleRowActionMenuButton = ({ row, table }) => {
920
- const { getState, options: { enableEditing, icons: { EditIcon, MoreHorizIcon }, localization, renderRowActionMenuItems, renderRowActions, }, setEditingRow, } = table;
929
+ const { getState, options: { editingMode, enableEditing, icons: { EditIcon, MoreHorizIcon }, localization, renderRowActionMenuItems, renderRowActions, }, setEditingRow, } = table;
921
930
  const { editingRow } = getState();
922
931
  const [anchorEl, setAnchorEl] = React.useState(null);
923
932
  const handleOpenRowActionMenu = (event) => {
@@ -929,7 +938,7 @@ const MRT_ToggleRowActionMenuButton = ({ row, table }) => {
929
938
  setEditingRow(Object.assign({}, row));
930
939
  setAnchorEl(null);
931
940
  };
932
- return (React__default["default"].createElement(React__default["default"].Fragment, null, renderRowActions ? (React__default["default"].createElement(React__default["default"].Fragment, null, renderRowActions({ row, table }))) : row.id === (editingRow === null || editingRow === void 0 ? void 0 : editingRow.id) ? (React__default["default"].createElement(MRT_EditActionButtons, { row: row, table: table })) : !renderRowActionMenuItems && enableEditing ? (React__default["default"].createElement(material.Tooltip, { placement: "right", arrow: true, title: localization.edit },
941
+ return (React__default["default"].createElement(React__default["default"].Fragment, null, renderRowActions ? (React__default["default"].createElement(React__default["default"].Fragment, null, renderRowActions({ row, table }))) : row.id === (editingRow === null || editingRow === void 0 ? void 0 : editingRow.id) && editingMode === 'row' ? (React__default["default"].createElement(MRT_EditActionButtons, { row: row, table: table })) : !renderRowActionMenuItems && enableEditing ? (React__default["default"].createElement(material.Tooltip, { placement: "right", arrow: true, title: localization.edit },
933
942
  React__default["default"].createElement(material.IconButton, { sx: commonIconButtonStyles, onClick: handleStartEditMode },
934
943
  React__default["default"].createElement(EditIcon, null)))) : renderRowActionMenuItems ? (React__default["default"].createElement(React__default["default"].Fragment, null,
935
944
  React__default["default"].createElement(material.Tooltip, { arrow: true, enterDelay: 1000, enterNextDelay: 1000, title: localization.rowActions },
@@ -1739,31 +1748,13 @@ const MRT_TableHead = ({ table }) => {
1739
1748
  return (React__default["default"].createElement(material.TableHead, Object.assign({}, tableHeadProps), getHeaderGroups().map((headerGroup) => (React__default["default"].createElement(MRT_TableHeadRow, { headerGroup: headerGroup, key: headerGroup.id, table: table })))));
1740
1749
  };
1741
1750
 
1742
- const MRT_EditCellTextField = ({ cell, table }) => {
1751
+ const MRT_EditCellTextField = ({ cell, showLabel, table, }) => {
1743
1752
  var _a;
1744
- const { getState, options: { tableId, muiTableBodyCellEditTextFieldProps, onCellEditBlur, onCellEditChange, }, setEditingCell, setEditingRow, } = table;
1745
- const { column, row } = cell;
1753
+ const { getState, options: { tableId, muiTableBodyCellEditTextFieldProps }, setEditingCell, setEditingRow, } = table;
1754
+ const { column } = cell;
1746
1755
  const { columnDef } = column;
1747
1756
  const { editingRow } = getState();
1748
1757
  const [value, setValue] = React.useState(() => cell.getValue());
1749
- const handleChange = (event) => {
1750
- var _a;
1751
- setValue(event.target.value);
1752
- (_a = columnDef.onCellEditChange) === null || _a === void 0 ? void 0 : _a.call(columnDef, { event, cell, table, value });
1753
- onCellEditChange === null || onCellEditChange === void 0 ? void 0 : onCellEditChange({ event, cell, table, value });
1754
- };
1755
- const handleBlur = (event) => {
1756
- var _a;
1757
- if (editingRow) {
1758
- if (!row._valuesCache)
1759
- row._valuesCache = {};
1760
- row._valuesCache[column.id] = value;
1761
- setEditingRow(Object.assign({}, editingRow));
1762
- }
1763
- setEditingCell(null);
1764
- (_a = columnDef.onCellEditBlur) === null || _a === void 0 ? void 0 : _a.call(columnDef, { event, cell, table, value });
1765
- onCellEditBlur === null || onCellEditBlur === void 0 ? void 0 : onCellEditBlur({ event, cell, table, value });
1766
- };
1767
1758
  const mTableBodyCellEditTextFieldProps = muiTableBodyCellEditTextFieldProps instanceof Function
1768
1759
  ? muiTableBodyCellEditTextFieldProps({ cell, table })
1769
1760
  : muiTableBodyCellEditTextFieldProps;
@@ -1774,10 +1765,23 @@ const MRT_EditCellTextField = ({ cell, table }) => {
1774
1765
  })
1775
1766
  : columnDef.muiTableBodyCellEditTextFieldProps;
1776
1767
  const textFieldProps = Object.assign(Object.assign({}, mTableBodyCellEditTextFieldProps), mcTableBodyCellEditTextFieldProps);
1768
+ const handleChange = (event) => {
1769
+ var _a;
1770
+ (_a = textFieldProps.onChange) === null || _a === void 0 ? void 0 : _a.call(textFieldProps, event);
1771
+ setValue(event.target.value);
1772
+ };
1773
+ const handleBlur = (event) => {
1774
+ var _a;
1775
+ (_a = textFieldProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(textFieldProps, event);
1776
+ if (editingRow) {
1777
+ setEditingRow(Object.assign(Object.assign({}, editingRow), { _valuesCache: Object.assign(Object.assign({}, editingRow._valuesCache), { [column.id]: value }) }));
1778
+ }
1779
+ setEditingCell(null);
1780
+ };
1777
1781
  if (columnDef.Edit) {
1778
1782
  return React__default["default"].createElement(React__default["default"].Fragment, null, (_a = columnDef.Edit) === null || _a === void 0 ? void 0 : _a.call(columnDef, { cell, column, table }));
1779
1783
  }
1780
- return (React__default["default"].createElement(material.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)));
1784
+ return (React__default["default"].createElement(material.TextField, Object.assign({ disabled: columnDef.enableEditing === false, fullWidth: true, id: `mrt-${tableId}-edit-cell-text-field-${cell.id}`, label: showLabel ? column.columnDef.header : undefined, margin: "none", onClick: (e) => e.stopPropagation(), placeholder: columnDef.header, value: value, variant: "standard" }, textFieldProps, { onBlur: handleBlur, onChange: handleChange })));
1781
1785
  };
1782
1786
 
1783
1787
  const MRT_CopyButton = ({ cell, children, table }) => {
@@ -1845,6 +1849,7 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
1845
1849
  const isEditable = (enableEditing || columnDef.enableEditing) &&
1846
1850
  columnDef.enableEditing !== false;
1847
1851
  const isEditing = isEditable &&
1852
+ editingMode !== 'modal' &&
1848
1853
  (editingMode === 'table' ||
1849
1854
  (editingRow === null || editingRow === void 0 ? void 0 : editingRow.id) === row.id ||
1850
1855
  (editingCell === null || editingCell === void 0 ? void 0 : editingCell.id) === cell.id);
@@ -1939,10 +1944,13 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
1939
1944
  : column.getIsPinned()
1940
1945
  ? 1
1941
1946
  : undefined, '&:hover': {
1942
- backgroundColor: enableHover && enableEditing && editingMode !== 'row'
1947
+ backgroundColor: enableHover &&
1948
+ enableEditing &&
1949
+ columnDef.enableEditing !== false &&
1950
+ ['table', 'cell'].includes(editingMode !== null && editingMode !== void 0 ? editingMode : '')
1943
1951
  ? theme.palette.mode === 'dark'
1944
- ? `${material.lighten(theme.palette.background.default, 0.13)} !important`
1945
- : `${material.darken(theme.palette.background.default, 0.07)} !important`
1952
+ ? `${material.lighten(theme.palette.background.default, 0.2)} !important`
1953
+ : `${material.darken(theme.palette.background.default, 0.1)} !important`
1946
1954
  : undefined,
1947
1955
  } }, ((tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx) instanceof Function
1948
1956
  ? tableCellProps.sx(theme)
@@ -1950,14 +1958,22 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
1950
1958
  } }),
1951
1959
  React__default["default"].createElement(React__default["default"].Fragment, null, cell.getIsPlaceholder() ? null : isLoading || showSkeletons ? (React__default["default"].createElement(material.Skeleton, Object.assign({ animation: "wave", height: 20, width: skeletonWidth }, muiTableBodyCellSkeletonProps))) : enableRowNumbers &&
1952
1960
  rowNumberMode === 'static' &&
1953
- column.id === 'mrt-row-numbers' ? (rowIndex + 1) : column.id === 'mrt-row-drag' ? (React__default["default"].createElement(MRT_TableBodyRowGrabHandle, { cell: cell, rowRef: rowRef, table: table })) : columnDefType === 'display' ? ((_a = columnDef.Cell) === null || _a === void 0 ? void 0 : _a.call(columnDef, { cell, column, table })) : isEditing ? (React__default["default"].createElement(MRT_EditCellTextField, { cell: cell, table: table })) : (enableClickToCopy || columnDef.enableClickToCopy) &&
1961
+ column.id === 'mrt-row-numbers' ? (rowIndex + 1) : column.id === 'mrt-row-drag' ? (React__default["default"].createElement(MRT_TableBodyRowGrabHandle, { cell: cell, rowRef: rowRef, table: table })) : columnDefType === 'display' &&
1962
+ (column.id === 'mrt-row-select' ||
1963
+ column.id === 'mrt-row-expand' ||
1964
+ !row.getIsGrouped()) ? ((_a = columnDef.Cell) === null || _a === void 0 ? void 0 : _a.call(columnDef, { cell, column, table })) : isEditing ? (React__default["default"].createElement(MRT_EditCellTextField, { cell: cell, table: table })) : (enableClickToCopy || columnDef.enableClickToCopy) &&
1954
1965
  columnDef.enableClickToCopy !== false ? (React__default["default"].createElement(React__default["default"].Fragment, null,
1955
1966
  React__default["default"].createElement(MRT_CopyButton, { cell: cell, table: table },
1956
- React__default["default"].createElement(React__default["default"].Fragment, null, (_c = (_b = columnDef === null || columnDef === void 0 ? void 0 : columnDef.Cell) === null || _b === void 0 ? void 0 : _b.call(columnDef, { cell, column, table })) !== null && _c !== void 0 ? _c : cell.renderValue())),
1967
+ React__default["default"].createElement(React__default["default"].Fragment, null, row.getIsGrouped() && !cell.getIsGrouped()
1968
+ ? null
1969
+ : (_c = (_b = columnDef === null || columnDef === void 0 ? void 0 : columnDef.Cell) === null || _b === void 0 ? void 0 : _b.call(columnDef, { cell, column, table })) !== null && _c !== void 0 ? _c : cell.renderValue())),
1957
1970
  cell.getIsGrouped() && React__default["default"].createElement(React__default["default"].Fragment, null,
1958
1971
  " (", (_d = row.subRows) === null || _d === void 0 ? void 0 :
1959
1972
  _d.length,
1960
- ")"))) : (React__default["default"].createElement(React__default["default"].Fragment, null, (_g = (_f = columnDef === null || columnDef === void 0 ? void 0 : columnDef.Cell) === null || _f === void 0 ? void 0 : _f.call(columnDef, { cell, column, table })) !== null && _g !== void 0 ? _g : cell.renderValue(),
1973
+ ")"))) : (React__default["default"].createElement(React__default["default"].Fragment, null,
1974
+ row.getIsGrouped() && !cell.getIsGrouped()
1975
+ ? null
1976
+ : (_g = (_f = columnDef === null || columnDef === void 0 ? void 0 : columnDef.Cell) === null || _f === void 0 ? void 0 : _f.call(columnDef, { cell, column, table })) !== null && _g !== void 0 ? _g : cell.renderValue(),
1961
1977
  cell.getIsGrouped() && React__default["default"].createElement(React__default["default"].Fragment, null,
1962
1978
  " (", (_j = (_h = row.subRows) === null || _h === void 0 ? void 0 : _h.length) !== null && _j !== void 0 ? _j : '',
1963
1979
  ")"))))));
@@ -2208,6 +2224,23 @@ const MRT_TablePaper = ({ table }) => {
2208
2224
  enableBottomToolbar && React__default["default"].createElement(MRT_BottomToolbar, { table: table })));
2209
2225
  };
2210
2226
 
2227
+ const MRT_EditRowModal = ({ open, row, table, }) => {
2228
+ const { options: { localization }, } = table;
2229
+ return (React__default["default"].createElement(material.Dialog, { open: open },
2230
+ React__default["default"].createElement(material.DialogTitle, { textAlign: "center" }, localization.edit),
2231
+ React__default["default"].createElement(material.DialogContent, null,
2232
+ React__default["default"].createElement(material.Stack, { sx: {
2233
+ width: '100%',
2234
+ minWidth: { xs: '300px', sm: '360px', md: '400px' },
2235
+ gap: '1.5rem',
2236
+ } }, row
2237
+ .getVisibleCells()
2238
+ .filter((cell) => cell.column.columnDef.columnDefType === 'data')
2239
+ .map((cell) => (React__default["default"].createElement(MRT_EditCellTextField, { cell: cell, key: cell.id, showLabel: true, table: table }))))),
2240
+ React__default["default"].createElement(material.DialogActions, { sx: { p: '1.25rem' } },
2241
+ React__default["default"].createElement(MRT_EditActionButtons, { row: row, table: table, variant: "text" }))));
2242
+ };
2243
+
2211
2244
  const MRT_TableRoot = (props) => {
2212
2245
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7;
2213
2246
  const [tableId, setIdPrefix] = React.useState(props.tableId);
@@ -2309,7 +2342,8 @@ const MRT_TableRoot = (props) => {
2309
2342
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
2310
2343
  React__default["default"].createElement(material.Dialog, { PaperComponent: material.Box, TransitionComponent: material.Grow, disablePortal: true, fullScreen: true, keepMounted: false, onClose: () => setIsFullScreen(false), open: isFullScreen, transitionDuration: 400 },
2311
2344
  React__default["default"].createElement(MRT_TablePaper, { table: table })),
2312
- !isFullScreen && React__default["default"].createElement(MRT_TablePaper, { table: table })));
2345
+ !isFullScreen && React__default["default"].createElement(MRT_TablePaper, { table: table }),
2346
+ editingRow && props.editingMode === 'modal' && (React__default["default"].createElement(MRT_EditRowModal, { row: editingRow, table: table, open: true }))));
2313
2347
  };
2314
2348
 
2315
2349
  var MaterialReactTable = (_a) => {