@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
@@ -0,0 +1,149 @@
1
+ import { zhHK as zhHKCore } from '@mui/material/locale';
2
+ import { getGridLocalization } from '../utils/getGridLocalization';
3
+ const zhHKGrid = {
4
+ // Root
5
+ noRowsLabel: '沒有行',
6
+ noResultsOverlayLabel: '未找到結果。',
7
+ // Density selector toolbar button text
8
+ toolbarDensity: '密度',
9
+ toolbarDensityLabel: '密度',
10
+ toolbarDensityCompact: '袖珍的',
11
+ toolbarDensityStandard: '標準',
12
+ toolbarDensityComfortable: '舒服的',
13
+ // Columns selector toolbar button text
14
+ toolbarColumns: '列',
15
+ toolbarColumnsLabel: '選擇列',
16
+ // Filters toolbar button text
17
+ toolbarFilters: '過濾器',
18
+ toolbarFiltersLabel: '顯示過濾器',
19
+ toolbarFiltersTooltipHide: '隱藏過濾器',
20
+ toolbarFiltersTooltipShow: '顯示過濾器',
21
+ toolbarFiltersTooltipActive: count => count !== 1 ? `${count} 個有效過濾器` : `${count} 個活動過濾器`,
22
+ // Quick filter toolbar field
23
+ toolbarQuickFilterPlaceholder: '搜尋…',
24
+ toolbarQuickFilterLabel: '搜尋',
25
+ toolbarQuickFilterDeleteIconLabel: '清除',
26
+ // Export selector toolbar button text
27
+ toolbarExport: '出口',
28
+ toolbarExportLabel: '出口',
29
+ toolbarExportCSV: '下載為 CSV',
30
+ toolbarExportPrint: '列印',
31
+ toolbarExportExcel: '下載為 Excel',
32
+ // Columns panel text
33
+ columnsPanelTextFieldLabel: '查找欄目',
34
+ columnsPanelTextFieldPlaceholder: '欄目標題',
35
+ columnsPanelDragIconLabel: '重新排序列',
36
+ columnsPanelShowAllButton: '顯示所有',
37
+ columnsPanelHideAllButton: '全部藏起來',
38
+ // Filter panel text
39
+ filterPanelAddFilter: '新增過濾器',
40
+ filterPanelRemoveAll: '移除所有',
41
+ filterPanelDeleteIconLabel: '刪除',
42
+ filterPanelLogicOperator: '邏輯運算符',
43
+ filterPanelOperator: '操作員',
44
+ filterPanelOperatorAnd: '和',
45
+ filterPanelOperatorOr: '或者',
46
+ filterPanelColumns: '列',
47
+ filterPanelInputLabel: '價值',
48
+ filterPanelInputPlaceholder: '過濾值',
49
+ // Filter operators text
50
+ filterOperatorContains: '包含',
51
+ filterOperatorEquals: '等於',
52
+ filterOperatorStartsWith: '以。。開始',
53
+ filterOperatorEndsWith: '以。。結束',
54
+ filterOperatorIs: '是',
55
+ filterOperatorNot: '不是',
56
+ filterOperatorAfter: '是在之後',
57
+ filterOperatorOnOrAfter: '是在或之後',
58
+ filterOperatorBefore: '是在之前',
59
+ filterOperatorOnOrBefore: '是在或之前',
60
+ filterOperatorIsEmpty: '是空的',
61
+ filterOperatorIsNotEmpty: '不為空',
62
+ filterOperatorIsAnyOf: '是以下任一個',
63
+ 'filterOperator=': '=',
64
+ 'filterOperator!=': '!=',
65
+ 'filterOperator>': '>',
66
+ 'filterOperator>=': '>=',
67
+ 'filterOperator<': '<',
68
+ 'filterOperator<=': '<=',
69
+ // Header filter operators text
70
+ headerFilterOperatorContains: '包含',
71
+ headerFilterOperatorEquals: '等於',
72
+ headerFilterOperatorStartsWith: '以。。開始',
73
+ headerFilterOperatorEndsWith: '以。。結束',
74
+ headerFilterOperatorIs: '是',
75
+ headerFilterOperatorNot: '不是',
76
+ headerFilterOperatorAfter: '是在之後',
77
+ headerFilterOperatorOnOrAfter: '是在或之後',
78
+ headerFilterOperatorBefore: '是之前',
79
+ headerFilterOperatorOnOrBefore: '是在或之前',
80
+ headerFilterOperatorIsEmpty: '是空的',
81
+ headerFilterOperatorIsNotEmpty: '不為空',
82
+ headerFilterOperatorIsAnyOf: '是以下任一個',
83
+ 'headerFilterOperator=': '等於',
84
+ 'headerFilterOperator!=': '不等於',
85
+ 'headerFilterOperator>': '比...更棒',
86
+ 'headerFilterOperator>=': '大於或等於',
87
+ 'headerFilterOperator<': '少於',
88
+ 'headerFilterOperator<=': '小於或等於',
89
+ // Filter values text
90
+ filterValueAny: '任何',
91
+ filterValueTrue: '真的',
92
+ filterValueFalse: '錯誤的',
93
+ // Column menu text
94
+ columnMenuLabel: '選單',
95
+ columnMenuShowColumns: '顯示欄目',
96
+ columnMenuManageColumns: '管理欄目',
97
+ columnMenuFilter: '篩選',
98
+ columnMenuHideColumn: '隱藏列',
99
+ columnMenuUnsort: '取消排序',
100
+ columnMenuSortAsc: '按升序排序',
101
+ columnMenuSortDesc: '按降序排序',
102
+ // Column header text
103
+ columnHeaderFiltersTooltipActive: count => count !== 1 ? `${count} 個有效過濾器` : `${count} 個活動過濾器`,
104
+ columnHeaderFiltersLabel: '顯示過濾器',
105
+ columnHeaderSortIconLabel: '種類',
106
+ // Rows selected footer text
107
+ footerRowSelected: count => count !== 1 ? `已選擇 ${count.toLocaleString()} 行` : `已選擇 ${count.toLocaleString()} 行`,
108
+ // Total row amount footer text
109
+ footerTotalRows: '總行數:',
110
+ // Total visible row amount footer text
111
+ footerTotalVisibleRows: (visibleCount, totalCount) => `${totalCount.toLocaleString()} 的 ${visibleCount.toLocaleString()}`,
112
+ // Checkbox selection text
113
+ checkboxSelectionHeaderName: '複選框選擇',
114
+ checkboxSelectionSelectAllRows: '選擇所有行',
115
+ checkboxSelectionUnselectAllRows: '取消選擇所有行',
116
+ checkboxSelectionSelectRow: '選擇行',
117
+ checkboxSelectionUnselectRow: '取消選擇行',
118
+ // Boolean cell text
119
+ booleanCellTrueLabel: '是的',
120
+ booleanCellFalseLabel: '不',
121
+ // Actions cell more text
122
+ actionsCellMore: '更多的',
123
+ // Column pinning text
124
+ pinToLeft: '固定到左側',
125
+ pinToRight: '固定到右側',
126
+ unpin: '取消固定',
127
+ // Tree Data
128
+ treeDataGroupingHeaderName: 'Group',
129
+ treeDataExpand: '看看孩子們',
130
+ treeDataCollapse: '隱藏孩子',
131
+ // Grouping columns
132
+ groupingColumnHeaderName: '團體',
133
+ groupColumn: name => `按 ${name} 分組`,
134
+ unGroupColumn: name => `停止以 ${name} 分組`,
135
+ // Master/detail
136
+ detailPanelToggle: '詳細資訊面板切換',
137
+ expandDetailPanel: '擴張',
138
+ collapseDetailPanel: '坍塌',
139
+ // Row reordering text
140
+ rowReorderingHeaderName: '行重新排序',
141
+ // Aggregation
142
+ aggregationMenuItemHeader: '聚合',
143
+ aggregationFunctionLabelSum: '和',
144
+ aggregationFunctionLabelAvg: '平均',
145
+ aggregationFunctionLabelMin: '分分鐘',
146
+ aggregationFunctionLabelMax: '最大限度',
147
+ aggregationFunctionLabelSize: '尺寸'
148
+ };
149
+ export const zhHK = getGridLocalization(zhHKGrid, zhHKCore);
@@ -10,10 +10,10 @@ export interface GridColumnGroupingApi {
10
10
  * @param {string} field The field of of the column requested.
11
11
  * @returns {string[]} The id of the groups leading to the requested column.
12
12
  */
13
- unstable_getColumnGroupPath: (field: string) => GridColumnGroup['groupId'][];
13
+ getColumnGroupPath: (field: string) => GridColumnGroup['groupId'][];
14
14
  /**
15
15
  * Returns the column group lookup.
16
16
  * @returns {GridColumnGroupLookup} The column group lookup.
17
17
  */
18
- unstable_getAllGroupDetails: () => GridColumnGroupLookup;
18
+ getAllGroupDetails: () => GridColumnGroupLookup;
19
19
  }
