@mui/x-data-grid 6.0.0-beta.5 → 6.0.1

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 (273) hide show
  1. package/CHANGELOG.md +175 -36
  2. package/DataGrid/DataGrid.js +6 -8
  3. package/components/GridColumnHeaders.d.ts +7 -0
  4. package/components/GridColumnHeaders.js +108 -0
  5. package/components/GridFooter.d.ts +1 -1
  6. package/components/GridLoadingOverlay.d.ts +1 -1
  7. package/components/GridNoResultsOverlay.d.ts +1 -1
  8. package/components/GridNoRowsOverlay.d.ts +1 -1
  9. package/components/GridRow.d.ts +13 -7
  10. package/components/GridRow.js +48 -30
  11. package/components/GridRowCount.d.ts +1 -1
  12. package/components/GridRowCount.js +1 -1
  13. package/components/GridScrollArea.js +1 -1
  14. package/components/GridSelectedRowCount.d.ts +1 -1
  15. package/components/GridSelectedRowCount.js +1 -1
  16. package/components/base/GridBody.d.ts +1 -4
  17. package/components/base/GridBody.js +43 -5
  18. package/components/base/GridOverlays.js +1 -1
  19. package/components/cell/GridCell.d.ts +2 -5
  20. package/components/cell/GridCell.js +14 -12
  21. package/components/cell/GridEditInputCell.js +1 -2
  22. package/components/cell/GridEditSingleSelectCell.js +17 -10
  23. package/components/columnHeaders/GridBaseColumnHeaders.d.ts +7 -0
  24. package/{modern/components/columnHeaders/GridColumnHeaders.js → components/columnHeaders/GridBaseColumnHeaders.js} +11 -15
  25. package/components/columnHeaders/GridColumnHeaderTitle.js +4 -6
  26. package/components/columnHeaders/GridColumnHeadersInner.d.ts +1 -1
  27. package/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  28. package/components/columnHeaders/GridIconButtonContainer.js +1 -1
  29. package/components/containers/GridFooterContainer.d.ts +1 -1
  30. package/components/containers/GridFooterContainer.js +7 -10
  31. package/components/containers/GridMainContainer.js +1 -1
  32. package/components/containers/GridOverlay.d.ts +1 -2
  33. package/components/containers/GridOverlay.js +4 -6
  34. package/components/containers/GridRootStyles.js +7 -3
  35. package/components/containers/GridToolbarContainer.d.ts +1 -1
  36. package/components/containers/GridToolbarContainer.js +1 -1
  37. package/components/index.d.ts +1 -1
  38. package/components/index.js +1 -1
  39. package/components/panel/GridColumnsPanel.js +1 -2
  40. package/components/panel/GridPanel.d.ts +1 -1
  41. package/components/panel/GridPanelContent.d.ts +1 -1
  42. package/components/panel/GridPanelContent.js +1 -1
  43. package/components/panel/GridPanelFooter.d.ts +1 -1
  44. package/components/panel/GridPanelFooter.js +1 -1
  45. package/components/panel/GridPanelHeader.d.ts +1 -1
  46. package/components/panel/GridPanelHeader.js +1 -1
  47. package/components/panel/filterPanel/GridFilterForm.js +32 -30
  48. package/components/panel/filterPanel/GridFilterInputBoolean.js +12 -9
  49. package/components/panel/filterPanel/GridFilterInputDate.js +1 -2
  50. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  51. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +30 -13
  52. package/components/panel/filterPanel/GridFilterInputValue.js +1 -2
  53. package/components/panel/filterPanel/GridFilterPanel.d.ts +3 -3
  54. package/components/panel/filterPanel/GridFilterPanel.js +8 -1
  55. package/components/virtualization/GridVirtualScroller.d.ts +1 -1
  56. package/components/virtualization/GridVirtualScroller.js +1 -1
  57. package/components/virtualization/GridVirtualScrollerContent.d.ts +1 -1
  58. package/components/virtualization/GridVirtualScrollerContent.js +1 -1
  59. package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +1 -1
  60. package/components/virtualization/GridVirtualScrollerRenderZone.js +1 -1
  61. package/constants/defaultGridSlotsComponents.js +5 -56
  62. package/constants/gridClasses.d.ts +1 -1
  63. package/hooks/core/useGridLocaleText.js +2 -4
  64. package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +5 -5
  65. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +22 -1
  66. package/hooks/features/columnHeaders/useGridColumnHeaders.js +17 -26
  67. package/hooks/features/columnMenu/columnMenuInterfaces.d.ts +2 -2
  68. package/hooks/features/editing/useGridCellEditing.js +1 -1
  69. package/hooks/features/editing/useGridEditing.js +1 -1
  70. package/hooks/features/editing/useGridRowEditing.js +1 -1
  71. package/hooks/features/export/useGridPrintExport.js +10 -11
  72. package/hooks/features/statePersistence/gridStatePersistenceInterface.d.ts +2 -0
  73. package/hooks/features/virtualization/useGridVirtualScroller.js +35 -18
  74. package/index.d.ts +3 -0
  75. package/index.js +5 -1
  76. package/internals/index.d.ts +2 -1
  77. package/internals/index.js +1 -1
  78. package/legacy/DataGrid/DataGrid.js +6 -8
  79. package/legacy/components/GridColumnHeaders.js +106 -0
  80. package/legacy/components/GridRow.js +46 -30
  81. package/legacy/components/GridRowCount.js +1 -1
  82. package/legacy/components/GridScrollArea.js +1 -1
  83. package/legacy/components/GridSelectedRowCount.js +1 -1
  84. package/legacy/components/base/GridBody.js +43 -5
  85. package/legacy/components/base/GridOverlays.js +1 -1
  86. package/legacy/components/cell/GridCell.js +14 -12
  87. package/legacy/components/cell/GridEditInputCell.js +1 -2
  88. package/legacy/components/cell/GridEditSingleSelectCell.js +17 -12
  89. package/legacy/components/columnHeaders/{GridColumnHeaders.js → GridBaseColumnHeaders.js} +11 -14
  90. package/legacy/components/columnHeaders/GridColumnHeaderTitle.js +6 -9
  91. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  92. package/legacy/components/columnHeaders/GridIconButtonContainer.js +1 -1
  93. package/legacy/components/containers/GridFooterContainer.js +7 -10
  94. package/legacy/components/containers/GridMainContainer.js +1 -1
  95. package/legacy/components/containers/GridOverlay.js +9 -12
  96. package/legacy/components/containers/GridRootStyles.js +7 -3
  97. package/legacy/components/containers/GridToolbarContainer.js +1 -1
  98. package/legacy/components/index.js +1 -1
  99. package/legacy/components/panel/GridColumnsPanel.js +1 -2
  100. package/legacy/components/panel/GridPanelContent.js +1 -1
  101. package/legacy/components/panel/GridPanelFooter.js +1 -1
  102. package/legacy/components/panel/GridPanelHeader.js +1 -1
  103. package/legacy/components/panel/filterPanel/GridFilterForm.js +32 -30
  104. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +12 -9
  105. package/legacy/components/panel/filterPanel/GridFilterInputDate.js +1 -2
  106. package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +2 -2
  107. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +29 -13
  108. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +1 -2
  109. package/legacy/components/panel/filterPanel/GridFilterPanel.js +8 -1
  110. package/legacy/components/virtualization/GridVirtualScroller.js +1 -1
  111. package/legacy/components/virtualization/GridVirtualScrollerContent.js +1 -1
  112. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +1 -1
  113. package/legacy/constants/defaultGridSlotsComponents.js +5 -56
  114. package/legacy/hooks/core/useGridLocaleText.js +2 -4
  115. package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +5 -5
  116. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +17 -26
  117. package/legacy/hooks/features/editing/useGridCellEditing.js +1 -1
  118. package/legacy/hooks/features/editing/useGridEditing.js +1 -1
  119. package/legacy/hooks/features/editing/useGridRowEditing.js +1 -1
  120. package/legacy/hooks/features/export/useGridPrintExport.js +10 -11
  121. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +33 -16
  122. package/legacy/index.js +5 -1
  123. package/legacy/internals/index.js +1 -1
  124. package/legacy/locales/arSD.js +14 -19
  125. package/legacy/locales/csCZ.js +25 -33
  126. package/legacy/locales/esES.js +1 -1
  127. package/legacy/material/components/MUISelectOption.js +14 -0
  128. package/legacy/material/index.js +65 -0
  129. package/legacy/models/gridFilterItem.js +2 -0
  130. package/legacy/models/params/gridRowParams.js +4 -0
  131. package/locales/arSD.js +14 -19
  132. package/locales/csCZ.js +24 -32
  133. package/locales/esES.js +1 -1
  134. package/material/components/MUISelectOption.d.ts +3 -0
  135. package/material/components/MUISelectOption.js +16 -0
  136. package/material/index.d.ts +57 -0
  137. package/material/index.js +65 -0
  138. package/material/package.json +6 -0
  139. package/models/api/gridEditingApi.d.ts +1 -1
  140. package/models/colDef/gridColDef.d.ts +6 -0
  141. package/models/gridExport.d.ts +4 -0
  142. package/models/gridFilterItem.d.ts +2 -0
  143. package/models/gridFilterItem.js +2 -0
  144. package/models/gridFilterModel.d.ts +2 -0
  145. package/models/gridFilterOperator.d.ts +2 -0
  146. package/models/gridIconSlotsComponent.d.ts +10 -0
  147. package/models/gridSlotsComponent.d.ts +15 -0
  148. package/models/gridSlotsComponentsProps.d.ts +104 -24
  149. package/models/params/gridRowParams.d.ts +6 -0
  150. package/models/params/gridRowParams.js +4 -0
  151. package/models/props/DataGridProps.d.ts +6 -6
  152. package/modern/DataGrid/DataGrid.js +6 -8
  153. package/modern/components/GridColumnHeaders.js +108 -0
  154. package/modern/components/GridRow.js +48 -27
  155. package/modern/components/GridRowCount.js +1 -1
  156. package/modern/components/GridScrollArea.js +1 -1
  157. package/modern/components/GridSelectedRowCount.js +1 -1
  158. package/modern/components/base/GridBody.js +43 -5
  159. package/modern/components/base/GridOverlays.js +1 -1
  160. package/modern/components/cell/GridCell.js +14 -12
  161. package/modern/components/cell/GridEditInputCell.js +1 -2
  162. package/modern/components/cell/GridEditSingleSelectCell.js +16 -10
  163. package/{components/columnHeaders/GridColumnHeaders.js → modern/components/columnHeaders/GridBaseColumnHeaders.js} +11 -15
  164. package/modern/components/columnHeaders/GridColumnHeaderTitle.js +4 -6
  165. package/modern/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  166. package/modern/components/columnHeaders/GridIconButtonContainer.js +1 -1
  167. package/modern/components/containers/GridFooterContainer.js +7 -10
  168. package/modern/components/containers/GridMainContainer.js +1 -1
  169. package/modern/components/containers/GridOverlay.js +4 -6
  170. package/modern/components/containers/GridRootStyles.js +7 -3
  171. package/modern/components/containers/GridToolbarContainer.js +1 -1
  172. package/modern/components/index.js +1 -1
  173. package/modern/components/panel/GridColumnsPanel.js +1 -2
  174. package/modern/components/panel/GridPanelContent.js +1 -1
  175. package/modern/components/panel/GridPanelFooter.js +1 -1
  176. package/modern/components/panel/GridPanelHeader.js +1 -1
  177. package/modern/components/panel/filterPanel/GridFilterForm.js +27 -25
  178. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +9 -6
  179. package/modern/components/panel/filterPanel/GridFilterInputDate.js +1 -2
  180. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  181. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +27 -10
  182. package/modern/components/panel/filterPanel/GridFilterInputValue.js +1 -2
  183. package/modern/components/panel/filterPanel/GridFilterPanel.js +8 -1
  184. package/modern/components/virtualization/GridVirtualScroller.js +1 -1
  185. package/modern/components/virtualization/GridVirtualScrollerContent.js +1 -1
  186. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +1 -1
  187. package/modern/constants/defaultGridSlotsComponents.js +5 -56
  188. package/modern/hooks/core/useGridLocaleText.js +2 -4
  189. package/modern/hooks/features/columnGrouping/gridColumnGroupsUtils.js +5 -5
  190. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +17 -26
  191. package/modern/hooks/features/editing/useGridCellEditing.js +1 -1
  192. package/modern/hooks/features/editing/useGridEditing.js +1 -1
  193. package/modern/hooks/features/editing/useGridRowEditing.js +1 -1
  194. package/modern/hooks/features/export/useGridPrintExport.js +10 -11
  195. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +33 -17
  196. package/modern/index.js +5 -1
  197. package/modern/internals/index.js +1 -1
  198. package/modern/locales/arSD.js +14 -19
  199. package/modern/locales/csCZ.js +24 -32
  200. package/modern/locales/esES.js +1 -1
  201. package/modern/material/components/MUISelectOption.js +16 -0
  202. package/modern/material/index.js +65 -0
  203. package/modern/models/gridFilterItem.js +2 -0
  204. package/modern/models/params/gridRowParams.js +4 -0
  205. package/node/DataGrid/DataGrid.js +6 -8
  206. package/node/components/GridColumnHeaders.js +116 -0
  207. package/node/components/GridRow.js +48 -27
  208. package/node/components/GridRowCount.js +2 -2
  209. package/node/components/GridScrollArea.js +2 -2
  210. package/node/components/GridSelectedRowCount.js +2 -2
  211. package/node/components/base/GridBody.js +43 -5
  212. package/node/components/base/GridOverlays.js +3 -3
  213. package/node/components/cell/GridCell.js +14 -11
  214. package/node/components/cell/GridEditInputCell.js +1 -2
  215. package/node/components/cell/GridEditSingleSelectCell.js +15 -10
  216. package/node/components/columnHeaders/{GridColumnHeaders.js → GridBaseColumnHeaders.js} +14 -18
  217. package/node/components/columnHeaders/GridColumnHeaderTitle.js +5 -7
  218. package/node/components/columnHeaders/GridColumnHeadersInner.js +2 -2
  219. package/node/components/columnHeaders/GridIconButtonContainer.js +2 -2
  220. package/node/components/containers/GridFooterContainer.js +8 -11
  221. package/node/components/containers/GridMainContainer.js +2 -2
  222. package/node/components/containers/GridOverlay.js +5 -7
  223. package/node/components/containers/GridRootStyles.js +7 -3
  224. package/node/components/containers/GridToolbarContainer.js +2 -2
  225. package/node/components/index.js +1 -1
  226. package/node/components/panel/GridColumnsPanel.js +1 -2
  227. package/node/components/panel/GridPanelContent.js +2 -2
  228. package/node/components/panel/GridPanelFooter.js +2 -2
  229. package/node/components/panel/GridPanelHeader.js +2 -2
  230. package/node/components/panel/filterPanel/GridFilterForm.js +26 -25
  231. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +9 -6
  232. package/node/components/panel/filterPanel/GridFilterInputDate.js +1 -2
  233. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  234. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +26 -10
  235. package/node/components/panel/filterPanel/GridFilterInputValue.js +1 -2
  236. package/node/components/panel/filterPanel/GridFilterPanel.js +8 -1
  237. package/node/components/virtualization/GridVirtualScroller.js +2 -2
  238. package/node/components/virtualization/GridVirtualScrollerContent.js +2 -2
  239. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -2
  240. package/node/constants/defaultGridSlotsComponents.js +4 -55
  241. package/node/hooks/core/useGridLocaleText.js +2 -4
  242. package/node/hooks/features/columnGrouping/gridColumnGroupsUtils.js +5 -5
  243. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +19 -28
  244. package/node/hooks/features/editing/useGridCellEditing.js +1 -1
  245. package/node/hooks/features/editing/useGridEditing.js +1 -1
  246. package/node/hooks/features/editing/useGridRowEditing.js +1 -1
  247. package/node/hooks/features/export/useGridPrintExport.js +10 -11
  248. package/node/hooks/features/virtualization/useGridVirtualScroller.js +32 -15
  249. package/node/index.js +9 -1
  250. package/node/internals/index.js +4 -4
  251. package/node/locales/arSD.js +14 -19
  252. package/node/locales/csCZ.js +24 -32
  253. package/node/locales/esES.js +1 -1
  254. package/node/{components/DataGridColumnHeaders.js → material/components/MUISelectOption.js} +13 -35
  255. package/node/material/index.js +73 -0
  256. package/node/models/gridFilterItem.js +2 -0
  257. package/node/models/params/gridRowParams.js +4 -0
  258. package/package.json +1 -1
  259. package/components/DataGridColumnHeaders.d.ts +0 -6
  260. package/components/DataGridColumnHeaders.js +0 -38
  261. package/components/columnHeaders/GridColumnHeaders.d.ts +0 -7
  262. package/legacy/components/DataGridColumnHeaders.js +0 -36
  263. package/modern/components/DataGridColumnHeaders.js +0 -38
  264. /package/legacy/{components/columnHeaders → material/icons}/GridColumnUnsortedIcon.js +0 -0
  265. /package/legacy/{components → material}/icons/index.js +0 -0
  266. /package/{components/columnHeaders → material/icons}/GridColumnUnsortedIcon.d.ts +0 -0
  267. /package/{components/columnHeaders → material/icons}/GridColumnUnsortedIcon.js +0 -0
  268. /package/{components → material}/icons/index.d.ts +0 -0
  269. /package/{components → material}/icons/index.js +0 -0
  270. /package/modern/{components/columnHeaders → material/icons}/GridColumnUnsortedIcon.js +0 -0
  271. /package/modern/{components → material}/icons/index.js +0 -0
  272. /package/node/{components/columnHeaders → material/icons}/GridColumnUnsortedIcon.js +0 -0
  273. /package/node/{components → material}/icons/index.js +0 -0
