@mui/x-data-grid 7.0.0-alpha.8 → 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 (410) hide show
  1. package/CHANGELOG.md +379 -2
  2. package/DataGrid/DataGrid.js +6 -6
  3. package/DataGrid/useDataGridComponent.js +2 -1
  4. package/DataGrid/useDataGridProps.js +1 -0
  5. package/README.md +1 -1
  6. package/components/GridColumnHeaders.d.ts +3 -2
  7. package/components/GridColumnHeaders.js +3 -11
  8. package/components/GridDetailPanels.d.ts +5 -0
  9. package/components/GridDetailPanels.js +4 -0
  10. package/components/GridHeaders.d.ts +4 -0
  11. package/components/GridHeaders.js +53 -0
  12. package/components/GridPinnedRows.d.ts +7 -0
  13. package/components/GridPinnedRows.js +4 -0
  14. package/components/GridRow.d.ts +7 -4
  15. package/components/GridRow.js +260 -97
  16. package/components/GridScrollbarFillerCell.d.ts +7 -0
  17. package/components/GridScrollbarFillerCell.js +39 -0
  18. package/components/base/GridBody.d.ts +2 -13
  19. package/components/base/GridBody.js +2 -116
  20. package/components/base/GridOverlays.js +10 -21
  21. package/components/cell/GridActionsCellItem.d.ts +2 -2
  22. package/components/cell/GridCell.d.ts +15 -21
  23. package/components/cell/GridCell.js +67 -372
  24. package/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  25. package/components/columnHeaders/GridColumnHeaderItem.d.ts +2 -1
  26. package/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  27. package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -0
  28. package/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  29. package/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  30. package/components/containers/GridRoot.js +18 -15
  31. package/components/containers/GridRootStyles.js +307 -204
  32. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  33. package/components/panel/GridPanel.js +3 -4
  34. package/components/panel/filterPanel/GridFilterForm.d.ts +6 -4
  35. package/components/panel/filterPanel/GridFilterForm.js +31 -14
  36. package/components/panel/filterPanel/GridFilterPanel.js +46 -20
  37. package/components/toolbar/GridToolbarColumnsButton.d.ts +13 -1
  38. package/components/toolbar/GridToolbarColumnsButton.js +40 -22
  39. package/components/toolbar/GridToolbarDensitySelector.d.ts +13 -1
  40. package/components/toolbar/GridToolbarDensitySelector.js +40 -22
  41. package/components/toolbar/GridToolbarExport.d.ts +10 -1
  42. package/components/toolbar/GridToolbarExport.js +6 -1
  43. package/components/toolbar/GridToolbarExportContainer.d.ts +15 -1
  44. package/components/toolbar/GridToolbarExportContainer.js +41 -23
  45. package/components/toolbar/GridToolbarFilterButton.d.ts +5 -4
  46. package/components/toolbar/GridToolbarFilterButton.js +6 -10
  47. package/components/virtualization/GridBottomContainer.d.ts +2 -0
  48. package/components/virtualization/GridBottomContainer.js +25 -0
  49. package/components/{containers → virtualization}/GridMainContainer.d.ts +2 -0
  50. package/components/virtualization/GridMainContainer.js +20 -0
  51. package/components/virtualization/GridTopContainer.d.ts +2 -0
  52. package/components/virtualization/GridTopContainer.js +35 -0
  53. package/components/virtualization/GridVirtualScrollbar.d.ts +7 -0
  54. package/components/virtualization/GridVirtualScrollbar.js +131 -0
  55. package/components/virtualization/GridVirtualScroller.d.ts +4 -4
  56. package/components/virtualization/GridVirtualScroller.js +69 -16
  57. package/components/virtualization/GridVirtualScrollerFiller.d.ts +4 -0
  58. package/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  59. package/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  60. package/constants/defaultGridSlotsComponents.js +6 -2
  61. package/constants/gridClasses.d.ts +60 -8
  62. package/constants/gridClasses.js +1 -1
  63. package/hooks/core/gridCoreSelector.d.ts +6 -0
  64. package/hooks/core/gridCoreSelector.js +5 -0
  65. package/hooks/core/useGridInitialization.js +4 -0
  66. package/hooks/core/useGridRefs.d.ts +3 -0
  67. package/hooks/core/useGridRefs.js +13 -0
  68. package/hooks/core/useGridTheme.d.ts +3 -0
  69. package/hooks/core/useGridTheme.js +19 -0
  70. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -1
  71. package/hooks/features/columnGrouping/useGridColumnGrouping.js +7 -14
  72. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +13 -18
  73. package/hooks/features/columnHeaders/useGridColumnHeaders.js +68 -162
  74. package/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  75. package/hooks/features/columns/gridColumnsInterfaces.d.ts +17 -0
  76. package/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  77. package/hooks/features/columns/gridColumnsSelector.d.ts +14 -1
  78. package/hooks/features/columns/gridColumnsSelector.js +52 -0
  79. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -5
  80. package/hooks/features/columns/gridColumnsUtils.js +10 -12
  81. package/hooks/features/columns/index.d.ts +2 -2
  82. package/hooks/features/columns/index.js +2 -1
  83. package/hooks/features/columns/useGridColumnSpanning.js +62 -61
  84. package/hooks/features/columns/useGridColumns.js +20 -23
  85. package/hooks/features/dimensions/gridDimensionsApi.d.ts +60 -11
  86. package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +2 -0
  87. package/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  88. package/hooks/features/dimensions/index.d.ts +2 -0
  89. package/hooks/features/dimensions/index.js +1 -0
  90. package/hooks/features/dimensions/useGridDimensions.d.ts +7 -1
  91. package/hooks/features/dimensions/useGridDimensions.js +216 -148
  92. package/hooks/features/export/serializers/csvSerializer.js +2 -2
  93. package/hooks/features/filter/useGridFilter.js +3 -3
  94. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -2
  95. package/hooks/features/focus/gridFocusStateSelector.js +2 -6
  96. package/hooks/features/focus/useGridFocus.js +3 -3
  97. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  98. package/hooks/features/pagination/useGridPagination.js +3 -5
  99. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -0
  100. package/hooks/features/rows/gridRowsSelector.d.ts +2 -2
  101. package/hooks/features/rows/gridRowsSelector.js +5 -5
  102. package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
  103. package/hooks/features/rows/gridRowsUtils.js +4 -4
  104. package/hooks/features/rows/useGridRowsMeta.js +7 -4
  105. package/hooks/features/scroll/useGridScroll.js +8 -10
  106. package/hooks/features/sorting/gridSortingUtils.js +1 -1
  107. package/hooks/features/sorting/useGridSorting.d.ts +1 -1
  108. package/hooks/features/sorting/useGridSorting.js +15 -10
  109. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +14 -0
  110. package/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  111. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +27 -42
  112. package/hooks/features/virtualization/useGridVirtualScroller.js +441 -438
  113. package/hooks/features/virtualization/useGridVirtualization.d.ts +8 -0
  114. package/hooks/features/virtualization/useGridVirtualization.js +8 -1
  115. package/hooks/utils/index.d.ts +3 -0
  116. package/hooks/utils/index.js +4 -1
  117. package/hooks/utils/useGridAriaAttributes.js +1 -2
  118. package/hooks/utils/useGridNativeEventListener.js +4 -9
  119. package/hooks/utils/useResizeObserver.d.ts +2 -0
  120. package/hooks/utils/useResizeObserver.js +36 -0
  121. package/hooks/utils/useRunOnce.d.ts +5 -0
  122. package/hooks/utils/useRunOnce.js +18 -0
  123. package/index.js +1 -1
  124. package/internals/index.d.ts +12 -9
  125. package/internals/index.js +9 -7
  126. package/legacy/DataGrid/DataGrid.js +6 -6
  127. package/legacy/DataGrid/useDataGridComponent.js +2 -1
  128. package/legacy/DataGrid/useDataGridProps.js +1 -0
  129. package/legacy/components/GridColumnHeaders.js +3 -11
  130. package/legacy/components/GridDetailPanels.js +4 -0
  131. package/legacy/components/GridHeaders.js +53 -0
  132. package/legacy/components/GridPinnedRows.js +4 -0
  133. package/legacy/components/GridRow.js +258 -98
  134. package/legacy/components/GridScrollbarFillerCell.js +36 -0
  135. package/legacy/components/base/GridBody.js +2 -114
  136. package/legacy/components/base/GridOverlays.js +10 -25
  137. package/legacy/components/cell/GridCell.js +69 -377
  138. package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  139. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  140. package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  141. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  142. package/legacy/components/containers/GridRoot.js +18 -15
  143. package/legacy/components/containers/GridRootStyles.js +215 -137
  144. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  145. package/legacy/components/panel/GridPanel.js +3 -4
  146. package/legacy/components/panel/filterPanel/GridFilterForm.js +30 -13
  147. package/legacy/components/panel/filterPanel/GridFilterPanel.js +49 -20
  148. package/legacy/components/toolbar/GridToolbarColumnsButton.js +40 -21
  149. package/legacy/components/toolbar/GridToolbarDensitySelector.js +40 -21
  150. package/legacy/components/toolbar/GridToolbarExport.js +6 -1
  151. package/legacy/components/toolbar/GridToolbarExportContainer.js +40 -21
  152. package/legacy/components/toolbar/GridToolbarFilterButton.js +6 -10
  153. package/legacy/components/virtualization/GridBottomContainer.js +25 -0
  154. package/legacy/components/virtualization/GridMainContainer.js +20 -0
  155. package/legacy/components/virtualization/GridTopContainer.js +35 -0
  156. package/legacy/components/virtualization/GridVirtualScrollbar.js +129 -0
  157. package/legacy/components/virtualization/GridVirtualScroller.js +67 -16
  158. package/legacy/components/virtualization/GridVirtualScrollerFiller.js +70 -0
  159. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  160. package/legacy/constants/defaultGridSlotsComponents.js +6 -2
  161. package/legacy/constants/gridClasses.js +1 -1
  162. package/legacy/hooks/core/gridCoreSelector.js +7 -0
  163. package/legacy/hooks/core/useGridInitialization.js +4 -0
  164. package/legacy/hooks/core/useGridRefs.js +13 -0
  165. package/legacy/hooks/core/useGridTheme.js +21 -0
  166. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +7 -14
  167. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +69 -181
  168. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  169. package/legacy/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  170. package/legacy/hooks/features/columns/gridColumnsSelector.js +62 -0
  171. package/legacy/hooks/features/columns/gridColumnsUtils.js +10 -16
  172. package/legacy/hooks/features/columns/index.js +2 -1
  173. package/legacy/hooks/features/columns/useGridColumnSpanning.js +60 -59
  174. package/legacy/hooks/features/columns/useGridColumns.js +22 -23
  175. package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +3 -0
  176. package/legacy/hooks/features/dimensions/index.js +1 -0
  177. package/legacy/hooks/features/dimensions/useGridDimensions.js +226 -151
  178. package/legacy/hooks/features/export/serializers/csvSerializer.js +2 -2
  179. package/legacy/hooks/features/filter/useGridFilter.js +3 -3
  180. package/legacy/hooks/features/focus/gridFocusStateSelector.js +2 -6
  181. package/legacy/hooks/features/focus/useGridFocus.js +3 -3
  182. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  183. package/legacy/hooks/features/pagination/useGridPagination.js +3 -5
  184. package/legacy/hooks/features/rows/gridRowsSelector.js +5 -5
  185. package/legacy/hooks/features/rows/gridRowsUtils.js +4 -4
  186. package/legacy/hooks/features/rows/useGridRowsMeta.js +7 -4
  187. package/legacy/hooks/features/scroll/useGridScroll.js +8 -10
  188. package/legacy/hooks/features/sorting/gridSortingUtils.js +1 -1
  189. package/legacy/hooks/features/sorting/useGridSorting.js +15 -10
  190. package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +29 -1
  191. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +490 -483
  192. package/legacy/hooks/features/virtualization/useGridVirtualization.js +8 -1
  193. package/legacy/hooks/utils/index.js +4 -1
  194. package/legacy/hooks/utils/useGridAriaAttributes.js +1 -2
  195. package/legacy/hooks/utils/useGridNativeEventListener.js +4 -9
  196. package/legacy/hooks/utils/useResizeObserver.js +36 -0
  197. package/legacy/hooks/utils/useRunOnce.js +18 -0
  198. package/legacy/index.js +1 -1
  199. package/legacy/internals/index.js +9 -7
  200. package/legacy/locales/hrHR.js +161 -0
  201. package/legacy/locales/index.js +4 -1
  202. package/legacy/locales/ptPT.js +161 -0
  203. package/legacy/locales/zhHK.js +161 -0
  204. package/legacy/models/index.js +0 -1
  205. package/legacy/models/params/index.js +1 -2
  206. package/legacy/utils/utils.js +10 -1
  207. package/locales/hrHR.d.ts +1 -0
  208. package/locales/hrHR.js +149 -0
  209. package/locales/index.d.ts +3 -0
  210. package/locales/index.js +4 -1
  211. package/locales/ptPT.d.ts +1 -0
  212. package/locales/ptPT.js +149 -0
  213. package/locales/zhHK.d.ts +1 -0
  214. package/locales/zhHK.js +149 -0
  215. package/models/api/gridColumnGroupingApi.d.ts +2 -2
  216. package/models/api/gridCoreApi.d.ts +16 -16
  217. package/models/api/gridRowsMetaApi.d.ts +1 -1
  218. package/models/api/gridVirtualizationApi.d.ts +2 -3
  219. package/models/events/gridEventLookup.d.ts +3 -3
  220. package/models/gridFilterModel.d.ts +1 -1
  221. package/models/gridSlotsComponent.d.ts +16 -2
  222. package/models/gridStateCommunity.d.ts +5 -1
  223. package/models/index.d.ts +0 -1
  224. package/models/index.js +0 -1
  225. package/models/params/index.d.ts +0 -1
  226. package/models/params/index.js +1 -2
  227. package/models/props/DataGridProps.d.ts +6 -11
  228. package/modern/DataGrid/DataGrid.js +6 -6
  229. package/modern/DataGrid/useDataGridComponent.js +2 -1
  230. package/modern/DataGrid/useDataGridProps.js +1 -0
  231. package/modern/components/GridColumnHeaders.js +3 -11
  232. package/modern/components/GridDetailPanels.js +4 -0
  233. package/modern/components/GridHeaders.js +53 -0
  234. package/modern/components/GridPinnedRows.js +4 -0
  235. package/modern/components/GridRow.js +258 -96
  236. package/modern/components/GridScrollbarFillerCell.js +39 -0
  237. package/modern/components/base/GridBody.js +2 -116
  238. package/modern/components/base/GridOverlays.js +10 -16
  239. package/modern/components/cell/GridCell.js +65 -369
  240. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  241. package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  242. package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  243. package/modern/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  244. package/modern/components/containers/GridRoot.js +18 -14
  245. package/modern/components/containers/GridRootStyles.js +307 -204
  246. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  247. package/modern/components/panel/GridPanel.js +3 -4
  248. package/modern/components/panel/filterPanel/GridFilterForm.js +30 -13
  249. package/modern/components/panel/filterPanel/GridFilterPanel.js +46 -20
  250. package/modern/components/toolbar/GridToolbarColumnsButton.js +38 -21
  251. package/modern/components/toolbar/GridToolbarDensitySelector.js +38 -21
  252. package/modern/components/toolbar/GridToolbarExport.js +6 -1
  253. package/modern/components/toolbar/GridToolbarExportContainer.js +39 -22
  254. package/modern/components/toolbar/GridToolbarFilterButton.js +6 -10
  255. package/modern/components/virtualization/GridBottomContainer.js +25 -0
  256. package/modern/components/virtualization/GridMainContainer.js +20 -0
  257. package/modern/components/virtualization/GridTopContainer.js +35 -0
  258. package/modern/components/virtualization/GridVirtualScrollbar.js +131 -0
  259. package/modern/components/virtualization/GridVirtualScroller.js +69 -16
  260. package/modern/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  261. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  262. package/modern/constants/defaultGridSlotsComponents.js +6 -2
  263. package/modern/constants/gridClasses.js +1 -1
  264. package/modern/hooks/core/gridCoreSelector.js +5 -0
  265. package/modern/hooks/core/useGridInitialization.js +4 -0
  266. package/modern/hooks/core/useGridRefs.js +13 -0
  267. package/modern/hooks/core/useGridTheme.js +19 -0
  268. package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +5 -12
  269. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +67 -160
  270. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  271. package/modern/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  272. package/modern/hooks/features/columns/gridColumnsSelector.js +51 -0
  273. package/modern/hooks/features/columns/gridColumnsUtils.js +10 -12
  274. package/modern/hooks/features/columns/index.js +2 -1
  275. package/modern/hooks/features/columns/useGridColumnSpanning.js +62 -61
  276. package/modern/hooks/features/columns/useGridColumns.js +19 -21
  277. package/modern/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  278. package/modern/hooks/features/dimensions/index.js +1 -0
  279. package/modern/hooks/features/dimensions/useGridDimensions.js +214 -146
  280. package/modern/hooks/features/export/serializers/csvSerializer.js +2 -2
  281. package/modern/hooks/features/filter/useGridFilter.js +3 -3
  282. package/modern/hooks/features/focus/gridFocusStateSelector.js +2 -6
  283. package/modern/hooks/features/focus/useGridFocus.js +3 -3
  284. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  285. package/modern/hooks/features/pagination/useGridPagination.js +3 -5
  286. package/modern/hooks/features/rows/gridRowsSelector.js +2 -2
  287. package/modern/hooks/features/rows/gridRowsUtils.js +4 -4
  288. package/modern/hooks/features/rows/useGridRowsMeta.js +7 -4
  289. package/modern/hooks/features/scroll/useGridScroll.js +8 -9
  290. package/modern/hooks/features/sorting/gridSortingUtils.js +1 -1
  291. package/modern/hooks/features/sorting/useGridSorting.js +15 -10
  292. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  293. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +435 -432
  294. package/modern/hooks/features/virtualization/useGridVirtualization.js +8 -1
  295. package/modern/hooks/utils/index.js +4 -1
  296. package/modern/hooks/utils/useGridAriaAttributes.js +1 -1
  297. package/modern/hooks/utils/useGridNativeEventListener.js +3 -9
  298. package/modern/hooks/utils/useResizeObserver.js +36 -0
  299. package/modern/hooks/utils/useRunOnce.js +18 -0
  300. package/modern/index.js +1 -1
  301. package/modern/internals/index.js +9 -7
  302. package/modern/locales/hrHR.js +149 -0
  303. package/modern/locales/index.js +4 -1
  304. package/modern/locales/ptPT.js +149 -0
  305. package/modern/locales/zhHK.js +149 -0
  306. package/modern/models/index.js +0 -1
  307. package/modern/models/params/index.js +1 -2
  308. package/modern/utils/utils.js +10 -1
  309. package/node/DataGrid/DataGrid.js +6 -6
  310. package/node/DataGrid/useDataGridComponent.js +1 -0
  311. package/node/DataGrid/useDataGridProps.js +1 -0
  312. package/node/components/GridColumnHeaders.js +3 -11
  313. package/node/components/GridDetailPanels.js +10 -0
  314. package/node/components/GridHeaders.js +60 -0
  315. package/node/components/GridPinnedRows.js +10 -0
  316. package/node/components/GridRow.js +256 -94
  317. package/node/components/GridScrollbarFillerCell.js +47 -0
  318. package/node/components/base/GridBody.js +7 -118
  319. package/node/components/base/GridOverlays.js +9 -15
  320. package/node/components/cell/GridCell.js +66 -369
  321. package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  322. package/node/components/columnHeaders/GridColumnHeaderItem.js +8 -4
  323. package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  324. package/node/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  325. package/node/components/containers/GridRoot.js +17 -14
  326. package/node/components/containers/GridRootStyles.js +175 -72
  327. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  328. package/node/components/panel/GridPanel.js +3 -4
  329. package/node/components/panel/filterPanel/GridFilterForm.js +29 -12
  330. package/node/components/panel/filterPanel/GridFilterPanel.js +45 -19
  331. package/node/components/toolbar/GridToolbarColumnsButton.js +36 -20
  332. package/node/components/toolbar/GridToolbarDensitySelector.js +36 -20
  333. package/node/components/toolbar/GridToolbarExport.js +6 -1
  334. package/node/components/toolbar/GridToolbarExportContainer.js +37 -21
  335. package/node/components/toolbar/GridToolbarFilterButton.js +6 -10
  336. package/node/components/virtualization/GridBottomContainer.js +34 -0
  337. package/node/components/{containers → virtualization}/GridMainContainer.js +7 -29
  338. package/node/components/virtualization/GridTopContainer.js +44 -0
  339. package/node/components/virtualization/GridVirtualScrollbar.js +138 -0
  340. package/node/components/virtualization/GridVirtualScroller.js +69 -17
  341. package/node/components/virtualization/GridVirtualScrollerFiller.js +77 -0
  342. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  343. package/node/constants/defaultGridSlotsComponents.js +5 -1
  344. package/node/constants/gridClasses.js +1 -1
  345. package/node/hooks/core/gridCoreSelector.js +12 -0
  346. package/node/hooks/core/useGridInitialization.js +4 -0
  347. package/node/hooks/core/useGridRefs.js +22 -0
  348. package/node/hooks/core/useGridTheme.js +29 -0
  349. package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +5 -12
  350. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +65 -159
  351. package/node/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  352. package/node/hooks/features/columns/gridColumnsInterfaces.js +11 -1
  353. package/node/hooks/features/columns/gridColumnsSelector.js +52 -1
  354. package/node/hooks/features/columns/gridColumnsUtils.js +10 -13
  355. package/node/hooks/features/columns/index.js +22 -61
  356. package/node/hooks/features/columns/useGridColumnSpanning.js +62 -61
  357. package/node/hooks/features/columns/useGridColumns.js +20 -22
  358. package/node/hooks/features/dimensions/gridDimensionsSelectors.js +8 -0
  359. package/node/hooks/features/dimensions/index.js +11 -0
  360. package/node/hooks/features/dimensions/useGridDimensions.js +215 -144
  361. package/node/hooks/features/export/serializers/csvSerializer.js +2 -2
  362. package/node/hooks/features/filter/useGridFilter.js +2 -2
  363. package/node/hooks/features/focus/gridFocusStateSelector.js +3 -7
  364. package/node/hooks/features/focus/useGridFocus.js +2 -2
  365. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -15
  366. package/node/hooks/features/pagination/useGridPagination.js +3 -5
  367. package/node/hooks/features/rows/gridRowsSelector.js +2 -2
  368. package/node/hooks/features/rows/gridRowsUtils.js +4 -4
  369. package/node/hooks/features/rows/useGridRowsMeta.js +5 -3
  370. package/node/hooks/features/scroll/useGridScroll.js +8 -9
  371. package/node/hooks/features/sorting/gridSortingUtils.js +1 -1
  372. package/node/hooks/features/sorting/useGridSorting.js +15 -10
  373. package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  374. package/node/hooks/features/virtualization/useGridVirtualScroller.js +434 -431
  375. package/node/hooks/features/virtualization/useGridVirtualization.js +9 -1
  376. package/node/hooks/utils/index.js +36 -0
  377. package/node/hooks/utils/useGridAriaAttributes.js +1 -1
  378. package/node/hooks/utils/useGridNativeEventListener.js +3 -9
  379. package/node/hooks/utils/useResizeObserver.js +44 -0
  380. package/node/hooks/utils/useRunOnce.js +27 -0
  381. package/node/index.js +1 -1
  382. package/node/internals/index.js +86 -71
  383. package/node/locales/hrHR.js +155 -0
  384. package/node/locales/index.js +33 -0
  385. package/node/locales/ptPT.js +155 -0
  386. package/node/locales/zhHK.js +155 -0
  387. package/node/models/index.js +0 -11
  388. package/node/models/params/index.js +0 -11
  389. package/node/utils/utils.js +11 -1
  390. package/package.json +6 -6
  391. package/utils/utils.d.ts +6 -0
  392. package/utils/utils.js +10 -1
  393. package/components/DataGridVirtualScroller.d.ts +0 -3
  394. package/components/DataGridVirtualScroller.js +0 -35
  395. package/components/containers/GridMainContainer.js +0 -43
  396. package/legacy/components/DataGridVirtualScroller.js +0 -32
  397. package/legacy/components/containers/GridMainContainer.js +0 -45
  398. package/legacy/models/gridRootContainerRef.js +0 -1
  399. package/legacy/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  400. package/models/gridRootContainerRef.d.ts +0 -5
  401. package/models/gridRootContainerRef.js +0 -1
  402. package/models/params/gridRenderedRowsIntervalChangeParams.d.ts +0 -10
  403. package/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  404. package/modern/components/DataGridVirtualScroller.js +0 -35
  405. package/modern/components/containers/GridMainContainer.js +0 -42
  406. package/modern/models/gridRootContainerRef.js +0 -1
  407. package/modern/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  408. package/node/components/DataGridVirtualScroller.js +0 -42
  409. package/node/models/gridRootContainerRef.js +0 -5
  410. package/node/models/params/gridRenderedRowsIntervalChangeParams.js +0 -5
