@mui/x-data-grid 5.8.0 → 5.9.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 (242) hide show
  1. package/CHANGELOG.md +141 -63
  2. package/DataGrid/DataGrid.js +1 -1
  3. package/DataGrid/useDataGridComponent.js +3 -1
  4. package/LICENSE +21 -0
  5. package/README.md +1 -1
  6. package/components/GridRow.d.ts +4 -0
  7. package/components/GridRow.js +49 -23
  8. package/components/base/GridOverlays.js +4 -3
  9. package/components/cell/GridActionsCell.d.ts +5 -1
  10. package/components/cell/GridActionsCell.js +170 -21
  11. package/components/cell/GridActionsCellItem.d.ts +66 -4
  12. package/components/cell/GridActionsCellItem.js +7 -5
  13. package/components/cell/GridCell.d.ts +1 -0
  14. package/components/cell/GridCell.js +28 -7
  15. package/components/cell/GridEditInputCell.js +1 -1
  16. package/components/cell/GridEditSingleSelectCell.js +22 -13
  17. package/components/columnHeaders/GridColumnHeaderItem.js +4 -7
  18. package/components/columnHeaders/GridColumnHeaders.d.ts +0 -1
  19. package/components/columnHeaders/GridColumnHeaders.js +1 -1
  20. package/components/columnSelection/GridCellCheckboxRenderer.d.ts +3 -3
  21. package/components/columnSelection/GridCellCheckboxRenderer.js +20 -3
  22. package/components/panel/GridPanel.js +1 -0
  23. package/components/panel/filterPanel/GridFilterForm.js +14 -10
  24. package/components/panel/filterPanel/GridFilterInputBoolean.js +13 -8
  25. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +22 -15
  26. package/components/panel/filterPanel/GridFilterInputValue.js +22 -15
  27. package/components/toolbar/GridToolbarDensitySelector.js +1 -1
  28. package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
  29. package/components/virtualization/GridVirtualScroller.js +2 -0
  30. package/components/virtualization/GridVirtualScrollerContent.js +1 -3
  31. package/constants/gridDetailPanelToggleField.d.ts +1 -0
  32. package/constants/gridDetailPanelToggleField.js +2 -0
  33. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +32 -15
  34. package/hooks/core/pipeProcessing/index.d.ts +1 -0
  35. package/hooks/core/pipeProcessing/index.js +2 -1
  36. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +8 -3
  37. package/hooks/core/pipeProcessing/useGridPipeProcessing.js +53 -19
  38. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +3 -0
  39. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
  40. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +0 -3
  41. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -4
  42. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +0 -1
  43. package/hooks/features/columnHeaders/useGridColumnHeaders.js +76 -10
  44. package/hooks/features/columns/gridColumnsInterfaces.d.ts +3 -1
  45. package/hooks/features/columns/gridColumnsUtils.d.ts +19 -1
  46. package/hooks/features/columns/gridColumnsUtils.js +61 -8
  47. package/hooks/features/columns/useGridColumnSpanning.d.ts +7 -0
  48. package/hooks/features/columns/useGridColumnSpanning.js +109 -0
  49. package/hooks/features/columns/useGridColumns.js +24 -18
  50. package/hooks/features/dimensions/useGridDimensions.js +3 -3
  51. package/hooks/features/editRows/useGridCellEditing.new.js +18 -10
  52. package/hooks/features/editRows/useGridEditing.new.js +7 -3
  53. package/hooks/features/editRows/useGridRowEditing.new.js +23 -15
  54. package/hooks/features/filter/useGridFilter.js +14 -9
  55. package/hooks/features/focus/useGridFocus.js +19 -9
  56. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -0
  57. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +39 -7
  58. package/hooks/features/rows/gridRowsSelector.d.ts +1 -0
  59. package/hooks/features/rows/gridRowsSelector.js +1 -0
  60. package/hooks/features/rows/gridRowsState.d.ts +4 -0
  61. package/hooks/features/rows/useGridRows.d.ts +2 -2
  62. package/hooks/features/rows/useGridRows.js +5 -4
  63. package/hooks/features/rows/useGridRowsMeta.js +6 -13
  64. package/hooks/features/scroll/useGridScroll.d.ts +2 -0
  65. package/hooks/features/scroll/useGridScroll.js +25 -3
  66. package/hooks/features/selection/useGridSelection.js +3 -2
  67. package/hooks/features/sorting/useGridSorting.js +10 -10
  68. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +7 -0
  69. package/hooks/features/virtualization/useGridVirtualScroller.js +54 -27
  70. package/index.js +1 -1
  71. package/internals/index.d.ts +1 -0
  72. package/internals/index.js +1 -0
  73. package/legacy/DataGrid/DataGrid.js +1 -1
  74. package/legacy/DataGrid/useDataGridComponent.js +3 -1
  75. package/legacy/components/GridRow.js +47 -23
  76. package/legacy/components/base/GridOverlays.js +4 -3
  77. package/legacy/components/cell/GridActionsCell.js +188 -27
  78. package/legacy/components/cell/GridActionsCellItem.js +7 -5
  79. package/legacy/components/cell/GridCell.js +29 -7
  80. package/legacy/components/cell/GridEditInputCell.js +1 -1
  81. package/legacy/components/cell/GridEditSingleSelectCell.js +33 -24
  82. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +4 -7
  83. package/legacy/components/columnHeaders/GridColumnHeaders.js +2 -3
  84. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +21 -3
  85. package/legacy/components/panel/GridPanel.js +1 -0
  86. package/legacy/components/panel/filterPanel/GridFilterForm.js +14 -10
  87. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +13 -8
  88. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +22 -17
  89. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +22 -17
  90. package/legacy/components/toolbar/GridToolbarDensitySelector.js +1 -1
  91. package/legacy/components/virtualization/GridVirtualScroller.js +2 -0
  92. package/legacy/components/virtualization/GridVirtualScrollerContent.js +1 -3
  93. package/legacy/constants/gridDetailPanelToggleField.js +2 -0
  94. package/legacy/hooks/core/pipeProcessing/index.js +2 -1
  95. package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +60 -24
  96. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
  97. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -4
  98. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +89 -10
  99. package/legacy/hooks/features/columns/gridColumnsUtils.js +79 -22
  100. package/legacy/hooks/features/columns/useGridColumnSpanning.js +107 -0
  101. package/legacy/hooks/features/columns/useGridColumns.js +24 -18
  102. package/legacy/hooks/features/dimensions/useGridDimensions.js +3 -3
  103. package/legacy/hooks/features/editRows/useGridCellEditing.new.js +14 -8
  104. package/legacy/hooks/features/editRows/useGridEditing.new.js +7 -3
  105. package/legacy/hooks/features/editRows/useGridRowEditing.new.js +32 -24
  106. package/legacy/hooks/features/filter/useGridFilter.js +14 -9
  107. package/legacy/hooks/features/focus/useGridFocus.js +19 -9
  108. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +39 -6
  109. package/legacy/hooks/features/rows/gridRowsSelector.js +3 -0
  110. package/legacy/hooks/features/rows/useGridRows.js +5 -4
  111. package/legacy/hooks/features/rows/useGridRowsMeta.js +6 -13
  112. package/legacy/hooks/features/scroll/useGridScroll.js +25 -3
  113. package/legacy/hooks/features/selection/useGridSelection.js +3 -2
  114. package/legacy/hooks/features/sorting/useGridSorting.js +5 -7
  115. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +65 -37
  116. package/legacy/index.js +1 -1
  117. package/legacy/internals/index.js +1 -0
  118. package/legacy/locales/huHU.js +120 -0
  119. package/legacy/locales/index.js +1 -0
  120. package/legacy/models/api/gridColumnSpanning.js +1 -0
  121. package/legacy/models/events/gridEvents.js +2 -3
  122. package/legacy/models/gridColumnSpanning.js +1 -0
  123. package/locales/huHU.d.ts +2 -0
  124. package/locales/huHU.js +108 -0
  125. package/locales/index.d.ts +1 -0
  126. package/locales/index.js +1 -0
  127. package/models/api/gridApiCommon.d.ts +2 -1
  128. package/models/api/gridColumnSpanning.d.ts +28 -0
  129. package/models/api/gridColumnSpanning.js +1 -0
  130. package/models/api/gridEditingApi.d.ts +49 -3
  131. package/models/colDef/gridColDef.d.ts +5 -0
  132. package/models/events/gridEventLookup.d.ts +3 -8
  133. package/models/events/gridEvents.d.ts +9 -14
  134. package/models/events/gridEvents.js +2 -3
  135. package/models/gridColumnSpanning.d.ts +12 -0
  136. package/models/gridColumnSpanning.js +1 -0
  137. package/models/gridEditRowModel.d.ts +1 -1
  138. package/models/params/gridCellParams.d.ts +12 -2
  139. package/models/params/gridRowParams.d.ts +5 -0
  140. package/models/props/DataGridProps.d.ts +1 -1
  141. package/modern/DataGrid/DataGrid.js +1 -1
  142. package/modern/DataGrid/useDataGridComponent.js +3 -1
  143. package/modern/components/GridRow.js +47 -21
  144. package/modern/components/base/GridOverlays.js +4 -3
  145. package/modern/components/cell/GridActionsCell.js +168 -21
  146. package/modern/components/cell/GridActionsCellItem.js +7 -5
  147. package/modern/components/cell/GridCell.js +28 -7
  148. package/modern/components/cell/GridEditInputCell.js +1 -1
  149. package/modern/components/cell/GridEditSingleSelectCell.js +20 -11
  150. package/modern/components/columnHeaders/GridColumnHeaderItem.js +4 -7
  151. package/modern/components/columnHeaders/GridColumnHeaders.js +1 -1
  152. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +20 -3
  153. package/modern/components/panel/GridPanel.js +1 -0
  154. package/modern/components/panel/filterPanel/GridFilterForm.js +10 -6
  155. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +11 -6
  156. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +20 -13
  157. package/modern/components/panel/filterPanel/GridFilterInputValue.js +20 -13
  158. package/modern/components/toolbar/GridToolbarDensitySelector.js +1 -1
  159. package/modern/components/virtualization/GridVirtualScroller.js +2 -0
  160. package/modern/components/virtualization/GridVirtualScrollerContent.js +1 -3
  161. package/modern/constants/gridDetailPanelToggleField.js +2 -0
  162. package/modern/hooks/core/pipeProcessing/index.js +2 -1
  163. package/modern/hooks/core/pipeProcessing/useGridPipeProcessing.js +53 -19
  164. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
  165. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -4
  166. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +76 -10
  167. package/modern/hooks/features/columns/gridColumnsUtils.js +61 -8
  168. package/modern/hooks/features/columns/useGridColumnSpanning.js +107 -0
  169. package/modern/hooks/features/columns/useGridColumns.js +24 -18
  170. package/modern/hooks/features/dimensions/useGridDimensions.js +3 -3
  171. package/modern/hooks/features/editRows/useGridCellEditing.new.js +18 -10
  172. package/modern/hooks/features/editRows/useGridEditing.new.js +7 -3
  173. package/modern/hooks/features/editRows/useGridRowEditing.new.js +23 -15
  174. package/modern/hooks/features/filter/useGridFilter.js +14 -9
  175. package/modern/hooks/features/focus/useGridFocus.js +19 -9
  176. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +37 -7
  177. package/modern/hooks/features/rows/gridRowsSelector.js +1 -0
  178. package/modern/hooks/features/rows/useGridRows.js +5 -4
  179. package/modern/hooks/features/rows/useGridRowsMeta.js +6 -13
  180. package/modern/hooks/features/scroll/useGridScroll.js +23 -3
  181. package/modern/hooks/features/selection/useGridSelection.js +3 -2
  182. package/modern/hooks/features/sorting/useGridSorting.js +10 -10
  183. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +54 -23
  184. package/modern/index.js +1 -1
  185. package/modern/internals/index.js +1 -0
  186. package/modern/locales/huHU.js +108 -0
  187. package/modern/locales/index.js +1 -0
  188. package/modern/models/api/gridColumnSpanning.js +1 -0
  189. package/modern/models/events/gridEvents.js +2 -3
  190. package/modern/models/gridColumnSpanning.js +1 -0
  191. package/node/DataGrid/DataGrid.js +1 -1
  192. package/node/DataGrid/useDataGridComponent.js +4 -1
  193. package/node/components/GridRow.js +50 -23
  194. package/node/components/base/GridOverlays.js +3 -2
  195. package/node/components/cell/GridActionsCell.js +172 -21
  196. package/node/components/cell/GridActionsCellItem.js +7 -4
  197. package/node/components/cell/GridCell.js +28 -7
  198. package/node/components/cell/GridEditInputCell.js +1 -1
  199. package/node/components/cell/GridEditSingleSelectCell.js +23 -13
  200. package/node/components/columnHeaders/GridColumnHeaderItem.js +4 -7
  201. package/node/components/columnHeaders/GridColumnHeaders.js +1 -1
  202. package/node/components/columnSelection/GridCellCheckboxRenderer.js +20 -3
  203. package/node/components/panel/GridPanel.js +1 -0
  204. package/node/components/panel/filterPanel/GridFilterForm.js +15 -10
  205. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +14 -8
  206. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +23 -15
  207. package/node/components/panel/filterPanel/GridFilterInputValue.js +23 -15
  208. package/node/components/toolbar/GridToolbarDensitySelector.js +1 -1
  209. package/node/components/virtualization/GridVirtualScroller.js +2 -0
  210. package/node/components/virtualization/GridVirtualScrollerContent.js +1 -3
  211. package/node/constants/gridDetailPanelToggleField.js +9 -0
  212. package/node/hooks/core/pipeProcessing/index.js +13 -0
  213. package/node/hooks/core/pipeProcessing/useGridPipeProcessing.js +51 -20
  214. package/node/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +42 -0
  215. package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -3
  216. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +80 -10
  217. package/node/hooks/features/columns/gridColumnsUtils.js +65 -9
  218. package/node/hooks/features/columns/useGridColumnSpanning.js +130 -0
  219. package/node/hooks/features/columns/useGridColumns.js +23 -17
  220. package/node/hooks/features/dimensions/useGridDimensions.js +3 -3
  221. package/node/hooks/features/editRows/useGridCellEditing.new.js +18 -10
  222. package/node/hooks/features/editRows/useGridEditing.new.js +6 -2
  223. package/node/hooks/features/editRows/useGridRowEditing.new.js +21 -14
  224. package/node/hooks/features/filter/useGridFilter.js +14 -9
  225. package/node/hooks/features/focus/useGridFocus.js +19 -9
  226. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +40 -7
  227. package/node/hooks/features/rows/gridRowsSelector.js +3 -1
  228. package/node/hooks/features/rows/useGridRows.js +5 -4
  229. package/node/hooks/features/rows/useGridRowsMeta.js +6 -14
  230. package/node/hooks/features/scroll/useGridScroll.js +26 -2
  231. package/node/hooks/features/selection/useGridSelection.js +4 -2
  232. package/node/hooks/features/sorting/useGridSorting.js +10 -10
  233. package/node/hooks/features/virtualization/useGridVirtualScroller.js +59 -27
  234. package/node/index.js +1 -1
  235. package/node/internals/index.js +8 -0
  236. package/node/locales/huHU.js +118 -0
  237. package/node/locales/index.js +13 -0
  238. package/node/models/api/gridColumnSpanning.js +5 -0
  239. package/node/models/events/gridEvents.js +2 -3
  240. package/node/models/gridColumnSpanning.js +5 -0
  241. package/package.json +4 -4
  242. package/utils/domUtils.d.ts +2 -2
