@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
@@ -2,12 +2,13 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import * as ReactDOM from 'react-dom';
4
4
  import { useForkRef } from '@mui/material/utils';
5
+ import { styled } from '@mui/material/styles';
5
6
  import { defaultMemoize } from 'reselect';
6
7
  import { useGridApiContext } from '../../utils/useGridApiContext';
7
8
  import { useGridSelector } from '../../utils/useGridSelector';
8
9
  import { gridVisibleColumnDefinitionsSelector, gridColumnPositionsSelector } from '../columns/gridColumnsSelector';
9
10
  import { gridTabIndexColumnHeaderSelector, gridTabIndexCellSelector, gridFocusColumnHeaderSelector } from '../focus/gridFocusStateSelector';
10
- import { gridDensityHeaderHeightSelector } from '../density/densitySelector';
11
+ import { gridDensityHeaderHeightSelector, gridDensityHeaderGroupingMaxDepthSelector, gridDensityTotalHeaderHeightSelector } from '../density/densitySelector';
11
12
  import { gridFilterActiveItemsLookupSelector } from '../filter/gridFilterSelector';
12
13
  import { gridSortColumnLookupSelector } from '../sorting/gridSortingSelector';
13
14
  import { gridColumnMenuSelector } from '../columnMenu/columnMenuSelector';
@@ -17,7 +18,18 @@ import { GridColumnHeaderItem } from '../../../components/columnHeaders/GridColu
17
18
  import { getFirstColumnIndexToRender } from '../columns/gridColumnsUtils';
18
19
  import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
19
20
  import { getRenderableIndexes } from '../virtualization/useGridVirtualScroller';
21
+ import { GridColumnGroupHeader } from '../../../components/columnHeaders/GridColumnGroupHeader';
22
+ import { isDeepEqual } from '../../../utils/utils'; // TODO: add the possibility to switch this value if needed for customization
23
+
20
24
  import { jsx as _jsx } from "react/jsx-runtime";
25
+ const MERGE_EMPTY_CELLS = true;
26
+ const GridColumnHeaderRow = styled('div', {
27
+ name: 'MuiDataGrid',
28
+ slot: 'ColumnHeaderRow',
29
+ overridesResolver: (props, styles) => styles.columnHeaderRow
30
+ })(() => ({
31
+ display: 'flex'
32
+ }));
21
33
 