@@ -13,7 +13,7 @@ export interface GridCoreApi {
13
13
  * The React ref of the grid root container div element.
14
14
  * @ignore - do not document.
15
15
  */
16
- rootElementRef?: React.RefObject<HTMLDivElement>;
16
+ rootElementRef: React.RefObject<HTMLDivElement>;
17
17
  /**
18
18
  * Registers a handler for an event.
19
19
  * @param {string} event The name of the event.
@@ -56,14 +56,26 @@ export interface GridCorePrivateApi<GridPublicApi extends GridApiCommon, GridPri
56
56
  * The generic event emitter manager.
57
57
  */
58
58
  eventManager: EventManager;
59
+ /**
60
+ * The React ref of the grid main container div element.
61
+ */
62
+ mainElementRef: React.RefObject<HTMLDivElement>;
59
63
  /**
60
64
  * The React ref of the grid virtual scroller container element.
61
65
  */
62
- virtualScrollerRef?: React.RefObject<HTMLDivElement>;
66
+ virtualScrollerRef: React.RefObject<HTMLDivElement>;
63
67
  /**
64
- * The React ref of the grid main container div element.
68
+ * The React ref of the grid column container virtualized div element.
69
+ */
70
+ columnHeadersContainerElementRef?: React.RefObject<HTMLDivElement>;
71
+ /**
72
+ * The React ref of the grid column headers container element.
73
+ */
74
+ columnHeadersElementRef?: React.RefObject<HTMLDivElement>;
75
+ /**
76
+ * The React ref of the grid header filter row element.
65
77
  */
66
- mainElementRef?: React.RefObject<HTMLDivElement>;
78
+ headerFiltersElementRef?: React.RefObject<HTMLDivElement>;
67
79
  register: <V extends 'public' | 'private', T extends V extends 'public' ? Partial<GridPublicApi> : Partial<Omit<GridPrivateApi, keyof GridPublicApi>>>(visibility: V, methods: T) => void;
68
80
  /**
69
81
  * Returns the public API.
@@ -77,16 +89,4 @@ export interface GridCorePrivateApi<GridPublicApi extends GridApiCommon, GridPri
77
89
  * Do not use in React components - use the `useGridRootProps` hook instead.
78
90
  */
79
91
  rootProps: GridProps;
80
- /**
81
- * The React ref of the grid column container virtualized div element.
82
- */
83
- columnHeadersContainerElementRef?: React.RefObject<HTMLDivElement>;
84
- /**
85
- * The React ref of the grid header filter row element.
86
- */
87
- headerFiltersElementRef?: React.RefObject<HTMLDivElement>;
88
- /**
89
- * The React ref of the grid column headers container element.
90
- */
91
- columnHeadersElementRef?: React.RefObject<HTMLDivElement>;
92
92
  }