@@ -6,7 +6,6 @@ import { GridContextProvider } from '../context/GridContextProvider';
6
6
  import { useDataGridComponent } from './useDataGridComponent';
7
7
  import { useDataGridProps } from './useDataGridProps';
8
8
  import { DataGridVirtualScroller } from '../components/DataGridVirtualScroller';
9
- import { DataGridColumnHeaders } from '../components/DataGridColumnHeaders';
10
9
  import { jsx as _jsx } from "react/jsx-runtime";
11
10
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
11
  var DataGridRaw = /*#__PURE__*/React.forwardRef(function DataGrid(inProps, ref) {
@@ -21,7 +20,6 @@ var DataGridRaw = /*#__PURE__*/React.forwardRef(function DataGrid(inProps, ref)
21
20
  sx: props.sx,
22
21
  ref: ref,
23
22
  children: [/*#__PURE__*/_jsx(GridHeader, {}), /*#__PURE__*/_jsx(GridBody, {
24
- ColumnHeadersComponent: DataGridColumnHeaders,
25
23
  VirtualScrollerComponent: DataGridVirtualScroller
26
24
  }), /*#__PURE__*/_jsx(GridFooterPlaceholder, {})]
27
25
  })
@@ -104,12 +102,12 @@ DataGridRaw.propTypes = {
104
102
  */
105
103
  columnVisibilityModel: PropTypes.object,
106
104
  /**
107
- * Overrideable components.
105
+ * Overridable components.
108
106
  * @deprecated Use `slots` instead.
109
107
  */
110
108
  components: PropTypes.object,
111
109
  /**
112
- * Overrideable components props dynamically passed to the component at rendering.
110
+ * Overridable components props dynamically passed to the component at rendering.
113
111
  * @deprecated Use the `slotProps` prop instead.
114
112
  */
115
113
  componentsProps: PropTypes.object,
@@ -326,7 +324,7 @@ DataGridRaw.propTypes = {
326
324
  onCellKeyDown: PropTypes.func,
327
325
  /**
328
326
  * Callback fired when the `cellModesModel` prop changes.
329
- * @param {GridCellModesModel} cellModesModel Object containig which cells are in "edit" mode.
327
+ * @param {GridCellModesModel} cellModesModel Object containing which cells are in "edit" mode.
330
328
  * @param {GridCallbackDetails} details Additional details for this callback.
331
329
  */
332
330
  onCellModesModelChange: PropTypes.func,
@@ -472,7 +470,7 @@ DataGridRaw.propTypes = {
472
470
  onRowEditStop: PropTypes.func,
473
471
  /**
474
472
  * Callback fired when the `rowModesModel` prop changes.
475
- * @param {GridRowModesModel} rowModesModel Object containig which rows are in "edit" mode.
473
+ * @param {GridRowModesModel} rowModesModel Object containing which rows are in "edit" mode.
476
474
  * @param {GridCallbackDetails} details Additional details for this callback.
477
475
  */
478
476
  onRowModesModelChange: PropTypes.func,
@@ -586,11 +584,11 @@ DataGridRaw.propTypes = {
586
584
  */
587
585
  showColumnVerticalBorder: PropTypes.bool,
588
586
  /**
589
- * Overrideable components props dynamically passed to the component at rendering.
587
+ * Overridable components props dynamically passed to the component at rendering.
590
588
  */
591
589
  slotProps: PropTypes.object,
592
590
  /**
593
- * Overrideable components.
591
+ * Overridable components.
594
592
  */
595
593
  slots: PropTypes.object,
596
594
  /**
@@ -0,0 +1,106 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ var _excluded = ["innerRef", "className", "visibleColumns", "sortColumnLookup", "filterColumnLookup", "columnPositions", "columnHeaderTabIndexState", "columnGroupHeaderTabIndexState", "columnHeaderFocus", "columnGroupHeaderFocus", "densityFactor", "headerGroupingMaxDepth", "columnMenuState", "columnVisibility", "columnGroupsHeaderStructure", "hasOtherElementInTabSequence"];
4
+ import * as React from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import { useGridColumnHeaders } from '../hooks/features/columnHeaders/useGridColumnHeaders';
7
+ import { GridScrollArea } from './GridScrollArea';
8
+ import { GridBaseColumnHeaders } from './columnHeaders/GridBaseColumnHeaders';
9
+ import { GridColumnHeadersInner } from './columnHeaders/GridColumnHeadersInner';
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ import { jsxs as _jsxs } from "react/jsx-runtime";
12
+ var GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnsHeaders(props, ref) {
13
+ var innerRef = props.innerRef,
14
+ className = props.className,
15
+ visibleColumns = props.visibleColumns,
16
+ sortColumnLookup = props.sortColumnLookup,
17
+ filterColumnLookup = props.filterColumnLookup,
18
+ columnPositions = props.columnPositions,
19
+ columnHeaderTabIndexState = props.columnHeaderTabIndexState,
20
+ columnGroupHeaderTabIndexState = props.columnGroupHeaderTabIndexState,
21
+ columnHeaderFocus = props.columnHeaderFocus,
22
+ columnGroupHeaderFocus = props.columnGroupHeaderFocus,
23
+ densityFactor = props.densityFactor,
24
+ headerGroupingMaxDepth = props.headerGroupingMaxDepth,
25
+ columnMenuState = props.columnMenuState,
26
+ columnVisibility = props.columnVisibility,
27
+ columnGroupsHeaderStructure = props.columnGroupsHeaderStructure,
28
+ hasOtherElementInTabSequence = props.hasOtherElementInTabSequence,
29
+ other = _objectWithoutProperties(props, _excluded);
30
+ var _useGridColumnHeaders = useGridColumnHeaders({
31
+ innerRef: innerRef,
32
+ visibleColumns: visibleColumns,
33
+ sortColumnLookup: sortColumnLookup,
34
+ filterColumnLookup: filterColumnLookup,
35
+ columnPositions: columnPositions,
36
+ columnHeaderTabIndexState: columnHeaderTabIndexState,
37
+ columnGroupHeaderTabIndexState: columnGroupHeaderTabIndexState,
38
+ columnHeaderFocus: columnHeaderFocus,
39
+ columnGroupHeaderFocus: columnGroupHeaderFocus,
40
+ densityFactor: densityFactor,
41
+ headerGroupingMaxDepth: headerGroupingMaxDepth,
42
+ columnMenuState: columnMenuState,
43
+ columnVisibility: columnVisibility,
44
+ columnGroupsHeaderStructure: columnGroupsHeaderStructure,
45
+ hasOtherElementInTabSequence: hasOtherElementInTabSequence
46
+ }),
47
+ isDragging = _useGridColumnHeaders.isDragging,
48
+ getRootProps = _useGridColumnHeaders.getRootProps,
49
+ getInnerProps = _useGridColumnHeaders.getInnerProps,
50
+ getColumnHeaders = _useGridColumnHeaders.getColumnHeaders,
51
+ getColumnGroupHeaders = _useGridColumnHeaders.getColumnGroupHeaders;
52
+ return /*#__PURE__*/_jsxs(GridBaseColumnHeaders, _extends({
53
+ ref: ref
54
+ }, getRootProps(other), {
55
+ children: [/*#__PURE__*/_jsx(GridScrollArea, {
56
+ scrollDirection: "left"
57
+ }), /*#__PURE__*/_jsxs(GridColumnHeadersInner, _extends({
58
+ isDragging: isDragging
59
+ }, getInnerProps(), {
60
+ children: [getColumnGroupHeaders(), getColumnHeaders()]
61
+ })), /*#__PURE__*/_jsx(GridScrollArea, {
62
+ scrollDirection: "right"
63
+ })]
64
+ }));
65
+ });
66
+ process.env.NODE_ENV !== "production" ? GridColumnHeaders.propTypes = {
67
+ // ----------------------------- Warning --------------------------------
68
+ // | These PropTypes are generated from the TypeScript type definitions |
69
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
70
+ // ----------------------------------------------------------------------
71
+ columnGroupHeaderFocus: PropTypes.shape({
72
+ depth: PropTypes.number.isRequired,
73
+ field: PropTypes.string.isRequired
74
+ }),
75
+ columnGroupHeaderTabIndexState: PropTypes.shape({
76
+ depth: PropTypes.number.isRequired,
77
+ field: PropTypes.string.isRequired
78
+ }),
79
+ columnGroupsHeaderStructure: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.shape({
80
+ columnFields: PropTypes.arrayOf(PropTypes.string).isRequired,
81
+ groupId: PropTypes.string
82
+ }))).isRequired,
83
+ columnHeaderFocus: PropTypes.shape({
84
+ field: PropTypes.string.isRequired
85
+ }),
86
+ columnHeaderTabIndexState: PropTypes.shape({
87
+ field: PropTypes.string.isRequired
88
+ }),
89
+ columnMenuState: PropTypes.shape({
90
+ field: PropTypes.string,
91
+ open: PropTypes.bool.isRequired
92
+ }).isRequired,
93
+ columnPositions: PropTypes.arrayOf(PropTypes.number).isRequired,
94
+ columnVisibility: PropTypes.object.isRequired,
95
+ densityFactor: PropTypes.number.isRequired,
96
+ filterColumnLookup: PropTypes.object.isRequired,
97
+ hasOtherElementInTabSequence: PropTypes.bool.isRequired,
98
+ headerGroupingMaxDepth: PropTypes.number.isRequired,
99
+ innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
100
+ current: PropTypes.object
101
+ })]),
102
+ minColumnIndex: PropTypes.number,
103
+ sortColumnLookup: PropTypes.object.isRequired,
104
+ visibleColumns: PropTypes.arrayOf(PropTypes.object).isRequired
105
+ } : void 0;
106
+ export { GridColumnHeaders };
@@ -2,7 +2,7 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
- var _excluded = ["selected", "rowId", "row", "index", "style", "position", "rowHeight", "className", "visibleColumns", "renderedColumns", "containerWidth", "firstColumnToRender", "lastColumnToRender", "cellFocus", "cellTabIndex", "editRowsState", "isLastVisible", "onClick", "onDoubleClick", "onMouseEnter", "onMouseLeave"],
5
+ var _excluded = ["selected", "rowId", "row", "index", "style", "position", "rowHeight", "className", "visibleColumns", "renderedColumns", "containerWidth", "firstColumnToRender", "lastColumnToRender", "isLastVisible", "focusedCell", "tabbableCell", "onClick", "onDoubleClick", "onMouseEnter", "onMouseLeave"],
6
6
  _excluded2 = ["changeReason"];