22
34
  function isUIEvent(event) {
23
35
  return !!event.target;
@@ -37,6 +49,8 @@ export const useGridColumnHeaders = props => {
37
49
  const cellTabIndexState = useGridSelector(apiRef, gridTabIndexCellSelector);
38
50
  const columnHeaderFocus = useGridSelector(apiRef, gridFocusColumnHeaderSelector);
39
51
  const headerHeight = useGridSelector(apiRef, gridDensityHeaderHeightSelector);
52
+ const headerGroupingMaxDepth = useGridSelector(apiRef, gridDensityHeaderGroupingMaxDepthSelector);
53
+ const totalHeaderHeight = useGridSelector(apiRef, gridDensityTotalHeaderHeightSelector);
40
54
  const filterColumnLookup = useGridSelector(apiRef, gridFilterActiveItemsLookupSelector);
41
55
  const sortColumnLookup = useGridSelector(apiRef, gridSortColumnLookupSelector);
42
56
  const columnMenuState = useGridSelector(apiRef, gridColumnMenuSelector);
@@ -132,9 +146,9 @@ export const useGridColumnHeaders = props => {
132
146
  useGridApiEventHandler(apiRef, 'columnResizeStop', handleColumnResizeStop);
133
147
  useGridApiEventHandler(apiRef, 'columnHeaderDragStart', handleColumnReorderStart);
134
148
  useGridApiEventHandler(apiRef, 'columnHeaderDragEnd', handleColumnReorderStop);
135
- useGridApiEventHandler(apiRef, 'rowsScroll', handleScroll);
149
+ useGridApiEventHandler(apiRef, 'rowsScroll', handleScroll); // Helper for computation common between getColumnHeaders and getColumnGroupHeaders
136
150
 
137
- const getColumns = (params, other = {}) => {
151
+ const getColumnsToRender = params => {
138
152
  const {
139
153
  renderContext: nextRenderContext = renderContext,
140
154
  minFirstColumn = minColumnIndex,
@@ -145,7 +159,6 @@ export const useGridColumnHeaders = props => {
145
159
  return null;
146
160
  }
147
161
 
148
- const columns = [];
149
162
  const [firstRowToRender, lastRowToRender] = getRenderableIndexes({
150
163
  firstIndex: nextRenderContext.firstRowIndex,
151
164
  lastIndex: nextRenderContext.lastRowIndex,
@@ -164,6 +177,27 @@ export const useGridColumnHeaders = props => {
164
177
  });
165
178
  const lastColumnToRender = Math.min(nextRenderContext.lastColumnIndex + rootProps.columnBuffer, maxLastColumn);
166
179
  const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
180
+ return {
181
+ renderedColumns,
182
+ firstColumnToRender,
183
+ lastColumnToRender,
184
+ minFirstColumn,
185
+ maxLastColumn
186
+ };
187
+ };
188
+
189
+ const getColumnHeaders = (params, other = {}) => {
190
+ const columnsToRender = getColumnsToRender(params);
191
+
192
+ if (columnsToRender == null) {
193
+ return null;
194
+ }
195
+
196
+ const {
197
+ renderedColumns,
198
+ firstColumnToRender
199
+ } = columnsToRender;
200
+ const columns = [];
167
201
 
168
202
  for (let i = 0; i < renderedColumns.length; i += 1) {
169
203
  const column = renderedColumns[i];
@@ -188,25 +222,186 @@ export const useGridColumnHeaders = props => {
188
222
  }, other), column.field));
189
223
  }
190
224
 
225
+ return /*#__PURE__*/_jsx(GridColumnHeaderRow, {
226
+ role: "row",
227
+ "aria-rowindex": headerGroupingMaxDepth + 1,
228
+ children: columns
229
+ });
230
+ };
231
+
232
+ const getParents = (path = [], depth) => path.slice(0, depth + 1);
233
+
234
+ const getColumnGroupHeaders = params => {
235
+ if (headerGroupingMaxDepth === 0) {
236
+ return null;
237
+ }
238
+
239
+ const columnsToRender = getColumnsToRender(params);
240
+
241
+ if (columnsToRender == null) {
242
+ return null;
243
+ }
244
+
245
+ const {
246
+ renderedColumns,
247
+ firstColumnToRender,
248
+ lastColumnToRender,
249
+ maxLastColumn
250
+ } = columnsToRender;
251
+ const columns = [];
252
+ const headerToRender = [];
253
+
254
+ for (let depth = 0; depth < headerGroupingMaxDepth; depth += 1) {
255
+ var _visibleColumns$first, _visibleColumns$first2, _visibleColumns$first3;
256
+
257
+ // Initialize the header line with a grouping item containing all the columns on the left of the virtualization which are in the same group as the first group to render
258
+ const initialHeader = [];
259
+ let leftOverflow = 0;
260
+ let columnIndex = firstColumnToRender - 1;
261
+ const firstColumnToRenderGroup = (_visibleColumns$first = visibleColumns[firstColumnToRender]) == null ? void 0 : (_visibleColumns$first2 = _visibleColumns$first.groupPath) == null ? void 0 : _visibleColumns$first2[depth]; // The array of parent is used to manage empty grouping cell
262
+ // When two empty grouping cell are next to each other, we merge them if the belong to the same group.
263
+
264
+ const firstColumnToRenderGroupParents = getParents((_visibleColumns$first3 = visibleColumns[firstColumnToRender]) == null ? void 0 : _visibleColumns$first3.groupPath, depth);
265
+
266
+ while (firstColumnToRenderGroup !== null && columnIndex >= minColumnIndex && (_visibleColumns$colum = visibleColumns[columnIndex]) != null && _visibleColumns$colum.groupPath && isDeepEqual(getParents((_visibleColumns$colum2 = visibleColumns[columnIndex]) == null ? void 0 : _visibleColumns$colum2.groupPath, depth), firstColumnToRenderGroupParents)) {
267
+ var _visibleColumns$colum, _visibleColumns$colum2, _column$computedWidth;
268
+
269
+ const column = visibleColumns[columnIndex];
270
+ leftOverflow += (_column$computedWidth = column.computedWidth) != null ? _column$computedWidth : 0;
271
+
272
+ if (initialHeader.length === 0) {
273
+ var _column$computedWidth2;
274
+
275
+ initialHeader.push({
276
+ width: (_column$computedWidth2 = column.computedWidth) != null ? _column$computedWidth2 : 0,
277
+ fields: [column.field],
278
+ groupId: firstColumnToRenderGroup,
279
+ groupParents: firstColumnToRenderGroupParents,
280
+ colIndex: columnIndex
281
+ });
282
+ } else {
283
+ var _column$computedWidth3;
284
+
285
+ initialHeader[0].width += (_column$computedWidth3 = column.computedWidth) != null ? _column$computedWidth3 : 0;
286
+ initialHeader[0].fields.push(column.field);
287
+ initialHeader[0].colIndex = columnIndex;
288
+ }
289
+
290
+ columnIndex -= 1;
291
+ }
292
+
293
+ const depthInfo = renderedColumns.reduce((aggregated, column, i) => {
294
+ var _column$computedWidth7;
295
+
296
+ const lastItem = aggregated[aggregated.length - 1];
297
+
298
+ if (column.groupPath && column.groupPath.length > depth) {
299
+ var _column$computedWidth5;
300
+
301
+ if (lastItem && lastItem.groupId === column.groupPath[depth]) {
302
+ var _column$computedWidth4;
303
+
304
+ // Merge with the previous columns
305
+ return [...aggregated.slice(0, aggregated.length - 1), _extends({}, lastItem, {
306
+ width: lastItem.width + ((_column$computedWidth4 = column.computedWidth) != null ? _column$computedWidth4 : 0),
307
+ fields: [...lastItem.fields, column.field]
308
+ })];
309
+ } // Create a new grouping
310
+
311
+
312
+ return [...aggregated, {
313
+ groupId: column.groupPath[depth],
314
+ groupParents: getParents(column.groupPath, depth),
315
+ width: (_column$computedWidth5 = column.computedWidth) != null ? _column$computedWidth5 : 0,
316
+ fields: [column.field],
317
+ colIndex: firstColumnToRender + i
318
+ }];
319
+ }
320
+
321
+ if (MERGE_EMPTY_CELLS && lastItem && lastItem.groupId === null && isDeepEqual(getParents(column.groupPath, depth), lastItem.groupParents)) {
322
+ var _column$computedWidth6;
323
+
324
+ // We merge with previous column
325
+ return [...aggregated.slice(0, aggregated.length - 1), _extends({}, lastItem, {
326
+ width: lastItem.width + ((_column$computedWidth6 = column.computedWidth) != null ? _column$computedWidth6 : 0),
327
+ fields: [...lastItem.fields, column.field]
328
+ })];
329
+ } // We create new empty cell
330
+
331
+
332
+ return [...aggregated, {
333
+ groupId: null,
334
+ groupParents: getParents(column.groupPath, depth),
335
+ width: (_column$computedWidth7 = column.computedWidth) != null ? _column$computedWidth7 : 0,
336
+ fields: [column.field],
337
+ colIndex: firstColumnToRender + i
338
+ }];
339
+ }, initialHeader);
340
+ columnIndex = lastColumnToRender;
341
+ const lastColumnToRenderGroup = depthInfo[depthInfo.length - 1].groupId;
342
+
343
+ while (lastColumnToRenderGroup !== null && columnIndex < maxLastColumn && (_visibleColumns$colum3 = visibleColumns[columnIndex]) != null && _visibleColumns$colum3.groupPath && ((_visibleColumns$colum4 = visibleColumns[columnIndex]) == null ? void 0 : (_visibleColumns$colum5 = _visibleColumns$colum4.groupPath) == null ? void 0 : _visibleColumns$colum5[depth]) === lastColumnToRenderGroup) {
344
+ var _visibleColumns$colum3, _visibleColumns$colum4, _visibleColumns$colum5, _column$computedWidth8;
345
+
346
+ const column = visibleColumns[columnIndex];
347
+ depthInfo[depthInfo.length - 1].width += (_column$computedWidth8 = column.computedWidth) != null ? _column$computedWidth8 : 0;
348
+ depthInfo[depthInfo.length - 1].fields.push(column.field);
349
+ columnIndex += 1;
350
+ }
351
+
352
+ headerToRender.push({
353
+ leftOverflow,
354
+ elements: [...depthInfo]
355
+ });
356
+ }
357
+
358
+ headerToRender.forEach((depthInfo, depthIndex) => {
359
+ columns.push( /*#__PURE__*/_jsx(GridColumnHeaderRow, {
360
+ style: {
361
+ height: `${headerHeight}px`,
362
+ transform: `translateX(-${depthInfo.leftOverflow}px)`
363
+ },
364
+ role: "row",
365
+ "aria-rowindex": depthIndex + 1,
366
+ children: depthInfo.elements.map(({
367
+ groupId,
368
+ width,
369
+ fields,
370
+ colIndex
371
+ }, groupIndex) => {
372
+ return /*#__PURE__*/_jsx(GridColumnGroupHeader, {
373
+ groupId: groupId,
374
+ width: width,
375
+ fields: fields,
376
+ colIndex: colIndex,
377
+ depth: depthIndex,
378
+ isLastColumn: colIndex === visibleColumns.length - fields.length,
379
+ extendRowFullWidth: !rootProps.disableExtendRowFullWidth,
380
+ maxDepth: headerToRender.length,
381
+ height: headerHeight
382
+ }, groupIndex);
383
+ })
384
+ }, depthIndex));
385
+ });
191
386
  return columns;
192
387
  };
193
388
 
194
389
  const rootStyle = {
195
- minHeight: headerHeight,
196
- maxHeight: headerHeight,
390
+ minHeight: totalHeaderHeight,
391
+ maxHeight: totalHeaderHeight,
197
392
  lineHeight: `${headerHeight}px`
198
393
  };
199
394
  return {
200
395
  renderContext,
201
- getColumns,
396
+ getColumnHeaders,
397
+ getColumnGroupHeaders,
202
398
  isDragging: !!dragCol,
203
399
  getRootProps: (other = {}) => _extends({
204
400
  style: rootStyle
205
401
  }, other),
206
402
  getInnerProps: () => ({
207
403
  ref: handleInnerRef,
208
- 'aria-rowindex': 1,
209
- role: 'row'
404
+ role: 'rowgroup'
210
405
  })
211
406
  };
212
407
  };
@@ -3,4 +3,6 @@ export declare const gridDensitySelector: (state: GridStateCommunity) => import(
3
3
  export declare const gridDensityValueSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, import("../../..").GridDensity>;
4
4
  export declare const gridDensityRowHeightSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, number>;
5
5
  export declare const gridDensityHeaderHeightSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, number>;
6
+ export declare const gridDensityHeaderGroupingMaxDepthSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, number>;
6
7
  export declare const gridDensityFactorSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, number>;
8
+ export declare const gridDensityTotalHeaderHeightSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, number>;
@@ -3,4 +3,6 @@ export const gridDensitySelector = state => state.density;
3
3
  export const gridDensityValueSelector = createSelector(gridDensitySelector, density => density.value);
4
4
  export const gridDensityRowHeightSelector = createSelector(gridDensitySelector, density => density.rowHeight);
5
5
  export const gridDensityHeaderHeightSelector = createSelector(gridDensitySelector, density => density.headerHeight);
6
- export const gridDensityFactorSelector = createSelector(gridDensitySelector, density => density.factor);
6
+ export const gridDensityHeaderGroupingMaxDepthSelector = createSelector(gridDensitySelector, density => density.headerGroupingMaxDepth);
7
+ export const gridDensityFactorSelector = createSelector(gridDensitySelector, density => density.factor);
8
+ export const gridDensityTotalHeaderHeightSelector = createSelector(gridDensitySelector, density => density.headerHeight * (1 + density.headerGroupingMaxDepth));
@@ -3,5 +3,6 @@ export interface GridDensityState {
3
3
  value: GridDensity;
4
4
  rowHeight: number;
5
5
  headerHeight: number;
6
+ headerGroupingMaxDepth: number;
6
7
  factor: number;
7
8
  }
@@ -4,5 +4,5 @@ import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  import { GridStateInitializer } from '../../utils/useGridInitializeState';
5
5
  export declare const COMPACT_DENSITY_FACTOR = 0.7;
6
6
  export declare const COMFORTABLE_DENSITY_FACTOR = 1.3;
7
- export declare const densityStateInitializer: GridStateInitializer<Pick<DataGridProcessedProps, 'density' | 'headerHeight' | 'rowHeight'>>;
7
+ export declare const densityStateInitializer: GridStateInitializer<Pick<DataGridProcessedProps, 'density' | 'headerHeight' | 'rowHeight' | 'columnGroupingModel'>>;
8
8
  export declare const useGridDensity: (apiRef: React.MutableRefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, 'headerHeight' | 'rowHeight' | 'density'>) => void;
@@ -5,16 +5,20 @@ import { useGridLogger } from '../../utils/useGridLogger';
5
5
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
6
6
  import { gridDensitySelector } from './densitySelector';
7
7
  import { isDeepEqual } from '../../../utils/utils';
8
+ import { useGridSelector } from '../../utils/useGridSelector';
9
+ import { gridVisibleColumnDefinitionsSelector } from '../columns';
10
+ import { unwrapGroupingColumnModel } from '../columnGrouping/useGridColumnGrouping';
8
11
  export const COMPACT_DENSITY_FACTOR = 0.7;
9
12
  export const COMFORTABLE_DENSITY_FACTOR = 1.3; // TODO v6: revise keeping headerHeight and rowHeight in state
10
13
 
11
- const getUpdatedDensityState = (newDensity, newHeaderHeight, newRowHeight) => {
14
+ const getUpdatedDensityState = (newDensity, newHeaderHeight, newRowHeight, newMaxDepth) => {
12
15
  switch (newDensity) {
13
16
  case GridDensityTypes.Compact:
14
17
  return {
15
18
  value: newDensity,
16
19
  headerHeight: Math.floor(newHeaderHeight * COMPACT_DENSITY_FACTOR),
17
20
  rowHeight: Math.floor(newRowHeight * COMPACT_DENSITY_FACTOR),
21
+ headerGroupingMaxDepth: newMaxDepth,
18
22
  factor: COMPACT_DENSITY_FACTOR
19
23
  };
20
24
 
@@ -23,6 +27,7 @@ const getUpdatedDensityState = (newDensity, newHeaderHeight, newRowHeight) => {
23
27
  value: newDensity,
24
28
  headerHeight: Math.floor(newHeaderHeight * COMFORTABLE_DENSITY_FACTOR),
25
29
  rowHeight: Math.floor(newRowHeight * COMFORTABLE_DENSITY_FACTOR),
30
+ headerGroupingMaxDepth: newMaxDepth,
26
31
  factor: COMFORTABLE_DENSITY_FACTOR
27
32
  };
28
33
 
@@ -31,21 +36,52 @@ const getUpdatedDensityState = (newDensity, newHeaderHeight, newRowHeight) => {
31
36
  value: newDensity,
32
37
  headerHeight: newHeaderHeight,
33
38
  rowHeight: newRowHeight,
39
+ headerGroupingMaxDepth: newMaxDepth,
34
40
  factor: 1
35
41
  };
36
42
  }
37
43
  };
38
44
 
39
- export const densityStateInitializer = (state, props) => _extends({}, state, {
40
- density: getUpdatedDensityState(props.density, props.headerHeight, props.rowHeight)
41
- });
45
+ export const densityStateInitializer = (state, props) => {
46
+ // TODO: think about improving this initialization. Could it be done in the useColumn initializer?
47
+ // TODO: manage to remove ts-ignore
48
+ let maxDepth;
49
+
50
+ if (props.columnGroupingModel == null || Object.keys(props.columnGroupingModel).length === 0) {
51
+ maxDepth = 0;
52
+ } else {
53
+ const unwrappedGroupingColumnModel = unwrapGroupingColumnModel(props.columnGroupingModel);
54
+ const columnsState = state.columns;
55
+ const visibleColumns = columnsState.all.filter(field => columnsState.columnVisibilityModel[field] !== false);
56
+
57
+ if (visibleColumns.length === 0) {
58
+ maxDepth = 0;
59
+ } else {
60
+ maxDepth = Math.max(...visibleColumns.map(field => {
61
+ var _unwrappedGroupingCol, _unwrappedGroupingCol2;
62
+
63
+ return (_unwrappedGroupingCol = (_unwrappedGroupingCol2 = unwrappedGroupingColumnModel[field]) == null ? void 0 : _unwrappedGroupingCol2.length) != null ? _unwrappedGroupingCol : 0;
64
+ }));
65
+ }
66
+ }
67
+
68
+ return _extends({}, state, {
69
+ density: getUpdatedDensityState(props.density, props.headerHeight, props.rowHeight, maxDepth)
70
+ });
71
+ };
42
72
  export const useGridDensity = (apiRef, props) => {
73
+ const visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
74
+ const maxDepth = visibleColumns.length > 0 ? Math.max(...visibleColumns.map(column => {
75
+ var _column$groupPath$len, _column$groupPath;
76
+
77
+ return (_column$groupPath$len = (_column$groupPath = column.groupPath) == null ? void 0 : _column$groupPath.length) != null ? _column$groupPath$len : 0;
78
+ })) : 0;
43
79
  const logger = useGridLogger(apiRef, 'useDensity');
44
- const setDensity = React.useCallback((newDensity, newHeaderHeight = props.headerHeight, newRowHeight = props.rowHeight) => {
80
+ const setDensity = React.useCallback((newDensity, newHeaderHeight = props.headerHeight, newRowHeight = props.rowHeight, newMaxDepth = maxDepth) => {
45
81
  logger.debug(`Set grid density to ${newDensity}`);
46
82
  apiRef.current.setState(state => {
47
83
  const currentDensityState = gridDensitySelector(state);
48
- const newDensityState = getUpdatedDensityState(newDensity, newHeaderHeight, newRowHeight);
84
+ const newDensityState = getUpdatedDensityState(newDensity, newHeaderHeight, newRowHeight, newMaxDepth);
49
85
 
50
86
  if (isDeepEqual(currentDensityState, newDensityState)) {
51
87
  return state;
@@ -56,10 +92,10 @@ export const useGridDensity = (apiRef, props) => {
56
92
  });
57
93
  });
58
94
  apiRef.current.forceUpdate();
59
- }, [logger, apiRef, props.headerHeight, props.rowHeight]);
95
+ }, [logger, apiRef, props.headerHeight, props.rowHeight, maxDepth]);
60
96
  React.useEffect(() => {
61
- apiRef.current.setDensity(props.density, props.headerHeight, props.rowHeight);
62
- }, [apiRef, props.density, props.rowHeight, props.headerHeight]);
97
+ apiRef.current.setDensity(props.density, props.headerHeight, props.rowHeight, maxDepth);
98
+ }, [apiRef, props.density, props.rowHeight, props.headerHeight, maxDepth]);
63
99
  const densityApi = {
64
100
  setDensity
65
101
  };
@@ -4,7 +4,7 @@ import { useGridApiEventHandler, useGridApiOptionHandler } from '../../utils/use
4
4
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
5
5
  import { useGridLogger } from '../../utils/useGridLogger';
6
6
  import { gridColumnsTotalWidthSelector } from '../columns';
7
- import { gridDensityHeaderHeightSelector, gridDensityRowHeightSelector } from '../density';
7
+ import { gridDensityTotalHeaderHeightSelector, gridDensityRowHeightSelector } from '../density';
8
8
  import { useGridSelector } from '../../utils';
9
9
  import { getVisibleRows } from '../../utils/useGridVisibleRows';
10
10
  import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
@@ -42,7 +42,7 @@ export function useGridDimensions(apiRef, props) {
42
42
  const rootDimensionsRef = React.useRef(null);
43
43
  const fullDimensionsRef = React.useRef(null);
44
44
  const rowsMeta = useGridSelector(apiRef, gridRowsMetaSelector);
45
- const headerHeight = useGridSelector(apiRef, gridDensityHeaderHeightSelector);
45
+ const totalHeaderHeight = useGridSelector(apiRef, gridDensityTotalHeaderHeightSelector);
46
46
  const updateGridDimensionsRef = React.useCallback(() => {
47
47
  var _apiRef$current$rootE;
48
48
 
@@ -87,7 +87,7 @@ export function useGridDimensions(apiRef, props) {
87
87
  } else {
88
88
  viewportOuterSize = {
89
89
  width: rootDimensionsRef.current.width,
90
- height: rootDimensionsRef.current.height - headerHeight
90
+ height: rootDimensionsRef.current.height - totalHeaderHeight
91
91
  };
92
92
  const scrollInformation = hasScroll({
93
93
  content: {
@@ -121,7 +121,7 @@ export function useGridDimensions(apiRef, props) {
121
121
  if (newFullDimensions.viewportInnerSize.width !== (prevDimensions == null ? void 0 : prevDimensions.viewportInnerSize.width) || newFullDimensions.viewportInnerSize.height !== (prevDimensions == null ? void 0 : prevDimensions.viewportInnerSize.height)) {
122
122
  apiRef.current.publishEvent('viewportInnerSizeChange', newFullDimensions.viewportInnerSize);
123
123
  }
124
- }, [apiRef, props.scrollbarSize, props.autoHeight, headerHeight, rowsMeta.currentPageTotalHeight]);
124
+ }, [apiRef, props.scrollbarSize, props.autoHeight, totalHeaderHeight, rowsMeta.currentPageTotalHeight]);
125
125
  const resize = React.useCallback(() => {
126
126
  updateGridDimensionsRef();
127
127
  apiRef.current.publishEvent('debouncedResize', rootDimensionsRef.current);
@@ -4,7 +4,7 @@ import { ownerDocument } from '@mui/material/utils';
4
4
  import { useGridLogger } from '../../utils/useGridLogger';
5
5
  import { gridVisibleRowCountSelector } from '../filter/gridFilterSelector';
6
6
  import { gridColumnDefinitionsSelector, gridColumnVisibilityModelSelector } from '../columns/gridColumnsSelector';
7
- import { gridDensityHeaderHeightSelector } from '../density/densitySelector';
7
+ import { gridDensityTotalHeaderHeightSelector } from '../density/densitySelector';
8
8
  import { gridClasses } from '../../../constants/gridClasses';
9
9
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
10
10
  import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
@@ -79,7 +79,7 @@ export const useGridPrintExport = (apiRef, props) => {
79
79
  return;
80
80
  }
81
81
 
82
- const headerHeight = gridDensityHeaderHeightSelector(apiRef);
82
+ const totalHeaderHeight = gridDensityTotalHeaderHeightSelector(apiRef);
83
83
  const rowsMeta = gridRowsMetaSelector(apiRef.current.state);
84
84
  const gridRootElement = apiRef.current.rootElementRef.current;
85
85
  const gridClone = gridRootElement.cloneNode(true);
@@ -113,7 +113,7 @@ export const useGridPrintExport = (apiRef, props) => {
113
113
  } // Expand container height to accommodate all rows
114
114
 
115
115
 
116
- gridClone.style.height = `${rowsMeta.currentPageTotalHeight + headerHeight + gridToolbarElementHeight + gridFooterElementHeight}px`; // Remove all loaded elements from the current host
116
+ gridClone.style.height = `${rowsMeta.currentPageTotalHeight + totalHeaderHeight + gridToolbarElementHeight + gridFooterElementHeight}px`; // Remove all loaded elements from the current host
117
117
 
118
118
  printDoc.body.innerHTML = '';
119
119
  printDoc.body.appendChild(gridClone);
@@ -36,7 +36,7 @@ export declare const gridFilteredDescendantCountLookupSelector: import("../../..
36
36
  */
37
37
  export declare const gridVisibleSortedRowEntriesSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, {
38
38
  id: import("../../..").GridRowId;
39
- model: any;
39
+ model: import("../../..").GridValidRowModel;
40
40
  }[]>;
41
41
  /**
42
42
  * Get the id of the rows accessible after the filtering process.
@@ -51,7 +51,7 @@ export declare const gridVisibleSortedRowIdsSelector: import("../../../utils/cre
51
51
  */
52
52
  export declare const gridFilteredSortedRowEntriesSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, {
53
53
  id: import("../../..").GridRowId;
54
- model: any;
54
+ model: import("../../..").GridValidRowModel;
55
55
  }[]>;
56
56
  /**
57
57
  * Get the id of the rows accessible after the filtering process.
@@ -72,7 +72,7 @@ export declare const gridVisibleRowsSelector: import("../../../utils/createSelec
72
72
  */
73
73
  export declare const gridVisibleSortedTopLevelRowEntriesSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, {
74
74
  id: import("../../..").GridRowId;
75
- model: any;
75
+ model: import("../../..").GridValidRowModel;
76
76
  }[]>;
77
77
  /**
78
78
  * Get the amount of rows accessible after the filtering process.
@@ -29,5 +29,5 @@ export declare const buildAggregatedFilterItemsApplier: (filterModel: GridFilter
29
29
  */
30
30
  export declare const buildAggregatedQuickFilterApplier: (filterModel: GridFilterModel, apiRef: React.MutableRefObject<GridApiCommunity>) => GridFilterItemApplierNotAggregated | null;
31
31
  export declare const buildAggregatedFilterApplier: (filterModel: GridFilterModel, apiRef: React.MutableRefObject<GridApiCommunity>) => GridAggregatedFilterItemApplier;
32
- export declare const passFilterLogic: (allFilterItemResults: (null | GridFilterItemResult)[], allQuickFilterResults: (null | GridQuickFilterValueResult)[], filterModel: GridFilterModel) => boolean;
32
+ export declare const passFilterLogic: (allFilterItemResults: (null | GridFilterItemResult)[], allQuickFilterResults: (null | GridQuickFilterValueResult)[], filterModel: GridFilterModel, apiRef: React.MutableRefObject<GridApiCommunity>) => boolean;
33
33
  export {};