@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
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { GridRenderContext } from '../../../models';
2
3
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
4
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
5
  import { GridStateInitializer } from '../../utils/useGridInitializeState';
@@ -6,6 +7,13 @@ type RootProps = Pick<DataGridProcessedProps, 'disableVirtualization'>;
6
7
  export type GridVirtualizationState = {
7
8
  enabled: boolean;
8
9
  enabledForColumns: boolean;
10
+ renderContext: GridRenderContext;
11
+ };
12
+ export declare const EMPTY_RENDER_CONTEXT: {
13
+ firstRowIndex: number;
14
+ lastRowIndex: number;
15
+ firstColumnIndex: number;
16
+ lastColumnIndex: number;
9
17
  };
10
18
  export declare const virtualizationStateInitializer: GridStateInitializer<RootProps>;
11
19
  export declare function useGridVirtualization(apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: RootProps): void;
@@ -1,10 +1,17 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
4
+ export const EMPTY_RENDER_CONTEXT = {
5
+ firstRowIndex: 0,
6
+ lastRowIndex: 0,
7
+ firstColumnIndex: 0,
8
+ lastColumnIndex: 0
9
+ };
4
10
  export const virtualizationStateInitializer = (state, props) => {
5
11
  const virtualization = {
6
12
  enabled: !props.disableVirtualization,
7
- enabledForColumns: true
13
+ enabledForColumns: true,
14
+ renderContext: EMPTY_RENDER_CONTEXT
8
15
  };
9
16
  return _extends({}, state, {
10
17
  virtualization
@@ -4,3 +4,6 @@ export * from './useGridLogger';
4
4
  export { useGridSelector } from './useGridSelector';
5
5
  export * from './useGridNativeEventListener';
6
6
  export * from './useFirstRender';
7
+ export * from './useOnMount';
8
+ export * from './useResizeObserver';
9
+ export * from './useRunOnce';
@@ -3,4 +3,7 @@ export * from './useGridApiMethod';
3
3
  export * from './useGridLogger';
4
4
  export { useGridSelector } from './useGridSelector';
5
5
  export * from './useGridNativeEventListener';
6
- export * from './useFirstRender';
6
+ export * from './useFirstRender';
7
+ export * from './useOnMount';
8
+ export * from './useResizeObserver';
9
+ export * from './useRunOnce';
@@ -6,7 +6,6 @@ import { gridPinnedRowsCountSelector, gridRowCountSelector } from '../features/r
6
6
  import { useGridPrivateApiContext } from './useGridPrivateApiContext';
7
7
  import { isMultipleRowSelectionEnabled } from '../features/rowSelection/utils';
8
8
  export const useGridAriaAttributes = () => {
9
- var _rootProps$experiment;
10
9
  const apiRef = useGridPrivateApiContext();
11
10
  const rootProps = useGridRootProps();
12
11
  const visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
@@ -14,7 +13,7 @@ export const useGridAriaAttributes = () => {
14
13
  const headerGroupingMaxDepth = useGridSelector(apiRef, gridColumnGroupsHeaderMaxDepthSelector);
15
14
  const pinnedRowsCount = useGridSelector(apiRef, gridPinnedRowsCountSelector);
16
15
  let role = 'grid';
17
- if ((_rootProps$experiment = rootProps.experimentalFeatures) != null && _rootProps$experiment.ariaV7 && rootProps.treeData) {
16
+ if (rootProps.treeData) {
18
17
  role = 'treegrid';
19
18
  }
20
19
  return {
@@ -2,9 +2,11 @@ import * as React from 'react';
2
2
  import { isFunction } from '../../utils/utils';
3
3
  import { useGridLogger } from './useGridLogger';
4
4
  export const useGridNativeEventListener = (apiRef, ref, eventName, handler, options) => {
5
+ var _ref$current;
5
6
  const logger = useGridLogger(apiRef, 'useNativeEventListener');
6
7
  const [added, setAdded] = React.useState(false);
7
8
  const handlerRef = React.useRef(handler);
9
+ const targetElement = isFunction(ref) ? ref() : (_ref$current = ref == null ? void 0 : ref.current) != null ? _ref$current : null;
8
10
  const wrapHandler = React.useCallback(event => {
9
11
  return handlerRef.current && handlerRef.current(event);
10
12
  }, []);
@@ -12,22 +14,15 @@ export const useGridNativeEventListener = (apiRef, ref, eventName, handler, opti
12
14
  handlerRef.current = handler;
13
15
  }, [handler]);
14
16
  React.useEffect(() => {
15
- let targetElement;
16
- if (isFunction(ref)) {
17
- targetElement = ref();
18
- } else {
19
- targetElement = ref && ref.current ? ref.current : null;
20
- }
21
17
  if (targetElement && eventName && !added) {
22
18
  logger.debug(`Binding native ${eventName} event`);
23
19
  targetElement.addEventListener(eventName, wrapHandler, options);
24
- const boundElem = targetElement;
25
20
  setAdded(true);
26
21
  const unsubscribe = () => {
27
22
  logger.debug(`Clearing native ${eventName} event`);
28
- boundElem.removeEventListener(eventName, wrapHandler, options);
23
+ targetElement.removeEventListener(eventName, wrapHandler, options);
29
24
  };
30
25
  apiRef.current.subscribeEvent('unmount', unsubscribe);
31
26
  }
32
- }, [ref, wrapHandler, eventName, added, logger, options, apiRef]);
27
+ }, [targetElement, wrapHandler, eventName, added, logger, options, apiRef]);
33
28
  };
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export declare function useResizeObserver(ref: React.MutableRefObject<HTMLElement | undefined | null>, fn: (entries: ResizeObserverEntry[]) => void, enabled?: boolean): void;
@@ -0,0 +1,36 @@
1
+ import * as React from 'react';
2
+ import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
3
+ const isDevEnvironment = process.env.NODE_ENV === 'development';
4
+ const noop = () => {};
5
+ export function useResizeObserver(ref, fn, enabled) {
6
+ const fnRef = React.useRef(null);
7
+ fnRef.current = fn;
8
+ useEnhancedEffect(() => {
9
+ if (enabled === false || typeof ResizeObserver === 'undefined') {
10
+ return noop;
11
+ }
12
+ let frameID = 0;
13
+ const target = ref.current;
14
+ const observer = new ResizeObserver(entries => {
15
+ // See https://github.com/mui/mui-x/issues/8733
16
+ // In dev, we avoid the React warning by moving the task to the next frame.
17
+ // In prod, we want the task to run in the same frame as to avoid tear.
18
+ if (isDevEnvironment) {
19
+ frameID = requestAnimationFrame(() => {
20
+ fnRef.current(entries);
21
+ });
22
+ } else {
23
+ fnRef.current(entries);
24
+ }
25
+ });
26
+ if (target) {
27
+ observer.observe(target);
28
+ }
29
+ return () => {
30
+ if (frameID) {
31
+ cancelAnimationFrame(frameID);
32
+ }
33
+ observer.disconnect();
34
+ };
35
+ }, [ref, enabled]);
36
+ }
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Runs an effect once, when `condition` is true.
4
+ */
5
+ export declare const useRunOnce: (condition: boolean, effect: React.EffectCallback) => void;
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
3
+ const noop = () => {};
4
+
5
+ /**
6
+ * Runs an effect once, when `condition` is true.
7
+ */
8
+ export const useRunOnce = (condition, effect) => {
9
+ const didRun = React.useRef(false);
10
+ useEnhancedEffect(() => {
11
+ if (didRun.current || !condition) {
12
+ return noop;
13
+ }
14
+ didRun.current = true;
15
+ return effect();
16
+ // eslint-disable-next-line react-hooks/exhaustive-deps
17
+ }, [didRun.current || condition]);
18
+ };
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.0.0-alpha.8
2
+ * @mui/x-data-grid v7.0.0-alpha.9
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -2,6 +2,9 @@ export type { GridBaseColDef, GridStateColDef, GridSingleSelectColDef, } from '.
2
2
  export { GridVirtualScroller } from '../components/virtualization/GridVirtualScroller';
3
3
  export { GridVirtualScrollerContent } from '../components/virtualization/GridVirtualScrollerContent';
4
4
  export { GridVirtualScrollerRenderZone } from '../components/virtualization/GridVirtualScrollerRenderZone';
5
+ export type { GridDetailPanelsProps } from '../components/GridDetailPanels';
6
+ export type { GridPinnedRowsProps } from '../components/GridPinnedRows';
7
+ export { GridHeaders } from '../components/GridHeaders';
5
8
  export { GridBaseColumnHeaders } from '../components/columnHeaders/GridBaseColumnHeaders';
6
9
  export { GridColumnHeadersInner } from '../components/columnHeaders/GridColumnHeadersInner';
7
10
  export { DATA_GRID_DEFAULT_SLOTS_COMPONENTS } from '../constants/defaultGridSlotsComponents';
@@ -13,18 +16,17 @@ export type { GridStrategyProcessor } from '../hooks/core/strategyProcessing';
13
16
  export { useGridInitialization } from '../hooks/core/useGridInitialization';
14
17
  export { unwrapPrivateAPI } from '../hooks/core/useGridApiInitialization';
15
18
  export { useGridClipboard } from '../hooks/features/clipboard/useGridClipboard';
16
- export { useGridColumnHeaders } from '../hooks/features/columnHeaders/useGridColumnHeaders';
19
+ export * from '../hooks/features/columnHeaders/useGridColumnHeaders';
17
20
  export { gridHeaderFilteringEditFieldSelector, gridHeaderFilteringMenuSelector, } from '../hooks/features/headerFiltering/gridHeaderFilteringSelectors';
18
21
  export type { GridSlotsComponentsProps } from '../models/gridSlotsComponentsProps';
19
- export type { UseGridColumnHeadersProps, GetHeadersParams, } from '../hooks/features/columnHeaders/useGridColumnHeaders';
20
22
  export { useGridColumnMenu, columnMenuStateInitializer, } from '../hooks/features/columnMenu/useGridColumnMenu';
21
23
  export { useGridColumns, columnsStateInitializer } from '../hooks/features/columns/useGridColumns';
22
- export { getTotalHeaderHeight } from '../hooks/features/columns/gridColumnsUtils';
24
+ export * from '../hooks/features/columns/gridColumnsUtils';
23
25
  export { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
24
- export { gridColumnsStateSelector } from '../hooks/features/columns/gridColumnsSelector';
26
+ export * from '../hooks/features/columns/gridColumnsSelector';
25
27
  export { useGridColumnGrouping, columnGroupsStateInitializer, } from '../hooks/features/columnGrouping/useGridColumnGrouping';
26
28
  export type { GridColumnGroupLookup } from '../hooks/features/columnGrouping/gridColumnGroupsInterfaces';
27
- export type { GridColumnRawLookup, GridColumnsRawState, GridHydrateColumnsValue, } from '../hooks/features/columns/gridColumnsInterfaces';
29
+ export type { GridColumnRawLookup, GridColumnsRawState, GridHydrateColumnsValue, GridPinnedColumns, GridPinnedColumnFields, GridColumnPinningState, } from '../hooks/features/columns/gridColumnsInterfaces';
28
30
  export { useGridDensity, densityStateInitializer } from '../hooks/features/density/useGridDensity';
29
31
  export { useGridCsvExport } from '../hooks/features/export/useGridCsvExport';
30
32
  export { useGridPrintExport } from '../hooks/features/export/useGridPrintExport';
@@ -54,10 +56,10 @@ export { useGridSorting, sortingStateInitializer } from '../hooks/features/sorti
54
56
  export type { GridSortingModelApplier } from '../hooks/features/sorting/gridSortingState';
55
57
  export { useGridScroll } from '../hooks/features/scroll/useGridScroll';
56
58
  export { useGridEvents } from '../hooks/features/events/useGridEvents';
57
- export { useGridDimensions } from '../hooks/features/dimensions/useGridDimensions';
59
+ export { dimensionsStateInitializer, useGridDimensions, } from '../hooks/features/dimensions/useGridDimensions';
58
60
  export { useGridStatePersistence } from '../hooks/features/statePersistence/useGridStatePersistence';
59
61
  export type { GridRestoreStatePreProcessingContext } from '../hooks/features/statePersistence/gridStatePersistenceInterface';
60
- export { useGridVirtualScroller, getRenderableIndexes, } from '../hooks/features/virtualization/useGridVirtualScroller';
62
+ export { useGridVirtualScroller, EMPTY_DETAIL_PANELS, } from '../hooks/features/virtualization/useGridVirtualScroller';
61
63
  export * from '../hooks/features/virtualization';
62
64
  export { useTimeout } from '../hooks/utils/useTimeout';
63
65
  export { useGridVisibleRows, getVisibleRows } from '../hooks/utils/useGridVisibleRows';
@@ -69,13 +71,14 @@ export * from '../utils/createControllablePromise';
69
71
  export { createSelector, createSelectorMemoized, unstable_resetCreateSelectorCache, } from '../utils/createSelector';
70
72
  export { findParentElementFromClassName, getActiveElement, isEventTargetInPortal, } from '../utils/domUtils';
71
73
  export { isNavigationKey } from '../utils/keyboardUtils';
72
- export { clamp, isDeepEqual, isNumber, isFunction, isObject } from '../utils/utils';
74
+ export * from '../utils/utils';
75
+ export * from '../utils/fastMemo';
73
76
  export { buildWarning } from '../utils/warning';
74
77
  export { exportAs } from '../utils/exportAs';
75
78
  export * from '../utils/getPublicApiRef';
76
79
  export type { GridPrivateOnlyApiCommon } from '../models/api/gridApiCommon';
77
80
  export { useGridPrivateApiContext } from '../hooks/utils/useGridPrivateApiContext';
78
- export * from '../hooks/utils/useOnMount';
81
+ export * from '../hooks/utils';
79
82
  export type { GridApiCommunity } from '../models/api/gridApiCommunity';
80
83
  export type { GridApiCaches } from '../models/gridApiCaches';
81
84
  export { serializeCellValue } from '../hooks/features/export/serializers/csvSerializer';
@@ -1,6 +1,7 @@
1
1
  export { GridVirtualScroller } from '../components/virtualization/GridVirtualScroller';
2
2
  export { GridVirtualScrollerContent } from '../components/virtualization/GridVirtualScrollerContent';
3
3
  export { GridVirtualScrollerRenderZone } from '../components/virtualization/GridVirtualScrollerRenderZone';
4
+ export { GridHeaders } from '../components/GridHeaders';
4
5
  export { GridBaseColumnHeaders } from '../components/columnHeaders/GridBaseColumnHeaders';
5
6
  export { GridColumnHeadersInner } from '../components/columnHeaders/GridColumnHeadersInner';
6
7
  export { DATA_GRID_DEFAULT_SLOTS_COMPONENTS } from '../constants/defaultGridSlotsComponents';
@@ -10,13 +11,13 @@ export { useGridRegisterStrategyProcessor, GRID_DEFAULT_STRATEGY } from '../hook
10
11
  export { useGridInitialization } from '../hooks/core/useGridInitialization';
11
12
  export { unwrapPrivateAPI } from '../hooks/core/useGridApiInitialization';
12
13
  export { useGridClipboard } from '../hooks/features/clipboard/useGridClipboard';
13
- export { useGridColumnHeaders } from '../hooks/features/columnHeaders/useGridColumnHeaders';
14
+ export * from '../hooks/features/columnHeaders/useGridColumnHeaders';
14
15
  export { gridHeaderFilteringEditFieldSelector, gridHeaderFilteringMenuSelector } from '../hooks/features/headerFiltering/gridHeaderFilteringSelectors';
15
16
  export { useGridColumnMenu, columnMenuStateInitializer } from '../hooks/features/columnMenu/useGridColumnMenu';
16
17
  export { useGridColumns, columnsStateInitializer } from '../hooks/features/columns/useGridColumns';
17
- export { getTotalHeaderHeight } from '../hooks/features/columns/gridColumnsUtils';
18
+ export * from '../hooks/features/columns/gridColumnsUtils';
18
19
  export { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
19
- export { gridColumnsStateSelector } from '../hooks/features/columns/gridColumnsSelector';
20
+ export * from '../hooks/features/columns/gridColumnsSelector';
20
21
  export { useGridColumnGrouping, columnGroupsStateInitializer } from '../hooks/features/columnGrouping/useGridColumnGrouping';
21
22
  export { useGridDensity, densityStateInitializer } from '../hooks/features/density/useGridDensity';
22
23
  export { useGridCsvExport } from '../hooks/features/export/useGridCsvExport';
@@ -44,9 +45,9 @@ export { useGridRowSelectionPreProcessors } from '../hooks/features/rowSelection
44
45
  export { useGridSorting, sortingStateInitializer } from '../hooks/features/sorting/useGridSorting';
45
46
  export { useGridScroll } from '../hooks/features/scroll/useGridScroll';
46
47
  export { useGridEvents } from '../hooks/features/events/useGridEvents';
47
- export { useGridDimensions } from '../hooks/features/dimensions/useGridDimensions';
48
+ export { dimensionsStateInitializer, useGridDimensions } from '../hooks/features/dimensions/useGridDimensions';
48
49
  export { useGridStatePersistence } from '../hooks/features/statePersistence/useGridStatePersistence';
49
- export { useGridVirtualScroller, getRenderableIndexes } from '../hooks/features/virtualization/useGridVirtualScroller';
50
+ export { useGridVirtualScroller, EMPTY_DETAIL_PANELS } from '../hooks/features/virtualization/useGridVirtualScroller';
50
51
  export * from '../hooks/features/virtualization';
51
52
  export { useTimeout } from '../hooks/utils/useTimeout';
52
53
  export { useGridVisibleRows, getVisibleRows } from '../hooks/utils/useGridVisibleRows';
@@ -56,11 +57,12 @@ export * from '../utils/createControllablePromise';
56
57
  export { createSelector, createSelectorMemoized, unstable_resetCreateSelectorCache } from '../utils/createSelector';
57
58
  export { findParentElementFromClassName, getActiveElement, isEventTargetInPortal } from '../utils/domUtils';
58
59
  export { isNavigationKey } from '../utils/keyboardUtils';
59
- export { clamp, isDeepEqual, isNumber, isFunction, isObject } from '../utils/utils';
60
+ export * from '../utils/utils';
61
+ export * from '../utils/fastMemo';
60
62
  export { buildWarning } from '../utils/warning';
61
63
  export { exportAs } from '../utils/exportAs';
62
64
  export * from '../utils/getPublicApiRef';
63
65
  export { useGridPrivateApiContext } from '../hooks/utils/useGridPrivateApiContext';
64
- export * from '../hooks/utils/useOnMount';
66
+ export * from '../hooks/utils';
65
67
  export { serializeCellValue } from '../hooks/features/export/serializers/csvSerializer';
66
68
  export * from './utils';
@@ -6,7 +6,6 @@ import { GridBody, GridFooterPlaceholder, GridHeader, GridRoot } from '../compon
6
6
  import { GridContextProvider } from '../context/GridContextProvider';
7
7
  import { useDataGridComponent } from './useDataGridComponent';
8
8
  import { useDataGridProps } from './useDataGridProps';
9
- import { DataGridVirtualScroller } from '../components/DataGridVirtualScroller';
10
9
  import { propValidatorsDataGrid, validateProps } from '../internals/utils/propValidation';
11
10
  import { jsx as _jsx } from "react/jsx-runtime";
12
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -30,9 +29,7 @@ var DataGridRaw = /*#__PURE__*/React.forwardRef(function DataGrid(inProps, ref)
30
29
  sx: props.sx,
31
30
  ref: ref
32
31
  }, props.forwardedProps, {
33
- children: [/*#__PURE__*/_jsx(GridHeader, {}), /*#__PURE__*/_jsx(GridBody, {
34
- VirtualScrollerComponent: DataGridVirtualScroller
35
- }), /*#__PURE__*/_jsx(GridFooterPlaceholder, {})]
32
+ children: [/*#__PURE__*/_jsx(GridHeader, {}), /*#__PURE__*/_jsx(GridBody, {}), /*#__PURE__*/_jsx(GridFooterPlaceholder, {})]
36
33
  }))
37
34
  });
38
35
  });