7
7
  import * as React from 'react';
8
8
  import PropTypes from 'prop-types';
@@ -23,6 +23,7 @@ import { gridSortModelSelector } from '../hooks/features/sorting/gridSortingSele
23
23
  import { gridRowMaximumTreeDepthSelector } from '../hooks/features/rows/gridRowsSelector';
24
24
  import { gridColumnGroupsHeaderMaxDepthSelector } from '../hooks/features/columnGrouping/gridColumnGroupsSelector';
25
25
  import { randomNumberBetween } from '../utils/utils';
26
+ import { gridEditRowsStateSelector } from '../hooks/features/editing/gridEditingSelectors';
26
27
  import { jsx as _jsx } from "react/jsx-runtime";
27
28
  import { jsxs as _jsxs } from "react/jsx-runtime";
28
29
  var useUtilityClasses = function useUtilityClasses(ownerState) {
@@ -65,11 +66,10 @@ var GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
65
66
  containerWidth = props.containerWidth,
66
67
  firstColumnToRender = props.firstColumnToRender,
67
68
  lastColumnToRender = props.lastColumnToRender,
68
- cellFocus = props.cellFocus,
69
- cellTabIndex = props.cellTabIndex,
70
- editRowsState = props.editRowsState,
71
69
  _props$isLastVisible = props.isLastVisible,
72
70
  isLastVisible = _props$isLastVisible === void 0 ? false : _props$isLastVisible,
71
+ focusedCell = props.focusedCell,
72
+ tabbableCell = props.tabbableCell,
73
73
  onClick = props.onClick,
74
74
  onDoubleClick = props.onDoubleClick,
75
75
  onMouseEnter = props.onMouseEnter,
@@ -83,6 +83,7 @@ var GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
83
83
  var sortModel = useGridSelector(apiRef, gridSortModelSelector);
84
84
  var treeDepth = useGridSelector(apiRef, gridRowMaximumTreeDepthSelector);
85
85
  var headerGroupingMaxDepth = useGridSelector(apiRef, gridColumnGroupsHeaderMaxDepthSelector);
86
+ var editRowsState = useGridSelector(apiRef, gridEditRowsStateSelector);
86
87
  var handleRef = useForkRef(ref, refProp);
87
88
  var ariaRowIndex = index + headerGroupingMaxDepth + 2; // 1 for the header row and 1 as it's 1-based
88
89
 
@@ -184,29 +185,33 @@ var GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
184
185
  }
