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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/CHANGELOG.md +508 -30
  2. package/DataGrid/DataGrid.js +6 -6
  3. package/DataGrid/useDataGridComponent.js +2 -1
  4. package/DataGrid/useDataGridProps.js +1 -0
  5. package/README.md +3 -3
  6. package/components/GridColumnHeaders.d.ts +3 -2
  7. package/components/GridColumnHeaders.js +3 -11
  8. package/components/GridDetailPanels.d.ts +5 -0
  9. package/components/GridDetailPanels.js +4 -0
  10. package/components/GridHeaders.d.ts +4 -0
  11. package/components/GridHeaders.js +53 -0
  12. package/components/GridPinnedRows.d.ts +7 -0
  13. package/components/GridPinnedRows.js +4 -0
  14. package/components/GridRow.d.ts +7 -4
  15. package/components/GridRow.js +161 -97
  16. package/components/GridScrollbarFillerCell.d.ts +7 -0
  17. package/components/GridScrollbarFillerCell.js +39 -0
  18. package/components/base/GridBody.d.ts +2 -13
  19. package/components/base/GridBody.js +2 -116
  20. package/components/base/GridOverlays.js +10 -21
  21. package/components/cell/GridActionsCellItem.d.ts +2 -2
  22. package/components/cell/GridCell.d.ts +15 -21
  23. package/components/cell/GridCell.js +67 -372
  24. package/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  25. package/components/columnHeaders/GridColumnHeaderItem.d.ts +2 -1
  26. package/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  27. package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -0
  28. package/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  29. package/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  30. package/components/columnsManagement/GridColumnsManagement.d.ts +36 -0
  31. package/components/columnsManagement/GridColumnsManagement.js +260 -0
  32. package/components/columnsManagement/index.d.ts +1 -0
  33. package/components/columnsManagement/index.js +1 -0
  34. package/components/columnsManagement/utils.d.ts +4 -0
  35. package/components/columnsManagement/utils.js +16 -0
  36. package/components/containers/GridRoot.js +18 -15
  37. package/components/containers/GridRootStyles.js +307 -204
  38. package/components/index.d.ts +1 -0
  39. package/components/index.js +1 -0
  40. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  41. package/components/panel/GridColumnsPanel.d.ts +0 -28
  42. package/components/panel/GridColumnsPanel.js +5 -213
  43. package/components/panel/GridPanel.js +3 -4
  44. package/components/panel/filterPanel/GridFilterForm.d.ts +6 -4
  45. package/components/panel/filterPanel/GridFilterForm.js +31 -14
  46. package/components/panel/filterPanel/GridFilterPanel.js +46 -20
  47. package/components/toolbar/GridToolbarColumnsButton.d.ts +13 -1
  48. package/components/toolbar/GridToolbarColumnsButton.js +40 -22
  49. package/components/toolbar/GridToolbarDensitySelector.d.ts +13 -1
  50. package/components/toolbar/GridToolbarDensitySelector.js +40 -22
  51. package/components/toolbar/GridToolbarExport.d.ts +10 -1
  52. package/components/toolbar/GridToolbarExport.js +6 -1
  53. package/components/toolbar/GridToolbarExportContainer.d.ts +15 -1
  54. package/components/toolbar/GridToolbarExportContainer.js +41 -23
  55. package/components/toolbar/GridToolbarFilterButton.d.ts +5 -4
  56. package/components/toolbar/GridToolbarFilterButton.js +6 -10
  57. package/components/virtualization/GridBottomContainer.d.ts +2 -0
  58. package/components/virtualization/GridBottomContainer.js +25 -0
  59. package/components/{containers → virtualization}/GridMainContainer.d.ts +2 -0
  60. package/components/virtualization/GridMainContainer.js +20 -0
  61. package/components/virtualization/GridTopContainer.d.ts +2 -0
  62. package/components/virtualization/GridTopContainer.js +35 -0
  63. package/components/virtualization/GridVirtualScrollbar.d.ts +7 -0
  64. package/components/virtualization/GridVirtualScrollbar.js +131 -0
  65. package/components/virtualization/GridVirtualScroller.d.ts +4 -4
  66. package/components/virtualization/GridVirtualScroller.js +69 -16
  67. package/components/virtualization/GridVirtualScrollerFiller.d.ts +4 -0
  68. package/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  69. package/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  70. package/constants/defaultGridSlotsComponents.js +8 -3
  71. package/constants/gridClasses.d.ts +72 -12
  72. package/constants/gridClasses.js +1 -1
  73. package/constants/localeTextConstants.js +4 -6
  74. package/hooks/core/gridCoreSelector.d.ts +6 -0
  75. package/hooks/core/gridCoreSelector.js +5 -0
  76. package/hooks/core/useGridApiInitialization.js +4 -0
  77. package/hooks/core/useGridInitialization.js +4 -0
  78. package/hooks/core/useGridRefs.d.ts +3 -0
  79. package/hooks/core/useGridRefs.js +13 -0
  80. package/hooks/core/useGridTheme.d.ts +3 -0
  81. package/hooks/core/useGridTheme.js +19 -0
  82. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -1
  83. package/hooks/features/columnGrouping/useGridColumnGrouping.js +7 -14
  84. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +13 -18
  85. package/hooks/features/columnHeaders/useGridColumnHeaders.js +68 -162
  86. package/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  87. package/hooks/features/columns/gridColumnsInterfaces.d.ts +17 -0
  88. package/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  89. package/hooks/features/columns/gridColumnsSelector.d.ts +14 -1
  90. package/hooks/features/columns/gridColumnsSelector.js +52 -0
  91. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -5
  92. package/hooks/features/columns/gridColumnsUtils.js +10 -12
  93. package/hooks/features/columns/index.d.ts +2 -2
  94. package/hooks/features/columns/index.js +2 -1
  95. package/hooks/features/columns/useGridColumnSpanning.js +62 -61
  96. package/hooks/features/columns/useGridColumns.js +20 -23
  97. package/hooks/features/dimensions/gridDimensionsApi.d.ts +60 -11
  98. package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +2 -0
  99. package/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  100. package/hooks/features/dimensions/index.d.ts +2 -0
  101. package/hooks/features/dimensions/index.js +1 -0
  102. package/hooks/features/dimensions/useGridDimensions.d.ts +7 -1
  103. package/hooks/features/dimensions/useGridDimensions.js +216 -148
  104. package/hooks/features/export/serializers/csvSerializer.js +2 -2
  105. package/hooks/features/filter/useGridFilter.js +3 -3
  106. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -2
  107. package/hooks/features/focus/gridFocusStateSelector.js +2 -6
  108. package/hooks/features/focus/useGridFocus.js +3 -3
  109. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  110. package/hooks/features/pagination/useGridPagination.js +3 -5
  111. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -0
  112. package/hooks/features/rows/gridRowsSelector.d.ts +2 -2
  113. package/hooks/features/rows/gridRowsSelector.js +5 -5
  114. package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
  115. package/hooks/features/rows/gridRowsUtils.js +8 -5
  116. package/hooks/features/rows/useGridRowsMeta.js +7 -4
  117. package/hooks/features/scroll/useGridScroll.js +8 -10
  118. package/hooks/features/sorting/gridSortingUtils.js +1 -1
  119. package/hooks/features/sorting/useGridSorting.d.ts +1 -1
  120. package/hooks/features/sorting/useGridSorting.js +15 -10
  121. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +14 -0
  122. package/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  123. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +27 -42
  124. package/hooks/features/virtualization/useGridVirtualScroller.js +441 -438
  125. package/hooks/features/virtualization/useGridVirtualization.d.ts +8 -0
  126. package/hooks/features/virtualization/useGridVirtualization.js +8 -1
  127. package/hooks/utils/index.d.ts +3 -0
  128. package/hooks/utils/index.js +4 -1
  129. package/hooks/utils/useGridAriaAttributes.js +1 -2
  130. package/hooks/utils/useGridNativeEventListener.js +4 -9
  131. package/hooks/utils/useResizeObserver.d.ts +2 -0
  132. package/hooks/utils/useResizeObserver.js +36 -0
  133. package/hooks/utils/useRunOnce.d.ts +5 -0
  134. package/hooks/utils/useRunOnce.js +18 -0
  135. package/index.js +1 -1
  136. package/internals/index.d.ts +12 -9
  137. package/internals/index.js +9 -7
  138. package/legacy/DataGrid/DataGrid.js +6 -6
  139. package/legacy/DataGrid/useDataGridComponent.js +2 -1
  140. package/legacy/DataGrid/useDataGridProps.js +1 -0
  141. package/legacy/components/GridColumnHeaders.js +3 -11
  142. package/legacy/components/GridDetailPanels.js +4 -0
  143. package/legacy/components/GridHeaders.js +53 -0
  144. package/legacy/components/GridPinnedRows.js +4 -0
  145. package/legacy/components/GridRow.js +159 -98
  146. package/legacy/components/GridScrollbarFillerCell.js +36 -0
  147. package/legacy/components/base/GridBody.js +2 -114
  148. package/legacy/components/base/GridOverlays.js +10 -25
  149. package/legacy/components/cell/GridCell.js +69 -377
  150. package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  151. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  152. package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  153. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  154. package/legacy/components/columnsManagement/GridColumnsManagement.js +300 -0
  155. package/legacy/components/columnsManagement/index.js +1 -0
  156. package/legacy/components/columnsManagement/utils.js +22 -0
  157. package/legacy/components/containers/GridRoot.js +18 -15
  158. package/legacy/components/containers/GridRootStyles.js +215 -137
  159. package/legacy/components/index.js +1 -0
  160. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  161. package/legacy/components/panel/GridColumnsPanel.js +5 -233
  162. package/legacy/components/panel/GridPanel.js +3 -4
  163. package/legacy/components/panel/filterPanel/GridFilterForm.js +30 -13
  164. package/legacy/components/panel/filterPanel/GridFilterPanel.js +49 -20
  165. package/legacy/components/toolbar/GridToolbarColumnsButton.js +40 -21
  166. package/legacy/components/toolbar/GridToolbarDensitySelector.js +40 -21
  167. package/legacy/components/toolbar/GridToolbarExport.js +6 -1
  168. package/legacy/components/toolbar/GridToolbarExportContainer.js +40 -21
  169. package/legacy/components/toolbar/GridToolbarFilterButton.js +6 -10
  170. package/legacy/components/virtualization/GridBottomContainer.js +25 -0
  171. package/legacy/components/virtualization/GridMainContainer.js +20 -0
  172. package/legacy/components/virtualization/GridTopContainer.js +35 -0
  173. package/legacy/components/virtualization/GridVirtualScrollbar.js +129 -0
  174. package/legacy/components/virtualization/GridVirtualScroller.js +67 -16
  175. package/legacy/components/virtualization/GridVirtualScrollerFiller.js +70 -0
  176. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  177. package/legacy/constants/defaultGridSlotsComponents.js +8 -3
  178. package/legacy/constants/gridClasses.js +1 -1
  179. package/legacy/constants/localeTextConstants.js +4 -6
  180. package/legacy/hooks/core/gridCoreSelector.js +7 -0
  181. package/legacy/hooks/core/useGridApiInitialization.js +4 -0
  182. package/legacy/hooks/core/useGridInitialization.js +4 -0
  183. package/legacy/hooks/core/useGridRefs.js +13 -0
  184. package/legacy/hooks/core/useGridTheme.js +21 -0
  185. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +7 -14
  186. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +69 -181
  187. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  188. package/legacy/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  189. package/legacy/hooks/features/columns/gridColumnsSelector.js +62 -0
  190. package/legacy/hooks/features/columns/gridColumnsUtils.js +10 -16
  191. package/legacy/hooks/features/columns/index.js +2 -1
  192. package/legacy/hooks/features/columns/useGridColumnSpanning.js +60 -59
  193. package/legacy/hooks/features/columns/useGridColumns.js +22 -23
  194. package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +3 -0
  195. package/legacy/hooks/features/dimensions/index.js +1 -0
  196. package/legacy/hooks/features/dimensions/useGridDimensions.js +226 -151
  197. package/legacy/hooks/features/export/serializers/csvSerializer.js +2 -2
  198. package/legacy/hooks/features/filter/useGridFilter.js +3 -3
  199. package/legacy/hooks/features/focus/gridFocusStateSelector.js +2 -6
  200. package/legacy/hooks/features/focus/useGridFocus.js +3 -3
  201. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  202. package/legacy/hooks/features/pagination/useGridPagination.js +3 -5
  203. package/legacy/hooks/features/rows/gridRowsSelector.js +5 -5
  204. package/legacy/hooks/features/rows/gridRowsUtils.js +8 -5
  205. package/legacy/hooks/features/rows/useGridRowsMeta.js +7 -4
  206. package/legacy/hooks/features/scroll/useGridScroll.js +8 -10
  207. package/legacy/hooks/features/sorting/gridSortingUtils.js +1 -1
  208. package/legacy/hooks/features/sorting/useGridSorting.js +15 -10
  209. package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +29 -1
  210. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +490 -483
  211. package/legacy/hooks/features/virtualization/useGridVirtualization.js +8 -1
  212. package/legacy/hooks/utils/index.js +4 -1
  213. package/legacy/hooks/utils/useGridAriaAttributes.js +1 -2
  214. package/legacy/hooks/utils/useGridNativeEventListener.js +4 -9
  215. package/legacy/hooks/utils/useResizeObserver.js +36 -0
  216. package/legacy/hooks/utils/useRunOnce.js +18 -0
  217. package/legacy/index.js +1 -1
  218. package/legacy/internals/index.js +9 -7
  219. package/legacy/locales/arSD.js +5 -6
  220. package/legacy/locales/beBY.js +5 -6
  221. package/legacy/locales/bgBG.js +5 -6
  222. package/legacy/locales/csCZ.js +5 -6
  223. package/legacy/locales/daDK.js +5 -6
  224. package/legacy/locales/deDE.js +5 -6
  225. package/legacy/locales/elGR.js +5 -6
  226. package/legacy/locales/esES.js +5 -6
  227. package/legacy/locales/faIR.js +5 -6
  228. package/legacy/locales/fiFI.js +5 -6
  229. package/legacy/locales/frFR.js +5 -6
  230. package/legacy/locales/heIL.js +5 -6
  231. package/legacy/locales/hrHR.js +160 -0
  232. package/legacy/locales/huHU.js +5 -6
  233. package/legacy/locales/index.js +4 -1
  234. package/legacy/locales/itIT.js +5 -6
  235. package/legacy/locales/jaJP.js +5 -6
  236. package/legacy/locales/koKR.js +5 -6
  237. package/legacy/locales/nbNO.js +5 -6
  238. package/legacy/locales/nlNL.js +5 -6
  239. package/legacy/locales/plPL.js +5 -6
  240. package/legacy/locales/ptBR.js +5 -6
  241. package/legacy/locales/ptPT.js +160 -0
  242. package/legacy/locales/roRO.js +5 -6
  243. package/legacy/locales/ruRU.js +5 -6
  244. package/legacy/locales/skSK.js +5 -6
  245. package/legacy/locales/svSE.js +5 -6
  246. package/legacy/locales/trTR.js +5 -6
  247. package/legacy/locales/ukUA.js +5 -6
  248. package/legacy/locales/urPK.js +5 -6
  249. package/legacy/locales/viVN.js +5 -6
  250. package/legacy/locales/zhCN.js +5 -6
  251. package/legacy/locales/zhHK.js +160 -0
  252. package/legacy/locales/zhTW.js +5 -6
  253. package/legacy/models/index.js +0 -1
  254. package/legacy/models/params/index.js +1 -2
  255. package/legacy/utils/utils.js +10 -1
  256. package/locales/arSD.js +5 -6
  257. package/locales/beBY.js +5 -6
  258. package/locales/bgBG.js +5 -6
  259. package/locales/csCZ.js +5 -6
  260. package/locales/daDK.js +5 -6
  261. package/locales/deDE.js +5 -6
  262. package/locales/elGR.js +5 -6
  263. package/locales/esES.js +5 -6
  264. package/locales/faIR.js +5 -6
  265. package/locales/fiFI.js +5 -6
  266. package/locales/frFR.js +5 -6
  267. package/locales/heIL.js +5 -6
  268. package/locales/hrHR.d.ts +1 -0
  269. package/locales/hrHR.js +148 -0
  270. package/locales/huHU.js +5 -6
  271. package/locales/index.d.ts +3 -0
  272. package/locales/index.js +4 -1
  273. package/locales/itIT.js +5 -6
  274. package/locales/jaJP.js +5 -6
  275. package/locales/koKR.js +5 -6
  276. package/locales/nbNO.js +5 -6
  277. package/locales/nlNL.js +5 -6
  278. package/locales/plPL.js +5 -6
  279. package/locales/ptBR.js +5 -6
  280. package/locales/ptPT.d.ts +1 -0
  281. package/locales/ptPT.js +148 -0
  282. package/locales/roRO.js +5 -6
  283. package/locales/ruRU.js +5 -6
  284. package/locales/skSK.js +5 -6
  285. package/locales/svSE.js +5 -6
  286. package/locales/trTR.js +5 -6
  287. package/locales/ukUA.js +5 -6
  288. package/locales/urPK.js +5 -6
  289. package/locales/viVN.js +5 -6
  290. package/locales/zhCN.js +5 -6
  291. package/locales/zhHK.d.ts +1 -0
  292. package/locales/zhHK.js +148 -0
  293. package/locales/zhTW.js +5 -6
  294. package/models/api/gridColumnGroupingApi.d.ts +2 -2
  295. package/models/api/gridCoreApi.d.ts +16 -16
  296. package/models/api/gridLocaleTextApi.d.ts +3 -5
  297. package/models/api/gridRowsMetaApi.d.ts +1 -1
  298. package/models/api/gridVirtualizationApi.d.ts +2 -3
  299. package/models/colDef/gridColType.d.ts +11 -2
  300. package/models/events/gridEventLookup.d.ts +3 -3
  301. package/models/gridFilterModel.d.ts +1 -1
  302. package/models/gridSlotsComponent.d.ts +21 -2
  303. package/models/gridSlotsComponentsProps.d.ts +4 -0
  304. package/models/gridStateCommunity.d.ts +5 -1
  305. package/models/index.d.ts +0 -1
  306. package/models/index.js +0 -1
  307. package/models/params/index.d.ts +0 -1
  308. package/models/params/index.js +1 -2
  309. package/models/props/DataGridProps.d.ts +6 -11
  310. package/modern/DataGrid/DataGrid.js +6 -6
  311. package/modern/DataGrid/useDataGridComponent.js +2 -1
  312. package/modern/DataGrid/useDataGridProps.js +1 -0
  313. package/modern/components/GridColumnHeaders.js +3 -11
  314. package/modern/components/GridDetailPanels.js +4 -0
  315. package/modern/components/GridHeaders.js +53 -0
  316. package/modern/components/GridPinnedRows.js +4 -0
  317. package/modern/components/GridRow.js +159 -96
  318. package/modern/components/GridScrollbarFillerCell.js +39 -0
  319. package/modern/components/base/GridBody.js +2 -116
  320. package/modern/components/base/GridOverlays.js +10 -16
  321. package/modern/components/cell/GridCell.js +65 -369
  322. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  323. package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  324. package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  325. package/modern/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  326. package/modern/components/columnsManagement/GridColumnsManagement.js +256 -0
  327. package/modern/components/columnsManagement/index.js +1 -0
  328. package/modern/components/columnsManagement/utils.js +16 -0
  329. package/modern/components/containers/GridRoot.js +18 -14
  330. package/modern/components/containers/GridRootStyles.js +307 -204
  331. package/modern/components/index.js +1 -0
  332. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  333. package/modern/components/panel/GridColumnsPanel.js +4 -209
  334. package/modern/components/panel/GridPanel.js +3 -4
  335. package/modern/components/panel/filterPanel/GridFilterForm.js +30 -13
  336. package/modern/components/panel/filterPanel/GridFilterPanel.js +46 -20
  337. package/modern/components/toolbar/GridToolbarColumnsButton.js +38 -21
  338. package/modern/components/toolbar/GridToolbarDensitySelector.js +38 -21
  339. package/modern/components/toolbar/GridToolbarExport.js +6 -1
  340. package/modern/components/toolbar/GridToolbarExportContainer.js +39 -22
  341. package/modern/components/toolbar/GridToolbarFilterButton.js +6 -10
  342. package/modern/components/virtualization/GridBottomContainer.js +25 -0
  343. package/modern/components/virtualization/GridMainContainer.js +20 -0
  344. package/modern/components/virtualization/GridTopContainer.js +35 -0
  345. package/modern/components/virtualization/GridVirtualScrollbar.js +131 -0
  346. package/modern/components/virtualization/GridVirtualScroller.js +69 -16
  347. package/modern/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  348. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  349. package/modern/constants/defaultGridSlotsComponents.js +8 -3
  350. package/modern/constants/gridClasses.js +1 -1
  351. package/modern/constants/localeTextConstants.js +4 -6
  352. package/modern/hooks/core/gridCoreSelector.js +5 -0
  353. package/modern/hooks/core/useGridApiInitialization.js +3 -0
  354. package/modern/hooks/core/useGridInitialization.js +4 -0
  355. package/modern/hooks/core/useGridRefs.js +13 -0
  356. package/modern/hooks/core/useGridTheme.js +19 -0
  357. package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +5 -12
  358. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +67 -160
  359. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  360. package/modern/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  361. package/modern/hooks/features/columns/gridColumnsSelector.js +51 -0
  362. package/modern/hooks/features/columns/gridColumnsUtils.js +10 -12
  363. package/modern/hooks/features/columns/index.js +2 -1
  364. package/modern/hooks/features/columns/useGridColumnSpanning.js +62 -61
  365. package/modern/hooks/features/columns/useGridColumns.js +19 -21
  366. package/modern/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  367. package/modern/hooks/features/dimensions/index.js +1 -0
  368. package/modern/hooks/features/dimensions/useGridDimensions.js +214 -146
  369. package/modern/hooks/features/export/serializers/csvSerializer.js +2 -2
  370. package/modern/hooks/features/filter/useGridFilter.js +3 -3
  371. package/modern/hooks/features/focus/gridFocusStateSelector.js +2 -6
  372. package/modern/hooks/features/focus/useGridFocus.js +3 -3
  373. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  374. package/modern/hooks/features/pagination/useGridPagination.js +3 -5
  375. package/modern/hooks/features/rows/gridRowsSelector.js +2 -2
  376. package/modern/hooks/features/rows/gridRowsUtils.js +8 -5
  377. package/modern/hooks/features/rows/useGridRowsMeta.js +7 -4
  378. package/modern/hooks/features/scroll/useGridScroll.js +8 -9
  379. package/modern/hooks/features/sorting/gridSortingUtils.js +1 -1
  380. package/modern/hooks/features/sorting/useGridSorting.js +15 -10
  381. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  382. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +435 -432
  383. package/modern/hooks/features/virtualization/useGridVirtualization.js +8 -1
  384. package/modern/hooks/utils/index.js +4 -1
  385. package/modern/hooks/utils/useGridAriaAttributes.js +1 -1
  386. package/modern/hooks/utils/useGridNativeEventListener.js +3 -9
  387. package/modern/hooks/utils/useResizeObserver.js +36 -0
  388. package/modern/hooks/utils/useRunOnce.js +18 -0
  389. package/modern/index.js +1 -1
  390. package/modern/internals/index.js +9 -7
  391. package/modern/locales/arSD.js +5 -6
  392. package/modern/locales/beBY.js +5 -6
  393. package/modern/locales/bgBG.js +5 -6
  394. package/modern/locales/csCZ.js +5 -6
  395. package/modern/locales/daDK.js +5 -6
  396. package/modern/locales/deDE.js +5 -6
  397. package/modern/locales/elGR.js +5 -6
  398. package/modern/locales/esES.js +5 -6
  399. package/modern/locales/faIR.js +5 -6
  400. package/modern/locales/fiFI.js +5 -6
  401. package/modern/locales/frFR.js +5 -6
  402. package/modern/locales/heIL.js +5 -6
  403. package/modern/locales/hrHR.js +148 -0
  404. package/modern/locales/huHU.js +5 -6
  405. package/modern/locales/index.js +4 -1
  406. package/modern/locales/itIT.js +5 -6
  407. package/modern/locales/jaJP.js +5 -6
  408. package/modern/locales/koKR.js +5 -6
  409. package/modern/locales/nbNO.js +5 -6
  410. package/modern/locales/nlNL.js +5 -6
  411. package/modern/locales/plPL.js +5 -6
  412. package/modern/locales/ptBR.js +5 -6
  413. package/modern/locales/ptPT.js +148 -0
  414. package/modern/locales/roRO.js +5 -6
  415. package/modern/locales/ruRU.js +5 -6
  416. package/modern/locales/skSK.js +5 -6
  417. package/modern/locales/svSE.js +5 -6
  418. package/modern/locales/trTR.js +5 -6
  419. package/modern/locales/ukUA.js +5 -6
  420. package/modern/locales/urPK.js +5 -6
  421. package/modern/locales/viVN.js +5 -6
  422. package/modern/locales/zhCN.js +5 -6
  423. package/modern/locales/zhHK.js +148 -0
  424. package/modern/locales/zhTW.js +5 -6
  425. package/modern/models/index.js +0 -1
  426. package/modern/models/params/index.js +1 -2
  427. package/modern/utils/utils.js +10 -1
  428. package/node/DataGrid/DataGrid.js +6 -6
  429. package/node/DataGrid/useDataGridComponent.js +1 -0
  430. package/node/DataGrid/useDataGridProps.js +1 -0
  431. package/node/components/GridColumnHeaders.js +3 -11
  432. package/node/components/GridDetailPanels.js +10 -0
  433. package/node/components/GridHeaders.js +60 -0
  434. package/node/components/GridPinnedRows.js +10 -0
  435. package/node/components/GridRow.js +157 -94
  436. package/node/components/GridScrollbarFillerCell.js +47 -0
  437. package/node/components/base/GridBody.js +7 -118
  438. package/node/components/base/GridOverlays.js +9 -15
  439. package/node/components/cell/GridCell.js +66 -369
  440. package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  441. package/node/components/columnHeaders/GridColumnHeaderItem.js +8 -4
  442. package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  443. package/node/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  444. package/node/components/columnsManagement/GridColumnsManagement.js +264 -0
  445. package/node/components/columnsManagement/index.js +16 -0
  446. package/node/components/columnsManagement/utils.js +24 -0
  447. package/node/components/containers/GridRoot.js +17 -14
  448. package/node/components/containers/GridRootStyles.js +175 -72
  449. package/node/components/index.js +11 -0
  450. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  451. package/node/components/panel/GridColumnsPanel.js +4 -208
  452. package/node/components/panel/GridPanel.js +3 -4
  453. package/node/components/panel/filterPanel/GridFilterForm.js +29 -12
  454. package/node/components/panel/filterPanel/GridFilterPanel.js +45 -19
  455. package/node/components/toolbar/GridToolbarColumnsButton.js +36 -20
  456. package/node/components/toolbar/GridToolbarDensitySelector.js +36 -20
  457. package/node/components/toolbar/GridToolbarExport.js +6 -1
  458. package/node/components/toolbar/GridToolbarExportContainer.js +37 -21
  459. package/node/components/toolbar/GridToolbarFilterButton.js +6 -10
  460. package/node/components/virtualization/GridBottomContainer.js +34 -0
  461. package/node/components/{containers → virtualization}/GridMainContainer.js +7 -29
  462. package/node/components/virtualization/GridTopContainer.js +44 -0
  463. package/node/components/virtualization/GridVirtualScrollbar.js +138 -0
  464. package/node/components/virtualization/GridVirtualScroller.js +69 -17
  465. package/node/components/virtualization/GridVirtualScrollerFiller.js +77 -0
  466. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  467. package/node/constants/defaultGridSlotsComponents.js +6 -1
  468. package/node/constants/gridClasses.js +1 -1
  469. package/node/constants/localeTextConstants.js +4 -6
  470. package/node/hooks/core/gridCoreSelector.js +12 -0
  471. package/node/hooks/core/useGridApiInitialization.js +3 -0
  472. package/node/hooks/core/useGridInitialization.js +4 -0
  473. package/node/hooks/core/useGridRefs.js +22 -0
  474. package/node/hooks/core/useGridTheme.js +29 -0
  475. package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +5 -12
  476. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +65 -159
  477. package/node/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  478. package/node/hooks/features/columns/gridColumnsInterfaces.js +11 -1
  479. package/node/hooks/features/columns/gridColumnsSelector.js +52 -1
  480. package/node/hooks/features/columns/gridColumnsUtils.js +10 -13
  481. package/node/hooks/features/columns/index.js +22 -61
  482. package/node/hooks/features/columns/useGridColumnSpanning.js +62 -61
  483. package/node/hooks/features/columns/useGridColumns.js +20 -22
  484. package/node/hooks/features/dimensions/gridDimensionsSelectors.js +8 -0
  485. package/node/hooks/features/dimensions/index.js +11 -0
  486. package/node/hooks/features/dimensions/useGridDimensions.js +215 -144
  487. package/node/hooks/features/export/serializers/csvSerializer.js +2 -2
  488. package/node/hooks/features/filter/useGridFilter.js +2 -2
  489. package/node/hooks/features/focus/gridFocusStateSelector.js +3 -7
  490. package/node/hooks/features/focus/useGridFocus.js +2 -2
  491. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -15
  492. package/node/hooks/features/pagination/useGridPagination.js +3 -5
  493. package/node/hooks/features/rows/gridRowsSelector.js +2 -2
  494. package/node/hooks/features/rows/gridRowsUtils.js +8 -5
  495. package/node/hooks/features/rows/useGridRowsMeta.js +5 -3
  496. package/node/hooks/features/scroll/useGridScroll.js +8 -9
  497. package/node/hooks/features/sorting/gridSortingUtils.js +1 -1
  498. package/node/hooks/features/sorting/useGridSorting.js +15 -10
  499. package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  500. package/node/hooks/features/virtualization/useGridVirtualScroller.js +434 -431
  501. package/node/hooks/features/virtualization/useGridVirtualization.js +9 -1
  502. package/node/hooks/utils/index.js +36 -0
  503. package/node/hooks/utils/useGridAriaAttributes.js +1 -1
  504. package/node/hooks/utils/useGridNativeEventListener.js +3 -9
  505. package/node/hooks/utils/useResizeObserver.js +44 -0
  506. package/node/hooks/utils/useRunOnce.js +27 -0
  507. package/node/index.js +1 -1
  508. package/node/internals/index.js +86 -71
  509. package/node/locales/arSD.js +5 -6
  510. package/node/locales/beBY.js +5 -6
  511. package/node/locales/bgBG.js +5 -6
  512. package/node/locales/csCZ.js +5 -6
  513. package/node/locales/daDK.js +5 -6
  514. package/node/locales/deDE.js +5 -6
  515. package/node/locales/elGR.js +5 -6
  516. package/node/locales/esES.js +5 -6
  517. package/node/locales/faIR.js +5 -6
  518. package/node/locales/fiFI.js +5 -6
  519. package/node/locales/frFR.js +5 -6
  520. package/node/locales/heIL.js +5 -6
  521. package/node/locales/hrHR.js +154 -0
  522. package/node/locales/huHU.js +5 -6
  523. package/node/locales/index.js +33 -0
  524. package/node/locales/itIT.js +5 -6
  525. package/node/locales/jaJP.js +5 -6
  526. package/node/locales/koKR.js +5 -6
  527. package/node/locales/nbNO.js +5 -6
  528. package/node/locales/nlNL.js +5 -6
  529. package/node/locales/plPL.js +5 -6
  530. package/node/locales/ptBR.js +5 -6
  531. package/node/locales/ptPT.js +154 -0
  532. package/node/locales/roRO.js +5 -6
  533. package/node/locales/ruRU.js +5 -6
  534. package/node/locales/skSK.js +5 -6
  535. package/node/locales/svSE.js +5 -6
  536. package/node/locales/trTR.js +5 -6
  537. package/node/locales/ukUA.js +5 -6
  538. package/node/locales/urPK.js +5 -6
  539. package/node/locales/viVN.js +5 -6
  540. package/node/locales/zhCN.js +5 -6
  541. package/node/locales/zhHK.js +154 -0
  542. package/node/locales/zhTW.js +5 -6
  543. package/node/models/index.js +0 -11
  544. package/node/models/params/index.js +0 -11
  545. package/node/utils/utils.js +11 -1
  546. package/package.json +6 -6
  547. package/utils/utils.d.ts +6 -0
  548. package/utils/utils.js +10 -1
  549. package/components/DataGridVirtualScroller.d.ts +0 -3
  550. package/components/DataGridVirtualScroller.js +0 -35
  551. package/components/containers/GridMainContainer.js +0 -43
  552. package/legacy/components/DataGridVirtualScroller.js +0 -32
  553. package/legacy/components/containers/GridMainContainer.js +0 -45
  554. package/legacy/models/gridRootContainerRef.js +0 -1
  555. package/legacy/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  556. package/models/gridRootContainerRef.d.ts +0 -5
  557. package/models/gridRootContainerRef.js +0 -1
  558. package/models/params/gridRenderedRowsIntervalChangeParams.d.ts +0 -10
  559. package/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  560. package/modern/components/DataGridVirtualScroller.js +0 -35
  561. package/modern/components/containers/GridMainContainer.js +0 -42
  562. package/modern/models/gridRootContainerRef.js +0 -1
  563. package/modern/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  564. package/node/components/DataGridVirtualScroller.js +0 -42
  565. package/node/models/gridRootContainerRef.js +0 -5
  566. package/node/models/params/gridRenderedRowsIntervalChangeParams.js +0 -5