@@ -7,44 +7,22 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.GridMainContainer = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var React = _interopRequireWildcard(require("react"));
10
- var _utils = require("@mui/utils");
11
10
  var _system = require("@mui/system");
12
- var _gridClasses = require("../../constants/gridClasses");
13
- var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
14
11
  var _useGridAriaAttributes = require("../../hooks/utils/useGridAriaAttributes");
15
12
  var _jsxRuntime = require("react/jsx-runtime");
16
13
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
14
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
- const useUtilityClasses = ownerState => {
19
- const {
20
- classes
21
- } = ownerState;
22
- const slots = {
23
- root: ['main']
24
- };
25
- return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
26
- };
27
- const GridMainContainerRoot = (0, _system.styled)('div', {
28
- name: 'MuiDataGrid',
29
- slot: 'Main',
30
- overridesResolver: (props, styles) => styles.main
31
- })(() => ({
32
- position: 'relative',
15
+ const Element = (0, _system.styled)('div')({
33
16
  flexGrow: 1,
34
- display: 'flex',
35
- flexDirection: 'column',
17
+ position: 'relative',
36
18
  overflow: 'hidden'
37
- }));
19
+ });
38
20
  const GridMainContainer = exports.GridMainContainer = /*#__PURE__*/React.forwardRef((props, ref) => {
39
- const rootProps = (0, _useGridRootProps.useGridRootProps)();
40
- const classes = useUtilityClasses(rootProps);
41
- const getAriaAttributes = rootProps.experimentalFeatures?.ariaV7 // ariaV7 should never change
42
- ? _useGridAriaAttributes.useGridAriaAttributes : null;
43
- const ariaAttributes = typeof getAriaAttributes === 'function' ? getAriaAttributes() : null;
44
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridMainContainerRoot, (0, _extends2.default)({
21
+ const ariaAttributes = (0, _useGridAriaAttributes.useGridAriaAttributes)();
22
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Element, (0, _extends2.default)({
45
23
  ref: ref,
46
- className: classes.root,
47
- ownerState: rootProps
24
+ className: props.className,
25
+ tabIndex: -1
48
26
  }, ariaAttributes, {
49
27
  children: props.children
50
28
  }));
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.GridTopContainer = GridTopContainer;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _clsx = _interopRequireDefault(require("clsx"));
11
+ var _system = require("@mui/system");
12
+ var _utils = require("@mui/utils");
13
+ var _gridClasses = require("../../constants/gridClasses");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ const useUtilityClasses = () => {
18
+ const slots = {
19
+ root: ['topContainer']
20
+ };
21
+ return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, {});
22
+ };
23
+ const Element = (0, _system.styled)('div')({
24
+ position: 'sticky',
25
+ zIndex: 2,
26
+ top: 0,
27
+ '&::after': {
28
+ content: '" "',
29
+ position: 'absolute',
30
+ zIndex: 5,
31
+ bottom: 0,
32
+ left: 0,
33
+ height: 1,
34
+ width: 'var(--DataGrid-rowWidth)',
35
+ backgroundColor: 'var(--DataGrid-rowBorderColor)'
36
+ }
37
+ });
38
+ function GridTopContainer(props) {
39
+ const classes = useUtilityClasses();
40
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Element, (0, _extends2.default)({}, props, {
41
+ className: (0, _clsx.default)(classes.root, props.className, _gridClasses.gridClasses['container--top']),
42
+ role: "presentation"
43
+ }));
44
+ }
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.GridVirtualScrollbar = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _system = require("@mui/system");
9
+ var _utils = require("@mui/utils");
10
+ var _useOnMount = require("../../hooks/utils/useOnMount");
11
+ var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiContext");
12
+ var _hooks = require("../../hooks");
13
+ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
14
+ var _gridClasses = require("../../constants/gridClasses");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
+ const useUtilityClasses = (ownerState, position) => {
19
+ const {
20
+ classes
21
+ } = ownerState;
22
+ const slots = {
23
+ root: ['scrollbar', `scrollbar--${position}`],
24
+ content: ['scrollbarContent']
25
+ };
26
+ return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
27
+ };
28
+ const Scrollbar = (0, _system.styled)('div')({
29
+ position: 'absolute',
30
+ display: 'inline-block',
31
+ zIndex: 6,
32
+ '& > div': {
33
+ display: 'inline-block'
34
+ },
35
+ // In macOS Safari and Gnome Web, scrollbars are overlaid and don't affect the layout. So we consider
36
+ // their size to be 0px throughout all the calculations, but the floating scrollbar container does need
37
+ // to appear and have a real size. We set it to 14px because it seems like an acceptable value and we
38
+ // don't have a method to find the required size for scrollbars on those platforms.
39
+ '--size': 'calc(max(var(--DataGrid-scrollbarSize), 14px))'
40
+ });
41
+ const ScrollbarVertical = (0, _system.styled)(Scrollbar)({
42
+ width: 'var(--size)',
43
+ height: 'calc(var(--DataGrid-hasScrollY) * (100% - var(--DataGrid-topContainerHeight) - var(--DataGrid-bottomContainerHeight) - var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize)))',
44
+ overflowY: 'auto',
45
+ overflowX: 'hidden',
46
+ '& > div': {
47
+ width: 'var(--size)'
48
+ },
49
+ top: 'var(--DataGrid-topContainerHeight)',
50
+ right: '0px'
51
+ });
52
+ const ScrollbarHorizontal = (0, _system.styled)(Scrollbar)({
53
+ width: '100%',
54
+ height: 'var(--size)',
55
+ overflowY: 'hidden',
56
+ overflowX: 'auto',
57
+ '& > div': {
58
+ height: 'var(--size)'
59
+ },
60
+ bottom: '0px'
61
+ });
62
+ const Content = (0, _system.styled)('div')({
63
+ display: 'inline-block'
64
+ });
65
+ const GridVirtualScrollbar = exports.GridVirtualScrollbar = /*#__PURE__*/React.forwardRef(function GridVirtualScrollbar(props, ref) {
66
+ const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
67
+ const rootProps = (0, _useGridRootProps.useGridRootProps)();
68
+ const isLocked = React.useRef(false);
69
+ const lastPosition = React.useRef(0);
70
+ const scrollbarRef = React.useRef(null);
71
+ const contentRef = React.useRef(null);
72
+ const classes = useUtilityClasses(rootProps, props.position);
73
+ const dimensions = (0, _hooks.useGridSelector)(apiRef, _hooks.gridDimensionsSelector);
74
+ const propertyDimension = props.position === 'vertical' ? 'height' : 'width';
75
+ const propertyScroll = props.position === 'vertical' ? 'scrollTop' : 'scrollLeft';
76
+ const hasScroll = props.position === 'vertical' ? dimensions.hasScrollX : dimensions.hasScrollY;
77
+ const contentSize = dimensions.minimumSize[propertyDimension] + (hasScroll ? dimensions.scrollbarSize : 0);
78
+ const scrollbarSize = props.position === 'vertical' ? dimensions.viewportInnerSize.height : dimensions.viewportOuterSize.width;
79
+ const scrollbarInnerSize = scrollbarSize * (contentSize / dimensions.viewportOuterSize[propertyDimension]);
80
+ const onScrollerScroll = (0, _utils.unstable_useEventCallback)(() => {
81
+ const scroller = apiRef.current.virtualScrollerRef.current;
82
+ const scrollbar = scrollbarRef.current;
83
+ if (scroller[propertyScroll] === lastPosition.current) {
84
+ return;
85
+ }
86
+ if (isLocked.current) {
87
+ isLocked.current = false;
88
+ return;
89
+ }
90
+ isLocked.current = true;
91
+ const value = scroller[propertyScroll] / contentSize;
92
+ scrollbar[propertyScroll] = value * scrollbarInnerSize;
93
+ lastPosition.current = scroller[propertyScroll];
94
+ });
95
+ const onScrollbarScroll = (0, _utils.unstable_useEventCallback)(() => {
96
+ const scroller = apiRef.current.virtualScrollerRef.current;
97
+ const scrollbar = scrollbarRef.current;
98
+ if (isLocked.current) {
99
+ isLocked.current = false;
100
+ return;
101
+ }
102
+ isLocked.current = true;
103
+ const value = scrollbar[propertyScroll] / scrollbarInnerSize;
104
+ scroller[propertyScroll] = value * contentSize;
105
+ });
106
+ (0, _useOnMount.useOnMount)(() => {
107
+ const scroller = apiRef.current.virtualScrollerRef.current;
108
+ const scrollbar = scrollbarRef.current;
109
+ scroller.addEventListener('scroll', onScrollerScroll, {
110
+ capture: true
111
+ });
112
+ scrollbar.addEventListener('scroll', onScrollbarScroll, {
113
+ capture: true
114
+ });
115
+ return () => {
116
+ scroller.removeEventListener('scroll', onScrollerScroll, {
117
+ capture: true
118
+ });
119
+ scrollbar.removeEventListener('scroll', onScrollbarScroll, {
120
+ capture: true
121
+ });
122
+ };
123
+ });
124
+ React.useEffect(() => {
125
+ const content = contentRef.current;
126
+ content.style.setProperty(propertyDimension, `${scrollbarInnerSize}px`);
127
+ }, [scrollbarInnerSize, propertyDimension]);
128
+ const Container = props.position === 'vertical' ? ScrollbarVertical : ScrollbarHorizontal;
129
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Container, {
130
+ ref: (0, _utils.unstable_useForkRef)(ref, scrollbarRef),
131
+ className: classes.root,
132
+ tabIndex: -1,
133
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Content, {
134
+ ref: contentRef,
135
+ className: classes.content
136
+ })
137
+ });
138
+ });
@@ -4,47 +4,99 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.GridVirtualScroller = void 0;
7
+ exports.GridVirtualScroller = GridVirtualScroller;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var React = _interopRequireWildcard(require("react"));
10
- var _clsx = _interopRequireDefault(require("clsx"));
11
10
  var _system = require("@mui/system");