185
186
  publish('rowClick', onClick)(event);
186
187
  }, [apiRef, onClick, publish, rowId]);
188
+ var slots = rootProps.slots,
189
+ slotProps = rootProps.slotProps,
190
+ rootClasses = rootProps.classes,
191
+ disableColumnReorder = rootProps.disableColumnReorder,
192
+ getCellClassName = rootProps.getCellClassName;
193
+ var rowReordering = rootProps.rowReordering;
194
+ var CellComponent = slots.cell;
187
195
  var getCell = React.useCallback(function (column, cellProps) {
188
- var _rootProps$slotProps;
189
196
  var cellParams = apiRef.current.getCellParams(rowId, column.field);
190
197
  var classNames = apiRef.current.unstable_applyPipeProcessors('cellClassName', [], {
191
198
  id: rowId,
192
199
  field: column.field
193
200
  });
194
- var disableDragEvents = rootProps.disableColumnReorder && column.disableReorder || !rootProps.rowReordering && !!sortModel.length && treeDepth > 1 && Object.keys(editRowsState).length > 0;
201
+ var disableDragEvents = disableColumnReorder && column.disableReorder || !rowReordering && !!sortModel.length && treeDepth > 1 && Object.keys(editRowsState).length > 0;
195
202
  if (column.cellClassName) {
196
203
  classNames.push(clsx(typeof column.cellClassName === 'function' ? column.cellClassName(cellParams) : column.cellClassName));
197
204
  }
198
205
  var editCellState = editRowsState[rowId] ? editRowsState[rowId][column.field] : null;
199
206
  var content;
200
207
  if (editCellState == null && column.renderCell) {
201
- var _rootProps$classes;
202
208
  content = column.renderCell(_extends({}, cellParams, {
203
209
  api: apiRef.current
204
210
  }));
205
211
  // TODO move to GridCell
206
- classNames.push(clsx(gridClasses['cell--withRenderer'], (_rootProps$classes = rootProps.classes) == null ? void 0 : _rootProps$classes['cell--withRenderer']));
212
+ classNames.push(clsx(gridClasses['cell--withRenderer'], rootClasses == null ? void 0 : rootClasses['cell--withRenderer']));
207
213
  }
208
214
  if (editCellState != null && column.renderEditCell) {
209
- var _rootProps$classes2;
210
215
  var updatedRow = apiRef.current.getRowWithUpdatedValues(rowId, column.field);
211
216
  var changeReason = editCellState.changeReason,
212
217
  editCellStateRest = _objectWithoutProperties(editCellState, _excluded2);
@@ -217,19 +222,19 @@ var GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
217
222
  });
218
223
  content = column.renderEditCell(params);
219
224
  // TODO move to GridCell
220
- classNames.push(clsx(gridClasses['cell--editing'], (_rootProps$classes2 = rootProps.classes) == null ? void 0 : _rootProps$classes2['cell--editing']));
225
+ classNames.push(clsx(gridClasses['cell--editing'], rootClasses == null ? void 0 : rootClasses['cell--editing']));
221
226
  }
