@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
@@ -11,7 +11,7 @@ import { GridCellModes } from '../../../models/gridEditRowModel';
11
11
  import { isNavigationKey } from '../../../utils/keyboardUtils';
12
12
  import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '../../../constants/gridDetailPanelToggleField';
13
13
  import { gridPinnedRowsSelector } from '../rows/gridRowsSelector';
14
- import { unstable_gridFocusColumnGroupHeaderSelector } from '../focus';
14
+ import { gridFocusColumnGroupHeaderSelector } from '../focus';
15
15
  import { gridColumnGroupsHeaderMaxDepthSelector } from '../columnGrouping/gridColumnGroupsSelector';
16
16
  import { gridHeaderFilteringEditFieldSelector, gridHeaderFilteringMenuSelector } from '../headerFiltering/gridHeaderFilteringSelectors';
17
17
  import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
@@ -138,10 +138,6 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
138
138
  // There is one exception for the checkBoxHeader
139
139
  return;
140
140
  }
141
- const dimensions = apiRef.current.getRootDimensions();
142
- if (!dimensions) {
143
- return;
144
- }
145
141
  const viewportPageSize = apiRef.current.getViewportPageSize();
146
142
  const colIndexBefore = params.field ? apiRef.current.getColumnIndex(params.field) : 0;
147
143
  const firstRowIndexInPage = currentPageRows.length > 0 ? 0 : null;
@@ -234,10 +230,6 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
234
230
  }
235
231
  }, [apiRef, currentPageRows.length, headerFilteringEnabled, goToHeaderFilter, goToCell, getRowIdFromIndex, theme.direction, goToHeader, goToGroupHeader]);
236
232
  const handleHeaderFilterKeyDown = React.useCallback((params, event) => {
237
- const dimensions = apiRef.current.getRootDimensions();
238
- if (!dimensions) {
239
- return;
240
- }
241
233
  const isEditing = gridHeaderFilteringEditFieldSelector(apiRef) === params.field;
242
234
  const isHeaderMenuOpen = gridHeaderFilteringMenuSelector(apiRef) === params.field;
243
235
  if (isEditing || isHeaderMenuOpen || !isNavigationKey(event.key)) {
@@ -324,11 +316,7 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
324
316
  }
325
317
  }, [apiRef, currentPageRows.length, goToHeaderFilter, theme.direction, goToHeader, goToCell, getRowIdFromIndex]);