@@ -43,7 +43,7 @@ const convertGridRowsPropToState = ({
43
43
  };
44
44
  };
45
45
 
46
- const getRowsStateFromCache = (rowsCache, previousTree, apiRef, rowCountProp) => {
46
+ const getRowsStateFromCache = (rowsCache, previousTree, apiRef, rowCountProp, loadingProp) => {
47
47
  const {
48
48
  value
49
49
  } = rowsCache.state;
@@ -53,6 +53,7 @@ const getRowsStateFromCache = (rowsCache, previousTree, apiRef, rowCountProp) =>
53
53
  }));
54
54
  const dataTopLevelRowCount = groupingResponse.treeDepth === 1 ? groupingResponse.ids.length : Object.values(groupingResponse.tree).filter(node => node.parent == null).length;
55
55
  return _extends({}, groupingResponse, {
56
+ loading: loadingProp,
56
57
  totalRowCount: Math.max(rowCount, groupingResponse.ids.length),
57
58
  totalTopLevelRowCount: Math.max(rowCount, dataTopLevelRowCount)
58
59
  });
@@ -75,7 +76,7 @@ export const rowsStateInitializer = (state, props, apiRef) => {
75
76
  lastUpdateMs: Date.now()
76
77
  };
77
78
  return _extends({}, state, {
78
- rows: getRowsStateFromCache(rowsCache, null, apiRef, props.rowCount),
79
+ rows: getRowsStateFromCache(rowsCache, null, apiRef, props.rowCount, props.loading),
79
80
  rowsCache // TODO remove from state
80
81
 
81
82
  });
