@mui/x-data-grid 5.15.2 → 5.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/CHANGELOG.md +177 -2
  2. package/DataGrid/DataGrid.js +3 -1
  3. package/DataGrid/useDataGridComponent.js +5 -0
  4. package/README.md +2 -1
  5. package/components/DataGridColumnHeaders.js +4 -3
  6. package/components/ErrorBoundary.d.ts +1 -0
  7. package/components/GridAutoSizer.js +7 -0
  8. package/components/GridRow.d.ts +2 -1
  9. package/components/GridRow.js +136 -85
  10. package/components/base/GridBody.js +8 -5
  11. package/components/base/GridOverlays.js +4 -7
  12. package/components/cell/GridActionsCellItem.d.ts +2 -2
  13. package/components/cell/GridBooleanCell.js +2 -1
  14. package/components/cell/GridEditBooleanCell.js +2 -1
  15. package/components/cell/GridEditDateCell.js +3 -2
  16. package/components/cell/GridEditInputCell.js +2 -1
  17. package/components/cell/GridEditSingleSelectCell.js +11 -2
  18. package/components/cell/GridSkeletonCell.d.ts +12 -0
  19. package/components/cell/GridSkeletonCell.js +60 -0
  20. package/components/cell/index.d.ts +1 -0
  21. package/components/cell/index.js +2 -1
  22. package/components/columnHeaders/GridColumnGroupHeader.d.ts +14 -0
  23. package/components/columnHeaders/GridColumnGroupHeader.js +122 -0
  24. package/components/columnHeaders/GridColumnHeaderItem.js +55 -71
  25. package/components/columnHeaders/GridColumnHeadersInner.js +2 -1
  26. package/components/columnHeaders/GridGenericColumnHeaderItem.d.ts +32 -0
  27. package/components/columnHeaders/GridGenericColumnHeaderItem.js +104 -0
  28. package/components/columnSelection/GridCellCheckboxRenderer.js +2 -1
  29. package/components/containers/GridOverlay.js +7 -1
  30. package/components/containers/GridRoot.js +3 -3
  31. package/components/containers/GridRootStyles.js +16 -2
  32. package/components/menu/GridMenu.d.ts +3 -2
  33. package/components/menu/GridMenu.js +1 -0
  34. package/components/menu/columnMenu/GridColumnHeaderMenu.d.ts +1 -1
  35. package/components/panel/GridColumnsPanel.d.ts +6 -1
  36. package/components/panel/GridColumnsPanel.js +38 -6
  37. package/components/panel/GridPanel.d.ts +1 -1
  38. package/components/panel/GridPanel.js +1 -0
  39. package/components/panel/filterPanel/GridFilterForm.d.ts +4 -0
  40. package/components/panel/filterPanel/GridFilterForm.js +5 -0
  41. package/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +1 -1
  42. package/components/panel/filterPanel/GridFilterPanel.d.ts +4 -0
  43. package/components/panel/filterPanel/GridFilterPanel.js +5 -0
  44. package/components/toolbar/GridToolbarColumnsButton.d.ts +1 -1
  45. package/components/toolbar/GridToolbarDensitySelector.d.ts +1 -1
  46. package/components/toolbar/GridToolbarExportContainer.d.ts +1 -1
  47. package/constants/defaultGridSlotsComponents.js +2 -1
  48. package/constants/gridClasses.d.ts +24 -0
  49. package/constants/gridClasses.js +1 -1
  50. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +5 -1
  51. package/hooks/features/columnGrouping/gridColumnGroupsInterfaces.d.ts +7 -0
  52. package/hooks/features/columnGrouping/gridColumnGroupsInterfaces.js +1 -0
  53. package/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +7 -0
  54. package/hooks/features/columnGrouping/gridColumnGroupsSelector.js +8 -0
  55. package/hooks/features/columnGrouping/index.d.ts +2 -0
  56. package/hooks/features/columnGrouping/index.js +2 -0
  57. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +24 -0
  58. package/hooks/features/columnGrouping/useGridColumnGrouping.js +153 -0
  59. package/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.d.ts +4 -0
  60. package/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +35 -0
  61. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +7 -6
  62. package/hooks/features/columnHeaders/useGridColumnHeaders.js +204 -9
  63. package/hooks/features/density/densitySelector.d.ts +2 -0
  64. package/hooks/features/density/densitySelector.js +3 -1
  65. package/hooks/features/density/densityState.d.ts +1 -0
  66. package/hooks/features/density/useGridDensity.d.ts +1 -1
  67. package/hooks/features/density/useGridDensity.js +45 -9
  68. package/hooks/features/dimensions/useGridDimensions.js +4 -4
  69. package/hooks/features/export/useGridPrintExport.js +3 -3
  70. package/hooks/features/filter/gridFilterSelector.d.ts +3 -3
  71. package/hooks/features/filter/gridFilterUtils.d.ts +1 -1
  72. package/hooks/features/filter/gridFilterUtils.js +55 -54
  73. package/hooks/features/filter/useGridFilter.js +1 -1
  74. package/hooks/features/index.d.ts +1 -0
  75. package/hooks/features/index.js +1 -0
  76. package/hooks/features/pagination/gridPaginationSelector.d.ts +1 -1
  77. package/hooks/features/rows/gridRowsSelector.d.ts +1 -1
  78. package/hooks/features/rows/useGridParamsApi.js +1 -1
  79. package/hooks/features/rows/useGridRows.js +65 -8
  80. package/hooks/features/rows/useGridRowsMeta.js +36 -16
  81. package/hooks/features/selection/gridSelectionSelector.d.ts +1 -1
  82. package/hooks/features/sorting/gridSortingSelector.d.ts +1 -1
  83. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +2 -2
  84. package/hooks/features/virtualization/useGridVirtualScroller.js +17 -5
  85. package/hooks/utils/useGridNativeEventListener.d.ts +1 -1
  86. package/hooks/utils/useGridNativeEventListener.js +2 -2
  87. package/hooks/utils/useGridVisibleRows.d.ts +2 -2
  88. package/index.js +1 -1
  89. package/internals/index.d.ts +2 -0
  90. package/internals/index.js +2 -0
  91. package/legacy/DataGrid/DataGrid.js +3 -1
  92. package/legacy/DataGrid/useDataGridComponent.js +5 -0
  93. package/legacy/components/DataGridColumnHeaders.js +4 -3
  94. package/legacy/components/GridAutoSizer.js +7 -0
  95. package/legacy/components/GridRow.js +138 -85
  96. package/legacy/components/base/GridBody.js +8 -5
  97. package/legacy/components/base/GridOverlays.js +4 -7
  98. package/legacy/components/cell/GridBooleanCell.js +2 -1
  99. package/legacy/components/cell/GridEditBooleanCell.js +2 -1
  100. package/legacy/components/cell/GridEditDateCell.js +3 -2
  101. package/legacy/components/cell/GridEditInputCell.js +2 -1
  102. package/legacy/components/cell/GridEditSingleSelectCell.js +11 -2
  103. package/legacy/components/cell/GridSkeletonCell.js +57 -0
  104. package/legacy/components/cell/index.js +2 -1
  105. package/legacy/components/columnHeaders/GridColumnGroupHeader.js +120 -0
  106. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +78 -88
  107. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +2 -1
  108. package/legacy/components/columnHeaders/GridGenericColumnHeaderItem.js +112 -0
  109. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +2 -1
  110. package/legacy/components/containers/GridOverlay.js +7 -1
  111. package/legacy/components/containers/GridRoot.js +3 -3
  112. package/legacy/components/containers/GridRootStyles.js +14 -5
  113. package/legacy/components/menu/GridMenu.js +1 -0
  114. package/legacy/components/panel/GridColumnsPanel.js +41 -6
  115. package/legacy/components/panel/GridPanel.js +1 -0
  116. package/legacy/components/panel/filterPanel/GridFilterForm.js +5 -0
  117. package/legacy/components/panel/filterPanel/GridFilterPanel.js +5 -0
  118. package/legacy/constants/defaultGridSlotsComponents.js +2 -1
  119. package/legacy/constants/gridClasses.js +1 -1
  120. package/legacy/hooks/features/columnGrouping/gridColumnGroupsInterfaces.js +1 -0
  121. package/legacy/hooks/features/columnGrouping/gridColumnGroupsSelector.js +12 -0
  122. package/legacy/hooks/features/columnGrouping/index.js +2 -0
  123. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +151 -0
  124. package/legacy/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +35 -0
  125. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +213 -12
  126. package/legacy/hooks/features/density/densitySelector.js +6 -0
  127. package/legacy/hooks/features/density/useGridDensity.js +44 -6
  128. package/legacy/hooks/features/dimensions/useGridDimensions.js +4 -4
  129. package/legacy/hooks/features/export/useGridPrintExport.js +3 -3
  130. package/legacy/hooks/features/filter/gridFilterUtils.js +61 -56
  131. package/legacy/hooks/features/filter/useGridFilter.js +1 -1
  132. package/legacy/hooks/features/index.js +1 -0
  133. package/legacy/hooks/features/rows/useGridParamsApi.js +1 -1
  134. package/legacy/hooks/features/rows/useGridRows.js +73 -8
  135. package/legacy/hooks/features/rows/useGridRowsMeta.js +45 -18
  136. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +31 -13
  137. package/legacy/hooks/utils/useGridNativeEventListener.js +2 -2
  138. package/legacy/index.js +1 -1
  139. package/legacy/internals/index.js +2 -0
  140. package/legacy/models/api/gridColumnGroupingApi.js +1 -0
  141. package/legacy/models/events/gridEvents.js +2 -0
  142. package/legacy/models/gridColumnGrouping.js +6 -0
  143. package/legacy/models/index.js +2 -1
  144. package/legacy/models/params/gridRenderedRowsIntervalChangeParams.js +1 -0
  145. package/legacy/models/params/index.js +2 -1
  146. package/legacy/utils/utils.js +18 -0
  147. package/models/api/gridApiCommon.d.ts +2 -1
  148. package/models/api/gridColumnGroupingApi.d.ts +19 -0
  149. package/models/api/gridColumnGroupingApi.js +1 -0
  150. package/models/api/gridDensityApi.d.ts +2 -1
  151. package/models/api/gridParamsApi.d.ts +1 -1
  152. package/models/api/gridRowApi.d.ts +6 -0
  153. package/models/api/gridRowsMetaApi.d.ts +6 -1
  154. package/models/colDef/gridColDef.d.ts +15 -1
  155. package/models/events/gridEventLookup.d.ts +7 -1
  156. package/models/events/gridEvents.d.ts +3 -1
  157. package/models/events/gridEvents.js +2 -0
  158. package/models/gridColumnGrouping.d.ts +67 -0
  159. package/models/gridColumnGrouping.js +6 -0
  160. package/models/gridRows.d.ts +5 -5
  161. package/models/gridSlotsComponent.d.ts +5 -0
  162. package/models/gridStateCommunity.d.ts +2 -1
  163. package/models/index.d.ts +1 -0
  164. package/models/index.js +2 -1
  165. package/models/params/gridCellParams.d.ts +7 -2
  166. package/models/params/gridMenuParams.d.ts +1 -2
  167. package/models/params/gridRenderedRowsIntervalChangeParams.d.ts +10 -0
  168. package/models/params/gridRenderedRowsIntervalChangeParams.js +1 -0
  169. package/models/params/index.d.ts +1 -0
  170. package/models/params/index.js +2 -1
  171. package/models/props/DataGridProps.d.ts +7 -1
  172. package/modern/DataGrid/DataGrid.js +3 -1
  173. package/modern/DataGrid/useDataGridComponent.js +5 -0
  174. package/modern/components/DataGridColumnHeaders.js +4 -3
  175. package/modern/components/GridAutoSizer.js +7 -0
  176. package/modern/components/GridRow.js +133 -84
  177. package/modern/components/base/GridBody.js +8 -5
  178. package/modern/components/base/GridOverlays.js +4 -7
  179. package/modern/components/cell/GridBooleanCell.js +2 -1
  180. package/modern/components/cell/GridEditBooleanCell.js +2 -1
  181. package/modern/components/cell/GridEditDateCell.js +3 -2
  182. package/modern/components/cell/GridEditInputCell.js +2 -1
  183. package/modern/components/cell/GridEditSingleSelectCell.js +11 -2
  184. package/modern/components/cell/GridSkeletonCell.js +60 -0
  185. package/modern/components/cell/index.js +2 -1
  186. package/modern/components/columnHeaders/GridColumnGroupHeader.js +120 -0
  187. package/modern/components/columnHeaders/GridColumnHeaderItem.js +53 -69
  188. package/modern/components/columnHeaders/GridColumnHeadersInner.js +2 -1
  189. package/modern/components/columnHeaders/GridGenericColumnHeaderItem.js +104 -0
  190. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +2 -1
  191. package/modern/components/containers/GridOverlay.js +7 -1
  192. package/modern/components/containers/GridRoot.js +3 -3
  193. package/modern/components/containers/GridRootStyles.js +16 -2
  194. package/modern/components/menu/GridMenu.js +1 -0
  195. package/modern/components/panel/GridColumnsPanel.js +38 -6
  196. package/modern/components/panel/GridPanel.js +1 -0
  197. package/modern/components/panel/filterPanel/GridFilterForm.js +5 -0
  198. package/modern/components/panel/filterPanel/GridFilterPanel.js +5 -0
  199. package/modern/constants/defaultGridSlotsComponents.js +2 -1
  200. package/modern/constants/gridClasses.js +1 -1
  201. package/modern/hooks/features/columnGrouping/gridColumnGroupsInterfaces.js +1 -0
  202. package/modern/hooks/features/columnGrouping/gridColumnGroupsSelector.js +8 -0
  203. package/modern/hooks/features/columnGrouping/index.js +2 -0
  204. package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +145 -0
  205. package/modern/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +29 -0
  206. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +186 -9
  207. package/modern/hooks/features/density/densitySelector.js +3 -1
  208. package/modern/hooks/features/density/useGridDensity.js +37 -9
  209. package/modern/hooks/features/dimensions/useGridDimensions.js +4 -4
  210. package/modern/hooks/features/export/useGridPrintExport.js +3 -3
  211. package/modern/hooks/features/filter/gridFilterUtils.js +54 -53
  212. package/modern/hooks/features/filter/useGridFilter.js +1 -1
  213. package/modern/hooks/features/index.js +1 -0
  214. package/modern/hooks/features/rows/useGridParamsApi.js +1 -1
  215. package/modern/hooks/features/rows/useGridRows.js +65 -8
  216. package/modern/hooks/features/rows/useGridRowsMeta.js +36 -16
  217. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +17 -5
  218. package/modern/hooks/utils/useGridNativeEventListener.js +2 -2
  219. package/modern/index.js +1 -1
  220. package/modern/internals/index.js +2 -0
  221. package/modern/models/api/gridColumnGroupingApi.js +1 -0
  222. package/modern/models/events/gridEvents.js +2 -0
  223. package/modern/models/gridColumnGrouping.js +6 -0
  224. package/modern/models/index.js +2 -1
  225. package/modern/models/params/gridRenderedRowsIntervalChangeParams.js +1 -0
  226. package/modern/models/params/index.js +2 -1
  227. package/modern/utils/utils.js +16 -0
  228. package/node/DataGrid/DataGrid.js +3 -1
  229. package/node/DataGrid/useDataGridComponent.js +7 -0
  230. package/node/components/DataGridColumnHeaders.js +4 -3
  231. package/node/components/GridAutoSizer.js +7 -0
  232. package/node/components/GridRow.js +136 -77
  233. package/node/components/base/GridBody.js +7 -4
  234. package/node/components/base/GridOverlays.js +3 -6
  235. package/node/components/cell/GridBooleanCell.js +2 -1
  236. package/node/components/cell/GridEditBooleanCell.js +2 -1
  237. package/node/components/cell/GridEditDateCell.js +3 -2
  238. package/node/components/cell/GridEditInputCell.js +2 -1
  239. package/node/components/cell/GridEditSingleSelectCell.js +11 -2
  240. package/node/components/cell/GridSkeletonCell.js +81 -0
  241. package/node/components/cell/index.js +13 -0
  242. package/node/components/columnHeaders/GridColumnGroupHeader.js +141 -0
  243. package/node/components/columnHeaders/GridColumnHeaderItem.js +53 -72
  244. package/node/components/columnHeaders/GridColumnHeadersInner.js +2 -1
  245. package/node/components/columnHeaders/GridGenericColumnHeaderItem.js +126 -0
  246. package/node/components/columnSelection/GridCellCheckboxRenderer.js +2 -1
  247. package/node/components/containers/GridOverlay.js +7 -1
  248. package/node/components/containers/GridRoot.js +4 -4
  249. package/node/components/containers/GridRootStyles.js +16 -2
  250. package/node/components/menu/GridMenu.js +1 -0
  251. package/node/components/panel/GridColumnsPanel.js +36 -5
  252. package/node/components/panel/GridPanel.js +1 -0
  253. package/node/components/panel/filterPanel/GridFilterForm.js +5 -0
  254. package/node/components/panel/filterPanel/GridFilterPanel.js +5 -0
  255. package/node/constants/defaultGridSlotsComponents.js +1 -0
  256. package/node/constants/gridClasses.js +1 -1
  257. package/node/hooks/features/columnGrouping/gridColumnGroupsInterfaces.js +5 -0
  258. package/node/hooks/features/columnGrouping/gridColumnGroupsSelector.js +18 -0
  259. package/node/hooks/features/columnGrouping/index.js +18 -0
  260. package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +182 -0
  261. package/node/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +55 -0
  262. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +207 -8
  263. package/node/hooks/features/density/densitySelector.js +6 -2
  264. package/node/hooks/features/density/useGridDensity.js +48 -9
  265. package/node/hooks/features/dimensions/useGridDimensions.js +3 -3
  266. package/node/hooks/features/export/useGridPrintExport.js +2 -2
  267. package/node/hooks/features/filter/gridFilterUtils.js +55 -55
  268. package/node/hooks/features/filter/useGridFilter.js +1 -1
  269. package/node/hooks/features/index.js +13 -0
  270. package/node/hooks/features/rows/useGridParamsApi.js +1 -1
  271. package/node/hooks/features/rows/useGridRows.js +60 -7
  272. package/node/hooks/features/rows/useGridRowsMeta.js +35 -15
  273. package/node/hooks/features/virtualization/useGridVirtualScroller.js +17 -5
  274. package/node/hooks/utils/useGridNativeEventListener.js +2 -2
  275. package/node/index.js +1 -1
  276. package/node/internals/index.js +22 -0
  277. package/node/models/api/gridColumnGroupingApi.js +5 -0
  278. package/node/models/events/gridEvents.js +2 -0
  279. package/node/models/gridColumnGrouping.js +13 -0
  280. package/node/models/index.js +13 -0
  281. package/node/models/params/gridRenderedRowsIntervalChangeParams.js +5 -0
  282. package/node/models/params/index.js +13 -0
  283. package/node/utils/utils.js +18 -0
  284. package/package.json +3 -3
  285. package/utils/utils.d.ts +1 -0
  286. package/utils/utils.js +16 -0