222
- if (rootProps.getCellClassName) {
227
+ if (getCellClassName) {
223
228
  // TODO move to GridCell
224
- classNames.push(rootProps.getCellClassName(cellParams));
229
+ classNames.push(getCellClassName(cellParams));
225
230
  }
226
- var hasFocus = cellFocus !== null && cellFocus.id === rowId && cellFocus.field === column.field;
227
- var tabIndex = cellTabIndex !== null && cellTabIndex.id === rowId && cellTabIndex.field === column.field && cellParams.cellMode === 'view' ? 0 : -1;
231
+ var hasFocus = focusedCell === column.field;
232
+ var tabIndex = tabbableCell === column.field ? 0 : -1;
228
233
  var isSelected = apiRef.current.unstable_applyPipeProcessors('isCellSelected', false, {
229
234
  id: rowId,
230
235
  field: column.field
231
236
  });
232
- return /*#__PURE__*/_jsx(rootProps.slots.cell, _extends({
237
+ return /*#__PURE__*/_jsx(CellComponent, _extends({
233
238
  value: cellParams.value,
234
239
  field: column.field,
235
240
  width: cellProps.width,
@@ -247,10 +252,10 @@ var GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
247
252
  className: clsx(classNames),
248
253
  colSpan: cellProps.colSpan,
249
254
  disableDragEvents: disableDragEvents
250
- }, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.cell, {
255
+ }, slotProps == null ? void 0 : slotProps.cell, {
251
256
  children: content
252
257
  }), column.field);
253
- }, [apiRef, cellTabIndex, editRowsState, cellFocus, rootProps, rowHeight, rowId, treeDepth, sortModel.length]);
258
+ }, [apiRef, rowId, disableColumnReorder, rowReordering, sortModel.length, treeDepth, editRowsState, getCellClassName, focusedCell, tabbableCell, CellComponent, rowHeight, slotProps == null ? void 0 : slotProps.cell, rootClasses]);
254
259
  var sizes = apiRef.current.unstable_getRowInternalSizes(rowId);