@@ -102,7 +103,7 @@ export const useGridRows = (apiRef, props) => {
102
103
  rowsCache.current.timeout = null;
103
104
  rowsCache.current.lastUpdateMs = Date.now();
104
105
  apiRef.current.setState(state => _extends({}, state, {
105
- rows: getRowsStateFromCache(rowsCache.current, gridRowTreeSelector(apiRef), apiRef, props.rowCount)
106
+ rows: getRowsStateFromCache(rowsCache.current, gridRowTreeSelector(apiRef), apiRef, props.rowCount, props.loading)
106
107
  }));
107
108
  apiRef.current.publishEvent(GridEvents.rowsSet);
108
109
  apiRef.current.forceUpdate();
@@ -128,7 +129,7 @@ export const useGridRows = (apiRef, props) => {
128
129
  }
129
130
 
130
131
  run();
131
- }, [props.throttleRowsMs, props.rowCount, apiRef]);
132
+ }, [props.throttleRowsMs, props.rowCount, props.loading, apiRef]);
132
133
  /**
133
134
  * API METHODS
134
135
  */
@@ -7,8 +7,7 @@ import { gridDensityRowHeightSelector, gridDensityFactorSelector } from '../dens
7
7
  import { gridFilterStateSelector } from '../filter/gridFilterSelector';