@@ -31,7 +31,7 @@ export interface GridRowsMetaApi {
31
31
  * @param {string} position The position to it the row belongs to.
32
32
  * @ignore - do not document.
33
33
  */
34
- unstable_storeRowHeightMeasurement: (id: GridRowId, height: number, position: 'left' | 'center' | 'right') => void;
34
+ unstable_storeRowHeightMeasurement: (id: GridRowId, height: number) => void;
35
35
  /**
36
36
  * Updates the index of the last row measured.
37
37
  * @param {number} index The row index.
@@ -1,4 +1,3 @@
1
- import { GridRenderContext } from '../params';
2
1
  export interface GridVirtualizationApi {
3
2
  /**
4
3
  * Enable/disable virtualization.
@@ -13,8 +12,8 @@ export interface GridVirtualizationApi {
13
12
  }
14
13
  export interface GridVirtualizationPrivateApi {
15
14
  /**
16
- * Get the current grid rendering context.
15
+ * Update grid rendering context.
17
16
  * @returns {GridRenderContext} The `GridRenderContext`.
18
17
  */
19
- getRenderContext: () => GridRenderContext;
18
+ updateRenderContext?: () => void;
20
19
  }
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import type { GridColumnHeaderParams, GridColumnOrderChangeParams, GridColumnResizeParams, GridHeaderSelectionCheckboxParams, GridMenuParams, GridPreferencePanelParams, GridRenderedRowsIntervalChangeParams, GridRowParams, GridRowSelectionCheckboxParams, GridScrollParams, GridColumnGroupHeaderParams } from '../params';
2
+ import type { GridColumnHeaderParams, GridColumnOrderChangeParams, GridColumnResizeParams, GridHeaderSelectionCheckboxParams, GridMenuParams, GridPreferencePanelParams, GridRowParams, GridRowSelectionCheckboxParams, GridScrollParams, GridColumnGroupHeaderParams, GridRenderContext } from '../params';
3
3
  import { GridCellEditStartParams, GridCellEditStopParams } from '../params/gridEditCellParams';
