@mui/x-data-grid 7.0.0-alpha.7 → 7.0.0-alpha.9

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 (501) hide show
  1. package/CHANGELOG.md +554 -51
  2. package/DataGrid/DataGrid.js +15 -27
  3. package/DataGrid/useDataGridComponent.js +2 -1
  4. package/DataGrid/useDataGridProps.js +1 -0
  5. package/README.md +1 -1
  6. package/colDef/gridDateColDef.js +1 -1
  7. package/components/GridColumnHeaders.d.ts +3 -2
  8. package/components/GridColumnHeaders.js +3 -11
  9. package/components/GridDetailPanels.d.ts +5 -0
  10. package/components/GridDetailPanels.js +4 -0
  11. package/components/GridHeaders.d.ts +4 -0
  12. package/components/GridHeaders.js +53 -0
  13. package/components/GridPagination.d.ts +4 -4
  14. package/components/GridPagination.js +1 -1
  15. package/components/GridPinnedRows.d.ts +7 -0
  16. package/components/GridPinnedRows.js +4 -0
  17. package/components/GridRow.d.ts +7 -4
  18. package/components/GridRow.js +260 -97
  19. package/components/GridScrollbarFillerCell.d.ts +7 -0
  20. package/components/GridScrollbarFillerCell.js +39 -0
  21. package/components/base/GridBody.d.ts +2 -13
  22. package/components/base/GridBody.js +2 -116
  23. package/components/base/GridOverlays.js +10 -21
  24. package/components/cell/GridActionsCell.js +1 -1
  25. package/components/cell/GridActionsCellItem.d.ts +6 -6
  26. package/components/cell/GridCell.d.ts +15 -21
  27. package/components/cell/GridCell.js +68 -373
  28. package/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  29. package/components/columnHeaders/GridColumnHeaderItem.d.ts +2 -1
  30. package/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  31. package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -0
  32. package/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  33. package/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  34. package/components/containers/GridRoot.js +18 -15
  35. package/components/containers/GridRootStyles.js +307 -204
  36. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  37. package/components/panel/GridPanel.d.ts +3 -3
  38. package/components/panel/GridPanel.js +3 -4
  39. package/components/panel/filterPanel/GridFilterForm.d.ts +6 -4
  40. package/components/panel/filterPanel/GridFilterForm.js +32 -15
  41. package/components/panel/filterPanel/GridFilterPanel.js +46 -20
  42. package/components/toolbar/GridToolbarColumnsButton.d.ts +13 -1
  43. package/components/toolbar/GridToolbarColumnsButton.js +40 -22
  44. package/components/toolbar/GridToolbarDensitySelector.d.ts +13 -1
  45. package/components/toolbar/GridToolbarDensitySelector.js +40 -22
  46. package/components/toolbar/GridToolbarExport.d.ts +10 -1
  47. package/components/toolbar/GridToolbarExport.js +6 -1
  48. package/components/toolbar/GridToolbarExportContainer.d.ts +15 -1
  49. package/components/toolbar/GridToolbarExportContainer.js +41 -23
  50. package/components/toolbar/GridToolbarFilterButton.d.ts +5 -4
  51. package/components/toolbar/GridToolbarFilterButton.js +6 -10
  52. package/components/toolbar/GridToolbarQuickFilter.d.ts +4 -0
  53. package/components/toolbar/GridToolbarQuickFilter.js +4 -0
  54. package/components/virtualization/GridBottomContainer.d.ts +2 -0
  55. package/components/virtualization/GridBottomContainer.js +25 -0
  56. package/components/{containers → virtualization}/GridMainContainer.d.ts +2 -0
  57. package/components/virtualization/GridMainContainer.js +20 -0
  58. package/components/virtualization/GridTopContainer.d.ts +2 -0
  59. package/components/virtualization/GridTopContainer.js +35 -0
  60. package/components/virtualization/GridVirtualScrollbar.d.ts +7 -0
  61. package/components/virtualization/GridVirtualScrollbar.js +131 -0
  62. package/components/virtualization/GridVirtualScroller.d.ts +4 -4
  63. package/components/virtualization/GridVirtualScroller.js +69 -16
  64. package/components/virtualization/GridVirtualScrollerFiller.d.ts +4 -0
  65. package/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  66. package/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  67. package/constants/defaultGridSlotsComponents.js +6 -2
  68. package/constants/gridClasses.d.ts +60 -8
  69. package/constants/gridClasses.js +1 -1
  70. package/hooks/core/gridCoreSelector.d.ts +6 -0
  71. package/hooks/core/gridCoreSelector.js +5 -0
  72. package/hooks/core/useGridInitialization.js +4 -0
  73. package/hooks/core/useGridLoggerFactory.js +2 -2
  74. package/hooks/core/useGridRefs.d.ts +3 -0
  75. package/hooks/core/useGridRefs.js +13 -0
  76. package/hooks/core/useGridTheme.d.ts +3 -0
  77. package/hooks/core/useGridTheme.js +19 -0
  78. package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
  79. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -1
  80. package/hooks/features/columnGrouping/useGridColumnGrouping.js +13 -18
  81. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +13 -18
  82. package/hooks/features/columnHeaders/useGridColumnHeaders.js +68 -162
  83. package/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  84. package/hooks/features/columns/gridColumnsInterfaces.d.ts +17 -0
  85. package/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  86. package/hooks/features/columns/gridColumnsSelector.d.ts +14 -1
  87. package/hooks/features/columns/gridColumnsSelector.js +52 -0
  88. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -5
  89. package/hooks/features/columns/gridColumnsUtils.js +10 -12
  90. package/hooks/features/columns/index.d.ts +2 -2
  91. package/hooks/features/columns/index.js +2 -1
  92. package/hooks/features/columns/useGridColumnSpanning.js +62 -61
  93. package/hooks/features/columns/useGridColumns.js +20 -23
  94. package/hooks/features/dimensions/gridDimensionsApi.d.ts +60 -11
  95. package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +2 -0
  96. package/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  97. package/hooks/features/dimensions/index.d.ts +2 -0
  98. package/hooks/features/dimensions/index.js +1 -0
  99. package/hooks/features/dimensions/useGridDimensions.d.ts +7 -1
  100. package/hooks/features/dimensions/useGridDimensions.js +216 -148
  101. package/hooks/features/editing/useGridCellEditing.js +4 -4
  102. package/hooks/features/editing/useGridRowEditing.js +4 -4
  103. package/hooks/features/export/serializers/csvSerializer.js +3 -3
  104. package/hooks/features/export/useGridPrintExport.js +1 -1
  105. package/hooks/features/filter/gridFilterUtils.js +5 -5
  106. package/hooks/features/filter/useGridFilter.js +3 -3
  107. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -2
  108. package/hooks/features/focus/gridFocusStateSelector.js +2 -6
  109. package/hooks/features/focus/useGridFocus.js +3 -3
  110. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  111. package/hooks/features/pagination/gridPaginationUtils.js +2 -2
  112. package/hooks/features/pagination/useGridPagination.js +3 -5
  113. package/hooks/features/rowSelection/useGridRowSelection.js +1 -1
  114. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -0
  115. package/hooks/features/rows/gridRowsSelector.d.ts +2 -2
  116. package/hooks/features/rows/gridRowsSelector.js +5 -5
  117. package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
  118. package/hooks/features/rows/gridRowsUtils.js +6 -6
  119. package/hooks/features/rows/useGridRows.js +7 -7
  120. package/hooks/features/rows/useGridRowsMeta.js +9 -6
  121. package/hooks/features/scroll/useGridScroll.js +8 -10
  122. package/hooks/features/sorting/gridSortingUtils.js +5 -3
  123. package/hooks/features/sorting/useGridSorting.d.ts +1 -1
  124. package/hooks/features/sorting/useGridSorting.js +15 -10
  125. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +14 -0
  126. package/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  127. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +27 -42
  128. package/hooks/features/virtualization/useGridVirtualScroller.js +441 -438
  129. package/hooks/features/virtualization/useGridVirtualization.d.ts +8 -0
  130. package/hooks/features/virtualization/useGridVirtualization.js +8 -1
  131. package/hooks/utils/index.d.ts +3 -0
  132. package/hooks/utils/index.js +4 -1
  133. package/hooks/utils/useGridApiContext.js +1 -1
  134. package/hooks/utils/useGridAriaAttributes.js +1 -2
  135. package/hooks/utils/useGridNativeEventListener.js +4 -9
  136. package/hooks/utils/useGridPrivateApiContext.js +1 -1
  137. package/hooks/utils/useGridRootProps.js +1 -1
  138. package/hooks/utils/useGridSelector.js +1 -1
  139. package/hooks/utils/useResizeObserver.d.ts +2 -0
  140. package/hooks/utils/useResizeObserver.js +36 -0
  141. package/hooks/utils/useRunOnce.d.ts +5 -0
  142. package/hooks/utils/useRunOnce.js +18 -0
  143. package/index.d.ts +0 -1
  144. package/index.js +1 -2
  145. package/internals/index.d.ts +13 -9
  146. package/internals/index.js +9 -7
  147. package/internals/utils/index.d.ts +1 -0
  148. package/internals/utils/index.js +2 -1
  149. package/internals/utils/propValidation.d.ts +4 -0
  150. package/internals/utils/propValidation.js +19 -0
  151. package/legacy/DataGrid/DataGrid.js +20 -29
  152. package/legacy/DataGrid/useDataGridComponent.js +2 -1
  153. package/legacy/DataGrid/useDataGridProps.js +1 -0
  154. package/legacy/colDef/gridDateColDef.js +1 -1
  155. package/legacy/components/GridColumnHeaders.js +3 -11
  156. package/legacy/components/GridDetailPanels.js +4 -0
  157. package/legacy/components/GridHeaders.js +53 -0
  158. package/legacy/components/GridPagination.js +1 -1
  159. package/legacy/components/GridPinnedRows.js +4 -0
  160. package/legacy/components/GridRow.js +258 -98
  161. package/legacy/components/GridScrollbarFillerCell.js +36 -0
  162. package/legacy/components/base/GridBody.js +2 -114
  163. package/legacy/components/base/GridOverlays.js +10 -25
  164. package/legacy/components/cell/GridActionsCell.js +1 -1
  165. package/legacy/components/cell/GridCell.js +70 -378
  166. package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  167. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  168. package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  169. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  170. package/legacy/components/containers/GridRoot.js +18 -15
  171. package/legacy/components/containers/GridRootStyles.js +215 -137
  172. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  173. package/legacy/components/panel/GridPanel.js +3 -4
  174. package/legacy/components/panel/filterPanel/GridFilterForm.js +31 -14
  175. package/legacy/components/panel/filterPanel/GridFilterPanel.js +49 -20
  176. package/legacy/components/toolbar/GridToolbarColumnsButton.js +40 -21
  177. package/legacy/components/toolbar/GridToolbarDensitySelector.js +40 -21
  178. package/legacy/components/toolbar/GridToolbarExport.js +6 -1
  179. package/legacy/components/toolbar/GridToolbarExportContainer.js +40 -21
  180. package/legacy/components/toolbar/GridToolbarFilterButton.js +6 -10
  181. package/legacy/components/toolbar/GridToolbarQuickFilter.js +4 -0
  182. package/legacy/components/virtualization/GridBottomContainer.js +25 -0
  183. package/legacy/components/virtualization/GridMainContainer.js +20 -0
  184. package/legacy/components/virtualization/GridTopContainer.js +35 -0
  185. package/legacy/components/virtualization/GridVirtualScrollbar.js +129 -0
  186. package/legacy/components/virtualization/GridVirtualScroller.js +67 -16
  187. package/legacy/components/virtualization/GridVirtualScrollerFiller.js +70 -0
  188. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  189. package/legacy/constants/defaultGridSlotsComponents.js +6 -2
  190. package/legacy/constants/gridClasses.js +1 -1
  191. package/legacy/hooks/core/gridCoreSelector.js +7 -0
  192. package/legacy/hooks/core/useGridInitialization.js +4 -0
  193. package/legacy/hooks/core/useGridLoggerFactory.js +2 -2
  194. package/legacy/hooks/core/useGridRefs.js +13 -0
  195. package/legacy/hooks/core/useGridTheme.js +21 -0
  196. package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
  197. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +13 -18
  198. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +69 -181
  199. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  200. package/legacy/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  201. package/legacy/hooks/features/columns/gridColumnsSelector.js +62 -0
  202. package/legacy/hooks/features/columns/gridColumnsUtils.js +10 -16
  203. package/legacy/hooks/features/columns/index.js +2 -1
  204. package/legacy/hooks/features/columns/useGridColumnSpanning.js +60 -59
  205. package/legacy/hooks/features/columns/useGridColumns.js +22 -23
  206. package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +3 -0
  207. package/legacy/hooks/features/dimensions/index.js +1 -0
  208. package/legacy/hooks/features/dimensions/useGridDimensions.js +226 -151
  209. package/legacy/hooks/features/editing/useGridCellEditing.js +4 -4
  210. package/legacy/hooks/features/editing/useGridRowEditing.js +4 -4
  211. package/legacy/hooks/features/export/serializers/csvSerializer.js +3 -3
  212. package/legacy/hooks/features/export/useGridPrintExport.js +1 -1
  213. package/legacy/hooks/features/filter/gridFilterUtils.js +5 -5
  214. package/legacy/hooks/features/filter/useGridFilter.js +3 -3
  215. package/legacy/hooks/features/focus/gridFocusStateSelector.js +2 -6
  216. package/legacy/hooks/features/focus/useGridFocus.js +3 -3
  217. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  218. package/legacy/hooks/features/pagination/gridPaginationUtils.js +2 -2
  219. package/legacy/hooks/features/pagination/useGridPagination.js +3 -5
  220. package/legacy/hooks/features/rowSelection/useGridRowSelection.js +1 -1
  221. package/legacy/hooks/features/rows/gridRowsSelector.js +5 -5
  222. package/legacy/hooks/features/rows/gridRowsUtils.js +6 -6
  223. package/legacy/hooks/features/rows/useGridParamsApi.js +4 -5
  224. package/legacy/hooks/features/rows/useGridRows.js +7 -7
  225. package/legacy/hooks/features/rows/useGridRowsMeta.js +9 -6
  226. package/legacy/hooks/features/scroll/useGridScroll.js +8 -10
  227. package/legacy/hooks/features/sorting/gridSortingUtils.js +5 -3
  228. package/legacy/hooks/features/sorting/useGridSorting.js +15 -10
  229. package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +29 -1
  230. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +490 -483
  231. package/legacy/hooks/features/virtualization/useGridVirtualization.js +8 -1
  232. package/legacy/hooks/utils/index.js +4 -1
  233. package/legacy/hooks/utils/useGridApiContext.js +1 -1
  234. package/legacy/hooks/utils/useGridAriaAttributes.js +1 -2
  235. package/legacy/hooks/utils/useGridNativeEventListener.js +4 -9
  236. package/legacy/hooks/utils/useGridPrivateApiContext.js +1 -1
  237. package/legacy/hooks/utils/useGridRootProps.js +1 -1
  238. package/legacy/hooks/utils/useGridSelector.js +1 -1
  239. package/legacy/hooks/utils/useResizeObserver.js +36 -0
  240. package/legacy/hooks/utils/useRunOnce.js +18 -0
  241. package/legacy/index.js +1 -2
  242. package/legacy/internals/index.js +9 -7
  243. package/legacy/internals/utils/index.js +2 -1
  244. package/legacy/internals/utils/propValidation.js +21 -0
  245. package/legacy/locales/hrHR.js +161 -0
  246. package/legacy/locales/index.js +4 -1
  247. package/legacy/locales/ptPT.js +161 -0
  248. package/legacy/locales/zhHK.js +161 -0
  249. package/legacy/models/index.js +0 -1
  250. package/legacy/models/params/index.js +1 -2
  251. package/legacy/utils/createSelector.js +1 -1
  252. package/legacy/utils/exportAs.js +1 -1
  253. package/legacy/utils/utils.js +10 -1
  254. package/locales/hrHR.d.ts +1 -0
  255. package/locales/hrHR.js +149 -0
  256. package/locales/index.d.ts +3 -0
  257. package/locales/index.js +4 -1
  258. package/locales/ptPT.d.ts +1 -0
  259. package/locales/ptPT.js +149 -0
  260. package/locales/zhHK.d.ts +1 -0
  261. package/locales/zhHK.js +149 -0
  262. package/models/api/gridColumnGroupingApi.d.ts +2 -2
  263. package/models/api/gridCoreApi.d.ts +16 -16
  264. package/models/api/gridRowsMetaApi.d.ts +1 -1
  265. package/models/api/gridVirtualizationApi.d.ts +2 -3
  266. package/models/events/gridEventLookup.d.ts +3 -3
  267. package/models/gridFilterModel.d.ts +1 -1
  268. package/models/gridSlotsComponent.d.ts +16 -2
  269. package/models/gridStateCommunity.d.ts +5 -1
  270. package/models/index.d.ts +0 -1
  271. package/models/index.js +0 -1
  272. package/models/params/index.d.ts +0 -1
  273. package/models/params/index.js +1 -2
  274. package/models/props/DataGridProps.d.ts +7 -12
  275. package/modern/DataGrid/DataGrid.js +15 -27
  276. package/modern/DataGrid/useDataGridComponent.js +2 -1
  277. package/modern/DataGrid/useDataGridProps.js +1 -0
  278. package/modern/colDef/gridDateColDef.js +1 -1
  279. package/modern/components/GridColumnHeaders.js +3 -11
  280. package/modern/components/GridDetailPanels.js +4 -0
  281. package/modern/components/GridHeaders.js +53 -0
  282. package/modern/components/GridPagination.js +1 -1
  283. package/modern/components/GridPinnedRows.js +4 -0
  284. package/modern/components/GridRow.js +258 -96
  285. package/modern/components/GridScrollbarFillerCell.js +39 -0
  286. package/modern/components/base/GridBody.js +2 -116
  287. package/modern/components/base/GridOverlays.js +10 -16
  288. package/modern/components/cell/GridActionsCell.js +1 -1
  289. package/modern/components/cell/GridCell.js +66 -370
  290. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  291. package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  292. package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  293. package/modern/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  294. package/modern/components/containers/GridRoot.js +18 -14
  295. package/modern/components/containers/GridRootStyles.js +307 -204
  296. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  297. package/modern/components/panel/GridPanel.js +3 -4
  298. package/modern/components/panel/filterPanel/GridFilterForm.js +31 -14
  299. package/modern/components/panel/filterPanel/GridFilterPanel.js +46 -20
  300. package/modern/components/toolbar/GridToolbarColumnsButton.js +38 -21
  301. package/modern/components/toolbar/GridToolbarDensitySelector.js +38 -21
  302. package/modern/components/toolbar/GridToolbarExport.js +6 -1
  303. package/modern/components/toolbar/GridToolbarExportContainer.js +39 -22
  304. package/modern/components/toolbar/GridToolbarFilterButton.js +6 -10
  305. package/modern/components/toolbar/GridToolbarQuickFilter.js +4 -0
  306. package/modern/components/virtualization/GridBottomContainer.js +25 -0
  307. package/modern/components/virtualization/GridMainContainer.js +20 -0
  308. package/modern/components/virtualization/GridTopContainer.js +35 -0
  309. package/modern/components/virtualization/GridVirtualScrollbar.js +131 -0
  310. package/modern/components/virtualization/GridVirtualScroller.js +69 -16
  311. package/modern/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  312. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  313. package/modern/constants/defaultGridSlotsComponents.js +6 -2
  314. package/modern/constants/gridClasses.js +1 -1
  315. package/modern/hooks/core/gridCoreSelector.js +5 -0
  316. package/modern/hooks/core/useGridInitialization.js +4 -0
  317. package/modern/hooks/core/useGridLoggerFactory.js +2 -2
  318. package/modern/hooks/core/useGridRefs.js +13 -0
  319. package/modern/hooks/core/useGridTheme.js +19 -0
  320. package/modern/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
  321. package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +11 -16
  322. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +67 -160
  323. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  324. package/modern/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  325. package/modern/hooks/features/columns/gridColumnsSelector.js +51 -0
  326. package/modern/hooks/features/columns/gridColumnsUtils.js +10 -12
  327. package/modern/hooks/features/columns/index.js +2 -1
  328. package/modern/hooks/features/columns/useGridColumnSpanning.js +62 -61
  329. package/modern/hooks/features/columns/useGridColumns.js +19 -21
  330. package/modern/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  331. package/modern/hooks/features/dimensions/index.js +1 -0
  332. package/modern/hooks/features/dimensions/useGridDimensions.js +214 -146
  333. package/modern/hooks/features/editing/useGridCellEditing.js +4 -4
  334. package/modern/hooks/features/editing/useGridRowEditing.js +4 -4
  335. package/modern/hooks/features/export/serializers/csvSerializer.js +3 -3
  336. package/modern/hooks/features/export/useGridPrintExport.js +1 -1
  337. package/modern/hooks/features/filter/gridFilterUtils.js +5 -5
  338. package/modern/hooks/features/filter/useGridFilter.js +3 -3
  339. package/modern/hooks/features/focus/gridFocusStateSelector.js +2 -6
  340. package/modern/hooks/features/focus/useGridFocus.js +3 -3
  341. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  342. package/modern/hooks/features/pagination/gridPaginationUtils.js +2 -2
  343. package/modern/hooks/features/pagination/useGridPagination.js +3 -5
  344. package/modern/hooks/features/rowSelection/useGridRowSelection.js +1 -1
  345. package/modern/hooks/features/rows/gridRowsSelector.js +2 -2
  346. package/modern/hooks/features/rows/gridRowsUtils.js +6 -6
  347. package/modern/hooks/features/rows/useGridRows.js +7 -7
  348. package/modern/hooks/features/rows/useGridRowsMeta.js +9 -6
  349. package/modern/hooks/features/scroll/useGridScroll.js +8 -9
  350. package/modern/hooks/features/sorting/gridSortingUtils.js +5 -3
  351. package/modern/hooks/features/sorting/useGridSorting.js +15 -10
  352. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  353. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +435 -432
  354. package/modern/hooks/features/virtualization/useGridVirtualization.js +8 -1
  355. package/modern/hooks/utils/index.js +4 -1
  356. package/modern/hooks/utils/useGridApiContext.js +1 -1
  357. package/modern/hooks/utils/useGridAriaAttributes.js +1 -1
  358. package/modern/hooks/utils/useGridNativeEventListener.js +3 -9
  359. package/modern/hooks/utils/useGridPrivateApiContext.js +1 -1
  360. package/modern/hooks/utils/useGridRootProps.js +1 -1
  361. package/modern/hooks/utils/useGridSelector.js +1 -1
  362. package/modern/hooks/utils/useResizeObserver.js +36 -0
  363. package/modern/hooks/utils/useRunOnce.js +18 -0
  364. package/modern/index.js +1 -2
  365. package/modern/internals/index.js +9 -7
  366. package/modern/internals/utils/index.js +2 -1
  367. package/modern/internals/utils/propValidation.js +19 -0
  368. package/modern/locales/hrHR.js +149 -0
  369. package/modern/locales/index.js +4 -1
  370. package/modern/locales/ptPT.js +149 -0
  371. package/modern/locales/zhHK.js +149 -0
  372. package/modern/models/index.js +0 -1
  373. package/modern/models/params/index.js +1 -2
  374. package/modern/utils/createSelector.js +1 -1
  375. package/modern/utils/exportAs.js +1 -1
  376. package/modern/utils/utils.js +10 -1
  377. package/node/DataGrid/DataGrid.js +15 -27
  378. package/node/DataGrid/useDataGridComponent.js +1 -0
  379. package/node/DataGrid/useDataGridProps.js +1 -0
  380. package/node/colDef/gridDateColDef.js +1 -1
  381. package/node/components/GridColumnHeaders.js +3 -11
  382. package/node/components/GridDetailPanels.js +10 -0
  383. package/node/components/GridHeaders.js +60 -0
  384. package/node/components/GridPagination.js +1 -1
  385. package/node/components/GridPinnedRows.js +10 -0
  386. package/node/components/GridRow.js +256 -94
  387. package/node/components/GridScrollbarFillerCell.js +47 -0
  388. package/node/components/base/GridBody.js +7 -118
  389. package/node/components/base/GridOverlays.js +9 -15
  390. package/node/components/cell/GridActionsCell.js +1 -1
  391. package/node/components/cell/GridCell.js +67 -370
  392. package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  393. package/node/components/columnHeaders/GridColumnHeaderItem.js +8 -4
  394. package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  395. package/node/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  396. package/node/components/containers/GridRoot.js +17 -14
  397. package/node/components/containers/GridRootStyles.js +175 -72
  398. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  399. package/node/components/panel/GridPanel.js +3 -4
  400. package/node/components/panel/filterPanel/GridFilterForm.js +30 -13
  401. package/node/components/panel/filterPanel/GridFilterPanel.js +45 -19
  402. package/node/components/toolbar/GridToolbarColumnsButton.js +36 -20
  403. package/node/components/toolbar/GridToolbarDensitySelector.js +36 -20
  404. package/node/components/toolbar/GridToolbarExport.js +6 -1
  405. package/node/components/toolbar/GridToolbarExportContainer.js +37 -21
  406. package/node/components/toolbar/GridToolbarFilterButton.js +6 -10
  407. package/node/components/toolbar/GridToolbarQuickFilter.js +4 -0
  408. package/node/components/virtualization/GridBottomContainer.js +34 -0
  409. package/node/components/{containers → virtualization}/GridMainContainer.js +7 -29
  410. package/node/components/virtualization/GridTopContainer.js +44 -0
  411. package/node/components/virtualization/GridVirtualScrollbar.js +138 -0
  412. package/node/components/virtualization/GridVirtualScroller.js +69 -17
  413. package/node/components/virtualization/GridVirtualScrollerFiller.js +77 -0
  414. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  415. package/node/constants/defaultGridSlotsComponents.js +5 -1
  416. package/node/constants/gridClasses.js +1 -1
  417. package/node/hooks/core/gridCoreSelector.js +12 -0
  418. package/node/hooks/core/useGridInitialization.js +4 -0
  419. package/node/hooks/core/useGridLoggerFactory.js +2 -2
  420. package/node/hooks/core/useGridRefs.js +22 -0
  421. package/node/hooks/core/useGridTheme.js +29 -0
  422. package/node/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
  423. package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +11 -16
  424. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +65 -159
  425. package/node/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  426. package/node/hooks/features/columns/gridColumnsInterfaces.js +11 -1
  427. package/node/hooks/features/columns/gridColumnsSelector.js +52 -1
  428. package/node/hooks/features/columns/gridColumnsUtils.js +10 -13
  429. package/node/hooks/features/columns/index.js +22 -61
  430. package/node/hooks/features/columns/useGridColumnSpanning.js +62 -61
  431. package/node/hooks/features/columns/useGridColumns.js +20 -22
  432. package/node/hooks/features/dimensions/gridDimensionsSelectors.js +8 -0
  433. package/node/hooks/features/dimensions/index.js +11 -0
  434. package/node/hooks/features/dimensions/useGridDimensions.js +215 -144
  435. package/node/hooks/features/editing/useGridCellEditing.js +4 -4
  436. package/node/hooks/features/editing/useGridRowEditing.js +4 -4
  437. package/node/hooks/features/export/serializers/csvSerializer.js +3 -3
  438. package/node/hooks/features/export/useGridPrintExport.js +1 -1
  439. package/node/hooks/features/filter/gridFilterUtils.js +5 -5
  440. package/node/hooks/features/filter/useGridFilter.js +2 -2
  441. package/node/hooks/features/focus/gridFocusStateSelector.js +3 -7
  442. package/node/hooks/features/focus/useGridFocus.js +2 -2
  443. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -15
  444. package/node/hooks/features/pagination/gridPaginationUtils.js +2 -2
  445. package/node/hooks/features/pagination/useGridPagination.js +3 -5
  446. package/node/hooks/features/rowSelection/useGridRowSelection.js +1 -1
  447. package/node/hooks/features/rows/gridRowsSelector.js +2 -2
  448. package/node/hooks/features/rows/gridRowsUtils.js +6 -6
  449. package/node/hooks/features/rows/useGridRows.js +7 -7
  450. package/node/hooks/features/rows/useGridRowsMeta.js +7 -5
  451. package/node/hooks/features/scroll/useGridScroll.js +8 -9
  452. package/node/hooks/features/sorting/gridSortingUtils.js +5 -3
  453. package/node/hooks/features/sorting/useGridSorting.js +15 -10
  454. package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  455. package/node/hooks/features/virtualization/useGridVirtualScroller.js +434 -431
  456. package/node/hooks/features/virtualization/useGridVirtualization.js +9 -1
  457. package/node/hooks/utils/index.js +36 -0
  458. package/node/hooks/utils/useGridApiContext.js +1 -1
  459. package/node/hooks/utils/useGridAriaAttributes.js +1 -1
  460. package/node/hooks/utils/useGridNativeEventListener.js +3 -9
  461. package/node/hooks/utils/useGridPrivateApiContext.js +1 -1
  462. package/node/hooks/utils/useGridRootProps.js +1 -1
  463. package/node/hooks/utils/useGridSelector.js +1 -1
  464. package/node/hooks/utils/useResizeObserver.js +44 -0
  465. package/node/hooks/utils/useRunOnce.js +27 -0
  466. package/node/index.js +1 -13
  467. package/node/internals/index.js +86 -71
  468. package/node/internals/utils/index.js +11 -0
  469. package/node/internals/utils/propValidation.js +26 -0
  470. package/node/locales/hrHR.js +155 -0
  471. package/node/locales/index.js +33 -0
  472. package/node/locales/ptPT.js +155 -0
  473. package/node/locales/zhHK.js +155 -0
  474. package/node/models/index.js +0 -11
  475. package/node/models/params/index.js +0 -11
  476. package/node/utils/createSelector.js +1 -1
  477. package/node/utils/exportAs.js +1 -1
  478. package/node/utils/utils.js +11 -1
  479. package/package.json +6 -6
  480. package/utils/createSelector.js +1 -1
  481. package/utils/exportAs.js +1 -1
  482. package/utils/utils.d.ts +6 -0
  483. package/utils/utils.js +10 -1
  484. package/components/DataGridVirtualScroller.d.ts +0 -3
  485. package/components/DataGridVirtualScroller.js +0 -35
  486. package/components/containers/GridMainContainer.js +0 -43
  487. package/legacy/components/DataGridVirtualScroller.js +0 -32
  488. package/legacy/components/containers/GridMainContainer.js +0 -45
  489. package/legacy/models/gridRootContainerRef.js +0 -1
  490. package/legacy/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  491. package/models/gridRootContainerRef.d.ts +0 -5
  492. package/models/gridRootContainerRef.js +0 -1
  493. package/models/params/gridRenderedRowsIntervalChangeParams.d.ts +0 -10
  494. package/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  495. package/modern/components/DataGridVirtualScroller.js +0 -35
  496. package/modern/components/containers/GridMainContainer.js +0 -42
  497. package/modern/models/gridRootContainerRef.js +0 -1
  498. package/modern/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  499. package/node/components/DataGridVirtualScroller.js +0 -42
  500. package/node/models/gridRootContainerRef.js +0 -5
  501. package/node/models/params/gridRenderedRowsIntervalChangeParams.js +0 -5
