@mui/x-data-grid 7.0.0-alpha.8 → 7.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/CHANGELOG.md +508 -30
  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 +3 -3
  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 +161 -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/columnsManagement/GridColumnsManagement.d.ts +36 -0
  31. package/components/columnsManagement/GridColumnsManagement.js +260 -0
  32. package/components/columnsManagement/index.d.ts +1 -0
  33. package/components/columnsManagement/index.js +1 -0
  34. package/components/columnsManagement/utils.d.ts +4 -0
  35. package/components/columnsManagement/utils.js +16 -0
  36. package/components/containers/GridRoot.js +18 -15
  37. package/components/containers/GridRootStyles.js +307 -204
  38. package/components/index.d.ts +1 -0
  39. package/components/index.js +1 -0
  40. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  41. package/components/panel/GridColumnsPanel.d.ts +0 -28
  42. package/components/panel/GridColumnsPanel.js +5 -213
  43. package/components/panel/GridPanel.js +3 -4
  44. package/components/panel/filterPanel/GridFilterForm.d.ts +6 -4
  45. package/components/panel/filterPanel/GridFilterForm.js +31 -14
  46. package/components/panel/filterPanel/GridFilterPanel.js +46 -20
  47. package/components/toolbar/GridToolbarColumnsButton.d.ts +13 -1
  48. package/components/toolbar/GridToolbarColumnsButton.js +40 -22
  49. package/components/toolbar/GridToolbarDensitySelector.d.ts +13 -1
  50. package/components/toolbar/GridToolbarDensitySelector.js +40 -22
  51. package/components/toolbar/GridToolbarExport.d.ts +10 -1
  52. package/components/toolbar/GridToolbarExport.js +6 -1
  53. package/components/toolbar/GridToolbarExportContainer.d.ts +15 -1
  54. package/components/toolbar/GridToolbarExportContainer.js +41 -23
  55. package/components/toolbar/GridToolbarFilterButton.d.ts +5 -4
  56. package/components/toolbar/GridToolbarFilterButton.js +6 -10
  57. package/components/virtualization/GridBottomContainer.d.ts +2 -0
  58. package/components/virtualization/GridBottomContainer.js +25 -0
  59. package/components/{containers → virtualization}/GridMainContainer.d.ts +2 -0
  60. package/components/virtualization/GridMainContainer.js +20 -0
  61. package/components/virtualization/GridTopContainer.d.ts +2 -0
  62. package/components/virtualization/GridTopContainer.js +35 -0
  63. package/components/virtualization/GridVirtualScrollbar.d.ts +7 -0
  64. package/components/virtualization/GridVirtualScrollbar.js +131 -0
  65. package/components/virtualization/GridVirtualScroller.d.ts +4 -4
  66. package/components/virtualization/GridVirtualScroller.js +69 -16
  67. package/components/virtualization/GridVirtualScrollerFiller.d.ts +4 -0
  68. package/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  69. package/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  70. package/constants/defaultGridSlotsComponents.js +8 -3
  71. package/constants/gridClasses.d.ts +72 -12
  72. package/constants/gridClasses.js +1 -1
  73. package/constants/localeTextConstants.js +4 -6
  74. package/hooks/core/gridCoreSelector.d.ts +6 -0
  75. package/hooks/core/gridCoreSelector.js +5 -0
  76. package/hooks/core/useGridApiInitialization.js +4 -0
  77. package/hooks/core/useGridInitialization.js +4 -0
  78. package/hooks/core/useGridRefs.d.ts +3 -0
  79. package/hooks/core/useGridRefs.js +13 -0
  80. package/hooks/core/useGridTheme.d.ts +3 -0
  81. package/hooks/core/useGridTheme.js +19 -0
  82. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -1
  83. package/hooks/features/columnGrouping/useGridColumnGrouping.js +7 -14
  84. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +13 -18
  85. package/hooks/features/columnHeaders/useGridColumnHeaders.js +68 -162
  86. package/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  87. package/hooks/features/columns/gridColumnsInterfaces.d.ts +17 -0
  88. package/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  89. package/hooks/features/columns/gridColumnsSelector.d.ts +14 -1
  90. package/hooks/features/columns/gridColumnsSelector.js +52 -0
  91. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -5
  92. package/hooks/features/columns/gridColumnsUtils.js +10 -12
  93. package/hooks/features/columns/index.d.ts +2 -2
  94. package/hooks/features/columns/index.js +2 -1
  95. package/hooks/features/columns/useGridColumnSpanning.js +62 -61
  96. package/hooks/features/columns/useGridColumns.js +20 -23
  97. package/hooks/features/dimensions/gridDimensionsApi.d.ts +60 -11
  98. package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +2 -0
  99. package/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  100. package/hooks/features/dimensions/index.d.ts +2 -0
  101. package/hooks/features/dimensions/index.js +1 -0
  102. package/hooks/features/dimensions/useGridDimensions.d.ts +7 -1
  103. package/hooks/features/dimensions/useGridDimensions.js +216 -148
  104. package/hooks/features/export/serializers/csvSerializer.js +2 -2
  105. package/hooks/features/filter/useGridFilter.js +3 -3
  106. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -2
  107. package/hooks/features/focus/gridFocusStateSelector.js +2 -6
  108. package/hooks/features/focus/useGridFocus.js +3 -3
  109. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  110. package/hooks/features/pagination/useGridPagination.js +3 -5
  111. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -0
  112. package/hooks/features/rows/gridRowsSelector.d.ts +2 -2
  113. package/hooks/features/rows/gridRowsSelector.js +5 -5
  114. package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
  115. package/hooks/features/rows/gridRowsUtils.js +8 -5
  116. package/hooks/features/rows/useGridRowsMeta.js +7 -4
  117. package/hooks/features/scroll/useGridScroll.js +8 -10
  118. package/hooks/features/sorting/gridSortingUtils.js +1 -1
  119. package/hooks/features/sorting/useGridSorting.d.ts +1 -1
  120. package/hooks/features/sorting/useGridSorting.js +15 -10
  121. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +14 -0
  122. package/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  123. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +27 -42
  124. package/hooks/features/virtualization/useGridVirtualScroller.js +441 -438
  125. package/hooks/features/virtualization/useGridVirtualization.d.ts +8 -0
  126. package/hooks/features/virtualization/useGridVirtualization.js +8 -1
  127. package/hooks/utils/index.d.ts +3 -0
  128. package/hooks/utils/index.js +4 -1
  129. package/hooks/utils/useGridAriaAttributes.js +1 -2
  130. package/hooks/utils/useGridNativeEventListener.js +4 -9
  131. package/hooks/utils/useResizeObserver.d.ts +2 -0
  132. package/hooks/utils/useResizeObserver.js +36 -0
  133. package/hooks/utils/useRunOnce.d.ts +5 -0
  134. package/hooks/utils/useRunOnce.js +18 -0
  135. package/index.js +1 -1
  136. package/internals/index.d.ts +12 -9
  137. package/internals/index.js +9 -7
  138. package/legacy/DataGrid/DataGrid.js +6 -6
  139. package/legacy/DataGrid/useDataGridComponent.js +2 -1
  140. package/legacy/DataGrid/useDataGridProps.js +1 -0
  141. package/legacy/components/GridColumnHeaders.js +3 -11
  142. package/legacy/components/GridDetailPanels.js +4 -0
  143. package/legacy/components/GridHeaders.js +53 -0
  144. package/legacy/components/GridPinnedRows.js +4 -0
  145. package/legacy/components/GridRow.js +159 -98
  146. package/legacy/components/GridScrollbarFillerCell.js +36 -0
  147. package/legacy/components/base/GridBody.js +2 -114
  148. package/legacy/components/base/GridOverlays.js +10 -25
  149. package/legacy/components/cell/GridCell.js +69 -377
  150. package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  151. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  152. package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  153. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  154. package/legacy/components/columnsManagement/GridColumnsManagement.js +300 -0
  155. package/legacy/components/columnsManagement/index.js +1 -0
  156. package/legacy/components/columnsManagement/utils.js +22 -0
  157. package/legacy/components/containers/GridRoot.js +18 -15
  158. package/legacy/components/containers/GridRootStyles.js +215 -137
  159. package/legacy/components/index.js +1 -0
  160. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  161. package/legacy/components/panel/GridColumnsPanel.js +5 -233
  162. package/legacy/components/panel/GridPanel.js +3 -4
  163. package/legacy/components/panel/filterPanel/GridFilterForm.js +30 -13
  164. package/legacy/components/panel/filterPanel/GridFilterPanel.js +49 -20
  165. package/legacy/components/toolbar/GridToolbarColumnsButton.js +40 -21
  166. package/legacy/components/toolbar/GridToolbarDensitySelector.js +40 -21
  167. package/legacy/components/toolbar/GridToolbarExport.js +6 -1
  168. package/legacy/components/toolbar/GridToolbarExportContainer.js +40 -21
  169. package/legacy/components/toolbar/GridToolbarFilterButton.js +6 -10
  170. package/legacy/components/virtualization/GridBottomContainer.js +25 -0
  171. package/legacy/components/virtualization/GridMainContainer.js +20 -0
  172. package/legacy/components/virtualization/GridTopContainer.js +35 -0
  173. package/legacy/components/virtualization/GridVirtualScrollbar.js +129 -0
  174. package/legacy/components/virtualization/GridVirtualScroller.js +67 -16
  175. package/legacy/components/virtualization/GridVirtualScrollerFiller.js +70 -0
  176. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  177. package/legacy/constants/defaultGridSlotsComponents.js +8 -3
  178. package/legacy/constants/gridClasses.js +1 -1
  179. package/legacy/constants/localeTextConstants.js +4 -6
  180. package/legacy/hooks/core/gridCoreSelector.js +7 -0
  181. package/legacy/hooks/core/useGridApiInitialization.js +4 -0
  182. package/legacy/hooks/core/useGridInitialization.js +4 -0
  183. package/legacy/hooks/core/useGridRefs.js +13 -0
  184. package/legacy/hooks/core/useGridTheme.js +21 -0
  185. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +7 -14
  186. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +69 -181
  187. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  188. package/legacy/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  189. package/legacy/hooks/features/columns/gridColumnsSelector.js +62 -0
  190. package/legacy/hooks/features/columns/gridColumnsUtils.js +10 -16
  191. package/legacy/hooks/features/columns/index.js +2 -1
  192. package/legacy/hooks/features/columns/useGridColumnSpanning.js +60 -59
  193. package/legacy/hooks/features/columns/useGridColumns.js +22 -23
  194. package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +3 -0
  195. package/legacy/hooks/features/dimensions/index.js +1 -0
  196. package/legacy/hooks/features/dimensions/useGridDimensions.js +226 -151
  197. package/legacy/hooks/features/export/serializers/csvSerializer.js +2 -2
  198. package/legacy/hooks/features/filter/useGridFilter.js +3 -3
  199. package/legacy/hooks/features/focus/gridFocusStateSelector.js +2 -6
  200. package/legacy/hooks/features/focus/useGridFocus.js +3 -3
  201. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  202. package/legacy/hooks/features/pagination/useGridPagination.js +3 -5
  203. package/legacy/hooks/features/rows/gridRowsSelector.js +5 -5
  204. package/legacy/hooks/features/rows/gridRowsUtils.js +8 -5
  205. package/legacy/hooks/features/rows/useGridRowsMeta.js +7 -4
  206. package/legacy/hooks/features/scroll/useGridScroll.js +8 -10
  207. package/legacy/hooks/features/sorting/gridSortingUtils.js +1 -1
  208. package/legacy/hooks/features/sorting/useGridSorting.js +15 -10
  209. package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +29 -1
  210. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +490 -483
  211. package/legacy/hooks/features/virtualization/useGridVirtualization.js +8 -1
  212. package/legacy/hooks/utils/index.js +4 -1
  213. package/legacy/hooks/utils/useGridAriaAttributes.js +1 -2
  214. package/legacy/hooks/utils/useGridNativeEventListener.js +4 -9
  215. package/legacy/hooks/utils/useResizeObserver.js +36 -0
  216. package/legacy/hooks/utils/useRunOnce.js +18 -0
  217. package/legacy/index.js +1 -1
  218. package/legacy/internals/index.js +9 -7
  219. package/legacy/locales/arSD.js +5 -6
  220. package/legacy/locales/beBY.js +5 -6
  221. package/legacy/locales/bgBG.js +5 -6
  222. package/legacy/locales/csCZ.js +5 -6
  223. package/legacy/locales/daDK.js +5 -6
  224. package/legacy/locales/deDE.js +5 -6
  225. package/legacy/locales/elGR.js +5 -6
  226. package/legacy/locales/esES.js +5 -6
  227. package/legacy/locales/faIR.js +5 -6
  228. package/legacy/locales/fiFI.js +5 -6
  229. package/legacy/locales/frFR.js +5 -6
  230. package/legacy/locales/heIL.js +5 -6
  231. package/legacy/locales/hrHR.js +160 -0
  232. package/legacy/locales/huHU.js +5 -6
  233. package/legacy/locales/index.js +4 -1
  234. package/legacy/locales/itIT.js +5 -6
  235. package/legacy/locales/jaJP.js +5 -6
  236. package/legacy/locales/koKR.js +5 -6
  237. package/legacy/locales/nbNO.js +5 -6
  238. package/legacy/locales/nlNL.js +5 -6
  239. package/legacy/locales/plPL.js +5 -6
  240. package/legacy/locales/ptBR.js +5 -6
  241. package/legacy/locales/ptPT.js +160 -0
  242. package/legacy/locales/roRO.js +5 -6
  243. package/legacy/locales/ruRU.js +5 -6
  244. package/legacy/locales/skSK.js +5 -6
  245. package/legacy/locales/svSE.js +5 -6
  246. package/legacy/locales/trTR.js +5 -6
  247. package/legacy/locales/ukUA.js +5 -6
  248. package/legacy/locales/urPK.js +5 -6
  249. package/legacy/locales/viVN.js +5 -6
  250. package/legacy/locales/zhCN.js +5 -6
  251. package/legacy/locales/zhHK.js +160 -0
  252. package/legacy/locales/zhTW.js +5 -6
  253. package/legacy/models/index.js +0 -1
  254. package/legacy/models/params/index.js +1 -2
  255. package/legacy/utils/utils.js +10 -1
  256. package/locales/arSD.js +5 -6
  257. package/locales/beBY.js +5 -6
  258. package/locales/bgBG.js +5 -6
  259. package/locales/csCZ.js +5 -6
  260. package/locales/daDK.js +5 -6
  261. package/locales/deDE.js +5 -6
  262. package/locales/elGR.js +5 -6
  263. package/locales/esES.js +5 -6
  264. package/locales/faIR.js +5 -6
  265. package/locales/fiFI.js +5 -6
  266. package/locales/frFR.js +5 -6
  267. package/locales/heIL.js +5 -6
  268. package/locales/hrHR.d.ts +1 -0
  269. package/locales/hrHR.js +148 -0
  270. package/locales/huHU.js +5 -6
  271. package/locales/index.d.ts +3 -0
  272. package/locales/index.js +4 -1
  273. package/locales/itIT.js +5 -6
  274. package/locales/jaJP.js +5 -6
  275. package/locales/koKR.js +5 -6
  276. package/locales/nbNO.js +5 -6
  277. package/locales/nlNL.js +5 -6
  278. package/locales/plPL.js +5 -6
  279. package/locales/ptBR.js +5 -6
  280. package/locales/ptPT.d.ts +1 -0
  281. package/locales/ptPT.js +148 -0
  282. package/locales/roRO.js +5 -6
  283. package/locales/ruRU.js +5 -6
  284. package/locales/skSK.js +5 -6
  285. package/locales/svSE.js +5 -6
  286. package/locales/trTR.js +5 -6
  287. package/locales/ukUA.js +5 -6
  288. package/locales/urPK.js +5 -6
  289. package/locales/viVN.js +5 -6
  290. package/locales/zhCN.js +5 -6
  291. package/locales/zhHK.d.ts +1 -0
  292. package/locales/zhHK.js +148 -0
  293. package/locales/zhTW.js +5 -6
  294. package/models/api/gridColumnGroupingApi.d.ts +2 -2
  295. package/models/api/gridCoreApi.d.ts +16 -16
  296. package/models/api/gridLocaleTextApi.d.ts +3 -5
  297. package/models/api/gridRowsMetaApi.d.ts +1 -1
  298. package/models/api/gridVirtualizationApi.d.ts +2 -3
  299. package/models/colDef/gridColType.d.ts +11 -2
  300. package/models/events/gridEventLookup.d.ts +3 -3
  301. package/models/gridFilterModel.d.ts +1 -1
  302. package/models/gridSlotsComponent.d.ts +21 -2
  303. package/models/gridSlotsComponentsProps.d.ts +4 -0
  304. package/models/gridStateCommunity.d.ts +5 -1
  305. package/models/index.d.ts +0 -1
  306. package/models/index.js +0 -1
  307. package/models/params/index.d.ts +0 -1
  308. package/models/params/index.js +1 -2
  309. package/models/props/DataGridProps.d.ts +6 -11
  310. package/modern/DataGrid/DataGrid.js +6 -6
  311. package/modern/DataGrid/useDataGridComponent.js +2 -1
  312. package/modern/DataGrid/useDataGridProps.js +1 -0
  313. package/modern/components/GridColumnHeaders.js +3 -11
  314. package/modern/components/GridDetailPanels.js +4 -0
  315. package/modern/components/GridHeaders.js +53 -0
  316. package/modern/components/GridPinnedRows.js +4 -0
  317. package/modern/components/GridRow.js +159 -96
  318. package/modern/components/GridScrollbarFillerCell.js +39 -0
  319. package/modern/components/base/GridBody.js +2 -116
  320. package/modern/components/base/GridOverlays.js +10 -16
  321. package/modern/components/cell/GridCell.js +65 -369
  322. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  323. package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  324. package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  325. package/modern/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  326. package/modern/components/columnsManagement/GridColumnsManagement.js +256 -0
  327. package/modern/components/columnsManagement/index.js +1 -0
  328. package/modern/components/columnsManagement/utils.js +16 -0
  329. package/modern/components/containers/GridRoot.js +18 -14
  330. package/modern/components/containers/GridRootStyles.js +307 -204
  331. package/modern/components/index.js +1 -0
  332. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  333. package/modern/components/panel/GridColumnsPanel.js +4 -209
  334. package/modern/components/panel/GridPanel.js +3 -4
  335. package/modern/components/panel/filterPanel/GridFilterForm.js +30 -13
  336. package/modern/components/panel/filterPanel/GridFilterPanel.js +46 -20
  337. package/modern/components/toolbar/GridToolbarColumnsButton.js +38 -21
  338. package/modern/components/toolbar/GridToolbarDensitySelector.js +38 -21
  339. package/modern/components/toolbar/GridToolbarExport.js +6 -1
  340. package/modern/components/toolbar/GridToolbarExportContainer.js +39 -22
  341. package/modern/components/toolbar/GridToolbarFilterButton.js +6 -10
  342. package/modern/components/virtualization/GridBottomContainer.js +25 -0
  343. package/modern/components/virtualization/GridMainContainer.js +20 -0
  344. package/modern/components/virtualization/GridTopContainer.js +35 -0
  345. package/modern/components/virtualization/GridVirtualScrollbar.js +131 -0
  346. package/modern/components/virtualization/GridVirtualScroller.js +69 -16
  347. package/modern/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  348. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  349. package/modern/constants/defaultGridSlotsComponents.js +8 -3
  350. package/modern/constants/gridClasses.js +1 -1
  351. package/modern/constants/localeTextConstants.js +4 -6
  352. package/modern/hooks/core/gridCoreSelector.js +5 -0
  353. package/modern/hooks/core/useGridApiInitialization.js +3 -0
  354. package/modern/hooks/core/useGridInitialization.js +4 -0
  355. package/modern/hooks/core/useGridRefs.js +13 -0
  356. package/modern/hooks/core/useGridTheme.js +19 -0
  357. package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +5 -12
  358. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +67 -160
  359. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  360. package/modern/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  361. package/modern/hooks/features/columns/gridColumnsSelector.js +51 -0
  362. package/modern/hooks/features/columns/gridColumnsUtils.js +10 -12
  363. package/modern/hooks/features/columns/index.js +2 -1
  364. package/modern/hooks/features/columns/useGridColumnSpanning.js +62 -61
  365. package/modern/hooks/features/columns/useGridColumns.js +19 -21
  366. package/modern/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  367. package/modern/hooks/features/dimensions/index.js +1 -0
  368. package/modern/hooks/features/dimensions/useGridDimensions.js +214 -146
  369. package/modern/hooks/features/export/serializers/csvSerializer.js +2 -2
  370. package/modern/hooks/features/filter/useGridFilter.js +3 -3
  371. package/modern/hooks/features/focus/gridFocusStateSelector.js +2 -6
  372. package/modern/hooks/features/focus/useGridFocus.js +3 -3
  373. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  374. package/modern/hooks/features/pagination/useGridPagination.js +3 -5
  375. package/modern/hooks/features/rows/gridRowsSelector.js +2 -2
  376. package/modern/hooks/features/rows/gridRowsUtils.js +8 -5
  377. package/modern/hooks/features/rows/useGridRowsMeta.js +7 -4
  378. package/modern/hooks/features/scroll/useGridScroll.js +8 -9
  379. package/modern/hooks/features/sorting/gridSortingUtils.js +1 -1
  380. package/modern/hooks/features/sorting/useGridSorting.js +15 -10
  381. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  382. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +435 -432
  383. package/modern/hooks/features/virtualization/useGridVirtualization.js +8 -1
  384. package/modern/hooks/utils/index.js +4 -1
  385. package/modern/hooks/utils/useGridAriaAttributes.js +1 -1
  386. package/modern/hooks/utils/useGridNativeEventListener.js +3 -9
  387. package/modern/hooks/utils/useResizeObserver.js +36 -0
  388. package/modern/hooks/utils/useRunOnce.js +18 -0
  389. package/modern/index.js +1 -1
  390. package/modern/internals/index.js +9 -7
  391. package/modern/locales/arSD.js +5 -6
  392. package/modern/locales/beBY.js +5 -6
  393. package/modern/locales/bgBG.js +5 -6
  394. package/modern/locales/csCZ.js +5 -6
  395. package/modern/locales/daDK.js +5 -6
  396. package/modern/locales/deDE.js +5 -6
  397. package/modern/locales/elGR.js +5 -6
  398. package/modern/locales/esES.js +5 -6
  399. package/modern/locales/faIR.js +5 -6
  400. package/modern/locales/fiFI.js +5 -6
  401. package/modern/locales/frFR.js +5 -6
  402. package/modern/locales/heIL.js +5 -6
  403. package/modern/locales/hrHR.js +148 -0
  404. package/modern/locales/huHU.js +5 -6
  405. package/modern/locales/index.js +4 -1
  406. package/modern/locales/itIT.js +5 -6
  407. package/modern/locales/jaJP.js +5 -6
  408. package/modern/locales/koKR.js +5 -6
  409. package/modern/locales/nbNO.js +5 -6
  410. package/modern/locales/nlNL.js +5 -6
  411. package/modern/locales/plPL.js +5 -6
  412. package/modern/locales/ptBR.js +5 -6
  413. package/modern/locales/ptPT.js +148 -0
  414. package/modern/locales/roRO.js +5 -6
  415. package/modern/locales/ruRU.js +5 -6
  416. package/modern/locales/skSK.js +5 -6
  417. package/modern/locales/svSE.js +5 -6
  418. package/modern/locales/trTR.js +5 -6
  419. package/modern/locales/ukUA.js +5 -6
  420. package/modern/locales/urPK.js +5 -6
  421. package/modern/locales/viVN.js +5 -6
  422. package/modern/locales/zhCN.js +5 -6
  423. package/modern/locales/zhHK.js +148 -0
  424. package/modern/locales/zhTW.js +5 -6
  425. package/modern/models/index.js +0 -1
  426. package/modern/models/params/index.js +1 -2
  427. package/modern/utils/utils.js +10 -1
  428. package/node/DataGrid/DataGrid.js +6 -6
  429. package/node/DataGrid/useDataGridComponent.js +1 -0
  430. package/node/DataGrid/useDataGridProps.js +1 -0
  431. package/node/components/GridColumnHeaders.js +3 -11
  432. package/node/components/GridDetailPanels.js +10 -0
  433. package/node/components/GridHeaders.js +60 -0
  434. package/node/components/GridPinnedRows.js +10 -0
  435. package/node/components/GridRow.js +157 -94
  436. package/node/components/GridScrollbarFillerCell.js +47 -0
  437. package/node/components/base/GridBody.js +7 -118
  438. package/node/components/base/GridOverlays.js +9 -15
  439. package/node/components/cell/GridCell.js +66 -369
  440. package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  441. package/node/components/columnHeaders/GridColumnHeaderItem.js +8 -4
  442. package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  443. package/node/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  444. package/node/components/columnsManagement/GridColumnsManagement.js +264 -0
  445. package/node/components/columnsManagement/index.js +16 -0
  446. package/node/components/columnsManagement/utils.js +24 -0
  447. package/node/components/containers/GridRoot.js +17 -14
  448. package/node/components/containers/GridRootStyles.js +175 -72
  449. package/node/components/index.js +11 -0
  450. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  451. package/node/components/panel/GridColumnsPanel.js +4 -208
  452. package/node/components/panel/GridPanel.js +3 -4
  453. package/node/components/panel/filterPanel/GridFilterForm.js +29 -12
  454. package/node/components/panel/filterPanel/GridFilterPanel.js +45 -19
  455. package/node/components/toolbar/GridToolbarColumnsButton.js +36 -20
  456. package/node/components/toolbar/GridToolbarDensitySelector.js +36 -20
  457. package/node/components/toolbar/GridToolbarExport.js +6 -1
  458. package/node/components/toolbar/GridToolbarExportContainer.js +37 -21
  459. package/node/components/toolbar/GridToolbarFilterButton.js +6 -10
  460. package/node/components/virtualization/GridBottomContainer.js +34 -0
  461. package/node/components/{containers → virtualization}/GridMainContainer.js +7 -29
  462. package/node/components/virtualization/GridTopContainer.js +44 -0
  463. package/node/components/virtualization/GridVirtualScrollbar.js +138 -0
  464. package/node/components/virtualization/GridVirtualScroller.js +69 -17
  465. package/node/components/virtualization/GridVirtualScrollerFiller.js +77 -0
  466. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  467. package/node/constants/defaultGridSlotsComponents.js +6 -1
  468. package/node/constants/gridClasses.js +1 -1
  469. package/node/constants/localeTextConstants.js +4 -6
  470. package/node/hooks/core/gridCoreSelector.js +12 -0
  471. package/node/hooks/core/useGridApiInitialization.js +3 -0
  472. package/node/hooks/core/useGridInitialization.js +4 -0
  473. package/node/hooks/core/useGridRefs.js +22 -0
  474. package/node/hooks/core/useGridTheme.js +29 -0
  475. package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +5 -12
  476. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +65 -159
  477. package/node/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  478. package/node/hooks/features/columns/gridColumnsInterfaces.js +11 -1
  479. package/node/hooks/features/columns/gridColumnsSelector.js +52 -1
  480. package/node/hooks/features/columns/gridColumnsUtils.js +10 -13
  481. package/node/hooks/features/columns/index.js +22 -61
  482. package/node/hooks/features/columns/useGridColumnSpanning.js +62 -61
  483. package/node/hooks/features/columns/useGridColumns.js +20 -22
  484. package/node/hooks/features/dimensions/gridDimensionsSelectors.js +8 -0
  485. package/node/hooks/features/dimensions/index.js +11 -0
  486. package/node/hooks/features/dimensions/useGridDimensions.js +215 -144
  487. package/node/hooks/features/export/serializers/csvSerializer.js +2 -2
  488. package/node/hooks/features/filter/useGridFilter.js +2 -2
  489. package/node/hooks/features/focus/gridFocusStateSelector.js +3 -7
  490. package/node/hooks/features/focus/useGridFocus.js +2 -2
  491. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -15
  492. package/node/hooks/features/pagination/useGridPagination.js +3 -5
  493. package/node/hooks/features/rows/gridRowsSelector.js +2 -2
  494. package/node/hooks/features/rows/gridRowsUtils.js +8 -5
  495. package/node/hooks/features/rows/useGridRowsMeta.js +5 -3
  496. package/node/hooks/features/scroll/useGridScroll.js +8 -9
  497. package/node/hooks/features/sorting/gridSortingUtils.js +1 -1
  498. package/node/hooks/features/sorting/useGridSorting.js +15 -10
  499. package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  500. package/node/hooks/features/virtualization/useGridVirtualScroller.js +434 -431
  501. package/node/hooks/features/virtualization/useGridVirtualization.js +9 -1
  502. package/node/hooks/utils/index.js +36 -0
  503. package/node/hooks/utils/useGridAriaAttributes.js +1 -1
  504. package/node/hooks/utils/useGridNativeEventListener.js +3 -9
  505. package/node/hooks/utils/useResizeObserver.js +44 -0
  506. package/node/hooks/utils/useRunOnce.js +27 -0
  507. package/node/index.js +1 -1
  508. package/node/internals/index.js +86 -71
  509. package/node/locales/arSD.js +5 -6
  510. package/node/locales/beBY.js +5 -6
  511. package/node/locales/bgBG.js +5 -6
  512. package/node/locales/csCZ.js +5 -6
  513. package/node/locales/daDK.js +5 -6
  514. package/node/locales/deDE.js +5 -6
  515. package/node/locales/elGR.js +5 -6
  516. package/node/locales/esES.js +5 -6
  517. package/node/locales/faIR.js +5 -6
  518. package/node/locales/fiFI.js +5 -6
  519. package/node/locales/frFR.js +5 -6
  520. package/node/locales/heIL.js +5 -6
  521. package/node/locales/hrHR.js +154 -0
  522. package/node/locales/huHU.js +5 -6
  523. package/node/locales/index.js +33 -0
  524. package/node/locales/itIT.js +5 -6
  525. package/node/locales/jaJP.js +5 -6
  526. package/node/locales/koKR.js +5 -6
  527. package/node/locales/nbNO.js +5 -6
  528. package/node/locales/nlNL.js +5 -6
  529. package/node/locales/plPL.js +5 -6
  530. package/node/locales/ptBR.js +5 -6
  531. package/node/locales/ptPT.js +154 -0
  532. package/node/locales/roRO.js +5 -6
  533. package/node/locales/ruRU.js +5 -6
  534. package/node/locales/skSK.js +5 -6
  535. package/node/locales/svSE.js +5 -6
  536. package/node/locales/trTR.js +5 -6
  537. package/node/locales/ukUA.js +5 -6
  538. package/node/locales/urPK.js +5 -6
  539. package/node/locales/viVN.js +5 -6
  540. package/node/locales/zhCN.js +5 -6
  541. package/node/locales/zhHK.js +154 -0
  542. package/node/locales/zhTW.js +5 -6
  543. package/node/models/index.js +0 -11
  544. package/node/models/params/index.js +0 -11
  545. package/node/utils/utils.js +11 -1
  546. package/package.json +6 -6
  547. package/utils/utils.d.ts +6 -0
  548. package/utils/utils.js +10 -1
  549. package/components/DataGridVirtualScroller.d.ts +0 -3
  550. package/components/DataGridVirtualScroller.js +0 -35
  551. package/components/containers/GridMainContainer.js +0 -43
  552. package/legacy/components/DataGridVirtualScroller.js +0 -32
  553. package/legacy/components/containers/GridMainContainer.js +0 -45
  554. package/legacy/models/gridRootContainerRef.js +0 -1
  555. package/legacy/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  556. package/models/gridRootContainerRef.d.ts +0 -5
  557. package/models/gridRootContainerRef.js +0 -1
  558. package/models/params/gridRenderedRowsIntervalChangeParams.d.ts +0 -10
  559. package/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  560. package/modern/components/DataGridVirtualScroller.js +0 -35
  561. package/modern/components/containers/GridMainContainer.js +0 -42
  562. package/modern/models/gridRootContainerRef.js +0 -1
  563. package/modern/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  564. package/node/components/DataGridVirtualScroller.js +0 -42
  565. package/node/models/gridRootContainerRef.js +0 -5
  566. package/node/models/params/gridRenderedRowsIntervalChangeParams.js +0 -5