12
11
  var _utils = require("@mui/utils");
13
12
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
13
+ var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
14
+ var _useGridSelector = require("../../hooks/utils/useGridSelector");
14
15
  var _gridClasses = require("../../constants/gridClasses");
16
+ var _dimensions = require("../../hooks/features/dimensions");
17
+ var _useGridVirtualScroller = require("../../hooks/features/virtualization/useGridVirtualScroller");
18
+ var _GridOverlays = require("../base/GridOverlays");
19
+ var _GridHeaders = require("../GridHeaders");
20
+ var _GridMainContainer = require("./GridMainContainer");
21
+ var _GridTopContainer = require("./GridTopContainer");
22
+ var _GridBottomContainer = require("./GridBottomContainer");
23
+ var _GridVirtualScrollerContent = require("./GridVirtualScrollerContent");
24
+ var _GridVirtualScrollerFiller = require("./GridVirtualScrollerFiller");
25
+ var _GridVirtualScrollerRenderZone = require("./GridVirtualScrollerRenderZone");
26
+ var _GridVirtualScrollbar = require("./GridVirtualScrollbar");
15
27
  var _jsxRuntime = require("react/jsx-runtime");
16
28
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
29
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
- const useUtilityClasses = ownerState => {
30
+ const useUtilityClasses = (ownerState, dimensions) => {
19
31
  const {
20
32
  classes
21
33
  } = ownerState;
22
34
  const slots = {
23
- root: ['virtualScroller']
35
+ root: ['main', dimensions.rightPinnedWidth > 0 && 'main--hasPinnedRight'],
36
+ scroller: ['virtualScroller']
24
37
  };
25
38
  return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
26
39
  };
27
- const VirtualScrollerRoot = (0, _system.styled)('div', {
40
+ const Scroller = (0, _system.styled)('div', {
28
41
  name: 'MuiDataGrid',
29
42
  slot: 'VirtualScroller',
30
43
  overridesResolver: (props, styles) => styles.virtualScroller
31
44
  })({
32
- overflow: 'auto',
33
- height: '100%',
34
- // See https://github.com/mui/mui-x/issues/4360
35
45
  position: 'relative',
46
+ height: '100%',
47
+ overflow: 'scroll',
48
+ scrollbarWidth: 'none' /* Firefox */,
49
+ '&::-webkit-scrollbar': {
50
+ display: 'none' /* Safari and Chrome */
51
+ },
36
52
  '@media print': {
37
53
  overflow: 'hidden'
38
54
  },
39
- zIndex: 0 // See https://github.com/mui/mui-x/issues/10547
55
+ // See https://github.com/mui/mui-x/issues/10547
56
+ zIndex: 0
40
57
  });
41
- const GridVirtualScroller = exports.GridVirtualScroller = /*#__PURE__*/React.forwardRef(function GridVirtualScroller(props, ref) {
58
+ function GridVirtualScroller(props) {
59
+ const apiRef = (0, _useGridApiContext.useGridApiContext)();
42
60
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
43
- const classes = useUtilityClasses(rootProps);
44
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(VirtualScrollerRoot, (0, _extends2.default)({
45
- ref: ref
46
- }, props, {
47
- className: (0, _clsx.default)(classes.root, props.className),
48
- ownerState: rootProps
61
+ const dimensions = (0, _useGridSelector.useGridSelector)(apiRef, _dimensions.gridDimensionsSelector);
62
+ const classes = useUtilityClasses(rootProps, dimensions);
63
+ const virtualScroller = (0, _useGridVirtualScroller.useGridVirtualScroller)();
64
+ const {
65
+ getContainerProps,
66
+ getScrollerProps,
67
+ getContentProps,
68
+ getRenderZoneProps,
69
+ getScrollbarVerticalProps,
70
+ getScrollbarHorizontalProps
71
+ } = virtualScroller;
72
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridMainContainer.GridMainContainer, (0, _extends2.default)({
73
+ className: classes.root
74
+ }, getContainerProps(), {
75
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(Scroller, (0, _extends2.default)({
76
+ className: classes.scroller
77
+ }, getScrollerProps(), {
78
+ ownerState: rootProps,
79
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridTopContainer.GridTopContainer, {
80
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridHeaders.GridHeaders, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.pinnedRows, {
81
+ position: "top",
82
+ virtualScroller: virtualScroller
83
+ })]
84
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridOverlays.GridOverlays, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerContent.GridVirtualScrollerContent, (0, _extends2.default)({}, getContentProps(), {
85
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridVirtualScrollerRenderZone.GridVirtualScrollerRenderZone, (0, _extends2.default)({}, getRenderZoneProps(), {
86
+ children: [virtualScroller.getRows(), /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.detailPanels, {
87
+ virtualScroller: virtualScroller
88
+ })]
89
+ }))
90
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerFiller.GridVirtualScrollerFiller, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridBottomContainer.GridBottomContainer, {
91
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.pinnedRows, {
92
+ position: "bottom",
93
+ virtualScroller: virtualScroller
94
+ })
95
+ })]
96
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
97
+ position: "vertical"
98
+ }, getScrollbarVerticalProps())), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
99
+ position: "horizontal"
100
+ }, getScrollbarHorizontalProps())), props.children]
49
101
  }));
