@mui/x-data-grid 7.0.0-alpha.2 → 7.0.0-alpha.4

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 (181) hide show
  1. package/CHANGELOG.md +364 -0
  2. package/DataGrid/DataGrid.d.ts +0 -10
  3. package/DataGrid/DataGrid.js +11 -23
  4. package/DataGrid/useDataGridProps.js +1 -1
  5. package/README.md +0 -1
  6. package/colDef/gridCheckboxSelectionColDef.js +1 -1
  7. package/colDef/gridDefaultColumnTypes.d.ts +2 -2
  8. package/colDef/gridDefaultColumnTypes.js +2 -2
  9. package/components/GridHeader.js +3 -2
  10. package/components/GridRow.js +9 -6
  11. package/components/base/GridOverlays.js +0 -2
  12. package/components/cell/GridActionsCell.js +0 -1
  13. package/components/cell/GridCell.js +3 -5
  14. package/components/cell/GridEditDateCell.js +1 -20
  15. package/components/columnHeaders/GridColumnGroupHeader.js +2 -1
  16. package/components/columnHeaders/GridColumnHeaderItem.js +2 -1
  17. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  18. package/components/panel/filterPanel/GridFilterForm.js +2 -2
  19. package/components/panel/filterPanel/GridFilterInputValue.js +1 -1
  20. package/components/panel/index.d.ts +0 -1
  21. package/components/panel/index.js +0 -1
  22. package/components/virtualization/GridVirtualScroller.js +0 -1
  23. package/constants/defaultGridSlotsComponents.js +1 -2
  24. package/hooks/features/clipboard/useGridClipboard.d.ts +1 -1
  25. package/hooks/features/clipboard/useGridClipboard.js +1 -1
  26. package/hooks/features/editing/useGridCellEditing.js +8 -23
  27. package/hooks/features/editing/useGridRowEditing.js +7 -22
  28. package/hooks/features/export/useGridCsvExport.d.ts +1 -1
  29. package/hooks/features/export/useGridCsvExport.js +1 -1
  30. package/hooks/features/filter/gridFilterUtils.d.ts +1 -0
  31. package/hooks/features/filter/gridFilterUtils.js +7 -4
  32. package/hooks/features/filter/useGridFilter.js +2 -2
  33. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -2
  34. package/hooks/features/focus/gridFocusStateSelector.js +2 -6
  35. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +3 -3
  36. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +3 -4
  37. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +9 -6
  38. package/hooks/features/rowSelection/useGridRowSelection.js +2 -1
  39. package/hooks/features/rows/useGridRowsMeta.js +0 -1
  40. package/hooks/features/sorting/useGridSorting.js +6 -5
  41. package/hooks/features/virtualization/useGridVirtualScroller.js +0 -1
  42. package/index.js +1 -1
  43. package/internals/index.d.ts +2 -2
  44. package/internals/index.js +2 -2
  45. package/legacy/DataGrid/DataGrid.js +11 -23
  46. package/legacy/DataGrid/useDataGridProps.js +1 -1
  47. package/legacy/colDef/gridCheckboxSelectionColDef.js +1 -1
  48. package/legacy/colDef/gridDefaultColumnTypes.js +2 -2
  49. package/legacy/components/GridHeader.js +3 -2
  50. package/legacy/components/GridRow.js +9 -6
  51. package/legacy/components/base/GridOverlays.js +0 -2
  52. package/legacy/components/cell/GridActionsCell.js +0 -1
  53. package/legacy/components/cell/GridCell.js +3 -5
  54. package/legacy/components/cell/GridEditDateCell.js +1 -20
  55. package/legacy/components/columnHeaders/GridColumnGroupHeader.js +2 -1
  56. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +2 -1
  57. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  58. package/legacy/components/panel/filterPanel/GridFilterForm.js +2 -2
  59. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +1 -1
  60. package/legacy/components/panel/index.js +0 -1
  61. package/legacy/components/virtualization/GridVirtualScroller.js +0 -1
  62. package/legacy/constants/defaultGridSlotsComponents.js +1 -2
  63. package/legacy/hooks/features/clipboard/useGridClipboard.js +1 -1
  64. package/legacy/hooks/features/editing/useGridCellEditing.js +8 -23
  65. package/legacy/hooks/features/editing/useGridRowEditing.js +7 -24
  66. package/legacy/hooks/features/export/useGridCsvExport.js +1 -1
  67. package/legacy/hooks/features/filter/gridFilterUtils.js +7 -4
  68. package/legacy/hooks/features/filter/useGridFilter.js +2 -2
  69. package/legacy/hooks/features/focus/gridFocusStateSelector.js +2 -6
  70. package/legacy/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +3 -4
  71. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +9 -6
  72. package/legacy/hooks/features/rowSelection/useGridRowSelection.js +2 -1
  73. package/legacy/hooks/features/rows/useGridRowsMeta.js +0 -1
  74. package/legacy/hooks/features/sorting/useGridSorting.js +6 -5
  75. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +0 -1
  76. package/legacy/index.js +1 -1
  77. package/legacy/internals/index.js +2 -2
  78. package/legacy/locales/bgBG.js +33 -37
  79. package/legacy/locales/coreLocales.js +1 -0
  80. package/legacy/locales/daDK.js +37 -39
  81. package/legacy/locales/plPL.js +0 -1
  82. package/legacy/models/params/gridEditCellParams.js +1 -0
  83. package/legacy/utils/domUtils.js +10 -1
  84. package/legacy/utils/utils.js +0 -1
  85. package/locales/bgBG.js +33 -37
  86. package/locales/coreLocales.js +1 -0
  87. package/locales/daDK.js +37 -39
  88. package/locales/plPL.js +0 -1
  89. package/models/api/gridEditingApi.d.ts +2 -4
  90. package/models/api/gridSortApi.d.ts +2 -2
  91. package/models/colDef/gridColType.d.ts +2 -4
  92. package/models/gridFilterModel.d.ts +2 -2
  93. package/models/gridSlotsComponent.d.ts +0 -5
  94. package/models/gridSlotsComponentsProps.d.ts +0 -3
  95. package/models/params/gridEditCellParams.d.ts +3 -1
  96. package/models/params/gridEditCellParams.js +1 -0
  97. package/models/params/gridRowParams.d.ts +1 -0
  98. package/models/props/DataGridProps.d.ts +1 -1
  99. package/modern/DataGrid/DataGrid.js +11 -23
  100. package/modern/DataGrid/useDataGridProps.js +1 -1
  101. package/modern/colDef/gridCheckboxSelectionColDef.js +1 -1
  102. package/modern/colDef/gridDefaultColumnTypes.js +2 -2
  103. package/modern/components/GridHeader.js +2 -1
  104. package/modern/components/GridRow.js +9 -6
  105. package/modern/components/base/GridOverlays.js +0 -2
  106. package/modern/components/cell/GridActionsCell.js +0 -1
  107. package/modern/components/cell/GridCell.js +2 -4
  108. package/modern/components/cell/GridEditDateCell.js +1 -20
  109. package/modern/components/columnHeaders/GridColumnGroupHeader.js +2 -1
  110. package/modern/components/columnHeaders/GridColumnHeaderItem.js +2 -1
  111. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  112. package/modern/components/panel/filterPanel/GridFilterForm.js +2 -2
  113. package/modern/components/panel/filterPanel/GridFilterInputValue.js +1 -1
  114. package/modern/components/panel/index.js +0 -1
  115. package/modern/components/virtualization/GridVirtualScroller.js +0 -1
  116. package/modern/constants/defaultGridSlotsComponents.js +1 -2
  117. package/modern/hooks/features/clipboard/useGridClipboard.js +1 -1
  118. package/modern/hooks/features/editing/useGridCellEditing.js +8 -23
  119. package/modern/hooks/features/editing/useGridRowEditing.js +7 -22
  120. package/modern/hooks/features/export/useGridCsvExport.js +1 -1
  121. package/modern/hooks/features/filter/gridFilterUtils.js +4 -2
  122. package/modern/hooks/features/filter/useGridFilter.js +2 -2
  123. package/modern/hooks/features/focus/gridFocusStateSelector.js +2 -6
  124. package/modern/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +3 -4
  125. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +9 -6
  126. package/modern/hooks/features/rowSelection/useGridRowSelection.js +2 -1
  127. package/modern/hooks/features/rows/useGridRowsMeta.js +0 -1
  128. package/modern/hooks/features/sorting/useGridSorting.js +6 -5
  129. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +0 -1
  130. package/modern/index.js +1 -1
  131. package/modern/internals/index.js +2 -2
  132. package/modern/locales/bgBG.js +33 -37
  133. package/modern/locales/coreLocales.js +1 -0
  134. package/modern/locales/daDK.js +37 -39
  135. package/modern/locales/plPL.js +0 -1
  136. package/modern/models/params/gridEditCellParams.js +1 -0
  137. package/modern/utils/domUtils.js +10 -1
  138. package/modern/utils/utils.js +0 -1
  139. package/node/DataGrid/DataGrid.js +11 -23
  140. package/node/DataGrid/useDataGridProps.js +1 -1
  141. package/node/colDef/gridCheckboxSelectionColDef.js +1 -1
  142. package/node/colDef/gridDefaultColumnTypes.js +2 -2
  143. package/node/components/GridHeader.js +2 -1
  144. package/node/components/GridRow.js +8 -5
  145. package/node/components/base/GridOverlays.js +0 -2
  146. package/node/components/cell/GridActionsCell.js +0 -1
  147. package/node/components/cell/GridCell.js +2 -4
  148. package/node/components/cell/GridEditDateCell.js +1 -20
  149. package/node/components/columnHeaders/GridColumnGroupHeader.js +2 -1
  150. package/node/components/columnHeaders/GridColumnHeaderItem.js +2 -1
  151. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  152. package/node/components/panel/filterPanel/GridFilterForm.js +2 -2
  153. package/node/components/panel/filterPanel/GridFilterInputValue.js +1 -1
  154. package/node/components/panel/index.js +0 -11
  155. package/node/components/virtualization/GridVirtualScroller.js +0 -1
  156. package/node/constants/defaultGridSlotsComponents.js +0 -1
  157. package/node/hooks/features/clipboard/useGridClipboard.js +1 -1
  158. package/node/hooks/features/editing/useGridCellEditing.js +7 -22
  159. package/node/hooks/features/editing/useGridRowEditing.js +6 -21
  160. package/node/hooks/features/export/useGridCsvExport.js +1 -1
  161. package/node/hooks/features/filter/gridFilterUtils.js +6 -3
  162. package/node/hooks/features/filter/useGridFilter.js +1 -1
  163. package/node/hooks/features/focus/gridFocusStateSelector.js +3 -7
  164. package/node/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +5 -7
  165. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +8 -5
  166. package/node/hooks/features/rowSelection/useGridRowSelection.js +2 -1
  167. package/node/hooks/features/rows/useGridRowsMeta.js +0 -1
  168. package/node/hooks/features/sorting/useGridSorting.js +6 -5
  169. package/node/hooks/features/virtualization/useGridVirtualScroller.js +0 -1
  170. package/node/index.js +1 -1
  171. package/node/internals/index.js +21 -14
  172. package/node/locales/bgBG.js +33 -37
  173. package/node/locales/daDK.js +37 -39
  174. package/node/locales/plPL.js +0 -1
  175. package/node/models/params/gridEditCellParams.js +1 -0
  176. package/node/utils/domUtils.js +11 -1
  177. package/node/utils/utils.js +0 -1
  178. package/package.json +4 -4
  179. package/utils/domUtils.d.ts +2 -0
  180. package/utils/domUtils.js +10 -1
  181. package/utils/utils.js +0 -1
