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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. package/CHANGELOG.md +379 -2
  2. package/DataGrid/DataGrid.js +6 -6
  3. package/DataGrid/useDataGridComponent.js +2 -1
  4. package/DataGrid/useDataGridProps.js +1 -0
  5. package/README.md +1 -1
  6. package/components/GridColumnHeaders.d.ts +3 -2
  7. package/components/GridColumnHeaders.js +3 -11
  8. package/components/GridDetailPanels.d.ts +5 -0
  9. package/components/GridDetailPanels.js +4 -0
  10. package/components/GridHeaders.d.ts +4 -0
  11. package/components/GridHeaders.js +53 -0
  12. package/components/GridPinnedRows.d.ts +7 -0
  13. package/components/GridPinnedRows.js +4 -0
  14. package/components/GridRow.d.ts +7 -4
  15. package/components/GridRow.js +260 -97
  16. package/components/GridScrollbarFillerCell.d.ts +7 -0
  17. package/components/GridScrollbarFillerCell.js +39 -0
  18. package/components/base/GridBody.d.ts +2 -13
  19. package/components/base/GridBody.js +2 -116
  20. package/components/base/GridOverlays.js +10 -21
  21. package/components/cell/GridActionsCellItem.d.ts +2 -2
  22. package/components/cell/GridCell.d.ts +15 -21
  23. package/components/cell/GridCell.js +67 -372
  24. package/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  25. package/components/columnHeaders/GridColumnHeaderItem.d.ts +2 -1
  26. package/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  27. package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -0
  28. package/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  29. package/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  30. package/components/containers/GridRoot.js +18 -15
  31. package/components/containers/GridRootStyles.js +307 -204
  32. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  33. package/components/panel/GridPanel.js +3 -4
  34. package/components/panel/filterPanel/GridFilterForm.d.ts +6 -4
  35. package/components/panel/filterPanel/GridFilterForm.js +31 -14
  36. package/components/panel/filterPanel/GridFilterPanel.js +46 -20
  37. package/components/toolbar/GridToolbarColumnsButton.d.ts +13 -1
  38. package/components/toolbar/GridToolbarColumnsButton.js +40 -22
  39. package/components/toolbar/GridToolbarDensitySelector.d.ts +13 -1
  40. package/components/toolbar/GridToolbarDensitySelector.js +40 -22
  41. package/components/toolbar/GridToolbarExport.d.ts +10 -1
  42. package/components/toolbar/GridToolbarExport.js +6 -1
  43. package/components/toolbar/GridToolbarExportContainer.d.ts +15 -1
  44. package/components/toolbar/GridToolbarExportContainer.js +41 -23
  45. package/components/toolbar/GridToolbarFilterButton.d.ts +5 -4
  46. package/components/toolbar/GridToolbarFilterButton.js +6 -10
  47. package/components/virtualization/GridBottomContainer.d.ts +2 -0
  48. package/components/virtualization/GridBottomContainer.js +25 -0
  49. package/components/{containers → virtualization}/GridMainContainer.d.ts +2 -0
  50. package/components/virtualization/GridMainContainer.js +20 -0
  51. package/components/virtualization/GridTopContainer.d.ts +2 -0
  52. package/components/virtualization/GridTopContainer.js +35 -0
  53. package/components/virtualization/GridVirtualScrollbar.d.ts +7 -0
  54. package/components/virtualization/GridVirtualScrollbar.js +131 -0
  55. package/components/virtualization/GridVirtualScroller.d.ts +4 -4
  56. package/components/virtualization/GridVirtualScroller.js +69 -16
  57. package/components/virtualization/GridVirtualScrollerFiller.d.ts +4 -0
  58. package/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  59. package/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  60. package/constants/defaultGridSlotsComponents.js +6 -2
  61. package/constants/gridClasses.d.ts +60 -8
  62. package/constants/gridClasses.js +1 -1
  63. package/hooks/core/gridCoreSelector.d.ts +6 -0
  64. package/hooks/core/gridCoreSelector.js +5 -0
  65. package/hooks/core/useGridInitialization.js +4 -0
  66. package/hooks/core/useGridRefs.d.ts +3 -0
  67. package/hooks/core/useGridRefs.js +13 -0
  68. package/hooks/core/useGridTheme.d.ts +3 -0
  69. package/hooks/core/useGridTheme.js +19 -0
  70. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -1
  71. package/hooks/features/columnGrouping/useGridColumnGrouping.js +7 -14
  72. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +13 -18
  73. package/hooks/features/columnHeaders/useGridColumnHeaders.js +68 -162
  74. package/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  75. package/hooks/features/columns/gridColumnsInterfaces.d.ts +17 -0
  76. package/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  77. package/hooks/features/columns/gridColumnsSelector.d.ts +14 -1
  78. package/hooks/features/columns/gridColumnsSelector.js +52 -0
  79. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -5
  80. package/hooks/features/columns/gridColumnsUtils.js +10 -12
  81. package/hooks/features/columns/index.d.ts +2 -2
  82. package/hooks/features/columns/index.js +2 -1
  83. package/hooks/features/columns/useGridColumnSpanning.js +62 -61
  84. package/hooks/features/columns/useGridColumns.js +20 -23
  85. package/hooks/features/dimensions/gridDimensionsApi.d.ts +60 -11
  86. package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +2 -0
  87. package/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  88. package/hooks/features/dimensions/index.d.ts +2 -0
  89. package/hooks/features/dimensions/index.js +1 -0
  90. package/hooks/features/dimensions/useGridDimensions.d.ts +7 -1
  91. package/hooks/features/dimensions/useGridDimensions.js +216 -148
  92. package/hooks/features/export/serializers/csvSerializer.js +2 -2
  93. package/hooks/features/filter/useGridFilter.js +3 -3
  94. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -2
  95. package/hooks/features/focus/gridFocusStateSelector.js +2 -6
  96. package/hooks/features/focus/useGridFocus.js +3 -3
  97. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  98. package/hooks/features/pagination/useGridPagination.js +3 -5
  99. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -0
  100. package/hooks/features/rows/gridRowsSelector.d.ts +2 -2
  101. package/hooks/features/rows/gridRowsSelector.js +5 -5
  102. package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
  103. package/hooks/features/rows/gridRowsUtils.js +4 -4
  104. package/hooks/features/rows/useGridRowsMeta.js +7 -4
  105. package/hooks/features/scroll/useGridScroll.js +8 -10
  106. package/hooks/features/sorting/gridSortingUtils.js +1 -1
  107. package/hooks/features/sorting/useGridSorting.d.ts +1 -1
  108. package/hooks/features/sorting/useGridSorting.js +15 -10
  109. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +14 -0
  110. package/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  111. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +27 -42
  112. package/hooks/features/virtualization/useGridVirtualScroller.js +441 -438
  113. package/hooks/features/virtualization/useGridVirtualization.d.ts +8 -0
  114. package/hooks/features/virtualization/useGridVirtualization.js +8 -1
  115. package/hooks/utils/index.d.ts +3 -0
  116. package/hooks/utils/index.js +4 -1
  117. package/hooks/utils/useGridAriaAttributes.js +1 -2
  118. package/hooks/utils/useGridNativeEventListener.js +4 -9
  119. package/hooks/utils/useResizeObserver.d.ts +2 -0
  120. package/hooks/utils/useResizeObserver.js +36 -0
  121. package/hooks/utils/useRunOnce.d.ts +5 -0
  122. package/hooks/utils/useRunOnce.js +18 -0
  123. package/index.js +1 -1
  124. package/internals/index.d.ts +12 -9
  125. package/internals/index.js +9 -7
  126. package/legacy/DataGrid/DataGrid.js +6 -6
  127. package/legacy/DataGrid/useDataGridComponent.js +2 -1
  128. package/legacy/DataGrid/useDataGridProps.js +1 -0
  129. package/legacy/components/GridColumnHeaders.js +3 -11
  130. package/legacy/components/GridDetailPanels.js +4 -0
  131. package/legacy/components/GridHeaders.js +53 -0
  132. package/legacy/components/GridPinnedRows.js +4 -0
  133. package/legacy/components/GridRow.js +258 -98
  134. package/legacy/components/GridScrollbarFillerCell.js +36 -0
  135. package/legacy/components/base/GridBody.js +2 -114
  136. package/legacy/components/base/GridOverlays.js +10 -25
  137. package/legacy/components/cell/GridCell.js +69 -377
  138. package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  139. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  140. package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  141. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  142. package/legacy/components/containers/GridRoot.js +18 -15
  143. package/legacy/components/containers/GridRootStyles.js +215 -137
  144. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  145. package/legacy/components/panel/GridPanel.js +3 -4
  146. package/legacy/components/panel/filterPanel/GridFilterForm.js +30 -13
  147. package/legacy/components/panel/filterPanel/GridFilterPanel.js +49 -20
  148. package/legacy/components/toolbar/GridToolbarColumnsButton.js +40 -21
  149. package/legacy/components/toolbar/GridToolbarDensitySelector.js +40 -21
  150. package/legacy/components/toolbar/GridToolbarExport.js +6 -1
  151. package/legacy/components/toolbar/GridToolbarExportContainer.js +40 -21
  152. package/legacy/components/toolbar/GridToolbarFilterButton.js +6 -10
  153. package/legacy/components/virtualization/GridBottomContainer.js +25 -0
  154. package/legacy/components/virtualization/GridMainContainer.js +20 -0
  155. package/legacy/components/virtualization/GridTopContainer.js +35 -0
  156. package/legacy/components/virtualization/GridVirtualScrollbar.js +129 -0
  157. package/legacy/components/virtualization/GridVirtualScroller.js +67 -16
  158. package/legacy/components/virtualization/GridVirtualScrollerFiller.js +70 -0
  159. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  160. package/legacy/constants/defaultGridSlotsComponents.js +6 -2
  161. package/legacy/constants/gridClasses.js +1 -1
  162. package/legacy/hooks/core/gridCoreSelector.js +7 -0
  163. package/legacy/hooks/core/useGridInitialization.js +4 -0
  164. package/legacy/hooks/core/useGridRefs.js +13 -0
  165. package/legacy/hooks/core/useGridTheme.js +21 -0
  166. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +7 -14
  167. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +69 -181
  168. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  169. package/legacy/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  170. package/legacy/hooks/features/columns/gridColumnsSelector.js +62 -0
  171. package/legacy/hooks/features/columns/gridColumnsUtils.js +10 -16
  172. package/legacy/hooks/features/columns/index.js +2 -1
  173. package/legacy/hooks/features/columns/useGridColumnSpanning.js +60 -59
  174. package/legacy/hooks/features/columns/useGridColumns.js +22 -23
  175. package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +3 -0
  176. package/legacy/hooks/features/dimensions/index.js +1 -0
  177. package/legacy/hooks/features/dimensions/useGridDimensions.js +226 -151
  178. package/legacy/hooks/features/export/serializers/csvSerializer.js +2 -2
  179. package/legacy/hooks/features/filter/useGridFilter.js +3 -3
  180. package/legacy/hooks/features/focus/gridFocusStateSelector.js +2 -6
  181. package/legacy/hooks/features/focus/useGridFocus.js +3 -3
  182. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  183. package/legacy/hooks/features/pagination/useGridPagination.js +3 -5
  184. package/legacy/hooks/features/rows/gridRowsSelector.js +5 -5
  185. package/legacy/hooks/features/rows/gridRowsUtils.js +4 -4
  186. package/legacy/hooks/features/rows/useGridRowsMeta.js +7 -4
  187. package/legacy/hooks/features/scroll/useGridScroll.js +8 -10
  188. package/legacy/hooks/features/sorting/gridSortingUtils.js +1 -1
  189. package/legacy/hooks/features/sorting/useGridSorting.js +15 -10
  190. package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +29 -1
  191. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +490 -483
  192. package/legacy/hooks/features/virtualization/useGridVirtualization.js +8 -1
  193. package/legacy/hooks/utils/index.js +4 -1
  194. package/legacy/hooks/utils/useGridAriaAttributes.js +1 -2
  195. package/legacy/hooks/utils/useGridNativeEventListener.js +4 -9
  196. package/legacy/hooks/utils/useResizeObserver.js +36 -0
  197. package/legacy/hooks/utils/useRunOnce.js +18 -0
  198. package/legacy/index.js +1 -1
  199. package/legacy/internals/index.js +9 -7
  200. package/legacy/locales/hrHR.js +161 -0
  201. package/legacy/locales/index.js +4 -1
  202. package/legacy/locales/ptPT.js +161 -0
  203. package/legacy/locales/zhHK.js +161 -0
  204. package/legacy/models/index.js +0 -1
  205. package/legacy/models/params/index.js +1 -2
  206. package/legacy/utils/utils.js +10 -1
  207. package/locales/hrHR.d.ts +1 -0
  208. package/locales/hrHR.js +149 -0
  209. package/locales/index.d.ts +3 -0
  210. package/locales/index.js +4 -1
  211. package/locales/ptPT.d.ts +1 -0
  212. package/locales/ptPT.js +149 -0
  213. package/locales/zhHK.d.ts +1 -0
  214. package/locales/zhHK.js +149 -0
  215. package/models/api/gridColumnGroupingApi.d.ts +2 -2
  216. package/models/api/gridCoreApi.d.ts +16 -16
  217. package/models/api/gridRowsMetaApi.d.ts +1 -1
  218. package/models/api/gridVirtualizationApi.d.ts +2 -3
  219. package/models/events/gridEventLookup.d.ts +3 -3
  220. package/models/gridFilterModel.d.ts +1 -1
  221. package/models/gridSlotsComponent.d.ts +16 -2
  222. package/models/gridStateCommunity.d.ts +5 -1
  223. package/models/index.d.ts +0 -1
  224. package/models/index.js +0 -1
  225. package/models/params/index.d.ts +0 -1
  226. package/models/params/index.js +1 -2
  227. package/models/props/DataGridProps.d.ts +6 -11
  228. package/modern/DataGrid/DataGrid.js +6 -6
  229. package/modern/DataGrid/useDataGridComponent.js +2 -1
  230. package/modern/DataGrid/useDataGridProps.js +1 -0
  231. package/modern/components/GridColumnHeaders.js +3 -11
  232. package/modern/components/GridDetailPanels.js +4 -0
  233. package/modern/components/GridHeaders.js +53 -0
  234. package/modern/components/GridPinnedRows.js +4 -0
  235. package/modern/components/GridRow.js +258 -96
  236. package/modern/components/GridScrollbarFillerCell.js +39 -0
  237. package/modern/components/base/GridBody.js +2 -116
  238. package/modern/components/base/GridOverlays.js +10 -16
  239. package/modern/components/cell/GridCell.js +65 -369
  240. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  241. package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  242. package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  243. package/modern/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  244. package/modern/components/containers/GridRoot.js +18 -14
  245. package/modern/components/containers/GridRootStyles.js +307 -204
  246. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  247. package/modern/components/panel/GridPanel.js +3 -4
  248. package/modern/components/panel/filterPanel/GridFilterForm.js +30 -13
  249. package/modern/components/panel/filterPanel/GridFilterPanel.js +46 -20
  250. package/modern/components/toolbar/GridToolbarColumnsButton.js +38 -21
  251. package/modern/components/toolbar/GridToolbarDensitySelector.js +38 -21
  252. package/modern/components/toolbar/GridToolbarExport.js +6 -1
  253. package/modern/components/toolbar/GridToolbarExportContainer.js +39 -22
  254. package/modern/components/toolbar/GridToolbarFilterButton.js +6 -10
  255. package/modern/components/virtualization/GridBottomContainer.js +25 -0
  256. package/modern/components/virtualization/GridMainContainer.js +20 -0
  257. package/modern/components/virtualization/GridTopContainer.js +35 -0
  258. package/modern/components/virtualization/GridVirtualScrollbar.js +131 -0
  259. package/modern/components/virtualization/GridVirtualScroller.js +69 -16
  260. package/modern/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  261. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  262. package/modern/constants/defaultGridSlotsComponents.js +6 -2
  263. package/modern/constants/gridClasses.js +1 -1
  264. package/modern/hooks/core/gridCoreSelector.js +5 -0
  265. package/modern/hooks/core/useGridInitialization.js +4 -0
  266. package/modern/hooks/core/useGridRefs.js +13 -0
  267. package/modern/hooks/core/useGridTheme.js +19 -0
  268. package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +5 -12
  269. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +67 -160
  270. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  271. package/modern/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  272. package/modern/hooks/features/columns/gridColumnsSelector.js +51 -0
  273. package/modern/hooks/features/columns/gridColumnsUtils.js +10 -12
  274. package/modern/hooks/features/columns/index.js +2 -1
  275. package/modern/hooks/features/columns/useGridColumnSpanning.js +62 -61
  276. package/modern/hooks/features/columns/useGridColumns.js +19 -21
  277. package/modern/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  278. package/modern/hooks/features/dimensions/index.js +1 -0
  279. package/modern/hooks/features/dimensions/useGridDimensions.js +214 -146
  280. package/modern/hooks/features/export/serializers/csvSerializer.js +2 -2
  281. package/modern/hooks/features/filter/useGridFilter.js +3 -3
  282. package/modern/hooks/features/focus/gridFocusStateSelector.js +2 -6
  283. package/modern/hooks/features/focus/useGridFocus.js +3 -3
  284. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  285. package/modern/hooks/features/pagination/useGridPagination.js +3 -5
  286. package/modern/hooks/features/rows/gridRowsSelector.js +2 -2
  287. package/modern/hooks/features/rows/gridRowsUtils.js +4 -4
  288. package/modern/hooks/features/rows/useGridRowsMeta.js +7 -4
  289. package/modern/hooks/features/scroll/useGridScroll.js +8 -9
  290. package/modern/hooks/features/sorting/gridSortingUtils.js +1 -1
  291. package/modern/hooks/features/sorting/useGridSorting.js +15 -10
  292. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  293. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +435 -432
  294. package/modern/hooks/features/virtualization/useGridVirtualization.js +8 -1
  295. package/modern/hooks/utils/index.js +4 -1
  296. package/modern/hooks/utils/useGridAriaAttributes.js +1 -1
  297. package/modern/hooks/utils/useGridNativeEventListener.js +3 -9
  298. package/modern/hooks/utils/useResizeObserver.js +36 -0
  299. package/modern/hooks/utils/useRunOnce.js +18 -0
  300. package/modern/index.js +1 -1
  301. package/modern/internals/index.js +9 -7
  302. package/modern/locales/hrHR.js +149 -0
  303. package/modern/locales/index.js +4 -1
  304. package/modern/locales/ptPT.js +149 -0
  305. package/modern/locales/zhHK.js +149 -0
  306. package/modern/models/index.js +0 -1
  307. package/modern/models/params/index.js +1 -2
  308. package/modern/utils/utils.js +10 -1
  309. package/node/DataGrid/DataGrid.js +6 -6
  310. package/node/DataGrid/useDataGridComponent.js +1 -0
  311. package/node/DataGrid/useDataGridProps.js +1 -0
  312. package/node/components/GridColumnHeaders.js +3 -11
  313. package/node/components/GridDetailPanels.js +10 -0
  314. package/node/components/GridHeaders.js +60 -0
  315. package/node/components/GridPinnedRows.js +10 -0
  316. package/node/components/GridRow.js +256 -94
  317. package/node/components/GridScrollbarFillerCell.js +47 -0
  318. package/node/components/base/GridBody.js +7 -118
  319. package/node/components/base/GridOverlays.js +9 -15
  320. package/node/components/cell/GridCell.js +66 -369
  321. package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  322. package/node/components/columnHeaders/GridColumnHeaderItem.js +8 -4
  323. package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  324. package/node/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  325. package/node/components/containers/GridRoot.js +17 -14
  326. package/node/components/containers/GridRootStyles.js +175 -72
  327. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  328. package/node/components/panel/GridPanel.js +3 -4
  329. package/node/components/panel/filterPanel/GridFilterForm.js +29 -12
  330. package/node/components/panel/filterPanel/GridFilterPanel.js +45 -19
  331. package/node/components/toolbar/GridToolbarColumnsButton.js +36 -20
  332. package/node/components/toolbar/GridToolbarDensitySelector.js +36 -20
  333. package/node/components/toolbar/GridToolbarExport.js +6 -1
  334. package/node/components/toolbar/GridToolbarExportContainer.js +37 -21
  335. package/node/components/toolbar/GridToolbarFilterButton.js +6 -10
  336. package/node/components/virtualization/GridBottomContainer.js +34 -0
  337. package/node/components/{containers → virtualization}/GridMainContainer.js +7 -29
  338. package/node/components/virtualization/GridTopContainer.js +44 -0
  339. package/node/components/virtualization/GridVirtualScrollbar.js +138 -0
  340. package/node/components/virtualization/GridVirtualScroller.js +69 -17
  341. package/node/components/virtualization/GridVirtualScrollerFiller.js +77 -0
  342. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  343. package/node/constants/defaultGridSlotsComponents.js +5 -1
  344. package/node/constants/gridClasses.js +1 -1
  345. package/node/hooks/core/gridCoreSelector.js +12 -0
  346. package/node/hooks/core/useGridInitialization.js +4 -0
  347. package/node/hooks/core/useGridRefs.js +22 -0
  348. package/node/hooks/core/useGridTheme.js +29 -0
  349. package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +5 -12
  350. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +65 -159
  351. package/node/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  352. package/node/hooks/features/columns/gridColumnsInterfaces.js +11 -1
  353. package/node/hooks/features/columns/gridColumnsSelector.js +52 -1
  354. package/node/hooks/features/columns/gridColumnsUtils.js +10 -13
  355. package/node/hooks/features/columns/index.js +22 -61
  356. package/node/hooks/features/columns/useGridColumnSpanning.js +62 -61
  357. package/node/hooks/features/columns/useGridColumns.js +20 -22
  358. package/node/hooks/features/dimensions/gridDimensionsSelectors.js +8 -0
  359. package/node/hooks/features/dimensions/index.js +11 -0
  360. package/node/hooks/features/dimensions/useGridDimensions.js +215 -144
  361. package/node/hooks/features/export/serializers/csvSerializer.js +2 -2
  362. package/node/hooks/features/filter/useGridFilter.js +2 -2
  363. package/node/hooks/features/focus/gridFocusStateSelector.js +3 -7
  364. package/node/hooks/features/focus/useGridFocus.js +2 -2
  365. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -15
  366. package/node/hooks/features/pagination/useGridPagination.js +3 -5
  367. package/node/hooks/features/rows/gridRowsSelector.js +2 -2
  368. package/node/hooks/features/rows/gridRowsUtils.js +4 -4
  369. package/node/hooks/features/rows/useGridRowsMeta.js +5 -3
  370. package/node/hooks/features/scroll/useGridScroll.js +8 -9
  371. package/node/hooks/features/sorting/gridSortingUtils.js +1 -1
  372. package/node/hooks/features/sorting/useGridSorting.js +15 -10
  373. package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  374. package/node/hooks/features/virtualization/useGridVirtualScroller.js +434 -431
  375. package/node/hooks/features/virtualization/useGridVirtualization.js +9 -1
  376. package/node/hooks/utils/index.js +36 -0
  377. package/node/hooks/utils/useGridAriaAttributes.js +1 -1
  378. package/node/hooks/utils/useGridNativeEventListener.js +3 -9
  379. package/node/hooks/utils/useResizeObserver.js +44 -0
  380. package/node/hooks/utils/useRunOnce.js +27 -0
  381. package/node/index.js +1 -1
  382. package/node/internals/index.js +86 -71
  383. package/node/locales/hrHR.js +155 -0
  384. package/node/locales/index.js +33 -0
  385. package/node/locales/ptPT.js +155 -0
  386. package/node/locales/zhHK.js +155 -0
  387. package/node/models/index.js +0 -11
  388. package/node/models/params/index.js +0 -11
  389. package/node/utils/utils.js +11 -1
  390. package/package.json +6 -6
  391. package/utils/utils.d.ts +6 -0
  392. package/utils/utils.js +10 -1
  393. package/components/DataGridVirtualScroller.d.ts +0 -3
  394. package/components/DataGridVirtualScroller.js +0 -35
  395. package/components/containers/GridMainContainer.js +0 -43
  396. package/legacy/components/DataGridVirtualScroller.js +0 -32
  397. package/legacy/components/containers/GridMainContainer.js +0 -45
  398. package/legacy/models/gridRootContainerRef.js +0 -1
  399. package/legacy/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  400. package/models/gridRootContainerRef.d.ts +0 -5
  401. package/models/gridRootContainerRef.js +0 -1
  402. package/models/params/gridRenderedRowsIntervalChangeParams.d.ts +0 -10
  403. package/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  404. package/modern/components/DataGridVirtualScroller.js +0 -35
  405. package/modern/components/containers/GridMainContainer.js +0 -42
  406. package/modern/models/gridRootContainerRef.js +0 -1
  407. package/modern/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  408. package/node/components/DataGridVirtualScroller.js +0 -42
  409. package/node/models/gridRootContainerRef.js +0 -5
  410. package/node/models/params/gridRenderedRowsIntervalChangeParams.js +0 -5