50
- });
102
+ }
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.GridVirtualScrollerFiller = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _system = require("@mui/system");
9
+ var _fastMemo = require("../../utils/fastMemo");
10
+ var _useGridSelector = require("../../hooks/utils/useGridSelector");
11
+ var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
12
+ var _dimensions = require("../../hooks/features/dimensions");
13
+ var _constants = require("../../constants");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ const Filler = (0, _system.styled)('div')({
18
+ display: 'flex',
19
+ flexDirection: 'row',
20
+ width: 'var(--DataGrid-rowWidth)',
21
+ boxSizing: 'border-box'
22
+ });
23
+ const Pinned = (0, _system.styled)('div')({
24
+ position: 'sticky',
25
+ height: '100%',
26
+ boxSizing: 'border-box',
27
+ borderTop: '1px solid var(--DataGrid-rowBorderColor)',
28
+ backgroundColor: 'var(--DataGrid-pinnedBackground)'
29
+ });
30
+ const PinnedLeft = (0, _system.styled)(Pinned)({
31
+ left: 0,
32
+ borderRight: '1px solid var(--DataGrid-rowBorderColor)'
33
+ });
34
+ const PinnedRight = (0, _system.styled)(Pinned)({
35
+ right: 0,
36
+ borderLeft: '1px solid var(--DataGrid-rowBorderColor)'
37
+ });
38
+ const Main = (0, _system.styled)('div')({
39
+ flexGrow: 1,
40
+ borderTop: '1px solid var(--DataGrid-rowBorderColor)'
41
+ });
42
+ function GridVirtualScrollerFiller() {
43
+ const apiRef = (0, _useGridApiContext.useGridApiContext)();
44
+ const {
45
+ viewportOuterSize,
46
+ minimumSize,
47
+ hasScrollX,
48
+ scrollbarSize,
49
+ leftPinnedWidth,
50
+ rightPinnedWidth
51
+ } = (0, _useGridSelector.useGridSelector)(apiRef, _dimensions.gridDimensionsSelector);
52
+ const scrollbarHeight = hasScrollX ? scrollbarSize : 0;
53
+ const expandedHeight = viewportOuterSize.height - minimumSize.height - scrollbarHeight;
54
+ const height = Math.max(scrollbarHeight, expandedHeight);
55
+ if (height === 0) {
56
+ return null;
57
+ }
58
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Filler, {
59
+ className: _constants.gridClasses.filler,
60
+ role: "presentation",
61
+ style: {
62
+ height
63
+ },
64
+ children: [leftPinnedWidth > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(PinnedLeft, {
65
+ className: _constants.gridClasses['filler--pinnedLeft'],
66
+ style: {
67
+ width: leftPinnedWidth
68
+ }
69
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Main, {}), rightPinnedWidth > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(PinnedRight, {
70
+ className: _constants.gridClasses['filler--pinnedRight'],
71
+ style: {
72
+ width: rightPinnedWidth
73
+ }
74
+ })]
75
+ });
76
+ }
77
+ const Memoized = exports.GridVirtualScrollerFiller = (0, _fastMemo.fastMemo)(GridVirtualScrollerFiller);
@@ -34,7 +34,8 @@ const VirtualScrollerRenderZoneRoot = (0, _system.styled)('div', {
34
34
  position: 'absolute',
35
35
  display: 'flex',
36
36
  // Prevents margin collapsing when using `getRowSpacing`
37
- flexDirection: 'column'
37
+ flexDirection: 'column',
38
+ transform: 'translate3d(0, var(--DataGrid-offsetTop), 0)'
38
39
  });