@@ -1,8 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
- var _excluded = ["onClick"];
5
3
  import * as React from 'react';
4
+ import PropTypes from 'prop-types';
6
5
  import { unstable_useId as useId, unstable_useForkRef as useForkRef } from '@mui/utils';
7
6
  import MenuList from '@mui/material/MenuList';
8
7
  import MenuItem from '@mui/material/MenuItem';
@@ -16,10 +15,12 @@ import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
16
15
  import { gridClasses } from '../../constants/gridClasses';
17
16
  import { jsx as _jsx } from "react/jsx-runtime";
18
17
  import { jsxs as _jsxs } from "react/jsx-runtime";
19
- export var GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridToolbarDensitySelector(props, ref) {
20
- var _rootProps$slotProps;
21
- var onClick = props.onClick,
22
- other = _objectWithoutProperties(props, _excluded);
18
+ var GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridToolbarDensitySelector(props, ref) {
19
+ var _rootProps$slotProps, _rootProps$slotProps2;
20
+ var _props$slotProps = props.slotProps,
21
+ slotProps = _props$slotProps === void 0 ? {} : _props$slotProps;
22
+ var buttonProps = slotProps.button || {};
23
+ var tooltipProps = slotProps.tooltip || {};
23
24
  var apiRef = useGridApiContext();
24
25
  var rootProps = useGridRootProps();
25
26
  var densityValue = useGridSelector(apiRef, gridDensityValueSelector);
@@ -55,10 +56,11 @@ export var GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function G
55
56
  }
56
57
  }, [densityValue, rootProps]);