@@ -7,65 +7,10 @@ import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
7
7
  */
8
8
  export var useGridColumnSpanning = function useGridColumnSpanning(apiRef) {
9
9
  var lookup = React.useRef({});
10
- var setCellColSpanInfo = React.useCallback(function (rowId, columnIndex, cellColSpanInfo) {
11
- var sizes = lookup.current;
12
- if (!sizes[rowId]) {
13
- sizes[rowId] = {};
14
- }
15
- sizes[rowId][columnIndex] = cellColSpanInfo;
16
- }, []);
17
- var getCellColSpanInfo = React.useCallback(function (rowId, columnIndex) {
10
+ var getCellColSpanInfo = function getCellColSpanInfo(rowId, columnIndex) {
18
11
  var _lookup$current$rowId;
19
12
  return (_lookup$current$rowId = lookup.current[rowId]) == null ? void 0 : _lookup$current$rowId[columnIndex];
20
- }, []);
21
-
22
- // Calculate `colSpan` for the cell.
23
- var calculateCellColSpan = React.useCallback(function (params) {
24
- var columnIndex = params.columnIndex,
25
- rowId = params.rowId,
26
- minFirstColumnIndex = params.minFirstColumnIndex,
27
- maxLastColumnIndex = params.maxLastColumnIndex,
28
- columns = params.columns;
29
- var columnsLength = columns.length;
30
- var column = columns[columnIndex];
31
- var colSpan = typeof column.colSpan === 'function' ? column.colSpan(apiRef.current.getCellParams(rowId, column.field)) : column.colSpan;
32
- if (!colSpan || colSpan === 1) {
33
- setCellColSpanInfo(rowId, columnIndex, {
34
- spannedByColSpan: false,
35
- cellProps: {
36
- colSpan: 1,
37
- width: column.computedWidth
38
- }
39
- });
40
- return {
41
- colSpan: 1
42
- };
43
- }
44
- var width = column.computedWidth;
45
- for (var j = 1; j < colSpan; j += 1) {
46
- var nextColumnIndex = columnIndex + j;
47
- // Cells should be spanned only within their column section (left-pinned, right-pinned and unpinned).
48
- if (nextColumnIndex >= minFirstColumnIndex && nextColumnIndex < maxLastColumnIndex) {
49
- var nextColumn = columns[nextColumnIndex];
50
- width += nextColumn.computedWidth;
51
- setCellColSpanInfo(rowId, columnIndex + j, {
52
- spannedByColSpan: true,
53
- rightVisibleCellIndex: Math.min(columnIndex + colSpan, columnsLength - 1),
54
- leftVisibleCellIndex: columnIndex
55
- });
56
- }
57
- setCellColSpanInfo(rowId, columnIndex, {
58
- spannedByColSpan: false,
59
- cellProps: {
60
- colSpan: colSpan,
61
- width: width
62
- }
63
- });
64
- }
65
- return {
66
- colSpan: colSpan
67
- };
68
- }, [apiRef, setCellColSpanInfo]);
13
+ };
69
14
 
70
15
  // Calculate `colSpan` for each cell in the row
71
16
  var calculateColSpan = React.useCallback(function (_ref) {
@@ -75,6 +20,8 @@ export var useGridColumnSpanning = function useGridColumnSpanning(apiRef) {
75
20
  columns = _ref.columns;
76
21
  for (var i = minFirstColumn; i < maxLastColumn; i += 1) {
77
22
  var cellProps = calculateCellColSpan({
23
+ apiRef: apiRef,
24
+ lookup: lookup.current,
78
25
  columnIndex: i,
79
26
  rowId: rowId,
80
27
  minFirstColumnIndex: minFirstColumn,
@@ -85,7 +32,7 @@ export var useGridColumnSpanning = function useGridColumnSpanning(apiRef) {
85
32
  i += cellProps.colSpan - 1;
86
33
  }
87
34
  }
88
- }, [calculateCellColSpan]);
35
+ }, [apiRef]);
89
36
  var columnSpanningPublicApi = {
90
37
  unstable_getCellColSpanInfo: getCellColSpanInfo
91
38
  };
@@ -99,4 +46,58 @@ export var useGridColumnSpanning = function useGridColumnSpanning(apiRef) {
99
46
  lookup.current = {};
100
47
  }, []);
101
48
  useGridApiEventHandler(apiRef, 'columnOrderChange', handleColumnReorderChange);
102
- };
49
+ };
50
+ function calculateCellColSpan(params) {
51
+ var apiRef = params.apiRef,
52
+ lookup = params.lookup,
53
+ columnIndex = params.columnIndex,
54
+ rowId = params.rowId,
55
+ minFirstColumnIndex = params.minFirstColumnIndex,
56
+ maxLastColumnIndex = params.maxLastColumnIndex,
57
+ columns = params.columns;
58
+ var columnsLength = columns.length;
59
+ var column = columns[columnIndex];
60
+ var colSpan = typeof column.colSpan === 'function' ? column.colSpan(apiRef.current.getCellParams(rowId, column.field)) : column.colSpan;
61
+ if (!colSpan || colSpan === 1) {
62
+ setCellColSpanInfo(lookup, rowId, columnIndex, {
63
+ spannedByColSpan: false,
64
+ cellProps: {
65
+ colSpan: 1,
66
+ width: column.computedWidth
67
+ }
68
+ });
69
+ return {
70
+ colSpan: 1
71
+ };
72
+ }
73
+ var width = column.computedWidth;
74
+ for (var j = 1; j < colSpan; j += 1) {
75
+ var nextColumnIndex = columnIndex + j;
76
+ // Cells should be spanned only within their column section (left-pinned, right-pinned and unpinned).
77
+ if (nextColumnIndex >= minFirstColumnIndex && nextColumnIndex < maxLastColumnIndex) {
78
+ var nextColumn = columns[nextColumnIndex];
79
+ width += nextColumn.computedWidth;
80
+ setCellColSpanInfo(lookup, rowId, columnIndex + j, {
81
+ spannedByColSpan: true,
82
+ rightVisibleCellIndex: Math.min(columnIndex + colSpan, columnsLength - 1),
83
+ leftVisibleCellIndex: columnIndex
84
+ });
85
+ }
86
+ setCellColSpanInfo(lookup, rowId, columnIndex, {
87
+ spannedByColSpan: false,
88
+ cellProps: {
89
+ colSpan: colSpan,
90
+ width: width
91
+ }
92
+ });
93
+ }
94
+ return {
95
+ colSpan: colSpan
96
+ };
97
+ }
98
+ function setCellColSpanInfo(lookup, rowId, columnIndex, cellColSpanInfo) {
99
+ if (!lookup[rowId]) {
100
+ lookup[rowId] = {};
101
+ }
102
+ lookup[rowId][columnIndex] = cellColSpanInfo;
103
+ }
@@ -7,23 +7,24 @@ import { useGridLogger } from '../../utils/useGridLogger';
7
7
  import { gridColumnFieldsSelector, gridColumnDefinitionsSelector, gridColumnLookupSelector, gridColumnsStateSelector, gridColumnVisibilityModelSelector, gridVisibleColumnDefinitionsSelector, gridColumnPositionsSelector } from './gridColumnsSelector';
