@mui/x-data-grid 8.0.0-alpha.5 → 8.0.0-alpha.7

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 (264) hide show
  1. package/CHANGELOG.md +206 -1
  2. package/DataGrid/DataGrid.js +4 -3
  3. package/DataGrid/useDataGridComponent.d.ts +1 -1
  4. package/components/GridColumnHeaders.d.ts +1 -1
  5. package/components/GridColumnHeaders.js +4 -4
  6. package/components/GridFooter.d.ts +2 -1
  7. package/components/GridFooter.js +4 -4
  8. package/components/GridLoadingOverlay.d.ts +1 -1
  9. package/components/GridLoadingOverlay.js +10 -8
  10. package/components/GridNoResultsOverlay.d.ts +2 -1
  11. package/components/GridNoResultsOverlay.js +4 -4
  12. package/components/GridNoRowsOverlay.d.ts +2 -1
  13. package/components/GridNoRowsOverlay.js +4 -4
  14. package/components/GridPagination.d.ts +1 -1
  15. package/components/GridPagination.js +5 -3
  16. package/components/GridRow.d.ts +1 -1
  17. package/components/GridRow.js +3 -2
  18. package/components/GridRowCount.d.ts +1 -1
  19. package/components/GridRowCount.js +3 -2
  20. package/components/GridSelectedRowCount.d.ts +4 -1
  21. package/components/GridSelectedRowCount.js +3 -2
  22. package/components/GridSkeletonLoadingOverlay.d.ts +1 -1
  23. package/components/GridSkeletonLoadingOverlay.js +4 -3
  24. package/components/cell/GridActionsCellItem.d.ts +17 -10
  25. package/components/cell/GridActionsCellItem.js +5 -2
  26. package/components/cell/GridCell.d.ts +1 -1
  27. package/components/cell/GridCell.js +3 -2
  28. package/components/cell/GridEditDateCell.js +1 -1
  29. package/components/cell/GridEditInputCell.d.ts +1 -1
  30. package/components/cell/GridEditInputCell.js +73 -4
  31. package/components/cell/GridEditSingleSelectCell.js +2 -2
  32. package/components/cell/GridSkeletonCell.js +1 -2
  33. package/components/columnHeaders/ColumnHeaderMenuIcon.d.ts +1 -1
  34. package/components/columnHeaders/GridBaseColumnHeaders.d.ts +1 -1
  35. package/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  36. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +0 -1
  37. package/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  38. package/components/columnHeaders/GridGenericColumnHeaderItem.d.ts +1 -1
  39. package/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  40. package/components/columnHeaders/GridIconButtonContainer.d.ts +1 -1
  41. package/components/columnHeaders/GridIconButtonContainer.js +5 -3
  42. package/components/columnSelection/GridCellCheckboxRenderer.d.ts +2 -2
  43. package/components/columnSelection/GridCellCheckboxRenderer.js +7 -4
  44. package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  45. package/components/columnSelection/GridHeaderCheckbox.js +11 -5
  46. package/components/columnsManagement/GridColumnsManagement.js +2 -2
  47. package/components/containers/GridFooterContainer.d.ts +1 -1
  48. package/components/containers/GridFooterContainer.js +5 -3
  49. package/components/containers/GridOverlay.d.ts +1 -1
  50. package/components/containers/GridOverlay.js +5 -3
  51. package/components/containers/GridRoot.d.ts +1 -1
  52. package/components/containers/GridRoot.js +5 -3
  53. package/components/containers/GridToolbarContainer.d.ts +1 -1
  54. package/components/containers/GridToolbarContainer.js +3 -2
  55. package/components/menu/columnMenu/GridColumnMenu.d.ts +2 -2
  56. package/components/menu/columnMenu/GridColumnMenu.js +5 -5
  57. package/components/menu/columnMenu/GridColumnMenuContainer.d.ts +1 -1
  58. package/components/menu/columnMenu/GridColumnMenuContainer.js +3 -2
  59. package/components/panel/GridPanel.d.ts +2 -2
  60. package/components/panel/GridPanel.js +3 -2
  61. package/components/panel/GridPanelWrapper.d.ts +1 -1
  62. package/components/panel/GridPanelWrapper.js +5 -3
  63. package/components/panel/filterPanel/GridFilterForm.d.ts +1 -1
  64. package/components/panel/filterPanel/GridFilterForm.js +3 -2
  65. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +1 -1
  66. package/components/panel/filterPanel/GridFilterInputBoolean.js +9 -9
  67. package/components/panel/filterPanel/GridFilterInputValue.js +13 -9
  68. package/components/panel/filterPanel/GridFilterPanel.d.ts +1 -1
  69. package/components/panel/filterPanel/GridFilterPanel.js +4 -4
  70. package/components/panel/filterPanel/index.d.ts +2 -1
  71. package/components/panel/filterPanel/index.js +1 -1
  72. package/components/toolbar/GridToolbar.d.ts +1 -1
  73. package/components/toolbar/GridToolbar.js +4 -4
  74. package/components/toolbar/GridToolbarColumnsButton.d.ts +1 -1
  75. package/components/toolbar/GridToolbarColumnsButton.js +3 -2
  76. package/components/toolbar/GridToolbarDensitySelector.d.ts +1 -1
  77. package/components/toolbar/GridToolbarDensitySelector.js +3 -2
  78. package/components/toolbar/GridToolbarExport.d.ts +1 -1
  79. package/components/toolbar/GridToolbarExport.js +2 -1
  80. package/components/toolbar/GridToolbarExportContainer.d.ts +1 -1
  81. package/components/toolbar/GridToolbarExportContainer.js +3 -2
  82. package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
  83. package/components/toolbar/GridToolbarFilterButton.js +3 -2
  84. package/components/toolbar/GridToolbarQuickFilter.js +2 -2
  85. package/components/virtualization/GridMainContainer.d.ts +3 -1
  86. package/components/virtualization/GridMainContainer.js +3 -2
  87. package/components/virtualization/GridVirtualScrollbar.d.ts +1 -1
  88. package/components/virtualization/GridVirtualScrollbar.js +2 -1
  89. package/components/virtualization/GridVirtualScrollerContent.d.ts +2 -0
  90. package/components/virtualization/GridVirtualScrollerContent.js +5 -5
  91. package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +2 -0
  92. package/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  93. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +9 -2
  94. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +1 -1
  95. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +1 -1
  96. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  97. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +1 -1
  98. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -1
  99. package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.d.ts +1 -1
  100. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +1 -1
  101. package/hooks/core/useGridApiInitialization.d.ts +1 -1
  102. package/hooks/core/useGridApiInitialization.js +2 -2
  103. package/hooks/core/useGridInitialization.d.ts +1 -1
  104. package/hooks/core/useGridIsRtl.d.ts +1 -1
  105. package/hooks/core/useGridLocaleText.d.ts +1 -1
  106. package/hooks/core/useGridLoggerFactory.d.ts +1 -1
  107. package/hooks/core/useGridRefs.d.ts +1 -1
  108. package/hooks/core/useGridStateInitialization.d.ts +1 -1
  109. package/hooks/features/columnResize/useGridColumnResize.d.ts +1 -1
  110. package/hooks/features/columnResize/useGridColumnResize.js +4 -4
  111. package/hooks/features/editing/useGridRowEditing.js +1 -1
  112. package/hooks/features/export/useGridPrintExport.js +1 -1
  113. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
  114. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +2 -2
  115. package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.d.ts +1 -1
  116. package/hooks/features/rows/useGridRowSpanning.js +76 -87
  117. package/hooks/features/rows/useGridRowsPreProcessors.d.ts +1 -1
  118. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +3 -3
  119. package/hooks/features/virtualization/useGridVirtualScroller.js +5 -1
  120. package/hooks/utils/useGridApiEventHandler.js +1 -1
  121. package/hooks/utils/useGridApiMethod.d.ts +1 -1
  122. package/hooks/utils/useGridApiRef.d.ts +1 -1
  123. package/hooks/utils/useGridInitializeState.d.ts +2 -2
  124. package/hooks/utils/useGridLogger.d.ts +1 -1
  125. package/hooks/utils/useGridVisibleRows.d.ts +2 -2
  126. package/index.js +1 -1
  127. package/internals/index.d.ts +1 -1
  128. package/locales/nlNL.js +5 -6
  129. package/material/index.js +6 -0
  130. package/models/api/gridCoreApi.d.ts +7 -7
  131. package/models/api/gridDensityApi.d.ts +1 -1
  132. package/models/gridBaseSlots.d.ts +47 -2
  133. package/models/gridSlotsComponent.d.ts +16 -1
  134. package/models/gridSlotsComponentsProps.d.ts +24 -7
  135. package/models/props/DataGridProps.d.ts +1 -1
  136. package/modern/DataGrid/DataGrid.js +4 -3
  137. package/modern/components/GridColumnHeaders.js +4 -4
  138. package/modern/components/GridFooter.js +4 -4
  139. package/modern/components/GridLoadingOverlay.js +10 -8
  140. package/modern/components/GridNoResultsOverlay.js +4 -4
  141. package/modern/components/GridNoRowsOverlay.js +4 -4
  142. package/modern/components/GridPagination.js +5 -3
  143. package/modern/components/GridRow.js +3 -2
  144. package/modern/components/GridRowCount.js +3 -2
  145. package/modern/components/GridSelectedRowCount.js +3 -2
  146. package/modern/components/GridSkeletonLoadingOverlay.js +4 -3
  147. package/modern/components/cell/GridActionsCellItem.js +5 -2
  148. package/modern/components/cell/GridCell.js +3 -2
  149. package/modern/components/cell/GridEditDateCell.js +1 -1
  150. package/modern/components/cell/GridEditInputCell.js +73 -4
  151. package/modern/components/cell/GridEditSingleSelectCell.js +2 -2
  152. package/modern/components/cell/GridSkeletonCell.js +1 -2
  153. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  154. package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +0 -1
  155. package/modern/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  156. package/modern/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  157. package/modern/components/columnHeaders/GridIconButtonContainer.js +5 -3
  158. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +7 -4
  159. package/modern/components/columnSelection/GridHeaderCheckbox.js +11 -5
  160. package/modern/components/columnsManagement/GridColumnsManagement.js +2 -2
  161. package/modern/components/containers/GridFooterContainer.js +5 -3
  162. package/modern/components/containers/GridOverlay.js +5 -3
  163. package/modern/components/containers/GridRoot.js +5 -3
  164. package/modern/components/containers/GridToolbarContainer.js +3 -2
  165. package/modern/components/menu/columnMenu/GridColumnMenu.js +5 -5
  166. package/modern/components/menu/columnMenu/GridColumnMenuContainer.js +3 -2
  167. package/modern/components/panel/GridPanel.js +3 -2
  168. package/modern/components/panel/GridPanelWrapper.js +5 -3
  169. package/modern/components/panel/filterPanel/GridFilterForm.js +3 -2
  170. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +9 -9
  171. package/modern/components/panel/filterPanel/GridFilterInputValue.js +13 -9
  172. package/modern/components/panel/filterPanel/GridFilterPanel.js +4 -4
  173. package/modern/components/panel/filterPanel/index.js +1 -1
  174. package/modern/components/toolbar/GridToolbar.js +4 -4
  175. package/modern/components/toolbar/GridToolbarColumnsButton.js +3 -2
  176. package/modern/components/toolbar/GridToolbarDensitySelector.js +3 -2
  177. package/modern/components/toolbar/GridToolbarExport.js +2 -1
  178. package/modern/components/toolbar/GridToolbarExportContainer.js +3 -2
  179. package/modern/components/toolbar/GridToolbarFilterButton.js +3 -2
  180. package/modern/components/toolbar/GridToolbarQuickFilter.js +2 -2
  181. package/modern/components/virtualization/GridMainContainer.js +3 -2
  182. package/modern/components/virtualization/GridVirtualScrollbar.js +2 -1
  183. package/modern/components/virtualization/GridVirtualScrollerContent.js +5 -5
  184. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  185. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  186. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -1
  187. package/modern/hooks/core/useGridApiInitialization.js +2 -2
  188. package/modern/hooks/features/columnResize/useGridColumnResize.js +4 -4
  189. package/modern/hooks/features/editing/useGridRowEditing.js +1 -1
  190. package/modern/hooks/features/export/useGridPrintExport.js +1 -1
  191. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +2 -2
  192. package/modern/hooks/features/rows/useGridRowSpanning.js +76 -87
  193. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +5 -1
  194. package/modern/hooks/utils/useGridApiEventHandler.js +1 -1
  195. package/modern/index.js +1 -1
  196. package/modern/locales/nlNL.js +5 -6
  197. package/modern/material/index.js +6 -0
  198. package/modern/utils/utils.js +6 -1
  199. package/node/DataGrid/DataGrid.js +4 -3
  200. package/node/components/GridColumnHeaders.js +4 -4
  201. package/node/components/GridFooter.js +4 -4
  202. package/node/components/GridLoadingOverlay.js +10 -8
  203. package/node/components/GridNoResultsOverlay.js +4 -4
  204. package/node/components/GridNoRowsOverlay.js +4 -4
  205. package/node/components/GridPagination.js +5 -3
  206. package/node/components/GridRow.js +3 -2
  207. package/node/components/GridRowCount.js +3 -2
  208. package/node/components/GridSelectedRowCount.js +3 -2
  209. package/node/components/GridSkeletonLoadingOverlay.js +4 -3
  210. package/node/components/cell/GridActionsCellItem.js +4 -3
  211. package/node/components/cell/GridCell.js +3 -2
  212. package/node/components/cell/GridEditDateCell.js +1 -1
  213. package/node/components/cell/GridEditInputCell.js +73 -4
  214. package/node/components/cell/GridEditSingleSelectCell.js +2 -2
  215. package/node/components/cell/GridSkeletonCell.js +1 -2
  216. package/node/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  217. package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +0 -1
  218. package/node/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  219. package/node/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  220. package/node/components/columnHeaders/GridIconButtonContainer.js +5 -3
  221. package/node/components/columnSelection/GridCellCheckboxRenderer.js +7 -4
  222. package/node/components/columnSelection/GridHeaderCheckbox.js +11 -5
  223. package/node/components/columnsManagement/GridColumnsManagement.js +2 -2
  224. package/node/components/containers/GridFooterContainer.js +5 -3
  225. package/node/components/containers/GridOverlay.js +5 -3
  226. package/node/components/containers/GridRoot.js +5 -3
  227. package/node/components/containers/GridToolbarContainer.js +3 -2
  228. package/node/components/menu/columnMenu/GridColumnMenu.js +5 -5
  229. package/node/components/menu/columnMenu/GridColumnMenuContainer.js +3 -2
  230. package/node/components/panel/GridPanel.js +3 -2
  231. package/node/components/panel/GridPanelWrapper.js +5 -3
  232. package/node/components/panel/filterPanel/GridFilterForm.js +3 -2
  233. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +10 -11
  234. package/node/components/panel/filterPanel/GridFilterInputValue.js +13 -9
  235. package/node/components/panel/filterPanel/GridFilterPanel.js +4 -4
  236. package/node/components/panel/filterPanel/index.js +7 -11
  237. package/node/components/toolbar/GridToolbar.js +4 -4
  238. package/node/components/toolbar/GridToolbarColumnsButton.js +3 -2
  239. package/node/components/toolbar/GridToolbarDensitySelector.js +3 -2
  240. package/node/components/toolbar/GridToolbarExport.js +2 -1
  241. package/node/components/toolbar/GridToolbarExportContainer.js +3 -2
  242. package/node/components/toolbar/GridToolbarFilterButton.js +3 -2
  243. package/node/components/toolbar/GridToolbarQuickFilter.js +2 -2
  244. package/node/components/virtualization/GridMainContainer.js +3 -2
  245. package/node/components/virtualization/GridVirtualScrollbar.js +2 -1
  246. package/node/components/virtualization/GridVirtualScrollerContent.js +5 -5
  247. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  248. package/node/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  249. package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -1
  250. package/node/hooks/core/useGridApiInitialization.js +2 -2
  251. package/node/hooks/features/columnResize/useGridColumnResize.js +4 -4
  252. package/node/hooks/features/editing/useGridRowEditing.js +1 -1
  253. package/node/hooks/features/export/useGridPrintExport.js +1 -1
  254. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +2 -2
  255. package/node/hooks/features/rows/useGridRowSpanning.js +74 -85
  256. package/node/hooks/features/virtualization/useGridVirtualScroller.js +5 -1
  257. package/node/hooks/utils/useGridApiEventHandler.js +1 -1
  258. package/node/index.js +1 -1
  259. package/node/locales/nlNL.js +5 -6
  260. package/node/material/index.js +6 -0
  261. package/node/utils/utils.js +8 -1
  262. package/package.json +2 -2
  263. package/utils/utils.d.ts +1 -0
  264. package/utils/utils.js +6 -1