57
58
  var handleDensitySelectorOpen = function handleDensitySelectorOpen(event) {
59
+ var _buttonProps$onClick;
58
60
  setOpen(function (prevOpen) {
59
61
  return !prevOpen;
60
62
  });
61
- onClick == null || onClick(event);
63
+ (_buttonProps$onClick = buttonProps.onClick) == null || _buttonProps$onClick.call(buttonProps, event);
62
64
  };
63
65
  var handleDensitySelectorClose = function handleDensitySelectorClose() {
64
66
  setOpen(false);
@@ -92,19 +94,24 @@ export var GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function G
92
94
  }, index);
93
95
  });
94
96
  return /*#__PURE__*/_jsxs(React.Fragment, {
95
- children: [/*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
96
- ref: handleRef,
97
- size: "small",
98
- startIcon: startIcon,
99
- "aria-label": apiRef.current.getLocaleText('toolbarDensityLabel'),
100
- "aria-haspopup": "menu",
101
- "aria-expanded": open,
102
- "aria-controls": open ? densityMenuId : undefined,
103
- id: densityButtonId
104
- }, other, {
105
- onClick: handleDensitySelectorOpen
106
- }, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseButton, {
107
- children: apiRef.current.getLocaleText('toolbarDensity')
97
+ children: [/*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({
98
+ title: apiRef.current.getLocaleText('toolbarDensityLabel'),
99
+ enterDelay: 1000
100
+ }, tooltipProps, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseTooltip, {
101
+ children: /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
102
+ ref: handleRef,
103
+ size: "small",
104
+ startIcon: startIcon,
105
+ "aria-label": apiRef.current.getLocaleText('toolbarDensityLabel'),
106
+ "aria-haspopup": "menu",
107
+ "aria-expanded": open,
108
+ "aria-controls": open ? densityMenuId : undefined,
109
+ id: densityButtonId
110
+ }, buttonProps, {
111
+ onClick: handleDensitySelectorOpen
112
+ }, (_rootProps$slotProps2 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps2.baseButton, {
113
+ children: apiRef.current.getLocaleText('toolbarDensity')
114
+ }))
108
115
  })), /*#__PURE__*/_jsx(GridMenu, {
109
116
  open: open,
110
117
  target: buttonRef.current,
@@ -120,4 +127,16 @@ export var GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function G
120
127
  })
121
128
  })]
