@mui/x-data-grid 7.22.1 → 8.0.0-alpha.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.
Files changed (129) hide show
  1. package/CHANGELOG.md +143 -92
  2. package/README.md +2 -2
  3. package/colDef/gridBooleanOperators.js +4 -6
  4. package/components/GridDetailPanels.js +0 -1
  5. package/components/GridPinnedRows.js +0 -1
  6. package/components/GridRow.d.ts +2 -2
  7. package/components/GridRow.js +3 -28
  8. package/components/base/GridOverlays.js +10 -8
  9. package/components/cell/GridActionsCell.js +1 -2
  10. package/components/cell/GridActionsCellItem.js +1 -2
  11. package/components/cell/GridCell.d.ts +41 -3
  12. package/components/cell/GridCell.js +1 -9
  13. package/components/cell/GridEditInputCell.js +0 -67
  14. package/components/containers/GridRootStyles.js +1 -0
  15. package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +1 -2
  16. package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +1 -2
  17. package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +1 -2
  18. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +3 -4
  19. package/components/panel/GridPanel.d.ts +1 -1
  20. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +1 -0
  21. package/components/panel/filterPanel/GridFilterInputBoolean.js +14 -5
  22. package/components/toolbar/GridToolbar.d.ts +2 -2
  23. package/components/toolbar/GridToolbar.js +12 -4
  24. package/components/toolbar/GridToolbarColumnsButton.js +1 -1
  25. package/components/toolbar/GridToolbarDensitySelector.js +2 -4
  26. package/components/toolbar/GridToolbarExport.d.ts +2 -2
  27. package/components/toolbar/GridToolbarExport.js +9 -6
  28. package/components/toolbar/GridToolbarExportContainer.js +1 -2
  29. package/components/toolbar/index.d.ts +1 -1
  30. package/components/virtualization/GridVirtualScrollbar.js +6 -0
  31. package/hooks/features/columnResize/useGridColumnResize.js +4 -2
  32. package/hooks/features/editing/useGridCellEditing.js +23 -4
  33. package/hooks/features/editing/useGridRowEditing.js +23 -2
  34. package/hooks/features/export/useGridCsvExport.js +1 -1
  35. package/hooks/features/export/useGridPrintExport.js +1 -1
  36. package/hooks/features/pagination/useGridPaginationModel.js +2 -2
  37. package/hooks/features/rowSelection/useGridRowSelection.d.ts +1 -1
  38. package/hooks/features/rowSelection/useGridRowSelection.js +30 -16
  39. package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
  40. package/hooks/features/rows/gridRowsUtils.js +1 -5
  41. package/hooks/features/virtualization/useGridVirtualScroller.js +4 -4
  42. package/hooks/utils/useGridSelector.d.ts +3 -2
  43. package/hooks/utils/useGridSelector.js +27 -2
  44. package/index.d.ts +0 -1
  45. package/index.js +1 -1
  46. package/locales/plPL.js +25 -28
  47. package/locales/trTR.js +2 -2
  48. package/material/index.js +4 -0
  49. package/models/gridSlotsComponent.d.ts +10 -0
  50. package/models/gridSlotsComponentsProps.d.ts +8 -0
  51. package/models/props/DataGridProps.d.ts +1 -1
  52. package/modern/colDef/gridBooleanOperators.js +4 -6
  53. package/modern/components/GridDetailPanels.js +0 -1
  54. package/modern/components/GridPinnedRows.js +0 -1
  55. package/modern/components/GridRow.js +3 -28
  56. package/modern/components/base/GridOverlays.js +10 -8
  57. package/modern/components/cell/GridActionsCell.js +1 -2
  58. package/modern/components/cell/GridActionsCellItem.js +1 -2
  59. package/modern/components/cell/GridCell.js +1 -9
  60. package/modern/components/cell/GridEditInputCell.js +0 -67
  61. package/modern/components/containers/GridRootStyles.js +1 -0
  62. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +1 -2
  63. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +1 -2
  64. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +1 -2
  65. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +3 -4
  66. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +14 -5
  67. package/modern/components/toolbar/GridToolbar.js +12 -4
  68. package/modern/components/toolbar/GridToolbarColumnsButton.js +1 -1
  69. package/modern/components/toolbar/GridToolbarDensitySelector.js +2 -4
  70. package/modern/components/toolbar/GridToolbarExport.js +9 -6
  71. package/modern/components/toolbar/GridToolbarExportContainer.js +1 -2
  72. package/modern/components/virtualization/GridVirtualScrollbar.js +6 -0
  73. package/modern/hooks/features/columnResize/useGridColumnResize.js +4 -2
  74. package/modern/hooks/features/editing/useGridCellEditing.js +23 -4
  75. package/modern/hooks/features/editing/useGridRowEditing.js +23 -2
  76. package/modern/hooks/features/export/useGridCsvExport.js +1 -1
  77. package/modern/hooks/features/export/useGridPrintExport.js +1 -1
  78. package/modern/hooks/features/pagination/useGridPaginationModel.js +2 -2
  79. package/modern/hooks/features/rowSelection/useGridRowSelection.js +30 -16
  80. package/modern/hooks/features/rows/gridRowsUtils.js +1 -5
  81. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +4 -4
  82. package/modern/hooks/utils/useGridSelector.js +27 -2
  83. package/modern/index.js +1 -1
  84. package/modern/locales/plPL.js +25 -28
  85. package/modern/locales/trTR.js +2 -2
  86. package/modern/material/index.js +4 -0
  87. package/modern/utils/createSelector.js +11 -1
  88. package/modern/utils/utils.js +1 -3
  89. package/node/colDef/gridBooleanOperators.js +3 -5
  90. package/node/components/GridDetailPanels.js +0 -1
  91. package/node/components/GridPinnedRows.js +0 -1
  92. package/node/components/GridRow.js +3 -28
  93. package/node/components/base/GridOverlays.js +10 -8
  94. package/node/components/cell/GridActionsCell.js +1 -2
  95. package/node/components/cell/GridActionsCellItem.js +1 -2
  96. package/node/components/cell/GridCell.js +1 -9
  97. package/node/components/cell/GridEditInputCell.js +0 -67
  98. package/node/components/containers/GridRootStyles.js +1 -0
  99. package/node/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +1 -2
  100. package/node/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +1 -2
  101. package/node/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +1 -2
  102. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +3 -4
  103. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +16 -5
  104. package/node/components/toolbar/GridToolbar.js +12 -4
  105. package/node/components/toolbar/GridToolbarColumnsButton.js +3 -3
  106. package/node/components/toolbar/GridToolbarDensitySelector.js +2 -4
  107. package/node/components/toolbar/GridToolbarExport.js +9 -6
  108. package/node/components/toolbar/GridToolbarExportContainer.js +1 -2
  109. package/node/components/virtualization/GridVirtualScrollbar.js +6 -0
  110. package/node/hooks/features/columnResize/useGridColumnResize.js +4 -2
  111. package/node/hooks/features/editing/useGridCellEditing.js +23 -4
  112. package/node/hooks/features/editing/useGridRowEditing.js +23 -2
  113. package/node/hooks/features/export/useGridCsvExport.js +2 -2
  114. package/node/hooks/features/export/useGridPrintExport.js +2 -2
  115. package/node/hooks/features/pagination/useGridPaginationModel.js +2 -2
  116. package/node/hooks/features/rowSelection/useGridRowSelection.js +29 -15
  117. package/node/hooks/features/rows/gridRowsUtils.js +2 -8
  118. package/node/hooks/features/virtualization/useGridVirtualScroller.js +4 -4
  119. package/node/hooks/utils/useGridSelector.js +29 -3
  120. package/node/index.js +1 -1
  121. package/node/locales/plPL.js +25 -28
  122. package/node/locales/trTR.js +2 -2
  123. package/node/material/index.js +4 -0
  124. package/node/utils/createSelector.js +11 -1
  125. package/node/utils/utils.js +1 -3
  126. package/package.json +3 -3
  127. package/utils/createSelector.d.ts +1 -1
  128. package/utils/createSelector.js +11 -1
  129. package/utils/utils.js +1 -3