4
4
  import { GridCellParams } from '../params/gridCellParams';
5
5
  import type { GridFilterModel } from '../gridFilterModel';
@@ -479,10 +479,10 @@ export interface GridEventLookup extends GridRowEventLookup, GridColumnHeaderEve
479
479
  params: GridGroupNode;
480
480
  };
481
481
  /**
482
- * Fired when the rendered rows index interval changes. Called with a [[GridRenderedRowsIntervalChangeParams]] object.
482
+ * Fired when the rendered rows index interval changes. Called with a [[GridRenderContext]] object.
483
483
  */
484
484
  renderedRowsIntervalChange: {
485
- params: GridRenderedRowsIntervalChangeParams;
485
+ params: GridRenderContext;
486
486
  };
487
487
  /**
488
488
  * Fired when the mode of a cell changes.
@@ -12,7 +12,7 @@ export interface GridFilterModel {
12
12
  /**
13
13
  * - `GridLogicOperator.And`: the row must pass all the filter items.
14
14
  * - `GridLogicOperator.Or`: the row must pass at least on filter item.
15
- * @default `GridLogicOperator.Or`
15
+ * @default `GridLogicOperator.And`
16
16
  */
17
17
  logicOperator?: GridLogicOperator;
18
18
  /**
@@ -1,5 +1,9 @@
1
1
  import * as React from 'react';
2
2
  import type { GridIconSlotsComponent } from './gridIconSlotsComponent';
3
+ import type { GridRowProps } from '../components/GridRow';
4
+ import type { GridDetailPanelsProps } from '../components/GridDetailPanels';
5
+ import type { GridPinnedRowsProps } from '../components/GridPinnedRows';
6
+ import type { GridColumnHeadersProps } from '../components/GridColumnHeaders';
3
7
  export interface GridBaseSlots {
4
8
  /**
5
9
  * The custom Checkbox component used in the grid for both header and cells.
@@ -100,7 +104,12 @@ export interface GridSlotsComponent extends GridBaseSlots, GridIconSlotsComponen
100
104
  * Component responsible for rendering the column headers.
101
105
  * @default DataGridColumnHeaders
102
106
  */
103
- columnHeaders: React.JSXElementConstructor<any>;
107
+ columnHeaders: React.JSXElementConstructor<GridColumnHeadersProps>;
108
+ /**
109
+ * Component responsible for rendering the detail panels.
110
+ * @default GridDetailPanels
111
+ */
112
+ detailPanels: React.JSXElementConstructor<GridDetailPanelsProps>;
104
113
  /**
105
114
  * Footer component rendered at the bottom of the grid viewport.
106
115
  * @default GridFooter
@@ -116,6 +125,11 @@ export interface GridSlotsComponent extends GridBaseSlots, GridIconSlotsComponen
116
125
  * @default null
117
126
  */
118
127
  toolbar: React.JSXElementConstructor<any> | null;
128
+ /**
129
+ * Pinned rows container.
130
+ * @ignore - do not document
131
+ */
132
+ pinnedRows: React.JSXElementConstructor<GridPinnedRowsProps>;
119
133
  /**
120
134
  * Loading overlay component rendered when the grid is in a loading state.
121
135
  * @default GridLoadingOverlay
@@ -155,5 +169,5 @@ export interface GridSlotsComponent extends GridBaseSlots, GridIconSlotsComponen
155
169
  * Component rendered for each row.
156
170
  * @default GridRow
157
171
  */
158
- row: React.JSXElementConstructor<any>;
172
+ row: React.JSXElementConstructor<GridRowProps>;
159
173
  }