255
260
  var minHeight = rowHeight;
256
261
  if (minHeight === 'auto' && sizes) {
@@ -361,24 +366,35 @@ process.env.NODE_ENV !== "production" ? GridRow.propTypes = {
361
366
  // | These PropTypes are generated from the TypeScript type definitions |
362
367
  // | To update them edit the TypeScript types and run "yarn proptypes" |
363
368
  // ----------------------------------------------------------------------
364
- cellFocus: PropTypes.object,
365
- cellTabIndex: PropTypes.object,
366
- containerWidth: PropTypes.number.isRequired,
367
- editRowsState: PropTypes.object.isRequired,
368
- firstColumnToRender: PropTypes.number.isRequired,
369
+ containerWidth: PropTypes.number,
370
+ firstColumnToRender: PropTypes.number,
371
+ /**
372
+ * Determines which cell has focus.
373
+ * If `null`, no cell in this row has focus.
374
+ */
375
+ focusedCell: PropTypes.string,
369
376
  /**
370
377
  * Index of the row in the whole sorted and filtered dataset.
371
378
  * If some rows above have expanded children, this index also take those children into account.
372
379
  */
373
- index: PropTypes.number.isRequired,
380
+ index: PropTypes.number,
374
381
  isLastVisible: PropTypes.bool,
375
- lastColumnToRender: PropTypes.number.isRequired,
376
- position: PropTypes.oneOf(['center', 'left', 'right']).isRequired,
377
- renderedColumns: PropTypes.arrayOf(PropTypes.object).isRequired,
382
+ lastColumnToRender: PropTypes.number,
383
+ onClick: PropTypes.func,
384
+ onDoubleClick: PropTypes.func,
385
+ onMouseEnter: PropTypes.func,
386
+ onMouseLeave: PropTypes.func,
387
+ position: PropTypes.oneOf(['center', 'left', 'right']),
388
+ renderedColumns: PropTypes.arrayOf(PropTypes.object),
378
389
  row: PropTypes.object,
379
- rowHeight: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]).isRequired,
380
- rowId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
381
- selected: PropTypes.bool.isRequired,
382
- visibleColumns: PropTypes.arrayOf(PropTypes.object).isRequired
390
+ rowHeight: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),
391
+ rowId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
392
+ selected: PropTypes.bool,
393
+ /**
394
+ * Determines which cell should be tabbable by having tabIndex=0.
395
+ * If `null`, no cell in this row is in the tab sequence.
396
+ */
397
+ tabbableCell: PropTypes.string,
398
+ visibleColumns: PropTypes.arrayOf(PropTypes.object)
383
399
  } : void 0;
384
400
  export { GridRow };
@@ -5,7 +5,7 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
8
- import { styled } from '@mui/material/styles';
8
+ import { styled } from '@mui/system';
9
9
  import { useGridApiContext } from '../hooks/utils/useGridApiContext';
10
10
  import { getDataGridUtilityClass } from '../constants/gridClasses';
11
11
  import { useGridRootProps } from '../hooks/utils/useGridRootProps';
@@ -5,7 +5,7 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
8
- import { styled } from '@mui/material/styles';
8
+ import { styled } from '@mui/system';
9
9
  import { useGridApiEventHandler } from '../hooks/utils/useGridApiEventHandler';
10
10
  import { useGridApiContext } from '../hooks/utils/useGridApiContext';
11
11
  import { getDataGridUtilityClass, gridClasses } from '../constants/gridClasses';
@@ -6,7 +6,7 @@ import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import clsx from 'clsx';
8
8
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
9
- import { styled } from '@mui/material/styles';
9
+ import { styled } from '@mui/system';
10
10
  import { useGridApiContext } from '../hooks/utils/useGridApiContext';
11
11
  import { getDataGridUtilityClass } from '../constants/gridClasses';
12
12
  import { useGridRootProps } from '../hooks/utils/useGridRootProps';
@@ -1,18 +1,42 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
1
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
3
  import * as React from 'react';
3
4
  import PropTypes from 'prop-types';
4
5
  import { useGridPrivateApiContext } from '../../hooks/utils/useGridPrivateApiContext';
6
+ import { useGridSelector } from '../../hooks/utils/useGridSelector';
5
7
  import { GridMainContainer } from '../containers/GridMainContainer';
6
8
  import { GridAutoSizer } from '../GridAutoSizer';
7
9
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
10
+ import { gridColumnPositionsSelector, gridColumnVisibilityModelSelector, gridVisibleColumnDefinitionsSelector } from '../../hooks/features/columns/gridColumnsSelector';
11
+ import { gridFilterActiveItemsLookupSelector } from '../../hooks/features/filter/gridFilterSelector';
12
+ import { gridSortColumnLookupSelector } from '../../hooks/features/sorting/gridSortingSelector';
13
+ import { gridTabIndexColumnHeaderSelector, gridTabIndexCellSelector, gridFocusColumnHeaderSelector, unstable_gridTabIndexColumnGroupHeaderSelector, unstable_gridFocusColumnGroupHeaderSelector } from '../../hooks/features/focus/gridFocusStateSelector';
14
+ import { gridDensityFactorSelector } from '../../hooks/features/density/densitySelector';
15
+ import { gridColumnGroupsHeaderMaxDepthSelector, gridColumnGroupsHeaderStructureSelector } from '../../hooks/features/columnGrouping/gridColumnGroupsSelector';
16
+ import { gridColumnMenuSelector } from '../../hooks/features/columnMenu/columnMenuSelector';
8
17
  import { jsx as _jsx } from "react/jsx-runtime";
9
18
  import { jsxs as _jsxs } from "react/jsx-runtime";