@@ -4,7 +4,6 @@ const _excluded = ["field", "type", "align", "width", "height", "empty", "style"
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
- import Skeleton from '@mui/material/Skeleton';
8
7
  import { unstable_composeClasses as composeClasses, unstable_capitalize as capitalize } from '@mui/utils';
9
8
  import { fastMemo } from '@mui/x-internals/fastMemo';
10
9
  import { createRandomNumberGenerator } from "../../utils/utils.js";
@@ -82,7 +81,7 @@ function GridSkeletonCell(props) {
82
81
  minWidth: width
83
82
  }, style)
84
83
  }, other, {
85
- children: !empty && /*#__PURE__*/_jsx(Skeleton, _extends({}, skeletonProps))
84
+ children: !empty && /*#__PURE__*/_jsx(rootProps.slots.baseSkeleton, _extends({}, skeletonProps))
86
85
  }));
87
86
  }
88
87
  process.env.NODE_ENV !== "production" ? GridSkeletonCell.propTypes = {
@@ -5,6 +5,7 @@ import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import composeClasses from '@mui/utils/composeClasses';
7
7
  import { styled } from '@mui/system';
8
+ import { forwardRef } from '@mui/x-internals/forwardRef';
8
9
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
9
10
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
10
11
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -27,7 +28,7 @@ const GridColumnHeadersRoot = styled('div', {
27
28
  borderTopLeftRadius: 'var(--unstable_DataGrid-radius)',
28
29
  borderTopRightRadius: 'var(--unstable_DataGrid-radius)'
29
30
  });
30
- export const GridBaseColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnHeaders(props, ref) {
31
+ export const GridBaseColumnHeaders = forwardRef(function GridColumnHeaders(props, ref) {
31
32
  const {
32
33
  className
33
34
  } = props,
@@ -35,10 +36,10 @@ export const GridBaseColumnHeaders = /*#__PURE__*/React.forwardRef(function Grid
35
36
  const rootProps = useGridRootProps();
36
37
  const classes = useUtilityClasses(rootProps);
37
38
  return /*#__PURE__*/_jsx(GridColumnHeadersRoot, _extends({
38
- ref: ref,
39
39
  className: clsx(classes.root, className),
40
40
  ownerState: rootProps
41
41
  }, other, {
42
- role: "presentation"
42
+ role: "presentation",
43
+ ref: ref
43
44
  }));
44
45
  });
@@ -57,7 +57,6 @@ function GridColumnHeaderFilterIconButton(props) {
57
57
  const iconButton = /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
58
58
  id: labelId,
59
59
  onClick: toggleFilter,
60
- color: "default",
61
60
  "aria-label": apiRef.current.getLocaleText('columnHeaderFiltersLabel'),
62
61
  size: "small",
63
62
  tabIndex: -1,
@@ -6,6 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import composeClasses from '@mui/utils/composeClasses';
8
8
  import { styled } from '@mui/system';
9
+ import { forwardRef } from '@mui/x-internals/forwardRef';
9
10
  import { isOverflown } from "../../utils/domUtils.js";
10
11
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
11
12
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
@@ -30,7 +31,7 @@ const GridColumnHeaderTitleRoot = styled('div', {
30
31
  fontWeight: 'var(--unstable_DataGrid-headWeight)',
31
32
  lineHeight: 'normal'
32
33
  });
33
- const ColumnHeaderInnerTitle = /*#__PURE__*/React.forwardRef(function ColumnHeaderInnerTitle(props, ref) {
34
+ const ColumnHeaderInnerTitle = forwardRef(function ColumnHeaderInnerTitle(props, ref) {
34
35
  // Tooltip adds aria-label to the props, which is not needed since the children prop is a string
35
36
  // See https://github.com/mui/mui-x/pull/14482
36
37
  const {
@@ -40,10 +41,11 @@ const ColumnHeaderInnerTitle = /*#__PURE__*/React.forwardRef(function ColumnHead
40
41
  const rootProps = useGridRootProps();
41
42
  const classes = useUtilityClasses(rootProps);
42
43
  return /*#__PURE__*/_jsx(GridColumnHeaderTitleRoot, _extends({
43
- ref: ref,
44
44
  className: clsx(classes.root, className),
45
45
  ownerState: rootProps
46
- }, other));
46
+ }, other, {
47
+ ref: ref
48
+ }));
47
49
  });
48
50
  // No React.memo here as if we display the sort icon, we need to recalculate the isOver
49
51
  function GridColumnHeaderTitle(props) {
@@ -4,12 +4,13 @@ const _excluded = ["classes", "columnMenuOpen", "colIndex", "height", "isResizin
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import { unstable_useForkRef as useForkRef } from '@mui/utils';
7
+ import { forwardRef } from '@mui/x-internals/forwardRef';
7
8
  import { useGridPrivateApiContext } from "../../hooks/utils/useGridPrivateApiContext.js";
8
9
  import { GridColumnHeaderTitle } from "./GridColumnHeaderTitle.js";
9
10
  import { GridColumnHeaderSeparator } from "./GridColumnHeaderSeparator.js";
10
11
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
11
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
- const GridGenericColumnHeaderItem = /*#__PURE__*/React.forwardRef(function GridGenericColumnHeaderItem(props, ref) {
13
+ const GridGenericColumnHeaderItem = forwardRef(function GridGenericColumnHeaderItem(props, ref) {
13
14
  const {
14
15
  classes,
15
16
  colIndex,
@@ -54,7 +55,6 @@ const GridGenericColumnHeaderItem = /*#__PURE__*/React.forwardRef(function GridG
54
55
  }
55
56
  }, [apiRef, hasFocus]);
56
57
  return /*#__PURE__*/_jsxs("div", _extends({
57
- ref: handleRef,
58
58
  className: clsx(classes.root, headerClassName),
59
59
  style: _extends({}, style, {
60
60
  height,
@@ -65,6 +65,7 @@ const GridGenericColumnHeaderItem = /*#__PURE__*/React.forwardRef(function GridG
65
65
  "aria-colindex": colIndex + 1,
66
66
  "aria-sort": ariaSort
67
67
  }, other, {
68
+ ref: handleRef,
68
69
  children: [/*#__PURE__*/_jsxs("div", _extends({
69
70
  className: classes.draggableContainer,
70
71
  draggable: isDraggable,
@@ -5,6 +5,7 @@ import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import composeClasses from '@mui/utils/composeClasses';
7
7
  import { styled } from '@mui/system';
8
+ import { forwardRef } from '@mui/x-internals/forwardRef';
8
9
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
9
10
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
10
11
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -26,7 +27,7 @@ const GridIconButtonContainerRoot = styled('div', {
26
27
  visibility: 'hidden',
27
28
  width: 0
28
29
  }));
29
- export const GridIconButtonContainer = /*#__PURE__*/React.forwardRef(function GridIconButtonContainer(props, ref) {
30
+ export const GridIconButtonContainer = forwardRef(function GridIconButtonContainer(props, ref) {
30
31
  const {
31
32
  className
32
33
  } = props,
@@ -34,8 +35,9 @@ export const GridIconButtonContainer = /*#__PURE__*/React.forwardRef(function Gr
34
35
  const rootProps = useGridRootProps();
35
36
  const classes = useUtilityClasses(rootProps);
36
37
  return /*#__PURE__*/_jsx(GridIconButtonContainerRoot, _extends({
37
- ref: ref,
38
38
  className: clsx(classes.root, className),
39
39
  ownerState: rootProps
40
- }, other));
40
+ }, other, {
41
+ ref: ref
42
+ }));
41
43
  });
@@ -4,6 +4,7 @@ const _excluded = ["field", "id", "formattedValue", "row", "rowNode", "colDef",
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { unstable_composeClasses as composeClasses, unstable_useForkRef as useForkRef } from '@mui/utils';
7
+ import { forwardRef } from '@mui/x-internals/forwardRef';
7
8
  import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js";
8
9
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
9
10
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
@@ -19,7 +20,7 @@ const useUtilityClasses = ownerState => {
19
20
  };
20
21
  return composeClasses(slots, getDataGridUtilityClass, classes);
21
22
  };
22
- const GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCellCheckboxRenderer(props, ref) {
23
+ const GridCellCheckboxForwardRef = forwardRef(function GridCellCheckboxRenderer(props, ref) {
23
24
  const {
24
25
  field,
25
26
  id,
@@ -81,19 +82,21 @@ const GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCe
81
82
  }
82
83
  const label = apiRef.current.getLocaleText(isChecked && !isIndeterminate ? 'checkboxSelectionUnselectRow' : 'checkboxSelectionSelectRow');
83
84
  return /*#__PURE__*/_jsx(rootProps.slots.baseCheckbox, _extends({
84
- ref: handleRef,
85
85
  tabIndex: tabIndex,
86
86
  checked: isChecked && !isIndeterminate,
87
87
  onChange: handleChange,
88
88
  className: classes.root,
89
89
  inputProps: {
90
- 'aria-label': label
90
+ 'aria-label': label,
91
+ name: 'select_row'
91
92
  },
92
93
  onKeyDown: handleKeyDown,
93
94
  indeterminate: isIndeterminate,
94
95
  disabled: !isSelectable,
95
96
  touchRippleRef: rippleRef /* FIXME: typing error */
96
- }, rootProps.slotProps?.baseCheckbox, other));
97
+ }, rootProps.slotProps?.baseCheckbox, other, {
98
+ ref: handleRef
99
+ }));
97
100
  });
98
101
  process.env.NODE_ENV !== "production" ? GridCellCheckboxForwardRef.propTypes = {
99
102
  // ----------------------------- Warning --------------------------------
@@ -4,6 +4,7 @@ const _excluded = ["field", "colDef"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import composeClasses from '@mui/utils/composeClasses';
7
+ import { forwardRef } from '@mui/x-internals/forwardRef';
7
8
  import { isMultipleRowSelectionEnabled } from "../../hooks/features/rowSelection/utils.js";
8
9
  import { useGridSelector } from "../../hooks/utils/useGridSelector.js";
9
10
  import { gridTabIndexColumnHeaderSelector } from "../../hooks/features/focus/gridFocusStateSelector.js";
@@ -23,7 +24,7 @@ const useUtilityClasses = ownerState => {
23
24
  };
24
25
  return composeClasses(slots, getDataGridUtilityClass, classes);
25
26
  };
26
- const GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderCheckbox(props, ref) {
27
+ const GridHeaderCheckbox = forwardRef(function GridHeaderCheckbox(props, ref) {
27
28
  const other = _objectWithoutPropertiesLoose(props, _excluded);
28
29
  const [, forceUpdate] = React.useState(false);
29
30
  const apiRef = useGridApiContext();
@@ -41,13 +42,16 @@ const GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderChec
41
42
  return selection;
42
43
  }
43
44
  return selection.filter(id => {
45
+ if (rootProps.keepNonExistentRowsSelected) {
46
+ return true;
47
+ }
44
48
  // The row might have been deleted
45
49
  if (!apiRef.current.getRow(id)) {
46
50
  return false;
47
51
  }
48
52
  return rootProps.isRowSelectable(apiRef.current.getRowParams(id));
49
53
  });
50
- }, [apiRef, rootProps.isRowSelectable, selection]);
54
+ }, [apiRef, rootProps.isRowSelectable, selection, rootProps.keepNonExistentRowsSelected]);
51
55
 
52
56
  // All the rows that could be selected / unselected by toggling this checkbox
53
57
  const selectionCandidates = React.useMemo(() => {
@@ -97,18 +101,20 @@ const GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderChec
97
101
  }, [apiRef, handleSelectionChange]);
98
102
  const label = apiRef.current.getLocaleText(isChecked && !isIndeterminate ? 'checkboxSelectionUnselectAllRows' : 'checkboxSelectionSelectAllRows');
99
103
  return /*#__PURE__*/_jsx(rootProps.slots.baseCheckbox, _extends({
100
- ref: ref,
101
104
  indeterminate: isIndeterminate,
102
105
  checked: isChecked && !isIndeterminate,
103
106
  onChange: handleChange,
104
107
  className: classes.root,
105
108
  inputProps: {
106
- 'aria-label': label
109
+ 'aria-label': label,
110
+ name: 'select_all_rows'
107
111
  },
108
112
  tabIndex: tabIndex,
109
113
  onKeyDown: handleKeyDown,
110
114
  disabled: !isMultipleRowSelectionEnabled(rootProps)
111
- }, rootProps.slotProps?.baseCheckbox, other));
115
+ }, rootProps.slotProps?.baseCheckbox, other, {
116
+ ref: ref
117
+ }));
112
118
  });
113
119
  process.env.NODE_ENV !== "production" ? GridHeaderCheckbox.propTypes = {
114
120
  // ----------------------------- Warning --------------------------------
@@ -140,11 +140,11 @@ function GridColumnsManagement(props) {
140
140
  endAdornment: /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
141
141
  "aria-label": apiRef.current.getLocaleText('columnsManagementDeleteIconLabel'),
142
142
  size: "small",
143
- sx: [searchValue ? {
143
+ style: searchValue ? {
144
144
  visibility: 'visible'
145
145
  } : {
146
146
  visibility: 'hidden'
147
- }],
147
+ },
148
148
  tabIndex: -1,
149
149
  onClick: handleSearchReset
150
150
  }, rootProps.slotProps?.baseIconButton, {
@@ -6,6 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import composeClasses from '@mui/utils/composeClasses';
8
8
  import { styled } from '@mui/system';
9
+ import { forwardRef } from '@mui/x-internals/forwardRef';
9
10
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
10
11
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -29,7 +30,7 @@ const GridFooterContainerRoot = styled('div', {
29
30
  minHeight: 52,
30
31
  borderTop: '1px solid'
31
32
  });
32
- const GridFooterContainer = /*#__PURE__*/React.forwardRef(function GridFooterContainer(props, ref) {
33
+ const GridFooterContainer = forwardRef(function GridFooterContainer(props, ref) {
33
34
  const {
34
35
  className
35
36
  } = props,
@@ -37,10 +38,11 @@ const GridFooterContainer = /*#__PURE__*/React.forwardRef(function GridFooterCon
37
38
  const rootProps = useGridRootProps();
38
39
  const classes = useUtilityClasses(rootProps);
39
40
  return /*#__PURE__*/_jsx(GridFooterContainerRoot, _extends({
40
- ref: ref,
41
41
  className: clsx(classes.root, className),
42
42
  ownerState: rootProps
43
- }, other));
43
+ }, other, {
44
+ ref: ref
45
+ }));
44
46
  });
45
47
  process.env.NODE_ENV !== "production" ? GridFooterContainer.propTypes = {
46
48
  // ----------------------------- Warning --------------------------------
@@ -6,6 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import composeClasses from '@mui/utils/composeClasses';
8
8
  import { styled } from '@mui/system';
9
+ import { forwardRef } from '@mui/x-internals/forwardRef';
9
10
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
10
11
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -31,7 +32,7 @@ const GridOverlayRoot = styled('div', {
31
32
  justifyContent: 'center',
32
33
  backgroundColor: 'var(--unstable_DataGrid-overlayBackground)'
33
34
  });
34
- const GridOverlay = /*#__PURE__*/React.forwardRef(function GridOverlay(props, ref) {
35
+ const GridOverlay = forwardRef(function GridOverlay(props, ref) {
35
36
  const {
36
37
  className
37
38
  } = props,
@@ -39,10 +40,11 @@ const GridOverlay = /*#__PURE__*/React.forwardRef(function GridOverlay(props, re
39
40
  const rootProps = useGridRootProps();
40
41
  const classes = useUtilityClasses(rootProps);
41
42
  return /*#__PURE__*/_jsx(GridOverlayRoot, _extends({
42
- ref: ref,
43
43
  className: clsx(classes.root, className),
44
44
  ownerState: rootProps
45
- }, other));
45
+ }, other, {
46
+ ref: ref
47
+ }));
46
48
  });
47
49
  process.env.NODE_ENV !== "production" ? GridOverlay.propTypes = {
48
50
  // ----------------------------- Warning --------------------------------
@@ -5,6 +5,7 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { unstable_useForkRef as useForkRef, unstable_useEnhancedEffect as useEnhancedEffect, unstable_capitalize as capitalize, unstable_composeClasses as composeClasses } from '@mui/utils';
8
+ import { forwardRef } from '@mui/x-internals/forwardRef';
8
9
  import { GridRootStyles } from "./GridRootStyles.js";
9
10
  import { useGridSelector } from "../../hooks/utils/useGridSelector.js";
10
11
  import { useGridPrivateApiContext } from "../../hooks/utils/useGridPrivateApiContext.js";
@@ -23,7 +24,7 @@ const useUtilityClasses = (ownerState, density) => {
23
24
  };
24
25
  return composeClasses(slots, getDataGridUtilityClass, classes);
25
26
  };
26
- const GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
27
+ const GridRoot = forwardRef(function GridRoot(props, ref) {
27
28
  const rootProps = useGridRootProps();
28
29
  const {
29
30
  className
@@ -45,10 +46,11 @@ const GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
45
46
  return null;
46
47
  }
47
48
  return /*#__PURE__*/_jsx(GridRootStyles, _extends({
48
- ref: handleRef,
49
49
  className: clsx(classes.root, className),
50
50
  ownerState: ownerState
51
- }, other));
51
+ }, other, {
52
+ ref: handleRef
53
+ }));
52
54
  });
53
55
  process.env.NODE_ENV !== "production" ? GridRoot.propTypes = {
54
56
  // ----------------------------- Warning --------------------------------
@@ -6,6 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { styled } from '@mui/system';
8
8
  import composeClasses from '@mui/utils/composeClasses';
9
+ import { forwardRef } from '@mui/x-internals/forwardRef';
9
10
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
10
11
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -31,7 +32,7 @@ const GridToolbarContainerRoot = styled('div', {
31
32
  gap: theme.spacing(1),
32
33
  padding: theme.spacing(0.5, 0.5, 0)
33
34
  }));
34
- const GridToolbarContainer = /*#__PURE__*/React.forwardRef(function GridToolbarContainer(props, ref) {
35
+ const GridToolbarContainer = forwardRef(function GridToolbarContainer(props, ref) {
35
36
  const {
36
37
  className,
37
38
  children
@@ -43,10 +44,10 @@ const GridToolbarContainer = /*#__PURE__*/React.forwardRef(function GridToolbarC
43
44
  return null;
44
45
  }
45
46
  return /*#__PURE__*/_jsx(GridToolbarContainerRoot, _extends({
46
- ref: ref,
47
47
  className: clsx(classes.root, className),
48
48
  ownerState: rootProps
49
49
  }, other, {
50
+ ref: ref,
50
51
  children: children
51
52
  }));
52
53
  });
@@ -3,6 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["defaultSlots", "defaultSlotProps", "slots", "slotProps"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
+ import { forwardRef } from '@mui/x-internals/forwardRef';
6
7
  import { useGridColumnMenuSlots } from "../../../hooks/features/columnMenu/useGridColumnMenuSlots.js";
7
8
  import { GridColumnMenuContainer } from "./GridColumnMenuContainer.js";
8
9
  import { GridColumnMenuColumnsItem } from "./menuItems/GridColumnMenuColumnsItem.js";
@@ -25,7 +26,7 @@ export const GRID_COLUMN_MENU_SLOT_PROPS = {
25
26
  displayOrder: 30
26
27
  }
27
28
  };
28
- const GridGenericColumnMenu = /*#__PURE__*/React.forwardRef(function GridGenericColumnMenu(props, ref) {
29
+ const GridGenericColumnMenu = forwardRef(function GridGenericColumnMenu(props, ref) {
29
30
  const {
30
31
  defaultSlots,
31
32
  defaultSlotProps,
@@ -39,9 +40,8 @@ const GridGenericColumnMenu = /*#__PURE__*/React.forwardRef(function GridGeneric
39
40
  slots,
40
41
  slotProps
41
42
  }));
42
- return /*#__PURE__*/_jsx(GridColumnMenuContainer, _extends({
43
- ref: ref
44
- }, other, {
43
+ return /*#__PURE__*/_jsx(GridColumnMenuContainer, _extends({}, other, {
44
+ ref: ref,
45
45
  children: orderedSlots.map(([Component, otherProps], index) => /*#__PURE__*/_jsx(Component, _extends({}, otherProps), index))
46
46
  }));
47
47
  });
@@ -77,7 +77,7 @@ process.env.NODE_ENV !== "production" ? GridGenericColumnMenu.propTypes = {
77
77
  */
78
78
  slots: PropTypes.object
79
79
  } : void 0;
80
- const GridColumnMenu = /*#__PURE__*/React.forwardRef(function GridColumnMenu(props, ref) {
80
+ const GridColumnMenu = forwardRef(function GridColumnMenu(props, ref) {
81
81
  return /*#__PURE__*/_jsx(GridGenericColumnMenu, _extends({}, props, {
82
82
  ref: ref,
83
83
  defaultSlots: GRID_COLUMN_MENU_SLOTS,
@@ -6,13 +6,14 @@ import PropTypes from 'prop-types';
6
6
  import * as React from 'react';
7
7
  import MenuList from '@mui/material/MenuList';
8
8
  import { styled } from '@mui/material/styles';
9
+ import { forwardRef } from '@mui/x-internals/forwardRef';
9
10
  import { isHideMenuKey } from "../../../utils/keyboardUtils.js";
10
11
  import { gridClasses } from "../../../constants/gridClasses.js";
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
12
13
  const StyledMenuList = styled(MenuList)(() => ({
13
14
  minWidth: 248
14
15
  }));
15
- const GridColumnMenuContainer = /*#__PURE__*/React.forwardRef(function GridColumnMenuContainer(props, ref) {
16
+ const GridColumnMenuContainer = forwardRef(function GridColumnMenuContainer(props, ref) {
16
17
  const {
17
18
  hideMenu,
18
19
  id,
@@ -32,12 +33,12 @@ const GridColumnMenuContainer = /*#__PURE__*/React.forwardRef(function GridColum
32
33
  }, [hideMenu]);
33
34
  return /*#__PURE__*/_jsx(StyledMenuList, _extends({
34
35
  id: id,
35
- ref: ref,
36
36
  className: clsx(gridClasses.menuList, className),
37
37
  "aria-labelledby": labelledby,
38
38
  onKeyDown: handleListKeyDown,
39
39
  autoFocus: open
40
40
  }, other, {
41
+ ref: ref,
41
42
  children: children
42
43
  }));
43
44
  });
@@ -9,6 +9,7 @@ import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/
9
9
  import ClickAwayListener from '@mui/material/ClickAwayListener';
10
10
  import Paper from '@mui/material/Paper';
11
11
  import Popper from '@mui/material/Popper';
12
+ import { forwardRef } from '@mui/x-internals/forwardRef';
12
13
  import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js";
13
14
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
14
15
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -36,7 +37,7 @@ const GridPaperRoot = styled(Paper, {
36
37
  maxWidth: `calc(100vw - ${theme.spacing(0.5)})`,
37
38
  overflow: 'auto'
38
39
  }));
39
- const GridPanel = /*#__PURE__*/React.forwardRef((props, ref) => {
40
+ const GridPanel = forwardRef((props, ref) => {
40
41
  const {
41
42
  children,
42
43
  className
@@ -82,13 +83,13 @@ const GridPanel = /*#__PURE__*/React.forwardRef((props, ref) => {
82
83
  return null;
83
84
  }
84
85
  return /*#__PURE__*/_jsx(GridPanelRoot, _extends({
85
- ref: ref,
86
86
  placement: "bottom-start",
87
87
  className: clsx(classes.panel, className),
88
88
  ownerState: rootProps,
89
89
  anchorEl: anchorEl,
90
90
  modifiers: modifiers
91
91
  }, other, {
92
+ ref: ref,
92
93
  children: /*#__PURE__*/_jsx(ClickAwayListener, {
93
94
  mouseEvent: "onMouseUp",
94
95
  onClickAway: handleClickAway,
@@ -7,6 +7,7 @@ import clsx from 'clsx';
7
7
  import FocusTrap from '@mui/material/Unstable_TrapFocus';
8
8
  import { styled } from '@mui/material/styles';
9
9
  import composeClasses from '@mui/utils/composeClasses';
10
+ import { forwardRef } from '@mui/x-internals/forwardRef';
10
11
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
11
12
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
12
13
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -32,7 +33,7 @@ const GridPanelWrapperRoot = styled('div', {
32
33
  }
33
34
  });
34
35
  const isEnabled = () => true;
35
- const GridPanelWrapper = /*#__PURE__*/React.forwardRef(function GridPanelWrapper(props, ref) {
36
+ const GridPanelWrapper = forwardRef(function GridPanelWrapper(props, ref) {
36
37
  const {
37
38
  className,
38
39
  slotProps = {}
@@ -46,11 +47,12 @@ const GridPanelWrapper = /*#__PURE__*/React.forwardRef(function GridPanelWrapper
46
47
  isEnabled: isEnabled
47
48
  }, slotProps.TrapFocus, {
48
49
  children: /*#__PURE__*/_jsx(GridPanelWrapperRoot, _extends({
49
- ref: ref,
50
50
  tabIndex: -1,
51
51
  className: clsx(classes.root, className),
52
52
  ownerState: rootProps
53
- }, other))
53
+ }, other, {
54
+ ref: ref
55
+ }))
54
56
  }));
55
57
  });
56
58
  process.env.NODE_ENV !== "production" ? GridPanelWrapper.propTypes = {
@@ -7,6 +7,7 @@ import PropTypes from 'prop-types';
7
7
  import { unstable_composeClasses as composeClasses, unstable_useId as useId, unstable_capitalize as capitalize } from '@mui/utils';
8
8
  import { styled } from '@mui/material/styles';
9
9
  import clsx from 'clsx';
10
+ import { forwardRef } from '@mui/x-internals/forwardRef';
10
11
  import { gridFilterableColumnDefinitionsSelector, gridColumnLookupSelector } from "../../../hooks/features/columns/gridColumnsSelector.js";
11
12
  import { gridFilterModelSelector } from "../../../hooks/features/filter/gridFilterSelector.js";
12
13
  import { useGridSelector } from "../../../hooks/utils/useGridSelector.js";
@@ -90,7 +91,7 @@ const getLogicOperatorLocaleKey = logicOperator => {
90
91
  };
91
92
  const getColumnLabel = col => col.headerName || col.field;
92
93
  const collator = new Intl.Collator();
93
- const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(props, ref) {
94
+ const GridFilterForm = forwardRef(function GridFilterForm(props, ref) {
94
95
  const {
95
96
  item,
96
97
  hasMultipleFilters,
@@ -250,11 +251,11 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
250
251
  }
251
252
  }), [currentOperator]);
252
253
  return /*#__PURE__*/_jsxs(GridFilterFormRoot, _extends({
253
- ref: ref,
254
254
  className: classes.root,
255
255
  "data-id": item.id,
256
256
  ownerState: rootProps
257
257
  }, other, {
258
+ ref: ref,
258
259
  children: [/*#__PURE__*/_jsx(FilterFormDeleteIcon, _extends({
259
260
  as: rootProps.slots.baseFormControl
260
261
  }, baseFormControlProps, deleteIconProps, {
@@ -7,15 +7,6 @@ import { refType, unstable_useId as useId } from '@mui/utils';
7
7
  import { styled } from '@mui/material/styles';
8
8
  import { useGridRootProps } from "../../../hooks/utils/useGridRootProps.js";
9
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
- export const sanitizeFilterItemValue = value => {
11
- if (String(value).toLowerCase() === 'true') {
12
- return true;
13
- }
14
- if (String(value).toLowerCase() === 'false') {
15
- return false;
16
- }
17
- return undefined;
18
- };
19
10
  const BooleanOperatorContainer = styled('div')({
20
11
  display: 'flex',
21
12
  alignItems: 'center',
@@ -94,6 +85,15 @@ function GridFilterInputBoolean(props) {
94
85
  }), clearButton]
95
86
  });
96
87
  }
88
+ export function sanitizeFilterItemValue(value) {
89
+ if (String(value).toLowerCase() === 'true') {
90
+ return true;
91
+ }
92
+ if (String(value).toLowerCase() === 'false') {
93
+ return false;
94
+ }
95
+ return undefined;
96
+ }
97
97
  process.env.NODE_ENV !== "production" ? GridFilterInputBoolean.propTypes = {
98
98
  // ----------------------------- Warning --------------------------------
99
99
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -22,19 +22,17 @@ function GridFilterInputValue(props) {
22
22
  } = props,
23
23
  others = _objectWithoutPropertiesLoose(props, _excluded);
24
24
  const filterTimeout = useTimeout();
25
- const [filterValueState, setFilterValueState] = React.useState(item.value ?? '');
25
+ const [filterValueState, setFilterValueState] = React.useState(sanitizeFilterItemValue(item.value));
26
26
  const [applying, setIsApplying] = React.useState(false);
27
27
  const id = useId();
28
28
  const rootProps = useGridRootProps();
29
29
  const onFilterChange = React.useCallback(event => {
30
- const {
31
- value
32
- } = event.target;
33
- setFilterValueState(String(value));
30
+ const value = sanitizeFilterItemValue(event.target.value);
31
+ setFilterValueState(value);
34
32
  setIsApplying(true);
35
33
  filterTimeout.start(rootProps.filterDebounceMs, () => {
36
34
  const newItem = _extends({}, item, {
37
- value: type === 'number' ? Number(value) : value,
35
+ value: type === 'number' && !Number.isNaN(Number(value)) ? Number(value) : value,
38
36
  fromInput: id
39
37
  });
40
38
  applyValue(newItem);
@@ -43,15 +41,15 @@ function GridFilterInputValue(props) {
43
41
  }, [filterTimeout, rootProps.filterDebounceMs, item, type, id, applyValue]);
44
42
  React.useEffect(() => {
45
43
  const itemPlusTag = item;
46
- if (itemPlusTag.fromInput !== id || item.value === undefined) {
47
- setFilterValueState(String(item.value ?? ''));
44
+ if (itemPlusTag.fromInput !== id || item.value == null) {
45
+ setFilterValueState(sanitizeFilterItemValue(item.value));
48
46
  }
49
47
  }, [id, item]);
50
48
  return /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({
51
49
  id: id,
52
50
  label: apiRef.current.getLocaleText('filterPanelInputLabel'),
53
51
  placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),
54
- value: filterValueState,
52
+ value: filterValueState ?? '',
55
53
  onChange: onFilterChange,
56
54
  variant: variant,
57
55
  type: type || 'text',
@@ -73,6 +71,12 @@ function GridFilterInputValue(props) {
73
71
  inputRef: focusElementRef
74
72
  }, others, rootProps.slotProps?.baseTextField));
75
73
  }
74
+ function sanitizeFilterItemValue(value) {
75
+ if (value == null || value === '') {
76
+ return undefined;
77
+ }
78
+ return String(value);
79
+ }
76
80
  process.env.NODE_ENV !== "production" ? GridFilterInputValue.propTypes = {
77
81
  // ----------------------------- Warning --------------------------------
78
82
  // | These PropTypes are generated from the TypeScript type definitions |