@@ -0,0 +1,120 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ import { unstable_useId as useId } from '@mui/utils';
4
+ import { unstable_composeClasses as composeClasses } from '@mui/material';
5
+ import { getDataGridUtilityClass } from '../../constants/gridClasses';
6
+ import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
7
+ import { gridColumnGroupsLookupSelector } from '../../hooks/features/columnGrouping/gridColumnGroupsSelector';
8
+ import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
9
+ import { useGridSelector } from '../../hooks/utils/useGridSelector';
10
+ import { GridGenericColumnHeaderItem } from './GridGenericColumnHeaderItem';
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+
13
+ var useUtilityClasses = function useUtilityClasses(ownerState) {
14
+ var classes = ownerState.classes,
15
+ headerAlign = ownerState.headerAlign,
16
+ isDragging = ownerState.isDragging,
17
+ showRightBorder = ownerState.showRightBorder,
18
+ showColumnBorder = ownerState.showColumnBorder,
19
+ groupId = ownerState.groupId;
20
+ var slots = {
21
+ root: ['columnHeader', headerAlign === 'left' && 'columnHeader--alignLeft', headerAlign === 'center' && 'columnHeader--alignCenter', headerAlign === 'right' && 'columnHeader--alignRight', isDragging && 'columnHeader--moving', showRightBorder && 'withBorder', showColumnBorder && 'columnHeader--showColumnBorder', groupId === null ? 'columnHeader--emptyGroup' : 'columnHeader--filledGroup'],
22
+ draggableContainer: ['columnHeaderDraggableContainer'],
23
+ titleContainer: ['columnHeaderTitleContainer'],
24
+ titleContainerContent: ['columnHeaderTitleContainerContent']
25
+ };
26
+ return composeClasses(slots, getDataGridUtilityClass, classes);
27
+ };
28
+
29
+ function GridColumnGroupHeader(props) {
30
+ var _apiRef$current$getRo, _columnGroupsLookup$g;
31
+
32
+ var groupId = props.groupId,
33
+ width = props.width,
34
+ depth = props.depth,
35
+ maxDepth = props.maxDepth,
36
+ fields = props.fields,
37
+ height = props.height,
38
+ colIndex = props.colIndex,
39
+ isLastColumn = props.isLastColumn,
40
+ extendRowFullWidth = props.extendRowFullWidth;
41
+ var rootProps = useGridRootProps();
42
+ var apiRef = useGridApiContext();
43
+ var columnGroupsLookup = useGridSelector(apiRef, gridColumnGroupsLookupSelector);
44
+
45
+ var _ref = (_apiRef$current$getRo = apiRef.current.getRootDimensions()) != null ? _apiRef$current$getRo : {
46
+ hasScrollX: false,
47
+ hasScrollY: false
48
+ },
49
+ hasScrollX = _ref.hasScrollX,
50
+ hasScrollY = _ref.hasScrollY;
51
+
52
+ var group = groupId ? columnGroupsLookup[groupId] : {};
53
+ var _group$headerName = group.headerName,
54
+ headerName = _group$headerName === void 0 ? groupId != null ? groupId : '' : _group$headerName,
55
+ _group$description = group.description,
56
+ description = _group$description === void 0 ? '' : _group$description,
57
+ _group$headerAlign = group.headerAlign,
58
+ headerAlign = _group$headerAlign === void 0 ? undefined : _group$headerAlign;
59
+ var headerComponent;
60
+ var render = groupId && ((_columnGroupsLookup$g = columnGroupsLookup[groupId]) == null ? void 0 : _columnGroupsLookup$g.renderHeaderGroup);
61
+ var renderParams = {
62
+ groupId: groupId,
63
+ headerName: headerName,
64
+ description: description,
65
+ depth: depth,
66
+ maxDepth: maxDepth,
67
+ fields: fields,
68
+ colIndex: colIndex,
69
+ isLastColumn: isLastColumn
70
+ };
71
+
72
+ if (groupId && render) {
73
+ headerComponent = render(renderParams);
74
+ }
75
+
76
+ var removeLastBorderRight = isLastColumn && hasScrollX && !hasScrollY;
77
+ var showRightBorder = !isLastColumn ? rootProps.showColumnRightBorder : !removeLastBorderRight && !extendRowFullWidth;
78
+ var showColumnBorder = rootProps.showColumnRightBorder;
79
+
80
+ var ownerState = _extends({}, props, {
81
+ classes: rootProps.classes,
82
+ showRightBorder: showRightBorder,
83
+ showColumnBorder: showColumnBorder,
84
+ headerAlign: headerAlign,
85
+ depth: depth,
86
+ isDragging: false
87
+ });
88
+
89
+ var label = headerName != null ? headerName : groupId;
90
+ var id = useId();
91
+ var elementId = groupId === null ? "empty-group-cell-".concat(id) : groupId;
92
+ var classes = useUtilityClasses(ownerState);
93
+ var headerClassName = typeof group.headerClassName === 'function' ? group.headerClassName(renderParams) : group.headerClassName;
94
+ return /*#__PURE__*/_jsx(GridGenericColumnHeaderItem, {
95
+ classes: classes,
96
+ columnMenuOpen: false,
97
+ colIndex: colIndex,
98
+ height: height,
99
+ isResizing: false,
100
+ sortDirection: null,
101
+ hasFocus: false,
102
+ tabIndex: -1,
103
+ isDraggable: false,
104
+ headerComponent: headerComponent,
105
+ headerClassName: headerClassName,
106
+ description: description,
107
+ elementId: elementId,
108
+ width: width,
109
+ columnMenuIconButton: null,
110
+ columnTitleIconButtons: null,
111
+ resizable: false,
112
+ label: label,
113
+ "aria-colspan": fields.length // The fields are wrapped between |-...-| to avoid confusion between fields "id" and "id2" when using selector data-fields~=
114
+ ,
115
+ "data-fields": "|-".concat(fields.join('-|-'), "-|"),
116
+ disableHeaderSeparator: true
117
+ });
118
+ }
119
+
120
+ export { GridColumnGroupHeader };
@@ -2,17 +2,15 @@ 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
4
  import PropTypes from 'prop-types';