@@ -0,0 +1,131 @@
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
+ const useUtilityClasses = (ownerState, position) => {
11
+ const {
12
+ classes
13
+ } = ownerState;
14
+ const slots = {
15
+ root: ['scrollbar', `scrollbar--${position}`],
16
+ content: ['scrollbarContent']
17
+ };
18
+ return composeClasses(slots, getDataGridUtilityClass, classes);
19
+ };
20
+ const Scrollbar = styled('div')({
21
+ position: 'absolute',
22
+ display: 'inline-block',
23
+ zIndex: 6,
24
+ '& > div': {
25
+ display: 'inline-block'
26
+ },
27
+ // In macOS Safari and Gnome Web, scrollbars are overlaid and don't affect the layout. So we consider
28
+ // their size to be 0px throughout all the calculations, but the floating scrollbar container does need
29
+ // to appear and have a real size. We set it to 14px because it seems like an acceptable value and we
30
+ // don't have a method to find the required size for scrollbars on those platforms.
31
+ '--size': 'calc(max(var(--DataGrid-scrollbarSize), 14px))'
32
+ });
33
+ const ScrollbarVertical = styled(Scrollbar)({
34
+ width: 'var(--size)',
35
+ height: 'calc(var(--DataGrid-hasScrollY) * (100% - var(--DataGrid-topContainerHeight) - var(--DataGrid-bottomContainerHeight) - var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize)))',
36
+ overflowY: 'auto',
37
+ overflowX: 'hidden',
38
+ '& > div': {
39
+ width: 'var(--size)'
40
+ },
41
+ top: 'var(--DataGrid-topContainerHeight)',
42
+ right: '0px'
43
+ });
44
+ const ScrollbarHorizontal = styled(Scrollbar)({
45
+ width: '100%',
46
+ height: 'var(--size)',
47
+ overflowY: 'hidden',
48
+ overflowX: 'auto',
49
+ '& > div': {
50
+ height: 'var(--size)'
51
+ },
52
+ bottom: '0px'
53
+ });
54
+ const Content = styled('div')({
55
+ display: 'inline-block'
56
+ });
57
+ const GridVirtualScrollbar = /*#__PURE__*/React.forwardRef(function GridVirtualScrollbar(props, ref) {
58
+ const apiRef = useGridPrivateApiContext();
59
+ const rootProps = useGridRootProps();
60
+ const isLocked = React.useRef(false);
61
+ const lastPosition = React.useRef(0);
62
+ const scrollbarRef = React.useRef(null);
63
+ const contentRef = React.useRef(null);
64
+ const classes = useUtilityClasses(rootProps, props.position);
65
+ const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
66
+ const propertyDimension = props.position === 'vertical' ? 'height' : 'width';
67
+ const propertyScroll = props.position === 'vertical' ? 'scrollTop' : 'scrollLeft';
68
+ const hasScroll = props.position === 'vertical' ? dimensions.hasScrollX : dimensions.hasScrollY;
69
+ const contentSize = dimensions.minimumSize[propertyDimension] + (hasScroll ? dimensions.scrollbarSize : 0);
70
+ const scrollbarSize = props.position === 'vertical' ? dimensions.viewportInnerSize.height : dimensions.viewportOuterSize.width;
71
+ const scrollbarInnerSize = scrollbarSize * (contentSize / dimensions.viewportOuterSize[propertyDimension]);
72
+ const onScrollerScroll = useEventCallback(() => {
73
+ const scroller = apiRef.current.virtualScrollerRef.current;
74
+ const scrollbar = scrollbarRef.current;
75
+ if (scroller[propertyScroll] === lastPosition.current) {
76
+ return;
77
+ }
78
+ if (isLocked.current) {
79
+ isLocked.current = false;
80
+ return;
81
+ }
82
+ isLocked.current = true;
83
+ const value = scroller[propertyScroll] / contentSize;
84
+ scrollbar[propertyScroll] = value * scrollbarInnerSize;
85
+ lastPosition.current = scroller[propertyScroll];
86
+ });
87
+ const onScrollbarScroll = useEventCallback(() => {
88
+ const scroller = apiRef.current.virtualScrollerRef.current;
89
+ const scrollbar = scrollbarRef.current;
90
+ if (isLocked.current) {
91
+ isLocked.current = false;
92
+ return;
93
+ }
94
+ isLocked.current = true;
95
+ const value = scrollbar[propertyScroll] / scrollbarInnerSize;
96
+ scroller[propertyScroll] = value * contentSize;
97
+ });
98
+ useOnMount(() => {
99
+ const scroller = apiRef.current.virtualScrollerRef.current;
100
+ const scrollbar = scrollbarRef.current;
101
+ scroller.addEventListener('scroll', onScrollerScroll, {
102
+ capture: true
103
+ });
104
+ scrollbar.addEventListener('scroll', onScrollbarScroll, {
105
+ capture: true
106
+ });
107
+ return () => {
108
+ scroller.removeEventListener('scroll', onScrollerScroll, {
109
+ capture: true
110
+ });
111
+ scrollbar.removeEventListener('scroll', onScrollbarScroll, {
112
+ capture: true
113
+ });
114
+ };
115
+ });
116
+ React.useEffect(() => {
117
+ const content = contentRef.current;
118
+ content.style.setProperty(propertyDimension, `${scrollbarInnerSize}px`);
119
+ }, [scrollbarInnerSize, propertyDimension]);
120
+ const Container = props.position === 'vertical' ? ScrollbarVertical : ScrollbarHorizontal;
121
+ return /*#__PURE__*/_jsx(Container, {
122
+ ref: useForkRef(ref, scrollbarRef),
123
+ className: classes.root,
124
+ tabIndex: -1,
125
+ children: /*#__PURE__*/_jsx(Content, {
126
+ ref: contentRef,
127
+ className: classes.content
128
+ })
129
+ });
130
+ });
131
+ export { GridVirtualScrollbar };
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { SxProps, Theme } from '@mui/system';
3
- declare const GridVirtualScroller: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
4
- sx?: SxProps<Theme> | undefined;
5
- } & React.RefAttributes<HTMLDivElement>>;
2
+ export interface GridVirtualScrollerProps {
3
+ children?: React.ReactNode;
4
+ }
5
+ declare function GridVirtualScroller(props: GridVirtualScrollerProps): React.JSX.Element;
6
6
  export { GridVirtualScroller };