@@ -1,4 +1,5 @@
1
- import type { GridColumnMenuState, GridColumnsInitialState, GridColumnsState, GridColumnsGroupingState, GridDensityState, GridFilterInitialState, GridFilterState, GridFocusState, GridPaginationInitialState, GridPaginationState, GridPreferencePanelInitialState, GridPreferencePanelState, GridRowsState, GridSortingInitialState, GridSortingState, GridTabIndexState, GridVirtualizationState } from '../hooks';
1
+ import type { Theme } from '@mui/material/styles';
2
+ import type { GridColumnMenuState, GridColumnsInitialState, GridColumnsState, GridColumnsGroupingState, GridColumnPinningState, GridDensityState, GridDimensionsState, GridFilterInitialState, GridFilterState, GridFocusState, GridPaginationInitialState, GridPaginationState, GridPreferencePanelInitialState, GridPreferencePanelState, GridRowsState, GridSortingInitialState, GridSortingState, GridTabIndexState, GridVirtualizationState } from '../hooks';
2
3
  import type { GridRowsMetaState } from '../hooks/features/rows/gridRowsMetaState';
3
4
  import type { GridEditingState } from './gridEditRowModel';
4
5
  import { GridHeaderFilteringState } from './gridHeaderFilteringModel';
@@ -8,6 +9,8 @@ import type { GridVisibleRowsLookupState } from '../hooks/features/filter/gridFi
8
9
  * The state of `DataGrid`.
9
10
  */