122
129
  });
123
- });
130
+ });
131
+ process.env.NODE_ENV !== "production" ? GridToolbarDensitySelector.propTypes = {
132
+ // ----------------------------- Warning --------------------------------
133
+ // | These PropTypes are generated from the TypeScript type definitions |
134
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
135
+ // ----------------------------------------------------------------------
136
+ /**
137
+ * The props used for each slot inside.
138
+ * @default {}
139
+ */
140
+ slotProps: PropTypes.object
141
+ } : void 0;
142
+ export { GridToolbarDensitySelector };
@@ -70,6 +70,11 @@ process.env.NODE_ENV !== "production" ? GridToolbarExport.propTypes = {
70
70
  // | To update them edit the TypeScript types and run "yarn proptypes" |
71
71
  // ----------------------------------------------------------------------
72
72
  csvOptions: PropTypes.object,
73
- printOptions: PropTypes.object
73
+ printOptions: PropTypes.object,
74
+ /**
75
+ * The props used for each slot inside.
76
+ * @default {}
77
+ */
78
+ slotProps: PropTypes.object
74
79
  } : void 0;
75
80
  export { GridToolbarExport };
@@ -1,8 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
- var _excluded = ["children", "onClick"];
5
3
  import * as React from 'react';
4
+ import PropTypes from 'prop-types';
6
5
  import { unstable_useId as useId, unstable_useForkRef as useForkRef } from '@mui/utils';
