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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (501) hide show
  1. package/CHANGELOG.md +554 -51
  2. package/DataGrid/DataGrid.js +15 -27
  3. package/DataGrid/useDataGridComponent.js +2 -1
  4. package/DataGrid/useDataGridProps.js +1 -0
  5. package/README.md +1 -1
  6. package/colDef/gridDateColDef.js +1 -1
  7. package/components/GridColumnHeaders.d.ts +3 -2
  8. package/components/GridColumnHeaders.js +3 -11
  9. package/components/GridDetailPanels.d.ts +5 -0
  10. package/components/GridDetailPanels.js +4 -0
  11. package/components/GridHeaders.d.ts +4 -0
  12. package/components/GridHeaders.js +53 -0
  13. package/components/GridPagination.d.ts +4 -4
  14. package/components/GridPagination.js +1 -1
  15. package/components/GridPinnedRows.d.ts +7 -0
  16. package/components/GridPinnedRows.js +4 -0
  17. package/components/GridRow.d.ts +7 -4
  18. package/components/GridRow.js +260 -97
  19. package/components/GridScrollbarFillerCell.d.ts +7 -0
  20. package/components/GridScrollbarFillerCell.js +39 -0
  21. package/components/base/GridBody.d.ts +2 -13
  22. package/components/base/GridBody.js +2 -116
  23. package/components/base/GridOverlays.js +10 -21
  24. package/components/cell/GridActionsCell.js +1 -1
  25. package/components/cell/GridActionsCellItem.d.ts +6 -6
  26. package/components/cell/GridCell.d.ts +15 -21
  27. package/components/cell/GridCell.js +68 -373
  28. package/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  29. package/components/columnHeaders/GridColumnHeaderItem.d.ts +2 -1
  30. package/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  31. package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -0
  32. package/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  33. package/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  34. package/components/containers/GridRoot.js +18 -15
  35. package/components/containers/GridRootStyles.js +307 -204
  36. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  37. package/components/panel/GridPanel.d.ts +3 -3
  38. package/components/panel/GridPanel.js +3 -4
  39. package/components/panel/filterPanel/GridFilterForm.d.ts +6 -4
  40. package/components/panel/filterPanel/GridFilterForm.js +32 -15
  41. package/components/panel/filterPanel/GridFilterPanel.js +46 -20
  42. package/components/toolbar/GridToolbarColumnsButton.d.ts +13 -1
  43. package/components/toolbar/GridToolbarColumnsButton.js +40 -22
  44. package/components/toolbar/GridToolbarDensitySelector.d.ts +13 -1
  45. package/components/toolbar/GridToolbarDensitySelector.js +40 -22
  46. package/components/toolbar/GridToolbarExport.d.ts +10 -1
  47. package/components/toolbar/GridToolbarExport.js +6 -1
  48. package/components/toolbar/GridToolbarExportContainer.d.ts +15 -1
  49. package/components/toolbar/GridToolbarExportContainer.js +41 -23
  50. package/components/toolbar/GridToolbarFilterButton.d.ts +5 -4
  51. package/components/toolbar/GridToolbarFilterButton.js +6 -10
  52. package/components/toolbar/GridToolbarQuickFilter.d.ts +4 -0
  53. package/components/toolbar/GridToolbarQuickFilter.js +4 -0
  54. package/components/virtualization/GridBottomContainer.d.ts +2 -0
  55. package/components/virtualization/GridBottomContainer.js +25 -0
  56. package/components/{containers → virtualization}/GridMainContainer.d.ts +2 -0
  57. package/components/virtualization/GridMainContainer.js +20 -0
  58. package/components/virtualization/GridTopContainer.d.ts +2 -0
  59. package/components/virtualization/GridTopContainer.js +35 -0
  60. package/components/virtualization/GridVirtualScrollbar.d.ts +7 -0
  61. package/components/virtualization/GridVirtualScrollbar.js +131 -0
  62. package/components/virtualization/GridVirtualScroller.d.ts +4 -4
  63. package/components/virtualization/GridVirtualScroller.js +69 -16
  64. package/components/virtualization/GridVirtualScrollerFiller.d.ts +4 -0
  65. package/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  66. package/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  67. package/constants/defaultGridSlotsComponents.js +6 -2
  68. package/constants/gridClasses.d.ts +60 -8
  69. package/constants/gridClasses.js +1 -1
  70. package/hooks/core/gridCoreSelector.d.ts +6 -0
  71. package/hooks/core/gridCoreSelector.js +5 -0
  72. package/hooks/core/useGridInitialization.js +4 -0
  73. package/hooks/core/useGridLoggerFactory.js +2 -2
  74. package/hooks/core/useGridRefs.d.ts +3 -0
  75. package/hooks/core/useGridRefs.js +13 -0
  76. package/hooks/core/useGridTheme.d.ts +3 -0
  77. package/hooks/core/useGridTheme.js +19 -0
  78. package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
  79. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -1
  80. package/hooks/features/columnGrouping/useGridColumnGrouping.js +13 -18
  81. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +13 -18
  82. package/hooks/features/columnHeaders/useGridColumnHeaders.js +68 -162
  83. package/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  84. package/hooks/features/columns/gridColumnsInterfaces.d.ts +17 -0
  85. package/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  86. package/hooks/features/columns/gridColumnsSelector.d.ts +14 -1
  87. package/hooks/features/columns/gridColumnsSelector.js +52 -0
  88. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -5
  89. package/hooks/features/columns/gridColumnsUtils.js +10 -12
  90. package/hooks/features/columns/index.d.ts +2 -2
  91. package/hooks/features/columns/index.js +2 -1
  92. package/hooks/features/columns/useGridColumnSpanning.js +62 -61
  93. package/hooks/features/columns/useGridColumns.js +20 -23
  94. package/hooks/features/dimensions/gridDimensionsApi.d.ts +60 -11
  95. package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +2 -0
  96. package/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  97. package/hooks/features/dimensions/index.d.ts +2 -0
  98. package/hooks/features/dimensions/index.js +1 -0
  99. package/hooks/features/dimensions/useGridDimensions.d.ts +7 -1
  100. package/hooks/features/dimensions/useGridDimensions.js +216 -148
  101. package/hooks/features/editing/useGridCellEditing.js +4 -4
  102. package/hooks/features/editing/useGridRowEditing.js +4 -4
  103. package/hooks/features/export/serializers/csvSerializer.js +3 -3
  104. package/hooks/features/export/useGridPrintExport.js +1 -1
  105. package/hooks/features/filter/gridFilterUtils.js +5 -5
  106. package/hooks/features/filter/useGridFilter.js +3 -3
  107. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -2
  108. package/hooks/features/focus/gridFocusStateSelector.js +2 -6
  109. package/hooks/features/focus/useGridFocus.js +3 -3
  110. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  111. package/hooks/features/pagination/gridPaginationUtils.js +2 -2
  112. package/hooks/features/pagination/useGridPagination.js +3 -5
  113. package/hooks/features/rowSelection/useGridRowSelection.js +1 -1
  114. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -0
  115. package/hooks/features/rows/gridRowsSelector.d.ts +2 -2
  116. package/hooks/features/rows/gridRowsSelector.js +5 -5
  117. package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
  118. package/hooks/features/rows/gridRowsUtils.js +6 -6
  119. package/hooks/features/rows/useGridRows.js +7 -7
  120. package/hooks/features/rows/useGridRowsMeta.js +9 -6
  121. package/hooks/features/scroll/useGridScroll.js +8 -10
  122. package/hooks/features/sorting/gridSortingUtils.js +5 -3
  123. package/hooks/features/sorting/useGridSorting.d.ts +1 -1
  124. package/hooks/features/sorting/useGridSorting.js +15 -10
  125. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +14 -0
  126. package/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  127. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +27 -42
  128. package/hooks/features/virtualization/useGridVirtualScroller.js +441 -438
  129. package/hooks/features/virtualization/useGridVirtualization.d.ts +8 -0
  130. package/hooks/features/virtualization/useGridVirtualization.js +8 -1
  131. package/hooks/utils/index.d.ts +3 -0
  132. package/hooks/utils/index.js +4 -1
  133. package/hooks/utils/useGridApiContext.js +1 -1
  134. package/hooks/utils/useGridAriaAttributes.js +1 -2
  135. package/hooks/utils/useGridNativeEventListener.js +4 -9
  136. package/hooks/utils/useGridPrivateApiContext.js +1 -1
  137. package/hooks/utils/useGridRootProps.js +1 -1
  138. package/hooks/utils/useGridSelector.js +1 -1
  139. package/hooks/utils/useResizeObserver.d.ts +2 -0
  140. package/hooks/utils/useResizeObserver.js +36 -0
  141. package/hooks/utils/useRunOnce.d.ts +5 -0
  142. package/hooks/utils/useRunOnce.js +18 -0
  143. package/index.d.ts +0 -1
  144. package/index.js +1 -2
  145. package/internals/index.d.ts +13 -9
  146. package/internals/index.js +9 -7
  147. package/internals/utils/index.d.ts +1 -0
  148. package/internals/utils/index.js +2 -1
  149. package/internals/utils/propValidation.d.ts +4 -0
  150. package/internals/utils/propValidation.js +19 -0
  151. package/legacy/DataGrid/DataGrid.js +20 -29
  152. package/legacy/DataGrid/useDataGridComponent.js +2 -1
  153. package/legacy/DataGrid/useDataGridProps.js +1 -0
  154. package/legacy/colDef/gridDateColDef.js +1 -1
  155. package/legacy/components/GridColumnHeaders.js +3 -11
  156. package/legacy/components/GridDetailPanels.js +4 -0
  157. package/legacy/components/GridHeaders.js +53 -0
  158. package/legacy/components/GridPagination.js +1 -1
  159. package/legacy/components/GridPinnedRows.js +4 -0
  160. package/legacy/components/GridRow.js +258 -98
  161. package/legacy/components/GridScrollbarFillerCell.js +36 -0
  162. package/legacy/components/base/GridBody.js +2 -114
  163. package/legacy/components/base/GridOverlays.js +10 -25
  164. package/legacy/components/cell/GridActionsCell.js +1 -1
  165. package/legacy/components/cell/GridCell.js +70 -378
  166. package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  167. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  168. package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  169. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  170. package/legacy/components/containers/GridRoot.js +18 -15
  171. package/legacy/components/containers/GridRootStyles.js +215 -137
  172. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  173. package/legacy/components/panel/GridPanel.js +3 -4
  174. package/legacy/components/panel/filterPanel/GridFilterForm.js +31 -14
  175. package/legacy/components/panel/filterPanel/GridFilterPanel.js +49 -20
  176. package/legacy/components/toolbar/GridToolbarColumnsButton.js +40 -21
  177. package/legacy/components/toolbar/GridToolbarDensitySelector.js +40 -21
  178. package/legacy/components/toolbar/GridToolbarExport.js +6 -1
  179. package/legacy/components/toolbar/GridToolbarExportContainer.js +40 -21
  180. package/legacy/components/toolbar/GridToolbarFilterButton.js +6 -10
  181. package/legacy/components/toolbar/GridToolbarQuickFilter.js +4 -0
  182. package/legacy/components/virtualization/GridBottomContainer.js +25 -0
  183. package/legacy/components/virtualization/GridMainContainer.js +20 -0
  184. package/legacy/components/virtualization/GridTopContainer.js +35 -0
  185. package/legacy/components/virtualization/GridVirtualScrollbar.js +129 -0
  186. package/legacy/components/virtualization/GridVirtualScroller.js +67 -16
  187. package/legacy/components/virtualization/GridVirtualScrollerFiller.js +70 -0
  188. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  189. package/legacy/constants/defaultGridSlotsComponents.js +6 -2
  190. package/legacy/constants/gridClasses.js +1 -1
  191. package/legacy/hooks/core/gridCoreSelector.js +7 -0
  192. package/legacy/hooks/core/useGridInitialization.js +4 -0
  193. package/legacy/hooks/core/useGridLoggerFactory.js +2 -2
  194. package/legacy/hooks/core/useGridRefs.js +13 -0
  195. package/legacy/hooks/core/useGridTheme.js +21 -0
  196. package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
  197. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +13 -18
  198. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +69 -181
  199. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  200. package/legacy/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  201. package/legacy/hooks/features/columns/gridColumnsSelector.js +62 -0
  202. package/legacy/hooks/features/columns/gridColumnsUtils.js +10 -16
  203. package/legacy/hooks/features/columns/index.js +2 -1
  204. package/legacy/hooks/features/columns/useGridColumnSpanning.js +60 -59
  205. package/legacy/hooks/features/columns/useGridColumns.js +22 -23
  206. package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +3 -0
  207. package/legacy/hooks/features/dimensions/index.js +1 -0
  208. package/legacy/hooks/features/dimensions/useGridDimensions.js +226 -151
  209. package/legacy/hooks/features/editing/useGridCellEditing.js +4 -4
  210. package/legacy/hooks/features/editing/useGridRowEditing.js +4 -4
  211. package/legacy/hooks/features/export/serializers/csvSerializer.js +3 -3
  212. package/legacy/hooks/features/export/useGridPrintExport.js +1 -1
  213. package/legacy/hooks/features/filter/gridFilterUtils.js +5 -5
  214. package/legacy/hooks/features/filter/useGridFilter.js +3 -3
  215. package/legacy/hooks/features/focus/gridFocusStateSelector.js +2 -6
  216. package/legacy/hooks/features/focus/useGridFocus.js +3 -3
  217. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  218. package/legacy/hooks/features/pagination/gridPaginationUtils.js +2 -2
  219. package/legacy/hooks/features/pagination/useGridPagination.js +3 -5
  220. package/legacy/hooks/features/rowSelection/useGridRowSelection.js +1 -1
  221. package/legacy/hooks/features/rows/gridRowsSelector.js +5 -5
  222. package/legacy/hooks/features/rows/gridRowsUtils.js +6 -6
  223. package/legacy/hooks/features/rows/useGridParamsApi.js +4 -5
  224. package/legacy/hooks/features/rows/useGridRows.js +7 -7
  225. package/legacy/hooks/features/rows/useGridRowsMeta.js +9 -6
  226. package/legacy/hooks/features/scroll/useGridScroll.js +8 -10
  227. package/legacy/hooks/features/sorting/gridSortingUtils.js +5 -3
  228. package/legacy/hooks/features/sorting/useGridSorting.js +15 -10
  229. package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +29 -1
  230. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +490 -483
  231. package/legacy/hooks/features/virtualization/useGridVirtualization.js +8 -1
  232. package/legacy/hooks/utils/index.js +4 -1
  233. package/legacy/hooks/utils/useGridApiContext.js +1 -1
  234. package/legacy/hooks/utils/useGridAriaAttributes.js +1 -2
  235. package/legacy/hooks/utils/useGridNativeEventListener.js +4 -9
  236. package/legacy/hooks/utils/useGridPrivateApiContext.js +1 -1
  237. package/legacy/hooks/utils/useGridRootProps.js +1 -1
  238. package/legacy/hooks/utils/useGridSelector.js +1 -1
  239. package/legacy/hooks/utils/useResizeObserver.js +36 -0
  240. package/legacy/hooks/utils/useRunOnce.js +18 -0
  241. package/legacy/index.js +1 -2
  242. package/legacy/internals/index.js +9 -7
  243. package/legacy/internals/utils/index.js +2 -1
  244. package/legacy/internals/utils/propValidation.js +21 -0
  245. package/legacy/locales/hrHR.js +161 -0
  246. package/legacy/locales/index.js +4 -1
  247. package/legacy/locales/ptPT.js +161 -0
  248. package/legacy/locales/zhHK.js +161 -0
  249. package/legacy/models/index.js +0 -1
  250. package/legacy/models/params/index.js +1 -2
  251. package/legacy/utils/createSelector.js +1 -1
  252. package/legacy/utils/exportAs.js +1 -1
  253. package/legacy/utils/utils.js +10 -1
  254. package/locales/hrHR.d.ts +1 -0
  255. package/locales/hrHR.js +149 -0
  256. package/locales/index.d.ts +3 -0
  257. package/locales/index.js +4 -1
  258. package/locales/ptPT.d.ts +1 -0
  259. package/locales/ptPT.js +149 -0
  260. package/locales/zhHK.d.ts +1 -0
  261. package/locales/zhHK.js +149 -0
  262. package/models/api/gridColumnGroupingApi.d.ts +2 -2
  263. package/models/api/gridCoreApi.d.ts +16 -16
  264. package/models/api/gridRowsMetaApi.d.ts +1 -1
  265. package/models/api/gridVirtualizationApi.d.ts +2 -3
  266. package/models/events/gridEventLookup.d.ts +3 -3
  267. package/models/gridFilterModel.d.ts +1 -1
  268. package/models/gridSlotsComponent.d.ts +16 -2
  269. package/models/gridStateCommunity.d.ts +5 -1
  270. package/models/index.d.ts +0 -1
  271. package/models/index.js +0 -1
  272. package/models/params/index.d.ts +0 -1
  273. package/models/params/index.js +1 -2
  274. package/models/props/DataGridProps.d.ts +7 -12
  275. package/modern/DataGrid/DataGrid.js +15 -27
  276. package/modern/DataGrid/useDataGridComponent.js +2 -1
  277. package/modern/DataGrid/useDataGridProps.js +1 -0
  278. package/modern/colDef/gridDateColDef.js +1 -1
  279. package/modern/components/GridColumnHeaders.js +3 -11
  280. package/modern/components/GridDetailPanels.js +4 -0
  281. package/modern/components/GridHeaders.js +53 -0
  282. package/modern/components/GridPagination.js +1 -1
  283. package/modern/components/GridPinnedRows.js +4 -0
  284. package/modern/components/GridRow.js +258 -96
  285. package/modern/components/GridScrollbarFillerCell.js +39 -0
  286. package/modern/components/base/GridBody.js +2 -116
  287. package/modern/components/base/GridOverlays.js +10 -16
  288. package/modern/components/cell/GridActionsCell.js +1 -1
  289. package/modern/components/cell/GridCell.js +66 -370
  290. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  291. package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  292. package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  293. package/modern/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  294. package/modern/components/containers/GridRoot.js +18 -14
  295. package/modern/components/containers/GridRootStyles.js +307 -204
  296. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  297. package/modern/components/panel/GridPanel.js +3 -4
  298. package/modern/components/panel/filterPanel/GridFilterForm.js +31 -14
  299. package/modern/components/panel/filterPanel/GridFilterPanel.js +46 -20
  300. package/modern/components/toolbar/GridToolbarColumnsButton.js +38 -21
  301. package/modern/components/toolbar/GridToolbarDensitySelector.js +38 -21
  302. package/modern/components/toolbar/GridToolbarExport.js +6 -1
  303. package/modern/components/toolbar/GridToolbarExportContainer.js +39 -22
  304. package/modern/components/toolbar/GridToolbarFilterButton.js +6 -10
  305. package/modern/components/toolbar/GridToolbarQuickFilter.js +4 -0
  306. package/modern/components/virtualization/GridBottomContainer.js +25 -0
  307. package/modern/components/virtualization/GridMainContainer.js +20 -0
  308. package/modern/components/virtualization/GridTopContainer.js +35 -0
  309. package/modern/components/virtualization/GridVirtualScrollbar.js +131 -0
  310. package/modern/components/virtualization/GridVirtualScroller.js +69 -16
  311. package/modern/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  312. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  313. package/modern/constants/defaultGridSlotsComponents.js +6 -2
  314. package/modern/constants/gridClasses.js +1 -1
  315. package/modern/hooks/core/gridCoreSelector.js +5 -0
  316. package/modern/hooks/core/useGridInitialization.js +4 -0
  317. package/modern/hooks/core/useGridLoggerFactory.js +2 -2
  318. package/modern/hooks/core/useGridRefs.js +13 -0
  319. package/modern/hooks/core/useGridTheme.js +19 -0
  320. package/modern/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
  321. package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +11 -16
  322. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +67 -160
  323. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  324. package/modern/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  325. package/modern/hooks/features/columns/gridColumnsSelector.js +51 -0
  326. package/modern/hooks/features/columns/gridColumnsUtils.js +10 -12
  327. package/modern/hooks/features/columns/index.js +2 -1
  328. package/modern/hooks/features/columns/useGridColumnSpanning.js +62 -61
  329. package/modern/hooks/features/columns/useGridColumns.js +19 -21
  330. package/modern/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  331. package/modern/hooks/features/dimensions/index.js +1 -0
  332. package/modern/hooks/features/dimensions/useGridDimensions.js +214 -146
  333. package/modern/hooks/features/editing/useGridCellEditing.js +4 -4
  334. package/modern/hooks/features/editing/useGridRowEditing.js +4 -4
  335. package/modern/hooks/features/export/serializers/csvSerializer.js +3 -3
  336. package/modern/hooks/features/export/useGridPrintExport.js +1 -1
  337. package/modern/hooks/features/filter/gridFilterUtils.js +5 -5
  338. package/modern/hooks/features/filter/useGridFilter.js +3 -3
  339. package/modern/hooks/features/focus/gridFocusStateSelector.js +2 -6
  340. package/modern/hooks/features/focus/useGridFocus.js +3 -3
  341. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  342. package/modern/hooks/features/pagination/gridPaginationUtils.js +2 -2
  343. package/modern/hooks/features/pagination/useGridPagination.js +3 -5
  344. package/modern/hooks/features/rowSelection/useGridRowSelection.js +1 -1
  345. package/modern/hooks/features/rows/gridRowsSelector.js +2 -2
  346. package/modern/hooks/features/rows/gridRowsUtils.js +6 -6
  347. package/modern/hooks/features/rows/useGridRows.js +7 -7
  348. package/modern/hooks/features/rows/useGridRowsMeta.js +9 -6
  349. package/modern/hooks/features/scroll/useGridScroll.js +8 -9
  350. package/modern/hooks/features/sorting/gridSortingUtils.js +5 -3
  351. package/modern/hooks/features/sorting/useGridSorting.js +15 -10
  352. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  353. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +435 -432
  354. package/modern/hooks/features/virtualization/useGridVirtualization.js +8 -1
  355. package/modern/hooks/utils/index.js +4 -1
  356. package/modern/hooks/utils/useGridApiContext.js +1 -1
  357. package/modern/hooks/utils/useGridAriaAttributes.js +1 -1
  358. package/modern/hooks/utils/useGridNativeEventListener.js +3 -9
  359. package/modern/hooks/utils/useGridPrivateApiContext.js +1 -1
  360. package/modern/hooks/utils/useGridRootProps.js +1 -1
  361. package/modern/hooks/utils/useGridSelector.js +1 -1
  362. package/modern/hooks/utils/useResizeObserver.js +36 -0
  363. package/modern/hooks/utils/useRunOnce.js +18 -0
  364. package/modern/index.js +1 -2
  365. package/modern/internals/index.js +9 -7
  366. package/modern/internals/utils/index.js +2 -1
  367. package/modern/internals/utils/propValidation.js +19 -0
  368. package/modern/locales/hrHR.js +149 -0
  369. package/modern/locales/index.js +4 -1
  370. package/modern/locales/ptPT.js +149 -0
  371. package/modern/locales/zhHK.js +149 -0
  372. package/modern/models/index.js +0 -1
  373. package/modern/models/params/index.js +1 -2
  374. package/modern/utils/createSelector.js +1 -1
  375. package/modern/utils/exportAs.js +1 -1
  376. package/modern/utils/utils.js +10 -1
  377. package/node/DataGrid/DataGrid.js +15 -27
  378. package/node/DataGrid/useDataGridComponent.js +1 -0
  379. package/node/DataGrid/useDataGridProps.js +1 -0
  380. package/node/colDef/gridDateColDef.js +1 -1
  381. package/node/components/GridColumnHeaders.js +3 -11
  382. package/node/components/GridDetailPanels.js +10 -0
  383. package/node/components/GridHeaders.js +60 -0
  384. package/node/components/GridPagination.js +1 -1
  385. package/node/components/GridPinnedRows.js +10 -0
  386. package/node/components/GridRow.js +256 -94
  387. package/node/components/GridScrollbarFillerCell.js +47 -0
  388. package/node/components/base/GridBody.js +7 -118
  389. package/node/components/base/GridOverlays.js +9 -15
  390. package/node/components/cell/GridActionsCell.js +1 -1
  391. package/node/components/cell/GridCell.js +67 -370
  392. package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  393. package/node/components/columnHeaders/GridColumnHeaderItem.js +8 -4
  394. package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  395. package/node/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  396. package/node/components/containers/GridRoot.js +17 -14
  397. package/node/components/containers/GridRootStyles.js +175 -72
  398. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  399. package/node/components/panel/GridPanel.js +3 -4
  400. package/node/components/panel/filterPanel/GridFilterForm.js +30 -13
  401. package/node/components/panel/filterPanel/GridFilterPanel.js +45 -19
  402. package/node/components/toolbar/GridToolbarColumnsButton.js +36 -20
  403. package/node/components/toolbar/GridToolbarDensitySelector.js +36 -20
  404. package/node/components/toolbar/GridToolbarExport.js +6 -1
  405. package/node/components/toolbar/GridToolbarExportContainer.js +37 -21
  406. package/node/components/toolbar/GridToolbarFilterButton.js +6 -10
  407. package/node/components/toolbar/GridToolbarQuickFilter.js +4 -0
  408. package/node/components/virtualization/GridBottomContainer.js +34 -0
  409. package/node/components/{containers → virtualization}/GridMainContainer.js +7 -29
  410. package/node/components/virtualization/GridTopContainer.js +44 -0
  411. package/node/components/virtualization/GridVirtualScrollbar.js +138 -0
  412. package/node/components/virtualization/GridVirtualScroller.js +69 -17
  413. package/node/components/virtualization/GridVirtualScrollerFiller.js +77 -0
  414. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  415. package/node/constants/defaultGridSlotsComponents.js +5 -1
  416. package/node/constants/gridClasses.js +1 -1
  417. package/node/hooks/core/gridCoreSelector.js +12 -0
  418. package/node/hooks/core/useGridInitialization.js +4 -0
  419. package/node/hooks/core/useGridLoggerFactory.js +2 -2
  420. package/node/hooks/core/useGridRefs.js +22 -0
  421. package/node/hooks/core/useGridTheme.js +29 -0
  422. package/node/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
  423. package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +11 -16
  424. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +65 -159
  425. package/node/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  426. package/node/hooks/features/columns/gridColumnsInterfaces.js +11 -1
  427. package/node/hooks/features/columns/gridColumnsSelector.js +52 -1
  428. package/node/hooks/features/columns/gridColumnsUtils.js +10 -13
  429. package/node/hooks/features/columns/index.js +22 -61
  430. package/node/hooks/features/columns/useGridColumnSpanning.js +62 -61
  431. package/node/hooks/features/columns/useGridColumns.js +20 -22
  432. package/node/hooks/features/dimensions/gridDimensionsSelectors.js +8 -0
  433. package/node/hooks/features/dimensions/index.js +11 -0
  434. package/node/hooks/features/dimensions/useGridDimensions.js +215 -144
  435. package/node/hooks/features/editing/useGridCellEditing.js +4 -4
  436. package/node/hooks/features/editing/useGridRowEditing.js +4 -4
  437. package/node/hooks/features/export/serializers/csvSerializer.js +3 -3
  438. package/node/hooks/features/export/useGridPrintExport.js +1 -1
  439. package/node/hooks/features/filter/gridFilterUtils.js +5 -5
  440. package/node/hooks/features/filter/useGridFilter.js +2 -2
  441. package/node/hooks/features/focus/gridFocusStateSelector.js +3 -7
  442. package/node/hooks/features/focus/useGridFocus.js +2 -2
  443. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -15
  444. package/node/hooks/features/pagination/gridPaginationUtils.js +2 -2
  445. package/node/hooks/features/pagination/useGridPagination.js +3 -5
  446. package/node/hooks/features/rowSelection/useGridRowSelection.js +1 -1
  447. package/node/hooks/features/rows/gridRowsSelector.js +2 -2
  448. package/node/hooks/features/rows/gridRowsUtils.js +6 -6
  449. package/node/hooks/features/rows/useGridRows.js +7 -7
  450. package/node/hooks/features/rows/useGridRowsMeta.js +7 -5
  451. package/node/hooks/features/scroll/useGridScroll.js +8 -9
  452. package/node/hooks/features/sorting/gridSortingUtils.js +5 -3
  453. package/node/hooks/features/sorting/useGridSorting.js +15 -10
  454. package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  455. package/node/hooks/features/virtualization/useGridVirtualScroller.js +434 -431
  456. package/node/hooks/features/virtualization/useGridVirtualization.js +9 -1
  457. package/node/hooks/utils/index.js +36 -0
  458. package/node/hooks/utils/useGridApiContext.js +1 -1
  459. package/node/hooks/utils/useGridAriaAttributes.js +1 -1
  460. package/node/hooks/utils/useGridNativeEventListener.js +3 -9
  461. package/node/hooks/utils/useGridPrivateApiContext.js +1 -1
  462. package/node/hooks/utils/useGridRootProps.js +1 -1
  463. package/node/hooks/utils/useGridSelector.js +1 -1
  464. package/node/hooks/utils/useResizeObserver.js +44 -0
  465. package/node/hooks/utils/useRunOnce.js +27 -0
  466. package/node/index.js +1 -13
  467. package/node/internals/index.js +86 -71
  468. package/node/internals/utils/index.js +11 -0
  469. package/node/internals/utils/propValidation.js +26 -0
  470. package/node/locales/hrHR.js +155 -0
  471. package/node/locales/index.js +33 -0
  472. package/node/locales/ptPT.js +155 -0
  473. package/node/locales/zhHK.js +155 -0
  474. package/node/models/index.js +0 -11
  475. package/node/models/params/index.js +0 -11
  476. package/node/utils/createSelector.js +1 -1
  477. package/node/utils/exportAs.js +1 -1
  478. package/node/utils/utils.js +11 -1
  479. package/package.json +6 -6
  480. package/utils/createSelector.js +1 -1
  481. package/utils/exportAs.js +1 -1
  482. package/utils/utils.d.ts +6 -0
  483. package/utils/utils.js +10 -1
  484. package/components/DataGridVirtualScroller.d.ts +0 -3
  485. package/components/DataGridVirtualScroller.js +0 -35
  486. package/components/containers/GridMainContainer.js +0 -43
  487. package/legacy/components/DataGridVirtualScroller.js +0 -32
  488. package/legacy/components/containers/GridMainContainer.js +0 -45
  489. package/legacy/models/gridRootContainerRef.js +0 -1
  490. package/legacy/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  491. package/models/gridRootContainerRef.d.ts +0 -5
  492. package/models/gridRootContainerRef.js +0 -1
  493. package/models/params/gridRenderedRowsIntervalChangeParams.d.ts +0 -10
  494. package/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  495. package/modern/components/DataGridVirtualScroller.js +0 -35
  496. package/modern/components/containers/GridMainContainer.js +0 -42
  497. package/modern/models/gridRootContainerRef.js +0 -1
  498. package/modern/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  499. package/node/components/DataGridVirtualScroller.js +0 -42
  500. package/node/models/gridRootContainerRef.js +0 -5
  501. package/node/models/params/gridRenderedRowsIntervalChangeParams.js +0 -5