10
11
  export interface GridStateCommunity {
12
+ theme: Theme;
13
+ dimensions: GridDimensionsState;
11
14
  rows: GridRowsState;
12
15
  visibleRowsLookup: GridVisibleRowsLookupState;
13
16
  rowsMeta: GridRowsMetaState;
@@ -17,6 +20,7 @@ export interface GridStateCommunity {
17
20
  columns: GridColumnsState;
18
21
  columnGrouping: GridColumnsGroupingState;
19
22
  columnMenu: GridColumnMenuState;
23
+ pinnedColumns: GridColumnPinningState;
20
24
  sorting: GridSortingState;
21
25
  focus: GridFocusState;
22
26
  tabIndex: GridTabIndexState;
package/models/index.d.ts CHANGED
@@ -6,7 +6,6 @@ export * from './gridFeatureMode';
6
6
  export * from './gridFilterItem';
7
7
  export * from './gridFilterModel';
8
8
  export * from './gridPaginationProps';
9
- export * from './gridRootContainerRef';
10
9
  export * from './gridRenderContextProps';
11
10
  export * from './gridRows';
12
11
  export * from './gridRowSelectionModel';
package/models/index.js CHANGED
@@ -6,7 +6,6 @@ export * from './gridFeatureMode';
6
6
  export * from './gridFilterItem';
7
7
  export * from './gridFilterModel';
8
8
  export * from './gridPaginationProps';
9
- export * from './gridRootContainerRef';
10
9
  export * from './gridRenderContextProps';
11
10
  export * from './gridRows';
12
11
  export * from './gridRowSelectionModel';
@@ -11,4 +11,3 @@ export * from './gridValueOptionsParams';
11
11
  export * from './gridCellParams';
12
12
  export * from './gridPreferencePanelParams';
13
13
  export * from './gridMenuParams';
14
- export * from './gridRenderedRowsIntervalChangeParams';
@@ -10,5 +10,4 @@ export * from './gridHeaderSelectionCheckboxParams';
10
10
  export * from './gridValueOptionsParams';
11
11
  export * from './gridCellParams';
12
12
  export * from './gridPreferencePanelParams';
13
- export * from './gridMenuParams';
14
- export * from './gridRenderedRowsIntervalChangeParams';
13
+ export * from './gridMenuParams';
@@ -25,21 +25,11 @@ import { GridCellModesModel, GridRowModesModel } from '../api/gridEditingApi';
25
25
  import { GridColumnGroupingModel } from '../gridColumnGrouping';
26
26
  import { GridPaginationModel } from '../gridPaginationProps';
27
27
  export interface GridExperimentalFeatures {
28
- /**
29
- * Enables the column grouping.
30
- */
31
- columnGrouping: boolean;
32
28
  /**
33
29
  * Emits a warning if the cell receives focus without also syncing the focus state.
34
30
  * Only works if NODE_ENV=test.
35
31
  */
36
32
  warnIfFocusStateIsNotSynced: boolean;
37
- /**
38
- * Enables accessibility improvements that will be enabled by default in v7.
39
- * If you rely on the v6 ARIA attributes (e.g. for CSS selectors), this might be a breaking change.
40
- * @default false
41
- */
42
- ariaV7: boolean;
43
33
  }
44
34
  /**
45
35
  * The props users can give to the `DataGrid` component.
@@ -173,7 +163,12 @@ export interface DataGridPropsWithDefaultValues {
173
163
  */
174
164
  disableMultipleRowSelection: boolean;
175
165
  /**
176
- * If `true`, sorting with multiple columns is disabled.
166
+ * If `true`, the column sorting feature will be disabled.
167
+ * @default false
168
+ */
169
+ disableColumnSorting: boolean;
170
+ /**
171
+ * If `true`, the sorting with multiple columns is disabled.
177
172
  * @default false
178
173
  */
179
174
  disableMultipleColumnsSorting: boolean;
@@ -668,7 +663,7 @@ export interface DataGridPropsWithoutDefaultValue<R extends GridValidRowModel =
668
663
  */
669
664
  'aria-labelledby'?: string;
670
665
  /**
671
- * Set of columns of type [[GridColDef[]]].
666
+ * Set of columns of type [[GridColDef]][].
672
667
  */
673
668
  columns: readonly GridColDef<R>[];
674
669
  /**
@@ -1,17 +1,20 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import { chainPropTypes } from '@mui/utils';
5
4
  import { GridBody, GridFooterPlaceholder, GridHeader, GridRoot } from '../components';
6
5
  import { GridContextProvider } from '../context/GridContextProvider';
7
6
  import { useDataGridComponent } from './useDataGridComponent';
8
7
  import { useDataGridProps } from './useDataGridProps';
9
- import { DataGridVirtualScroller } from '../components/DataGridVirtualScroller';
8
+ import { propValidatorsDataGrid, validateProps } from '../internals/utils/propValidation';
10
9
  import { jsx as _jsx } from "react/jsx-runtime";
11
10
  import { jsxs as _jsxs } from "react/jsx-runtime";
11
+ const propValidators = [...propValidatorsDataGrid,
12
+ // Only validate in MIT version
13
+ props => props.columns && props.columns.some(column => column.resizable) && [`MUI X: \`column.resizable = true\` is not a valid prop.`, 'Column resizing is not available in the MIT version.', '', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n') || undefined];
12
14
  const DataGridRaw = /*#__PURE__*/React.forwardRef(function DataGrid(inProps, ref) {
13
15
  const props = useDataGridProps(inProps);
14
16
  const privateApiRef = useDataGridComponent(props.apiRef, props);
17
+ validateProps(props, propValidators);
15
18
  return /*#__PURE__*/_jsx(GridContextProvider, {
16
19
  privateApiRef: privateApiRef,
17
20
  props: props,
@@ -21,9 +24,7 @@ const DataGridRaw = /*#__PURE__*/React.forwardRef(function DataGrid(inProps, ref
21
24
  sx: props.sx,
22
25
  ref: ref
23
26
  }, props.forwardedProps, {
24
- children: [/*#__PURE__*/_jsx(GridHeader, {}), /*#__PURE__*/_jsx(GridBody, {
25
- VirtualScrollerComponent: DataGridVirtualScroller
26
- }), /*#__PURE__*/_jsx(GridFooterPlaceholder, {})]
27
+ children: [/*#__PURE__*/_jsx(GridHeader, {}), /*#__PURE__*/_jsx(GridBody, {}), /*#__PURE__*/_jsx(GridFooterPlaceholder, {})]
27
28
  }))
28
29
  });
29
30
  });
@@ -63,12 +64,7 @@ DataGridRaw.propTypes = {
63
64
  * If `true`, the pageSize is calculated according to the container size and the max number of rows to avoid rendering a vertical scroll bar.
64
65
  * @default false
65
66
  */
66
- autoPageSize: chainPropTypes(PropTypes.bool, props => {
67
- if (props.autoHeight && props.autoPageSize) {
68
- return new Error(['MUI: `<DataGrid autoPageSize={true} autoHeight={true} />` are not valid props.', 'You can not use both the `autoPageSize` and `autoHeight` props at the same time because `autoHeight` scales the height of the Data Grid according to the `pageSize`.', '', 'Please remove one of these two props.'].join('\n'));
69
- }
70
- return null;
71
- }),
67
+ autoPageSize: PropTypes.bool,
72
68
  /**
73
69
  * Controls the modes of the cells.
74
70
  */
@@ -99,15 +95,9 @@ DataGridRaw.propTypes = {
99
95
  */
100
96
  columnHeaderHeight: PropTypes.number,
101
97
  /**
102
- * Set of columns of type [[GridColDef[]]].
98
+ * Set of columns of type [[GridColDef]][].
103
99
  */
104
- columns: chainPropTypes(PropTypes.array.isRequired, props => {
105
- // @ts-ignore because otherwise `build:api` doesn't work
106
- if (props.columns && props.columns.some(column => column.resizable)) {
107
- return new Error([`MUI: \`column.resizable = true\` is not a valid prop.`, 'Column resizing is not available in the MIT version.', '', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
108
- }
109
- return null;
110
- }),
100
+ columns: PropTypes.arrayOf(PropTypes.object).isRequired,
111
101
  /**
112
102
  * Number of rows from the `columnBuffer` that can be visible before a new slice is rendered.
113
103
  * @default 3
@@ -138,6 +128,11 @@ DataGridRaw.propTypes = {
138
128
  * @default false
139
129
  */
140
130
  disableColumnSelector: PropTypes.bool,
131
+ /**
132
+ * If `true`, the column sorting feature will be disabled.
133
+ * @default false
134
+ */
135
+ disableColumnSorting: PropTypes.bool,
141
136
  /**
142
137
  * If `true`, the density selector is disabled.
143
138
  * @default false
@@ -174,8 +169,6 @@ DataGridRaw.propTypes = {
174
169
  * For each feature, if the flag is not explicitly set to `true`, the feature will be fully disabled and any property / method call will not have any effect.
175
170
  */
176
171
  experimentalFeatures: PropTypes.shape({
177
- ariaV7: PropTypes.bool,
178
- columnGrouping: PropTypes.bool,
179
172
  warnIfFocusStateIsNotSynced: PropTypes.bool
180
173
  }),
181
174
  /**
@@ -552,12 +545,7 @@ DataGridRaw.propTypes = {
552
545
  label: PropTypes.string.isRequired,
553
546
  value: PropTypes.number.isRequired
554
547
  })]).isRequired),
555
- pagination: props => {
556
- if (props.pagination === false) {
557
- return new Error(['MUI: `<DataGrid pagination={false} />` is not a valid prop.', 'Infinite scrolling is not available in the MIT version.', '', 'You need to upgrade to DataGridPro or DataGridPremium component to disable the pagination.'].join('\n'));
558
- }
559
- return null;
560
- },
548
+ pagination: PropTypes.oneOf([true]),
561
549
  /**
562
550
  * Pagination can be processed on the server or client-side.
563
551
  * Set it to 'client' if you would like to handle the pagination on the client-side.
@@ -20,7 +20,7 @@ import { useGridRowSelectionPreProcessors } from '../hooks/features/rowSelection
20
20
  import { useGridSorting, sortingStateInitializer } from '../hooks/features/sorting/useGridSorting';
21
21
  import { useGridScroll } from '../hooks/features/scroll/useGridScroll';
22
22
  import { useGridEvents } from '../hooks/features/events/useGridEvents';
23
- import { useGridDimensions } from '../hooks/features/dimensions/useGridDimensions';
23
+ import { dimensionsStateInitializer, useGridDimensions } from '../hooks/features/dimensions/useGridDimensions';
24
24
  import { rowsMetaStateInitializer, useGridRowsMeta } from '../hooks/features/rows/useGridRowsMeta';
25
25
  import { useGridStatePersistence } from '../hooks/features/statePersistence/useGridStatePersistence';
26
26
  import { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
@@ -38,6 +38,7 @@ export const useDataGridComponent = (inputApiRef, props) => {
38
38
  /**
39
39
  * Register all state initializers here.
40
40
  */
41
+ useGridInitializeState(dimensionsStateInitializer, apiRef, props);
41
42
  useGridInitializeState(rowSelectionStateInitializer, apiRef, props);
42
43
  useGridInitializeState(columnsStateInitializer, apiRef, props);
43
44
  useGridInitializeState(rowsStateInitializer, apiRef, props);
@@ -39,6 +39,7 @@ export const DATA_GRID_PROPS_DEFAULT_VALUES = {
39
39
  disableEval: false,
40
40
  disableMultipleColumnsFiltering: false,
41
41
  disableMultipleRowSelection: false,
42
+ disableColumnSorting: false,
42
43
  disableMultipleColumnsSorting: false,
43
44
  disableRowSelectionOnClick: false,
44
45
  disableVirtualization: false,
@@ -10,7 +10,7 @@ function throwIfNotDateObject({
10
10
  field
11
11
  }) {
12
12
  if (!(value instanceof Date)) {
13
- throw new Error([`MUI: \`${columnType}\` column type only accepts \`Date\` objects as values.`, 'Use `valueGetter` to transform the value into a `Date` object.', `Row ID: ${rowId}, field: "${field}".`].join('\n'));
13
+ throw new Error([`MUI X: \`${columnType}\` column type only accepts \`Date\` objects as values.`, 'Use `valueGetter` to transform the value into a `Date` object.', `Row ID: ${rowId}, field: "${field}".`].join('\n'));
14
14
  }
15
15
  }
16
16
  export function gridDateFormatter({
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["innerRef", "className", "visibleColumns", "sortColumnLookup", "filterColumnLookup", "columnPositions", "columnHeaderTabIndexState", "columnGroupHeaderTabIndexState", "columnHeaderFocus", "columnGroupHeaderFocus", "densityFactor", "headerGroupingMaxDepth", "columnMenuState", "columnVisibility", "columnGroupsHeaderStructure", "hasOtherElementInTabSequence"];
3
+ const _excluded = ["innerRef", "className", "visibleColumns", "sortColumnLookup", "filterColumnLookup", "columnHeaderTabIndexState", "columnGroupHeaderTabIndexState", "columnHeaderFocus", "columnGroupHeaderFocus", "headerGroupingMaxDepth", "columnMenuState", "columnVisibility", "columnGroupsHeaderStructure", "hasOtherElementInTabSequence"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { refType } from '@mui/utils';
@@ -10,18 +10,16 @@ import { GridBaseColumnHeaders } from './columnHeaders/GridBaseColumnHeaders';
10
10
  import { GridColumnHeadersInner } from './columnHeaders/GridColumnHeadersInner';
11
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
- const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnsHeaders(props, ref) {
13
+ const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnHeaders(props, ref) {
14
14
  const {
15
15
  innerRef,
16
16
  visibleColumns,
17
17
  sortColumnLookup,
18
18
  filterColumnLookup,
19
- columnPositions,
20
19
  columnHeaderTabIndexState,
21
20
  columnGroupHeaderTabIndexState,
22
21
  columnHeaderFocus,
23
22
  columnGroupHeaderFocus,
24
- densityFactor,
25
23
  headerGroupingMaxDepth,
26
24
  columnMenuState,
27
25
  columnVisibility,
@@ -31,7 +29,6 @@ const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnsHead
31
29
  other = _objectWithoutPropertiesLoose(props, _excluded);
32
30
  const {
33
31
  isDragging,
34
- getRootProps,
35
32
  getInnerProps,
36
33
  getColumnHeaders,
37
34
  getColumnGroupHeaders
@@ -40,12 +37,10 @@ const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnsHead
40
37
  visibleColumns,
41
38
  sortColumnLookup,
42
39
  filterColumnLookup,
43
- columnPositions,
44
40
  columnHeaderTabIndexState,
45
41
  columnGroupHeaderTabIndexState,
46
42
  columnHeaderFocus,
47
43
  columnGroupHeaderFocus,
48
- densityFactor,
49
44
  headerGroupingMaxDepth,
50
45
  columnMenuState,
51
46
  columnVisibility,
@@ -54,7 +49,7 @@ const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnsHead
54
49
  });
55
50
  return /*#__PURE__*/_jsx(GridBaseColumnHeaders, _extends({
56
51
  ref: ref
57
- }, getRootProps(other), {
52
+ }, other, {
58
53
  children: /*#__PURE__*/_jsxs(GridColumnHeadersInner, _extends({
59
54
  isDragging: isDragging
60
55
  }, getInnerProps(), {
@@ -89,14 +84,11 @@ process.env.NODE_ENV !== "production" ? GridColumnHeaders.propTypes = {
89
84
  field: PropTypes.string,
90
85
  open: PropTypes.bool.isRequired
91
86
  }).isRequired,
92
- columnPositions: PropTypes.arrayOf(PropTypes.number).isRequired,
93
87
  columnVisibility: PropTypes.object.isRequired,
94
- densityFactor: PropTypes.number.isRequired,
95
88
  filterColumnLookup: PropTypes.object.isRequired,
96
89
  hasOtherElementInTabSequence: PropTypes.bool.isRequired,
97
90
  headerGroupingMaxDepth: PropTypes.number.isRequired,
98
91
  innerRef: refType,
99
- minColumnIndex: PropTypes.number,
100
92
  sortColumnLookup: PropTypes.object.isRequired,
101
93
  visibleColumns: PropTypes.arrayOf(PropTypes.object).isRequired
102
94
  } : void 0;
@@ -0,0 +1,4 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
+ export function GridDetailPanels(_) {
3
+ return null;
4
+ }