8
8
  import { gridPaginationSelector } from '../pagination/gridPaginationSelector';
9
9
  import { gridSortingStateSelector } from '../sorting/gridSortingSelector';
10
- import { GridEvents } from '../../../models/events/gridEvents';
11
- import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
10
+ import { useGridRegisterPipeApplier } from '../../core/pipeProcessing';
12
11
  export const rowsMetaStateInitializer = state => _extends({}, state, {
13
12
  rowsMeta: {
14
13
  currentPageTotalHeight: 0,
@@ -61,10 +60,11 @@ export const useGridRowsMeta = (apiRef, props) => {
61
60
  };
62
61
 
63
62
  if (getRowSpacing) {
64
- const index = apiRef.current.getRowIndexRelativeToVisibleRows(row.id);
63
+ const indexRelativeToCurrentPage = apiRef.current.getRowIndexRelativeToVisibleRows(row.id);
65
64
  const spacing = getRowSpacing(_extends({}, row, {
66
- isFirstVisible: index === 0,
67
- isLastVisible: index === currentPage.rows.length - 1
65
+ isFirstVisible: indexRelativeToCurrentPage === 0,
66
+ isLastVisible: indexRelativeToCurrentPage === currentPage.rows.length - 1,
67
+ indexRelativeToCurrentPage
68
68
  }));
69
69
  initialHeights.spacingTop = spacing.top ?? 0;
70
70
  initialHeights.spacingBottom = spacing.bottom ?? 0;
@@ -108,14 +108,7 @@ export const useGridRowsMeta = (apiRef, props) => {
108
108
  React.useEffect(() => {
109
109
  hydrateRowsMeta();
110
110
  }, [rowHeight, filterState, paginationState, sortingState, hydrateRowsMeta]);
111
- const handlepipeProcessorRegister = React.useCallback(name => {
112
- if (name !== 'rowHeight') {
113
- return;
114
- }
115
-
116
- hydrateRowsMeta();
117
- }, [hydrateRowsMeta]);
118
- useGridApiEventHandler(apiRef, GridEvents.pipeProcessorRegister, handlepipeProcessorRegister);
111
+ useGridRegisterPipeApplier(apiRef, 'rowHeight', hydrateRowsMeta);
119
112
  const rowsMetaApi = {
120
113
  unstable_getRowHeight: getTargetRowHeight,
121
114
  unstable_getRowInternalSizes: getRowInternalSizes,
@@ -1,10 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import { useGridLogger } from '../../utils/useGridLogger';
3
3
  import { gridColumnPositionsSelector, gridVisibleColumnDefinitionsSelector } from '../columns/gridColumnsSelector';
4
+ import { useGridSelector } from '../../utils/useGridSelector';
4
5
  import { gridPageSelector, gridPageSizeSelector } from '../pagination/gridPaginationSelector';
5
6
  import { gridRowCountSelector } from '../rows/gridRowsSelector';
6
7
  import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
7
- import { useGridApiMethod } from '../../utils/useGridApiMethod'; // Logic copied from https://www.w3.org/TR/wai-aria-practices/examples/listbox/js/listbox.js
8
+ import { useGridApiMethod } from '../../utils/useGridApiMethod';
9
+ import { gridVisibleSortedRowEntriesSelector } from '../filter/gridFilterSelector'; // Logic copied from https://www.w3.org/TR/wai-aria-practices/examples/listbox/js/listbox.js
8
10
  // Similar to https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView
9
11
 
10
12
  function scrollIntoView(dimensions) {
@@ -31,6 +33,8 @@ function scrollIntoView(dimensions) {
31
33
  * @requires useGridColumns (state) - can be after, async only
32
34
  * @requires useGridRows (state) - can be after, async only
33
35
  * @requires useGridRowsMeta (state) - can be after, async only
36
+ * @requires useGridFilter (state)
37
+ * @requires useGridColumnSpanning (method)
34
38
  */
35
39
 
36
40
 
@@ -38,6 +42,7 @@ export const useGridScroll = (apiRef, props) => {
38
42
  const logger = useGridLogger(apiRef, 'useGridScroll');
39
43
  const colRef = apiRef.current.columnHeadersElementRef;
40
44
  const windowRef = apiRef.current.windowRef;
45
+ const visibleSortedRows = useGridSelector(apiRef, gridVisibleSortedRowEntriesSelector);
41
46
  const scrollToIndexes = React.useCallback(params => {
42
47
  const totalRowCount = gridRowCountSelector(apiRef);
43
48
  const visibleColumns = gridVisibleColumnDefinitionsSelector(apiRef);
@@ -52,10 +57,25 @@ export const useGridScroll = (apiRef, props) => {
52
57
 
53
58
  if (params.colIndex != null) {
54
59
  const columnPositions = gridColumnPositionsSelector(apiRef);
60
+ let cellWidth;
61
+
62
+ if (typeof params.rowIndex !== 'undefined') {
63
+ const rowId = visibleSortedRows[params.rowIndex]?.id;
64
+ const cellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, params.colIndex);
65
+
66
+ if (cellColSpanInfo && !cellColSpanInfo.spannedByColSpan) {
67
+ cellWidth = cellColSpanInfo.cellProps.width;
68
+ }
69
+ }
70
+
71
+ if (typeof cellWidth === 'undefined') {
72
+ cellWidth = visibleColumns[params.colIndex].computedWidth;
73
+ }
74
+
55
75
  scrollCoordinates.left = scrollIntoView({
56
76
  clientHeight: windowRef.current.clientWidth,
57
77
  scrollTop: windowRef.current.scrollLeft,
58
- offsetHeight: visibleColumns[params.colIndex].computedWidth,
78
+ offsetHeight: cellWidth,
59
79
  offsetTop: columnPositions[params.colIndex]
60
80
  });
61
81
  }
@@ -82,7 +102,7 @@ export const useGridScroll = (apiRef, props) => {
82
102
  }
83
103
 
84
104
  return false;
85
- }, [logger, apiRef, windowRef, props.pagination]);
105
+ }, [logger, apiRef, windowRef, props.pagination, visibleSortedRows]);
86
106
  const scroll = React.useCallback(params => {
87
107
  if (windowRef.current && params.left != null && colRef.current) {
88
108
  colRef.current.scrollLeft = params.left;
@@ -13,6 +13,7 @@ import { GRID_CHECKBOX_SELECTION_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from '../..
13
13
  import { GridCellModes } from '../../../models/gridEditRowModel';
14
14
  import { isKeyboardEvent, isNavigationKey } from '../../../utils/keyboardUtils';
15
15
  import { getVisibleRows, useGridVisibleRows } from '../../utils/useGridVisibleRows';
16
+ import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '../../../constants/gridDetailPanelToggleField';
16
17
 
17
18
  const getSelectionModelPropValue = (selectionModelProp, prevSelectionModel) => {
18
19
  if (selectionModelProp == null) {
@@ -234,7 +235,7 @@ export const useGridSelection = (apiRef, props) => {
234
235
  return;
235
236
  }
236
237
 
237
- if (params.field === '__detail_panel_toggle__') {
238
+ if (params.field === GRID_DETAIL_PANEL_TOGGLE_FIELD) {
238
239
  // click to open the detail panel should not select the row
239
240
  return;
240
241
  }
@@ -340,7 +341,7 @@ export const useGridSelection = (apiRef, props) => {
340
341
  selectRows(apiRef.current.getAllRowIds(), true);
341
342
  }
342
343
  }, [apiRef, handleSingleRowSelection, selectRows, visibleRows.rows, canHaveMultipleSelection]);
343
- useGridApiEventHandler(apiRef, GridEvents.visibleRowsSet, removeOutdatedSelection);
344
+ useGridApiEventHandler(apiRef, GridEvents.sortedRowsSet, removeOutdatedSelection);
344
345
  useGridApiEventHandler(apiRef, GridEvents.cellClick, handleCellClick);
345
346
  useGridApiEventHandler(apiRef, GridEvents.rowSelectionCheckboxChange, handleRowSelectionCheckboxChange);
346
347
  useGridApiEventHandler(apiRef, GridEvents.headerSelectionCheckboxChange, handleHeaderSelectionCheckboxChange);
@@ -74,17 +74,16 @@ export const useGridSorting = (apiRef, props) => {
74
74
  */
75
75
 
76
76
  const applySorting = React.useCallback(() => {
77
- if (props.sortingMode === GridFeatureModeConstant.server) {
78
- logger.debug('Skipping sorting rows as sortingMode = server');
79
- apiRef.current.setState(state => _extends({}, state, {
80
- sorting: _extends({}, state.sorting, {
81
- sortedRows: gridRowIdsSelector(state, apiRef.current.instanceId)
82
- })
83
- }));
84
- return;
85
- }
86
-
87
77
  apiRef.current.setState(state => {
78
+ if (props.sortingMode === GridFeatureModeConstant.server) {
79
+ logger.debug('Skipping sorting rows as sortingMode = server');
80
+ return _extends({}, state, {
81
+ sorting: _extends({}, state.sorting, {
82
+ sortedRows: gridRowIdsSelector(state, apiRef.current.instanceId)
83
+ })
84
+ });
85
+ }
86
+
88
87
  const sortModel = gridSortModelSelector(state, apiRef.current.instanceId);
89
88
  const sortRowList = buildAggregatedSortingApplier(sortModel, apiRef);
90
89
  const sortedRows = apiRef.current.unstable_applyStrategyProcessor('sorting', {
@@ -96,6 +95,7 @@ export const useGridSorting = (apiRef, props) => {
96
95
  })
97
96
  });
98
97
  });
98
+ apiRef.current.publishEvent(GridEvents.sortedRowsSet);
99
99
  apiRef.current.forceUpdate();
100
100
  }, [apiRef, logger, props.sortingMode]);
101
101
  const setSortModel = React.useCallback(model => {
@@ -2,6 +2,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  const _excluded = ["style"];
4
4
  import * as React from 'react';
5
+ import * as ReactDOM from 'react-dom';
5
6
  import { useForkRef } from '@mui/material/utils';
6
7
  import { useGridApiContext } from '../../utils/useGridApiContext';
7
8
  import { useGridRootProps } from '../../utils/useGridRootProps';
@@ -16,8 +17,9 @@ import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
16
17
  import { clamp } from '../../../utils/utils';
17
18
  import { selectedIdsLookupSelector } from '../selection/gridSelectionSelector';
18
19
  import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
20
+ import { getFirstNonSpannedColumnToRender } from '../columns/gridColumnsUtils'; // Uses binary search to avoid looping through all possible positions
21
+
19
22
  import { jsx as _jsx } from "react/jsx-runtime";
20
- // Uses binary search to avoid looping through all possible positions
21
23
  export function getIndexFromScroll(offset, positions, sliceStart = 0, sliceEnd = positions.length) {
22
24
  if (positions.length <= 0) {
23
25
  return -1;
@@ -31,6 +33,15 @@ export function getIndexFromScroll(offset, positions, sliceStart = 0, sliceEnd =
31
33
  const itemOffset = positions[pivot];
32
34
  return offset <= itemOffset ? getIndexFromScroll(offset, positions, sliceStart, pivot) : getIndexFromScroll(offset, positions, pivot + 1, sliceEnd);
33
35
  }
36
+ export const getRenderableIndexes = ({
37
+ firstIndex,
38
+ lastIndex,
39
+ buffer,
40
+ minFirstIndex,
41
+ maxLastIndex
42
+ }) => {
43
+ return [clamp(firstIndex - buffer, minFirstIndex, maxLastIndex), clamp(lastIndex + buffer, minFirstIndex, maxLastIndex)];
44
+ };
34
45
  export const useGridVirtualScroller = props => {
35
46
  const apiRef = useGridApiContext();
36
47
  const rootProps = useGridRootProps();
@@ -106,32 +117,28 @@ export const useGridVirtualScroller = props => {
106
117
  }
107
118
  }, []);
108
119
  useGridApiEventHandler(apiRef, GridEvents.resize, handleResize);
109
-
110
- const getRenderableIndexes = ({
111
- firstIndex,
112
- lastIndex,
113
- buffer,
114
- minFirstIndex,
115
- maxLastIndex
116
- }) => {
117
- return [clamp(firstIndex - buffer, minFirstIndex, maxLastIndex), clamp(lastIndex + buffer, minFirstIndex, maxLastIndex)];
118
- };
119
-
120
120
  const updateRenderZonePosition = React.useCallback(nextRenderContext => {
121
- const [firstRowToRender] = getRenderableIndexes({
121
+ const [firstRowToRender, lastRowToRender] = getRenderableIndexes({
122
122
  firstIndex: nextRenderContext.firstRowIndex,
123
123
  lastIndex: nextRenderContext.lastRowIndex,
124
124
  minFirstIndex: 0,
125
- maxLastIndex: currentPage.range?.lastRowIndex || 0,
125
+ maxLastIndex: currentPage.rows.length,
126
126
  buffer: rootProps.rowBuffer
127
127
  });
128
- const [firstColumnToRender] = getRenderableIndexes({
128
+ const [initialFirstColumnToRender] = getRenderableIndexes({
129
129
  firstIndex: nextRenderContext.firstColumnIndex,
130
130
  lastIndex: nextRenderContext.lastColumnIndex,
131
131
  minFirstIndex: renderZoneMinColumnIndex,
132
132
  maxLastIndex: renderZoneMaxColumnIndex,
133
133
  buffer: rootProps.columnBuffer
134
134
  });
135
+ const firstColumnToRender = getFirstNonSpannedColumnToRender({
136
+ firstColumnToRender: initialFirstColumnToRender,
137
+ apiRef,
138
+ firstRowToRender,
139
+ lastRowToRender,
140
+ visibleRows: currentPage.rows
141
+ });
135
142
  const top = gridRowsMetaSelector(apiRef.current.state).positions[firstRowToRender];
136
143
  const left = gridColumnPositionsSelector(apiRef)[firstColumnToRender]; // Call directly the selector because it might be outdated when this method is called
137
144
 
@@ -143,19 +150,22 @@ export const useGridVirtualScroller = props => {
143
150
  left
144
151
  });
145
152
  }
146
- }, [apiRef, currentPage.range?.lastRowIndex, onRenderZonePositioning, renderZoneMaxColumnIndex, renderZoneMinColumnIndex, rootProps.columnBuffer, rootProps.rowBuffer]);
153
+ }, [apiRef, currentPage.rows, onRenderZonePositioning, renderZoneMinColumnIndex, renderZoneMaxColumnIndex, rootProps.columnBuffer, rootProps.rowBuffer]);
154
+ React.useLayoutEffect(() => {
155
+ if (renderContext) {
156
+ updateRenderZonePosition(renderContext);
157
+ }
158
+ }, [renderContext, updateRenderZonePosition]);
147
159
  const updateRenderContext = React.useCallback(nextRenderContext => {
148
160
  setRenderContext(nextRenderContext);
149
- updateRenderZonePosition(nextRenderContext);
150
161
  prevRenderContext.current = nextRenderContext;
151
- }, [setRenderContext, prevRenderContext, updateRenderZonePosition]);
162
+ }, [setRenderContext, prevRenderContext]);
152
163
  React.useEffect(() => {
153
164
  if (containerWidth == null) {
154
165
  return;
155
166
  }
156
167
 
157
168
  const initialRenderContext = computeRenderContext();
158
- prevRenderContext.current = initialRenderContext;
159
169
  updateRenderContext(initialRenderContext);
160
170
  const {
161
171
  top,
@@ -193,10 +203,13 @@ export const useGridVirtualScroller = props => {
193
203
  top: scrollTop,
194
204
  left: scrollLeft,
195
205
  renderContext: shouldSetState ? nextRenderContext : prevRenderContext.current
196
- });
206
+ }, event);
197
207
 
198
208
  if (shouldSetState) {
199
- updateRenderContext(nextRenderContext);
209
+ // Prevents batching render context changes
210
+ ReactDOM.flushSync(() => {
211
+ updateRenderContext(nextRenderContext);
212
+ });
200
213
  prevTotalWidth.current = columnsTotalWidth;
201
214
  }
202
215
  };
@@ -224,14 +237,32 @@ export const useGridVirtualScroller = props => {
224
237
  maxLastIndex: currentPage.rows.length,
225
238
  buffer: rowBuffer
226
239
  });
227
- const [firstColumnToRender, lastColumnToRender] = getRenderableIndexes({
240
+ const renderedRows = [];
241
+
242
+ for (let i = firstRowToRender; i < lastRowToRender; i += 1) {
243
+ const row = currentPage.rows[i];
244
+ renderedRows.push(row);
245
+ apiRef.current.unstable_calculateColSpan({
246
+ rowId: row.id,
247
+ minFirstColumn,
248
+ maxLastColumn
249
+ });
250
+ }
251
+
252
+ const [initialFirstColumnToRender, lastColumnToRender] = getRenderableIndexes({
228
253
  firstIndex: nextRenderContext.firstColumnIndex,
229
254
  lastIndex: nextRenderContext.lastColumnIndex,
230
255
  minFirstIndex: minFirstColumn,
231
256
  maxLastIndex: maxLastColumn,
232
257
  buffer: columnBuffer
233
258
  });
234
- const renderedRows = currentPage.rows.slice(firstRowToRender, lastRowToRender);
259
+ const firstColumnToRender = getFirstNonSpannedColumnToRender({
260
+ firstColumnToRender: initialFirstColumnToRender,
261
+ apiRef,
262
+ firstRowToRender,
263
+ lastRowToRender,
264
+ visibleRows: currentPage.rows
265
+ });
235
266
  const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
236
267
  const rows = [];
237
268
 
package/modern/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MUI v5.8.0
1
+ /** @license MUI v5.9.0
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
@@ -10,6 +10,7 @@ export { useGridClipboard } from '../hooks/features/clipboard/useGridClipboard';
10
10
  export { useGridColumnHeaders } from '../hooks/features/columnHeaders/useGridColumnHeaders';
11
11
  export { useGridColumnMenu, columnMenuStateInitializer } from '../hooks/features/columnMenu/useGridColumnMenu';
12
12
  export { useGridColumns, columnsStateInitializer } from '../hooks/features/columns/useGridColumns';
13
+ export { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
13
14
  export { useGridDensity, densityStateInitializer } from '../hooks/features/density/useGridDensity';
14
15
  export { useGridCsvExport } from '../hooks/features/export/useGridCsvExport';
15
16
  export { useGridPrintExport } from '../hooks/features/export/useGridPrintExport';
@@ -0,0 +1,108 @@
1
+ import { huHU as huHUCore } from '@mui/material/locale';
2
+ import { getGridLocalization } from '../utils/getGridLocalization';
3
+ const huHUGrid = {
4
+ // Root
5
+ noRowsLabel: 'Nincsenek sorok',
6
+ noResultsOverlayLabel: 'Nincs találat.',
7
+ errorOverlayDefaultLabel: 'Váratlan hiba történt.',
8
+ // Density selector toolbar button text
9
+ toolbarDensity: 'Sormagasság',
10
+ toolbarDensityLabel: 'Sormagasság',
11
+ toolbarDensityCompact: 'Kompakt',
12
+ toolbarDensityStandard: 'Normál',
13
+ toolbarDensityComfortable: 'Kényelmes',
14
+ // Columns selector toolbar button text
15
+ toolbarColumns: 'Oszlopok',
16
+ toolbarColumnsLabel: 'Oszlopok kiválasztása',
17
+ // Filters toolbar button text
18
+ toolbarFilters: 'Szűrők',
19
+ toolbarFiltersLabel: 'Szűrők megjelenítése',
20
+ toolbarFiltersTooltipHide: 'Szűrők elrejtése',
21
+ toolbarFiltersTooltipShow: 'Szűrők megjelenítése',
22
+ toolbarFiltersTooltipActive: count => `${count} aktív szűrő`,
23
+ // Export selector toolbar button text
24
+ toolbarExport: 'Exportálás',
25
+ toolbarExportLabel: 'Exportálás',
26
+ toolbarExportCSV: 'Mentés CSV fájlként',
27
+ toolbarExportPrint: 'Nyomtatás',
28
+ // Columns panel text
29
+ columnsPanelTextFieldLabel: 'Oszlop keresése',
30
+ columnsPanelTextFieldPlaceholder: 'Oszlop neve',
31
+ columnsPanelDragIconLabel: 'Oszlop átrendezése',
32
+ columnsPanelShowAllButton: 'Összes megjelenítése',
33
+ columnsPanelHideAllButton: 'Összes elrejtése',
34
+ // Filter panel text
35
+ filterPanelAddFilter: 'Szűrő hozzáadása',
36
+ filterPanelDeleteIconLabel: 'Törlés',
37
+ filterPanelLinkOperator: 'Logikai operátor',
38
+ filterPanelOperators: 'Operátorok',
39
+ // TODO v6: rename to filterPanelOperator
40
+ filterPanelOperatorAnd: 'És',
41
+ filterPanelOperatorOr: 'Vagy',
42
+ filterPanelColumns: 'Oszlopok',
43
+ filterPanelInputLabel: 'Érték',
44
+ filterPanelInputPlaceholder: 'Érték szűrése',
45
+ // Filter operators text
46
+ filterOperatorContains: 'tartalmazza:',
47
+ filterOperatorEquals: 'egyenlő ezzel:',
48
+ filterOperatorStartsWith: 'ezzel kezdődik:',
49
+ filterOperatorEndsWith: 'ezzel végződik:',
50
+ filterOperatorIs: 'a következő:',
51
+ filterOperatorNot: 'nem a következő:',
52
+ filterOperatorAfter: 'ezutáni:',
53
+ filterOperatorOnOrAfter: 'ekkori vagy ezutáni:',
54
+ filterOperatorBefore: 'ezelőtti:',
55
+ filterOperatorOnOrBefore: 'ekkori vagy ezelőtti:',
56
+ filterOperatorIsEmpty: 'üres',
57
+ filterOperatorIsNotEmpty: 'nem üres',
58
+ filterOperatorIsAnyOf: 'a következők egyike:',
59
+ // Filter values text
60
+ filterValueAny: 'bármilyen',
61
+ filterValueTrue: 'igaz',
62
+ filterValueFalse: 'hamis',
63
+ // Column menu text
64
+ columnMenuLabel: 'Menü',
65
+ columnMenuShowColumns: 'Oszlopok megjelenítése',
66
+ columnMenuFilter: 'Szűrők',
67
+ columnMenuHideColumn: 'Elrejtés',
68
+ columnMenuUnsort: 'Sorrend visszaállítása',
69
+ columnMenuSortAsc: 'Növekvő sorrendbe',
70
+ columnMenuSortDesc: 'Csökkenő sorrendbe',
71
+ // Column header text
72
+ columnHeaderFiltersTooltipActive: count => `${count} aktív szűrő`,
73
+ columnHeaderFiltersLabel: 'Szűrők megjelenítése',
74
+ columnHeaderSortIconLabel: 'Átrendezés',
75
+ // Rows selected footer text
76
+ footerRowSelected: count => `${count.toLocaleString()} sor kiválasztva`,
77
+ // Total row amount footer text
78
+ footerTotalRows: 'Összesen:',
79
+ // Total visible row amount footer text
80
+ footerTotalVisibleRows: (visibleCount, totalCount) => `${visibleCount.toLocaleString()} (összesen: ${totalCount.toLocaleString()})`,
81
+ // Checkbox selection text
82
+ checkboxSelectionHeaderName: 'Jelölőnégyzetes kijelölés',
83
+ checkboxSelectionSelectAllRows: 'Minden sor kijelölése',
84
+ checkboxSelectionUnselectAllRows: 'Minden sor kijelölésének törlése',
85
+ checkboxSelectionSelectRow: 'Sor kijelölése',
86
+ checkboxSelectionUnselectRow: 'Sor kijelölésének törlése',
87
+ // Boolean cell text
88
+ booleanCellTrueLabel: 'igen',
89
+ booleanCellFalseLabel: 'nem',
90
+ // Actions cell more text
91
+ actionsCellMore: 'további',
92
+ // Column pinning text
93
+ pinToLeft: 'Rögzítés balra',
94
+ pinToRight: 'Rögzítés jobbra',
95
+ unpin: 'Rögzítés törlése',
96
+ // Tree Data
97
+ treeDataGroupingHeaderName: 'Csoport',
98
+ treeDataExpand: 'gyermekek megjelenítése',
99
+ treeDataCollapse: 'gyermekek elrejtése',
100
+ // Grouping columns
101
+ groupingColumnHeaderName: 'Csoportosítás',
102
+ groupColumn: name => `Csoportosítás ${name} szerint`,
103
+ unGroupColumn: name => `${name} szerinti csoportosítás törlése`,
104
+ // Master/detail
105
+ expandDetailPanel: 'Kibontás',
106
+ collapseDetailPanel: 'Összecsukás'
107
+ };
108
+ export const huHU = getGridLocalization(huHUGrid, huHUCore);
@@ -11,6 +11,7 @@ export * from './faIR';
11
11
  export * from './fiFI';
12
12
  export * from './frFR';
13
13
  export * from './heIL';
14
+ export * from './huHU';
14
15
  export * from './itIT';
15
16
  export * from './jaJP';
16
17
  export * from './koKR';
@@ -0,0 +1 @@
1
+ export {};
@@ -59,12 +59,11 @@ var GridEvents;
59
59
  GridEvents["columnOrderChange"] = "columnOrderChange";
60
60
  GridEvents["rowsSet"] = "rowsSet";
61
61
  GridEvents["rowExpansionChange"] = "rowExpansionChange";
62
- GridEvents["visibleRowsSet"] = "visibleRowsSet";
62
+ GridEvents["sortedRowsSet"] = "sortedRowsSet";
63
+ GridEvents["filteredRowsSet"] = "filteredRowsSet";
63
64
  GridEvents["columnsChange"] = "columnsChange";
64
65
  GridEvents["detailPanelsExpandedRowIdsChange"] = "detailPanelsExpandedRowIdsChange";
65
66
  GridEvents["pinnedColumnsChange"] = "pinnedColumnsChange";
66
- GridEvents["pipeProcessorRegister"] = "pipeProcessorRegister";
67
- GridEvents["pipeProcessorUnregister"] = "pipeProcessorUnregister";
68
67
  GridEvents["activeStrategyProcessorChange"] = "activeStrategyProcessorChange";
69
68
  GridEvents["strategyAvailabilityChange"] = "strategyAvailabilityChange";
70
69
  GridEvents["sortModelChange"] = "sortModelChange";
@@ -0,0 +1 @@
1
+ export {};
@@ -481,7 +481,7 @@ DataGridRaw.propTypes = {
481
481
  * @param {GridEditCellPropsParams} params With all properties from [[GridEditCellPropsParams]].
482
482
  * @param {MuiEvent<React.SyntheticEvent>} event The event that caused this prop to be called.
483
483
  * @param {GridCallbackDetails} details Additional details for this callback.
484
- * @deprecated use `preProcessEditCellProps` from the [`GridColDef`](/api/data-grid/grid-col-def/)
484
+ * @deprecated use `preProcessEditCellProps` from the [`GridColDef`](/x/api/data-grid/grid-col-def/)
485
485
  */
486
486
  onEditCellPropsChange: _propTypes.default.func,
487
487
 
@@ -57,6 +57,8 @@ var _useGridRowsMeta = require("../hooks/features/rows/useGridRowsMeta");
57
57
 
58
58
  var _useGridStatePersistence = require("../hooks/features/statePersistence/useGridStatePersistence");
59
59
 
60
+ var _useGridColumnSpanning = require("../hooks/features/columns/useGridColumnSpanning");
61
+
60
62
  const useDataGridComponent = props => {
61
63
  var _props$experimentalFe, _props$experimentalFe2;
62
64
 
@@ -88,12 +90,13 @@ const useDataGridComponent = props => {
88
90
  (0, _useGridColumns.useGridColumns)(apiRef, props);
89
91
  (0, _useGridRows.useGridRows)(apiRef, props);
90
92
  (0, _useGridParamsApi.useGridParamsApi)(apiRef);
93
+ (0, _useGridColumnSpanning.useGridColumnSpanning)(apiRef);
91
94
  const useGridEditing = (_props$experimentalFe2 = props.experimentalFeatures) != null && _props$experimentalFe2.newEditingApi ? _useGridEditing2.useGridEditing : _useGridEditing.useGridEditing;
92
95
  useGridEditing(apiRef, props);
93
96
  (0, _useGridFocus.useGridFocus)(apiRef, props);
94
- (0, _useGridSorting.useGridSorting)(apiRef, props);
95
97
  (0, _useGridPreferencesPanel.useGridPreferencesPanel)(apiRef);
96
98
  (0, _useGridFilter.useGridFilter)(apiRef, props);
99
+ (0, _useGridSorting.useGridSorting)(apiRef, props);
97
100
  (0, _useGridDensity.useGridDensity)(apiRef, props);
98
101
  (0, _useGridPagination.useGridPagination)(apiRef, props);
99
102
  (0, _useGridRowsMeta.useGridRowsMeta)(apiRef, props);