39
40
  const GridVirtualScrollerRenderZone = exports.GridVirtualScrollerRenderZone = /*#__PURE__*/React.forwardRef(function GridVirtualScrollerRenderZone(props, ref) {
40
41
  const {
@@ -10,19 +10,23 @@ var _components = require("../components");
10
10
  var _GridCell = require("../components/cell/GridCell");
11
11
  var _GridColumnHeaders = require("../components/GridColumnHeaders");
12
12
  var _GridColumnMenu = require("../components/menu/columnMenu/GridColumnMenu");
13
+ var _GridDetailPanels = require("../components/GridDetailPanels");
14
+ var _GridPinnedRows = require("../components/GridPinnedRows");
13
15
  var _GridNoResultsOverlay = require("../components/GridNoResultsOverlay");
14
16
  var _material = _interopRequireDefault(require("../material"));
15
17
  // TODO: camelCase these key. It's a private helper now.
16
18
  // Remove then need to call `uncapitalizeObjectKeys`.
17
19
  const DATA_GRID_DEFAULT_SLOTS_COMPONENTS = exports.DATA_GRID_DEFAULT_SLOTS_COMPONENTS = (0, _extends2.default)({}, _material.default, {
18
- cell: _GridCell.GridCellV7,
20
+ cell: _GridCell.GridCell,
19
21
  skeletonCell: _components.GridSkeletonCell,
20
22
  columnHeaderFilterIconButton: _components.GridColumnHeaderFilterIconButton,
21
23
  columnMenu: _GridColumnMenu.GridColumnMenu,
22
24
  columnHeaders: _GridColumnHeaders.GridColumnHeaders,
25
+ detailPanels: _GridDetailPanels.GridDetailPanels,
23
26
  footer: _components.GridFooter,
24
27
  footerRowCount: _components.GridRowCount,
25
28
  toolbar: null,
29
+ pinnedRows: _GridPinnedRows.GridPinnedRows,
26
30
  loadingOverlay: _components.GridLoadingOverlay,
27
31
  noResultsOverlay: _GridNoResultsOverlay.GridNoResultsOverlay,
28
32
  noRowsOverlay: _components.GridNoRowsOverlay,
@@ -9,4 +9,4 @@ var _utils = require("@mui/utils");
9
9
  function getDataGridUtilityClass(slot) {
10
10
  return (0, _utils.unstable_generateUtilityClass)('MuiDataGrid', slot);
11
11
  }
12
- const gridClasses = exports.gridClasses = (0, _utils.unstable_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']);
12
+ const gridClasses = exports.gridClasses = (0, _utils.unstable_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,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.gridThemeSelector = void 0;
7
+ /**
8
+ * Get the theme state
9
+ * @category Core
10
+ */
11
+ const gridThemeSelector = state => state.theme;
12
+ exports.gridThemeSelector = gridThemeSelector;
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useGridInitialization = void 0;
7
+ var _useGridRefs = require("./useGridRefs");
8
+ var _useGridTheme = require("./useGridTheme");
7
9
  var _useGridLoggerFactory = require("./useGridLoggerFactory");
8
10
  var _useGridApiInitialization = require("./useGridApiInitialization");
9
11
  var _useGridLocaleText = require("./useGridLocaleText");
@@ -15,6 +17,8 @@ var _useGridStateInitialization = require("./useGridStateInitialization");
15
17
  */
16
18
  const useGridInitialization = (inputApiRef, props) => {
17
19
  const privateApiRef = (0, _useGridApiInitialization.useGridApiInitialization)(inputApiRef, props);
20
+ (0, _useGridRefs.useGridRefs)(privateApiRef);
21
+ (0, _useGridTheme.useGridTheme)(privateApiRef);
18
22
  (0, _useGridLoggerFactory.useGridLoggerFactory)(privateApiRef, props);
19
23
  (0, _useGridStateInitialization.useGridStateInitialization)(privateApiRef, props);
20
24
  (0, _pipeProcessing.useGridPipeProcessing)(privateApiRef);
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useGridRefs = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
9
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
+ const useGridRefs = apiRef => {
11
+ const rootElementRef = React.useRef(null);
12
+ const mainElementRef = React.useRef(null);
13
+ const virtualScrollerRef = React.useRef(null);
14
+ apiRef.current.register('public', {
15
+ rootElementRef
16
+ });
17
+ apiRef.current.register('private', {
18
+ mainElementRef,
19
+ virtualScrollerRef
20
+ });
21
+ };
22
+ exports.useGridRefs = useGridRefs;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useGridTheme = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _styles = require("@mui/material/styles");
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ const useGridTheme = apiRef => {
14
+ const theme = (0, _styles.useTheme)();
15
+ if (!apiRef.current.state.theme) {
16
+ apiRef.current.state.theme = theme;
17
+ }
18
+ const isFirstEffect = React.useRef(true);
19
+ React.useEffect(() => {
20
+ if (isFirstEffect.current) {
21
+ isFirstEffect.current = false;
22
+ } else {
23
+ apiRef.current.setState(state => (0, _extends2.default)({}, state, {
24
+ theme
25
+ }));
26
+ }
27
+ }, [apiRef, theme]);
28
+ };
29
+ exports.useGridTheme = useGridTheme;
@@ -50,16 +50,14 @@ const createGroupLookup = columnGroupingModel => {
50
50
  return (0, _extends2.default)({}, groupLookup);
51
51
  };
52
52
  const columnGroupsStateInitializer = (state, props, apiRef) => {
53
- if (!props.experimentalFeatures?.columnGrouping) {
53
+ if (!props.columnGroupingModel) {
54
54
  return state;
55
55
  }
56
56
  const columnFields = (0, _columns.gridColumnFieldsSelector)(apiRef);
57
57
  const visibleColumnFields = (0, _columns.gridVisibleColumnFieldsSelector)(apiRef);
58
58
  const groupLookup = createGroupLookup(props.columnGroupingModel ?? []);
59
59
  const unwrappedGroupingModel = (0, _gridColumnGroupsUtils.unwrapGroupingColumnModel)(props.columnGroupingModel ?? []);
60
- const columnGroupsHeaderStructure = (0, _gridColumnGroupsUtils.getColumnGroupsHeaderStructure)(columnFields, unwrappedGroupingModel,
61
- // @ts-expect-error Move this part to `Pro` package
62
- apiRef.current.state.pinnedColumns ?? {});
60
+ const columnGroupsHeaderStructure = (0, _gridColumnGroupsUtils.getColumnGroupsHeaderStructure)(columnFields, unwrappedGroupingModel, apiRef.current.state.pinnedColumns ?? {});
63
61
  const maxDepth = visibleColumnFields.length === 0 ? 0 : Math.max(...visibleColumnFields.map(field => unwrappedGroupingModel[field]?.length ?? 0));
64
62
  return (0, _extends2.default)({}, state, {
65
63
  columnGrouping: {
@@ -89,16 +87,14 @@ const useGridColumnGrouping = (apiRef, props) => {
89
87
  return columnGroupLookup;
90
88
  }, [apiRef]);
91
89
  const columnGroupingApi = {
92
- unstable_getColumnGroupPath: getColumnGroupPath,
93
- unstable_getAllGroupDetails: getAllGroupDetails
90
+ getColumnGroupPath,
91
+ getAllGroupDetails
94
92
  };
95
93
  (0, _useGridApiMethod.useGridApiMethod)(apiRef, columnGroupingApi, 'public');
96
94
  const handleColumnIndexChange = React.useCallback(() => {
97
95
  const unwrappedGroupingModel = (0, _gridColumnGroupsUtils.unwrapGroupingColumnModel)(props.columnGroupingModel ?? []);
98
96
  apiRef.current.setState(state => {
99
97
  const orderedFields = state.columns?.orderedFields ?? [];
100
-
101
- // @ts-expect-error Move this logic to `Pro` package
102
98
  const pinnedColumns = state.pinnedColumns ?? {};
103
99
  const columnGroupsHeaderStructure = (0, _gridColumnGroupsUtils.getColumnGroupsHeaderStructure)(orderedFields, unwrappedGroupingModel, pinnedColumns);
104
100
  return (0, _extends2.default)({}, state, {
@@ -109,9 +105,6 @@ const useGridColumnGrouping = (apiRef, props) => {
109
105
  });
110
106
  }, [apiRef, props.columnGroupingModel]);
111
107
  const updateColumnGroupingState = React.useCallback(columnGroupingModel => {
112
- if (!props.experimentalFeatures?.columnGrouping) {
113
- return;
114
- }
115
108
  // @ts-expect-error Move this logic to `Pro` package
116
109
  const pinnedColumns = apiRef.current.getPinnedColumns?.() ?? {};
117
110
  const columnFields = (0, _columns.gridColumnFieldsSelector)(apiRef);
@@ -130,7 +123,7 @@ const useGridColumnGrouping = (apiRef, props) => {
130
123
  }
131
124
  });
132
125
  });
133
- }, [apiRef, props.experimentalFeatures?.columnGrouping]);
126
+ }, [apiRef]);
134
127
  (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnIndexChange', handleColumnIndexChange);
135
128
  (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnsChange', () => {
136
129
  updateColumnGroupingState(props.columnGroupingModel);