@@ -12,29 +12,31 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _system = require("@mui/system");
13
13
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
14
  var _clsx = _interopRequireDefault(require("clsx"));
15
+ var _gridRowsUtils = require("../../hooks/features/rows/gridRowsUtils");
15
16
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
16
17
  var _dimensions = require("../../hooks/features/dimensions");
17
18
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
18
19
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
19
- var _useGridVisibleRows = require("../../hooks/utils/useGridVisibleRows");
20
- var _gridRowsUtils = require("../../hooks/features/rows/gridRowsUtils");
21
20
  var _gridClasses = require("../../constants/gridClasses");
22
21
  var _jsxRuntime = require("react/jsx-runtime");
23
22
  const GridOverlayWrapperRoot = (0, _system.styled)('div', {
24
23
  name: 'MuiDataGrid',
25
24
  slot: 'OverlayWrapper',
26
- shouldForwardProp: prop => prop !== 'overlayType' && prop !== 'loadingOverlayVariant',
25
+ shouldForwardProp: prop => prop !== 'overlayType' && prop !== 'loadingOverlayVariant' && prop !== 'right',
27
26
  overridesResolver: (props, styles) => styles.overlayWrapper
28
27
  })(({
29
28
  overlayType,
30
- loadingOverlayVariant
29
+ loadingOverlayVariant,
30
+ right
31
31
  }) =>
32
32
  // Skeleton overlay should flow with the scroll container and not be sticky
33
33
  loadingOverlayVariant !== 'skeleton' ? {
34
34
  position: 'sticky',
35
35
  // To stay in place while scrolling
36
36
  top: 'var(--DataGrid-headersTotalHeight)',
37
+ // TODO: take pinned rows into account
37
38
  left: 0,
39
+ right: `${right}px`,
38
40
  width: 0,
39
41
  // To stay above the content instead of shifting it down
40
42
  height: 0,
@@ -61,11 +63,10 @@ const useUtilityClasses = ownerState => {
61
63
  function GridOverlayWrapper(props) {
62
64
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
63
65
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
64
- const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, rootProps);
65
66
  const dimensions = (0, _useGridSelector.useGridSelector)(apiRef, _dimensions.gridDimensionsSelector);
66
- let height = dimensions.viewportOuterSize.height - dimensions.topContainerHeight - dimensions.bottomContainerHeight - (dimensions.hasScrollX ? dimensions.scrollbarSize : 0);
67
- if (rootProps.autoHeight && currentPage.rows.length === 0 || height === 0) {
68
- height = (0, _gridRowsUtils.getMinimalContentHeight)(apiRef);
67
+ let height = Math.max(dimensions.viewportOuterSize.height - dimensions.topContainerHeight - dimensions.bottomContainerHeight - (dimensions.hasScrollX ? dimensions.scrollbarSize : 0), 0);
68
+ if (height === 0) {
69
+ height = _gridRowsUtils.minimalContentHeight;
69
70
  }
70
71
  const classes = useUtilityClasses((0, _extends2.default)({}, props, {
71
72
  classes: rootProps.classes
@@ -73,6 +74,7 @@ function GridOverlayWrapper(props) {
73
74
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridOverlayWrapperRoot, (0, _extends2.default)({
74
75
  className: (0, _clsx.default)(classes.root)
75
76
  }, props, {
77
+ right: dimensions.columnsTotalWidth - dimensions.viewportOuterSize.width,
76
78
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(GridOverlayWrapperInner, (0, _extends2.default)({
77
79
  className: (0, _clsx.default)(classes.inner),
78
80
  style: {
@@ -11,7 +11,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
- var _MenuList = _interopRequireDefault(require("@mui/material/MenuList"));
15
14
  var _RtlProvider = require("@mui/system/RtlProvider");
16
15
  var _utils = require("@mui/utils");
17
16
  var _gridClasses = require("../../constants/gridClasses");
@@ -181,7 +180,7 @@ function GridActionsCell(props) {
181
180
  target: buttonRef.current,
182
181
  position: position,
183
182
  onClose: hideMenu,
184
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuList.default, {
183
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuList, {
185
184
  id: menuId,
186
185
  className: _gridClasses.gridClasses.menuList,
187
186
  onKeyDown: handleListKeyDown,
@@ -10,7 +10,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
- var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
14
13
  var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
15
14
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
16
15
  var _jsxRuntime = require("react/jsx-runtime");
@@ -55,7 +54,7 @@ const GridActionsCellItem = exports.GridActionsCellItem = /*#__PURE__*/React.for
55
54
  closeMenu?.();
56
55
  }
57
56
  };
58
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, (0, _extends2.default)({
57
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, (0, _extends2.default)({
59
58
  ref: ref
60
59
  }, other, {
61
60
  onClick: handleClick,
@@ -26,7 +26,7 @@ var _cellBorderUtils = require("../../utils/cellBorderUtils");
26
26
  var _gridColumnsInterfaces = require("../../hooks/features/columns/gridColumnsInterfaces");
27
27
  var _gridRowSpanningSelectors = require("../../hooks/features/rows/gridRowSpanningSelectors");
28
28
  var _jsxRuntime = require("react/jsx-runtime");
29
- const _excluded = ["column", "rowId", "editCellState", "align", "children", "colIndex", "width", "className", "style", "gridHasScrollX", "colSpan", "disableDragEvents", "isNotVisible", "pinnedOffset", "pinnedPosition", "sectionIndex", "sectionLength", "gridHasFiller", "onClick", "onDoubleClick", "onMouseDown", "onMouseUp", "onMouseOver", "onKeyDown", "onKeyUp", "onDragEnter", "onDragOver"],
29
+ const _excluded = ["column", "rowId", "editCellState", "align", "children", "colIndex", "width", "className", "style", "colSpan", "disableDragEvents", "isNotVisible", "pinnedOffset", "pinnedPosition", "sectionIndex", "sectionLength", "gridHasFiller", "onClick", "onDoubleClick", "onMouseDown", "onMouseUp", "onMouseOver", "onKeyDown", "onKeyUp", "onDragEnter", "onDragOver"],
30
30
  _excluded2 = ["changeReason", "unstable_updateValueOnRender"];
31
31
  let PinnedPosition = exports.PinnedPosition = /*#__PURE__*/function (PinnedPosition) {
32
32
  PinnedPosition[PinnedPosition["NONE"] = 0] = "NONE";
@@ -350,7 +350,6 @@ process.env.NODE_ENV !== "production" ? GridCell.propTypes = {
350
350
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
351
351
  // ----------------------------------------------------------------------
352
352
  align: _propTypes.default.oneOf(['center', 'left', 'right']).isRequired,
353
- className: _propTypes.default.string,
354
353
  colIndex: _propTypes.default.number.isRequired,
355
354
  colSpan: _propTypes.default.number,
356
355
  column: _propTypes.default.object.isRequired,
@@ -363,13 +362,6 @@ process.env.NODE_ENV !== "production" ? GridCell.propTypes = {
363
362
  }),
364
363
  gridHasFiller: _propTypes.default.bool.isRequired,
365
364
  isNotVisible: _propTypes.default.bool.isRequired,
366
- onClick: _propTypes.default.func,
367
- onDoubleClick: _propTypes.default.func,
368
- onDragEnter: _propTypes.default.func,
369
- onDragOver: _propTypes.default.func,
370
- onKeyDown: _propTypes.default.func,
371
- onMouseDown: _propTypes.default.func,
372
- onMouseUp: _propTypes.default.func,
373
365
  pinnedOffset: _propTypes.default.number.isRequired,
374
366
  pinnedPosition: _propTypes.default.oneOf([0, 1, 2, 3]).isRequired,
375
367
  rowId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
@@ -9,7 +9,6 @@ exports.renderEditInputCell = exports.GridEditInputCell = void 0;
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
- var _propTypes = _interopRequireDefault(require("prop-types"));
13
12
  var _utils = require("@mui/utils");
14
13
  var _styles = require("@mui/material/styles");
15
14
  var _InputBase = _interopRequireDefault(require("@mui/material/InputBase"));
@@ -102,71 +101,5 @@ const GridEditInputCell = exports.GridEditInputCell = /*#__PURE__*/React.forward
102
101
  }) : undefined
103
102
  }, other));
104
103
  });
105
- process.env.NODE_ENV !== "production" ? GridEditInputCell.propTypes = {
106
- // ----------------------------- Warning --------------------------------
107
- // | These PropTypes are generated from the TypeScript type definitions |
108
- // | To update them edit the TypeScript types and run "pnpm proptypes" |
109
- // ----------------------------------------------------------------------
110
- /**
111
- * GridApi that let you manipulate the grid.
112
- */
113
- api: _propTypes.default.object.isRequired,
114
- /**
115
- * The mode of the cell.
116
- */
117
- cellMode: _propTypes.default.oneOf(['edit', 'view']).isRequired,
118
- changeReason: _propTypes.default.oneOf(['debouncedSetEditCellValue', 'setEditCellValue']),
119
- /**
120
- * The column of the row that the current cell belongs to.
121
- */
122
- colDef: _propTypes.default.object.isRequired,
123
- debounceMs: _propTypes.default.number,
124
- /**
125
- * The column field of the cell that triggered the event.
126
- */
127
- field: _propTypes.default.string.isRequired,
128
- /**
129
- * The cell value formatted with the column valueFormatter.
130
- */
131
- formattedValue: _propTypes.default.any,
132
- /**
133
- * If true, the cell is the active element.
134
- */
135
- hasFocus: _propTypes.default.bool.isRequired,
136
- /**
137
- * The grid row id.
138
- */
139
- id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
140
- /**
141
- * If true, the cell is editable.
142
- */
143
- isEditable: _propTypes.default.bool,
144
- isProcessingProps: _propTypes.default.bool,
145
- isValidating: _propTypes.default.bool,
146
- /**
147
- * Callback called when the value is changed by the user.
148
- * @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.
149
- * @param {Date | null} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.
150
- * @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`
151
- */
152
- onValueChange: _propTypes.default.func,
153
- /**
154
- * The row model of the row that the current cell belongs to.
155
- */
156
- row: _propTypes.default.any.isRequired,
157
- /**
158
- * The node of the row that the current cell belongs to.
159
- */
160
- rowNode: _propTypes.default.object.isRequired,
161
- /**
162
- * the tabIndex value.
163
- */
164
- tabIndex: _propTypes.default.oneOf([-1, 0]).isRequired,
165
- /**
166
- * The cell value.
167
- * If the column has `valueGetter`, use `params.row` to directly access the fields.
168
- */
169
- value: _propTypes.default.any
170
- } : void 0;
171
104
  const renderEditInputCell = params => /*#__PURE__*/(0, _jsxRuntime.jsx)(GridEditInputCell, (0, _extends2.default)({}, params));
172
105
  exports.renderEditInputCell = renderEditInputCell;
@@ -551,6 +551,7 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
551
551
  lineHeight: 'inherit'
552
552
  },
553
553
  [`& .${_gridClasses.gridClasses.cellEmpty}`]: {
554
+ flex: 1,
554
555
  padding: 0,
555
556
  height: 'unset'
556
557
  },
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.GridColumnMenuFilterItem = GridColumnMenuFilterItem;
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
12
11
  var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
13
12
  var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
14
13
  var _useGridApiContext = require("../../../../hooks/utils/useGridApiContext");
@@ -28,7 +27,7 @@ function GridColumnMenuFilterItem(props) {
28
27
  if (rootProps.disableColumnFilter || !colDef.filterable) {
29
28
  return null;
30
29
  }
31
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
32
31
  onClick: showFilter,
33
32
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
34
33
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuFilterIcon, {
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.GridColumnMenuHideItem = GridColumnMenuHideItem;
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
12
11
  var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
13
12
  var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
14
13
  var _useGridApiContext = require("../../../../hooks/utils/useGridApiContext");
@@ -44,7 +43,7 @@ function GridColumnMenuHideItem(props) {
44
43
  if (colDef.hideable === false) {
45
44
  return null;
46
45
  }
47
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
48
47
  onClick: toggleColumn,
49
48
  disabled: disabled,
50
49
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.GridColumnMenuManageItem = GridColumnMenuManageItem;
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
12
11
  var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
13
12
  var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
14
13
  var _gridPreferencePanelsValue = require("../../../../hooks/features/preferencesPanel/gridPreferencePanelsValue");
@@ -28,7 +27,7 @@ function GridColumnMenuManageItem(props) {
28
27
  if (rootProps.disableColumnSelector) {
29
28
  return null;
30
29
  }
31
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
32
31
  onClick: showColumns,
33
32
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
34
33
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuManageColumnsIcon, {
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.GridColumnMenuSortItem = GridColumnMenuSortItem;
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
12
11
  var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
13
12
  var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
14
13
  var _useGridSelector = require("../../../../hooks/utils/useGridSelector");
@@ -45,7 +44,7 @@ function GridColumnMenuSortItem(props) {
45
44
  return typeof label === 'function' ? label(colDef) : label;
46
45
  };
47
46
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
48
- children: [sortingOrder.includes('asc') && sortDirection !== 'asc' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
47
+ children: [sortingOrder.includes('asc') && sortDirection !== 'asc' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
49
48
  onClick: onSortMenuItemClick,
50
49
  "data-value": "asc",
51
50
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
@@ -55,7 +54,7 @@ function GridColumnMenuSortItem(props) {
55
54
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemText.default, {
56
55
  children: getLabel('columnMenuSortAsc')
57
56
  })]
58
- }) : null, sortingOrder.includes('desc') && sortDirection !== 'desc' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
57
+ }) : null, sortingOrder.includes('desc') && sortDirection !== 'desc' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
59
58
  onClick: onSortMenuItemClick,
60
59
  "data-value": "desc",
61
60
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
@@ -65,7 +64,7 @@ function GridColumnMenuSortItem(props) {
65
64
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemText.default, {
66
65
  children: getLabel('columnMenuSortDesc')
67
66
  })]
68
- }) : null, sortingOrder.includes(null) && sortDirection != null ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
67
+ }) : null, sortingOrder.includes(null) && sortDirection != null ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
69
68
  onClick: onSortMenuItemClick,
70
69
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemText.default, {
71
70
  children: apiRef.current.getLocaleText('columnMenuUnsort')
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.GridFilterInputBoolean = GridFilterInputBoolean;
9
+ exports.sanitizeFilterItemValue = void 0;
9
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
11
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
12
  var React = _interopRequireWildcard(require("react"));
@@ -15,6 +16,16 @@ var _styles = require("@mui/material/styles");
15
16
  var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
16
17
  var _jsxRuntime = require("react/jsx-runtime");
17
18
  const _excluded = ["item", "applyValue", "apiRef", "focusElementRef", "isFilterActive", "clearButton", "tabIndex", "label", "variant", "InputLabelProps"];
19
+ const sanitizeFilterItemValue = value => {
20
+ if (String(value).toLowerCase() === 'true') {
21
+ return true;
22
+ }
23
+ if (String(value).toLowerCase() === 'false') {
24
+ return false;
25
+ }
26
+ return undefined;
27
+ };
28
+ exports.sanitizeFilterItemValue = sanitizeFilterItemValue;
18
29
  const BooleanOperatorContainer = (0, _styles.styled)('div')({
19
30
  display: 'flex',
20
31
  alignItems: 'center',
@@ -35,7 +46,7 @@ function GridFilterInputBoolean(props) {
35
46
  variant = 'standard'
36
47
  } = props,
37
48
  others = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
38
- const [filterValueState, setFilterValueState] = React.useState(item.value || '');
49
+ const [filterValueState, setFilterValueState] = React.useState(sanitizeFilterItemValue(item.value));
39
50
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
40
51
  const labelId = (0, _utils.unstable_useId)();
41
52
  const selectId = (0, _utils.unstable_useId)();
@@ -43,14 +54,14 @@ function GridFilterInputBoolean(props) {
43
54
  const isSelectNative = baseSelectProps.native ?? false;
44
55
  const baseSelectOptionProps = rootProps.slotProps?.baseSelectOption || {};
45
56
  const onFilterChange = React.useCallback(event => {
46
- const value = event.target.value;
57
+ const value = sanitizeFilterItemValue(event.target.value);
47
58
  setFilterValueState(value);
48
59
  applyValue((0, _extends2.default)({}, item, {
49
- value: Boolean(value)
60
+ value
50
61
  }));
51
62
  }, [applyValue, item]);
52
63
  React.useEffect(() => {
53
- setFilterValueState(item.value || '');
64
+ setFilterValueState(sanitizeFilterItemValue(item.value));
54
65
  }, [item.value]);
55
66
  const label = labelProp ?? apiRef.current.getLocaleText('filterPanelInputLabel');
56
67
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(BooleanOperatorContainer, {
@@ -65,7 +76,7 @@ function GridFilterInputBoolean(props) {
65
76
  labelId: labelId,
66
77
  id: selectId,
67
78
  label: label,
68
- value: filterValueState,
79
+ value: filterValueState === undefined ? '' : String(filterValueState),
69
80
  onChange: onFilterChange,
70
81
  variant: variant,
71
82
  notched: variant === 'outlined' ? true : undefined,
@@ -22,14 +22,15 @@ const _excluded = ["className", "csvOptions", "printOptions", "excelOptions", "s
22
22
  const GridToolbar = exports.GridToolbar = /*#__PURE__*/React.forwardRef(function GridToolbar(props, ref) {
23
23
  // TODO v7: think about where export option should be passed.
24
24
  // from slotProps={{ toolbarExport: { ...exportOption } }} seems to be more appropriate
25
- const {
25
+ const _ref = props,
26
+ {
26
27
  csvOptions,
27
28
  printOptions,
28
29
  excelOptions,
29
30
  showQuickFilter = false,
30
31
  quickFilterProps = {}
31
- } = props,
32
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
32
+ } = _ref,
33
+ other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
33
34
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
34
35
  if (rootProps.disableColumnFilter && rootProps.disableColumnSelector && rootProps.disableDensitySelector && !showQuickFilter) {
35
36
  return null;
@@ -40,7 +41,7 @@ const GridToolbar = exports.GridToolbar = /*#__PURE__*/React.forwardRef(function
40
41
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarColumnsButton.GridToolbarColumnsButton, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarFilterButton.GridToolbarFilterButton, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarDensitySelector.GridToolbarDensitySelector, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarExport.GridToolbarExport, {
41
42
  csvOptions: csvOptions,
42
43
  printOptions: printOptions
43
- // TODO: remove the reference to excelOptions in community package
44
+ // @ts-ignore
44
45
  ,
45
46
  excelOptions: excelOptions
46
47
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
@@ -55,6 +56,8 @@ process.env.NODE_ENV !== "production" ? GridToolbar.propTypes = {
55
56
  // | These PropTypes are generated from the TypeScript type definitions |
56
57
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
57
58
  // ----------------------------------------------------------------------
59
+ csvOptions: _propTypes.default.object,
60
+ printOptions: _propTypes.default.object,
58
61
  /**
59
62
  * Props passed to the quick filter component.
60
63
  */
@@ -64,5 +67,10 @@ process.env.NODE_ENV !== "production" ? GridToolbar.propTypes = {
64
67
  * @default false
65
68
  */
66
69
  showQuickFilter: _propTypes.default.bool,
70
+ /**
71
+ * The props used for each slot inside.
72
+ * @default {}
73
+ */
74
+ slotProps: _propTypes.default.object,
67
75
  sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object])
68
76
  } : void 0;
@@ -9,7 +9,7 @@ exports.GridToolbarColumnsButton = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _utils = require("@mui/material/utils");
12
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
13
13
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
14
14
  var _gridPreferencePanelSelector = require("../../hooks/features/preferencesPanel/gridPreferencePanelSelector");
15
15
  var _gridPreferencePanelsValue = require("../../hooks/features/preferencesPanel/gridPreferencePanelsValue");
@@ -22,8 +22,8 @@ const GridToolbarColumnsButton = exports.GridToolbarColumnsButton = /*#__PURE__*
22
22
  } = props;
23
23
  const buttonProps = slotProps.button || {};
24
24
  const tooltipProps = slotProps.tooltip || {};
25
- const columnButtonId = (0, _utils.unstable_useId)();
26
- const columnPanelId = (0, _utils.unstable_useId)();
25
+ const columnButtonId = (0, _useId.default)();
26
+ const columnPanelId = (0, _useId.default)();
27
27
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
28
28
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
29
29
  const preferencePanel = (0, _useGridSelector.useGridSelector)(apiRef, _gridPreferencePanelSelector.gridPreferencePanelStateSelector);
@@ -10,8 +10,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _utils = require("@mui/utils");
13
- var _MenuList = _interopRequireDefault(require("@mui/material/MenuList"));
14
- var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
15
13
  var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
16
14
  var _densitySelector = require("../../hooks/features/density/densitySelector");
17
15
  var _keyboardUtils = require("../../utils/keyboardUtils");
@@ -82,7 +80,7 @@ const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = /*#__PUR
82
80
  if (rootProps.disableDensitySelector) {
83
81
  return null;
84
82
  }
85
- const densityElements = densityOptions.map((option, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
83
+ const densityElements = densityOptions.map((option, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
86
84
  onClick: () => handleDensityUpdate(option.value),
87
85
  selected: option.value === density,
88
86
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
@@ -113,7 +111,7 @@ const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = /*#__PUR
113
111
  target: buttonRef.current,
114
112
  onClose: handleDensitySelectorClose,
115
113
  position: "bottom-start",
116
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuList.default, {
114
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuList, {
117
115
  id: densityMenuId,
118
116
  className: _gridClasses.gridClasses.menuList,
119
117
  "aria-labelledby": densityButtonId,
@@ -12,7 +12,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
12
12
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
13
13
  var React = _interopRequireWildcard(require("react"));
14
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
- var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
15
+ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
16
16
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
17
17
  var _GridToolbarExportContainer = require("./GridToolbarExportContainer");
18
18
  var _jsxRuntime = require("react/jsx-runtime");
@@ -21,12 +21,13 @@ const _excluded = ["hideMenu", "options"],
21
21
  _excluded3 = ["csvOptions", "printOptions", "excelOptions"];
22
22
  function GridCsvExportMenuItem(props) {
23
23
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
24
+ const rootProps = (0, _useGridRootProps.useGridRootProps)();
24
25
  const {
25
26
  hideMenu,
26
27
  options
27
28
  } = props,
28
29
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
29
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.default, (0, _extends2.default)({
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, (0, _extends2.default)({
30
31
  onClick: () => {
31
32
  apiRef.current.exportDataAsCsv(options);
32
33
  hideMenu?.();
@@ -57,12 +58,13 @@ process.env.NODE_ENV !== "production" ? GridCsvExportMenuItem.propTypes = {
57
58
  } : void 0;
58
59
  function GridPrintExportMenuItem(props) {
59
60
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
61
+ const rootProps = (0, _useGridRootProps.useGridRootProps)();
60
62
  const {
61
63
  hideMenu,
62
64
  options
63
65
  } = props,
64
66
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded2);
65
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.default, (0, _extends2.default)({
67
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, (0, _extends2.default)({
66
68
  onClick: () => {
67
69
  apiRef.current.exportDataAsPrint(options);
68
70
  hideMenu?.();
@@ -92,12 +94,13 @@ process.env.NODE_ENV !== "production" ? GridPrintExportMenuItem.propTypes = {
92
94
  })
93
95
  } : void 0;
94
96
  const GridToolbarExport = exports.GridToolbarExport = /*#__PURE__*/React.forwardRef(function GridToolbarExport(props, ref) {
95
- const {
97
+ const _ref = props,
98
+ {
96
99
  csvOptions = {},
97
100
  printOptions = {},
98
101
  excelOptions
99
- } = props,
100
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded3);
102
+ } = _ref,
103
+ other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded3);
101
104
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
102
105
  const preProcessedButtons = apiRef.current.unstable_applyPipeProcessors('exportMenu', [], {
103
106
  excelOptions,
@@ -10,7 +10,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _utils = require("@mui/utils");
13
- var _MenuList = _interopRequireDefault(require("@mui/material/MenuList"));
14
13
  var _keyboardUtils = require("../../utils/keyboardUtils");
15
14
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
16
15
  var _GridMenu = require("../menu/GridMenu");
@@ -71,7 +70,7 @@ const GridToolbarExportContainer = exports.GridToolbarExportContainer = /*#__PUR
71
70
  target: buttonRef.current,
72
71
  onClose: handleMenuClose,
73
72
  position: "bottom-start",
74
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuList.default, {
73
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuList, {
75
74
  id: exportMenuId,
76
75
  className: _gridClasses.gridClasses.menuList,
77
76
  "aria-labelledby": exportButtonId,
@@ -77,6 +77,9 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = /*#__PURE__*/React.f
77
77
  const onScrollerScroll = (0, _utils.unstable_useEventCallback)(() => {
78
78
  const scroller = apiRef.current.virtualScrollerRef.current;
79
79
  const scrollbar = scrollbarRef.current;
80
+ if (!scrollbar) {
81
+ return;
82
+ }
80
83
  if (scroller[propertyScroll] === lastPosition.current) {
81
84
  return;
82
85
  }
@@ -92,6 +95,9 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = /*#__PURE__*/React.f
92
95
  const onScrollbarScroll = (0, _utils.unstable_useEventCallback)(() => {
93
96
  const scroller = apiRef.current.virtualScrollerRef.current;
94
97
  const scrollbar = scrollbarRef.current;
98
+ if (!scrollbar) {
99
+ return;
100
+ }
95
101
  if (isLocked.current) {
96
102
  isLocked.current = false;
97
103
  return;
@@ -202,8 +202,10 @@ const useGridColumnResize = (apiRef, props) => {
202
202
  const prevWidth = refs.columnHeaderElement.offsetWidth;
203
203
  const widthDiff = newWidth - prevWidth;
204
204
  const columnWidthDiff = newWidth - refs.initialColWidth;
205
- const newTotalWidth = refs.initialTotalWidth + columnWidthDiff;
206
- apiRef.current.rootElementRef?.current?.style.setProperty('--DataGrid-rowWidth', `${newTotalWidth}px`);
205
+ if (columnWidthDiff > 0) {
206
+ const newTotalWidth = refs.initialTotalWidth + columnWidthDiff;
207
+ apiRef.current.rootElementRef?.current?.style.setProperty('--DataGrid-rowWidth', `${newTotalWidth}px`);
208
+ }
207
209
  refs.colDef.computedWidth = newWidth;
208
210
  refs.colDef.width = newWidth;
209
211
  refs.colDef.flex = 0;
@@ -249,26 +249,45 @@ const useGridCellEditing = (apiRef, props) => {
249
249
  mode: _gridEditRowModel.GridCellModes.Edit
250
250
  }, other));
251
251
  }, [throwIfNotEditable, throwIfNotInMode, updateFieldInCellModesModel]);
252
- const updateStateToStartCellEditMode = (0, _utils.unstable_useEventCallback)(params => {
252
+ const updateStateToStartCellEditMode = (0, _utils.unstable_useEventCallback)(async params => {
253
253
  const {
254
254
  id,
255
255
  field,
256
256
  deleteValue,
257
257
  initialValue
258
258
  } = params;
259
- let newValue = apiRef.current.getCellValue(id, field);
259
+ const value = apiRef.current.getCellValue(id, field);
260
+ let newValue = value;
260
261
  if (deleteValue) {
261
262
  newValue = (0, _utils3.getDefaultCellValue)(apiRef.current.getColumn(field));
262
263
  } else if (initialValue) {
263
264
  newValue = initialValue;
264
265
  }
265
- const newProps = {
266
+ const column = apiRef.current.getColumn(field);
267
+ const shouldProcessEditCellProps = !!column.preProcessEditCellProps && deleteValue;
268
+ let newProps = {
266
269
  value: newValue,
267
270
  error: false,
268
- isProcessingProps: false
271
+ isProcessingProps: shouldProcessEditCellProps
269
272
  };
270
273
  updateOrDeleteFieldState(id, field, newProps);
271
274
  apiRef.current.setCellFocus(id, field);
275
+ if (shouldProcessEditCellProps) {
276
+ newProps = await Promise.resolve(column.preProcessEditCellProps({
277
+ id,
278
+ row: apiRef.current.getRow(id),
279
+ props: newProps,
280
+ hasChanged: newValue !== value
281
+ }));
282
+ // Check if still in edit mode before updating
283
+ if (apiRef.current.getCellMode(id, field) === _gridEditRowModel.GridCellModes.Edit) {
284
+ const editingState = (0, _gridEditingSelectors.gridEditRowsStateSelector)(apiRef.current.state);
285
+ updateOrDeleteFieldState(id, field, (0, _extends2.default)({}, newProps, {
286
+ value: editingState[id][field].value,
287
+ isProcessingProps: false
288
+ }));
289
+ }
290
+ }
272
291
  });
273
292
  const stopCellEditMode = React.useCallback(params => {
274
293
  const {