@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,28 +1,33 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import { GridSkeletonCell, GridColumnsPanel, GridFilterPanel, GridFooter, GridLoadingOverlay, GridNoRowsOverlay, GridPagination, GridPanel, GridRow, GridColumnHeaderFilterIconButton, GridRowCount } from '../components';
3
- import { GridCellV7 } from '../components/cell/GridCell';
2
+ import { GridSkeletonCell, GridColumnsPanel, GridFilterPanel, GridFooter, GridLoadingOverlay, GridNoRowsOverlay, GridPagination, GridPanel, GridRow, GridColumnHeaderFilterIconButton, GridRowCount, GridColumnsManagement } from '../components';
3
+ import { GridCell } from '../components/cell/GridCell';
4
4
  import { GridColumnHeaders } from '../components/GridColumnHeaders';
5
5
  import { GridColumnMenu } from '../components/menu/columnMenu/GridColumnMenu';
6
+ import { GridDetailPanels } from '../components/GridDetailPanels';
7
+ import { GridPinnedRows } from '../components/GridPinnedRows';
6
8
  import { GridNoResultsOverlay } from '../components/GridNoResultsOverlay';
7
9
  import materialSlots from '../material';
8
10
 
9
11
  // TODO: camelCase these key. It's a private helper now.
10
12
  // Remove then need to call `uncapitalizeObjectKeys`.
11
13
  export var DATA_GRID_DEFAULT_SLOTS_COMPONENTS = _extends({}, materialSlots, {
12
- cell: GridCellV7,
14
+ cell: GridCell,
13
15
  skeletonCell: GridSkeletonCell,
14
16
  columnHeaderFilterIconButton: GridColumnHeaderFilterIconButton,
15
17
  columnMenu: GridColumnMenu,
16
18
  columnHeaders: GridColumnHeaders,
19
+ detailPanels: GridDetailPanels,
17
20
  footer: GridFooter,
18
21
  footerRowCount: GridRowCount,
19
22
  toolbar: null,
23
+ pinnedRows: GridPinnedRows,
20
24
  loadingOverlay: GridLoadingOverlay,
21
25
  noResultsOverlay: GridNoResultsOverlay,
22
26
  noRowsOverlay: GridNoRowsOverlay,
23
27
  pagination: GridPagination,
24
28
  filterPanel: GridFilterPanel,
25
29
  columnsPanel: GridColumnsPanel,
30
+ columnsManagement: GridColumnsManagement,
26
31
  panel: GridPanel,
27
32
  row: GridRow
28
33
  });