@@ -0,0 +1,25 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ import clsx from 'clsx';
4
+ import { styled } from '@mui/system';
5
+ import { unstable_composeClasses as composeClasses } from '@mui/utils';
6
+ import { gridClasses, getDataGridUtilityClass } from '../../constants/gridClasses';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ var useUtilityClasses = function useUtilityClasses() {
9
+ var slots = {
10
+ root: ['bottomContainer']
11
+ };
12
+ return composeClasses(slots, getDataGridUtilityClass, {});
13
+ };
14
+ var Element = styled('div')({
15
+ position: 'sticky',
16
+ zIndex: 2,
17
+ bottom: 'calc(var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize))'
18
+ });
19
+ export function GridBottomContainer(props) {
20
+ var classes = useUtilityClasses();
21
+ return /*#__PURE__*/_jsx(Element, _extends({}, props, {
22
+ className: clsx(classes.root, props.className, gridClasses['container--bottom']),
23
+ role: "presentation"
24
+ }));
25
+ }
@@ -0,0 +1,20 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ import { styled } from '@mui/system';
4
+ import { useGridAriaAttributes } from '../../hooks/utils/useGridAriaAttributes';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ var Element = styled('div')({
7
+ flexGrow: 1,
8
+ position: 'relative',
9
+ overflow: 'hidden'
10
+ });
11
+ export var GridMainContainer = /*#__PURE__*/React.forwardRef(function (props, ref) {
12
+ var ariaAttributes = useGridAriaAttributes();
13
+ return /*#__PURE__*/_jsx(Element, _extends({
14
+ ref: ref,
15
+ className: props.className,
16
+ tabIndex: -1
17
+ }, ariaAttributes, {
18
+ children: props.children
19
+ }));
20
+ });
@@ -0,0 +1,35 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ import clsx from 'clsx';
4
+ import { styled } from '@mui/system';
5
+ import { unstable_composeClasses as composeClasses } from '@mui/utils';
6
+ import { gridClasses, getDataGridUtilityClass } from '../../constants/gridClasses';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ var useUtilityClasses = function useUtilityClasses() {
9
+ var slots = {
10
+ root: ['topContainer']
11
+ };
12
+ return composeClasses(slots, getDataGridUtilityClass, {});
13
+ };
14
+ var Element = styled('div')({
15
+ position: 'sticky',
16
+ zIndex: 2,
17
+ top: 0,
18
+ '&::after': {
19
+ content: '" "',
20
+ position: 'absolute',
21
+ zIndex: 5,
22
+ bottom: 0,
23
+ left: 0,
24
+ height: 1,
25
+ width: 'var(--DataGrid-rowWidth)',
26
+ backgroundColor: 'var(--DataGrid-rowBorderColor)'
27
+ }
28
+ });
29
+ export function GridTopContainer(props) {
30
+ var classes = useUtilityClasses();
31
+ return /*#__PURE__*/_jsx(Element, _extends({}, props, {
32
+ className: clsx(classes.root, props.className, gridClasses['container--top']),
33
+ role: "presentation"
34
+ }));
35
+ }
@@ -0,0 +1,129 @@
1
+ import * as React from 'react';
2
+ import { styled } from '@mui/system';
3
+ import { unstable_composeClasses as composeClasses, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';
4
+ import { useOnMount } from '../../hooks/utils/useOnMount';
5
+ import { useGridPrivateApiContext } from '../../hooks/utils/useGridPrivateApiContext';
6
+ import { gridDimensionsSelector, useGridSelector } from '../../hooks';
7
+ import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
8
+ import { getDataGridUtilityClass } from '../../constants/gridClasses';
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ var useUtilityClasses = function useUtilityClasses(ownerState, position) {
11
+ var classes = ownerState.classes;
12
+ var slots = {
13
+ root: ['scrollbar', "scrollbar--".concat(position)],
14
+ content: ['scrollbarContent']
15
+ };
16
+ return composeClasses(slots, getDataGridUtilityClass, classes);
17
+ };
18
+ var Scrollbar = styled('div')({
19
+ position: 'absolute',
20
+ display: 'inline-block',
21
+ zIndex: 6,
22
+ '& > div': {
23
+ display: 'inline-block'
24
+ },
25
+ // In macOS Safari and Gnome Web, scrollbars are overlaid and don't affect the layout. So we consider
26
+ // their size to be 0px throughout all the calculations, but the floating scrollbar container does need
27
+ // to appear and have a real size. We set it to 14px because it seems like an acceptable value and we
28
+ // don't have a method to find the required size for scrollbars on those platforms.
29
+ '--size': 'calc(max(var(--DataGrid-scrollbarSize), 14px))'
30
+ });
31
+ var ScrollbarVertical = styled(Scrollbar)({
32
+ width: 'var(--size)',
33
+ height: 'calc(var(--DataGrid-hasScrollY) * (100% - var(--DataGrid-topContainerHeight) - var(--DataGrid-bottomContainerHeight) - var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize)))',
34
+ overflowY: 'auto',
35
+ overflowX: 'hidden',
36
+ '& > div': {
37
+ width: 'var(--size)'
38
+ },
39
+ top: 'var(--DataGrid-topContainerHeight)',
40
+ right: '0px'
41
+ });
42
+ var ScrollbarHorizontal = styled(Scrollbar)({
43
+ width: '100%',
44
+ height: 'var(--size)',
45
+ overflowY: 'hidden',
46
+ overflowX: 'auto',
47
+ '& > div': {
48
+ height: 'var(--size)'
49
+ },
50
+ bottom: '0px'
51
+ });
52
+ var Content = styled('div')({
53
+ display: 'inline-block'
54
+ });
55
+ var GridVirtualScrollbar = /*#__PURE__*/React.forwardRef(function GridVirtualScrollbar(props, ref) {
56
+ var apiRef = useGridPrivateApiContext();
57
+ var rootProps = useGridRootProps();
58
+ var isLocked = React.useRef(false);
59
+ var lastPosition = React.useRef(0);
60
+ var scrollbarRef = React.useRef(null);
61
+ var contentRef = React.useRef(null);
62
+ var classes = useUtilityClasses(rootProps, props.position);
63
+ var dimensions = useGridSelector(apiRef, gridDimensionsSelector);
64
+ var propertyDimension = props.position === 'vertical' ? 'height' : 'width';
65
+ var propertyScroll = props.position === 'vertical' ? 'scrollTop' : 'scrollLeft';
66
+ var hasScroll = props.position === 'vertical' ? dimensions.hasScrollX : dimensions.hasScrollY;
67
+ var contentSize = dimensions.minimumSize[propertyDimension] + (hasScroll ? dimensions.scrollbarSize : 0);
68
+ var scrollbarSize = props.position === 'vertical' ? dimensions.viewportInnerSize.height : dimensions.viewportOuterSize.width;
69
+ var scrollbarInnerSize = scrollbarSize * (contentSize / dimensions.viewportOuterSize[propertyDimension]);
70
+ var onScrollerScroll = useEventCallback(function () {
71
+ var scroller = apiRef.current.virtualScrollerRef.current;
72
+ var scrollbar = scrollbarRef.current;
73
+ if (scroller[propertyScroll] === lastPosition.current) {
74
+ return;
75
+ }
76
+ if (isLocked.current) {
77
+ isLocked.current = false;
78
+ return;
79
+ }
80
+ isLocked.current = true;
81
+ var value = scroller[propertyScroll] / contentSize;
82
+ scrollbar[propertyScroll] = value * scrollbarInnerSize;
83
+ lastPosition.current = scroller[propertyScroll];
84
+ });
85
+ var onScrollbarScroll = useEventCallback(function () {
86
+ var scroller = apiRef.current.virtualScrollerRef.current;
87
+ var scrollbar = scrollbarRef.current;
88
+ if (isLocked.current) {
89
+ isLocked.current = false;
90
+ return;
91
+ }
92
+ isLocked.current = true;
93
+ var value = scrollbar[propertyScroll] / scrollbarInnerSize;
94
+ scroller[propertyScroll] = value * contentSize;
95
+ });
96
+ useOnMount(function () {
97
+ var scroller = apiRef.current.virtualScrollerRef.current;
98
+ var scrollbar = scrollbarRef.current;
99
+ scroller.addEventListener('scroll', onScrollerScroll, {
100
+ capture: true
101
+ });
102
+ scrollbar.addEventListener('scroll', onScrollbarScroll, {
103
+ capture: true
104
+ });
105
+ return function () {
106
+ scroller.removeEventListener('scroll', onScrollerScroll, {
107
+ capture: true
108
+ });
109
+ scrollbar.removeEventListener('scroll', onScrollbarScroll, {
110
+ capture: true
111
+ });
112
+ };
113
+ });
114
+ React.useEffect(function () {
115
+ var content = contentRef.current;
116
+ content.style.setProperty(propertyDimension, "".concat(scrollbarInnerSize, "px"));
117
+ }, [scrollbarInnerSize, propertyDimension]);
118
+ var Container = props.position === 'vertical' ? ScrollbarVertical : ScrollbarHorizontal;
119
+ return /*#__PURE__*/_jsx(Container, {
120
+ ref: useForkRef(ref, scrollbarRef),
121
+ className: classes.root,
122
+ tabIndex: -1,
123
+ children: /*#__PURE__*/_jsx(Content, {
124
+ ref: contentRef,
125
+ className: classes.content
126
+ })
127
+ });
128
+ });
129
+ export { GridVirtualScrollbar };
@@ -1,42 +1,93 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
- import clsx from 'clsx';
4
3
  import { styled } from '@mui/system';
5
4
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
6
5
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
6
+ import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
7
+ import { useGridSelector } from '../../hooks/utils/useGridSelector';
7
8
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
9
+ import { gridDimensionsSelector } from '../../hooks/features/dimensions';
10
+ import { useGridVirtualScroller } from '../../hooks/features/virtualization/useGridVirtualScroller';
11
+ import { GridOverlays } from '../base/GridOverlays';
12
+ import { GridHeaders } from '../GridHeaders';
13
+ import { GridMainContainer as Container } from './GridMainContainer';
14
+ import { GridTopContainer as TopContainer } from './GridTopContainer';
15
+ import { GridBottomContainer as BottomContainer } from './GridBottomContainer';
16
+ import { GridVirtualScrollerContent as Content } from './GridVirtualScrollerContent';
17
+ import { GridVirtualScrollerFiller as SpaceFiller } from './GridVirtualScrollerFiller';
18
+ import { GridVirtualScrollerRenderZone as RenderZone } from './GridVirtualScrollerRenderZone';
19
+ import { GridVirtualScrollbar as Scrollbar } from './GridVirtualScrollbar';
8
20
  import { jsx as _jsx } from "react/jsx-runtime";
9
- var useUtilityClasses = function useUtilityClasses(ownerState) {
21
+ import { jsxs as _jsxs } from "react/jsx-runtime";
22
+ var useUtilityClasses = function useUtilityClasses(ownerState, dimensions) {
10
23
  var classes = ownerState.classes;
11
24
  var slots = {
12
- root: ['virtualScroller']
25
+ root: ['main', dimensions.rightPinnedWidth > 0 && 'main--hasPinnedRight'],
26
+ scroller: ['virtualScroller']
13
27
  };
14
28
  return composeClasses(slots, getDataGridUtilityClass, classes);
15
29
  };
16
- var VirtualScrollerRoot = styled('div', {
30
+ var Scroller = styled('div', {
17
31
  name: 'MuiDataGrid',
18
32
  slot: 'VirtualScroller',
19
33
  overridesResolver: function overridesResolver(props, styles) {
20
34
  return styles.virtualScroller;
21
35
  }
22
36
  })({
23
- overflow: 'auto',
24
- height: '100%',
25
- // See https://github.com/mui/mui-x/issues/4360
26
37
  position: 'relative',
38
+ height: '100%',
39
+ overflow: 'scroll',
40
+ scrollbarWidth: 'none' /* Firefox */,
41
+ '&::-webkit-scrollbar': {
42
+ display: 'none' /* Safari and Chrome */
43
+ },
27
44
  '@media print': {
28
45
  overflow: 'hidden'
29
46
  },
30
- zIndex: 0 // See https://github.com/mui/mui-x/issues/10547
47
+ // See https://github.com/mui/mui-x/issues/10547
48
+ zIndex: 0
31
49
  });
32
- var GridVirtualScroller = /*#__PURE__*/React.forwardRef(function GridVirtualScroller(props, ref) {
50
+ function GridVirtualScroller(props) {
51
+ var apiRef = useGridApiContext();
33
52
  var rootProps = useGridRootProps();
34
- var classes = useUtilityClasses(rootProps);
35
- return /*#__PURE__*/_jsx(VirtualScrollerRoot, _extends({
36
- ref: ref
37
- }, props, {
38
- className: clsx(classes.root, props.className),
39
- ownerState: rootProps
53
+ var dimensions = useGridSelector(apiRef, gridDimensionsSelector);
54
+ var classes = useUtilityClasses(rootProps, dimensions);
55
+ var virtualScroller = useGridVirtualScroller();
56
+ var getContainerProps = virtualScroller.getContainerProps,
57
+ getScrollerProps = virtualScroller.getScrollerProps,
58
+ getContentProps = virtualScroller.getContentProps,
59
+ getRenderZoneProps = virtualScroller.getRenderZoneProps,
60
+ getScrollbarVerticalProps = virtualScroller.getScrollbarVerticalProps,
61
+ getScrollbarHorizontalProps = virtualScroller.getScrollbarHorizontalProps;
62
+ return /*#__PURE__*/_jsxs(Container, _extends({
63
+ className: classes.root
64
+ }, getContainerProps(), {
65
+ children: [/*#__PURE__*/_jsxs(Scroller, _extends({
66
+ className: classes.scroller
67
+ }, getScrollerProps(), {
68
+ ownerState: rootProps,
69
+ children: [/*#__PURE__*/_jsxs(TopContainer, {
70
+ children: [/*#__PURE__*/_jsx(GridHeaders, {}), /*#__PURE__*/_jsx(rootProps.slots.pinnedRows, {
71
+ position: "top",
72
+ virtualScroller: virtualScroller
73
+ })]
74
+ }), /*#__PURE__*/_jsx(GridOverlays, {}), /*#__PURE__*/_jsx(Content, _extends({}, getContentProps(), {
75
+ children: /*#__PURE__*/_jsxs(RenderZone, _extends({}, getRenderZoneProps(), {
76
+ children: [virtualScroller.getRows(), /*#__PURE__*/_jsx(rootProps.slots.detailPanels, {
77
+ virtualScroller: virtualScroller
78
+ })]
79
+ }))
80
+ })), /*#__PURE__*/_jsx(SpaceFiller, {}), /*#__PURE__*/_jsx(BottomContainer, {
81
+ children: /*#__PURE__*/_jsx(rootProps.slots.pinnedRows, {
82
+ position: "bottom",
83
+ virtualScroller: virtualScroller
84
+ })
85
+ })]
86
+ })), /*#__PURE__*/_jsx(Scrollbar, _extends({
87
+ position: "vertical"
88
+ }, getScrollbarVerticalProps())), /*#__PURE__*/_jsx(Scrollbar, _extends({
89
+ position: "horizontal"
90
+ }, getScrollbarHorizontalProps())), props.children]
40
91
  }));
41
- });
92
+ }
42
93
  export { GridVirtualScroller };
@@ -0,0 +1,70 @@
1
+ import * as React from 'react';
2
+ import { styled } from '@mui/system';
3
+ import { fastMemo } from '../../utils/fastMemo';
4
+ import { useGridSelector } from '../../hooks/utils/useGridSelector';
5
+ import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
6
+ import { gridDimensionsSelector } from '../../hooks/features/dimensions';
7
+ import { gridClasses } from '../../constants';
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ import { jsxs as _jsxs } from "react/jsx-runtime";
10
+ var Filler = styled('div')({
11
+ display: 'flex',
12
+ flexDirection: 'row',
13
+ width: 'var(--DataGrid-rowWidth)',
14
+ boxSizing: 'border-box'
15
+ });
16
+ var Pinned = styled('div')({
17
+ position: 'sticky',
18
+ height: '100%',
19
+ boxSizing: 'border-box',
20
+ borderTop: '1px solid var(--DataGrid-rowBorderColor)',
21
+ backgroundColor: 'var(--DataGrid-pinnedBackground)'
22
+ });
23
+ var PinnedLeft = styled(Pinned)({
24
+ left: 0,
25
+ borderRight: '1px solid var(--DataGrid-rowBorderColor)'
26
+ });
27
+ var PinnedRight = styled(Pinned)({
28
+ right: 0,
29
+ borderLeft: '1px solid var(--DataGrid-rowBorderColor)'
30
+ });
31
+ var Main = styled('div')({
32
+ flexGrow: 1,
33
+ borderTop: '1px solid var(--DataGrid-rowBorderColor)'
34
+ });
35
+ function GridVirtualScrollerFiller() {
36
+ var apiRef = useGridApiContext();
37
+ var _useGridSelector = useGridSelector(apiRef, gridDimensionsSelector),
38
+ viewportOuterSize = _useGridSelector.viewportOuterSize,
39
+ minimumSize = _useGridSelector.minimumSize,
40
+ hasScrollX = _useGridSelector.hasScrollX,
41
+ scrollbarSize = _useGridSelector.scrollbarSize,
42
+ leftPinnedWidth = _useGridSelector.leftPinnedWidth,
43
+ rightPinnedWidth = _useGridSelector.rightPinnedWidth;
44
+ var scrollbarHeight = hasScrollX ? scrollbarSize : 0;
45
+ var expandedHeight = viewportOuterSize.height - minimumSize.height - scrollbarHeight;
46
+ var height = Math.max(scrollbarHeight, expandedHeight);
47
+ if (height === 0) {
48
+ return null;
49
+ }
50
+ return /*#__PURE__*/_jsxs(Filler, {
51
+ className: gridClasses.filler,
52
+ role: "presentation",
53
+ style: {
54
+ height: height
55
+ },
56
+ children: [leftPinnedWidth > 0 && /*#__PURE__*/_jsx(PinnedLeft, {
57
+ className: gridClasses['filler--pinnedLeft'],
58
+ style: {
59
+ width: leftPinnedWidth
60
+ }
61
+ }), /*#__PURE__*/_jsx(Main, {}), rightPinnedWidth > 0 && /*#__PURE__*/_jsx(PinnedRight, {
62
+ className: gridClasses['filler--pinnedRight'],
63
+ style: {
64
+ width: rightPinnedWidth
65
+ }
66
+ })]
67
+ });
68
+ }
69
+ var Memoized = fastMemo(GridVirtualScrollerFiller);
70
+ export { Memoized as GridVirtualScrollerFiller };
@@ -25,7 +25,8 @@ var VirtualScrollerRenderZoneRoot = styled('div', {
25
25
  position: 'absolute',
26
26
  display: 'flex',
27
27
  // Prevents margin collapsing when using `getRowSpacing`
28
- flexDirection: 'column'
28
+ flexDirection: 'column',
29
+ transform: 'translate3d(0, var(--DataGrid-offsetTop), 0)'
29
30
  });
30
31
  var GridVirtualScrollerRenderZone = /*#__PURE__*/React.forwardRef(function GridVirtualScrollerRenderZone(props, ref) {
31
32
  var className = props.className,
@@ -1,22 +1,26 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { GridSkeletonCell, GridColumnsPanel, GridFilterPanel, GridFooter, GridLoadingOverlay, GridNoRowsOverlay, GridPagination, GridPanel, GridRow, GridColumnHeaderFilterIconButton, GridRowCount } from '../components';
3
- import { GridCellV7 } from '../components/cell/GridCell';
3
+ import { GridCell } from '../components/cell/GridCell';
4
4
  import { GridColumnHeaders } from '../components/GridColumnHeaders';
5
5
  import { GridColumnMenu } from '../components/menu/columnMenu/GridColumnMenu';
6
+ import { GridDetailPanels } from '../components/GridDetailPanels';
7
+ import { GridPinnedRows } from '../components/GridPinnedRows';
6
8
  import { GridNoResultsOverlay } from '../components/GridNoResultsOverlay';
7
9
  import materialSlots from '../material';
8
10
 
9
11
  // TODO: camelCase these key. It's a private helper now.
10
12
  // Remove then need to call `uncapitalizeObjectKeys`.
11
13
  export var DATA_GRID_DEFAULT_SLOTS_COMPONENTS = _extends({}, materialSlots, {
12
- cell: GridCellV7,
14
+ cell: GridCell,
13
15
  skeletonCell: GridSkeletonCell,
14
16
  columnHeaderFilterIconButton: GridColumnHeaderFilterIconButton,
15
17
  columnMenu: GridColumnMenu,
16
18
  columnHeaders: GridColumnHeaders,
19
+ detailPanels: GridDetailPanels,
17
20
  footer: GridFooter,
18
21
  footerRowCount: GridRowCount,
19
22
  toolbar: null,
23
+ pinnedRows: GridPinnedRows,
20
24
  loadingOverlay: GridLoadingOverlay,
21
25
  noResultsOverlay: GridNoResultsOverlay,
22
26
  noRowsOverlay: GridNoRowsOverlay,
@@ -2,4 +2,4 @@ import { unstable_generateUtilityClasses as generateUtilityClasses, unstable_gen
2
2
  export function getDataGridUtilityClass(slot) {
3
3
  return generateUtilityClass('MuiDataGrid', slot);
4
4
  }
5
- export var gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--selectionMode', 'cell', 'cellContent', 'cellCheckbox', 'cellSkeleton', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnGroupHeader', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeader--showColumnBorder', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorderColor', 'cell--withRightBorder', 'columnHeader--withRightBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
5
+ export var gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellContent', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnGroupHeader', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeader--showColumnBorder', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Get the theme state
3
+ * @category Core
4
+ */
5
+ export var gridThemeSelector = function gridThemeSelector(state) {
6
+ return state.theme;
7
+ };
@@ -1,3 +1,5 @@
1
+ import { useGridRefs } from './useGridRefs';
2
+ import { useGridTheme } from './useGridTheme';
1
3
  import { useGridLoggerFactory } from './useGridLoggerFactory';
2
4
  import { useGridApiInitialization } from './useGridApiInitialization';
3
5
  import { useGridLocaleText } from './useGridLocaleText';
@@ -10,6 +12,8 @@ import { useGridStateInitialization } from './useGridStateInitialization';
10
12
  */
11
13
  export var useGridInitialization = function useGridInitialization(inputApiRef, props) {
12
14
  var privateApiRef = useGridApiInitialization(inputApiRef, props);
15
+ useGridRefs(privateApiRef);
16
+ useGridTheme(privateApiRef);
13
17
  useGridLoggerFactory(privateApiRef, props);
14
18
  useGridStateInitialization(privateApiRef, props);
15
19
  useGridPipeProcessing(privateApiRef);
@@ -15,7 +15,7 @@ function getAppender(name, logLevel) {
15
15
  var appender = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : console;
16
16
  var minLogLevelIdx = LOG_LEVELS.indexOf(logLevel);
17
17
  if (minLogLevelIdx === -1) {
18
- throw new Error("MUI: Log level ".concat(logLevel, " not recognized."));
18
+ throw new Error("MUI X: Log level ".concat(logLevel, " not recognized."));
19
19
  }
20
20
  var logger = LOG_LEVELS.reduce(function (loggerObj, method, idx) {
21
21
  if (idx >= minLogLevelIdx) {
@@ -26,7 +26,7 @@ function getAppender(name, logLevel) {
26
26
  }
27
27
  var message = args[0],
28
28
  other = args.slice(1);
29
- (_ref = appender)[method].apply(_ref, ["MUI: ".concat(name, " - ").concat(message)].concat(_toConsumableArray(other)));
29
+ (_ref = appender)[method].apply(_ref, ["MUI X: ".concat(name, " - ").concat(message)].concat(_toConsumableArray(other)));
30
30
  };
31
31
  } else {
32
32
  loggerObj[method] = noop;
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ export var useGridRefs = function useGridRefs(apiRef) {
3
+ var rootElementRef = React.useRef(null);
4
+ var mainElementRef = React.useRef(null);
5
+ var virtualScrollerRef = React.useRef(null);
6
+ apiRef.current.register('public', {
7
+ rootElementRef: rootElementRef
8
+ });
9
+ apiRef.current.register('private', {
10
+ mainElementRef: mainElementRef,
11
+ virtualScrollerRef: virtualScrollerRef
12
+ });
13
+ };
@@ -0,0 +1,21 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ import { useTheme } from '@mui/material/styles';
4
+ export var useGridTheme = function useGridTheme(apiRef) {
5
+ var theme = useTheme();
6
+ if (!apiRef.current.state.theme) {
7
+ apiRef.current.state.theme = theme;
8
+ }
9
+ var isFirstEffect = React.useRef(true);
10
+ React.useEffect(function () {
11
+ if (isFirstEffect.current) {
12
+ isFirstEffect.current = false;
13
+ } else {
14
+ apiRef.current.setState(function (state) {
15
+ return _extends({}, state, {
16
+ theme: theme
17
+ });
18
+ });
19
+ }
20
+ }, [apiRef, theme]);
21
+ };
@@ -5,7 +5,7 @@ import { isDeepEqual } from '../../../utils/utils';
5
5
  var recurrentUnwrapGroupingColumnModel = function recurrentUnwrapGroupingColumnModel(columnGroupNode, parents, unwrappedGroupingModelToComplete) {
6
6
  if (isLeaf(columnGroupNode)) {
7
7
  if (unwrappedGroupingModelToComplete[columnGroupNode.field] !== undefined) {
8
- throw new Error(["MUI: columnGroupingModel contains duplicated field", "column field ".concat(columnGroupNode.field, " occurs two times in the grouping model:"), "- ".concat(unwrappedGroupingModelToComplete[columnGroupNode.field].join(' > ')), "- ".concat(parents.join(' > '))].join('\n'));
8
+ throw new Error(["MUI X: columnGroupingModel contains duplicated field", "column field ".concat(columnGroupNode.field, " occurs two times in the grouping model:"), "- ".concat(unwrappedGroupingModelToComplete[columnGroupNode.field].join(' > ')), "- ".concat(parents.join(' > '))].join('\n'));
9
9
  }
10
10
  unwrappedGroupingModelToComplete[columnGroupNode.field] = parents;
11
11
  return;
@@ -20,33 +20,34 @@ var createGroupLookup = function createGroupLookup(columnGroupingModel) {
20
20
  children = node.children,
21
21
  other = _objectWithoutProperties(node, _excluded);
22
22
  if (!groupId) {
23
- throw new Error('MUI: An element of the columnGroupingModel does not have either `field` or `groupId`.');
23
+ throw new Error('MUI X: An element of the columnGroupingModel does not have either `field` or `groupId`.');
24
24
  }
25
- if (!children) {
26
- console.warn("MUI: group groupId=".concat(groupId, " has no children."));
25
+ if (process.env.NODE_ENV !== 'production') {
26
+ if (!children) {
27
+ console.warn("MUI X: group groupId=".concat(groupId, " has no children."));
28
+ }
27
29
  }
28
30
  var groupParam = _extends({}, other, {
29
31
  groupId: groupId
30
32
  });
31
33
  var subTreeLookup = createGroupLookup(children);
32
34
  if (subTreeLookup[groupId] !== undefined || groupLookup[groupId] !== undefined) {
33
- throw new Error("MUI: The groupId ".concat(groupId, " is used multiple times in the columnGroupingModel."));
35
+ throw new Error("MUI X: The groupId ".concat(groupId, " is used multiple times in the columnGroupingModel."));
34
36
  }
35
37
  groupLookup = _extends({}, groupLookup, subTreeLookup, _defineProperty({}, groupId, groupParam));
36
38
  });
37
39
  return _extends({}, groupLookup);
38
40
  };
39
41
  export var columnGroupsStateInitializer = function columnGroupsStateInitializer(state, props, apiRef) {
40
- var _props$experimentalFe, _props$columnGrouping, _props$columnGrouping2, _apiRef$current$state;
41
- if (!((_props$experimentalFe = props.experimentalFeatures) != null && _props$experimentalFe.columnGrouping)) {
42
+ var _props$columnGrouping, _props$columnGrouping2, _apiRef$current$state;
43
+ if (!props.columnGroupingModel) {
42
44
  return state;
43
45
  }
44
46
  var columnFields = gridColumnFieldsSelector(apiRef);
45
47
  var visibleColumnFields = gridVisibleColumnFieldsSelector(apiRef);
46
48
  var groupLookup = createGroupLookup((_props$columnGrouping = props.columnGroupingModel) != null ? _props$columnGrouping : []);
47
49
  var unwrappedGroupingModel = unwrapGroupingColumnModel((_props$columnGrouping2 = props.columnGroupingModel) != null ? _props$columnGrouping2 : []);
48
- var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(columnFields, unwrappedGroupingModel, // @ts-expect-error Move this part to `Pro` package
49
- (_apiRef$current$state = apiRef.current.state.pinnedColumns) != null ? _apiRef$current$state : {});
50
+ var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(columnFields, unwrappedGroupingModel, (_apiRef$current$state = apiRef.current.state.pinnedColumns) != null ? _apiRef$current$state : {});
50
51
  var maxDepth = visibleColumnFields.length === 0 ? 0 : Math.max.apply(Math, _toConsumableArray(visibleColumnFields.map(function (field) {
51
52
  var _unwrappedGroupingMod, _unwrappedGroupingMod2;
52
53
  return (_unwrappedGroupingMod = (_unwrappedGroupingMod2 = unwrappedGroupingModel[field]) == null ? void 0 : _unwrappedGroupingMod2.length) != null ? _unwrappedGroupingMod : 0;
@@ -66,7 +67,6 @@ export var columnGroupsStateInitializer = function columnGroupsStateInitializer(
66
67
  * @requires useGridParamsApi (method)
67
68
  */
68
69
  export var useGridColumnGrouping = function useGridColumnGrouping(apiRef, props) {
69
- var _props$experimentalFe3;
70
70
  /**
71
71
  * API METHODS
72
72
  */
@@ -80,8 +80,8 @@ export var useGridColumnGrouping = function useGridColumnGrouping(apiRef, props)
80
80
  return columnGroupLookup;
81
81
  }, [apiRef]);
82
82
  var columnGroupingApi = {
83
- unstable_getColumnGroupPath: getColumnGroupPath,
84
- unstable_getAllGroupDetails: getAllGroupDetails
83
+ getColumnGroupPath: getColumnGroupPath,
84
+ getAllGroupDetails: getAllGroupDetails
85
85
  };
86
86
  useGridApiMethod(apiRef, columnGroupingApi, 'public');
87
87
  var handleColumnIndexChange = React.useCallback(function () {
@@ -90,8 +90,6 @@ export var useGridColumnGrouping = function useGridColumnGrouping(apiRef, props)
90
90
  apiRef.current.setState(function (state) {
91
91
  var _state$columns$ordere, _state$columns, _state$pinnedColumns;
92
92
  var orderedFields = (_state$columns$ordere = (_state$columns = state.columns) == null ? void 0 : _state$columns.orderedFields) != null ? _state$columns$ordere : [];
93
-
94
- // @ts-expect-error Move this logic to `Pro` package
95
93
  var pinnedColumns = (_state$pinnedColumns = state.pinnedColumns) != null ? _state$pinnedColumns : {};
96
94
  var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(orderedFields, unwrappedGroupingModel, pinnedColumns);
97
95
  return _extends({}, state, {
@@ -102,10 +100,7 @@ export var useGridColumnGrouping = function useGridColumnGrouping(apiRef, props)
102
100
  });
103
101
  }, [apiRef, props.columnGroupingModel]);
104
102
  var updateColumnGroupingState = React.useCallback(function (columnGroupingModel) {
105
- var _props$experimentalFe2, _apiRef$current$getPi, _apiRef$current$getPi2, _apiRef$current;
106
- if (!((_props$experimentalFe2 = props.experimentalFeatures) != null && _props$experimentalFe2.columnGrouping)) {
107
- return;
108
- }
103
+ var _apiRef$current$getPi, _apiRef$current$getPi2, _apiRef$current;
109
104
  // @ts-expect-error Move this logic to `Pro` package
110
105
  var pinnedColumns = (_apiRef$current$getPi = (_apiRef$current$getPi2 = (_apiRef$current = apiRef.current).getPinnedColumns) == null ? void 0 : _apiRef$current$getPi2.call(_apiRef$current)) != null ? _apiRef$current$getPi : {};
111
106
  var columnFields = gridColumnFieldsSelector(apiRef);
@@ -127,7 +122,7 @@ export var useGridColumnGrouping = function useGridColumnGrouping(apiRef, props)
127
122
  }
128
123
  });
129
124
  });
130
- }, [apiRef, (_props$experimentalFe3 = props.experimentalFeatures) == null ? void 0 : _props$experimentalFe3.columnGrouping]);
125
+ }, [apiRef]);
131
126
  useGridApiEventHandler(apiRef, 'columnIndexChange', handleColumnIndexChange);
132
127
  useGridApiEventHandler(apiRef, 'columnsChange', function () {
133
128
  updateColumnGroupingState(props.columnGroupingModel);