10
19
  function GridBody(props) {
11
20
  var children = props.children,
12
21
  VirtualScrollerComponent = props.VirtualScrollerComponent,
13
- ColumnHeadersComponent = props.ColumnHeadersComponent;
22
+ ColumnHeadersProps = props.ColumnHeadersProps;
14
23
  var apiRef = useGridPrivateApiContext();
15
24
  var rootProps = useGridRootProps();
25
+ var visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
26
+ var filterColumnLookup = useGridSelector(apiRef, gridFilterActiveItemsLookupSelector);
27
+ var sortColumnLookup = useGridSelector(apiRef, gridSortColumnLookupSelector);
28
+ var columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);
29
+ var columnHeaderTabIndexState = useGridSelector(apiRef, gridTabIndexColumnHeaderSelector);
30
+ var cellTabIndexState = useGridSelector(apiRef, gridTabIndexCellSelector);
31
+ var columnGroupHeaderTabIndexState = useGridSelector(apiRef, unstable_gridTabIndexColumnGroupHeaderSelector);
32
+ var columnHeaderFocus = useGridSelector(apiRef, gridFocusColumnHeaderSelector);
33
+ var columnGroupHeaderFocus = useGridSelector(apiRef, unstable_gridFocusColumnGroupHeaderSelector);
34
+ var densityFactor = useGridSelector(apiRef, gridDensityFactorSelector);
35
+ var headerGroupingMaxDepth = useGridSelector(apiRef, gridColumnGroupsHeaderMaxDepthSelector);
36
+ var columnMenuState = useGridSelector(apiRef, gridColumnMenuSelector);
37
+ var columnVisibility = useGridSelector(apiRef, gridColumnVisibilityModelSelector);
38
+ var columnGroupsHeaderStructure = useGridSelector(apiRef, gridColumnGroupsHeaderStructureSelector);
39
+ var hasOtherElementInTabSequence = !(columnGroupHeaderTabIndexState === null && columnHeaderTabIndexState === null && cellTabIndexState === null);
16
40
  var _React$useState = React.useState(rootProps.disableVirtualization),
17
41
  _React$useState2 = _slicedToArray(_React$useState, 2),
18
42
  isVirtualizationDisabled = _React$useState2[0],
@@ -47,10 +71,24 @@ function GridBody(props) {
47
71
  apiRef.current.publishEvent('resize', size);
48
72
  }, [apiRef]);