7
6
  import MenuList from '@mui/material/MenuList';
8
7
  import { isHideMenuKey, isTabKey } from '../../utils/keyboardUtils';
@@ -12,11 +11,13 @@ import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
12
11
  import { gridClasses } from '../../constants/gridClasses';
13
12
  import { jsx as _jsx } from "react/jsx-runtime";
14
13
  import { jsxs as _jsxs } from "react/jsx-runtime";
15
- export var GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function GridToolbarExportContainer(props, ref) {
16
- var _rootProps$slotProps;
14
+ var GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function GridToolbarExportContainer(props, ref) {
15
+ var _rootProps$slotProps, _rootProps$slotProps2;
17
16
  var children = props.children,
18
- onClick = props.onClick,
19
- other = _objectWithoutProperties(props, _excluded);
17
+ _props$slotProps = props.slotProps,
18
+ slotProps = _props$slotProps === void 0 ? {} : _props$slotProps;
19
+ var buttonProps = slotProps.button || {};
20
+ var tooltipProps = slotProps.tooltip || {};
20
21
  var apiRef = useGridApiContext();
21
22
  var rootProps = useGridRootProps();
22
23
  var exportButtonId = useId();
@@ -28,10 +29,11 @@ export var GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function G
28
29
  var buttonRef = React.useRef(null);
29
30
  var handleRef = useForkRef(ref, buttonRef);
30
31
  var handleMenuOpen = function handleMenuOpen(event) {
32
+ var _buttonProps$onClick;
31
33
  setOpen(function (prevOpen) {
32
34
  return !prevOpen;
33
35
  });
34
- onClick == null || onClick(event);
36
+ (_buttonProps$onClick = buttonProps.onClick) == null || _buttonProps$onClick.call(buttonProps, event);
35
37
  };
36
38
  var handleMenuClose = function handleMenuClose() {
37
39
  return setOpen(false);
@@ -48,19 +50,24 @@ export var GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function G
48
50
  return null;
49
51
  }
50
52
  return /*#__PURE__*/_jsxs(React.Fragment, {
51
- children: [/*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
52
- ref: handleRef,
53
- size: "small",
54
- startIcon: /*#__PURE__*/_jsx(rootProps.slots.exportIcon, {}),
55
- "aria-expanded": open,
56
- "aria-label": apiRef.current.getLocaleText('toolbarExportLabel'),
57
- "aria-haspopup": "menu",
58
- "aria-controls": open ? exportMenuId : undefined,
59
- id: exportButtonId
60
- }, other, {
61
- onClick: handleMenuOpen
62
- }, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseButton, {
63
- children: apiRef.current.getLocaleText('toolbarExport')
53
+ children: [/*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({
54
+ title: apiRef.current.getLocaleText('toolbarExportLabel'),
55
+ enterDelay: 1000
56
+ }, tooltipProps, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseTooltip, {
57
+ children: /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
58
+ ref: handleRef,
59
+ size: "small",
60
+ startIcon: /*#__PURE__*/_jsx(rootProps.slots.exportIcon, {}),
61
+ "aria-expanded": open,
62
+ "aria-label": apiRef.current.getLocaleText('toolbarExportLabel'),
63
+ "aria-haspopup": "menu",
64
+ "aria-controls": open ? exportMenuId : undefined,
65
+ id: exportButtonId
66
+ }, buttonProps, {
67
+ onClick: handleMenuOpen
68
+ }, (_rootProps$slotProps2 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps2.baseButton, {
69
+ children: apiRef.current.getLocaleText('toolbarExport')
70
+ }))
64
71
  })), /*#__PURE__*/_jsx(GridMenu, {
65
72
  open: open,
66
73
  target: buttonRef.current,
@@ -83,4 +90,16 @@ export var GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function G
83
90
  })
84
91
  })]