@@ -2,4 +2,4 @@ import { unstable_generateUtilityClasses as generateUtilityClasses, unstable_gen
2
2
  export function getDataGridUtilityClass(slot) {
3
3
  return generateUtilityClass('MuiDataGrid', slot);
4
4
  }
5
- export var gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--selectionMode', 'cell', 'cellContent', 'cellCheckbox', 'cellSkeleton', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnGroupHeader', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeader--showColumnBorder', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorderColor', 'cell--withRightBorder', 'columnHeader--withRightBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
5
+ export var gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellContent', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnGroupHeader', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeader--showColumnBorder', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementFooter', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
@@ -29,12 +29,10 @@ export var GRID_DEFAULT_LOCALE_TEXT = {
29
29
  toolbarExportCSV: 'Download as CSV',
30
30
  toolbarExportPrint: 'Print',
31
31
  toolbarExportExcel: 'Download as Excel',
32
- // Columns panel text
33
- columnsPanelTextFieldLabel: 'Find column',
34
- columnsPanelTextFieldPlaceholder: 'Column title',
35
- columnsPanelDragIconLabel: 'Reorder column',
36
- columnsPanelShowAllButton: 'Show all',
37
- columnsPanelHideAllButton: 'Hide all',
32
+ // Columns management text
33
+ columnsManagementSearchTitle: 'Search',
34
+ columnsManagementNoColumns: 'No columns',
35
+ columnsManagementShowHideAllText: 'Show/Hide All',
38
36
  // Filter panel text
39
37
  filterPanelAddFilter: 'Add filter',
40
38
  filterPanelRemoveAll: 'Remove all',
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Get the theme state
3
+ * @category Core
4
+ */
5
+ export var gridThemeSelector = function gridThemeSelector(state) {
6
+ return state.theme;
7
+ };
@@ -71,6 +71,7 @@ function createPublicAPI(privateApiRef) {
71
71
  return publicApi;
72
72
  }
73
73
  export function useGridApiInitialization(inputApiRef, props) {
74
+ var _inputApiRef$current;
74
75
  var publicApiRef = React.useRef();
75
76
  var privateApiRef = React.useRef();
76
77
  if (!privateApiRef.current) {
@@ -107,6 +108,9 @@ export function useGridApiInitialization(inputApiRef, props) {
107
108
  subscribeEvent: subscribeEvent,
108
109
  publishEvent: publishEvent
109
110
  }, 'public');
111
+ if (inputApiRef && !((_inputApiRef$current = inputApiRef.current) != null && _inputApiRef$current.state)) {
112
+ inputApiRef.current = publicApiRef.current;
113
+ }
110
114
  React.useImperativeHandle(inputApiRef, function () {
111
115
  return publicApiRef.current;
112
116
  }, [publicApiRef]);
@@ -1,3 +1,5 @@
1
+ import { useGridRefs } from './useGridRefs';
2
+ import { useGridTheme } from './useGridTheme';
1
3
  import { useGridLoggerFactory } from './useGridLoggerFactory';
2
4
  import { useGridApiInitialization } from './useGridApiInitialization';
3
5
  import { useGridLocaleText } from './useGridLocaleText';
@@ -10,6 +12,8 @@ import { useGridStateInitialization } from './useGridStateInitialization';
10
12
  */
11
13
  export var useGridInitialization = function useGridInitialization(inputApiRef, props) {
12
14
  var privateApiRef = useGridApiInitialization(inputApiRef, props);
15
+ useGridRefs(privateApiRef);
16
+ useGridTheme(privateApiRef);
13
17
  useGridLoggerFactory(privateApiRef, props);
14
18
  useGridStateInitialization(privateApiRef, props);
15
19
  useGridPipeProcessing(privateApiRef);
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ export var useGridRefs = function useGridRefs(apiRef) {
3
+ var rootElementRef = React.useRef(null);
4
+ var mainElementRef = React.useRef(null);
5
+ var virtualScrollerRef = React.useRef(null);
6
+ apiRef.current.register('public', {
7
+ rootElementRef: rootElementRef
8
+ });
9
+ apiRef.current.register('private', {
10
+ mainElementRef: mainElementRef,
11
+ virtualScrollerRef: virtualScrollerRef
12
+ });
13
+ };
@@ -0,0 +1,21 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ import { useTheme } from '@mui/material/styles';
4
+ export var useGridTheme = function useGridTheme(apiRef) {
5
+ var theme = useTheme();
6
+ if (!apiRef.current.state.theme) {
7
+ apiRef.current.state.theme = theme;
8
+ }
9
+ var isFirstEffect = React.useRef(true);
10
+ React.useEffect(function () {
11
+ if (isFirstEffect.current) {
12
+ isFirstEffect.current = false;
13
+ } else {
14
+ apiRef.current.setState(function (state) {
15
+ return _extends({}, state, {
16
+ theme: theme
17
+ });
18
+ });
19
+ }
20
+ }, [apiRef, theme]);
21
+ };
@@ -39,16 +39,15 @@ var createGroupLookup = function createGroupLookup(columnGroupingModel) {
39
39
  return _extends({}, groupLookup);
40
40
  };
41
41
  export var columnGroupsStateInitializer = function columnGroupsStateInitializer(state, props, apiRef) {
42
- var _props$experimentalFe, _props$columnGrouping, _props$columnGrouping2, _apiRef$current$state;
43
- if (!((_props$experimentalFe = props.experimentalFeatures) != null && _props$experimentalFe.columnGrouping)) {
42
+ var _props$columnGrouping, _props$columnGrouping2, _apiRef$current$state;
43
+ if (!props.columnGroupingModel) {
44
44
  return state;
45
45
  }
46
46
  var columnFields = gridColumnFieldsSelector(apiRef);
47
47
  var visibleColumnFields = gridVisibleColumnFieldsSelector(apiRef);
48
48
  var groupLookup = createGroupLookup((_props$columnGrouping = props.columnGroupingModel) != null ? _props$columnGrouping : []);
49
49
  var unwrappedGroupingModel = unwrapGroupingColumnModel((_props$columnGrouping2 = props.columnGroupingModel) != null ? _props$columnGrouping2 : []);
50
- var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(columnFields, unwrappedGroupingModel, // @ts-expect-error Move this part to `Pro` package
51
- (_apiRef$current$state = apiRef.current.state.pinnedColumns) != null ? _apiRef$current$state : {});
50
+ var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(columnFields, unwrappedGroupingModel, (_apiRef$current$state = apiRef.current.state.pinnedColumns) != null ? _apiRef$current$state : {});
52
51
  var maxDepth = visibleColumnFields.length === 0 ? 0 : Math.max.apply(Math, _toConsumableArray(visibleColumnFields.map(function (field) {
53
52
  var _unwrappedGroupingMod, _unwrappedGroupingMod2;
54
53
  return (_unwrappedGroupingMod = (_unwrappedGroupingMod2 = unwrappedGroupingModel[field]) == null ? void 0 : _unwrappedGroupingMod2.length) != null ? _unwrappedGroupingMod : 0;
@@ -68,7 +67,6 @@ export var columnGroupsStateInitializer = function columnGroupsStateInitializer(
68
67
  * @requires useGridParamsApi (method)
69
68
  */
70
69
  export var useGridColumnGrouping = function useGridColumnGrouping(apiRef, props) {
71
- var _props$experimentalFe3;
72
70
  /**
73
71
  * API METHODS
74
72
  */
@@ -82,8 +80,8 @@ export var useGridColumnGrouping = function useGridColumnGrouping(apiRef, props)
82
80
  return columnGroupLookup;
83
81
  }, [apiRef]);
84
82
  var columnGroupingApi = {
85
- unstable_getColumnGroupPath: getColumnGroupPath,
86
- unstable_getAllGroupDetails: getAllGroupDetails
83
+ getColumnGroupPath: getColumnGroupPath,
84
+ getAllGroupDetails: getAllGroupDetails
87
85
  };
88
86
  useGridApiMethod(apiRef, columnGroupingApi, 'public');
89
87
  var handleColumnIndexChange = React.useCallback(function () {
@@ -92,8 +90,6 @@ export var useGridColumnGrouping = function useGridColumnGrouping(apiRef, props)
92
90
  apiRef.current.setState(function (state) {
93
91
  var _state$columns$ordere, _state$columns, _state$pinnedColumns;
94
92
  var orderedFields = (_state$columns$ordere = (_state$columns = state.columns) == null ? void 0 : _state$columns.orderedFields) != null ? _state$columns$ordere : [];
95
-
96
- // @ts-expect-error Move this logic to `Pro` package
97
93
  var pinnedColumns = (_state$pinnedColumns = state.pinnedColumns) != null ? _state$pinnedColumns : {};
98
94
  var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(orderedFields, unwrappedGroupingModel, pinnedColumns);
99
95
  return _extends({}, state, {
@@ -104,10 +100,7 @@ export var useGridColumnGrouping = function useGridColumnGrouping(apiRef, props)
104
100
  });
105
101
  }, [apiRef, props.columnGroupingModel]);
106
102
  var updateColumnGroupingState = React.useCallback(function (columnGroupingModel) {
107
- var _props$experimentalFe2, _apiRef$current$getPi, _apiRef$current$getPi2, _apiRef$current;
108
- if (!((_props$experimentalFe2 = props.experimentalFeatures) != null && _props$experimentalFe2.columnGrouping)) {
109
- return;
110
- }
103
+ var _apiRef$current$getPi, _apiRef$current$getPi2, _apiRef$current;
111
104
  // @ts-expect-error Move this logic to `Pro` package
112
105
  var pinnedColumns = (_apiRef$current$getPi = (_apiRef$current$getPi2 = (_apiRef$current = apiRef.current).getPinnedColumns) == null ? void 0 : _apiRef$current$getPi2.call(_apiRef$current)) != null ? _apiRef$current$getPi : {};
113
106
  var columnFields = gridColumnFieldsSelector(apiRef);
@@ -129,7 +122,7 @@ export var useGridColumnGrouping = function useGridColumnGrouping(apiRef, props)
129
122
  }
130
123
  });
131
124
  });
132
- }, [apiRef, (_props$experimentalFe3 = props.experimentalFeatures) == null ? void 0 : _props$experimentalFe3.columnGrouping]);
125
+ }, [apiRef]);
133
126
  useGridApiEventHandler(apiRef, 'columnIndexChange', handleColumnIndexChange);
134
127
  useGridApiEventHandler(apiRef, 'columnsChange', function () {
135
128
  updateColumnGroupingState(props.columnGroupingModel);
@@ -1,54 +1,60 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
3
  import * as React from 'react';
4
- import * as ReactDOM from 'react-dom';
5
4
  import { unstable_useForkRef as useForkRef } from '@mui/utils';
6
- import { styled, useTheme } from '@mui/material/styles';
7
- import { defaultMemoize } from 'reselect';
5
+ import { styled } from '@mui/material/styles';
8
6
  import { useGridSelector } from '../../utils';
9
7
  import { useGridPrivateApiContext } from '../../utils/useGridPrivateApiContext';
10
- import { useGridRootProps } from '../../utils/useGridRootProps';
11
8
  import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
12
9
  import { GridColumnHeaderItem } from '../../../components/columnHeaders/GridColumnHeaderItem';
13
- import { getFirstColumnIndexToRender, getTotalHeaderHeight } from '../columns/gridColumnsUtils';
14
- import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
15
- import { areRenderContextsEqual, getRenderableIndexes } from '../virtualization/useGridVirtualScroller';
16
- import { gridVirtualizationColumnEnabledSelector } from '../virtualization';
10
+ import { gridDimensionsSelector } from '../dimensions';
11
+ import { gridRenderContextColumnsSelector, gridVirtualizationColumnEnabledSelector } from '../virtualization';
17
12
  import { GridColumnGroupHeader } from '../../../components/columnHeaders/GridColumnGroupHeader';
13
+ import { GridPinnedColumnPosition, gridVisiblePinnedColumnDefinitionsSelector } from '../columns';
14
+ import { GridScrollbarFillerCell as ScrollbarFiller } from '../../../components/GridScrollbarFillerCell';
15
+ import { gridClasses } from '../../../constants/gridClasses';
18
16
  import { jsx as _jsx } from "react/jsx-runtime";
19
- var GridColumnHeaderRow = styled('div', {
17
+ import { jsxs as _jsxs } from "react/jsx-runtime";
18
+ var SpaceFiller = styled('div')({
19
+ /* GridRootStyles conflict */
20
+ '&&': {
21
+ padding: 0,
22
+ width: 'calc(var(--DataGrid-width) - var(--DataGrid-columnsTotalWidth))'
23
+ }
24
+ });
25
+ export var GridColumnHeaderRow = styled('div', {
20
26
  name: 'MuiDataGrid',
21
27
  slot: 'ColumnHeaderRow',
22
28
  overridesResolver: function overridesResolver(props, styles) {
23
29
  return styles.columnHeaderRow;
24
30
  }
25
- })(function () {
31
+ })(function (_ref) {
32
+ var _ref$ownerState = _ref.ownerState,
33
+ _ref$ownerState$param = _ref$ownerState.params,
34
+ _ref$ownerState$param2 = _ref$ownerState$param === void 0 ? {} : _ref$ownerState$param,
35
+ position = _ref$ownerState$param2.position,
36
+ _ref$ownerState$leftO = _ref$ownerState.leftOverflow,
37
+ leftOverflow = _ref$ownerState$leftO === void 0 ? 0 : _ref$ownerState$leftO;
26
38
  return {
27
- display: 'flex'
39
+ display: 'flex',
40
+ height: 'var(--DataGrid-headerHeight)',
41
+ transform: position === undefined ? "translate3d(".concat(leftOverflow !== 0 ? "calc(var(--DataGrid-offsetLeft) - ".concat(leftOverflow, "px)") : 'var(--DataGrid-offsetLeft)', ", 0, 0)") : undefined
28
42
  };
29
43
  });
30
- function isUIEvent(event) {
31
- return !!event.target;
32
- }
33
44
  export var useGridColumnHeaders = function useGridColumnHeaders(props) {
34
45
  var innerRefProp = props.innerRef,
35
- _props$minColumnIndex = props.minColumnIndex,
36
- minColumnIndex = _props$minColumnIndex === void 0 ? 0 : _props$minColumnIndex,
37
46
  visibleColumns = props.visibleColumns,
38
47
  sortColumnLookup = props.sortColumnLookup,
39
48
  filterColumnLookup = props.filterColumnLookup,
40
- columnPositions = props.columnPositions,
41
49
  columnHeaderTabIndexState = props.columnHeaderTabIndexState,
42
50
  columnGroupHeaderTabIndexState = props.columnGroupHeaderTabIndexState,
43
51
  columnHeaderFocus = props.columnHeaderFocus,
44
52
  columnGroupHeaderFocus = props.columnGroupHeaderFocus,
45
- densityFactor = props.densityFactor,
46
53
  headerGroupingMaxDepth = props.headerGroupingMaxDepth,
47
54
  columnMenuState = props.columnMenuState,
48
55
  columnVisibility = props.columnVisibility,
49
56
  columnGroupsHeaderStructure = props.columnGroupsHeaderStructure,
50
57
  hasOtherElementInTabSequence = props.hasOtherElementInTabSequence;
51
- var theme = useTheme();
52
58
  var _React$useState = React.useState(''),
53
59
  _React$useState2 = _slicedToArray(_React$useState, 2),
54
60
  dragCol = _React$useState2[0],
@@ -59,107 +65,14 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
59
65
  setResizeCol = _React$useState4[1];
60
66
  var apiRef = useGridPrivateApiContext();
61
67
  var hasVirtualization = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);
62
- var rootProps = useGridRootProps();
63
68
  var innerRef = React.useRef(null);
64
69
  var handleInnerRef = useForkRef(innerRefProp, innerRef);
65
- var _React$useState5 = React.useState(null),
66
- _React$useState6 = _slicedToArray(_React$useState5, 2),
67
- renderContext = _React$useState6[0],
68
- setRenderContextRaw = _React$useState6[1];
69
- var prevRenderContext = React.useRef(renderContext);
70
- var prevScrollLeft = React.useRef(0);
71
- var currentPage = useGridVisibleRows(apiRef, rootProps);
72
- var totalHeaderHeight = getTotalHeaderHeight(apiRef, rootProps.columnHeaderHeight);
73
- var headerHeight = Math.floor(rootProps.columnHeaderHeight * densityFactor);
74
- var setRenderContext = React.useCallback(function (nextRenderContext) {
75
- if (renderContext && nextRenderContext && areRenderContextsEqual(renderContext, nextRenderContext)) {
76
- return;
77
- }
78
- setRenderContextRaw(nextRenderContext);
79
- }, [renderContext]);
70
+ var dimensions = useGridSelector(apiRef, gridDimensionsSelector);
71
+ var renderContext = useGridSelector(apiRef, gridRenderContextColumnsSelector);
72
+ var visiblePinnedColumns = useGridSelector(apiRef, gridVisiblePinnedColumnDefinitionsSelector);
80
73
  React.useEffect(function () {
81
74
  apiRef.current.columnHeadersContainerElementRef.current.scrollLeft = 0;
82
75
  }, [apiRef]);
83
-
84
- // memoize `getFirstColumnIndexToRender`, since it's called on scroll
85
- var getFirstColumnIndexToRenderRef = React.useRef(defaultMemoize(getFirstColumnIndexToRender, {
86
- equalityCheck: function equalityCheck(a, b) {
87
- return ['firstColumnIndex', 'minColumnIndex', 'columnBuffer'].every(function (key) {
88
- return a[key] === b[key];
89
- });
90
- }
91
- }));
92
- var updateInnerPosition = React.useCallback(function (nextRenderContext) {
93
- var _getRenderableIndexes = getRenderableIndexes({
94
- firstIndex: nextRenderContext.firstRowIndex,
95
- lastIndex: nextRenderContext.lastRowIndex,
96
- minFirstIndex: 0,
97
- maxLastIndex: currentPage.rows.length,
98
- buffer: rootProps.rowBuffer
99
- }),
100
- _getRenderableIndexes2 = _slicedToArray(_getRenderableIndexes, 2),
101
- firstRowToRender = _getRenderableIndexes2[0],
102
- lastRowToRender = _getRenderableIndexes2[1];
103
- var firstColumnToRender = getFirstColumnIndexToRenderRef.current({
104
- firstColumnIndex: nextRenderContext.firstColumnIndex,
105
- minColumnIndex: minColumnIndex,
106
- columnBuffer: rootProps.columnBuffer,
107
- firstRowToRender: firstRowToRender,
108
- lastRowToRender: lastRowToRender,
109
- apiRef: apiRef,
110
- visibleRows: currentPage.rows
111
- });
112
- var direction = theme.direction === 'ltr' ? 1 : -1;
113
- var offset = firstColumnToRender > 0 ? prevScrollLeft.current - direction * columnPositions[firstColumnToRender] : prevScrollLeft.current;
114
- innerRef.current.style.transform = "translate3d(".concat(-offset, "px, 0px, 0px)");
115
- }, [columnPositions, minColumnIndex, rootProps.columnBuffer, apiRef, currentPage.rows, rootProps.rowBuffer, theme.direction]);
116
- React.useLayoutEffect(function () {
117
- if (renderContext) {
118
- updateInnerPosition(renderContext);
119
- }
120
- }, [renderContext, updateInnerPosition]);
121
- var handleScroll = React.useCallback(function (_ref, event) {
122
- var _prevRenderContext$cu, _prevRenderContext$cu2;
123
- var left = _ref.left,
124
- _ref$renderContext = _ref.renderContext,
125
- nextRenderContext = _ref$renderContext === void 0 ? null : _ref$renderContext;
126
- if (!innerRef.current) {
127
- return;
128
- }
129
-
130
- // Ignore vertical scroll.
131
- // Excepts the first event which sets the previous render context.
132
- if (prevScrollLeft.current === left && ((_prevRenderContext$cu = prevRenderContext.current) == null ? void 0 : _prevRenderContext$cu.firstColumnIndex) === (nextRenderContext == null ? void 0 : nextRenderContext.firstColumnIndex) && ((_prevRenderContext$cu2 = prevRenderContext.current) == null ? void 0 : _prevRenderContext$cu2.lastColumnIndex) === (nextRenderContext == null ? void 0 : nextRenderContext.lastColumnIndex)) {
133
- return;
134
- }
135
- prevScrollLeft.current = left;
136
-
137
- // We can only update the position when we guarantee that the render context has been
138
- // rendered. This is achieved using ReactDOM.flushSync or when the context doesn't change.
139
- var canUpdateInnerPosition = false;
140
- if (nextRenderContext !== prevRenderContext.current || !prevRenderContext.current) {
141
- // ReactDOM.flushSync cannot be called on `scroll` events fired inside effects
142
- if (isUIEvent(event)) {
143
- // To prevent flickering, the inner position can only be updated after the new context has
144
- // been rendered. ReactDOM.flushSync ensures that the state changes will happen before
145
- // updating the position.
146
- ReactDOM.flushSync(function () {
147
- setRenderContext(nextRenderContext);
148
- });
149
- canUpdateInnerPosition = true;
150
- } else {
151
- setRenderContext(nextRenderContext);
152
- }
153
- prevRenderContext.current = nextRenderContext;
154
- } else {
155
- canUpdateInnerPosition = true;
156
- }
157
-
158
- // Pass directly the render context to avoid waiting for the next render
159
- if (nextRenderContext && canUpdateInnerPosition) {
160
- updateInnerPosition(nextRenderContext);
161
- }
162
- }, [updateInnerPosition, setRenderContext]);
163
76
  var handleColumnResizeStart = React.useCallback(function (params) {
164
77
  return setResizeCol(params.field);
165
78
  }, []);
@@ -176,57 +89,42 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
176
89
  useGridApiEventHandler(apiRef, 'columnResizeStop', handleColumnResizeStop);
177
90
  useGridApiEventHandler(apiRef, 'columnHeaderDragStart', handleColumnReorderStart);
178
91
  useGridApiEventHandler(apiRef, 'columnHeaderDragEnd', handleColumnReorderStop);
179
- useGridApiEventHandler(apiRef, 'scrollPositionChange', handleScroll);
180
92
 
181
93
  // Helper for computation common between getColumnHeaders and getColumnGroupHeaders
182
94
  var getColumnsToRender = function getColumnsToRender(params) {
183
95
  var _ref2 = params || {},
184
96
  _ref2$renderContext = _ref2.renderContext,
185
- nextRenderContext = _ref2$renderContext === void 0 ? renderContext : _ref2$renderContext,
186
- _ref2$minFirstColumn = _ref2.minFirstColumn,
187
- minFirstColumn = _ref2$minFirstColumn === void 0 ? minColumnIndex : _ref2$minFirstColumn,
97
+ currentContext = _ref2$renderContext === void 0 ? renderContext : _ref2$renderContext,
188
98
  _ref2$maxLastColumn = _ref2.maxLastColumn,
189
99
  maxLastColumn = _ref2$maxLastColumn === void 0 ? visibleColumns.length : _ref2$maxLastColumn;
190
- if (!nextRenderContext) {
191
- return null;
192
- }
193
- var _getRenderableIndexes3 = getRenderableIndexes({
194
- firstIndex: nextRenderContext.firstRowIndex,
195
- lastIndex: nextRenderContext.lastRowIndex,
196
- minFirstIndex: 0,
197
- maxLastIndex: currentPage.rows.length,
198
- buffer: rootProps.rowBuffer
199
- }),
200
- _getRenderableIndexes4 = _slicedToArray(_getRenderableIndexes3, 2),
201
- firstRowToRender = _getRenderableIndexes4[0],
202
- lastRowToRender = _getRenderableIndexes4[1];
203
- var firstColumnToRender = !hasVirtualization ? 0 : getFirstColumnIndexToRenderRef.current({
204
- firstColumnIndex: nextRenderContext.firstColumnIndex,
205
- minColumnIndex: minFirstColumn,
206
- columnBuffer: rootProps.columnBuffer,
207
- apiRef: apiRef,
208
- firstRowToRender: firstRowToRender,
209
- lastRowToRender: lastRowToRender,
210
- visibleRows: currentPage.rows
211
- });
212
- var lastColumnToRender = !hasVirtualization ? maxLastColumn : Math.min(nextRenderContext.lastColumnIndex + rootProps.columnBuffer, maxLastColumn);
100
+ var firstColumnToRender = !hasVirtualization ? 0 : currentContext.firstColumnIndex;
101
+ var lastColumnToRender = !hasVirtualization ? maxLastColumn : currentContext.lastColumnIndex;
213
102
  var renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
214
103
  return {
215
104
  renderedColumns: renderedColumns,
216
105
  firstColumnToRender: firstColumnToRender,
217
- lastColumnToRender: lastColumnToRender,
218
- minFirstColumn: minFirstColumn,
219
- maxLastColumn: maxLastColumn
106
+ lastColumnToRender: lastColumnToRender
220
107
  };
221
108
  };
109
+ var getFiller = function getFiller(params) {
110
+ var borderTop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
111
+ var isPinnedRight = (params == null ? void 0 : params.position) === GridPinnedColumnPosition.RIGHT;
112
+ var hasScrollbarFiller = visiblePinnedColumns.right.length > 0 && isPinnedRight || visiblePinnedColumns.right.length === 0 && (params == null ? void 0 : params.position) === undefined;
113
+ return /*#__PURE__*/_jsxs(React.Fragment, {
114
+ children: [(params == null ? void 0 : params.position) === undefined && /*#__PURE__*/_jsx(SpaceFiller, {
115
+ className: gridClasses.columnHeader
116
+ }), hasScrollbarFiller && /*#__PURE__*/_jsx(ScrollbarFiller, {
117
+ header: true,
118
+ borderTop: borderTop,
119
+ pinnedRight: isPinnedRight
120
+ })]
121
+ });
122
+ };
222
123
  var getColumnHeaders = function getColumnHeaders(params) {
223
124
  var other = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
224
- var columnsToRender = getColumnsToRender(params);
225
- if (columnsToRender == null) {
226
- return null;
227
- }
228
- var renderedColumns = columnsToRender.renderedColumns,
229
- firstColumnToRender = columnsToRender.firstColumnToRender;
125
+ var _getColumnsToRender = getColumnsToRender(params),
126
+ renderedColumns = _getColumnsToRender.renderedColumns,
127
+ firstColumnToRender = _getColumnsToRender.firstColumnToRender;
230
128
  var columns = [];
231
129
  for (var i = 0; i < renderedColumns.length; i += 1) {
232
130
  var colDef = renderedColumns[i];
@@ -238,7 +136,7 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
238
136
  columns.push( /*#__PURE__*/_jsx(GridColumnHeaderItem, _extends({}, sortColumnLookup[colDef.field], {
239
137
  columnMenuOpen: open,
240
138
  filterItemsCounter: filterColumnLookup[colDef.field] && filterColumnLookup[colDef.field].length,
241
- headerHeight: headerHeight,
139
+ headerHeight: dimensions.headerHeight,
242
140
  isDragging: colDef.field === dragCol,
243
141
  colDef: colDef,
244
142
  colIndex: columnIndex,
@@ -247,11 +145,13 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
247
145
  tabIndex: tabIndex
248
146
  }, other), colDef.field));
249
147
  }
250
- return /*#__PURE__*/_jsx(GridColumnHeaderRow, {
148
+ return /*#__PURE__*/_jsxs(GridColumnHeaderRow, {
251
149
  role: "row",
252
150
  "aria-rowindex": headerGroupingMaxDepth + 1,
253
- ownerState: rootProps,
254
- children: columns
151
+ ownerState: {
152
+ params: params
153
+ },
154
+ children: [columns, getFiller(params)]
255
155
  });
256
156
  };
257
157
  var getColumnGroupHeaders = function getColumnGroupHeaders(params) {
@@ -259,7 +159,7 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
259
159
  return null;
260
160
  }
261
161
  var columnsToRender = getColumnsToRender(params);
262
- if (columnsToRender == null || columnsToRender.renderedColumns.length === 0) {
162
+ if (columnsToRender.renderedColumns.length === 0) {
263
163
  return null;
264
164
  }
265
165
  var firstColumnToRender = columnsToRender.firstColumnToRender,
@@ -267,17 +167,17 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
267
167
  var columns = [];
268
168
  var headerToRender = [];
269
169
  var _loop = function _loop(depth) {
270
- var _apiRef$current$unsta, _apiRef$current$unsta2;
170
+ var _apiRef$current$getCo, _apiRef$current$getCo2;
271
171
  var rowStructure = columnGroupsHeaderStructure[depth];
272
172
  var firstColumnFieldToRender = visibleColumns[firstColumnToRender].field;
273
- var firstGroupToRender = (_apiRef$current$unsta = apiRef.current.unstable_getColumnGroupPath(firstColumnFieldToRender)[depth]) != null ? _apiRef$current$unsta : null;
173
+ var firstGroupToRender = (_apiRef$current$getCo = apiRef.current.getColumnGroupPath(firstColumnFieldToRender)[depth]) != null ? _apiRef$current$getCo : null;
274
174
  var firstGroupIndex = rowStructure.findIndex(function (_ref4) {
275
175
  var groupId = _ref4.groupId,
276
176
  columnFields = _ref4.columnFields;
277
177
  return groupId === firstGroupToRender && columnFields.includes(firstColumnFieldToRender);
278
178
  });
279
179
  var lastColumnFieldToRender = visibleColumns[lastColumnToRender - 1].field;
280
- var lastGroupToRender = (_apiRef$current$unsta2 = apiRef.current.unstable_getColumnGroupPath(lastColumnFieldToRender)[depth]) != null ? _apiRef$current$unsta2 : null;
180
+ var lastGroupToRender = (_apiRef$current$getCo2 = apiRef.current.getColumnGroupPath(lastColumnFieldToRender)[depth]) != null ? _apiRef$current$getCo2 : null;
281
181
  var lastGroupIndex = rowStructure.findIndex(function (_ref5) {
282
182
  var groupId = _ref5.groupId,
283
183
  columnFields = _ref5.columnFields;
@@ -327,15 +227,14 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
327
227
  _loop(depth);
328
228
  }
329
229
  headerToRender.forEach(function (depthInfo, depthIndex) {
330
- columns.push( /*#__PURE__*/_jsx(GridColumnHeaderRow, {
331
- style: {
332
- height: "".concat(headerHeight, "px"),
333
- transform: "translateX(-".concat(depthInfo.leftOverflow, "px)")
334
- },
230
+ columns.push( /*#__PURE__*/_jsxs(GridColumnHeaderRow, {
335
231
  role: "row",
336
232
  "aria-rowindex": depthIndex + 1,
337
- ownerState: rootProps,
338
- children: depthInfo.elements.map(function (_ref3, groupIndex) {
233
+ ownerState: {
234
+ params: params,
235
+ leftOverflow: depthInfo.leftOverflow
236
+ },
237
+ children: [depthInfo.elements.map(function (_ref3, groupIndex) {
339
238
  var groupId = _ref3.groupId,
340
239
  width = _ref3.width,
341
240
  fields = _ref3.fields,
@@ -350,38 +249,27 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
350
249
  depth: depthIndex,
351
250
  isLastColumn: colIndex === visibleColumns.length - fields.length,
352
251
  maxDepth: headerToRender.length,
353
- height: headerHeight,
252
+ height: dimensions.headerHeight,
354
253
  hasFocus: hasFocus,
355
254
  tabIndex: tabIndex
356
255
  }, groupIndex);
357
- })
256
+ }), getFiller(params)]
358
257
  }, depthIndex));
359
258
  });
360
259
  return columns;
361
260
  };
362
- var rootStyle = {
363
- minHeight: totalHeaderHeight,
364
- maxHeight: totalHeaderHeight,
365
- lineHeight: "".concat(headerHeight, "px")
366
- };
367
261
  return {
368
262
  renderContext: renderContext,
263
+ getFiller: getFiller,
369
264
  getColumnHeaders: getColumnHeaders,
370
265
  getColumnsToRender: getColumnsToRender,
371
266
  getColumnGroupHeaders: getColumnGroupHeaders,
372
267
  isDragging: !!dragCol,
373
- getRootProps: function getRootProps() {
374
- var other = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
375
- return _extends({
376
- style: rootStyle
377
- }, other);
378
- },
379
268
  getInnerProps: function getInnerProps() {
380
269
  return {
381
270
  ref: handleInnerRef,
382
271
  role: 'rowgroup'
383
272
  };
384
- },
385
- headerHeight: headerHeight
273
+ }
386
274
  };
387
275
  };