5
- import clsx from 'clsx';
6
5
  import { unstable_composeClasses as composeClasses } from '@mui/material';
7
6
  import { unstable_useId as useId } from '@mui/material/utils';
8
7
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
9
8
  import { GridColumnHeaderSortIcon } from './GridColumnHeaderSortIcon';
10
- import { GridColumnHeaderTitle } from './GridColumnHeaderTitle';
11
- import { GridColumnHeaderSeparator } from './GridColumnHeaderSeparator';
12
9
  import { ColumnHeaderMenuIcon } from './ColumnHeaderMenuIcon';
13
10
  import { GridColumnHeaderMenu } from '../menu/columnMenu/GridColumnHeaderMenu';
14
11
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
15
12
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
13
+ import { GridGenericColumnHeaderItem } from './GridGenericColumnHeaderItem';
16
14
  import { jsx as _jsx } from "react/jsx-runtime";
17
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
18
16
 
@@ -37,7 +35,7 @@ var useUtilityClasses = function useUtilityClasses(ownerState) {
37
35
  };
38
36
 
39
37
  function GridColumnHeaderItem(props) {
40
- var _apiRef$current$getRo, _column$sortingOrder, _rootProps$components, _column$headerName, _rootProps$components2;
38
+ var _apiRef$current$getRo, _rootProps$components, _column$sortingOrder, _rootProps$components2, _column$headerName;
41
39
 
42
40
  var column = props.column,
43
41
  columnMenuOpen = props.columnMenuOpen,
@@ -75,12 +73,21 @@ function GridColumnHeaderItem(props) {
75
73
  var isDraggable = React.useMemo(function () {
76
74
  return !rootProps.disableColumnReorder && !disableReorder && !column.disableReorder;
77
75
  }, [rootProps.disableColumnReorder, disableReorder, column.disableReorder]);
78
- var headerComponent = null;
76
+ var headerComponent;
79
77
 
80
78
  if (column.renderHeader) {
81
79
  headerComponent = column.renderHeader(apiRef.current.getColumnHeaderParams(column.field));
82
80
  }
83
81
 
82
+ var removeLastBorderRight = isLastColumn && hasScrollX && !hasScrollY;
83
+ var showRightBorder = !isLastColumn ? rootProps.showColumnRightBorder : !removeLastBorderRight && !extendRowFullWidth;
84
+
85
+ var ownerState = _extends({}, props, {
86
+ classes: rootProps.classes,
87
+ showRightBorder: showRightBorder
88
+ });
89
+
90
+ var classes = useUtilityClasses(ownerState);
84
91
  var publish = React.useCallback(function (eventName) {
85
92
  return function (event) {
86
93
  // Ignore portal
@@ -92,43 +99,36 @@ function GridColumnHeaderItem(props) {
92
99
  apiRef.current.publishEvent(eventName, apiRef.current.getColumnHeaderParams(column.field), event);
93
100
  };
94
101
  }, [apiRef, column.field]);
95
- var mouseEventsHandlers = {
96
- onClick: publish('columnHeaderClick'),
97
- onDoubleClick: publish('columnHeaderDoubleClick'),
98
- onMouseOver: publish('columnHeaderOver'),
99
- // TODO remove as it's not used
100
- onMouseOut: publish('columnHeaderOut'),
101
- // TODO remove as it's not used
102
- onMouseEnter: publish('columnHeaderEnter'),
103
- // TODO remove as it's not used
104
- onMouseLeave: publish('columnHeaderLeave'),
105
- // TODO remove as it's not used
106
- onKeyDown: publish('columnHeaderKeyDown'),
107
- onFocus: publish('columnHeaderFocus'),
108
- onBlur: publish('columnHeaderBlur')
109
- };
110
- var draggableEventHandlers = isDraggable ? {
111
- onDragStart: publish('columnHeaderDragStart'),
112
- onDragEnter: publish('columnHeaderDragEnter'),
113
- onDragOver: publish('columnHeaderDragOver'),
114
- onDragEnd: publish('columnHeaderDragEnd')
115
- } : null;
116
- var removeLastBorderRight = isLastColumn && hasScrollX && !hasScrollY;
117
- var showRightBorder = !isLastColumn ? rootProps.showColumnRightBorder : !removeLastBorderRight && !extendRowFullWidth;
118
-
119
- var ownerState = _extends({}, props, {
120
- classes: rootProps.classes,
121
- showRightBorder: showRightBorder
122
- });
123
-
124
- var classes = useUtilityClasses(ownerState);
125
- var width = column.computedWidth;
126
- var ariaSort = 'none';
127
-
128
- if (sortDirection != null) {
129
- ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';
130
- }
131
-
102
+ var mouseEventsHandlers = React.useMemo(function () {
103
+ return {
104
+ onClick: publish('columnHeaderClick'),
105
+ onDoubleClick: publish('columnHeaderDoubleClick'),
106
+ onMouseOver: publish('columnHeaderOver'),
107
+ // TODO remove as it's not used
108
+ onMouseOut: publish('columnHeaderOut'),
109
+ // TODO remove as it's not used
110
+ onMouseEnter: publish('columnHeaderEnter'),
111
+ // TODO remove as it's not used
112
+ onMouseLeave: publish('columnHeaderLeave'),
113
+ // TODO remove as it's not used
114
+ onKeyDown: publish('columnHeaderKeyDown'),
115
+ onFocus: publish('columnHeaderFocus'),
116
+ onBlur: publish('columnHeaderBlur')
117
+ };
118
+ }, [publish]);
119
+ var draggableEventHandlers = React.useMemo(function () {
120
+ return isDraggable ? {
121
+ onDragStart: publish('columnHeaderDragStart'),
122
+ onDragEnter: publish('columnHeaderDragEnter'),
123
+ onDragOver: publish('columnHeaderDragOver'),
124
+ onDragEnd: publish('columnHeaderDragEnd')
125
+ } : {};
126
+ }, [isDraggable, publish]);
127
+ var columnHeaderSeparatorProps = React.useMemo(function () {
128
+ return {
129
+ onMouseDown: publish('columnSeparatorMouseDown')
130
+ };
131
+ }, [publish]);
132
132
  React.useEffect(function () {
133
133
  if (!showColumnMenuIcon) {
134
134
  setShowColumnMenuIcon(columnMenuOpen);
@@ -146,13 +146,24 @@ function GridColumnHeaderItem(props) {
146
146
  iconButtonRef: iconButtonRef
147
147
  });
148
148
 
149
+ var columnMenu = /*#__PURE__*/_jsx(GridColumnHeaderMenu, {
150
+ columnMenuId: columnMenuId,
151
+ columnMenuButtonId: columnMenuButtonId,
152
+ field: column.field,
153
+ open: columnMenuOpen,
154
+ target: iconButtonRef.current,
155
+ ContentComponent: rootProps.components.ColumnMenu,
156
+ contentComponentProps: (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.columnMenu,
157
+ onExited: handleExited
158
+ });
159
+
149
160
  var sortingOrder = (_column$sortingOrder = column.sortingOrder) != null ? _column$sortingOrder : rootProps.sortingOrder;
150
161
 
151
162
  var columnTitleIconButtons = /*#__PURE__*/_jsxs(React.Fragment, {
152
163
  children: [!rootProps.disableColumnFilter && /*#__PURE__*/_jsx(rootProps.components.ColumnHeaderFilterIconButton, _extends({
153
164
  field: column.field,
154
165
  counter: filterItemsCounter
155
- }, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.columnHeaderFilterIconButton)), column.sortable && !column.hideSortIcons && /*#__PURE__*/_jsx(GridColumnHeaderSortIcon, {
166
+ }, (_rootProps$components2 = rootProps.componentsProps) == null ? void 0 : _rootProps$components2.columnHeaderFilterIconButton)), column.sortable && !column.hideSortIcons && /*#__PURE__*/_jsx(GridColumnHeaderSortIcon, {
156
167
  direction: sortDirection,
157
168
  index: sortIndex,
158
169
  sortingOrder: sortingOrder
@@ -174,53 +185,32 @@ function GridColumnHeaderItem(props) {
174
185
  colDef: column
175
186
  }) : column.headerClassName;
176
187
  var label = (_column$headerName = column.headerName) != null ? _column$headerName : column.field;
177
- return /*#__PURE__*/_jsxs("div", _extends({
188
+ return /*#__PURE__*/_jsx(GridGenericColumnHeaderItem, _extends({
178
189
  ref: headerCellRef,
179
- className: clsx(classes.root, headerClassName),
180
- "data-field": column.field,
181
- style: {
182
- width: width,
183
- minWidth: width,
184
- maxWidth: width
185
- },
186
- role: "columnheader",
190
+ classes: classes,
191
+ columnMenuOpen: columnMenuOpen,
192
+ colIndex: colIndex,
193
+ height: headerHeight,
194
+ isResizing: isResizing,
195
+ sortDirection: sortDirection,
196
+ hasFocus: hasFocus,
187
197
  tabIndex: tabIndex,
188
- "aria-colindex": colIndex + 1,
189
- "aria-sort": ariaSort,
190
- "aria-label": column.renderHeader && headerComponent == null ? label : undefined
191
- }, mouseEventsHandlers, {
192
- children: [/*#__PURE__*/_jsxs("div", _extends({
193
- className: classes.draggableContainer,
194
- draggable: isDraggable
195
- }, draggableEventHandlers, {
196
- children: [/*#__PURE__*/_jsxs("div", {
197
- className: classes.titleContainer,
198
- children: [/*#__PURE__*/_jsx("div", {
199
- className: classes.titleContainerContent,
200
- children: column.renderHeader ? headerComponent : /*#__PURE__*/_jsx(GridColumnHeaderTitle, {
201
- label: label,
202
- description: column.description,
203
- columnWidth: width
204
- })
205
- }), columnTitleIconButtons]
206
- }), columnMenuIconButton]
207
- })), /*#__PURE__*/_jsx(GridColumnHeaderSeparator, {
208
- resizable: !rootProps.disableColumnResize && !!column.resizable,
209
- resizing: isResizing,
210
- height: headerHeight,
211
- onMouseDown: publish('columnSeparatorMouseDown'),
212
- side: separatorSide
213
- }), /*#__PURE__*/_jsx(GridColumnHeaderMenu, {
214
- columnMenuId: columnMenuId,
215
- columnMenuButtonId: columnMenuButtonId,
216
- field: column.field,
217
- open: columnMenuOpen,
218
- target: iconButtonRef.current,
219
- ContentComponent: rootProps.components.ColumnMenu,
220
- contentComponentProps: (_rootProps$components2 = rootProps.componentsProps) == null ? void 0 : _rootProps$components2.columnMenu,
221
- onExited: handleExited
222
- })]
223
- }));
198
+ separatorSide: separatorSide,
199
+ isDraggable: isDraggable,
200
+ headerComponent: headerComponent,
201
+ description: column.description,
202
+ elementId: column.field,
203
+ width: column.computedWidth,
204
+ columnMenuIconButton: columnMenuIconButton,
205
+ columnTitleIconButtons: columnTitleIconButtons,
206
+ headerClassName: headerClassName,
207
+ label: label,
208
+ resizable: !rootProps.disableColumnResize && !!column.resizable,
209
+ "data-field": column.field,
210
+ columnMenu: columnMenu,
211
+ draggableContainerProps: draggableEventHandlers,
212
+ columnHeaderSeparatorProps: columnHeaderSeparatorProps
213
+ }, mouseEventsHandlers));
224
214
  }
225
215
 
226
216
  process.env.NODE_ENV !== "production" ? GridColumnHeaderItem.propTypes = {
@@ -32,7 +32,8 @@ var GridColumnHeadersInnerRoot = styled('div', {
32
32
 
33
33
  return _ref2 = {
34
34
  display: 'flex',
35
- alignItems: 'center'
35
+ alignItems: 'flex-start',
36
+ flexDirection: 'column'
36
37
  }, _defineProperty(_ref2, "&.".concat(gridClasses.columnHeaderDropZone, " .").concat(gridClasses.columnHeaderDraggableContainer), {
37
38
  cursor: 'move'
38
39
  }), _defineProperty(_ref2, "&.".concat(gridClasses['columnHeadersInner--scrollable'], " .").concat(gridClasses.columnHeader, ":last-child"), {
@@ -0,0 +1,112 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
+ var _excluded = ["classes", "columnMenuOpen", "colIndex", "height", "isResizing", "sortDirection", "hasFocus", "tabIndex", "separatorSide", "isDraggable", "headerComponent", "description", "elementId", "width", "columnMenuIconButton", "columnMenu", "columnTitleIconButtons", "headerClassName", "label", "resizable", "draggableContainerProps", "columnHeaderSeparatorProps", "disableHeaderSeparator"];
5
+ import * as React from 'react';
6
+ import clsx from 'clsx';
7
+ import { useForkRef } from '@mui/material/utils';
8
+ import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
9
+ import { GridColumnHeaderTitle } from './GridColumnHeaderTitle';
10
+ import { GridColumnHeaderSeparator } from './GridColumnHeaderSeparator';
11
+ import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { jsxs as _jsxs } from "react/jsx-runtime";
14
+ var GridGenericColumnHeaderItem = /*#__PURE__*/React.forwardRef(function GridGenericColumnHeaderItem(props, ref) {
15
+ var classes = props.classes,
16
+ columnMenuOpen = props.columnMenuOpen,
17
+ colIndex = props.colIndex,
18
+ height = props.height,
19
+ isResizing = props.isResizing,
20
+ sortDirection = props.sortDirection,
21
+ hasFocus = props.hasFocus,
22
+ tabIndex = props.tabIndex,
23
+ separatorSide = props.separatorSide,
24
+ isDraggable = props.isDraggable,
25
+ headerComponent = props.headerComponent,
26
+ description = props.description,
27
+ elementId = props.elementId,
28
+ width = props.width,
29
+ _props$columnMenuIcon = props.columnMenuIconButton,
30
+ columnMenuIconButton = _props$columnMenuIcon === void 0 ? null : _props$columnMenuIcon,
31
+ _props$columnMenu = props.columnMenu,
32
+ columnMenu = _props$columnMenu === void 0 ? null : _props$columnMenu,
33
+ _props$columnTitleIco = props.columnTitleIconButtons,
34
+ columnTitleIconButtons = _props$columnTitleIco === void 0 ? null : _props$columnTitleIco,
35
+ headerClassName = props.headerClassName,
36
+ label = props.label,
37
+ resizable = props.resizable,
38
+ draggableContainerProps = props.draggableContainerProps,
39
+ columnHeaderSeparatorProps = props.columnHeaderSeparatorProps,
40
+ disableHeaderSeparator = props.disableHeaderSeparator,
41
+ other = _objectWithoutProperties(props, _excluded);
42
+
43
+ var apiRef = useGridApiContext();
44
+ var rootProps = useGridRootProps();
45
+ var headerCellRef = React.useRef(null);
46
+
47
+ var _React$useState = React.useState(columnMenuOpen),
48
+ _React$useState2 = _slicedToArray(_React$useState, 2),
49
+ showColumnMenuIcon = _React$useState2[0],
50
+ setShowColumnMenuIcon = _React$useState2[1];
51
+
52
+ var handleRef = useForkRef(headerCellRef, ref);
53
+ var ariaSort = 'none';
54
+
55
+ if (sortDirection != null) {
56
+ ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';
57
+ }
58
+
59
+ React.useEffect(function () {
60
+ if (!showColumnMenuIcon) {
61
+ setShowColumnMenuIcon(columnMenuOpen);
62
+ }
63
+ }, [showColumnMenuIcon, columnMenuOpen]);
64
+ React.useLayoutEffect(function () {
65
+ var columnMenuState = apiRef.current.state.columnMenu;
66
+
67
+ if (hasFocus && !columnMenuState.open) {
68
+ var focusableElement = headerCellRef.current.querySelector('[tabindex="0"]');
69
+ var elementToFocus = focusableElement || headerCellRef.current;
70
+ elementToFocus == null ? void 0 : elementToFocus.focus();
71
+ apiRef.current.columnHeadersContainerElementRef.current.scrollLeft = 0;
72
+ }
73
+ }, [apiRef, hasFocus]);
74
+ return /*#__PURE__*/_jsxs("div", _extends({
75
+ ref: handleRef,
76
+ className: clsx(classes.root, headerClassName),
77
+ style: {
78
+ height: height,
79
+ width: width,
80
+ minWidth: width,
81
+ maxWidth: width
82
+ },
83
+ role: "columnheader",
84
+ tabIndex: tabIndex,
85
+ "aria-colindex": colIndex + 1,
86
+ "aria-sort": ariaSort,
87
+ "aria-label": headerComponent == null ? label : undefined
88
+ }, other, {
89
+ children: [/*#__PURE__*/_jsxs("div", _extends({
90
+ className: classes.draggableContainer,
91
+ draggable: isDraggable
92
+ }, draggableContainerProps, {
93
+ children: [/*#__PURE__*/_jsxs("div", {
94
+ className: classes.titleContainer,
95
+ children: [/*#__PURE__*/_jsx("div", {
96
+ className: classes.titleContainerContent,
97
+ children: headerComponent !== undefined ? headerComponent : /*#__PURE__*/_jsx(GridColumnHeaderTitle, {
98
+ label: label,
99
+ description: description,
100
+ columnWidth: width
101
+ })
102
+ }), columnTitleIconButtons]
103
+ }), columnMenuIconButton]
104
+ })), !disableHeaderSeparator && /*#__PURE__*/_jsx(GridColumnHeaderSeparator, _extends({
105
+ resizable: !rootProps.disableColumnResize && !!resizable,
106
+ resizing: isResizing,
107
+ height: height,
108
+ side: separatorSide
109
+ }, columnHeaderSeparatorProps)), columnMenu]
110
+ }));
111
+ });
112
+ export { GridGenericColumnHeaderItem };
@@ -190,7 +190,8 @@ process.env.NODE_ENV !== "production" ? GridCellCheckboxForwardRef.propTypes = {
190
190
  tabIndex: PropTypes.oneOf([-1, 0]).isRequired,
191
191
 
192
192
  /**
193
- * The cell value, but if the column has valueGetter, use getValue.
193
+ * The cell value.
194
+ * If the column has `valueGetter`, use `params.row` to directly access the fields.
194
195
  */
195
196
  value: PropTypes.any
196
197
  } : void 0;
@@ -27,8 +27,14 @@ var GridOverlayRoot = styled('div', {
27
27
  })(function (_ref) {
28
28
  var theme = _ref.theme;
29
29
  return {
30
- display: 'flex',
30
+ position: 'absolute',
31
+ top: 0,
32
+ zIndex: 4,
33
+ // should be above pinned columns, pinned rows and detail panel
34
+ width: '100%',
31
35
  height: '100%',
36
+ pointerEvents: 'none',
37
+ display: 'flex',
32
38
  alignSelf: 'center',
33
39
  alignItems: 'center',
34
40
  justifyContent: 'center',
@@ -13,8 +13,8 @@ import { useGridSelector } from '../../hooks/utils/useGridSelector';
13
13
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
14
14
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
15
15
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
16
+ import { gridDensityHeaderGroupingMaxDepthSelector, gridDensityValueSelector } from '../../hooks/features/density/densitySelector';
16
17
  import { gridPinnedRowsCountSelector, gridRowCountSelector } from '../../hooks/features/rows/gridRowsSelector';
17
- import { gridDensityValueSelector } from '../../hooks/features/density/densitySelector';
18
18
  import { jsx as _jsx } from "react/jsx-runtime";
19
19
 
20
20
  var useUtilityClasses = function useUtilityClasses(ownerState) {
@@ -38,6 +38,7 @@ var GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
38
38
  var visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
39
39
  var totalRowCount = useGridSelector(apiRef, gridRowCountSelector);
40
40
  var densityValue = useGridSelector(apiRef, gridDensityValueSelector);
41
+ var headerGroupingMaxDepth = useGridSelector(apiRef, gridDensityHeaderGroupingMaxDepthSelector);
41
42
  var rootContainerRef = React.useRef(null);
42
43
  var handleRef = useForkRef(rootContainerRef, ref);
43
44
  var pinnedRowsCount = useGridSelector(apiRef, gridPinnedRowsCountSelector);
@@ -72,8 +73,7 @@ var GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
72
73
  className: clsx(className, classes.root),
73
74
  role: "grid",
74
75
  "aria-colcount": visibleColumns.length,
75
- "aria-rowcount": totalRowCount + pinnedRowsCount + 1 // +1 for the header row
76
- ,
76
+ "aria-rowcount": headerGroupingMaxDepth + 1 + pinnedRowsCount + totalRowCount,
77
77
  "aria-multiselectable": !rootProps.disableMultipleSelection,
78
78
  "aria-label": rootProps['aria-label'],
79
79
  "aria-labelledby": rootProps['aria-labelledby']
@@ -7,12 +7,12 @@ export var GridRootStyles = styled('div', {
7
7
  slot: 'Root',
8
8
  overridesResolver: function overridesResolver(props, styles) {
9
9
  return [_defineProperty({}, "&.".concat(gridClasses.autoHeight), styles.autoHeight), _defineProperty({}, "&.".concat(gridClasses.aggregationColumnHeader), styles.aggregationColumnHeader), _defineProperty({}, "&.".concat(gridClasses['aggregationColumnHeader--alignLeft']), styles['aggregationColumnHeader--alignLeft']), _defineProperty({}, "&.".concat(gridClasses['aggregationColumnHeader--alignCenter']), styles['aggregationColumnHeader--alignCenter']), _defineProperty({}, "&.".concat(gridClasses['aggregationColumnHeader--alignRight']), styles['aggregationColumnHeader--alignRight']), _defineProperty({}, "&.".concat(gridClasses.aggregationColumnHeaderLabel), styles.aggregationColumnHeaderLabel), _defineProperty({}, "& .".concat(gridClasses.editBooleanCell), styles.editBooleanCell), _defineProperty({}, "& .".concat(gridClasses['cell--editing']), styles['cell--editing']), _defineProperty({}, "& .".concat(gridClasses['cell--textCenter']), styles['cell--textCenter']), _defineProperty({}, "& .".concat(gridClasses['cell--textLeft']), styles['cell--textLeft']), _defineProperty({}, "& .".concat(gridClasses['cell--textRight']), styles['cell--textRight']), // TODO v6: Remove
10
- _defineProperty({}, "& .".concat(gridClasses['cell--withRenderer']), styles['cell--withRenderer']), _defineProperty({}, "& .".concat(gridClasses.cell), styles.cell), _defineProperty({}, "& .".concat(gridClasses.cellContent), styles.cellContent), _defineProperty({}, "& .".concat(gridClasses.cellCheckbox), styles.cellCheckbox), _defineProperty({}, "& .".concat(gridClasses.checkboxInput), styles.checkboxInput), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignCenter']), styles['columnHeader--alignCenter']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignLeft']), styles['columnHeader--alignLeft']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignRight']), styles['columnHeader--alignRight']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--dragging']), styles['columnHeader--dragging']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--moving']), styles['columnHeader--moving']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--numeric']), styles['columnHeader--numeric']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--sortable']), styles['columnHeader--sortable']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--sorted']), styles['columnHeader--sorted']), _defineProperty({}, "& .".concat(gridClasses.columnHeader), styles.columnHeader), _defineProperty({}, "& .".concat(gridClasses.columnHeaderCheckbox), styles.columnHeaderCheckbox), _defineProperty({}, "& .".concat(gridClasses.columnHeaderDraggableContainer), styles.columnHeaderDraggableContainer), _defineProperty({}, "& .".concat(gridClasses.columnHeaderTitleContainer), styles.columnHeaderTitleContainer), _defineProperty({}, "& .".concat(gridClasses['columnSeparator--resizable']), styles['columnSeparator--resizable']), _defineProperty({}, "& .".concat(gridClasses['columnSeparator--resizing']), styles['columnSeparator--resizing']), _defineProperty({}, "& .".concat(gridClasses.columnSeparator), styles.columnSeparator), _defineProperty({}, "& .".concat(gridClasses.filterIcon), styles.filterIcon), _defineProperty({}, "& .".concat(gridClasses.iconSeparator), styles.iconSeparator), _defineProperty({}, "& .".concat(gridClasses.menuIcon), styles.menuIcon), _defineProperty({}, "& .".concat(gridClasses.menuIconButton), styles.menuIconButton), _defineProperty({}, "& .".concat(gridClasses.menuOpen), styles.menuOpen), _defineProperty({}, "& .".concat(gridClasses.menuList), styles.menuList), _defineProperty({}, "& .".concat(gridClasses['row--editable']), styles['row--editable']), _defineProperty({}, "& .".concat(gridClasses['row--editing']), styles['row--editing']), _defineProperty({}, "& .".concat(gridClasses['row--dragging']), styles['row--dragging']), _defineProperty({}, "& .".concat(gridClasses.row), styles.row), _defineProperty({}, "& .".concat(gridClasses.rowReorderCellPlaceholder), styles.rowReorderCellPlaceholder), _defineProperty({}, "& .".concat(gridClasses.rowReorderCell), styles.rowReorderCell), _defineProperty({}, "& .".concat(gridClasses['rowReorderCell--draggable']), styles['rowReorderCell--draggable']), _defineProperty({}, "& .".concat(gridClasses.sortIcon), styles.sortIcon), _defineProperty({}, "& .".concat(gridClasses.withBorder), styles.withBorder), _defineProperty({}, "& .".concat(gridClasses.treeDataGroupingCell), styles.treeDataGroupingCell), _defineProperty({}, "& .".concat(gridClasses.treeDataGroupingCellToggle), styles.treeDataGroupingCellToggle), _defineProperty({}, "& .".concat(gridClasses.detailPanelToggleCell), styles.detailPanelToggleCell), _defineProperty({}, "& .".concat(gridClasses['detailPanelToggleCell--expanded']), styles['detailPanelToggleCell--expanded']), styles.root];
10
+ _defineProperty({}, "& .".concat(gridClasses['cell--withRenderer']), styles['cell--withRenderer']), _defineProperty({}, "& .".concat(gridClasses.cell), styles.cell), _defineProperty({}, "& .".concat(gridClasses.cellContent), styles.cellContent), _defineProperty({}, "& .".concat(gridClasses.cellCheckbox), styles.cellCheckbox), _defineProperty({}, "& .".concat(gridClasses.cellSkeleton), styles.cellSkeleton), _defineProperty({}, "& .".concat(gridClasses.checkboxInput), styles.checkboxInput), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignCenter']), styles['columnHeader--alignCenter']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignLeft']), styles['columnHeader--alignLeft']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignRight']), styles['columnHeader--alignRight']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--dragging']), styles['columnHeader--dragging']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--moving']), styles['columnHeader--moving']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--numeric']), styles['columnHeader--numeric']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--sortable']), styles['columnHeader--sortable']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--sorted']), styles['columnHeader--sorted']), _defineProperty({}, "& .".concat(gridClasses.columnHeader), styles.columnHeader), _defineProperty({}, "& .".concat(gridClasses.columnHeaderCheckbox), styles.columnHeaderCheckbox), _defineProperty({}, "& .".concat(gridClasses.columnHeaderDraggableContainer), styles.columnHeaderDraggableContainer), _defineProperty({}, "& .".concat(gridClasses.columnHeaderTitleContainer), styles.columnHeaderTitleContainer), _defineProperty({}, "& .".concat(gridClasses['columnSeparator--resizable']), styles['columnSeparator--resizable']), _defineProperty({}, "& .".concat(gridClasses['columnSeparator--resizing']), styles['columnSeparator--resizing']), _defineProperty({}, "& .".concat(gridClasses.columnSeparator), styles.columnSeparator), _defineProperty({}, "& .".concat(gridClasses.filterIcon), styles.filterIcon), _defineProperty({}, "& .".concat(gridClasses.iconSeparator), styles.iconSeparator), _defineProperty({}, "& .".concat(gridClasses.menuIcon), styles.menuIcon), _defineProperty({}, "& .".concat(gridClasses.menuIconButton), styles.menuIconButton), _defineProperty({}, "& .".concat(gridClasses.menuOpen), styles.menuOpen), _defineProperty({}, "& .".concat(gridClasses.menuList), styles.menuList), _defineProperty({}, "& .".concat(gridClasses['row--editable']), styles['row--editable']), _defineProperty({}, "& .".concat(gridClasses['row--editing']), styles['row--editing']), _defineProperty({}, "& .".concat(gridClasses['row--dragging']), styles['row--dragging']), _defineProperty({}, "& .".concat(gridClasses.row), styles.row), _defineProperty({}, "& .".concat(gridClasses.rowReorderCellPlaceholder), styles.rowReorderCellPlaceholder), _defineProperty({}, "& .".concat(gridClasses.rowReorderCell), styles.rowReorderCell), _defineProperty({}, "& .".concat(gridClasses['rowReorderCell--draggable']), styles['rowReorderCell--draggable']), _defineProperty({}, "& .".concat(gridClasses.sortIcon), styles.sortIcon), _defineProperty({}, "& .".concat(gridClasses.withBorder), styles.withBorder), _defineProperty({}, "& .".concat(gridClasses.treeDataGroupingCell), styles.treeDataGroupingCell), _defineProperty({}, "& .".concat(gridClasses.treeDataGroupingCellToggle), styles.treeDataGroupingCellToggle), _defineProperty({}, "& .".concat(gridClasses.detailPanelToggleCell), styles.detailPanelToggleCell), _defineProperty({}, "& .".concat(gridClasses['detailPanelToggleCell--expanded']), styles['detailPanelToggleCell--expanded']), styles.root];
11
11
  }