8
8
  import { GridSignature, useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
9
9
  import { useGridRegisterPipeProcessor, useGridRegisterPipeApplier } from '../../core/pipeProcessing';
10
- import { hydrateColumnsWidth, createColumnsState, mergeColumnsState, COLUMNS_DIMENSION_PROPERTIES } from './gridColumnsUtils';
10
+ import { EMPTY_PINNED_COLUMN_FIELDS } from './gridColumnsInterfaces';
11
+ import { hydrateColumnsWidth, createColumnsState, COLUMNS_DIMENSION_PROPERTIES } from './gridColumnsUtils';
11
12
  import { GridPreferencePanelsValue } from '../preferencesPanel';
12
- import { getGridDefaultColumnTypes } from '../../../colDef';
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
- var defaultColumnTypes = getGridDefaultColumnTypes();
15
14
  export var columnsStateInitializer = function columnsStateInitializer(state, props, apiRef) {
16
- var _props$initialState, _ref, _props$columnVisibili, _props$initialState2;
15
+ var _props$initialState, _ref, _props$columnVisibili, _props$initialState2, _state$pinnedColumns;
17
16
  var columnsState = createColumnsState({
18
17
  apiRef: apiRef,
19
- columnTypes: defaultColumnTypes,
20
18
  columnsToUpsert: props.columns,
21
19
  initialState: (_props$initialState = props.initialState) == null ? void 0 : _props$initialState.columns,
22
20
  columnVisibilityModel: (_ref = (_props$columnVisibili = props.columnVisibilityModel) != null ? _props$columnVisibili : (_props$initialState2 = props.initialState) == null || (_props$initialState2 = _props$initialState2.columns) == null ? void 0 : _props$initialState2.columnVisibilityModel) != null ? _ref : {},
23
21
  keepOnlyColumnsToUpsert: true
24
22
  });
25
23
  return _extends({}, state, {
26
- columns: columnsState
24
+ columns: columnsState,
25
+ // In pro/premium, this part of the state is defined. We give it an empty but defined value
26
+ // for the community version.
27
+ pinnedColumns: (_state$pinnedColumns = state.pinnedColumns) != null ? _state$pinnedColumns : EMPTY_PINNED_COLUMN_FIELDS
27
28
  });
28
29
  };
29
30
 
@@ -35,9 +36,7 @@ export var columnsStateInitializer = function columnsStateInitializer(state, pro
35
36
  export function useGridColumns(apiRef, props) {
36
37
  var _props$initialState4, _props$slotProps2;
37
38
  var logger = useGridLogger(apiRef, 'useGridColumns');
38
- var columnTypes = defaultColumnTypes;
39
39
  var previousColumnsProp = React.useRef(props.columns);
40
- var previousColumnTypesProp = React.useRef(columnTypes);
41
40
  apiRef.current.registerControlState({
42
41
  stateId: 'visibleColumns',
43
42
  propModel: props.columnVisibilityModel,
@@ -48,8 +47,8 @@ export function useGridColumns(apiRef, props) {
48
47
  var setGridColumnsState = React.useCallback(function (columnsState) {
49
48
  logger.debug('Updating columns state.');
50
49
  apiRef.current.setState(mergeColumnsState(columnsState));
51
- apiRef.current.forceUpdate();
52
50
  apiRef.current.publishEvent('columnsChange', columnsState.orderedFields);
51
+ apiRef.current.forceUpdate();
53
52
  }, [logger, apiRef]);
54
53
 
55
54
  /**
@@ -82,7 +81,6 @@ export function useGridColumns(apiRef, props) {
82
81
  return _extends({}, state, {
83
82
  columns: createColumnsState({
84
83
  apiRef: apiRef,
85
- columnTypes: columnTypes,
86
84
  columnsToUpsert: [],
87
85
  initialState: undefined,
88
86
  columnVisibilityModel: model,
@@ -92,17 +90,16 @@ export function useGridColumns(apiRef, props) {
92
90
  });
93
91
  apiRef.current.forceUpdate();
94
92
  }
95
- }, [apiRef, columnTypes]);
93
+ }, [apiRef]);
96
94
  var updateColumns = React.useCallback(function (columns) {
97
95
  var columnsState = createColumnsState({
98
96
  apiRef: apiRef,
99
- columnTypes: columnTypes,
100
97
  columnsToUpsert: columns,
101
98
  initialState: undefined,
102
99
  keepOnlyColumnsToUpsert: false
103
100
  });
104
101
  setGridColumnsState(columnsState);
105
- }, [apiRef, setGridColumnsState, columnTypes]);
102
+ }, [apiRef, setGridColumnsState]);
106
103
  var setColumnVisibility = React.useCallback(function (field, isVisible) {
107
104
  var _columnVisibilityMode;
108
105
  var columnVisibilityModel = gridColumnVisibilityModelSelector(apiRef);
@@ -139,7 +136,6 @@ export function useGridColumns(apiRef, props) {
139
136
  apiRef.current.publishEvent('columnIndexChange', params);
140
137
  }, [apiRef, logger, setGridColumnsState, getColumnIndexRelativeToVisibleColumns]);
141
138
  var setColumnWidth = React.useCallback(function (field, width) {
142
- var _apiRef$current$getRo, _apiRef$current$getRo2;
143
139
  logger.debug("Updating column ".concat(field, " width to ").concat(width));
144
140
  var columnsState = gridColumnsStateSelector(apiRef.current.state);
145
141
  var column = columnsState.lookup[field];
@@ -149,7 +145,7 @@ export function useGridColumns(apiRef, props) {
149
145
  });
150
146
  setGridColumnsState(hydrateColumnsWidth(_extends({}, columnsState, {
151
147
  lookup: _extends({}, columnsState.lookup, _defineProperty({}, field, newColumn))
152
- }), (_apiRef$current$getRo = (_apiRef$current$getRo2 = apiRef.current.getRootDimensions()) == null ? void 0 : _apiRef$current$getRo2.viewportInnerSize.width) != null ? _apiRef$current$getRo : 0));
148
+ }), apiRef.current.getRootDimensions().viewportInnerSize.width));
153
149
  apiRef.current.publishEvent('columnWidthChange', {
154
150
  element: apiRef.current.getColumnHeaderElement(field),
155
151
  colDef: newColumn,
@@ -226,7 +222,6 @@ export function useGridColumns(apiRef, props) {
226
222
  }
227
223
  var columnsState = createColumnsState({
228
224
  apiRef: apiRef,
229
- columnTypes: columnTypes,
230
225
  columnsToUpsert: [],
231
226
  initialState: initialState,
232
227
  columnVisibilityModel: columnVisibilityModelToImport,
@@ -237,7 +232,7 @@ export function useGridColumns(apiRef, props) {
237
232
  apiRef.current.publishEvent('columnsChange', columnsState.orderedFields);
238
233
  }
239
234
  return params;
240
- }, [apiRef, columnTypes]);
235
+ }, [apiRef]);
241
236
  var preferencePanelPreProcessing = React.useCallback(function (initialValue, value) {
242
237
  if (value === GridPreferencePanelsValue.columns) {
243
238
  var _props$slotProps;
@@ -276,13 +271,12 @@ export function useGridColumns(apiRef, props) {
276
271
  logger.info("Columns pipe processing have changed, regenerating the columns");
277
272
  var columnsState = createColumnsState({
278
273
  apiRef: apiRef,
279
- columnTypes: columnTypes,
280
274
  columnsToUpsert: [],
281
275
  initialState: undefined,
282
276
  keepOnlyColumnsToUpsert: false
283
277
  });
284
278
  setGridColumnsState(columnsState);
285
- }, [apiRef, logger, setGridColumnsState, columnTypes]);
279
+ }, [apiRef, logger, setGridColumnsState]);
286
280
  useGridRegisterPipeApplier(apiRef, 'hydrateColumns', hydrateColumns);
287
281
 
288
282
  /**
@@ -297,24 +291,29 @@ export function useGridColumns(apiRef, props) {
297
291
  return;
298
292
  }
299
293
  logger.info("GridColumns have changed, new length ".concat(props.columns.length));
300
- if (previousColumnsProp.current === props.columns && previousColumnTypesProp.current === columnTypes) {
294
+ if (previousColumnsProp.current === props.columns) {
301
295
  return;
302
296
  }
303
297
  var columnsState = createColumnsState({
304
298
  apiRef: apiRef,
305
- columnTypes: columnTypes,
306
299
  initialState: undefined,
307
300
  // If the user provides a model, we don't want to set it in the state here because it has it's dedicated `useEffect` which calls `setColumnVisibilityModel`
308
301
  columnsToUpsert: props.columns,
309
302
  keepOnlyColumnsToUpsert: true
310
303
  });
311
304
  previousColumnsProp.current = props.columns;
312
- previousColumnTypesProp.current = columnTypes;
313
305
  setGridColumnsState(columnsState);
314
- }, [logger, apiRef, setGridColumnsState, props.columns, columnTypes]);
306
+ }, [logger, apiRef, setGridColumnsState, props.columns]);
315
307
  React.useEffect(function () {
316
308
  if (props.columnVisibilityModel !== undefined) {
317
309
  apiRef.current.setColumnVisibilityModel(props.columnVisibilityModel);
318
310
  }
319
311
  }, [apiRef, logger, props.columnVisibilityModel]);
312
+ }
313
+ function mergeColumnsState(columnsState) {
314
+ return function (state) {
315
+ return _extends({}, state, {
316
+ columns: columnsState
317
+ });
318
+ };
320
319
  }
@@ -0,0 +1,3 @@
1
+ export var gridDimensionsSelector = function gridDimensionsSelector(state) {
2
+ return state.dimensions;
3
+ };
@@ -1 +1,2 @@
1
+ export * from './gridDimensionsSelectors';
1
2
  export {};