@@ -1,16 +1,21 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
7
+ exports.dimensionsStateInitializer = void 0;
6
8
  exports.useGridDimensions = useGridDimensions;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
7
10
  var React = _interopRequireWildcard(require("react"));
8
11
  var _utils = require("@mui/utils");
9
12
  var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
10
13
  var _useGridApiMethod = require("../../utils/useGridApiMethod");
11
14
  var _useGridLogger = require("../../utils/useGridLogger");
12
15
  var _columns = require("../columns");
16
+ var _gridDimensionsSelectors = require("./gridDimensionsSelectors");
13
17
  var _density = require("../density");
18
+ var _virtualization = require("../virtualization");
14
19
  var _utils2 = require("../../utils");
15
20
  var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
16
21
  var _gridRowsMetaSelector = require("../rows/gridRowsMetaSelector");
@@ -18,127 +23,83 @@ var _gridRowsUtils = require("../rows/gridRowsUtils");
18
23
  var _gridColumnsUtils = require("../columns/gridColumnsUtils");
19
24
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
25
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
- const isTestEnvironment = process.env.NODE_ENV === 'test';
22
- const hasScroll = ({
23
- content,
24
- container,
25
- scrollBarSize
26
- }) => {
27
- const hasScrollXIfNoYScrollBar = content.width > container.width;
28
- const hasScrollYIfNoXScrollBar = content.height > container.height;
29
- let hasScrollX = false;
30
- let hasScrollY = false;
31
- if (hasScrollXIfNoYScrollBar || hasScrollYIfNoXScrollBar) {
32
- hasScrollX = hasScrollXIfNoYScrollBar;
33
- hasScrollY = content.height + (hasScrollX ? scrollBarSize : 0) > container.height;
34
-
35
- // We recalculate the scroll x to consider the size of the y scrollbar.
36
- if (hasScrollY) {
37
- hasScrollX = content.width + scrollBarSize > container.width;
38
- }
39
- }
40
- return {
41
- hasScrollX,
42
- hasScrollY
43
- };
26
+ const EMPTY_SIZE = {
27
+ width: 0,
28
+ height: 0
44
29
  };
30
+ const EMPTY_DIMENSIONS = {
31
+ isReady: false,
32
+ root: EMPTY_SIZE,
33
+ viewportOuterSize: EMPTY_SIZE,
34
+ viewportInnerSize: EMPTY_SIZE,
35
+ contentSize: EMPTY_SIZE,
36
+ minimumSize: EMPTY_SIZE,
37
+ hasScrollX: false,
38
+ hasScrollY: false,
39
+ scrollbarSize: 0,
40
+ headerHeight: 0,
41
+ rowWidth: 0,
42
+ rowHeight: 0,
43
+ columnsTotalWidth: 0,
44
+ leftPinnedWidth: 0,
45
+ rightPinnedWidth: 0,
46
+ headersTotalHeight: 0,
47
+ topContainerHeight: 0,
48
+ bottomContainerHeight: 0
49
+ };
50
+ const dimensionsStateInitializer = state => {
51
+ const dimensions = EMPTY_DIMENSIONS;
52
+ return (0, _extends2.default)({}, state, {
53
+ dimensions
54
+ });
55
+ };
56
+ exports.dimensionsStateInitializer = dimensionsStateInitializer;
45
57
  function useGridDimensions(apiRef, props) {
46
58
  const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useResizeContainer');
47
59
  const errorShown = React.useRef(false);
48
- const rootDimensionsRef = React.useRef(null);
49
- const fullDimensionsRef = React.useRef(null);
60
+ const rootDimensionsRef = React.useRef(EMPTY_SIZE);
50
61
  const rowsMeta = (0, _utils2.useGridSelector)(apiRef, _gridRowsMetaSelector.gridRowsMetaSelector);
62
+ const pinnedColumns = (0, _utils2.useGridSelector)(apiRef, _columns.gridVisiblePinnedColumnDefinitionsSelector);
51
63
  const densityFactor = (0, _utils2.useGridSelector)(apiRef, _density.gridDensityFactorSelector);
52
64
  const rowHeight = Math.floor(props.rowHeight * densityFactor);
53
- const totalHeaderHeight = (0, _gridColumnsUtils.getTotalHeaderHeight)(apiRef, props.columnHeaderHeight);
54
- const updateGridDimensionsRef = React.useCallback(() => {
55
- const rootElement = apiRef.current.rootElementRef?.current;
56
- const columnsTotalWidth = (0, _columns.gridColumnsTotalWidthSelector)(apiRef);
57
- const pinnedRowsHeight = (0, _gridRowsUtils.calculatePinnedRowsHeight)(apiRef);
58
- if (!rootDimensionsRef.current) {
59
- return;
60
- }
61
- let scrollBarSize;
62
- if (props.scrollbarSize != null) {
63
- scrollBarSize = props.scrollbarSize;
64
- } else if (!columnsTotalWidth || !rootElement) {
65
- scrollBarSize = 0;
66
- } else {
67
- const doc = (0, _utils.unstable_ownerDocument)(rootElement);
68
- const scrollDiv = doc.createElement('div');
69
- scrollDiv.style.width = '99px';
70
- scrollDiv.style.height = '99px';
71
- scrollDiv.style.position = 'absolute';
72
- scrollDiv.style.overflow = 'scroll';
73
- scrollDiv.className = 'scrollDiv';
74
- rootElement.appendChild(scrollDiv);
75
- scrollBarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
76
- rootElement.removeChild(scrollDiv);
77
- }
78
- let viewportOuterSize;
79
- let hasScrollX;
80
- let hasScrollY;
81
- if (props.autoHeight) {
82
- hasScrollY = false;
83
- hasScrollX = Math.round(columnsTotalWidth) > Math.round(rootDimensionsRef.current.width);
84
- viewportOuterSize = {
85
- width: rootDimensionsRef.current.width,
86
- height: rowsMeta.currentPageTotalHeight + (hasScrollX ? scrollBarSize : 0)
87
- };
88
- } else {
89
- viewportOuterSize = {
90
- width: rootDimensionsRef.current.width,
91
- height: Math.max(rootDimensionsRef.current.height - totalHeaderHeight, 0)
92
- };
93
- const scrollInformation = hasScroll({
94
- content: {
95
- width: Math.round(columnsTotalWidth),
96
- height: rowsMeta.currentPageTotalHeight
97
- },
98
- container: {
99
- width: Math.round(viewportOuterSize.width),
100
- height: viewportOuterSize.height - pinnedRowsHeight.top - pinnedRowsHeight.bottom
101
- },
102
- scrollBarSize
103
- });
104
- hasScrollY = scrollInformation.hasScrollY;
105
- hasScrollX = scrollInformation.hasScrollX;
106
- }
107
- const viewportInnerSize = {
108
- width: viewportOuterSize.width - (hasScrollY ? scrollBarSize : 0),
109
- height: viewportOuterSize.height - (hasScrollX ? scrollBarSize : 0)
110
- };
111
- const newFullDimensions = {
112
- viewportOuterSize,
113
- viewportInnerSize,
114
- hasScrollX,
115
- hasScrollY,
116
- scrollBarSize
117
- };
118
- const prevDimensions = fullDimensionsRef.current;
119
- fullDimensionsRef.current = newFullDimensions;
120
- if (newFullDimensions.viewportInnerSize.width !== prevDimensions?.viewportInnerSize.width || newFullDimensions.viewportInnerSize.height !== prevDimensions?.viewportInnerSize.height) {
121
- apiRef.current.publishEvent('viewportInnerSizeChange', newFullDimensions.viewportInnerSize);
122
- }
123
- }, [apiRef, props.scrollbarSize, props.autoHeight, rowsMeta.currentPageTotalHeight, totalHeaderHeight]);
65
+ const headerHeight = Math.floor(props.columnHeaderHeight * densityFactor);
66
+ const columnsTotalWidth = roundToDecimalPlaces((0, _columns.gridColumnsTotalWidthSelector)(apiRef), 6);
67
+ // XXX: The `props as any` below is not resilient to change.
68
+ const hasHeaderFilters = Boolean(props.headerFilters);
69
+ const headersTotalHeight = (0, _gridColumnsUtils.getTotalHeaderHeight)(apiRef, props.columnHeaderHeight) + Number(hasHeaderFilters) * headerHeight;
70
+ const leftPinnedWidth = pinnedColumns.left.reduce((w, col) => w + col.computedWidth, 0);
71
+ const rightPinnedWidth = pinnedColumns.right.reduce((w, col) => w + col.computedWidth, 0);
124
72
  const [savedSize, setSavedSize] = React.useState();
125
73
  const debouncedSetSavedSize = React.useMemo(() => (0, _utils.unstable_debounce)(setSavedSize, 60), []);
126
74
  const previousSize = React.useRef();
127
- (0, _utils.unstable_useEnhancedEffect)(() => {
128
- if (savedSize) {
129
- updateGridDimensionsRef();
130
- apiRef.current.publishEvent('debouncedResize', rootDimensionsRef.current);
131
- }
132
- }, [apiRef, savedSize, updateGridDimensionsRef]);
133
-
134
- // This is the function called by apiRef.current.resize()
75
+ const getRootDimensions = () => apiRef.current.state.dimensions;
76
+ const setDimensions = (0, _utils.unstable_useEventCallback)(dimensions => {
77
+ apiRef.current.setState(state => (0, _extends2.default)({}, state, {
78
+ dimensions
79
+ }));
80
+ });
135
81
  const resize = React.useCallback(() => {
136
- apiRef.current.computeSizeAndPublishResizeEvent();
82
+ const element = apiRef.current.mainElementRef.current;
83
+ if (!element) {
84
+ return;
85
+ }
86
+ const computedStyle = (0, _utils.unstable_ownerWindow)(element).getComputedStyle(element);
87
+ const height = parseFloat(computedStyle.height) || 0;
88
+ const width = parseFloat(computedStyle.width) || 0;
89
+ const hasHeightChanged = height !== previousSize.current?.height;
90
+ const hasWidthChanged = width !== previousSize.current?.width;
91
+ if (!previousSize.current || hasHeightChanged || hasWidthChanged) {
92
+ const size = {
93
+ width,
94
+ height
95
+ };
96
+ apiRef.current.publishEvent('resize', size);
97
+ previousSize.current = size;
98
+ }
137
99
  }, [apiRef]);
138
- const getRootDimensions = React.useCallback(() => fullDimensionsRef.current, []);
139
100
  const getViewportPageSize = React.useCallback(() => {
140
- const dimensions = apiRef.current.getRootDimensions();
141
- if (!dimensions) {
101
+ const dimensions = (0, _gridDimensionsSelectors.gridDimensionsSelector)(apiRef.current.state);
102
+ if (!dimensions.isReady) {
142
103
  return 0;
143
104
  }
144
105
  const currentPage = (0, _useGridVisibleRows.getVisibleRows)(apiRef, {
@@ -149,44 +110,135 @@ function useGridDimensions(apiRef, props) {
149
110
  // TODO: Use a combination of scrollTop, dimensions.viewportInnerSize.height and rowsMeta.possitions
150
111
  // to find out the maximum number of rows that can fit in the visible part of the grid
151
112
  if (props.getRowHeight) {
152
- const renderContext = apiRef.current.getRenderContext();
113
+ const renderContext = (0, _virtualization.gridRenderContextSelector)(apiRef);
153
114
  const viewportPageSize = renderContext.lastRowIndex - renderContext.firstRowIndex;
154
115
  return Math.min(viewportPageSize - 1, currentPage.rows.length);
155
116
  }
156
117
  const maximumPageSizeWithoutScrollBar = Math.floor(dimensions.viewportInnerSize.height / rowHeight);
157
118
  return Math.min(maximumPageSizeWithoutScrollBar, currentPage.rows.length);
158
119
  }, [apiRef, props.pagination, props.paginationMode, props.getRowHeight, rowHeight]);
159
- const computeSizeAndPublishResizeEvent = React.useCallback(() => {
160
- const mainEl = apiRef.current.mainElementRef?.current;
161
- if (!mainEl) {
162
- return;
163
- }
164
- const win = (0, _utils.unstable_ownerWindow)(mainEl);
165
- const computedStyle = win.getComputedStyle(mainEl);
166
- const height = parseFloat(computedStyle.height) || 0;
167
- const width = parseFloat(computedStyle.width) || 0;
168
- const hasHeightChanged = height !== previousSize.current?.height;
169
- const hasWidthChanged = width !== previousSize.current?.width;
170
- if (!previousSize.current || hasHeightChanged || hasWidthChanged) {
171
- const size = {
172
- width,
173
- height
120
+ const updateDimensions = React.useCallback(() => {
121
+ const rootElement = apiRef.current.rootElementRef.current;
122
+ const pinnedRowsHeight = (0, _gridRowsUtils.calculatePinnedRowsHeight)(apiRef);
123
+ const scrollbarSize = measureScrollbarSize(rootElement, columnsTotalWidth, props.scrollbarSize);
124
+ const topContainerHeight = headersTotalHeight + pinnedRowsHeight.top;
125
+ const bottomContainerHeight = pinnedRowsHeight.bottom;
126
+ const contentSize = {
127
+ width: columnsTotalWidth,
128
+ height: rowsMeta.currentPageTotalHeight
129
+ };
130
+ let viewportOuterSize;
131
+ let viewportInnerSize;
132
+ let hasScrollX = false;
133
+ let hasScrollY = false;
134
+ if (props.autoHeight) {
135
+ hasScrollY = false;
136
+ hasScrollX = Math.round(columnsTotalWidth) > Math.round(rootDimensionsRef.current.width);
137
+ viewportOuterSize = {
138
+ width: rootDimensionsRef.current.width,
139
+ height: topContainerHeight + bottomContainerHeight + contentSize.height
174
140
  };
175
- apiRef.current.publishEvent('resize', size);
176
- previousSize.current = size;
141
+ viewportInnerSize = {
142
+ width: Math.max(0, viewportOuterSize.width - (hasScrollY ? scrollbarSize : 0)),
143
+ height: Math.max(0, viewportOuterSize.height - (hasScrollX ? scrollbarSize : 0))
144
+ };
145
+ } else {
146
+ viewportOuterSize = {
147
+ width: rootDimensionsRef.current.width,
148
+ height: rootDimensionsRef.current.height
149
+ };
150
+ viewportInnerSize = {
151
+ width: Math.max(0, viewportOuterSize.width - leftPinnedWidth - rightPinnedWidth),
152
+ height: Math.max(0, viewportOuterSize.height - topContainerHeight - bottomContainerHeight)
153
+ };
154
+ const content = contentSize;
155
+ const container = viewportInnerSize;
156
+ const hasScrollXIfNoYScrollBar = content.width > container.width;
157
+ const hasScrollYIfNoXScrollBar = content.height > container.height;
158
+ if (hasScrollXIfNoYScrollBar || hasScrollYIfNoXScrollBar) {
159
+ hasScrollY = hasScrollYIfNoXScrollBar;
160
+ hasScrollX = content.width + (hasScrollY ? scrollbarSize : 0) > container.width;
161
+
162
+ // We recalculate the scroll y to consider the size of the x scrollbar.
163
+ if (hasScrollX) {
164
+ hasScrollY = content.height + scrollbarSize > container.height;
165
+ }
166
+ }
167
+ if (hasScrollY) {
168
+ viewportInnerSize.width -= scrollbarSize;
169
+ }
170
+ if (hasScrollX) {
171
+ viewportInnerSize.height -= scrollbarSize;
172
+ }
177
173
  }
178
- }, [apiRef]);
179
- const dimensionsApi = {
174
+ const rowWidth = Math.max(viewportOuterSize.width, columnsTotalWidth + (hasScrollY ? scrollbarSize : 0));
175
+ const minimumSize = {
176
+ width: contentSize.width,
177
+ height: topContainerHeight + contentSize.height + bottomContainerHeight
178
+ };
179
+ const newDimensions = {
180
+ isReady: true,
181
+ root: rootDimensionsRef.current,
182
+ viewportOuterSize,
183
+ viewportInnerSize,
184
+ contentSize,
185
+ minimumSize,
186
+ hasScrollX,
187
+ hasScrollY,
188
+ scrollbarSize,
189
+ headerHeight,
190
+ rowWidth,
191
+ rowHeight,
192
+ columnsTotalWidth,
193
+ leftPinnedWidth,
194
+ rightPinnedWidth,
195
+ headersTotalHeight,
196
+ topContainerHeight,
197
+ bottomContainerHeight
198
+ };
199
+ const prevDimensions = apiRef.current.state.dimensions;
200
+ setDimensions(newDimensions);
201
+ if (newDimensions.viewportInnerSize.width !== prevDimensions.viewportInnerSize.width || newDimensions.viewportInnerSize.height !== prevDimensions.viewportInnerSize.height) {
202
+ apiRef.current.publishEvent('viewportInnerSizeChange', newDimensions.viewportInnerSize);
203
+ }
204
+ apiRef.current.updateRenderContext?.();
205
+ }, [apiRef, setDimensions, props.scrollbarSize, props.autoHeight, rowsMeta.currentPageTotalHeight, rowHeight, headerHeight, columnsTotalWidth, headersTotalHeight, leftPinnedWidth, rightPinnedWidth]);
206
+ const apiPublic = {
180
207
  resize,
181
208
  getRootDimensions
182
209
  };
183
- const dimensionsPrivateApi = {
184
- getViewportPageSize,
185
- updateGridDimensionsRef,
186
- computeSizeAndPublishResizeEvent
210
+ const apiPrivate = {
211
+ updateDimensions,
212
+ getViewportPageSize
187
213
  };
188
- (0, _useGridApiMethod.useGridApiMethod)(apiRef, dimensionsApi, 'public');
189
- (0, _useGridApiMethod.useGridApiMethod)(apiRef, dimensionsPrivateApi, 'private');
214
+ (0, _useGridApiMethod.useGridApiMethod)(apiRef, apiPublic, 'public');
215
+ (0, _useGridApiMethod.useGridApiMethod)(apiRef, apiPrivate, 'private');
216
+ (0, _utils.unstable_useEnhancedEffect)(() => {
217
+ if (savedSize) {
218
+ updateDimensions();
219
+ apiRef.current.publishEvent('debouncedResize', rootDimensionsRef.current);
220
+ }
221
+ }, [apiRef, savedSize, updateDimensions]);
222
+ const root = apiRef.current.rootElementRef.current;
223
+ const dimensions = apiRef.current.state.dimensions;
224
+ (0, _utils.unstable_useEnhancedEffect)(() => {
225
+ if (!root) {
226
+ return;
227
+ }
228
+ const set = (k, v) => root.style.setProperty(k, v);
229
+ set('--DataGrid-width', `${dimensions.viewportOuterSize.width}px`);
230
+ set('--DataGrid-hasScrollX', `${Number(dimensions.hasScrollX)}`);
231
+ set('--DataGrid-hasScrollY', `${Number(dimensions.hasScrollY)}`);
232
+ set('--DataGrid-scrollbarSize', `${dimensions.scrollbarSize}px`);
233
+ set('--DataGrid-rowWidth', `${dimensions.rowWidth}px`);
234
+ set('--DataGrid-columnsTotalWidth', `${dimensions.columnsTotalWidth}px`);
235
+ set('--DataGrid-leftPinnedWidth', `${dimensions.leftPinnedWidth}px`);
236
+ set('--DataGrid-rightPinnedWidth', `${dimensions.rightPinnedWidth}px`);
237
+ set('--DataGrid-headerHeight', `${dimensions.headerHeight}px`);
238
+ set('--DataGrid-headersTotalHeight', `${dimensions.headersTotalHeight}px`);
239
+ set('--DataGrid-topContainerHeight', `${dimensions.topContainerHeight}px`);
240
+ set('--DataGrid-bottomContainerHeight', `${dimensions.bottomContainerHeight}px`);
241
+ }, [root, dimensions]);
190
242
  const isFirstSizing = React.useRef(true);
191
243
  const handleResize = React.useCallback(size => {
192
244
  rootDimensionsRef.current = size;
@@ -201,12 +253,6 @@ function useGridDimensions(apiRef, props) {
201
253
  logger.error(['The parent DOM element of the data grid has an empty width.', 'Please make sure that this element has an intrinsic width.', 'The grid displays with a width of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\n'));
202
254
  errorShown.current = true;
203
255
  }
204
- if (isTestEnvironment) {
205
- // We don't need to debounce the resize for tests.
206
- setSavedSize(size);
207
- isFirstSizing.current = false;
208
- return;
209
- }
210
256
  if (isFirstSizing.current) {
211
257
  // We want to initialize the grid dimensions as soon as possible to avoid flickering
212
258
  setSavedSize(size);
@@ -215,10 +261,35 @@ function useGridDimensions(apiRef, props) {
215
261
  }
216
262
  debouncedSetSavedSize(size);
217
263
  }, [props.autoHeight, debouncedSetSavedSize, logger]);
218
- (0, _utils.unstable_useEnhancedEffect)(() => updateGridDimensionsRef(), [updateGridDimensionsRef]);
219
- (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'sortedRowsSet', updateGridDimensionsRef);
220
- (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'paginationModelChange', updateGridDimensionsRef);
221
- (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'columnsChange', updateGridDimensionsRef);
264
+ (0, _utils.unstable_useEnhancedEffect)(updateDimensions, [updateDimensions]);
265
+ (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'sortedRowsSet', updateDimensions);
266
+ (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'paginationModelChange', updateDimensions);
267
+ (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'columnsChange', updateDimensions);
222
268
  (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'resize', handleResize);
223
269
  (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'debouncedResize', props.onResize);
270
+ }
271
+ function measureScrollbarSize(rootElement, columnsTotalWidth, scrollbarSize) {
272
+ if (scrollbarSize !== undefined) {
273
+ return scrollbarSize;
274
+ }
275
+ if (rootElement === null || columnsTotalWidth === 0) {
276
+ return 0;
277
+ }
278
+ const doc = (0, _utils.unstable_ownerDocument)(rootElement);
279
+ const scrollDiv = doc.createElement('div');
280
+ scrollDiv.style.width = '99px';
281
+ scrollDiv.style.height = '99px';
282
+ scrollDiv.style.position = 'absolute';
283
+ scrollDiv.style.overflow = 'scroll';
284
+ scrollDiv.className = 'scrollDiv';
285
+ rootElement.appendChild(scrollDiv);
286
+ const size = scrollDiv.offsetWidth - scrollDiv.clientWidth;
287
+ rootElement.removeChild(scrollDiv);
288
+ return size;
289
+ }
290
+
291
+ // Get rid of floating point imprecision errors
292
+ // https://github.com/mui/mui-x/issues/9550#issuecomment-1619020477
293
+ function roundToDecimalPlaces(value, decimals) {
294
+ return Math.round(value * 10 ** decimals) / 10 ** decimals;
224
295
  }
@@ -23,7 +23,7 @@ const _excluded = ["id", "field"],
23
23
  _excluded2 = ["id", "field"];
24
24
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
25
25
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
26
- const missingOnProcessRowUpdateErrorWarning = (0, _warning.buildWarning)(['MUI: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see http://mui.com/components/data-grid/editing/#server-side-persistence.'], 'error');
26
+ const missingOnProcessRowUpdateErrorWarning = (0, _warning.buildWarning)(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
27
27
  const useGridCellEditing = (apiRef, props) => {
28
28
  const [cellModesModel, setCellModesModel] = React.useState({});
29
29
  const cellModesModelRef = React.useRef(cellModesModel);
@@ -42,12 +42,12 @@ const useGridCellEditing = (apiRef, props) => {
42
42
  const throwIfNotEditable = React.useCallback((id, field) => {
43
43
  const params = apiRef.current.getCellParams(id, field);
44
44
  if (!apiRef.current.isCellEditable(params)) {
45
- throw new Error(`MUI: The cell with id=${id} and field=${field} is not editable.`);
45
+ throw new Error(`MUI X: The cell with id=${id} and field=${field} is not editable.`);
46
46
  }
47
47
  }, [apiRef]);
48
48
  const throwIfNotInMode = React.useCallback((id, field, mode) => {
49
49
  if (apiRef.current.getCellMode(id, field) !== mode) {
50
- throw new Error(`MUI: The cell with id=${id} and field=${field} is not in ${mode} mode.`);
50
+ throw new Error(`MUI X: The cell with id=${id} and field=${field} is not in ${mode} mode.`);
51
51
  }
52
52
  }, [apiRef]);
53
53
  const handleCellDoubleClick = React.useCallback((params, event) => {
@@ -311,7 +311,7 @@ const useGridCellEditing = (apiRef, props) => {
311
311
  });
312
312
  if (onProcessRowUpdateError) {
313
313
  onProcessRowUpdateError(errorThrown);
314
- } else {
314
+ } else if (process.env.NODE_ENV !== 'production') {
315
315
  missingOnProcessRowUpdateErrorWarning();
316
316
  }
317
317
  };
@@ -25,7 +25,7 @@ const _excluded = ["id"],
25
25
  _excluded2 = ["id"];
26
26
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
27
27
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
28
- const missingOnProcessRowUpdateErrorWarning = (0, _warning.buildWarning)(['MUI: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see http://mui.com/components/data-grid/editing/#server-side-persistence.'], 'error');
28
+ const missingOnProcessRowUpdateErrorWarning = (0, _warning.buildWarning)(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
29
29
  const useGridRowEditing = (apiRef, props) => {
30
30
  const [rowModesModel, setRowModesModel] = React.useState({});
31
31
  const rowModesModelRef = React.useRef(rowModesModel);
@@ -46,12 +46,12 @@ const useGridRowEditing = (apiRef, props) => {
46
46
  const throwIfNotEditable = React.useCallback((id, field) => {
47
47
  const params = apiRef.current.getCellParams(id, field);
48
48
  if (!apiRef.current.isCellEditable(params)) {
49
- throw new Error(`MUI: The cell with id=${id} and field=${field} is not editable.`);
49
+ throw new Error(`MUI X: The cell with id=${id} and field=${field} is not editable.`);
50
50
  }
51
51
  }, [apiRef]);
52
52
  const throwIfNotInMode = React.useCallback((id, mode) => {
53
53
  if (apiRef.current.getRowMode(id) !== mode) {
54
- throw new Error(`MUI: The row with id=${id} is not in ${mode} mode.`);
54
+ throw new Error(`MUI X: The row with id=${id} is not in ${mode} mode.`);
55
55
  }
56
56
  }, [apiRef]);
57
57
  const handleCellDoubleClick = React.useCallback((params, event) => {
@@ -388,7 +388,7 @@ const useGridRowEditing = (apiRef, props) => {
388
388
  });
389
389
  if (onProcessRowUpdateError) {
390
390
  onProcessRowUpdateError(errorThrown);
391
- } else {
391
+ } else if (process.env.NODE_ENV !== 'production') {
392
392
  missingOnProcessRowUpdateErrorWarning();
393
393
  }
394
394
  };
@@ -40,7 +40,7 @@ const serializeCellValue = (cellParams, options) => {
40
40
  return sanitizeCellValue(value, delimiterCharacter);
41
41
  };
42
42
  exports.serializeCellValue = serializeCellValue;
43
- const objectFormattedValueWarning = (0, _warning.buildWarning)(['MUI: When the value of a field is an object or a `renderCell` is provided, the CSV export might not display the value correctly.', 'You can provide a `valueFormatter` with a string representation to be used.']);
43
+ const objectFormattedValueWarning = (0, _warning.buildWarning)(['MUI X: When the value of a field is an object or a `renderCell` is provided, the CSV export might not display the value correctly.', 'You can provide a `valueFormatter` with a string representation to be used.']);
44
44
  class CSVRow {
45
45
  constructor(options) {
46
46
  this.options = void 0;
@@ -112,10 +112,10 @@ function buildCSV(options) {
112
112
  const filteredColumns = columns.filter(column => column.field !== _colDef.GRID_CHECKBOX_SELECTION_COL_DEF.field);
113
113
  const headerRows = [];
114
114
  if (includeColumnGroupsHeaders) {
115
- const columnGroupLookup = apiRef.current.unstable_getAllGroupDetails();
115
+ const columnGroupLookup = apiRef.current.getAllGroupDetails();
116
116
  let maxColumnGroupsDepth = 0;
117
117
  const columnGroupPathsLookup = filteredColumns.reduce((acc, column) => {
118
- const columnGroupPath = apiRef.current.unstable_getColumnGroupPath(column.field);
118
+ const columnGroupPath = apiRef.current.getColumnGroupPath(column.field);
119
119
  acc[column.field] = columnGroupPath;
120
120
  maxColumnGroupsDepth = Math.max(maxColumnGroupsDepth, columnGroupPath.length);
121
121
  return acc;
@@ -215,7 +215,7 @@ const useGridPrintExport = (apiRef, props) => {
215
215
  const exportDataAsPrint = React.useCallback(async options => {
216
216
  logger.debug(`Export data as Print`);
217
217
  if (!apiRef.current.rootElementRef.current) {
218
- throw new Error('MUI: No grid root element available.');
218
+ throw new Error('MUI X: No grid root element available.');
219
219
  }
220
220
  previousGridState.current = apiRef.current.exportState();
221
221
  // It appends that the visibility model is not exported, especially if columnVisibility is not controlled
@@ -44,9 +44,9 @@ const cleanFilterItem = (item, apiRef) => {
44
44
  return cleanItem;
45
45
  };
46
46
  exports.cleanFilterItem = cleanFilterItem;
47
- const filterModelDisableMultiColumnsFilteringWarning = (0, _warning.buildWarning)(['MUI: The `filterModel` can only contain a single item when the `disableMultipleColumnsFiltering` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
48
- const filterModelMissingItemIdWarning = (0, _warning.buildWarning)('MUI: The `id` field is required on `filterModel.items` when you use multiple filters.', 'error');
49
- const filterModelMissingItemOperatorWarning = (0, _warning.buildWarning)('MUI: The `operator` field is required on `filterModel.items`, one or more of your filtering item has no `operator` provided.', 'error');
47
+ const filterModelDisableMultiColumnsFilteringWarning = (0, _warning.buildWarning)(['MUI X: The `filterModel` can only contain a single item when the `disableMultipleColumnsFiltering` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
48
+ const filterModelMissingItemIdWarning = (0, _warning.buildWarning)('MUI X: The `id` field is required on `filterModel.items` when you use multiple filters.', 'error');
49
+ const filterModelMissingItemOperatorWarning = (0, _warning.buildWarning)('MUI X: The `operator` field is required on `filterModel.items`, one or more of your filtering item has no `operator` provided.', 'error');
50
50
  const sanitizeFilterModel = (model, disableMultipleColumnsFiltering, apiRef) => {
51
51
  const hasSeveralItems = model.items.length > 1;
52
52
  let items;
@@ -114,11 +114,11 @@ const getFilterCallbackFromItem = (filterItem, apiRef) => {
114
114
  });
115
115
  const filterOperators = column.filterOperators;
116
116
  if (!filterOperators?.length) {
117
- throw new Error(`MUI: No filter operators found for column '${column.field}'.`);
117
+ throw new Error(`MUI X: No filter operators found for column '${column.field}'.`);
118
118
  }
119
119
  const filterOperator = filterOperators.find(operator => operator.value === newFilterItem.operator);
120
120
  if (!filterOperator) {
121
- throw new Error(`MUI: No filter operator found for column '${column.field}' and operator value '${newFilterItem.operator}'.`);
121
+ throw new Error(`MUI X: No filter operator found for column '${column.field}' and operator value '${newFilterItem.operator}'.`);
122
122
  }
123
123
  const publicApiRef = (0, _getPublicApiRef.getPublicApiRef)(apiRef);
124
124
  const applyFilterOnRow = filterOperator.getApplyFilterFn(newFilterItem, column);
@@ -319,8 +319,8 @@ const useGridFilter = (apiRef, props) => {
319
319
  const handleColumnsChange = React.useCallback(() => {
320
320
  logger.debug('onColUpdated - GridColumns changed, applying filters');
321
321
  const filterModel = (0, _gridFilterSelector.gridFilterModelSelector)(apiRef);
322
- const filterableColumnsLookup = (0, _gridColumnsSelector.gridFilterableColumnLookupSelector)(apiRef);
323
- const newFilterItems = filterModel.items.filter(item => item.field && filterableColumnsLookup[item.field]);
322
+ const columnsLookup = (0, _gridColumnsSelector.gridColumnLookupSelector)(apiRef);
323
+ const newFilterItems = filterModel.items.filter(item => item.field && columnsLookup[item.field]);
324
324
  if (newFilterItems.length < filterModel.items.length) {
325
325
  apiRef.current.setFilterModel((0, _extends2.default)({}, filterModel, {
326
326
  items: newFilterItems
@@ -3,21 +3,17 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.unstable_gridTabIndexColumnGroupHeaderSelector = exports.unstable_gridFocusColumnGroupHeaderSelector = exports.gridTabIndexStateSelector = exports.gridTabIndexColumnHeaderSelector = exports.gridTabIndexColumnHeaderFilterSelector = exports.gridTabIndexCellSelector = exports.gridFocusStateSelector = exports.gridFocusColumnHeaderSelector = exports.gridFocusColumnHeaderFilterSelector = exports.gridFocusCellSelector = void 0;
6
+ exports.gridTabIndexStateSelector = exports.gridTabIndexColumnHeaderSelector = exports.gridTabIndexColumnHeaderFilterSelector = exports.gridTabIndexColumnGroupHeaderSelector = exports.gridTabIndexCellSelector = exports.gridFocusStateSelector = exports.gridFocusColumnHeaderSelector = exports.gridFocusColumnHeaderFilterSelector = exports.gridFocusColumnGroupHeaderSelector = exports.gridFocusCellSelector = void 0;
7
7
  var _createSelector = require("../../../utils/createSelector");
8
8
  const gridFocusStateSelector = state => state.focus;
9
9
  exports.gridFocusStateSelector = gridFocusStateSelector;
10
10
  const gridFocusCellSelector = exports.gridFocusCellSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.cell);
11
11
  const gridFocusColumnHeaderSelector = exports.gridFocusColumnHeaderSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.columnHeader);
12
12
  const gridFocusColumnHeaderFilterSelector = exports.gridFocusColumnHeaderFilterSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.columnHeaderFilter);
13
-
14
- // eslint-disable-next-line @typescript-eslint/naming-convention
15
- const unstable_gridFocusColumnGroupHeaderSelector = exports.unstable_gridFocusColumnGroupHeaderSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.columnGroupHeader);
13
+ const gridFocusColumnGroupHeaderSelector = exports.gridFocusColumnGroupHeaderSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.columnGroupHeader);
16
14
  const gridTabIndexStateSelector = state => state.tabIndex;
17
15
  exports.gridTabIndexStateSelector = gridTabIndexStateSelector;
18
16
  const gridTabIndexCellSelector = exports.gridTabIndexCellSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.cell);
19
17
  const gridTabIndexColumnHeaderSelector = exports.gridTabIndexColumnHeaderSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.columnHeader);
20
18
  const gridTabIndexColumnHeaderFilterSelector = exports.gridTabIndexColumnHeaderFilterSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.columnHeaderFilter);
21
-
22
- // eslint-disable-next-line @typescript-eslint/naming-convention
23
- const unstable_gridTabIndexColumnGroupHeaderSelector = exports.unstable_gridTabIndexColumnGroupHeaderSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.columnGroupHeader);
19
+ const gridTabIndexColumnGroupHeaderSelector = exports.gridTabIndexColumnGroupHeaderSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.columnGroupHeader);
@@ -174,7 +174,7 @@ const useGridFocus = (apiRef, props) => {
174
174
  });
175
175
  apiRef.current.forceUpdate();
176
176
  }, [apiRef]);
177
- const getColumnGroupHeaderFocus = React.useCallback(() => (0, _gridFocusStateSelector.unstable_gridFocusColumnGroupHeaderSelector)(apiRef), [apiRef]);
177
+ const getColumnGroupHeaderFocus = React.useCallback(() => (0, _gridFocusStateSelector.gridFocusColumnGroupHeaderSelector)(apiRef), [apiRef]);
178
178
  const moveFocusToRelativeCell = React.useCallback((id, field, direction) => {
179
179
  let columnIndexToFocus = apiRef.current.getColumnIndex(field);
180
180
  const visibleColumns = (0, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector)(apiRef);
@@ -254,7 +254,7 @@ const useGridFocus = (apiRef, props) => {
254
254
  if (event.target !== event.currentTarget) {
255
255
  return;
256
256
  }
257
- const focusedColumnGroup = (0, _gridFocusStateSelector.unstable_gridFocusColumnGroupHeaderSelector)(apiRef);
257
+ const focusedColumnGroup = (0, _gridFocusStateSelector.gridFocusColumnGroupHeaderSelector)(apiRef);
258
258
  if (focusedColumnGroup !== null && focusedColumnGroup.depth === depth && fields.includes(focusedColumnGroup.field)) {
259
259
  // This group cell has already been focused
260
260
  return;