49
73
  return /*#__PURE__*/_jsxs(GridMainContainer, {
50
- children: [/*#__PURE__*/_jsx(ColumnHeadersComponent, {
74
+ children: [/*#__PURE__*/_jsx(rootProps.slots.columnHeaders, _extends({
51
75
  ref: columnsContainerRef,
52
- innerRef: columnHeadersRef
53
- }), /*#__PURE__*/_jsx(GridAutoSizer, {
76
+ innerRef: columnHeadersRef,
77
+ visibleColumns: visibleColumns,
78
+ filterColumnLookup: filterColumnLookup,
79
+ sortColumnLookup: sortColumnLookup,
80
+ columnPositions: columnPositions,
81
+ columnHeaderTabIndexState: columnHeaderTabIndexState,
82
+ columnGroupHeaderTabIndexState: columnGroupHeaderTabIndexState,
83
+ columnHeaderFocus: columnHeaderFocus,
84
+ columnGroupHeaderFocus: columnGroupHeaderFocus,
85
+ densityFactor: densityFactor,
86
+ headerGroupingMaxDepth: headerGroupingMaxDepth,
87
+ columnMenuState: columnMenuState,
88
+ columnVisibility: columnVisibility,
89
+ columnGroupsHeaderStructure: columnGroupsHeaderStructure,
90
+ hasOtherElementInTabSequence: hasOtherElementInTabSequence
91
+ }, ColumnHeadersProps)), /*#__PURE__*/_jsx(GridAutoSizer, {
54
92
  nonce: rootProps.nonce,
55
93
  disableHeight: rootProps.autoHeight,
56
94
  onResize: handleResize,
@@ -67,7 +105,7 @@ process.env.NODE_ENV !== "production" ? GridBody.propTypes = {
67
105
  // | To update them edit the TypeScript types and run "yarn proptypes" |
68
106
  // ----------------------------------------------------------------------
69
107
  children: PropTypes.node,
70
- ColumnHeadersComponent: PropTypes.elementType.isRequired,
108
+ ColumnHeadersProps: PropTypes.object,
71
109
  VirtualScrollerComponent: PropTypes.elementType.isRequired
72
110
  } : void 0;
73
111
  export { GridBody };
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
3
  import * as React from 'react';
4
- import { styled } from '@mui/material/styles';
4
+ import { styled } from '@mui/system';
5
5
  import { unstable_composeClasses as composeClasses, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
6
6
  import clsx from 'clsx';
7
7
  import { useGridSelector } from '../../hooks/utils/useGridSelector';
@@ -5,7 +5,7 @@ var _excluded = ["align", "children", "colIndex", "colDef", "cellMode", "field",
5
5
  import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import clsx from 'clsx';
8
- import { unstable_composeClasses as composeClasses, unstable_ownerDocument as ownerDocument, unstable_capitalize as capitalize } from '@mui/utils';
8
+ import { unstable_useForkRef as useForkRef, unstable_composeClasses as composeClasses, unstable_ownerDocument as ownerDocument, unstable_capitalize as capitalize } from '@mui/utils';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { GridCellModes } from '../../models';
11
11
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
@@ -38,7 +38,7 @@ var useUtilityClasses = function useUtilityClasses(ownerState) {
38
38
  return composeClasses(slots, getDataGridUtilityClass, classes);
39
39
  };
40
40
  var warnedOnce = false;
41
- function GridCell(props) {
41
+ var GridCell = /*#__PURE__*/React.forwardRef(function (props, ref) {
42
42
  var _rootProps$experiment;
43
43
  var align = props.align,
44
44
  children = props.children,
@@ -73,6 +73,7 @@ function GridCell(props) {
73
73
  other = _objectWithoutProperties(props, _excluded);
74
74
  var valueToRender = formattedValue == null ? value : formattedValue;
75
75
  var cellRef = React.useRef(null);
76
+ var handleRef = useForkRef(ref, cellRef);
76
77
  var focusElementRef = React.useRef(null);
77
78
  var apiRef = useGridApiContext();
78
79
  var rootProps = useGridRootProps();
@@ -180,7 +181,7 @@ function GridCell(props) {
180
181
  onDragOver: publish('cellDragOver', onDragOver)
181
182
  };
182
183
  return /*#__PURE__*/_jsx("div", _extends({
183
- ref: cellRef,
184
+ ref: handleRef,
184
185
  className: clsx(className, classes.root),
185
186
  role: "cell",
186
187
  "data-field": field,
@@ -200,23 +201,24 @@ function GridCell(props) {
200
201
  onFocus: handleFocus,
201
202
  children: renderChildren()
202
203
  }));
203
- }
204
+ });
205
+ var MemoizedCell = /*#__PURE__*/React.memo(GridCell);
204
206
  process.env.NODE_ENV !== "production" ? GridCell.propTypes = {
205
207
  // ----------------------------- Warning --------------------------------
206
208
  // | These PropTypes are generated from the TypeScript type definitions |
207
209
  // | To update them edit the TypeScript types and run "yarn proptypes" |
208
210
  // ----------------------------------------------------------------------
209
- align: PropTypes.oneOf(['center', 'left', 'right']).isRequired,
211
+ align: PropTypes.oneOf(['center', 'left', 'right']),
210
212
  cellMode: PropTypes.oneOf(['edit', 'view']),
211
213
  children: PropTypes.node,
212
214
  className: PropTypes.string,
213
- colIndex: PropTypes.number.isRequired,
215
+ colIndex: PropTypes.number,
214
216
  colSpan: PropTypes.number,
215
217
  disableDragEvents: PropTypes.bool,
216
- field: PropTypes.string.isRequired,
218
+ field: PropTypes.string,
217
219
  formattedValue: PropTypes.any,
218
220
  hasFocus: PropTypes.bool,
219
- height: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]).isRequired,
221
+ height: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),
220
222
  isEditable: PropTypes.bool,
221
223
  isSelected: PropTypes.bool,
222
224
  onClick: PropTypes.func,
@@ -226,10 +228,10 @@ process.env.NODE_ENV !== "production" ? GridCell.propTypes = {
226
228
  onKeyDown: PropTypes.func,
227
229
  onMouseDown: PropTypes.func,
228
230
  onMouseUp: PropTypes.func,
229
- rowId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
231
+ rowId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
230
232
  showRightBorder: PropTypes.bool,
231
- tabIndex: PropTypes.oneOf([-1, 0]).isRequired,
233
+ tabIndex: PropTypes.oneOf([-1, 0]),
232
234
  value: PropTypes.any,
233
- width: PropTypes.number.isRequired
235
+ width: PropTypes.number
234
236
  } : void 0;
235
- export { GridCell };
237
+ export { MemoizedCell as GridCell };
@@ -11,7 +11,6 @@ import { styled } from '@mui/material/styles';
11
11
  import InputBase from '@mui/material/InputBase';
12
12
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
13
13
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
14
- import { GridLoadIcon } from '../icons/index';
15
14
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
16
15
  import { jsx as _jsx } from "react/jsx-runtime";
17
16
  var useUtilityClasses = function useUtilityClasses(ownerState) {
@@ -123,7 +122,7 @@ var GridEditInputCell = /*#__PURE__*/React.forwardRef(function (props, ref) {
123
122
  type: colDef.type === 'number' ? colDef.type : 'text',
124
123
  value: valueState != null ? valueState : '',
125
124
  onChange: handleChange,
126
- endAdornment: isProcessingProps ? /*#__PURE__*/_jsx(GridLoadIcon, {}) : undefined
125
+ endAdornment: isProcessingProps ? /*#__PURE__*/_jsx(rootProps.slots.loadIcon, {}) : undefined
127
126
  }, other));
128
127
  });
129
128
  process.env.NODE_ENV !== "production" ? GridEditInputCell.propTypes = {
@@ -2,17 +2,18 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
3
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
- var _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "className", "hasFocus", "isValidating", "isProcessingProps", "error", "onValueChange", "initialOpen", "getOptionLabel", "getOptionValue"];
5
+ var _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "className", "hasFocus", "isValidating", "isProcessingProps", "error", "onValueChange", "initialOpen", "getOptionLabel", "getOptionValue"],
6
+ _excluded2 = ["MenuProps"];
6
7
  import _regeneratorRuntime from "@babel/runtime/regenerator";
7
8
  import * as React from 'react';
8
9
  import PropTypes from 'prop-types';
9
10
  import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
10
- import MenuItem from '@mui/material/MenuItem';
11
11
  import { isEscapeKey } from '../../utils/keyboardUtils';
12
12
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
13
13
  import { GridEditModes } from '../../models/gridEditRowModel';
14
14
  import { getValueFromValueOptions, isSingleSelectColDef } from '../panel/filterPanel/filterPanelUtils';
15
15
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
16
+ import { createElement as _createElement } from "react";
16
17
  import { jsx as _jsx } from "react/jsx-runtime";
17
18
  function isKeyboardEvent(event) {
18
19
  return !!event.key;
@@ -51,6 +52,9 @@ function GridEditSingleSelectCell(props) {
51
52
  setOpen = _React$useState2[1];
52
53
  var baseSelectProps = ((_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseSelect) || {};
53
54
  var isSelectNative = (_baseSelectProps$nati = baseSelectProps.native) != null ? _baseSelectProps$nati : false;
55
+ var _ref = ((_rootProps$slotProps2 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps2.baseSelect) || {},
56
+ MenuProps = _ref.MenuProps,
57
+ otherBaseSelectProps = _objectWithoutProperties(_ref, _excluded2);
54
58
  useEnhancedEffect(function () {
55
59
  if (hasFocus) {
56
60
  var _inputRef$current;
@@ -76,7 +80,7 @@ function GridEditSingleSelectCell(props) {
76
80
  var getOptionValue = getOptionValueProp || colDef.getOptionValue;
77
81
  var getOptionLabel = getOptionLabelProp || colDef.getOptionLabel;
78
82
  var handleChange = /*#__PURE__*/function () {
79
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(event) {
83
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(event) {
80
84
  var target, formattedTargetValue;
81
85
  return _regeneratorRuntime.wrap(function _callee$(_context) {
82
86
  while (1) {
@@ -112,7 +116,7 @@ function GridEditSingleSelectCell(props) {
112
116
  }, _callee);
113
117
  }));
114
118
  return function handleChange(_x) {
115
- return _ref.apply(this, arguments);
119
+ return _ref2.apply(this, arguments);
116
120
  };
117
121
  }();
118
122
  var handleClose = function handleClose(event, reason) {
@@ -134,7 +138,6 @@ function GridEditSingleSelectCell(props) {
134
138
  }
135
139
  setOpen(true);
136
140
  };
137
- var OptionComponent = isSelectNative ? 'option' : MenuItem;
138
141
  if (!valueOptions || !colDef) {
139
142
  return null;
140
143
  }
@@ -145,19 +148,21 @@ function GridEditSingleSelectCell(props) {
145
148
  onChange: handleChange,
146
149
  open: open,
147
150
  onOpen: handleOpen,
148
- MenuProps: {
151
+ MenuProps: _extends({
149
152
  onClose: handleClose
150
- },
153
+ }, MenuProps),
151
154
  error: error,
152
155
  native: isSelectNative,
153
156
  fullWidth: true
154
- }, other, (_rootProps$slotProps2 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps2.baseSelect, {
157
+ }, other, otherBaseSelectProps, {
155
158
  children: valueOptions.map(function (valueOption) {
159
+ var _rootProps$slotProps3;
156
160
  var value = getOptionValue(valueOption);
157
- return /*#__PURE__*/_jsx(OptionComponent, {
158
- value: value,
159
- children: getOptionLabel(valueOption)
160
- }, value);
161
+ return /*#__PURE__*/_createElement(rootProps.slots.baseSelectOption, _extends({}, ((_rootProps$slotProps3 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps3.baseSelectOption) || {}, {
162
+ native: isSelectNative,
163
+ key: value,
164
+ value: value
165
+ }), getOptionLabel(valueOption));
161
166
  })
162
167
  }));
163
168
  }