@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
package/CHANGELOG.md CHANGED
@@ -3,6 +3,344 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 7.0.0-alpha.9
7
+
8
+ _Jan 19, 2024_
9
+
10
+ We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 🎁 The Data Grid headers have been refactored to bring immense improvements to scrolling, state management, and overall performance of the grid.
13
+ - ⚙️ The Data Grid disabled column-specific features like filtering, sorting, grouping, etc. could now be accessed programmatically. See the related [docs](https://next.mui.com/x/react-data-grid/api-object/#access-the-disabled-column-features) section.
14
+ - 🚀 Uplift the `SimpleTreeView` customization examples (#11424) @noraleonte
15
+ - 🌍 Add Croatian (hr-HR), Portuguese (pt-PT), and Chinese (Hong Kong) (zh-HK) locales (#11668) on the Data Grid @BCaspari
16
+ - 🐞 Bugfixes
17
+ - 💔 Bump `@mui/material` peer dependency for all packages (#11692) @LukasTy
18
+ The minimum required version of `@mui/material` is now `5.15.0`.
19
+
20
+ ### Data Grid
21
+
22
+ #### Breaking changes
23
+
24
+ - The `ariaV7` experimental flag has been removed and the Data Grid now uses the improved accessibility implementation by default.
25
+ If you were using the `ariaV7` flag, you can remove it from the `experimentalFeatures` prop:
26
+
27
+ ```diff
28
+ -<DataGrid experimentalFeatures={{ ariaV7: true }} />
29
+ +<DataGrid />
30
+ ```
31
+
32
+ The most notable changes that might affect your application or tests are:
33
+
34
+ - The `role="grid"` attribute along with related ARIA attributes are now applied to the inner `div` element instead of the root `div` element:
35
+
36
+ ```diff
37
+ -<div class="MuiDataGrid-root" role="grid" aria-colcount="5" aria-rowcount="101" aria-multiselectable="false">
38
+ +<div class="MuiDataGrid-root">
39
+ <div class="MuiDataGrid-toolbarContainer"></div>
40
+ - <div class="MuiDataGrid-main"></div>
41
+ + <div class="MuiDataGrid-main" role="grid" aria-colcount="5" aria-rowcount="101" aria-multiselectable="false"></div>
42
+ <div class="MuiDataGrid-footerContainer"></div>
43
+ </div>
44
+ ```
45
+
46
+ - When the [Tree data](https://next.mui.com/x/react-data-grid/tree-data/) feature is used, the grid role is now `role="treegrid"` instead of `role="grid"`.
47
+ - The Data Grid cells now have `role="gridcell"` instead of `role="cell"`.
48
+
49
+ - The buttons in toolbar composable components `GridToolbarColumnsButton`, `GridToolbarFilterButton`, `GridToolbarDensity`, and `GridToolbarExport` are now wrapped with a tooltip component and have a consistent interface. To override some props corresponding to the toolbar buttons or their corresponding tooltips, you can use the `slotProps` prop. Following is an example diff. See [Toolbar section](https://next.mui.com/x/react-data-grid/components/#toolbar) for more details.
50
+
51
+ ```diff
52
+ function CustomToolbar() {
53
+ return (
54
+ <GridToolbarContainer>
55
+ <GridToolbarColumnsButton />
56
+ <GridToolbarFilterButton
57
+ - title="Custom filter" // 🛑 This was previously forwarded to the tooltip component
58
+ + slotProps={{ tooltip: { title: 'Custom filter' } }} // ✅ This is the correct way now
59
+ />
60
+ <GridToolbarDensitySelector
61
+ - variant="outlined" // 🛑 This was previously forwarded to the button component
62
+ + slotProps={{ button: { variant: 'outlined' } }} // ✅ This is the correct way now
63
+ />
64
+ </GridToolbarContainer>
65
+ );
66
+ }
67
+ ```
68
+
69
+ - Column grouping is now enabled by default. The flag `columnGrouping` is no longer needed to be passed to the `experimentalFeatures` prop to enable it.
70
+
71
+ ```diff
72
+ -<DataGrid experimentalFeatures={{ columnGrouping: true }} />
73
+ +<DataGrid />
74
+ ```
75
+
76
+ - The column grouping API methods `getColumnGroupPath` and `getAllGroupDetails` are no longer prefixed with `unstable_`.
77
+
78
+ - The column grouping selectors `gridFocusColumnGroupHeaderSelector` and `gridTabIndexColumnGroupHeaderSelector` are no longer prefixed with `unstable_`.
79
+
80
+ - The disabled column specific features like `hiding`, `sorting`, `filtering`, `pinning`, `row grouping`, etc could now be controlled programmatically using `initialState`, respective controlled models, or the [API object](https://next.mui.com/x/react-data-grid/api-object/). See the related [docs](https://next.mui.com/x/react-data-grid/api-object/#access-the-disabled-column-features) section.
81
+
82
+ #### `@mui/x-data-grid@7.0.0-alpha.9`
83
+
84
+ - [DataGrid] Allow to filter non-filterable columns programmatically (#11538) @MBilalShafi
85
+ - [DataGrid] Allow to programmatically sort unsortable columns (#11512) @MBilalShafi
86
+ - [DataGrid] Fix incorrect default value for `filterModel.logicOperator` (#11673) @MBilalShafi
87
+ - [DataGrid] Make `column grouping` feature stable (#11698) @MBilalShafi
88
+ - [DataGrid] Remove the `ariaV7` experimental flag (#11428) @cherniavskii
89
+ - [DataGrid] Start the FAQ page (#11686) @MBilalShafi
90
+ - [DataGrid] Sticky headers (#10059) @romgrk
91
+ - [DataGrid] Wrap toolbar buttons with tooltip (#11357) @MBilalShafi
92
+ - [l10n] Add Croatian (hr-HR), Portuguese (pt-PT), and Chinese (Hong Kong) (zh-HK) locales (#11668) @BCaspari
93
+
94
+ #### `@mui/x-data-grid-pro@7.0.0-alpha.9` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
95
+
96
+ Same changes as in `@mui/x-data-grid@7.0.0-alpha.9`, plus:
97
+
98
+ - [DataGridPro] Allow non-pinnable columns to be pinned programmatically (#11680) @MBilalShafi
99
+
100
+ #### `@mui/x-data-grid-premium@7.0.0-alpha.9` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
101
+
102
+ Same changes as in `@mui/x-data-grid-pro@7.0.0-alpha.9`, plus:
103
+
104
+ - [DataGridPremium] Allow aggregation to be applied for non-aggregable columns (#11574) @MBilalShafi
105
+ - [DataGridPremium] Allow programmatically grouping non-groupable columns (#11539) @MBilalShafi
106
+
107
+ ### Date Pickers
108
+
109
+ #### Breaking changes
110
+
111
+ - The `locales` export has been removed from the root of the packages.
112
+ If you were importing locales from the root, be sure to update it:
113
+
114
+ ```diff
115
+ -import { frFR } from '@mui/x-date-pickers';
116
+ +import { frFR } from '@mui/x-date-pickers/locales';
117
+ ```
118
+
119
+ #### `@mui/x-date-pickers@7.0.0-alpha.9`
120
+
121
+ - [fields] Make `PickersTextField` and its dependencies public (#11581) @flaviendelangle
122
+ - [fields] Support farsi digits (#11639) @flaviendelangle
123
+ - [pickers] Fix AdapterLuxon `getWeekNumber` behavior (#11697) @LukasTy
124
+ - [pickers] Stop root exporting `locales` (#11612) @LukasTy
125
+
126
+ #### `@mui/x-date-pickers-pro@7.0.0-alpha.9` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
127
+
128
+ Same changes as in `@mui/x-date-pickers@7.0.0-alpha.9`.
129
+
130
+ ### Charts / `@mui/x-charts@7.0.0-alpha.9`
131
+
132
+ - [charts] Do not propagate `innerRadius` and `outerRadius` to the DOM (#11689) @alexfauquette
133
+ - [charts] Fix default `stackOffset` for `LineChart` (#11647) @alexfauquette
134
+ - [charts] Remove a TS ignore (#11688) @alexfauquette
135
+
136
+ ### Tree View
137
+
138
+ #### Breaking changes
139
+
140
+ - The `expandIcon` / `defaultExpandIcon` props, used to expand the children of a node (rendered when it is collapsed),
141
+ is now defined as a slot both on the Tree View and the Tree Item components.
142
+
143
+ If you were using the `ChevronRight` icon from `@mui/icons-material`,
144
+ you can stop passing it to your component because it is now the default value:
145
+
146
+ ```diff
147
+ -import ChevronRightIcon from '@mui/icons-material/ChevronRight';
148
+
149
+ <SimpleTreeView
150
+ - defaultExpandIcon={<ChevronRightIcon />}
151
+ >
152
+ {items}
153
+ </SimpleTreeView>
154
+ ```
155
+
156
+ If you were passing another icon to your Tree View component,
157
+ you need to use the new `expandIcon` slot on this component:
158
+
159
+ ```diff
160
+ <SimpleTreeView
161
+ - defaultExpandIcon={<MyCustomExpandIcon />}
162
+ + slots={{ expandIcon: MyCustomExpandIcon }}
163
+ >
164
+ {items}
165
+ </SimpleTreeView>
166
+ ```
167
+
168
+ If you were passing another icon to your Tree Item component,
169
+ you need to use the new `expandIcon` slot on this component:
170
+
171
+ ```diff
172
+ <SimpleTreeView>
173
+ <TreeItem
174
+ nodeId="1"
175
+ label="Node 1"
176
+ - expandIcon={<MyCustomExpandIcon />}
177
+ + slots={{ expandIcon: MyCustomExpandIcon }}
178
+ />
179
+ </SimpleTreeView>
180
+ ```
181
+
182
+ - The `collapseIcon` / `defaultCollapseIcon` props, used to collapse the children of a node (rendered when it is expanded),
183
+ is now defined as a slot both on the Tree View and the Tree Item components.
184
+
185
+ If you were using the `ExpandMore` icon from `@mui/icons-material`,
186
+ you can stop passing it to your component because it is now the default value:
187
+
188
+ ```diff
189
+ - import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
190
+
191
+ <SimpleTreeView
192
+ - defaultCollapseIcon={<ExpandMoreIcon />}
193
+ >
194
+ {items}
195
+ </SimpleTreeView>
196
+ ```
197
+
198
+ If you were passing another icon to your Tree View component,
199
+ you need to use the new `collapseIcon` slot on this component:
200
+
201
+ ```diff
202
+ <SimpleTreeView
203
+ - defaultCollapseIcon={<MyCustomCollapseIcon />}
204
+ + slots={{ collapseIcon: MyCustomCollapseIcon }}
205
+ >
206
+ {items}
207
+ </SimpleTreeView>
208
+ ```
209
+
210
+ If you were passing another icon to your Tree Item component,
211
+ you need to use the new `collapseIcon` slot on this component:
212
+
213
+ ```diff
214
+ <SimpleTreeView>
215
+ <TreeItem
216
+ nodeId="1"
217
+ label="Node 1"
218
+ - collapseIcon={<MyCustomCollapseIcon />}
219
+ + slots={{ collapseIcon: MyCustomCollapseIcon }}
220
+ />
221
+ </SimpleTreeView>
222
+ ```
223
+
224
+ - The `useTreeItem` hook has been renamed `useTreeItemState`.
225
+ This will help create a new headless version of the `TreeItem` component based on a future `useTreeItem` hook.
226
+
227
+ ```diff
228
+ -import { TreeItem, useTreeItem } from '@mui/x-tree-view/TreeItem';
229
+ +import { TreeItem, useTreeItemState } from '@mui/x-tree-view/TreeItem';
230
+
231
+ const CustomContent = React.forwardRef((props, ref) => {
232
+ - const { disabled } = useTreeItem(props.nodeId);
233
+ + const { disabled } = useTreeItemState(props.nodeId);
234
+
235
+ // Render some UI
236
+ });
237
+
238
+ function App() {
239
+ return (
240
+ <SimpleTreeView>
241
+ <TreeItem ContentComponent={CustomContent} />
242
+ </SimpleTreeView>
243
+ )
244
+ }
245
+ ```
246
+
247
+ - The `parentIcon` prop has been removed from the Tree View components.
248
+
249
+ If you were passing an icon to your Tree View component,
250
+ you can achieve the same behavior
251
+ by passing the same icon to both the `collapseIcon` and the `expandIcon` slots on this component:
252
+
253
+ ```diff
254
+ <SimpleTreeView
255
+ - defaultParentIcon={<MyCustomParentIcon />}
256
+ + slots={{ collapseIcon: MyCustomParentIcon, expandIcon: MyCustomParentIcon }}
257
+ >
258
+ {items}
259
+ </SimpleTreeView>
260
+ ```
261
+
262
+ - The `endIcon` / `defaultEndIcon` props, rendered next to an item without children,
263
+ is now defined as a slot both on the Tree View and the Tree Item components.
264
+
265
+ If you were passing an icon to your Tree View component,
266
+ you need to use the new `endIcon` slot on this component:
267
+
268
+ ```diff
269
+ <SimpleTreeView
270
+ - defaultEndIcon={<MyCustomEndIcon />}
271
+ + slots={{ endIcon: MyCustomEndIcon }}
272
+ >
273
+ {items}
274
+ </SimpleTreeView>
275
+ ```
276
+
277
+ If you were passing an icon to your Tree Item component,
278
+ you need to use the new `endIcon` slot on this component:
279
+
280
+ ```diff
281
+ <SimpleTreeView>
282
+ <TreeItem
283
+ nodeId="1"
284
+ label="Node 1"
285
+ - endIcon={<MyCustomEndIcon />}
286
+ + slots={{ endIcon: MyCustomEndIcon }}
287
+ />
288
+ </SimpleTreeView>
289
+ ```
290
+
291
+ - The `icon` prop, rendered next to an item without children,
292
+ is now defined as a slot on the Tree Item component.
293
+
294
+ If you were passing an icon to your Tree Item component,
295
+ you need to use the new `icon` slot on this component:
296
+
297
+ ```diff
298
+ <SimpleTreeView>
299
+ <TreeItem
300
+ nodeId="1"
301
+ label="Node 1"
302
+ - icon={<MyCustomIcon />}
303
+ + slots={{ icon: MyCustomIcon }}
304
+ />
305
+ </SimpleTreeView>
306
+ ```
307
+
308
+ #### `@mui/x-tree-view@7.0.0-alpha.9`
309
+
310
+ - [TreeView] Adjust expansion and selection docs (#11723) @noraleonte
311
+ - [TreeView] Improve plugin signature definition (#11665) @flaviendelangle
312
+ - [TreeView] Make each plugin responsible for its context value (#11623) @flaviendelangle
313
+ - [TreeView] Migrate remaining icon props to slots (#11713) @flaviendelangle
314
+ - [TreeView] Pass through `Theme` generic to variants (#11480) @dhulme
315
+ - [TreeView] Rename `useTreeItem` to `useTreeItemState` (#11712) @flaviendelangle
316
+ - [TreeView] Add `slots` and `slotProps` on the Tree View components (#11664) @flaviendelangle
317
+ - [TreeView] Explore a better plugin model API (#11567) @flaviendelangle
318
+
319
+ ### Docs
320
+
321
+ - [docs] Clean the pickers migration guide (#11694) @flaviendelangle
322
+ - [docs] Cleanup and fix Pickers Playground styling (#11700) @LukasTy
323
+ - [docs] First draft of the Tree View custom plugin doc (#11564) @flaviendelangle
324
+ - [docs] Fix Pickers migration syntax and diffs (#11695) @LukasTy
325
+ - [docs] Fix generated tree view API docs (#11737) @LukasTy
326
+ - [docs] Generate docs for Tree View slots (#11730) @flaviendelangle
327
+ - [docs] Improve codemod for v7 (#11650) @oliviertassinari
328
+ - [docs] Improve data grid `pageSizeOptions` prop documentation (#11682) @oliviertassinari
329
+ - [docs] Parse markdown on API docs demo titles (#11728) @LukasTy
330
+ - [docs] Remove the description from the `className` prop (#11693) @oliviertassinari
331
+ - [docs] Uplift `SimpleTreeView` customization examples (#11424) @noraleonte
332
+ - [docs] Uplift the Date Pickers playground (#11555) @danilo-leal
333
+
334
+ ### Core
335
+
336
+ - [core] Bump `@mui/material` peer dependency for all packages (#11692) @LukasTy
337
+ - [core] Make `karma` run in parallel (#11571) @romgrk
338
+ - [core] make `karma-parallel` run under a new command (#11716) @romgrk
339
+ - [code-infra] Migrate all prettier APIs to the async version (#11732) @Janpot
340
+ - [code-infra] Update the Babel macro path (#11479) @michaldudak
341
+ - [docs-infra] Enforce brand name rules (#11651) @oliviertassinari
342
+ - [test] Fix flaky Data Grid test (#11725) @cherniavskii
343
+
6
344
  ## 7.0.0-alpha.8
7
345
 
8
346
  _Jan 11, 2024_
@@ -103,8 +441,8 @@ We'd like to offer a big thanks to the 7 contributors who made this release poss
103
441
  id: 'node-1',
104
442
  label: 'Node 1',
105
443
  children: [
106
- { id: 'node-1-1', label: Node 1.1' },
107
- { id: 'node-1-2', label: Node 1.2' },
444
+ { id: 'node-1-1', label: 'Node 1.1' },
445
+ { id: 'node-1-2', label: 'Node 1.2' },
108
446
  ],
109
447
  },
110
448
  {
@@ -1119,10 +1457,20 @@ And if you need the exact same output you can apply the following transformation
1119
1457
  - The `adapter.toISO` method have been removed, you can directly use your date library:
1120
1458
 
1121
1459
  ```diff
1460
+ // For Day.js
1122
1461
  -const isoString = adapter.toISO(value);
1123
1462
  +const isoString = value.toISOString();
1463
+
1464
+ // For Luxon
1465
+ -const isoString = adapter.toISO(value);
1124
1466
  +const isoString = value.toUTC().toISO({ format: 'extended' });
1467
+
1468
+ // For DateFns
1469
+ -const isoString = adapter.toISO(value);
1125
1470
  +const isoString = dateFns.formatISO(value, { format: 'extended' });
1471
+
1472
+ // For Moment
1473
+ -const isoString = adapter.toISO(value);
1126
1474
  +const isoString = value.toISOString();
1127
1475
  ```
1128
1476
 
@@ -1424,6 +1772,35 @@ Here is an example of the renaming for the `<ChartsTooltip />` component.
1424
1772
  - [core] Update release instructions as per v7 configuration (#10962) @MBilalShafi
1425
1773
  - [license] Correctly throw errors (#10924) @oliviertassinari
1426
1774
 
1775
+ ## 6.19.1
1776
+
1777
+ _Jan 19, 2024_
1778
+
1779
+ We'd like to offer a big thanks to the 1 contributors who made this release possible. Here are some highlights ✨:
1780
+
1781
+ - 🌍 Add Croatian (hr-HR), Portuguese (pt-PT), and Chinese (Hong Kong) (zh-HK) locales (#11717) @BCaspari
1782
+ - 🐞 Bugfixes
1783
+
1784
+ ### Data Grid
1785
+
1786
+ #### `@mui/x-data-grid@6.19.1`
1787
+
1788
+ - [l10n] Add Croatian (hr-HR), Portuguese (pt-PT), and Chinese (Hong Kong) (zh-HK) locales (#11717) @BCaspari
1789
+
1790
+ #### `@mui/x-data-grid-pro@6.19.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
1791
+
1792
+ Same changes as in `@mui/x-data-grid@6.19.1`.
1793
+
1794
+ #### `@mui/x-data-grid-premium@6.19.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
1795
+
1796
+ Same changes as in `@mui/x-data-grid-pro@6.19.1`.
1797
+
1798
+ ### Charts / `@mui/x-charts@6.19.1`
1799
+
1800
+ - [charts] Add `arcLabelRadius` property (#11563) @alexfauquette
1801
+ - [charts] Do not propagate `innerRadius` and `outerRadius` to the DOM (#11719) @alexfauquette
1802
+ - [charts] Fix default `stackOffset` for `LineChart` (#11703) @alexfauquette
1803
+
1427
1804
  ## 6.19.0
1428
1805
 
1429
1806
  _Jan 11, 2024_
@@ -5,7 +5,6 @@ import { GridBody, GridFooterPlaceholder, GridHeader, GridRoot } from '../compon
5
5
  import { GridContextProvider } from '../context/GridContextProvider';
6
6
  import { useDataGridComponent } from './useDataGridComponent';
7
7
  import { useDataGridProps } from './useDataGridProps';
8
- import { DataGridVirtualScroller } from '../components/DataGridVirtualScroller';
9
8
  import { propValidatorsDataGrid, validateProps } from '../internals/utils/propValidation';
10
9
  import { jsx as _jsx } from "react/jsx-runtime";
11
10
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -25,9 +24,7 @@ const DataGridRaw = /*#__PURE__*/React.forwardRef(function DataGrid(inProps, ref
25
24
  sx: props.sx,
26
25
  ref: ref
27
26
  }, props.forwardedProps, {
28
- children: [/*#__PURE__*/_jsx(GridHeader, {}), /*#__PURE__*/_jsx(GridBody, {
29
- VirtualScrollerComponent: DataGridVirtualScroller
30
- }), /*#__PURE__*/_jsx(GridFooterPlaceholder, {})]
27
+ children: [/*#__PURE__*/_jsx(GridHeader, {}), /*#__PURE__*/_jsx(GridBody, {}), /*#__PURE__*/_jsx(GridFooterPlaceholder, {})]
31
28
  }))
32
29
  });
33
30
  });
@@ -131,6 +128,11 @@ DataGridRaw.propTypes = {
131
128
  * @default false
132
129
  */
133
130
  disableColumnSelector: PropTypes.bool,
131
+ /**
132
+ * If `true`, the column sorting feature will be disabled.
133
+ * @default false
134
+ */
135
+ disableColumnSorting: PropTypes.bool,
134
136
  /**
135
137
  * If `true`, the density selector is disabled.
136
138
  * @default false
@@ -167,8 +169,6 @@ DataGridRaw.propTypes = {
167
169
  * 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.
168
170
  */
169
171
  experimentalFeatures: PropTypes.shape({
170
- ariaV7: PropTypes.bool,
171
- columnGrouping: PropTypes.bool,
172
172
  warnIfFocusStateIsNotSynced: PropTypes.bool
173
173
  }),
174
174
  /**
@@ -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 const useDataGridComponent = (inputApiRef, props) => {
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 const 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,
package/README.md CHANGED
@@ -15,7 +15,7 @@ This component has the following peer dependencies that you will need to install
15
15
 
16
16
  ```json
17
17
  "peerDependencies": {
18
- "@mui/material": "^5.4.1",
18
+ "@mui/material": "^5.15.0",
19
19
  "react": "^17.0.0 || ^18.0.0",
20
20
  "react-dom": "^17.0.0 || ^18.0.0"
21
21
  },
@@ -1,7 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { UseGridColumnHeadersProps } from '../hooks/features/columnHeaders/useGridColumnHeaders';
3
- interface GridColumnHeadersProps extends React.HTMLAttributes<HTMLDivElement>, Omit<UseGridColumnHeadersProps, 'innerRef'> {
3
+ export interface GridColumnHeadersProps extends React.HTMLAttributes<HTMLDivElement>, Omit<UseGridColumnHeadersProps, 'innerRef'> {
4
+ ref?: React.Ref<HTMLDivElement>;
4
5
  innerRef?: React.Ref<HTMLDivElement>;
5
6
  }
6
- declare const MemoizedGridColumnHeaders: React.ForwardRefExoticComponent<GridColumnHeadersProps & React.RefAttributes<HTMLDivElement>>;
7
+ declare const MemoizedGridColumnHeaders: React.ForwardRefExoticComponent<Omit<GridColumnHeadersProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
8
  export { MemoizedGridColumnHeaders as GridColumnHeaders };
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["innerRef", "className", "visibleColumns", "sortColumnLookup", "filterColumnLookup", "columnPositions", "columnHeaderTabIndexState", "columnGroupHeaderTabIndexState", "columnHeaderFocus", "columnGroupHeaderFocus", "densityFactor", "headerGroupingMaxDepth", "columnMenuState", "columnVisibility", "columnGroupsHeaderStructure", "hasOtherElementInTabSequence"];
3
+ const _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
- const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnsHeaders(props, ref) {
13
+ const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnHeaders(props, ref) {
14
14
  const {
15
15
  innerRef,
16
16
  visibleColumns,
17
17
  sortColumnLookup,
18
18
  filterColumnLookup,
19
- columnPositions,
20
19
  columnHeaderTabIndexState,
21
20
  columnGroupHeaderTabIndexState,
22
21
  columnHeaderFocus,
23
22
  columnGroupHeaderFocus,
24
- densityFactor,
25
23
  headerGroupingMaxDepth,
26
24
  columnMenuState,
27
25
  columnVisibility,
@@ -31,7 +29,6 @@ const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnsHead
31
29
  other = _objectWithoutPropertiesLoose(props, _excluded);
32
30
  const {
33
31
  isDragging,
34
- getRootProps,
35
32
  getInnerProps,
36
33
  getColumnHeaders,
37
34
  getColumnGroupHeaders
@@ -40,12 +37,10 @@ const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnsHead
40
37
  visibleColumns,
41
38
  sortColumnLookup,
42
39
  filterColumnLookup,
43
- columnPositions,
44
40
  columnHeaderTabIndexState,
45
41
  columnGroupHeaderTabIndexState,
46
42
  columnHeaderFocus,
47
43
  columnGroupHeaderFocus,
48
- densityFactor,
49
44
  headerGroupingMaxDepth,
50
45
  columnMenuState,
51
46
  columnVisibility,
@@ -54,7 +49,7 @@ const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnsHead
54
49
  });
55
50
  return /*#__PURE__*/_jsx(GridBaseColumnHeaders, _extends({
56
51
  ref: ref
57
- }, getRootProps(other), {
52
+ }, other, {
58
53
  children: /*#__PURE__*/_jsxs(GridColumnHeadersInner, _extends({
59
54
  isDragging: isDragging
60
55
  }, getInnerProps(), {
@@ -89,14 +84,11 @@ process.env.NODE_ENV !== "production" ? GridColumnHeaders.propTypes = {
89
84
  field: PropTypes.string,
90
85
  open: PropTypes.bool.isRequired
91
86
  }).isRequired,
92
- columnPositions: PropTypes.arrayOf(PropTypes.number).isRequired,
93
87
  columnVisibility: PropTypes.object.isRequired,
94
- densityFactor: PropTypes.number.isRequired,
95
88
  filterColumnLookup: PropTypes.object.isRequired,
96
89
  hasOtherElementInTabSequence: PropTypes.bool.isRequired,
97
90
  headerGroupingMaxDepth: PropTypes.number.isRequired,
98
91
  innerRef: refType,
99
- minColumnIndex: PropTypes.number,
100
92
  sortColumnLookup: PropTypes.object.isRequired,
101
93
  visibleColumns: PropTypes.arrayOf(PropTypes.object).isRequired
102
94
  } : void 0;
@@ -0,0 +1,5 @@
1
+ import type { VirtualScroller } from '../hooks/features/virtualization/useGridVirtualScroller';
2
+ export interface GridDetailPanelsProps {
3
+ virtualScroller: VirtualScroller;
4
+ }
5
+ export declare function GridDetailPanels(_: GridDetailPanelsProps): null;
@@ -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,4 @@
1
+ import * as React from 'react';
2
+ declare function GridHeaders(): React.JSX.Element;
3
+ declare const MemoizedGridHeaders: typeof GridHeaders;
4
+ export { MemoizedGridHeaders as GridHeaders };
@@ -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
+ const apiRef = useGridPrivateApiContext();
15
+ const rootProps = useGridRootProps();
16
+ const visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
17
+ const filterColumnLookup = useGridSelector(apiRef, gridFilterActiveItemsLookupSelector);
18
+ const sortColumnLookup = useGridSelector(apiRef, gridSortColumnLookupSelector);
19
+ const columnHeaderTabIndexState = useGridSelector(apiRef, gridTabIndexColumnHeaderSelector);
20
+ const cellTabIndexState = useGridSelector(apiRef, gridTabIndexCellSelector);
21
+ const columnGroupHeaderTabIndexState = useGridSelector(apiRef, gridTabIndexColumnGroupHeaderSelector);
22
+ const columnHeaderFocus = useGridSelector(apiRef, gridFocusColumnHeaderSelector);
23
+ const columnGroupHeaderFocus = useGridSelector(apiRef, gridFocusColumnGroupHeaderSelector);
24
+ const headerGroupingMaxDepth = useGridSelector(apiRef, gridColumnGroupsHeaderMaxDepthSelector);
25
+ const columnMenuState = useGridSelector(apiRef, gridColumnMenuSelector);
26
+ const columnVisibility = useGridSelector(apiRef, gridColumnVisibilityModelSelector);
27
+ const columnGroupsHeaderStructure = useGridSelector(apiRef, gridColumnGroupsHeaderStructureSelector);
28
+ const hasOtherElementInTabSequence = !(columnGroupHeaderTabIndexState === null && columnHeaderTabIndexState === null && cellTabIndexState === null);
29
+ const columnHeadersRef = React.useRef(null);
30
+ const 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
+ const MemoizedGridHeaders = fastMemo(GridHeaders);
53
+ export { MemoizedGridHeaders as GridHeaders };
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import type { VirtualScroller } from '../hooks/features/virtualization/useGridVirtualScroller';
3
+ export interface GridPinnedRowsProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ position: 'top' | 'bottom';
5
+ virtualScroller: VirtualScroller;
6
+ }
7
+ export declare function GridPinnedRows(_: GridPinnedRowsProps): null;
@@ -0,0 +1,4 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
+ export function GridPinnedRows(_) {
3
+ return null;
4
+ }