85
92
  });
86
- });
93
+ });
94
+ process.env.NODE_ENV !== "production" ? GridToolbarExportContainer.propTypes = {
95
+ // ----------------------------- Warning --------------------------------
96
+ // | These PropTypes are generated from the TypeScript type definitions |
97
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
98
+ // ----------------------------------------------------------------------
99
+ /**
100
+ * The props used for each slot inside.
101
+ * @default {}
102
+ */
103
+ slotProps: PropTypes.object
104
+ } : void 0;
105
+ export { GridToolbarExportContainer };
@@ -1,6 +1,4 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["componentsProps"];
4
2
  import * as React from 'react';
5
3
  import PropTypes from 'prop-types';
6
4
  import { styled } from '@mui/material/styles';
@@ -38,10 +36,10 @@ var GridToolbarFilterListRoot = styled('ul', {
38
36
  });
39
37
  var GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolbarFilterButton(props, ref) {
40
38
  var _rootProps$slotProps, _rootProps$slotProps2;
41
- var _props$componentsProp = props.componentsProps,
42
- componentsProps = _props$componentsProp === void 0 ? {} : _props$componentsProp,
43
- other = _objectWithoutProperties(props, _excluded);
44
- var buttonProps = componentsProps.button || {};
39
+ var _props$slotProps = props.slotProps,
40
+ slotProps = _props$slotProps === void 0 ? {} : _props$slotProps;
41
+ var buttonProps = slotProps.button || {};
42
+ var tooltipProps = slotProps.tooltip || {};
45
43
  var apiRef = useGridApiContext();
46
44
  var rootProps = useGridRootProps();
47
45
  var activeFilters = useGridSelector(apiRef, gridFilterActiveItemsSelector);
@@ -103,7 +101,7 @@ var GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolbar
103
101
  return /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({
104
102
  title: tooltipContentNode,
105
103
  enterDelay: 1000
106
- }, other, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseTooltip, {
104
+ }, tooltipProps, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseTooltip, {
107
105
  children: /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
108
106
  ref: ref,
109
107
  id: filterButtonId,
@@ -133,8 +131,6 @@ process.env.NODE_ENV !== "production" ? GridToolbarFilterButton.propTypes = {
133
131
  * The props used for each slot inside.
134
132
  * @default {}
135
133
  */
136
- componentsProps: PropTypes.shape({
137
- button: PropTypes.object
138
- })
134
+ slotProps: PropTypes.object
139
135
  } : void 0;
140
136
  export { GridToolbarFilterButton };
@@ -0,0 +1,25 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ import clsx from 'clsx';
4
+ import { styled } from '@mui/system';
5
+ import { unstable_composeClasses as composeClasses } from '@mui/utils';
6
+ import { gridClasses, getDataGridUtilityClass } from '../../constants/gridClasses';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ var useUtilityClasses = function useUtilityClasses() {
9
+ var slots = {
10
+ root: ['bottomContainer']
11
+ };
12
+ return composeClasses(slots, getDataGridUtilityClass, {});
13
+ };
14
+ var Element = styled('div')({
15
+ position: 'sticky',
16
+ zIndex: 2,
17
+ bottom: 'calc(var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize))'
18
+ });
19
+ export function GridBottomContainer(props) {
20
+ var classes = useUtilityClasses();
21
+ return /*#__PURE__*/_jsx(Element, _extends({}, props, {
22
+ className: clsx(classes.root, props.className, gridClasses['container--bottom']),
23
+ role: "presentation"
24
+ }));
25
+ }
@@ -0,0 +1,20 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ import { styled } from '@mui/system';
4
+ import { useGridAriaAttributes } from '../../hooks/utils/useGridAriaAttributes';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ var Element = styled('div')({
7
+ flexGrow: 1,
8
+ position: 'relative',
9
+ overflow: 'hidden'
10
+ });
11
+ export var GridMainContainer = /*#__PURE__*/React.forwardRef(function (props, ref) {
12
+ var ariaAttributes = useGridAriaAttributes();
13
+ return /*#__PURE__*/_jsx(Element, _extends({
14
+ ref: ref,
15
+ className: props.className,
16
+ tabIndex: -1
17
+ }, ariaAttributes, {
18
+ children: props.children
19
+ }));
20
+ });
@@ -0,0 +1,35 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ import clsx from 'clsx';
4
+ import { styled } from '@mui/system';
5
+ import { unstable_composeClasses as composeClasses } from '@mui/utils';
6
+ import { gridClasses, getDataGridUtilityClass } from '../../constants/gridClasses';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ var useUtilityClasses = function useUtilityClasses() {
9
+ var slots = {
10
+ root: ['topContainer']
11
+ };
12
+ return composeClasses(slots, getDataGridUtilityClass, {});
13
+ };
14
+ var Element = styled('div')({
15
+ position: 'sticky',
16
+ zIndex: 2,
17
+ top: 0,
18
+ '&::after': {
19
+ content: '" "',
20
+ position: 'absolute',
21
+ zIndex: 5,
22
+ bottom: 0,
23
+ left: 0,
24
+ height: 1,
25
+ width: 'var(--DataGrid-rowWidth)',
26
+ backgroundColor: 'var(--DataGrid-rowBorderColor)'
27
+ }
28
+ });
29
+ export function GridTopContainer(props) {
30
+ var classes = useUtilityClasses();
31
+ return /*#__PURE__*/_jsx(Element, _extends({}, props, {
32
+ className: clsx(classes.root, props.className, gridClasses['container--top']),
33
+ role: "presentation"
34
+ }));
35
+ }
@@ -0,0 +1,129 @@
1
+ import * as React from 'react';
2
+ import { styled } from '@mui/system';
3
+ import { unstable_composeClasses as composeClasses, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';
4
+ import { useOnMount } from '../../hooks/utils/useOnMount';
5
+ import { useGridPrivateApiContext } from '../../hooks/utils/useGridPrivateApiContext';
6
+ import { gridDimensionsSelector, useGridSelector } from '../../hooks';
7
+ import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
8
+ import { getDataGridUtilityClass } from '../../constants/gridClasses';
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ var useUtilityClasses = function useUtilityClasses(ownerState, position) {
11
+ var classes = ownerState.classes;
12
+ var slots = {
13
+ root: ['scrollbar', "scrollbar--".concat(position)],
14
+ content: ['scrollbarContent']
15
+ };
16
+ return composeClasses(slots, getDataGridUtilityClass, classes);
17
+ };
18
+ var Scrollbar = styled('div')({
19
+ position: 'absolute',
20
+ display: 'inline-block',
21
+ zIndex: 6,
22
+ '& > div': {
23
+ display: 'inline-block'
24
+ },
25
+ // In macOS Safari and Gnome Web, scrollbars are overlaid and don't affect the layout. So we consider
26
+ // their size to be 0px throughout all the calculations, but the floating scrollbar container does need
27
+ // to appear and have a real size. We set it to 14px because it seems like an acceptable value and we
28
+ // don't have a method to find the required size for scrollbars on those platforms.
29
+ '--size': 'calc(max(var(--DataGrid-scrollbarSize), 14px))'
30
+ });
31
+ var ScrollbarVertical = styled(Scrollbar)({
32
+ width: 'var(--size)',
33
+ height: 'calc(var(--DataGrid-hasScrollY) * (100% - var(--DataGrid-topContainerHeight) - var(--DataGrid-bottomContainerHeight) - var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize)))',
34
+ overflowY: 'auto',
35
+ overflowX: 'hidden',
36
+ '& > div': {
37
+ width: 'var(--size)'
38
+ },
39
+ top: 'var(--DataGrid-topContainerHeight)',
40
+ right: '0px'
41
+ });
42
+ var ScrollbarHorizontal = styled(Scrollbar)({
43
+ width: '100%',
44
+ height: 'var(--size)',
45
+ overflowY: 'hidden',
46
+ overflowX: 'auto',
47
+ '& > div': {
48
+ height: 'var(--size)'
49
+ },
50
+ bottom: '0px'
51
+ });
52
+ var Content = styled('div')({
53
+ display: 'inline-block'
54
+ });
55
+ var GridVirtualScrollbar = /*#__PURE__*/React.forwardRef(function GridVirtualScrollbar(props, ref) {
56
+ var apiRef = useGridPrivateApiContext();
57
+ var rootProps = useGridRootProps();
58
+ var isLocked = React.useRef(false);
59
+ var lastPosition = React.useRef(0);
60
+ var scrollbarRef = React.useRef(null);
61
+ var contentRef = React.useRef(null);
62
+ var classes = useUtilityClasses(rootProps, props.position);
63
+ var dimensions = useGridSelector(apiRef, gridDimensionsSelector);
64
+ var propertyDimension = props.position === 'vertical' ? 'height' : 'width';
65
+ var propertyScroll = props.position === 'vertical' ? 'scrollTop' : 'scrollLeft';
66
+ var hasScroll = props.position === 'vertical' ? dimensions.hasScrollX : dimensions.hasScrollY;
67
+ var contentSize = dimensions.minimumSize[propertyDimension] + (hasScroll ? dimensions.scrollbarSize : 0);
68
+ var scrollbarSize = props.position === 'vertical' ? dimensions.viewportInnerSize.height : dimensions.viewportOuterSize.width;
69
+ var scrollbarInnerSize = scrollbarSize * (contentSize / dimensions.viewportOuterSize[propertyDimension]);
70
+ var onScrollerScroll = useEventCallback(function () {
71
+ var scroller = apiRef.current.virtualScrollerRef.current;
72
+ var scrollbar = scrollbarRef.current;
73
+ if (scroller[propertyScroll] === lastPosition.current) {
74
+ return;
75
+ }
76
+ if (isLocked.current) {
77
+ isLocked.current = false;
78
+ return;
79
+ }
80
+ isLocked.current = true;
81
+ var value = scroller[propertyScroll] / contentSize;
82
+ scrollbar[propertyScroll] = value * scrollbarInnerSize;
83
+ lastPosition.current = scroller[propertyScroll];
84
+ });
85
+ var onScrollbarScroll = useEventCallback(function () {
86
+ var scroller = apiRef.current.virtualScrollerRef.current;
87
+ var scrollbar = scrollbarRef.current;
88
+ if (isLocked.current) {
89
+ isLocked.current = false;
90
+ return;
91
+ }
92
+ isLocked.current = true;
93
+ var value = scrollbar[propertyScroll] / scrollbarInnerSize;
94
+ scroller[propertyScroll] = value * contentSize;
95
+ });
96
+ useOnMount(function () {
97
+ var scroller = apiRef.current.virtualScrollerRef.current;
98
+ var scrollbar = scrollbarRef.current;
99
+ scroller.addEventListener('scroll', onScrollerScroll, {
100
+ capture: true
101
+ });
102
+ scrollbar.addEventListener('scroll', onScrollbarScroll, {
103
+ capture: true
104
+ });
105
+ return function () {
106
+ scroller.removeEventListener('scroll', onScrollerScroll, {
107
+ capture: true
108
+ });
109
+ scrollbar.removeEventListener('scroll', onScrollbarScroll, {
110
+ capture: true
111
+ });
112
+ };
113
+ });
114
+ React.useEffect(function () {
115
+ var content = contentRef.current;
116
+ content.style.setProperty(propertyDimension, "".concat(scrollbarInnerSize, "px"));
117
+ }, [scrollbarInnerSize, propertyDimension]);
118
+ var Container = props.position === 'vertical' ? ScrollbarVertical : ScrollbarHorizontal;
119
+ return /*#__PURE__*/_jsx(Container, {
120
+ ref: useForkRef(ref, scrollbarRef),
121
+ className: classes.root,
122
+ tabIndex: -1,
123
+ children: /*#__PURE__*/_jsx(Content, {
124
+ ref: contentRef,
125
+ className: classes.content
126
+ })
127
+ });
128
+ });
129
+ export { GridVirtualScrollbar };
@@ -1,42 +1,93 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
- import clsx from 'clsx';
4
3
  import { styled } from '@mui/system';
5
4
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
6
5
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
6
+ import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
7
+ import { useGridSelector } from '../../hooks/utils/useGridSelector';
7
8
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
9
+ import { gridDimensionsSelector } from '../../hooks/features/dimensions';
10
+ import { useGridVirtualScroller } from '../../hooks/features/virtualization/useGridVirtualScroller';
11
+ import { GridOverlays } from '../base/GridOverlays';
12
+ import { GridHeaders } from '../GridHeaders';
13
+ import { GridMainContainer as Container } from './GridMainContainer';
14
+ import { GridTopContainer as TopContainer } from './GridTopContainer';
15
+ import { GridBottomContainer as BottomContainer } from './GridBottomContainer';
16
+ import { GridVirtualScrollerContent as Content } from './GridVirtualScrollerContent';
17
+ import { GridVirtualScrollerFiller as SpaceFiller } from './GridVirtualScrollerFiller';
18
+ import { GridVirtualScrollerRenderZone as RenderZone } from './GridVirtualScrollerRenderZone';
19
+ import { GridVirtualScrollbar as Scrollbar } from './GridVirtualScrollbar';
8
20
  import { jsx as _jsx } from "react/jsx-runtime";
9
- var useUtilityClasses = function useUtilityClasses(ownerState) {
21
+ import { jsxs as _jsxs } from "react/jsx-runtime";
22
+ var useUtilityClasses = function useUtilityClasses(ownerState, dimensions) {
10
23
  var classes = ownerState.classes;
11
24
  var slots = {
12
- root: ['virtualScroller']
25
+ root: ['main', dimensions.rightPinnedWidth > 0 && 'main--hasPinnedRight'],
26
+ scroller: ['virtualScroller']
13
27
  };
14
28
  return composeClasses(slots, getDataGridUtilityClass, classes);
15
29
  };
16
- var VirtualScrollerRoot = styled('div', {
30
+ var Scroller = styled('div', {
17
31
  name: 'MuiDataGrid',
18
32
  slot: 'VirtualScroller',
19
33
  overridesResolver: function overridesResolver(props, styles) {
20
34
  return styles.virtualScroller;
21
35
  }
22
36
  })({
23
- overflow: 'auto',
24
- height: '100%',
25
- // See https://github.com/mui/mui-x/issues/4360
26
37
  position: 'relative',
38
+ height: '100%',
39
+ overflow: 'scroll',
40
+ scrollbarWidth: 'none' /* Firefox */,
41
+ '&::-webkit-scrollbar': {
42
+ display: 'none' /* Safari and Chrome */
43
+ },
27
44
  '@media print': {
28
45
  overflow: 'hidden'
29
46
  },
30
- zIndex: 0 // See https://github.com/mui/mui-x/issues/10547
47
+ // See https://github.com/mui/mui-x/issues/10547
48
+ zIndex: 0
31
49
  });
32
- var GridVirtualScroller = /*#__PURE__*/React.forwardRef(function GridVirtualScroller(props, ref) {
50
+ function GridVirtualScroller(props) {
51
+ var apiRef = useGridApiContext();
33
52
  var rootProps = useGridRootProps();
34
- var classes = useUtilityClasses(rootProps);
35
- return /*#__PURE__*/_jsx(VirtualScrollerRoot, _extends({
36
- ref: ref
37
- }, props, {
38
- className: clsx(classes.root, props.className),
39
- ownerState: rootProps
53
+ var dimensions = useGridSelector(apiRef, gridDimensionsSelector);
54
+ var classes = useUtilityClasses(rootProps, dimensions);
55
+ var virtualScroller = useGridVirtualScroller();
56
+ var getContainerProps = virtualScroller.getContainerProps,
57
+ getScrollerProps = virtualScroller.getScrollerProps,
58
+ getContentProps = virtualScroller.getContentProps,
59
+ getRenderZoneProps = virtualScroller.getRenderZoneProps,
60
+ getScrollbarVerticalProps = virtualScroller.getScrollbarVerticalProps,
61
+ getScrollbarHorizontalProps = virtualScroller.getScrollbarHorizontalProps;
62
+ return /*#__PURE__*/_jsxs(Container, _extends({
63
+ className: classes.root
64
+ }, getContainerProps(), {
65
+ children: [/*#__PURE__*/_jsxs(Scroller, _extends({
66
+ className: classes.scroller
67
+ }, getScrollerProps(), {
68
+ ownerState: rootProps,
69
+ children: [/*#__PURE__*/_jsxs(TopContainer, {
70
+ children: [/*#__PURE__*/_jsx(GridHeaders, {}), /*#__PURE__*/_jsx(rootProps.slots.pinnedRows, {
71
+ position: "top",
72
+ virtualScroller: virtualScroller
73
+ })]
74
+ }), /*#__PURE__*/_jsx(GridOverlays, {}), /*#__PURE__*/_jsx(Content, _extends({}, getContentProps(), {
75
+ children: /*#__PURE__*/_jsxs(RenderZone, _extends({}, getRenderZoneProps(), {
76
+ children: [virtualScroller.getRows(), /*#__PURE__*/_jsx(rootProps.slots.detailPanels, {
77
+ virtualScroller: virtualScroller
78
+ })]
79
+ }))
80
+ })), /*#__PURE__*/_jsx(SpaceFiller, {}), /*#__PURE__*/_jsx(BottomContainer, {
81
+ children: /*#__PURE__*/_jsx(rootProps.slots.pinnedRows, {
82
+ position: "bottom",
83
+ virtualScroller: virtualScroller
84
+ })
85
+ })]
86
+ })), /*#__PURE__*/_jsx(Scrollbar, _extends({
87
+ position: "vertical"
88
+ }, getScrollbarVerticalProps())), /*#__PURE__*/_jsx(Scrollbar, _extends({
89
+ position: "horizontal"
90
+ }, getScrollbarHorizontalProps())), props.children]
40
91
  }));
41
- });
92
+ }
42
93
  export { GridVirtualScroller };
@@ -0,0 +1,70 @@
1
+ import * as React from 'react';
2
+ import { styled } from '@mui/system';
3
+ import { fastMemo } from '../../utils/fastMemo';
4
+ import { useGridSelector } from '../../hooks/utils/useGridSelector';
5
+ import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
6
+ import { gridDimensionsSelector } from '../../hooks/features/dimensions';
7
+ import { gridClasses } from '../../constants';
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ import { jsxs as _jsxs } from "react/jsx-runtime";
10
+ var Filler = styled('div')({
11
+ display: 'flex',
12
+ flexDirection: 'row',
13
+ width: 'var(--DataGrid-rowWidth)',
14
+ boxSizing: 'border-box'
15
+ });
16
+ var Pinned = styled('div')({
17
+ position: 'sticky',
18
+ height: '100%',
19
+ boxSizing: 'border-box',
20
+ borderTop: '1px solid var(--DataGrid-rowBorderColor)',
21
+ backgroundColor: 'var(--DataGrid-pinnedBackground)'
22
+ });
23
+ var PinnedLeft = styled(Pinned)({
24
+ left: 0,
25
+ borderRight: '1px solid var(--DataGrid-rowBorderColor)'
26
+ });
27
+ var PinnedRight = styled(Pinned)({
28
+ right: 0,
29
+ borderLeft: '1px solid var(--DataGrid-rowBorderColor)'
30
+ });
31
+ var Main = styled('div')({
32
+ flexGrow: 1,
33
+ borderTop: '1px solid var(--DataGrid-rowBorderColor)'
34
+ });
35
+ function GridVirtualScrollerFiller() {
36
+ var apiRef = useGridApiContext();
37
+ var _useGridSelector = useGridSelector(apiRef, gridDimensionsSelector),
38
+ viewportOuterSize = _useGridSelector.viewportOuterSize,
39
+ minimumSize = _useGridSelector.minimumSize,
40
+ hasScrollX = _useGridSelector.hasScrollX,
41
+ scrollbarSize = _useGridSelector.scrollbarSize,
42
+ leftPinnedWidth = _useGridSelector.leftPinnedWidth,
43
+ rightPinnedWidth = _useGridSelector.rightPinnedWidth;
44
+ var scrollbarHeight = hasScrollX ? scrollbarSize : 0;
45
+ var expandedHeight = viewportOuterSize.height - minimumSize.height - scrollbarHeight;
46
+ var height = Math.max(scrollbarHeight, expandedHeight);
47
+ if (height === 0) {
48
+ return null;
49
+ }
50
+ return /*#__PURE__*/_jsxs(Filler, {
51
+ className: gridClasses.filler,
52
+ role: "presentation",
53
+ style: {
54
+ height: height
55
+ },
56
+ children: [leftPinnedWidth > 0 && /*#__PURE__*/_jsx(PinnedLeft, {
57
+ className: gridClasses['filler--pinnedLeft'],
58
+ style: {
59
+ width: leftPinnedWidth
60
+ }
61
+ }), /*#__PURE__*/_jsx(Main, {}), rightPinnedWidth > 0 && /*#__PURE__*/_jsx(PinnedRight, {
62
+ className: gridClasses['filler--pinnedRight'],
63
+ style: {
64
+ width: rightPinnedWidth
65
+ }
66
+ })]
67
+ });
68
+ }
69
+ var Memoized = fastMemo(GridVirtualScrollerFiller);
70
+ export { Memoized as GridVirtualScrollerFiller };
@@ -25,7 +25,8 @@ var VirtualScrollerRenderZoneRoot = styled('div', {
25
25
  position: 'absolute',
26
26
  display: 'flex',
27
27
  // Prevents margin collapsing when using `getRowSpacing`
28
- flexDirection: 'column'
28
+ flexDirection: 'column',
29
+ transform: 'translate3d(0, var(--DataGrid-offsetTop), 0)'
29
30
  });
30
31
  var GridVirtualScrollerRenderZone = /*#__PURE__*/React.forwardRef(function GridVirtualScrollerRenderZone(props, ref) {
31
32
  var className = props.className,