@@ -1,42 +1,95 @@
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
- const useUtilityClasses = ownerState => {
21
+ import { jsxs as _jsxs } from "react/jsx-runtime";
22
+ const useUtilityClasses = (ownerState, dimensions) => {
10
23
  const {
11
24
  classes
12
25
  } = ownerState;
13
26
  const slots = {
14
- root: ['virtualScroller']
27
+ root: ['main', dimensions.rightPinnedWidth > 0 && 'main--hasPinnedRight'],
28
+ scroller: ['virtualScroller']
15
29
  };
16
30
  return composeClasses(slots, getDataGridUtilityClass, classes);
17
31
  };
18
- const VirtualScrollerRoot = styled('div', {
32
+ const Scroller = styled('div', {
19
33
  name: 'MuiDataGrid',
20
34
  slot: 'VirtualScroller',
21
35
  overridesResolver: (props, styles) => styles.virtualScroller
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
- const GridVirtualScroller = /*#__PURE__*/React.forwardRef(function GridVirtualScroller(props, ref) {
50
+ function GridVirtualScroller(props) {
51
+ const apiRef = useGridApiContext();
33
52
  const rootProps = useGridRootProps();
34
- const 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
+ const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
54
+ const classes = useUtilityClasses(rootProps, dimensions);
55
+ const virtualScroller = useGridVirtualScroller();
56
+ const {
57
+ getContainerProps,
58
+ getScrollerProps,
59
+ getContentProps,
60
+ getRenderZoneProps,
61
+ getScrollbarVerticalProps,
62
+ getScrollbarHorizontalProps
63
+ } = virtualScroller;
64
+ return /*#__PURE__*/_jsxs(Container, _extends({
65
+ className: classes.root
66
+ }, getContainerProps(), {
67
+ children: [/*#__PURE__*/_jsxs(Scroller, _extends({
68
+ className: classes.scroller
69
+ }, getScrollerProps(), {
70
+ ownerState: rootProps,
71
+ children: [/*#__PURE__*/_jsxs(TopContainer, {
72
+ children: [/*#__PURE__*/_jsx(GridHeaders, {}), /*#__PURE__*/_jsx(rootProps.slots.pinnedRows, {
73
+ position: "top",
74
+ virtualScroller: virtualScroller
75
+ })]
76
+ }), /*#__PURE__*/_jsx(GridOverlays, {}), /*#__PURE__*/_jsx(Content, _extends({}, getContentProps(), {
77
+ children: /*#__PURE__*/_jsxs(RenderZone, _extends({}, getRenderZoneProps(), {
78
+ children: [virtualScroller.getRows(), /*#__PURE__*/_jsx(rootProps.slots.detailPanels, {
79
+ virtualScroller: virtualScroller
80
+ })]
81
+ }))
82
+ })), /*#__PURE__*/_jsx(SpaceFiller, {}), /*#__PURE__*/_jsx(BottomContainer, {
83
+ children: /*#__PURE__*/_jsx(rootProps.slots.pinnedRows, {
84
+ position: "bottom",
85
+ virtualScroller: virtualScroller
86
+ })
87
+ })]
88
+ })), /*#__PURE__*/_jsx(Scrollbar, _extends({
89
+ position: "vertical"
90
+ }, getScrollbarVerticalProps())), /*#__PURE__*/_jsx(Scrollbar, _extends({
91
+ position: "horizontal"
92
+ }, getScrollbarHorizontalProps())), props.children]
40
93
  }));
41
- });
94
+ }
42
95
  export { GridVirtualScroller };
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ declare function GridVirtualScrollerFiller(): React.JSX.Element | null;
3
+ declare const Memoized: typeof GridVirtualScrollerFiller;
4
+ export { Memoized as GridVirtualScrollerFiller };
@@ -0,0 +1,71 @@
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
+ const Filler = styled('div')({
11
+ display: 'flex',
12
+ flexDirection: 'row',
13
+ width: 'var(--DataGrid-rowWidth)',
14
+ boxSizing: 'border-box'
15
+ });
16
+ const 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
+ const PinnedLeft = styled(Pinned)({
24
+ left: 0,
25
+ borderRight: '1px solid var(--DataGrid-rowBorderColor)'
26
+ });
27
+ const PinnedRight = styled(Pinned)({
28
+ right: 0,
29
+ borderLeft: '1px solid var(--DataGrid-rowBorderColor)'
30
+ });
31
+ const Main = styled('div')({
32
+ flexGrow: 1,
33
+ borderTop: '1px solid var(--DataGrid-rowBorderColor)'
34
+ });
35
+ function GridVirtualScrollerFiller() {
36
+ const apiRef = useGridApiContext();
37
+ const {
38
+ viewportOuterSize,
39
+ minimumSize,
40
+ hasScrollX,
41
+ scrollbarSize,
42
+ leftPinnedWidth,
43
+ rightPinnedWidth
44
+ } = useGridSelector(apiRef, gridDimensionsSelector);
45
+ const scrollbarHeight = hasScrollX ? scrollbarSize : 0;
46
+ const expandedHeight = viewportOuterSize.height - minimumSize.height - scrollbarHeight;
47
+ const height = Math.max(scrollbarHeight, expandedHeight);
48
+ if (height === 0) {
49
+ return null;
50
+ }
51
+ return /*#__PURE__*/_jsxs(Filler, {
52
+ className: gridClasses.filler,
53
+ role: "presentation",
54
+ style: {
55
+ height
56
+ },
57
+ children: [leftPinnedWidth > 0 && /*#__PURE__*/_jsx(PinnedLeft, {
58
+ className: gridClasses['filler--pinnedLeft'],
59
+ style: {
60
+ width: leftPinnedWidth
61
+ }
62
+ }), /*#__PURE__*/_jsx(Main, {}), rightPinnedWidth > 0 && /*#__PURE__*/_jsx(PinnedRight, {
63
+ className: gridClasses['filler--pinnedRight'],
64
+ style: {
65
+ width: rightPinnedWidth
66
+ }
67
+ })]
68
+ });
69
+ }
70
+ const Memoized = fastMemo(GridVirtualScrollerFiller);
71
+ export { Memoized as GridVirtualScrollerFiller };
@@ -25,7 +25,8 @@ const 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
  const GridVirtualScrollerRenderZone = /*#__PURE__*/React.forwardRef(function GridVirtualScrollerRenderZone(props, ref) {
31
32
  const {
@@ -1,28 +1,33 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import { GridSkeletonCell, GridColumnsPanel, GridFilterPanel, GridFooter, GridLoadingOverlay, GridNoRowsOverlay, GridPagination, GridPanel, GridRow, GridColumnHeaderFilterIconButton, GridRowCount } from '../components';
3
- import { GridCellV7 } from '../components/cell/GridCell';
2
+ import { GridSkeletonCell, GridColumnsPanel, GridFilterPanel, GridFooter, GridLoadingOverlay, GridNoRowsOverlay, GridPagination, GridPanel, GridRow, GridColumnHeaderFilterIconButton, GridRowCount, GridColumnsManagement } from '../components';
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 const 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,
23
27
  pagination: GridPagination,
24
28
  filterPanel: GridFilterPanel,
25
29
  columnsPanel: GridColumnsPanel,
30
+ columnsManagement: GridColumnsManagement,
26
31
  panel: GridPanel,
27
32
  row: GridRow
28
33
  });
@@ -75,6 +75,14 @@ export interface GridClasses {
75
75
  * Styles applied to the cell element if it is at the right edge of a cell selection range.
76
76
  */
77
77
  'cell--rangeRight': string;
78
+ /**
79
+ * Styles applied to the cell element if it is pinned to the left.
80
+ */
81
+ 'cell--pinnedLeft': string;
82
+ /**
83
+ * Styles applied to the cell element if it is pinned to the right.
84
+ */
85
+ 'cell--pinnedRight': string;
78
86
  /**
79
87
  * Styles applied to the cell element if it is in a cell selection range.
80
88
  */
@@ -91,6 +99,10 @@ export interface GridClasses {
91
99
  * Styles applied to the cell checkbox element.
92
100
  */
93
101
  cellCheckbox: string;
102
+ /**
103
+ * Styles applied to the empty cell element.
104
+ */
105
+ cellEmpty: string;
94
106
  /**
95
107
  * Styles applied to the skeleton cell element.
96
108
  */
@@ -216,13 +228,29 @@ export interface GridClasses {
216
228
  */
217
229
  columnSeparator: string;
218
230
  /**
219
- * Styles applied to the columns panel element.
231
+ * Styles applied to the columns management body.
232
+ */
233
+ columnsManagement: string;
234
+ /**
235
+ * Styles applied to the columns management row element.
236
+ */
237
+ columnsManagementRow: string;
238
+ /**
239
+ * Styles applied to the columns management header element.
220
240
  */
221
- columnsPanel: string;
241
+ columnsManagementHeader: string;
222
242
  /**
223
- * Styles applied to the columns panel row element.
243
+ * Styles applied to the columns management footer element.
224
244
  */
225
- columnsPanelRow: string;
245
+ columnsManagementFooter: string;
246
+ /**
247
+ * Styles applied to the top container.
248
+ */
249
+ 'container--top': string;
250
+ /**
251
+ * Styles applied to the bottom container.
252
+ */
253
+ 'container--bottom': string;
226
254
  /**
227
255
  * Styles applied to the detail panel element.
228
256
  */
@@ -271,6 +299,18 @@ export interface GridClasses {
271
299
  * Styles applied to root of the boolean edit component.
272
300
  */
273
301
  editBooleanCell: string;
302
+ /**
303
+ * Styles applied to the filler row.
304
+ */
305
+ filler: string;
306
+ /**
307
+ * Styles applied to the filler row pinned left section.
308
+ */
309
+ 'filler--pinnedLeft': string;
310
+ /**
311
+ * Styles applied to the filler row pinned right section.
312
+ */
313
+ 'filler--pinnedRight': string;
274
314
  /**
275
315
  * Styles applied to the root of the filter form component.
276
316
  */
@@ -323,6 +363,10 @@ export interface GridClasses {
323
363
  * Styles applied to the main container element.
324
364
  */
325
365
  main: string;
366
+ /**
367
+ * Styles applied to the main container element when it has right pinned columns.
368
+ */
369
+ 'main--hasPinnedRight': string;
326
370
  /**
327
371
  * Styles applied to the menu element.
328
372
  */
@@ -375,14 +419,6 @@ export interface GridClasses {
375
419
  * Styles applied to the pinned columns.
376
420
  */
377
421
  pinnedColumns: string;
378
- /**
379
- * Styles applied to the left pinned columns.
380
- */
381
- 'pinnedColumns--left': string;
382
- /**
383
- * Styles applied to the right pinned columns.
384
- */
385
- 'pinnedColumns--right': string;
386
422
  /**
387
423
  * Styles applied to the pinned column headers.
388
424
  */
@@ -427,6 +463,10 @@ export interface GridClasses {
427
463
  * Styles applied to the floating special row reorder cell element when it is dragged.
428
464
  */
429
465
  'row--dragging': string;
466
+ /**
467
+ * Styles applied to the first visible row element on every page of the grid.
468
+ */
469
+ 'row--firstVisible': string;
430
470
  /**
431
471
  * Styles applied to the last visible row element on every page of the grid.
432
472
  */
@@ -472,6 +512,18 @@ export interface GridClasses {
472
512
  * Styles applied to the right scroll area element.
473
513
  */
474
514
  'scrollArea--right': string;
515
+ /**
516
+ * Styles applied to the scrollbars.
517
+ */
518
+ scrollbar: string;
519
+ /**
520
+ * Styles applied to the horizontal scrollbar.
521
+ */
522
+ 'scrollbar--horizontal': string;
523
+ /**
524
+ * Styles applied to the horizontal scrollbar.
525
+ */
526
+ 'scrollbar--vertical': string;
475
527
  /**
476
528
  * Styles applied to the footer selected row count element.
477
529
  */
@@ -488,6 +540,10 @@ export interface GridClasses {
488
540
  * Styles applied to the toolbar filter list element.
489
541
  */
490
542
  toolbarFilterList: string;
543
+ /**
544
+ * Styles applied the grid if `showColumnVerticalBorder={true}`.
545
+ */
546
+ withVerticalBorder: string;
491
547
  /**
492
548
  * Styles applied to cells, column header and other elements that have border.
493
549
  * Sets border color only.
@@ -497,6 +553,10 @@ export interface GridClasses {
497
553
  * Styles applied the cell if `showColumnVerticalBorder={true}`.
498
554
  */
499
555
  'cell--withRightBorder': string;
556
+ /**
557
+ * Styles applied the cell if `showColumnVerticalBorder={true}`.
558
+ */
559
+ 'cell--withLeftBorder': string;
500
560
  /**
501
561
  * Styles applied the column header if `showColumnVerticalBorder={true}`.
502
562
  */
@@ -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 const 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 const 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', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementFooter', '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']);
@@ -27,12 +27,10 @@ export const GRID_DEFAULT_LOCALE_TEXT = {
27
27
  toolbarExportCSV: 'Download as CSV',
28
28
  toolbarExportPrint: 'Print',
29
29
  toolbarExportExcel: 'Download as Excel',
30
- // Columns panel text
31
- columnsPanelTextFieldLabel: 'Find column',
32
- columnsPanelTextFieldPlaceholder: 'Column title',
33
- columnsPanelDragIconLabel: 'Reorder column',
34
- columnsPanelShowAllButton: 'Show all',
35
- columnsPanelHideAllButton: 'Hide all',
30
+ // Columns management text
31
+ columnsManagementSearchTitle: 'Search',
32
+ columnsManagementNoColumns: 'No columns',
33
+ columnsManagementShowHideAllText: 'Show/Hide All',
36
34
  // Filter panel text
37
35
  filterPanelAddFilter: 'Add filter',
38
36
  filterPanelRemoveAll: 'Remove all',
@@ -0,0 +1,6 @@
1
+ import { GridStateCommunity } from '../../models/gridStateCommunity';
2
+ /**
3
+ * Get the theme state
4
+ * @category Core
5
+ */
6
+ export declare const gridThemeSelector: (state: GridStateCommunity) => import("@mui/material").Theme;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Get the theme state
3
+ * @category Core
4
+ */
5
+ export const gridThemeSelector = state => state.theme;
@@ -69,6 +69,7 @@ function createPublicAPI(privateApiRef) {
69
69
  return publicApi;
70
70
  }
71
71
  export function useGridApiInitialization(inputApiRef, props) {
72
+ var _inputApiRef$current;
72
73
  const publicApiRef = React.useRef();
73
74
  const privateApiRef = React.useRef();
74
75
  if (!privateApiRef.current) {
@@ -99,6 +100,9 @@ export function useGridApiInitialization(inputApiRef, props) {
99
100
  subscribeEvent,
100
101
  publishEvent
101
102
  }, 'public');
103
+ if (inputApiRef && !((_inputApiRef$current = inputApiRef.current) != null && _inputApiRef$current.state)) {
104
+ inputApiRef.current = publicApiRef.current;
105
+ }
102
106
  React.useImperativeHandle(inputApiRef, () => publicApiRef.current, [publicApiRef]);
103
107
  React.useEffect(() => {
104
108
  const api = privateApiRef.current;
@@ -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 const useGridInitialization = (inputApiRef, props) => {
12
14
  const privateApiRef = useGridApiInitialization(inputApiRef, props);
15
+ useGridRefs(privateApiRef);
16
+ useGridTheme(privateApiRef);
13
17
  useGridLoggerFactory(privateApiRef, props);
14
18
  useGridStateInitialization(privateApiRef, props);
15
19
  useGridPipeProcessing(privateApiRef);
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ import type { GridPrivateApiCommon } from '../../models/api/gridApiCommon';
3
+ export declare const useGridRefs: <PrivateApi extends GridPrivateApiCommon>(apiRef: React.MutableRefObject<PrivateApi>) => void;
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ export const useGridRefs = apiRef => {
3
+ const rootElementRef = React.useRef(null);
4
+ const mainElementRef = React.useRef(null);
5
+ const virtualScrollerRef = React.useRef(null);
6
+ apiRef.current.register('public', {
7
+ rootElementRef
8
+ });
9
+ apiRef.current.register('private', {
10
+ mainElementRef,
11
+ virtualScrollerRef
12
+ });
13
+ };
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ import { GridPrivateApiCommon } from '../../models/api/gridApiCommon';
3
+ export declare const useGridTheme: (apiRef: React.MutableRefObject<GridPrivateApiCommon>) => void;