@@ -136,6 +133,11 @@ DataGridRaw.propTypes = {
136
133
  * @default false
137
134
  */
138
135
  disableColumnSelector: PropTypes.bool,
136
+ /**
137
+ * If `true`, the column sorting feature will be disabled.
138
+ * @default false
139
+ */
140
+ disableColumnSorting: PropTypes.bool,
139
141
  /**
140
142
  * If `true`, the density selector is disabled.
141
143
  * @default false
@@ -172,8 +174,6 @@ DataGridRaw.propTypes = {
172
174
  * For each feature, if the flag is not explicitly set to `true`, the feature will be fully disabled and any property / method call will not have any effect.
173
175
  */
174
176
  experimentalFeatures: PropTypes.shape({
175
- ariaV7: PropTypes.bool,
176
- columnGrouping: PropTypes.bool,
177
177
  warnIfFocusStateIsNotSynced: PropTypes.bool
178
178
  }),
179
179
  /**
@@ -20,7 +20,7 @@ import { useGridRowSelectionPreProcessors } from '../hooks/features/rowSelection
20
20
  import { useGridSorting, sortingStateInitializer } from '../hooks/features/sorting/useGridSorting';
21
21
  import { useGridScroll } from '../hooks/features/scroll/useGridScroll';
22
22
  import { useGridEvents } from '../hooks/features/events/useGridEvents';
23
- import { useGridDimensions } from '../hooks/features/dimensions/useGridDimensions';
23
+ import { dimensionsStateInitializer, useGridDimensions } from '../hooks/features/dimensions/useGridDimensions';
24
24
  import { rowsMetaStateInitializer, useGridRowsMeta } from '../hooks/features/rows/useGridRowsMeta';
25
25
  import { useGridStatePersistence } from '../hooks/features/statePersistence/useGridStatePersistence';
26
26
  import { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
@@ -38,6 +38,7 @@ export var useDataGridComponent = function useDataGridComponent(inputApiRef, pro
38
38
  /**
39
39
  * Register all state initializers here.
40
40
  */
41
+ useGridInitializeState(dimensionsStateInitializer, apiRef, props);
41
42
  useGridInitializeState(rowSelectionStateInitializer, apiRef, props);
42
43
  useGridInitializeState(columnsStateInitializer, apiRef, props);
43
44
  useGridInitializeState(rowsStateInitializer, apiRef, props);
@@ -39,6 +39,7 @@ export var DATA_GRID_PROPS_DEFAULT_VALUES = {
39
39
  disableEval: false,
40
40
  disableMultipleColumnsFiltering: false,
41
41
  disableMultipleRowSelection: false,
42
+ disableColumnSorting: false,
42
43
  disableMultipleColumnsSorting: false,
43
44
  disableRowSelectionOnClick: false,
44
45
  disableVirtualization: false,
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["innerRef", "className", "visibleColumns", "sortColumnLookup", "filterColumnLookup", "columnPositions", "columnHeaderTabIndexState", "columnGroupHeaderTabIndexState", "columnHeaderFocus", "columnGroupHeaderFocus", "densityFactor", "headerGroupingMaxDepth", "columnMenuState", "columnVisibility", "columnGroupsHeaderStructure", "hasOtherElementInTabSequence"];
3
+ var _excluded = ["innerRef", "className", "visibleColumns", "sortColumnLookup", "filterColumnLookup", "columnHeaderTabIndexState", "columnGroupHeaderTabIndexState", "columnHeaderFocus", "columnGroupHeaderFocus", "headerGroupingMaxDepth", "columnMenuState", "columnVisibility", "columnGroupsHeaderStructure", "hasOtherElementInTabSequence"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { refType } from '@mui/utils';
@@ -10,18 +10,16 @@ import { GridBaseColumnHeaders } from './columnHeaders/GridBaseColumnHeaders';
10
10
  import { GridColumnHeadersInner } from './columnHeaders/GridColumnHeadersInner';
11
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
- var GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnsHeaders(props, ref) {
13
+ var GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnHeaders(props, ref) {
14
14
  var innerRef = props.innerRef,
15
15
  className = props.className,
16
16
  visibleColumns = props.visibleColumns,
17
17
  sortColumnLookup = props.sortColumnLookup,
18
18
  filterColumnLookup = props.filterColumnLookup,
19
- columnPositions = props.columnPositions,
20
19
  columnHeaderTabIndexState = props.columnHeaderTabIndexState,
21
20
  columnGroupHeaderTabIndexState = props.columnGroupHeaderTabIndexState,
22
21
  columnHeaderFocus = props.columnHeaderFocus,
23
22
  columnGroupHeaderFocus = props.columnGroupHeaderFocus,
24
- densityFactor = props.densityFactor,
25
23
  headerGroupingMaxDepth = props.headerGroupingMaxDepth,
26
24
  columnMenuState = props.columnMenuState,
27
25
  columnVisibility = props.columnVisibility,
@@ -33,12 +31,10 @@ var GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnsHeader
33
31
  visibleColumns: visibleColumns,
34
32
  sortColumnLookup: sortColumnLookup,
35
33
  filterColumnLookup: filterColumnLookup,
36
- columnPositions: columnPositions,
37
34
  columnHeaderTabIndexState: columnHeaderTabIndexState,
38
35
  columnGroupHeaderTabIndexState: columnGroupHeaderTabIndexState,
39
36
  columnHeaderFocus: columnHeaderFocus,
40
37
  columnGroupHeaderFocus: columnGroupHeaderFocus,
41
- densityFactor: densityFactor,
42
38
  headerGroupingMaxDepth: headerGroupingMaxDepth,
43
39
  columnMenuState: columnMenuState,
44
40
  columnVisibility: columnVisibility,
@@ -46,13 +42,12 @@ var GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnsHeader
46
42
  hasOtherElementInTabSequence: hasOtherElementInTabSequence
47
43
  }),
48
44
  isDragging = _useGridColumnHeaders.isDragging,
49
- getRootProps = _useGridColumnHeaders.getRootProps,
50
45
  getInnerProps = _useGridColumnHeaders.getInnerProps,
51
46
  getColumnHeaders = _useGridColumnHeaders.getColumnHeaders,
52
47
  getColumnGroupHeaders = _useGridColumnHeaders.getColumnGroupHeaders;
53
48
  return /*#__PURE__*/_jsx(GridBaseColumnHeaders, _extends({
54
49
  ref: ref
55
- }, getRootProps(other), {
50
+ }, other, {
56
51
  children: /*#__PURE__*/_jsxs(GridColumnHeadersInner, _extends({
57
52
  isDragging: isDragging
58
53
  }, getInnerProps(), {
@@ -87,14 +82,11 @@ process.env.NODE_ENV !== "production" ? GridColumnHeaders.propTypes = {
87
82
  field: PropTypes.string,
88
83
  open: PropTypes.bool.isRequired
89
84
  }).isRequired,
90
- columnPositions: PropTypes.arrayOf(PropTypes.number).isRequired,
91
85
  columnVisibility: PropTypes.object.isRequired,
92
- densityFactor: PropTypes.number.isRequired,
93
86
  filterColumnLookup: PropTypes.object.isRequired,
94
87
  hasOtherElementInTabSequence: PropTypes.bool.isRequired,
95
88
  headerGroupingMaxDepth: PropTypes.number.isRequired,
96
89
  innerRef: refType,
97
- minColumnIndex: PropTypes.number,
98
90
  sortColumnLookup: PropTypes.object.isRequired,
99
91
  visibleColumns: PropTypes.arrayOf(PropTypes.object).isRequired
100
92
  } : void 0;
@@ -0,0 +1,4 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
+ export function GridDetailPanels(_) {
3
+ return null;
4
+ }
@@ -0,0 +1,53 @@
1
+ import * as React from 'react';
2
+ import { fastMemo } from '../utils/fastMemo';
3
+ import { useGridPrivateApiContext } from '../hooks/utils/useGridPrivateApiContext';
4
+ import { useGridSelector } from '../hooks/utils/useGridSelector';
5
+ import { useGridRootProps } from '../hooks/utils/useGridRootProps';
6
+ import { gridColumnVisibilityModelSelector, gridVisibleColumnDefinitionsSelector } from '../hooks/features/columns/gridColumnsSelector';
7
+ import { gridFilterActiveItemsLookupSelector } from '../hooks/features/filter/gridFilterSelector';
8
+ import { gridSortColumnLookupSelector } from '../hooks/features/sorting/gridSortingSelector';
9
+ import { gridTabIndexColumnHeaderSelector, gridTabIndexCellSelector, gridFocusColumnHeaderSelector, gridTabIndexColumnGroupHeaderSelector, gridFocusColumnGroupHeaderSelector } from '../hooks/features/focus/gridFocusStateSelector';
10
+ import { gridColumnGroupsHeaderMaxDepthSelector, gridColumnGroupsHeaderStructureSelector } from '../hooks/features/columnGrouping/gridColumnGroupsSelector';
11
+ import { gridColumnMenuSelector } from '../hooks/features/columnMenu/columnMenuSelector';
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ function GridHeaders() {
14
+ var apiRef = useGridPrivateApiContext();
15
+ var rootProps = useGridRootProps();
16
+ var visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
17
+ var filterColumnLookup = useGridSelector(apiRef, gridFilterActiveItemsLookupSelector);
18
+ var sortColumnLookup = useGridSelector(apiRef, gridSortColumnLookupSelector);
19
+ var columnHeaderTabIndexState = useGridSelector(apiRef, gridTabIndexColumnHeaderSelector);
20
+ var cellTabIndexState = useGridSelector(apiRef, gridTabIndexCellSelector);
21
+ var columnGroupHeaderTabIndexState = useGridSelector(apiRef, gridTabIndexColumnGroupHeaderSelector);
22
+ var columnHeaderFocus = useGridSelector(apiRef, gridFocusColumnHeaderSelector);
23
+ var columnGroupHeaderFocus = useGridSelector(apiRef, gridFocusColumnGroupHeaderSelector);
24
+ var headerGroupingMaxDepth = useGridSelector(apiRef, gridColumnGroupsHeaderMaxDepthSelector);
25
+ var columnMenuState = useGridSelector(apiRef, gridColumnMenuSelector);
26
+ var columnVisibility = useGridSelector(apiRef, gridColumnVisibilityModelSelector);
27
+ var columnGroupsHeaderStructure = useGridSelector(apiRef, gridColumnGroupsHeaderStructureSelector);
28
+ var hasOtherElementInTabSequence = !(columnGroupHeaderTabIndexState === null && columnHeaderTabIndexState === null && cellTabIndexState === null);
29
+ var columnHeadersRef = React.useRef(null);
30
+ var columnsContainerRef = React.useRef(null);
31
+ apiRef.current.register('private', {
32
+ columnHeadersContainerElementRef: columnsContainerRef,
33
+ columnHeadersElementRef: columnHeadersRef
34
+ });
35
+ return /*#__PURE__*/_jsx(rootProps.slots.columnHeaders, {
36
+ ref: columnsContainerRef,
37
+ innerRef: columnHeadersRef,
38
+ visibleColumns: visibleColumns,
39
+ filterColumnLookup: filterColumnLookup,
40
+ sortColumnLookup: sortColumnLookup,
41
+ columnHeaderTabIndexState: columnHeaderTabIndexState,
42
+ columnGroupHeaderTabIndexState: columnGroupHeaderTabIndexState,
43
+ columnHeaderFocus: columnHeaderFocus,
44
+ columnGroupHeaderFocus: columnGroupHeaderFocus,
45
+ headerGroupingMaxDepth: headerGroupingMaxDepth,
46
+ columnMenuState: columnMenuState,
47
+ columnVisibility: columnVisibility,
48
+ columnGroupsHeaderStructure: columnGroupsHeaderStructure,
49
+ hasOtherElementInTabSequence: hasOtherElementInTabSequence
50
+ });
51
+ }
52
+ var MemoizedGridHeaders = fastMemo(GridHeaders);
53
+ export { MemoizedGridHeaders as GridHeaders };
@@ -0,0 +1,4 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
+ export function GridPinnedRows(_) {
3
+ return null;
4
+ }