326
318
  const handleColumnGroupHeaderKeyDown = React.useCallback((params, event) => {
327
- const dimensions = apiRef.current.getRootDimensions();
328
- if (!dimensions) {
329
- return;
330
- }
331
- const focusedColumnGroup = unstable_gridFocusColumnGroupHeaderSelector(apiRef);
319
+ const focusedColumnGroup = gridFocusColumnGroupHeaderSelector(apiRef);
332
320
  if (focusedColumnGroup === null) {
333
321
  return;
334
322
  }
@@ -431,8 +419,7 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
431
419
  if (!canUpdateFocus) {
432
420
  return;
433
421
  }
434
- const dimensions = apiRef.current.getRootDimensions();
435
- if (currentPageRows.length === 0 || !dimensions) {
422
+ if (currentPageRows.length === 0) {
436
423
  return;
437
424
  }
438
425
  const direction = theme.direction;
@@ -8,7 +8,7 @@ export const getPageCount = (rowCount, pageSize) => {
8
8
  }
9
9
  return 0;
10
10
  };
11
- export const noRowCountInServerMode = buildWarning(["MUI: the 'rowCount' prop is undefined while using paginationMode='server'", 'For more detail, see http://mui.com/components/data-grid/pagination/#basic-implementation'], 'error');
11
+ export const noRowCountInServerMode = buildWarning(["MUI X: the 'rowCount' prop is undefined while using paginationMode='server'", 'For more detail, see http://mui.com/components/data-grid/pagination/#basic-implementation'], 'error');
12
12
  export const getDefaultGridPaginationModel = autoPageSize => ({
13
13
  page: 0,
14
14
  pageSize: autoPageSize ? 0 : 100
@@ -21,6 +21,6 @@ export const getValidPage = (page, pageCount = 0) => {
21
21
  };
22
22
  export const throwIfPageSizeExceedsTheLimit = (pageSize, signatureProp) => {
23
23
  if (signatureProp === GridSignature.DataGrid && pageSize > MAX_PAGE_SIZE) {
24
- throw new Error(['MUI: `pageSize` cannot exceed 100 in the MIT version of the DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
24
+ throw new Error(['MUI X: `pageSize` cannot exceed 100 in the MIT version of the DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
25
25
  }
26
26
  };
@@ -5,7 +5,6 @@ import { gridDensityFactorSelector } from '../density';
5
5
  import { useGridLogger, useGridSelector, useGridApiMethod, useGridApiEventHandler } from '../../utils';
6
6
  import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
7
7
  import { gridPaginationModelSelector } from './gridPaginationSelector';
8
- import { calculatePinnedRowsHeight } from '../rows/gridRowsUtils';
9
8
  import { getPageCount, noRowCountInServerMode, defaultPageSize, throwIfPageSizeExceedsTheLimit, getDefaultGridPaginationModel, getValidPage } from './gridPaginationUtils';
10
9
  export const paginationStateInitializer = (state, props) => {
11
10
  var _props$paginationMode, _props$initialState;
@@ -144,12 +143,11 @@ export const useGridPagination = (apiRef, props) => {
144
143
  apiRef.current.forceUpdate();
145
144
  };
146
145
  const handleUpdateAutoPageSize = React.useCallback(() => {
147
- const dimensions = apiRef.current.getRootDimensions();
148
- if (!props.autoPageSize || !dimensions) {
146
+ if (!props.autoPageSize) {
149
147
  return;
150
148
  }
151
- const pinnedRowsHeight = calculatePinnedRowsHeight(apiRef);
152
- const maximumPageSizeWithoutScrollBar = Math.floor((dimensions.viewportInnerSize.height - pinnedRowsHeight.top - pinnedRowsHeight.bottom) / rowHeight);
149
+ const dimensions = apiRef.current.getRootDimensions();
150
+ const maximumPageSizeWithoutScrollBar = Math.floor(dimensions.viewportInnerSize.height / rowHeight);
153
151
  apiRef.current.setPageSize(maximumPageSizeWithoutScrollBar);
154
152
  }, [apiRef, props.autoPageSize, rowHeight]);
155
153
  useGridApiEventHandler(apiRef, 'viewportInnerSizeChange', handleUpdateAutoPageSize);
@@ -96,7 +96,7 @@ export const useGridRowSelection = (apiRef, props) => {
96
96
  */
97
97
  const setRowSelectionModel = React.useCallback(model => {
98
98
  if (props.signature === GridSignature.DataGrid && !canHaveMultipleSelection && Array.isArray(model) && model.length > 1) {
99
- throw new Error(['MUI: `rowSelectionModel` can only contain 1 item in DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock multiple selection.'].join('\n'));
99
+ throw new Error(['MUI X: `rowSelectionModel` can only contain 1 item in DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock multiple selection.'].join('\n'));
100
100
  }
101
101
  const currentModel = gridRowSelectionStateSelector(apiRef.current.state);
102
102
  if (currentModel !== model) {
@@ -108,3 +108,4 @@ export interface GridPinnedRowsState {
108
108
  top?: GridRowEntry[];
109
109
  bottom?: GridRowEntry[];
110
110
  }
111
+ export type GridPinnedRowsPosition = keyof GridPinnedRowsState;
@@ -22,11 +22,11 @@ export declare const gridPinnedRowsSelector: import("../../../utils/createSelect
22
22
  bottom: {
23
23
  id: import("../../..").GridRowId;
24
24
  model: import("../../..").GridValidRowModel;
25
- }[] | undefined;
25
+ }[];
26
26
  top: {
27
27
  id: import("../../..").GridRowId;
28
28
  model: import("../../..").GridValidRowModel;
29
- }[] | undefined;
29
+ }[];
30
30
  }>;
31
31
  /**
32
32
  * @ignore - do not document.
@@ -28,23 +28,23 @@ export const gridAdditionalRowGroupsSelector = createSelector(gridRowsStateSelec
28
28
  * @ignore - do not document.
29
29
  */
30
30
  export const gridPinnedRowsSelector = createSelectorMemoized(gridAdditionalRowGroupsSelector, additionalRowGroups => {
31
- var _rawPinnedRows$bottom, _rawPinnedRows$top;
31
+ var _rawPinnedRows$bottom, _rawPinnedRows$bottom2, _rawPinnedRows$top$ma, _rawPinnedRows$top;
32
32
  const rawPinnedRows = additionalRowGroups == null ? void 0 : additionalRowGroups.pinnedRows;
33
33
  return {
34
- bottom: rawPinnedRows == null || (_rawPinnedRows$bottom = rawPinnedRows.bottom) == null ? void 0 : _rawPinnedRows$bottom.map(rowEntry => {
34
+ bottom: (_rawPinnedRows$bottom = rawPinnedRows == null || (_rawPinnedRows$bottom2 = rawPinnedRows.bottom) == null ? void 0 : _rawPinnedRows$bottom2.map(rowEntry => {
35
35
  var _rowEntry$model;
36
36
  return {
37
37
  id: rowEntry.id,
38
38
  model: (_rowEntry$model = rowEntry.model) != null ? _rowEntry$model : {}
39
39
  };
40
- }),
41
- top: rawPinnedRows == null || (_rawPinnedRows$top = rawPinnedRows.top) == null ? void 0 : _rawPinnedRows$top.map(rowEntry => {
40
+ })) != null ? _rawPinnedRows$bottom : [],
41
+ top: (_rawPinnedRows$top$ma = rawPinnedRows == null || (_rawPinnedRows$top = rawPinnedRows.top) == null ? void 0 : _rawPinnedRows$top.map(rowEntry => {
42
42
  var _rowEntry$model2;
43
43
  return {
44
44
  id: rowEntry.id,
45
45
  model: (_rowEntry$model2 = rowEntry.model) != null ? _rowEntry$model2 : {}
46
46
  };
47
- })
47
+ })) != null ? _rawPinnedRows$top$ma : []
48
48
  };
49
49
  });
50
50
 
@@ -35,4 +35,4 @@ export declare function calculatePinnedRowsHeight(apiRef: React.MutableRefObject
35
35
  top: number;
36
36
  bottom: number;
37
37
  };
38
- export declare function getMinimalContentHeight(apiRef: React.MutableRefObject<GridApiCommunity>, rowHeight: number): string;
38
+ export declare function getMinimalContentHeight(apiRef: React.MutableRefObject<GridApiCommunity>): string;
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { gridPinnedRowsSelector } from './gridRowsSelector';
3
- import { gridDensityFactorSelector } from '../density/densitySelector';
3
+ import { gridDimensionsSelector } from '../dimensions';
4
4
  export const GRID_ROOT_GROUP_ID = `auto-generated-group-node-root`;
5
5
  export const GRID_ID_AUTOGENERATED = Symbol('mui.id_autogenerated');
6
6
  export const buildRootGroup = () => ({
@@ -24,7 +24,7 @@ export const buildRootGroup = () => ({
24
24
  */
25
25
  export function checkGridRowIdIsValid(id, row, detailErrorMessage = 'A row was provided without id in the rows prop:') {
26
26
  if (id == null) {
27
- throw new Error(['MUI: The data grid component requires all rows to have a unique `id` property.', 'Alternatively, you can use the `getRowId` prop to specify a custom id for each row.', detailErrorMessage, JSON.stringify(row)].join('\n'));
27
+ throw new Error(['MUI X: The data grid component requires all rows to have a unique `id` property.', 'Alternatively, you can use the `getRowId` prop to specify a custom id for each row.', detailErrorMessage, JSON.stringify(row)].join('\n'));
28
28
  }
29
29
  }
30
30
  export const getRowIdFromRowModel = (rowModel, getRowId, detailErrorMessage) => {
@@ -145,7 +145,7 @@ export const updateCacheWithNewRows = ({
145
145
  }) => {
146
146
  var _previousCache$update, _previousCache$update2, _previousCache$update3;
147
147
  if (previousCache.updates.type === 'full') {
148
- throw new Error('MUI: Unable to prepare a partial update if a full update is not applied yet');
148
+ throw new Error('MUI X: Unable to prepare a partial update if a full update is not applied yet.');
149
149
  }
150
150
 
151
151
  // Remove duplicate updates.
@@ -277,7 +277,7 @@ export function calculatePinnedRowsHeight(apiRef) {
277
277
  bottom: bottomPinnedRowsHeight
278
278
  };
279
279
  }
280
- export function getMinimalContentHeight(apiRef, rowHeight) {
281
- const densityFactor = gridDensityFactorSelector(apiRef);
282
- return `var(--DataGrid-overlayHeight, ${2 * Math.floor(rowHeight * densityFactor)}px)`;
280
+ export function getMinimalContentHeight(apiRef) {
281
+ const dimensions = gridDimensionsSelector(apiRef.current.state);
282
+ return `var(--DataGrid-overlayHeight, ${2 * dimensions.rowHeight}px)`;
283
283
  }
@@ -121,7 +121,7 @@ export const useGridRows = (apiRef, props) => {
121
121
  }, [logger, props.getRowId, props.loading, props.rowCount, throttledRowsChange, apiRef]);
122
122
  const updateRows = React.useCallback(updates => {
123
123
  if (props.signature === GridSignature.DataGrid && updates.length > 1) {
124
- throw new Error(["MUI: You can't update several rows at once in `apiRef.current.updateRows` on the DataGrid.", 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
124
+ throw new Error(["MUI X: You can't update several rows at once in `apiRef.current.updateRows` on the DataGrid.", 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
125
125
  }
126
126
  const nonPinnedRowsUpdates = [];
127
127
  updates.forEach(update => {
@@ -162,10 +162,10 @@ export const useGridRows = (apiRef, props) => {
162
162
  const setRowChildrenExpansion = React.useCallback((id, isExpanded) => {
163
163
  const currentNode = apiRef.current.getRowNode(id);
164
164
  if (!currentNode) {
165
- throw new Error(`MUI: No row with id #${id} found`);
165
+ throw new Error(`MUI X: No row with id #${id} found.`);
166
166
  }
167
167
  if (currentNode.type !== 'group') {
168
- throw new Error('MUI: Only group nodes can be expanded or collapsed');
168
+ throw new Error('MUI X: Only group nodes can be expanded or collapsed.');
169
169
  }
170
170
  const newNode = _extends({}, currentNode, {
171
171
  childrenExpanded: isExpanded
@@ -220,13 +220,13 @@ export const useGridRows = (apiRef, props) => {
220
220
  const setRowIndex = React.useCallback((rowId, targetIndex) => {
221
221
  const node = apiRef.current.getRowNode(rowId);
222
222
  if (!node) {
223
- throw new Error(`MUI: No row with id #${rowId} found`);
223
+ throw new Error(`MUI X: No row with id #${rowId} found.`);
224
224
  }
225
225
  if (node.parent !== GRID_ROOT_GROUP_ID) {
226
- throw new Error(`MUI: The row reordering do not support reordering of grouped rows yet`);
226
+ throw new Error(`MUI X: The row reordering do not support reordering of grouped rows yet.`);
227
227
  }
228
228
  if (node.type !== 'leaf') {
229
- throw new Error(`MUI: The row reordering do not support reordering of footer or grouping rows`);
229
+ throw new Error(`MUI X: The row reordering do not support reordering of footer or grouping rows.`);
230
230
  }
231
231
  apiRef.current.setState(state => {
232
232
  const group = gridRowTreeSelector(state, apiRef.current.instanceId)[GRID_ROOT_GROUP_ID];
@@ -252,7 +252,7 @@ export const useGridRows = (apiRef, props) => {
252
252
  }, [apiRef, logger]);
253
253
  const replaceRows = React.useCallback((firstRowToRender, newRows) => {
254
254
  if (props.signature === GridSignature.DataGrid && newRows.length > 1) {
255
- throw new Error(["MUI: You can't replace rows using `apiRef.current.unstable_replaceRows` on the DataGrid.", 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
255
+ throw new Error(["MUI X: You can't replace rows using `apiRef.current.unstable_replaceRows` on the DataGrid.", 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
256
256
  }
257
257
  if (newRows.length === 0) {
258
258
  return;
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
- import { unstable_debounce as debounce, unstable_capitalize as capitalize } from '@mui/utils';
3
+ import { unstable_debounce as debounce } from '@mui/utils';
4
4
  import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
5
5
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
6
6
  import { useGridSelector } from '../../utils/useGridSelector';
@@ -11,6 +11,9 @@ import { gridSortModelSelector } from '../sorting/gridSortingSelector';
11
11
  import { useGridRegisterPipeApplier } from '../../core/pipeProcessing';
12
12
  import { gridPinnedRowsSelector } from './gridRowsSelector';
13
13
  import { DATA_GRID_PROPS_DEFAULT_VALUES } from '../../../DataGrid/useDataGridProps';
14
+
15
+ // TODO: I think the row heights can now be encoded as a single `size` instead of `sizes.baseXxxx`
16
+
14
17
  export const rowsMetaStateInitializer = state => _extends({}, state, {
15
18
  rowsMeta: {
16
19
  currentPageTotalHeight: 0,
@@ -28,8 +31,8 @@ const getValidRowHeight = (rowHeightProp, defaultRowHeight, warningMessage) => {
28
31
  }
29
32
  return defaultRowHeight;
30
33
  };
31
- const rowHeightWarning = [`MUI: The \`rowHeight\` prop should be a number greater than 0.`, `The default value will be used instead.`].join('\n');
32
- const getRowHeightWarning = [`MUI: The \`getRowHeight\` prop should return a number greater than 0 or 'auto'.`, `The default value will be used instead.`].join('\n');
34
+ const rowHeightWarning = [`MUI X: The \`rowHeight\` prop should be a number greater than 0.`, `The default value will be used instead.`].join('\n');
35
+ const getRowHeightWarning = [`MUI X: The \`getRowHeight\` prop should return a number greater than 0 or 'auto'.`, `The default value will be used instead.`].join('\n');
33
36
 
34
37
  /**
35
38
  * @requires useGridPageSize (method)
@@ -179,15 +182,15 @@ export const useGridRowsMeta = (apiRef, props) => {
179
182
  hydrateRowsMeta();
180
183
  }, [hydrateRowsMeta]);
181
184
  const debouncedHydrateRowsMeta = React.useMemo(() => debounce(hydrateRowsMeta, props.rowPositionsDebounceMs), [hydrateRowsMeta, props.rowPositionsDebounceMs]);
182
- const storeMeasuredRowHeight = React.useCallback((id, height, position) => {
185
+ const storeMeasuredRowHeight = React.useCallback((id, height) => {
183
186
  if (!rowsHeightLookup.current[id] || !rowsHeightLookup.current[id].autoHeight) {
184
187
  return;
185
188
  }
186
189
 
187
190
  // Only trigger hydration if the value is different, otherwise we trigger a loop
188
- const needsHydration = rowsHeightLookup.current[id].sizes[`base${capitalize(position)}`] !== height;
191
+ const needsHydration = rowsHeightLookup.current[id].sizes.baseCenter !== height;
189
192
  rowsHeightLookup.current[id].needsFirstMeasurement = false;
190
- rowsHeightLookup.current[id].sizes[`base${capitalize(position)}`] = height;
193
+ rowsHeightLookup.current[id].sizes.baseCenter = height;
191
194
  if (needsHydration) {
192
195
  debouncedHydrateRowsMeta();
193
196
  }
@@ -8,7 +8,7 @@ import { gridRowCountSelector } from '../rows/gridRowsSelector';
8
8
  import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
9
9
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
10
10
  import { gridExpandedSortedRowEntriesSelector } from '../filter/gridFilterSelector';
11
- import { gridClasses } from '../../../constants/gridClasses';
11
+ import { gridDimensionsSelector } from '../dimensions';
12
12
 
13
13
  // Logic copied from https://www.w3.org/TR/wai-aria-practices/examples/listbox/js/listbox.js
14
14
  // Similar to https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView
@@ -49,6 +49,7 @@ export const useGridScroll = (apiRef, props) => {
49
49
  const virtualScrollerRef = apiRef.current.virtualScrollerRef;
50
50
  const visibleSortedRows = useGridSelector(apiRef, gridExpandedSortedRowEntriesSelector);
51
51
  const scrollToIndexes = React.useCallback(params => {
52
+ const dimensions = gridDimensionsSelector(apiRef.current.state);
52
53
  const totalRowCount = gridRowCountSelector(apiRef);
53
54
  const visibleColumns = gridVisibleColumnDefinitionsSelector(apiRef);
54
55
  const scrollToHeader = params.rowIndex == null;
@@ -57,7 +58,7 @@ export const useGridScroll = (apiRef, props) => {
57
58
  }
58
59
  logger.debug(`Scrolling to cell at row ${params.rowIndex}, col: ${params.colIndex} `);
59
60
  let scrollCoordinates = {};
60
- if (params.colIndex != null) {
61
+ if (params.colIndex !== undefined) {
61
62
  const columnPositions = gridColumnPositionsSelector(apiRef);
62
63
  let cellWidth;
63
64
  if (typeof params.rowIndex !== 'undefined') {
@@ -73,23 +74,20 @@ export const useGridScroll = (apiRef, props) => {
73
74
  }
74
75
  // When using RTL, `scrollLeft` becomes negative, so we must ensure that we only compare values.
75
76
  scrollCoordinates.left = scrollIntoView({
76
- clientHeight: virtualScrollerRef.current.clientWidth,
77
+ clientHeight: dimensions.viewportInnerSize.width,
77
78
  scrollTop: Math.abs(virtualScrollerRef.current.scrollLeft),
78
79
  offsetHeight: cellWidth,
79
80
  offsetTop: columnPositions[params.colIndex]
80
81
  });
81
82
  }
82
- if (params.rowIndex != null) {
83
- var _querySelector, _querySelector2;
83
+ if (params.rowIndex !== undefined) {
84
84
  const rowsMeta = gridRowsMetaSelector(apiRef.current.state);
85
85
  const page = gridPageSelector(apiRef);
86
86
  const pageSize = gridPageSizeSelector(apiRef);
87
87
  const elementIndex = !props.pagination ? params.rowIndex : params.rowIndex - page * pageSize;
88
88
  const targetOffsetHeight = rowsMeta.positions[elementIndex + 1] ? rowsMeta.positions[elementIndex + 1] - rowsMeta.positions[elementIndex] : rowsMeta.currentPageTotalHeight - rowsMeta.positions[elementIndex];
89
- const topPinnedRowsHeight = ((_querySelector = virtualScrollerRef.current.querySelector(`.${gridClasses['pinnedRows--top']}`)) == null ? void 0 : _querySelector.clientHeight) || 0;
90
- const bottomPinnedRowsHeight = ((_querySelector2 = virtualScrollerRef.current.querySelector(`.${gridClasses['pinnedRows--bottom']}`)) == null ? void 0 : _querySelector2.clientHeight) || 0;
91
89
  scrollCoordinates.top = scrollIntoView({
92
- clientHeight: virtualScrollerRef.current.clientHeight - topPinnedRowsHeight - bottomPinnedRowsHeight,
90
+ clientHeight: dimensions.viewportInnerSize.height,
93
91
  scrollTop: virtualScrollerRef.current.scrollTop,
94
92
  offsetHeight: targetOffsetHeight,
95
93
  offsetTop: rowsMeta.positions[elementIndex]
@@ -103,13 +101,13 @@ export const useGridScroll = (apiRef, props) => {
103
101
  return false;
104
102
  }, [logger, apiRef, virtualScrollerRef, props.pagination, visibleSortedRows]);
105
103
  const scroll = React.useCallback(params => {
106
- if (virtualScrollerRef.current && params.left != null && colRef.current) {
104
+ if (virtualScrollerRef.current && params.left !== undefined && colRef.current) {
107
105
  const direction = theme.direction === 'rtl' ? -1 : 1;
108
106
  colRef.current.scrollLeft = params.left;
109
107
  virtualScrollerRef.current.scrollLeft = direction * params.left;
110
108
  logger.debug(`Scrolling left: ${params.left}`);
111
109
  }
112
- if (virtualScrollerRef.current && params.top != null) {
110
+ if (virtualScrollerRef.current && params.top !== undefined) {
113
111
  virtualScrollerRef.current.scrollTop = params.top;
114
112
  logger.debug(`Scrolling top: ${params.top}`);
115
113
  }
@@ -1,9 +1,11 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { buildWarning } from '../../../utils/warning';
3
- const sortModelDisableMultiColumnsSortingWarning = buildWarning(['MUI: The `sortModel` can only contain a single item when the `disableMultipleColumnsSorting` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
3
+ const sortModelDisableMultiColumnsSortingWarning = buildWarning(['MUI X: The `sortModel` can only contain a single item when the `disableMultipleColumnsSorting` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
4
4
  export const sanitizeSortModel = (model, disableMultipleColumnsSorting) => {
5
5
  if (disableMultipleColumnsSorting && model.length > 1) {
6
- sortModelDisableMultiColumnsSortingWarning();
6
+ if (process.env.NODE_ENV !== 'production') {
7
+ sortModelDisableMultiColumnsSortingWarning();
8
+ }
7
9
  return [model[0]];
8
10
  }
9
11
  return model;
@@ -23,7 +25,7 @@ const isDesc = direction => direction === 'desc';
23
25
  */
24
26
  const parseSortItem = (sortItem, apiRef) => {
25
27
  const column = apiRef.current.getColumn(sortItem.field);
26
- if (!column) {
28
+ if (!column || sortItem.sort === null) {
27
29
  return null;
28
30
  }
29
31
  const comparator = isDesc(sortItem.sort) ? (...args) => -1 * column.sortComparator(...args) : column.sortComparator;
@@ -7,4 +7,4 @@ export declare const sortingStateInitializer: GridStateInitializer<Pick<DataGrid
7
7
  * @requires useGridRows (event)
8
8
  * @requires useGridColumns (event)
9
9
  */
10
- export declare const useGridSorting: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, 'initialState' | 'sortModel' | 'onSortModelChange' | 'sortingOrder' | 'sortingMode' | 'disableMultipleColumnsSorting'>) => void;
10
+ export declare const useGridSorting: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, 'initialState' | 'sortModel' | 'onSortModelChange' | 'sortingOrder' | 'sortingMode' | 'disableColumnSorting' | 'disableMultipleColumnsSorting'>) => void;
@@ -60,7 +60,7 @@ export const useGridSorting = (apiRef, props) => {
60
60
  if (existing) {
61
61
  var _col$sortingOrder;
62
62
  const nextSort = directionOverride === undefined ? getNextGridSortDirection((_col$sortingOrder = col.sortingOrder) != null ? _col$sortingOrder : props.sortingOrder, existing.sort) : directionOverride;
63
- return nextSort == null ? undefined : _extends({}, existing, {
63
+ return nextSort === undefined ? undefined : _extends({}, existing, {
64
64
  sort: nextSort
65
65
  });
66
66
  }
@@ -70,7 +70,7 @@ export const useGridSorting = (apiRef, props) => {
70
70
  };
71
71
  }, [apiRef, props.sortingOrder]);
72
72
  const addColumnMenuItem = React.useCallback((columnMenuItems, colDef) => {
73
- if (colDef == null || colDef.sortable === false) {
73
+ if (colDef == null || colDef.sortable === false || props.disableColumnSorting) {
74
74
  return columnMenuItems;
75
75
  }
76
76
  const sortingOrder = colDef.sortingOrder || props.sortingOrder;
@@ -78,7 +78,7 @@ export const useGridSorting = (apiRef, props) => {
78
78
  return [...columnMenuItems, 'columnMenuSortItem'];
79
79
  }
80
80
  return columnMenuItems;
81
- }, [props.sortingOrder]);
81
+ }, [props.sortingOrder, props.disableColumnSorting]);
82
82
 
83
83
  /**
84
84
  * API METHODS
@@ -118,9 +118,6 @@ export const useGridSorting = (apiRef, props) => {
118
118
  }, [apiRef, logger, props.disableMultipleColumnsSorting]);
119
119
  const sortColumn = React.useCallback((field, direction, allowMultipleSorting) => {
120
120
  const column = apiRef.current.getColumn(field);
121
- if (!column.sortable) {
122
- return;
123
- }
124
121
  const sortItem = createSortItem(column, direction);
125
122
  let sortModel;
126
123
  if (!allowMultipleSorting || props.disableMultipleColumnsSorting) {
@@ -200,19 +197,27 @@ export const useGridSorting = (apiRef, props) => {
200
197
  * EVENTS
201
198
  */
202
199
  const handleColumnHeaderClick = React.useCallback(({
203
- field
200
+ field,
201
+ colDef
204
202
  }, event) => {
203
+ if (!colDef.sortable || props.disableColumnSorting) {
204
+ return;
205
+ }
205
206
  const allowMultipleSorting = event.shiftKey || event.metaKey || event.ctrlKey;
206
207
  sortColumn(field, undefined, allowMultipleSorting);
207
- }, [sortColumn]);
208
+ }, [sortColumn, props.disableColumnSorting]);
208
209
  const handleColumnHeaderKeyDown = React.useCallback(({
209
- field
210
+ field,
211
+ colDef
210
212
  }, event) => {
213
+ if (!colDef.sortable || props.disableColumnSorting) {
214
+ return;
215
+ }
211
216
  // Ctrl + Enter opens the column menu
212
217
  if (isEnterKey(event.key) && !event.ctrlKey && !event.metaKey) {
213
218
  sortColumn(field, undefined, event.shiftKey);
214
219
  }
215
- }, [sortColumn]);
220
+ }, [sortColumn, props.disableColumnSorting]);
216
221
  const handleColumnsChange = React.useCallback(() => {
217
222
  // When the columns change we check that the sorted columns are still part of the dataset
218
223
  const sortModel = gridSortModelSelector(apiRef);
@@ -1,3 +1,4 @@
1
+ import { GridRenderContext } from '../../../models/params/gridScrollParams';
1
2
  import { GridStateCommunity } from '../../../models/gridStateCommunity';
2
3
  /**
3
4
  * Get the columns state
@@ -14,3 +15,16 @@ export declare const gridVirtualizationEnabledSelector: import("../../../utils/c
14
15
  * @category Virtualization
15
16
  */
16
17
  export declare const gridVirtualizationColumnEnabledSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, boolean>;
18
+ /**
19
+ * Get the render context
20
+ * @category Virtualization
21
+ * @ignore - do not document.
22
+ */
23
+ export declare const gridRenderContextSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, GridRenderContext>;
24
+ /**
25
+ * Get the render context, with only columns filled in.
26
+ * This is cached, so it can be used to only re-render when the column interval changes.
27
+ * @category Virtualization
28
+ * @ignore - do not document.
29
+ */
30
+ export declare const gridRenderContextColumnsSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, GridRenderContext>;
@@ -1,4 +1,4 @@
1
- import { createSelector } from '../../../utils/createSelector';
1
+ import { createSelector, createSelectorMemoized } from '../../../utils/createSelector';
2
2
  /**
3
3
  * Get the columns state
4
4
  * @category Virtualization
@@ -15,4 +15,24 @@ export const gridVirtualizationEnabledSelector = createSelector(gridVirtualizati
15
15
  * Get the enabled state for virtualization
16
16
  * @category Virtualization
17
17
  */
18
- export const gridVirtualizationColumnEnabledSelector = createSelector(gridVirtualizationSelector, state => state.enabledForColumns);
18
+ export const gridVirtualizationColumnEnabledSelector = createSelector(gridVirtualizationSelector, state => state.enabledForColumns);
19
+
20
+ /**
21
+ * Get the render context
22
+ * @category Virtualization
23
+ * @ignore - do not document.
24
+ */
25
+ export const gridRenderContextSelector = createSelector(gridVirtualizationSelector, state => state.renderContext);
26
+
27
+ /**
28
+ * Get the render context, with only columns filled in.
29
+ * This is cached, so it can be used to only re-render when the column interval changes.
30
+ * @category Virtualization
31
+ * @ignore - do not document.
32
+ */
33
+ export const gridRenderContextColumnsSelector = createSelectorMemoized(state => state.virtualization.renderContext.firstColumnIndex, state => state.virtualization.renderContext.lastColumnIndex, (firstColumnIndex, lastColumnIndex) => ({
34
+ firstRowIndex: -1,
35
+ lastRowIndex: -1,
36
+ firstColumnIndex,
37
+ lastColumnIndex
38
+ }));
@@ -1,51 +1,28 @@
1
1
  import * as React from 'react';
2
- import { GridRenderContext, GridRowEntry } from '../../../models';
3
- import { GridRowId, GridRowModel } from '../../../models/gridRows';
4
- export declare function binarySearch(offset: number, positions: number[], sliceStart?: number, sliceEnd?: number): number;
5
- export declare const getRenderableIndexes: ({ firstIndex, lastIndex, buffer, minFirstIndex, maxLastIndex, }: {
6
- firstIndex: number;
7
- lastIndex: number;
8
- buffer: number;
9
- minFirstIndex: number;
10
- maxLastIndex: number;
11
- }) => number[];
12
- export declare const areRenderContextsEqual: (context1: GridRenderContext, context2: GridRenderContext) => boolean;
13
- interface UseGridVirtualScrollerProps {
14
- ref: React.Ref<HTMLDivElement>;
15
- renderZoneMinColumnIndex?: number;
16
- renderZoneMaxColumnIndex?: number;
17
- onRenderZonePositioning?: (params: {
18
- top: number;
19
- left: number;
20
- }) => void;
21
- getRowProps?: (id: GridRowId, model: GridRowModel) => any;
22
- }
23
- export declare const useGridVirtualScroller: (props: UseGridVirtualScrollerProps) => {
24
- renderContext: GridRenderContext | null;
25
- updateRenderZonePosition: (nextRenderContext: GridRenderContext) => void;
2
+ import { GridPinnedRowsPosition } from '../rows/gridRowsInterfaces';
3
+ import { GridRenderContext, GridRowEntry, GridRowId } from '../../../models';
4
+ export declare const EMPTY_DETAIL_PANELS: Readonly<Map<GridRowId, React.ReactNode>>;
5
+ export type VirtualScroller = ReturnType<typeof useGridVirtualScroller>;
6
+ export declare const useGridVirtualScroller: () => {
7
+ renderContext: GridRenderContext;
8
+ setPanels: React.Dispatch<React.SetStateAction<Readonly<Map<GridRowId, React.ReactNode>>>>;
26
9
  getRows: (params?: {
27
- renderContext: GridRenderContext | null;
28
- position?: string | undefined;
29
- minFirstColumn?: number | undefined;
30
- maxLastColumn?: number | undefined;
31
- availableSpace?: number | null | undefined;
32
10
  rows?: GridRowEntry<import("../../../models").GridValidRowModel>[] | undefined;
33
- rowIndexOffset?: number | undefined;
34
- onRowRender?: ((rowId: GridRowId) => void) | undefined;
35
- }) => React.JSX.Element[] | null;
36
- getRootProps: (inputProps?: {
37
- style?: object;
38
- }) => {
39
- style: React.CSSProperties;
40
- role: string;
41
- ref: ((instance: HTMLDivElement | null) => void) | null;
11
+ position?: keyof import("../rows/gridRowsInterfaces").GridPinnedRowsState | undefined;
12
+ }) => React.ReactNode[];
13
+ getContainerProps: () => {
14
+ ref: React.RefObject<HTMLDivElement>;
15
+ };
16
+ getScrollerProps: () => {
17
+ ref: React.RefObject<HTMLDivElement>;
18
+ tabIndex: number;
42
19
  onScroll: (event: React.UIEvent) => void;
43
20
  onWheel: (event: React.WheelEvent) => void;
44
21
  onTouchMove: (event: React.TouchEvent) => void;
22
+ style: React.CSSProperties;
23
+ role: string;
45
24
  };
46
- getContentProps: ({ style }?: {
47
- style?: object | undefined;
48
- }) => {
25
+ getContentProps: () => {
49
26
  style: React.CSSProperties;
50
27
  role: string;
51
28
  };
@@ -53,5 +30,13 @@ export declare const useGridVirtualScroller: (props: UseGridVirtualScrollerProps
53
30
  ref: React.RefObject<HTMLDivElement>;
54
31
  role: string;
55
32
  };
33
+ getScrollbarVerticalProps: () => {
34
+ ref: React.RefObject<HTMLDivElement>;
35
+ role: string;
36
+ };
37
+ getScrollbarHorizontalProps: () => {
38
+ ref: React.RefObject<HTMLDivElement>;
39
+ role: string;
40
+ };
56
41
  };
57
- export {};
42
+ export declare function areRenderContextsEqual(context1: GridRenderContext, context2: GridRenderContext): boolean;