@@ -251,7 +251,6 @@ const GridCell = exports.GridCell = /*#__PURE__*/React.forwardRef((props, ref) =
251
251
  minHeight: height,
252
252
  maxHeight: height === 'auto' ? 'none' : height // max-height doesn't support "auto"
253
253
  };
254
-
255
254
  return cellStyle;
256
255
  }, [width, height, isNotVisible]);
257
256
  React.useEffect(() => {
@@ -467,8 +466,8 @@ const GridCellV7 = /*#__PURE__*/React.forwardRef((props, ref) => {
467
466
  const cellRef = React.useRef(null);
468
467
  const handleRef = (0, _utils.unstable_useForkRef)(ref, cellRef);
469
468
  const focusElementRef = React.useRef(null);
470
- // @ts-expect-error To access `unstable_cellSelection` flag as it's a `premium` feature
471
- const isSelectionMode = rootProps.unstable_cellSelection ?? false;
469
+ // @ts-expect-error To access `cellSelection` flag as it's a `premium` feature
470
+ const isSelectionMode = rootProps.cellSelection ?? false;
472
471
  const ownerState = {
473
472
  align,
474
473
  showRightBorder,
@@ -518,7 +517,6 @@ const GridCellV7 = /*#__PURE__*/React.forwardRef((props, ref) => {
518
517
  minHeight: height,
519
518
  maxHeight: height === 'auto' ? 'none' : height // max-height doesn't support "auto"
520
519
  };
521
-
522
520
  return cellStyle;
523
521
  }, [width, height, isNotVisible]);
524
522
  React.useEffect(() => {
@@ -73,7 +73,6 @@ function GridEditDateCell(props) {
73
73
  classes: rootProps.classes
74
74
  };
75
75
  const classes = useUtilityClasses(ownerState);
76
- const hasUpdatedEditValueOnMount = React.useRef(false);
77
76
  const parseValueToDate = React.useCallback(value => {
78
77
  if (value === '') {
79
78
  return null;
@@ -118,26 +117,8 @@ function GridEditDateCell(props) {
118
117
  inputRef.current.focus();
119
118
  }
120
119
  }, [hasFocus]);
121
- const meta = apiRef.current.unstable_getEditCellMeta(id, field);
122
- const handleInputRef = el => {
123
- inputRef.current = el;
124
- if (meta?.unstable_updateValueOnRender && !hasUpdatedEditValueOnMount.current) {
125
- const inputValue = inputRef.current.value;
126
- const parsedDate = parseValueToDate(inputValue);
127
- setValueState({
128
- parsed: parsedDate,
129
- formatted: inputValue
130
- });
131
- apiRef.current.setEditCellValue({
132
- id,
133
- field,
134
- value: parsedDate
135
- });
136
- hasUpdatedEditValueOnMount.current = true;
137
- }
138
- };
139
120
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledInputBase, (0, _extends2.default)({
140
- inputRef: handleInputRef,
121
+ inputRef: inputRef,
141
122
  fullWidth: true,
142
123
  className: classes.root,
143
124
  type: isDateTime ? 'datetime-local' : 'date',
@@ -14,6 +14,7 @@ var _gridColumnGroupsSelector = require("../../hooks/features/columnGrouping/gri
14
14
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
15
15
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
16
16
  var _GridGenericColumnHeaderItem = require("./GridGenericColumnHeaderItem");
17
+ var _domUtils = require("../../utils/domUtils");
17
18
  var _jsxRuntime = require("react/jsx-runtime");
18
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
20
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -93,7 +94,7 @@ function GridColumnGroupHeader(props) {
93
94
  const publish = React.useCallback(eventName => event => {
94
95
  // Ignore portal
95
96
  // See https://github.com/mui/mui-x/issues/1721
96
- if (!event.currentTarget.contains(event.target)) {
97
+ if ((0, _domUtils.isEventTargetInPortal)(event)) {
97
98
  return;
98
99
  }
99
100
  apiRef.current.publishEvent(eventName, renderParams, event);
@@ -16,6 +16,7 @@ var _GridColumnHeaderMenu = require("../menu/columnMenu/GridColumnHeaderMenu");
16
16
  var _gridClasses = require("../../constants/gridClasses");
17
17
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
18
18
  var _GridGenericColumnHeaderItem = require("./GridGenericColumnHeaderItem");
19
+ var _domUtils = require("../../utils/domUtils");
19
20
  var _jsxRuntime = require("react/jsx-runtime");
20
21
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
21
22
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -75,7 +76,7 @@ function GridColumnHeaderItem(props) {
75
76
  const publish = React.useCallback(eventName => event => {
76
77
  // Ignore portal
77
78
  // See https://github.com/mui/mui-x/issues/1721
78
- if (!event.currentTarget.contains(event.target)) {
79
+ if ((0, _domUtils.isEventTargetInPortal)(event)) {
79
80
  return;
80
81
  }
81
82
  apiRef.current.publishEvent(eventName, apiRef.current.getColumnHeaderParams(colDef.field), event);
@@ -36,7 +36,7 @@ function GridColumnMenuSortItem(props) {
36
36
  const onSortMenuItemClick = React.useCallback(event => {
37
37
  onClick(event);
38
38
  const direction = event.currentTarget.getAttribute('data-value') || null;
39
- apiRef.current.sortColumn(colDef, direction === sortDirection ? null : direction);
39
+ apiRef.current.sortColumn(colDef.field, direction === sortDirection ? null : direction);
40
40
  }, [apiRef, colDef, onClick, sortDirection]);
41
41
  if (!colDef || !colDef.sortable || !sortingOrder.some(item => !!item)) {
42
42
  return null;
@@ -184,8 +184,8 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
184
184
  // try to keep the same operator when column change
185
185
  const newOperator = column.filterOperators.find(operator => operator.value === item.operator) || column.filterOperators[0];
186
186
 
187
- // Erase filter value if the input component is modified
188
- const eraseItemValue = !newOperator.InputComponent || newOperator.InputComponent !== currentOperator?.InputComponent;
187
+ // Erase filter value if the input component or filtered column type is modified
188
+ const eraseItemValue = !newOperator.InputComponent || newOperator.InputComponent !== currentOperator?.InputComponent || column.type !== currentColumn.type;
189
189
  applyFilterChanges((0, _extends2.default)({}, item, {
190
190
  field,
191
191
  operator: newOperator.value,
@@ -51,7 +51,7 @@ function GridFilterInputValue(props) {
51
51
  }, [id, applyValue, item, rootProps.filterDebounceMs, filterTimeout]);
52
52
  React.useEffect(() => {
53
53
  const itemPlusTag = item;
54
- if (itemPlusTag.fromInput !== id) {
54
+ if (itemPlusTag.fromInput !== id || item.value === undefined) {
55
55
  setFilterValueState(String(item.value ?? ''));
56
56
  }
57
57
  }, [id, item]);
@@ -69,17 +69,6 @@ Object.keys(_GridPanelWrapper).forEach(function (key) {
69
69
  }
70
70
  });
71
71
  });
72
- var _GridPreferencesPanel = require("./GridPreferencesPanel");
73
- Object.keys(_GridPreferencesPanel).forEach(function (key) {
74
- if (key === "default" || key === "__esModule") return;
75
- if (key in exports && exports[key] === _GridPreferencesPanel[key]) return;
76
- Object.defineProperty(exports, key, {
77
- enumerable: true,
78
- get: function () {
79
- return _GridPreferencesPanel[key];
80
- }
81
- });
82
- });
83
72
  var _filterPanel = require("./filterPanel");
84
73
  Object.keys(_filterPanel).forEach(function (key) {
85
74
  if (key === "default" || key === "__esModule") return;
@@ -38,7 +38,6 @@ const VirtualScrollerRoot = (0, _system.styled)('div', {
38
38
  },
39
39
  zIndex: 0 // See https://github.com/mui/mui-x/issues/10547
40
40
  });
41
-
42
41
  const GridVirtualScroller = exports.GridVirtualScroller = /*#__PURE__*/React.forwardRef(function GridVirtualScroller(props, ref) {
43
42
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
44
43
  const classes = useUtilityClasses(rootProps);
@@ -23,7 +23,6 @@ const DATA_GRID_DEFAULT_SLOTS_COMPONENTS = exports.DATA_GRID_DEFAULT_SLOTS_COMPO
23
23
  footer: _components.GridFooter,
24
24
  footerRowCount: _components.GridRowCount,
25
25
  toolbar: null,
26
- preferencesPanel: _components.GridPreferencesPanel,
27
26
  loadingOverlay: _components.GridLoadingOverlay,
28
27
  noResultsOverlay: _GridNoResultsOverlay.GridNoResultsOverlay,
29
28
  noRowsOverlay: _components.GridNoRowsOverlay,
@@ -57,7 +57,7 @@ function hasNativeSelection(element) {
57
57
  * @requires useGridSelection (method)
58
58
  */
59
59
  const useGridClipboard = (apiRef, props) => {
60
- const ignoreValueFormatterProp = props.unstable_ignoreValueFormatterDuringExport;
60
+ const ignoreValueFormatterProp = props.ignoreValueFormatterDuringExport;
61
61
  const ignoreValueFormatter = (typeof ignoreValueFormatterProp === 'object' ? ignoreValueFormatterProp?.clipboardExport : ignoreValueFormatterProp) || false;
62
62
  const clipboardCopyCellDelimiter = props.clipboardCopyCellDelimiter;
63
63
  const handleCopy = React.useCallback(event => {
@@ -90,7 +90,6 @@ const useGridCellEditing = (apiRef, props) => {
90
90
  reason = event.shiftKey ? _gridEditCellParams.GridCellEditStopReasons.shiftTabKeyDown : _gridEditCellParams.GridCellEditStopReasons.tabKeyDown;
91
91
  event.preventDefault(); // Prevent going to the next element in the tab sequence
92
92
  }
93
-
94
93
  if (reason) {
95
94
  const newParams = (0, _extends2.default)({}, params, {
96
95
  reason
@@ -110,7 +109,7 @@ const useGridCellEditing = (apiRef, props) => {
110
109
  if ((0, _keyboardUtils.isPrintableKey)(event)) {
111
110
  reason = _gridEditCellParams.GridCellEditStartReasons.printableKeyDown;
112
111
  } else if ((event.ctrlKey || event.metaKey) && event.key === 'v') {
113
- reason = _gridEditCellParams.GridCellEditStartReasons.printableKeyDown;
112
+ reason = _gridEditCellParams.GridCellEditStartReasons.pasteKeyDown;
114
113
  } else if (event.key === 'Enter') {
115
114
  reason = _gridEditCellParams.GridCellEditStartReasons.enterKeyDown;
116
115
  } else if (event.key === 'Delete' || event.key === 'Backspace') {
@@ -130,24 +129,13 @@ const useGridCellEditing = (apiRef, props) => {
130
129
  const {
131
130
  id,
132
131
  field,
133
- reason,
134
- key,
135
- colDef
132
+ reason
136
133
  } = params;
137
134
  const startCellEditModeParams = {
138
135
  id,
139
136
  field
140
137
  };
141
- if (reason === _gridEditCellParams.GridCellEditStartReasons.printableKeyDown) {
142
- if (React.version.startsWith('17')) {
143
- // In React 17, cleaning the input is enough.
144
- // The sequence of events makes the key pressed by the end-users update the textbox directly.
145
- startCellEditModeParams.deleteValue = true;
146
- } else {
147
- const initialValue = colDef.valueParser ? colDef.valueParser(key) : key;
148
- startCellEditModeParams.initialValue = initialValue;
149
- }
150
- } else if (reason === _gridEditCellParams.GridCellEditStartReasons.deleteKeyDown) {
138
+ if (reason === _gridEditCellParams.GridCellEditStartReasons.printableKeyDown || reason === _gridEditCellParams.GridCellEditStartReasons.deleteKeyDown || reason === _gridEditCellParams.GridCellEditStartReasons.pasteKeyDown) {
151
139
  startCellEditModeParams.deleteValue = true;
152
140
  }
153
141
  apiRef.current.startCellEditMode(startCellEditModeParams);
@@ -195,7 +183,6 @@ const useGridCellEditing = (apiRef, props) => {
195
183
  if (props.cellModesModel && isNewModelDifferentFromProp) {
196
184
  return; // The prop always win
197
185
  }
198
-
199
186
  setCellModesModel(newModel);
200
187
  cellModesModelRef.current = newModel;
201
188
  apiRef.current.publishEvent('cellModesModelChange', newModel);
@@ -257,17 +244,13 @@ const useGridCellEditing = (apiRef, props) => {
257
244
  initialValue
258
245
  } = params;
259
246
  let newValue = apiRef.current.getCellValue(id, field);
260
- // eslint-disable-next-line @typescript-eslint/naming-convention
261
- let unstable_updateValueOnRender = false;
262
247
  if (deleteValue || initialValue) {
263
248
  newValue = deleteValue ? '' : initialValue;
264
- unstable_updateValueOnRender = true;
265
249
  }
266
250
  const newProps = {
267
251
  value: newValue,
268
252
  error: false,
269
- isProcessingProps: false,
270
- unstable_updateValueOnRender
253
+ isProcessingProps: false
271
254
  };
272
255
  updateOrDeleteFieldState(id, field, newProps);
273
256
  apiRef.current.setCellFocus(id, field);
@@ -431,7 +414,9 @@ const useGridCellEditing = (apiRef, props) => {
431
414
  updateCellModesModel(cellModesModelProp);
432
415
  }
433
416
  }, [cellModesModelProp, updateCellModesModel]);
434
- React.useEffect(() => {
417
+
418
+ // Run this effect synchronously so that the keyboard event can impact the yet-to-be-rendered input.
419
+ (0, _utils.unstable_useEnhancedEffect)(() => {
435
420
  const idToIdLookup = (0, _gridRowsSelector.gridRowsDataRowIdToIdLookupSelector)(apiRef);
436
421
 
437
422
  // Update the ref here because updateStateToStopCellEditMode may change it later
@@ -180,7 +180,6 @@ const useGridRowEditing = (apiRef, props) => {
180
180
  const rowParams = apiRef.current.getRowParams(params.id);
181
181
  const newParams = (0, _extends2.default)({}, rowParams, {
182
182
  field: params.field,
183
- key: event.key,
184
183
  reason
185
184
  });
186
185
  apiRef.current.publishEvent('rowEditStart', newParams, event);
@@ -191,24 +190,13 @@ const useGridRowEditing = (apiRef, props) => {
191
190
  const {
192
191
  id,
193
192
  field,
194
- reason,
195
- key,
196
- columns
193
+ reason
197
194
  } = params;
198
195
  const startRowEditModeParams = {
199
196
  id,
200
197
  fieldToFocus: field
201
198
  };
202
- if (reason === _gridRowParams.GridRowEditStartReasons.printableKeyDown) {
203
- if (React.version.startsWith('17')) {
204
- // In React 17, cleaning the input is enough.
205
- // The sequence of events makes the key pressed by the end-users update the textbox directly.
206
- startRowEditModeParams.deleteValue = !!field;
207
- } else {
208
- const colDef = columns.find(col => col.field === field);
209
- startRowEditModeParams.initialValue = colDef.valueParser ? colDef.valueParser(key) : key;
210
- }
211
- } else if (reason === _gridRowParams.GridRowEditStartReasons.deleteKeyDown) {
199
+ if (reason === _gridRowParams.GridRowEditStartReasons.printableKeyDown || reason === _gridRowParams.GridRowEditStartReasons.deleteKeyDown) {
212
200
  startRowEditModeParams.deleteValue = !!field;
213
201
  }
214
202
  apiRef.current.startRowEditMode(startRowEditModeParams);
@@ -260,7 +248,6 @@ const useGridRowEditing = (apiRef, props) => {
260
248
  if (props.rowModesModel && isNewModelDifferentFromProp) {
261
249
  return; // The prop always win
262
250
  }
263
-
264
251
  setRowModesModel(newModel);
265
252
  rowModesModelRef.current = newModel;
266
253
  apiRef.current.publishEvent('rowModesModelChange', newModel);
@@ -331,17 +318,13 @@ const useGridRowEditing = (apiRef, props) => {
331
318
  return acc;
332
319
  }
333
320
  let newValue = apiRef.current.getCellValue(id, field);
334
- // eslint-disable-next-line @typescript-eslint/naming-convention
335
- let unstable_updateValueOnRender = false;
336
321
  if (fieldToFocus === field && (deleteValue || initialValue)) {
337
322
  newValue = deleteValue ? '' : initialValue;
338
- unstable_updateValueOnRender = true;
339
323
  }
340
324
  acc[field] = {
341
325
  value: newValue,
342
326
  error: false,
343
- isProcessingProps: false,
344
- unstable_updateValueOnRender
327
+ isProcessingProps: false
345
328
  };
346
329
  return acc;
347
330
  }, {});
@@ -561,7 +544,9 @@ const useGridRowEditing = (apiRef, props) => {
561
544
  updateRowModesModel(rowModesModelProp);
562
545
  }
563
546
  }, [rowModesModelProp, updateRowModesModel]);
564
- React.useEffect(() => {
547
+
548
+ // Run this effect synchronously so that the keyboard event can impact the yet-to-be-rendered input.
549
+ (0, _utils.unstable_useEnhancedEffect)(() => {
565
550
  const idToIdLookup = (0, _gridRowsSelector.gridRowsDataRowIdToIdLookupSelector)(apiRef);
566
551
 
567
552
  // Update the ref here because updateStateToStopRowEditMode may change it later
@@ -24,7 +24,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
24
24
  */
25
25
  const useGridCsvExport = (apiRef, props) => {
26
26
  const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridCsvExport');
27
- const ignoreValueFormatterProp = props.unstable_ignoreValueFormatterDuringExport;
27
+ const ignoreValueFormatterProp = props.ignoreValueFormatterDuringExport;
28
28
  const ignoreValueFormatter = (typeof ignoreValueFormatterProp === 'object' ? ignoreValueFormatterProp?.csvExport : ignoreValueFormatterProp) || false;
29
29
  const getDataAsCsv = React.useCallback((options = {}) => {
30
30
  logger.debug(`Get data as CSV`);
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.sanitizeFilterModel = exports.removeDiacritics = exports.passFilterLogic = exports.mergeStateWithFilterModel = exports.cleanFilterItem = exports.buildAggregatedFilterApplier = void 0;
7
+ exports.shouldQuickFilterExcludeHiddenColumns = exports.sanitizeFilterModel = exports.removeDiacritics = exports.passFilterLogic = exports.mergeStateWithFilterModel = exports.cleanFilterItem = exports.buildAggregatedFilterApplier = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _models = require("../../../models");
10
10
  var _gridFilterState = require("./gridFilterState");
@@ -184,6 +184,9 @@ const buildAggregatedFilterItemsApplier = (filterModel, apiRef, disableEval) =>
184
184
  filterItemsApplierId += 1;
185
185
  return filterItem;
186
186
  };
187
+ const shouldQuickFilterExcludeHiddenColumns = filterModel => {
188
+ return filterModel.quickFilterExcludeHiddenColumns ?? true;
189
+ };
187
190
 
188
191
  /**
189
192
  * Generates a method to easily check if a row is matching the current quick filter.
@@ -191,13 +194,13 @@ const buildAggregatedFilterItemsApplier = (filterModel, apiRef, disableEval) =>
191
194
  * @param {React.MutableRefObject<GridPrivateApiCommunity>} apiRef The API of the grid.
192
195
  * @returns {GridAggregatedFilterItemApplier | null} A method that checks if a row is matching the current filter model. If `null`, we consider that all the rows are matching the filters.
193
196
  */
197
+ exports.shouldQuickFilterExcludeHiddenColumns = shouldQuickFilterExcludeHiddenColumns;
194
198
  const buildAggregatedQuickFilterApplier = (filterModel, apiRef) => {
195
199
  const quickFilterValues = filterModel.quickFilterValues?.filter(Boolean) ?? [];
196
200
  if (quickFilterValues.length === 0) {
197
201
  return null;
198
202
  }
199
- const quickFilterExcludeHiddenColumns = filterModel.quickFilterExcludeHiddenColumns ?? false;
200
- const columnFields = quickFilterExcludeHiddenColumns ? (0, _columns.gridVisibleColumnFieldsSelector)(apiRef) : (0, _columns.gridColumnFieldsSelector)(apiRef);
203
+ const columnFields = shouldQuickFilterExcludeHiddenColumns(filterModel) ? (0, _columns.gridVisibleColumnFieldsSelector)(apiRef) : (0, _columns.gridColumnFieldsSelector)(apiRef);
201
204
  const appliersPerField = [];
202
205
  const {
203
206
  ignoreDiacritics
@@ -349,7 +349,7 @@ const useGridFilter = (apiRef, props) => {
349
349
  (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'rowExpansionChange', updateVisibleRowsLookupState);
350
350
  (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnVisibilityModelChange', () => {
351
351
  const filterModel = (0, _gridFilterSelector.gridFilterModelSelector)(apiRef);
352
- if (filterModel.quickFilterValues && filterModel.quickFilterExcludeHiddenColumns) {
352
+ if (filterModel.quickFilterValues && (0, _gridFilterUtils.shouldQuickFilterExcludeHiddenColumns)(filterModel)) {
353
353
  // re-apply filters because the quick filter results may have changed
354
354
  apiRef.current.unstable_applyFilters();
355
355
  }
@@ -3,15 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.unstable_gridTabIndexColumnHeaderFilterSelector = exports.unstable_gridTabIndexColumnGroupHeaderSelector = exports.unstable_gridFocusColumnHeaderFilterSelector = exports.unstable_gridFocusColumnGroupHeaderSelector = exports.gridTabIndexStateSelector = exports.gridTabIndexColumnHeaderSelector = exports.gridTabIndexCellSelector = exports.gridFocusStateSelector = exports.gridFocusColumnHeaderSelector = exports.gridFocusCellSelector = void 0;
6
+ exports.unstable_gridTabIndexColumnGroupHeaderSelector = exports.unstable_gridFocusColumnGroupHeaderSelector = exports.gridTabIndexStateSelector = exports.gridTabIndexColumnHeaderSelector = exports.gridTabIndexColumnHeaderFilterSelector = exports.gridTabIndexCellSelector = exports.gridFocusStateSelector = exports.gridFocusColumnHeaderSelector = exports.gridFocusColumnHeaderFilterSelector = exports.gridFocusCellSelector = void 0;
7
7
  var _createSelector = require("../../../utils/createSelector");
8
8
  const gridFocusStateSelector = state => state.focus;
9
9
  exports.gridFocusStateSelector = gridFocusStateSelector;
10
10
  const gridFocusCellSelector = exports.gridFocusCellSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.cell);
11
11
  const gridFocusColumnHeaderSelector = exports.gridFocusColumnHeaderSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.columnHeader);
12
-
13
- // eslint-disable-next-line @typescript-eslint/naming-convention
14
- const unstable_gridFocusColumnHeaderFilterSelector = exports.unstable_gridFocusColumnHeaderFilterSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.columnHeaderFilter);
12
+ const gridFocusColumnHeaderFilterSelector = exports.gridFocusColumnHeaderFilterSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.columnHeaderFilter);
15
13
 
16
14
  // eslint-disable-next-line @typescript-eslint/naming-convention
17
15
  const unstable_gridFocusColumnGroupHeaderSelector = exports.unstable_gridFocusColumnGroupHeaderSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.columnGroupHeader);
@@ -19,9 +17,7 @@ const gridTabIndexStateSelector = state => state.tabIndex;
19
17
  exports.gridTabIndexStateSelector = gridTabIndexStateSelector;
20
18
  const gridTabIndexCellSelector = exports.gridTabIndexCellSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.cell);
21
19
  const gridTabIndexColumnHeaderSelector = exports.gridTabIndexColumnHeaderSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.columnHeader);
22
-
23
- // eslint-disable-next-line @typescript-eslint/naming-convention
24
- const unstable_gridTabIndexColumnHeaderFilterSelector = exports.unstable_gridTabIndexColumnHeaderFilterSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.columnHeaderFilter);
20
+ const gridTabIndexColumnHeaderFilterSelector = exports.gridTabIndexColumnHeaderFilterSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.columnHeaderFilter);
25
21
 
26
22
  // eslint-disable-next-line @typescript-eslint/naming-convention
27
23
  const unstable_gridTabIndexColumnGroupHeaderSelector = exports.unstable_gridTabIndexColumnGroupHeaderSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.columnGroupHeader);
@@ -3,11 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.unstable_gridHeaderFilteringStateSelector = exports.unstable_gridHeaderFilteringMenuSelector = exports.unstable_gridHeaderFilteringEditFieldSelector = void 0;
6
+ exports.gridHeaderFilteringStateSelector = exports.gridHeaderFilteringMenuSelector = exports.gridHeaderFilteringEditFieldSelector = void 0;
7
7
  var _createSelector = require("../../../utils/createSelector");
8
- /* eslint-disable @typescript-eslint/naming-convention */
9
-
10
- const unstable_gridHeaderFilteringStateSelector = state => state.headerFiltering;
11
- exports.unstable_gridHeaderFilteringStateSelector = unstable_gridHeaderFilteringStateSelector;
12
- const unstable_gridHeaderFilteringEditFieldSelector = exports.unstable_gridHeaderFilteringEditFieldSelector = (0, _createSelector.createSelector)(unstable_gridHeaderFilteringStateSelector, headerFilteringState => headerFilteringState.editing);
13
- const unstable_gridHeaderFilteringMenuSelector = exports.unstable_gridHeaderFilteringMenuSelector = (0, _createSelector.createSelector)(unstable_gridHeaderFilteringStateSelector, headerFilteringState => headerFilteringState.menuOpen);
8
+ const gridHeaderFilteringStateSelector = state => state.headerFiltering;
9
+ exports.gridHeaderFilteringStateSelector = gridHeaderFilteringStateSelector;
10
+ const gridHeaderFilteringEditFieldSelector = exports.gridHeaderFilteringEditFieldSelector = (0, _createSelector.createSelector)(gridHeaderFilteringStateSelector, headerFilteringState => headerFilteringState.editing);
11
+ const gridHeaderFilteringMenuSelector = exports.gridHeaderFilteringMenuSelector = (0, _createSelector.createSelector)(gridHeaderFilteringStateSelector, headerFilteringState => headerFilteringState.menuOpen);
@@ -21,6 +21,7 @@ var _focus = require("../focus");
21
21
  var _gridColumnGroupsSelector = require("../columnGrouping/gridColumnGroupsSelector");
22
22
  var _gridHeaderFilteringSelectors = require("../headerFiltering/gridHeaderFilteringSelectors");
23
23
  var _pipeProcessing = require("../../core/pipeProcessing");
24
+ var _domUtils = require("../../../utils/domUtils");
24
25
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
25
26
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
26
27
  function enrichPageRowsWithPinnedRows(apiRef, rows) {
@@ -78,7 +79,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
78
79
  const currentPageRows = React.useMemo(() => enrichPageRowsWithPinnedRows(apiRef, initialCurrentPageRows), [apiRef, initialCurrentPageRows]);
79
80
  const headerFilteringEnabled =
80
81
  // @ts-expect-error // TODO move relevant code to the `DataGridPro`
81
- props.signature !== 'DataGrid' && props.unstable_headerFilters;
82
+ props.signature !== 'DataGrid' && props.headerFilters;
82
83
 
83
84
  /**
84
85
  * @param {number} colIndex Index of the column to focus
@@ -244,8 +245,8 @@ const useGridKeyboardNavigation = (apiRef, props) => {
244
245
  if (!dimensions) {
245
246
  return;
246
247
  }
247
- const isEditing = (0, _gridHeaderFilteringSelectors.unstable_gridHeaderFilteringEditFieldSelector)(apiRef) === params.field;
248
- const isHeaderMenuOpen = (0, _gridHeaderFilteringSelectors.unstable_gridHeaderFilteringMenuSelector)(apiRef) === params.field;
248
+ const isEditing = (0, _gridHeaderFilteringSelectors.gridHeaderFilteringEditFieldSelector)(apiRef) === params.field;
249
+ const isHeaderMenuOpen = (0, _gridHeaderFilteringSelectors.gridHeaderFilteringMenuSelector)(apiRef) === params.field;
249
250
  if (isEditing || isHeaderMenuOpen || !(0, _keyboardUtils.isNavigationKey)(event.key)) {
250
251
  return;
251
252
  }
@@ -421,7 +422,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
421
422
  }, [apiRef, currentPageRows.length, goToHeader, goToGroupHeader, goToCell, getRowIdFromIndex]);
422
423
  const handleCellKeyDown = React.useCallback((params, event) => {
423
424
  // Ignore portal
424
- if (!event.currentTarget.contains(event.target)) {
425
+ if ((0, _domUtils.isEventTargetInPortal)(event)) {
425
426
  return;
426
427
  }
427
428
 
@@ -513,7 +514,9 @@ const useGridKeyboardNavigation = (apiRef, props) => {
513
514
  break;
514
515
  }
515
516
  const colDef = params.colDef;
516
- if (colDef && colDef.type === 'treeDataGroup') {
517
+ if (colDef &&
518
+ // `GRID_TREE_DATA_GROUPING_FIELD` from the Pro package
519
+ colDef.field === '__tree_data_group__') {
517
520
  break;
518
521
  }
519
522
  if (!event.shiftKey && rowIndexBefore < lastRowIndexInPage) {
@@ -21,6 +21,7 @@ var _keyboardUtils = require("../../../utils/keyboardUtils");
21
21
  var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
22
22
  var _gridDetailPanelToggleField = require("../../../constants/gridDetailPanelToggleField");
23
23
  var _gridClasses = require("../../../constants/gridClasses");
24
+ var _domUtils = require("../../../utils/domUtils");
24
25
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
25
26
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
26
27
  const getSelectionModelPropValue = (selectionModelProp, prevSelectionModel) => {
@@ -293,7 +294,7 @@ const useGridRowSelection = (apiRef, props) => {
293
294
 
294
295
  // Ignore portal
295
296
  // Do not apply shortcuts if the focus is not on the cell root component
296
- if (!event.currentTarget.contains(event.target)) {
297
+ if ((0, _domUtils.isEventTargetInPortal)(event)) {
297
298
  return;
298
299
  }
299
300
  if ((0, _keyboardUtils.isNavigationKey)(event.key) && event.shiftKey) {
@@ -77,7 +77,6 @@ const useGridRowsMeta = (apiRef, props) => {
77
77
  needsFirstMeasurement: true // Assume all rows will need to be measured by default
78
78
  };
79
79
  }
80
-
81
80
  const {
82
81
  isResized,
83
82
  needsFirstMeasurement,
@@ -122,7 +122,8 @@ const useGridSorting = (apiRef, props) => {
122
122
  apiRef.current.applySorting();
123
123
  }
124
124
  }, [apiRef, logger, props.disableMultipleColumnsSorting]);
125
- const sortColumn = React.useCallback((column, direction, allowMultipleSorting) => {
125
+ const sortColumn = React.useCallback((field, direction, allowMultipleSorting) => {
126
+ const column = apiRef.current.getColumn(field);
126
127
  if (!column.sortable) {
127
128
  return;
128
129
  }
@@ -203,17 +204,17 @@ const useGridSorting = (apiRef, props) => {
203
204
  * EVENTS
204
205
  */
205
206
  const handleColumnHeaderClick = React.useCallback(({
206
- colDef
207
+ field
207
208
  }, event) => {
208
209
  const allowMultipleSorting = event.shiftKey || event.metaKey || event.ctrlKey;
209
- sortColumn(colDef, undefined, allowMultipleSorting);
210
+ sortColumn(field, undefined, allowMultipleSorting);
210
211
  }, [sortColumn]);
211
212
  const handleColumnHeaderKeyDown = React.useCallback(({
212
- colDef
213
+ field
213
214
  }, event) => {
214
215
  // Ctrl + Enter opens the column menu
215
216
  if ((0, _keyboardUtils.isEnterKey)(event.key) && !event.ctrlKey && !event.metaKey) {
216
- sortColumn(colDef, undefined, event.shiftKey);
217
+ sortColumn(field, undefined, event.shiftKey);
217
218
  }
218
219
  }, [sortColumn]);
219
220
  const handleColumnsChange = React.useCallback(() => {
@@ -561,7 +561,6 @@ const useGridVirtualScroller = props => {
561
561
  if (rootProps.autoHeight && currentPage.rows.length === 0) {
562
562
  size.height = (0, _gridRowsUtils.getMinimalContentHeight)(apiRef, rootProps.rowHeight); // Give room to show the overlay when there no rows.
563
563
  }
564
-
565
564
  return size;
566
565
  }, [apiRef, rootRef, columnsTotalWidth, rowsMeta.currentPageTotalHeight, needsHorizontalScrollbar, rootProps.autoHeight, rootProps.rowHeight, currentPage.rows.length]);
567
566
  React.useEffect(() => {
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.0.0-alpha.2
2
+ * @mui/x-data-grid v7.0.0-alpha.4
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -18,8 +18,8 @@ var _exportNames = {
18
18
  unwrapPrivateAPI: true,
19
19
  useGridClipboard: true,
20
20
  useGridColumnHeaders: true,
21
- unstable_gridHeaderFilteringEditFieldSelector: true,
22
- unstable_gridHeaderFilteringMenuSelector: true,
21
+ gridHeaderFilteringEditFieldSelector: true,
22
+ gridHeaderFilteringMenuSelector: true,
23
23
  useGridColumnMenu: true,
24
24
  columnMenuStateInitializer: true,
25
25
  useGridColumns: true,
@@ -84,6 +84,7 @@ var _exportNames = {
84
84
  unstable_resetCreateSelectorCache: true,
85
85
  findParentElementFromClassName: true,
86
86
  getActiveElement: true,
87
+ isEventTargetInPortal: true,
87
88
  isNavigationKey: true,
88
89
  clamp: true,
89
90
  isDeepEqual: true,
@@ -305,6 +306,18 @@ Object.defineProperty(exports, "gridEditRowsStateSelector", {
305
306
  return _gridEditingSelectors.gridEditRowsStateSelector;
306
307
  }
307
308
  });
309
+ Object.defineProperty(exports, "gridHeaderFilteringEditFieldSelector", {
310
+ enumerable: true,
311
+ get: function () {
312
+ return _gridHeaderFilteringSelectors.gridHeaderFilteringEditFieldSelector;
313
+ }
314
+ });
315
+ Object.defineProperty(exports, "gridHeaderFilteringMenuSelector", {
316
+ enumerable: true,
317
+ get: function () {
318
+ return _gridHeaderFilteringSelectors.gridHeaderFilteringMenuSelector;
319
+ }
320
+ });
308
321
  Object.defineProperty(exports, "gridPinnedRowsSelector", {
309
322
  enumerable: true,
310
323
  get: function () {
@@ -323,6 +336,12 @@ Object.defineProperty(exports, "isDeepEqual", {
323
336
  return _utils2.isDeepEqual;
324
337
  }
325
338
  });
339
+ Object.defineProperty(exports, "isEventTargetInPortal", {
340
+ enumerable: true,
341
+ get: function () {
342
+ return _domUtils.isEventTargetInPortal;
343
+ }
344
+ });
326
345
  Object.defineProperty(exports, "isFunction", {
327
346
  enumerable: true,
328
347
  get: function () {
@@ -401,18 +420,6 @@ Object.defineProperty(exports, "sortingStateInitializer", {
401
420
  return _useGridSorting.sortingStateInitializer;
402
421
  }
403
422
  });
404
- Object.defineProperty(exports, "unstable_gridHeaderFilteringEditFieldSelector", {
405
- enumerable: true,
406
- get: function () {
407
- return _gridHeaderFilteringSelectors.unstable_gridHeaderFilteringEditFieldSelector;
408
- }
409
- });
410
- Object.defineProperty(exports, "unstable_gridHeaderFilteringMenuSelector", {
411
- enumerable: true,
412
- get: function () {
413
- return _gridHeaderFilteringSelectors.unstable_gridHeaderFilteringMenuSelector;
414
- }
415
- });
416
423
  Object.defineProperty(exports, "unstable_resetCreateSelectorCache", {
417
424
  enumerable: true,
418
425
  get: function () {