12
- })(function (_ref51) {
12
+ })(function (_ref52) {
13
13
  var _$concat2, _$concat3, _extends2;
14
14
 
15
- var theme = _ref51.theme;
15
+ var theme = _ref52.theme;
16
16
  var borderColor = theme.palette.mode === 'light' ? lighten(alpha(theme.palette.divider, 1), 0.88) : darken(alpha(theme.palette.divider, 1), 0.68);
17
17
 
18
18
  var gridStyle = _extends({
@@ -68,11 +68,19 @@ export var GridRootStyles = styled('div', {
68
68
  minWidth: 0,
69
69
  flex: 1,
70
70
  whiteSpace: 'nowrap',
71
- overflowX: 'hidden'
71
+ overflow: 'hidden'
72
72
  }), _defineProperty(_extends2, "& .".concat(gridClasses.columnHeaderTitleContainerContent), {
73
73
  overflow: 'hidden',
74
74
  display: 'flex',
75
75
  alignItems: 'center'
76
+ }), _defineProperty(_extends2, "& .".concat(gridClasses['columnHeader--filledGroup'], " .").concat(gridClasses.columnHeaderTitleContainer), {
77
+ borderBottom: "solid ".concat(borderColor, " 1px"),
78
+ boxSizing: 'border-box'
79
+ }), _defineProperty(_extends2, "& .".concat(gridClasses['columnHeader--filledGroup'], ".").concat(gridClasses['columnHeader--showColumnBorder'], " .").concat(gridClasses.columnHeaderTitleContainer), {
80
+ borderBottom: "none"
81
+ }), _defineProperty(_extends2, "& .".concat(gridClasses['columnHeader--filledGroup'], ".").concat(gridClasses['columnHeader--showColumnBorder']), {
82
+ borderBottom: "solid ".concat(borderColor, " 1px"),
83
+ boxSizing: 'border-box'
76
84
  }), _defineProperty(_extends2, "& .".concat(gridClasses.sortIcon, ", & .").concat(gridClasses.filterIcon), {
77
85
  fontSize: 'inherit'
78
86
  }), _defineProperty(_extends2, "& .".concat(gridClasses['columnHeader--sortable']), {
@@ -214,7 +222,8 @@ export var GridRootStyles = styled('div', {
214
222
  justifyContent: 'center'
215
223
  }), _defineProperty(_extends2, "& .".concat(gridClasses.columnHeaderDraggableContainer), {
216
224
  display: 'flex',
217
- width: '100%'
225
+ width: '100%',
226
+ height: '100%'
218
227
  }), _defineProperty(_extends2, "& .".concat(gridClasses.rowReorderCellPlaceholder), {
219
228
  display: 'none'
220
229
  }), _defineProperty(_extends2, "& .".concat(gridClasses['columnHeader--dragging'], ", & .").concat(gridClasses['row--dragging']), {
@@ -123,6 +123,7 @@ process.env.NODE_ENV !== "production" ? GridMenu.propTypes = {
123
123
  // | These PropTypes are generated from the TypeScript type definitions |
124
124
  // | To update them edit the TypeScript types and run "yarn proptypes" |
125
125
  // ----------------------------------------------------------------------
126
+ children: PropTypes.node,
126
127
  onClickAway: PropTypes.func.isRequired,
127
128
  onExited: PropTypes.func,
128
129