@mui/x-data-grid 8.0.0-alpha.1 → 8.0.0-alpha.11

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 (801) hide show
  1. package/CHANGELOG.md +2007 -230
  2. package/DataGrid/DataGrid.js +20 -38
  3. package/DataGrid/useDataGridComponent.d.ts +2 -1
  4. package/DataGrid/useDataGridComponent.js +3 -3
  5. package/DataGrid/useDataGridProps.js +3 -3
  6. package/README.md +1 -1
  7. package/colDef/gridDateOperators.d.ts +2 -1
  8. package/colDef/gridNumericOperators.d.ts +4 -1
  9. package/components/GridApiContext.js +2 -0
  10. package/components/GridColumnHeaders.d.ts +1 -1
  11. package/components/GridColumnHeaders.js +4 -4
  12. package/components/GridConfigurationContext.js +2 -0
  13. package/components/GridFooter.d.ts +2 -1
  14. package/components/GridFooter.js +4 -4
  15. package/components/GridHeaders.js +2 -2
  16. package/components/GridLoadingOverlay.d.ts +1 -1
  17. package/components/GridLoadingOverlay.js +10 -8
  18. package/components/GridNoResultsOverlay.d.ts +2 -1
  19. package/components/GridNoResultsOverlay.js +4 -4
  20. package/components/GridNoRowsOverlay.d.ts +2 -1
  21. package/components/GridNoRowsOverlay.js +4 -4
  22. package/components/GridPagination.d.ts +1 -1
  23. package/components/GridPagination.js +7 -4
  24. package/components/GridRow.d.ts +6 -11
  25. package/components/GridRow.js +60 -88
  26. package/components/GridRowCount.d.ts +1 -1
  27. package/components/GridRowCount.js +3 -2
  28. package/components/GridScrollArea.d.ts +5 -2
  29. package/components/GridScrollArea.js +33 -24
  30. package/components/GridSelectedRowCount.d.ts +4 -1
  31. package/components/GridSelectedRowCount.js +3 -2
  32. package/components/GridSkeletonLoadingOverlay.d.ts +1 -1
  33. package/components/GridSkeletonLoadingOverlay.js +23 -21
  34. package/components/base/GridOverlays.d.ts +4 -3
  35. package/components/base/GridOverlays.js +2 -24
  36. package/components/base/index.d.ts +0 -1
  37. package/components/base/index.js +1 -2
  38. package/components/cell/GridActionsCell.js +8 -1
  39. package/components/cell/GridActionsCellItem.d.ts +17 -10
  40. package/components/cell/GridActionsCellItem.js +9 -8
  41. package/components/cell/GridCell.d.ts +19 -23
  42. package/components/cell/GridCell.js +49 -92
  43. package/components/cell/GridEditDateCell.js +1 -1
  44. package/components/cell/GridEditInputCell.d.ts +1 -1
  45. package/components/cell/GridEditInputCell.js +73 -4
  46. package/components/cell/GridEditSingleSelectCell.js +2 -2
  47. package/components/cell/GridSkeletonCell.js +1 -2
  48. package/components/columnHeaders/ColumnHeaderMenuIcon.d.ts +1 -1
  49. package/components/columnHeaders/GridBaseColumnHeaders.d.ts +1 -1
  50. package/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  51. package/components/columnHeaders/GridColumnGroupHeader.d.ts +5 -5
  52. package/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  53. package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +3 -3
  54. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +20 -7
  55. package/components/columnHeaders/GridColumnHeaderItem.d.ts +5 -5
  56. package/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  57. package/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  58. package/components/columnHeaders/GridGenericColumnHeaderItem.d.ts +1 -1
  59. package/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  60. package/components/columnHeaders/GridIconButtonContainer.d.ts +1 -1
  61. package/components/columnHeaders/GridIconButtonContainer.js +5 -3
  62. package/components/columnSelection/GridCellCheckboxRenderer.d.ts +2 -2
  63. package/components/columnSelection/GridCellCheckboxRenderer.js +11 -9
  64. package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  65. package/components/columnSelection/GridHeaderCheckbox.js +17 -9
  66. package/components/columnsManagement/GridColumnsManagement.d.ts +1 -1
  67. package/components/columnsManagement/GridColumnsManagement.js +50 -27
  68. package/components/containers/GridFooterContainer.d.ts +1 -1
  69. package/components/containers/GridFooterContainer.js +5 -3
  70. package/components/containers/GridOverlay.d.ts +1 -1
  71. package/components/containers/GridOverlay.js +5 -3
  72. package/components/containers/GridRoot.d.ts +2 -2
  73. package/components/containers/GridRoot.js +29 -17
  74. package/components/containers/GridRootStyles.js +163 -53
  75. package/components/containers/GridToolbarContainer.d.ts +1 -1
  76. package/components/containers/GridToolbarContainer.js +3 -2
  77. package/components/menu/columnMenu/GridColumnMenu.d.ts +2 -2
  78. package/components/menu/columnMenu/GridColumnMenu.js +5 -5
  79. package/components/menu/columnMenu/GridColumnMenuContainer.d.ts +1 -1
  80. package/components/menu/columnMenu/GridColumnMenuContainer.js +8 -4
  81. package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +6 -11
  82. package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +6 -11
  83. package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +6 -11
  84. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  85. package/components/panel/GridColumnsPanel.js +1 -2
  86. package/components/panel/GridPanel.d.ts +2 -2
  87. package/components/panel/GridPanel.js +5 -3
  88. package/components/panel/GridPanelContent.js +7 -3
  89. package/components/panel/GridPanelFooter.d.ts +1 -1
  90. package/components/panel/GridPanelFooter.js +4 -3
  91. package/components/panel/GridPanelWrapper.d.ts +1 -1
  92. package/components/panel/GridPanelWrapper.js +5 -3
  93. package/components/panel/filterPanel/GridFilterForm.d.ts +1 -1
  94. package/components/panel/filterPanel/GridFilterForm.js +22 -18
  95. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +4 -11
  96. package/components/panel/filterPanel/GridFilterInputBoolean.js +41 -31
  97. package/components/panel/filterPanel/GridFilterInputDate.d.ts +3 -9
  98. package/components/panel/filterPanel/GridFilterInputDate.js +50 -31
  99. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.d.ts +3 -3
  100. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +49 -24
  101. package/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +3 -3
  102. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +55 -33
  103. package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +3 -9
  104. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +34 -25
  105. package/components/panel/filterPanel/GridFilterInputValue.d.ts +3 -9
  106. package/components/panel/filterPanel/GridFilterInputValue.js +63 -38
  107. package/components/panel/filterPanel/GridFilterPanel.d.ts +1 -1
  108. package/components/panel/filterPanel/GridFilterPanel.js +4 -4
  109. package/components/panel/filterPanel/index.d.ts +2 -2
  110. package/components/panel/filterPanel/index.js +1 -2
  111. package/components/toolbar/GridToolbar.d.ts +1 -1
  112. package/components/toolbar/GridToolbar.js +11 -5
  113. package/components/toolbar/GridToolbarColumnsButton.d.ts +1 -1
  114. package/components/toolbar/GridToolbarColumnsButton.js +12 -6
  115. package/components/toolbar/GridToolbarDensitySelector.d.ts +1 -1
  116. package/components/toolbar/GridToolbarDensitySelector.js +9 -11
  117. package/components/toolbar/GridToolbarExport.d.ts +1 -1
  118. package/components/toolbar/GridToolbarExport.js +2 -1
  119. package/components/toolbar/GridToolbarExportContainer.d.ts +1 -1
  120. package/components/toolbar/GridToolbarExportContainer.js +6 -6
  121. package/components/toolbar/GridToolbarFilterButton.d.ts +3 -1
  122. package/components/toolbar/GridToolbarFilterButton.js +20 -9
  123. package/components/toolbar/GridToolbarQuickFilter.d.ts +6 -2
  124. package/components/toolbar/GridToolbarQuickFilter.js +39 -31
  125. package/components/virtualization/GridMainContainer.d.ts +13 -1
  126. package/components/virtualization/GridMainContainer.js +14 -5
  127. package/components/virtualization/GridVirtualScrollbar.d.ts +5 -1
  128. package/components/virtualization/GridVirtualScrollbar.js +17 -17
  129. package/components/virtualization/GridVirtualScroller.js +43 -21
  130. package/components/virtualization/GridVirtualScrollerContent.d.ts +2 -0
  131. package/components/virtualization/GridVirtualScrollerContent.js +15 -6
  132. package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +2 -0
  133. package/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  134. package/constants/dataGridPropsDefaultValues.js +2 -4
  135. package/constants/gridClasses.d.ts +12 -12
  136. package/constants/gridClasses.js +1 -1
  137. package/constants/index.d.ts +1 -0
  138. package/constants/index.js +2 -1
  139. package/constants/localeTextConstants.js +1 -1
  140. package/constants/signature.d.ts +9 -0
  141. package/constants/signature.js +10 -0
  142. package/context/GridContextProvider.d.ts +2 -1
  143. package/context/GridRootPropsContext.js +2 -0
  144. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +9 -2
  145. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +2 -2
  146. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +2 -2
  147. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  148. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +2 -2
  149. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +7 -5
  150. package/hooks/core/strategyProcessing/gridStrategyProcessingApi.d.ts +25 -9
  151. package/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +5 -1
  152. package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.d.ts +2 -2
  153. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +5 -8
  154. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +7 -8
  155. package/hooks/core/useGridApiInitialization.d.ts +2 -2
  156. package/hooks/core/useGridApiInitialization.js +3 -3
  157. package/hooks/core/useGridInitialization.d.ts +2 -2
  158. package/hooks/core/useGridIsRtl.d.ts +2 -2
  159. package/hooks/core/useGridLocaleText.d.ts +2 -2
  160. package/hooks/core/useGridLoggerFactory.d.ts +2 -2
  161. package/hooks/core/useGridRefs.d.ts +2 -2
  162. package/hooks/core/useGridStateInitialization.d.ts +2 -2
  163. package/hooks/core/useGridStateInitialization.js +6 -5
  164. package/hooks/features/clipboard/useGridClipboard.d.ts +2 -2
  165. package/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +4 -4
  166. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +2 -2
  167. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +5 -7
  168. package/hooks/features/columnHeaders/useGridColumnHeaders.js +39 -78
  169. package/hooks/features/columnMenu/useGridColumnMenu.d.ts +2 -2
  170. package/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  171. package/hooks/features/columnResize/columnResizeSelector.d.ts +1 -1
  172. package/hooks/features/columnResize/gridColumnResizeApi.d.ts +6 -0
  173. package/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  174. package/hooks/features/columnResize/useGridColumnResize.d.ts +2 -2
  175. package/hooks/features/columnResize/useGridColumnResize.js +17 -10
  176. package/hooks/features/columns/gridColumnsSelector.d.ts +11 -16
  177. package/hooks/features/columns/gridColumnsSelector.js +0 -12
  178. package/hooks/features/columns/gridColumnsUtils.d.ts +4 -4
  179. package/hooks/features/columns/gridColumnsUtils.js +2 -1
  180. package/hooks/features/columns/useGridColumnSpanning.d.ts +2 -2
  181. package/hooks/features/columns/useGridColumns.d.ts +2 -2
  182. package/hooks/features/columns/useGridColumns.js +9 -4
  183. package/hooks/features/density/densitySelector.d.ts +1 -1
  184. package/hooks/features/density/useGridDensity.d.ts +2 -2
  185. package/hooks/features/dimensions/gridDimensionsApi.d.ts +0 -4
  186. package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +16 -0
  187. package/hooks/features/dimensions/gridDimensionsSelectors.js +26 -1
  188. package/hooks/features/dimensions/index.d.ts +1 -1
  189. package/hooks/features/dimensions/index.js +1 -2
  190. package/hooks/features/dimensions/useGridDimensions.d.ts +2 -2
  191. package/hooks/features/dimensions/useGridDimensions.js +104 -98
  192. package/hooks/features/editing/gridEditingSelectors.d.ts +10 -0
  193. package/hooks/features/editing/gridEditingSelectors.js +12 -1
  194. package/hooks/features/editing/useGridCellEditing.d.ts +2 -2
  195. package/hooks/features/editing/useGridCellEditing.js +4 -4
  196. package/hooks/features/editing/useGridEditing.d.ts +2 -2
  197. package/hooks/features/editing/useGridRowEditing.d.ts +2 -2
  198. package/hooks/features/editing/useGridRowEditing.js +10 -11
  199. package/hooks/features/events/useGridEvents.d.ts +2 -2
  200. package/hooks/features/export/serializers/csvSerializer.d.ts +2 -1
  201. package/hooks/features/export/useGridCsvExport.d.ts +2 -2
  202. package/hooks/features/export/useGridPrintExport.d.ts +2 -2
  203. package/hooks/features/export/useGridPrintExport.js +1 -1
  204. package/hooks/features/export/utils.d.ts +2 -2
  205. package/hooks/features/filter/gridFilterSelector.d.ts +17 -17
  206. package/hooks/features/filter/gridFilterSelector.js +8 -2
  207. package/hooks/features/filter/gridFilterState.d.ts +8 -3
  208. package/hooks/features/filter/gridFilterState.js +5 -0
  209. package/hooks/features/filter/gridFilterUtils.d.ts +7 -7
  210. package/hooks/features/filter/gridFilterUtils.js +3 -3
  211. package/hooks/features/filter/useGridFilter.d.ts +2 -2
  212. package/hooks/features/filter/useGridFilter.js +10 -15
  213. package/hooks/features/focus/gridFocusStateSelector.d.ts +8 -8
  214. package/hooks/features/focus/useGridFocus.d.ts +2 -2
  215. package/hooks/features/focus/useGridFocus.js +3 -2
  216. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +3 -3
  217. package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +2 -2
  218. package/hooks/features/index.d.ts +1 -0
  219. package/hooks/features/index.js +1 -0
  220. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +2 -2
  221. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -16
  222. package/hooks/features/keyboardNavigation/utils.d.ts +3 -4
  223. package/hooks/features/keyboardNavigation/utils.js +0 -5
  224. package/hooks/features/listView/gridListViewSelectors.d.ts +3 -1
  225. package/hooks/features/listView/gridListViewSelectors.js +3 -1
  226. package/hooks/features/listView/index.d.ts +1 -0
  227. package/hooks/features/listView/index.js +1 -0
  228. package/hooks/features/listView/useGridListView.d.ts +2 -2
  229. package/hooks/features/listView/useGridListView.js +2 -1
  230. package/hooks/features/overlays/useGridOverlays.d.ts +7 -4
  231. package/hooks/features/overlays/useGridOverlays.js +23 -3
  232. package/hooks/features/pagination/gridPaginationInterfaces.d.ts +3 -0
  233. package/hooks/features/pagination/gridPaginationSelector.d.ts +34 -9
  234. package/hooks/features/pagination/gridPaginationSelector.js +39 -1
  235. package/hooks/features/pagination/gridPaginationUtils.js +1 -1
  236. package/hooks/features/pagination/useGridPagination.d.ts +3 -3
  237. package/hooks/features/pagination/useGridPagination.js +6 -4
  238. package/hooks/features/pagination/useGridPaginationMeta.d.ts +2 -2
  239. package/hooks/features/pagination/useGridPaginationModel.d.ts +2 -2
  240. package/hooks/features/pagination/useGridPaginationModel.js +23 -1
  241. package/hooks/features/pagination/useGridRowCount.d.ts +2 -2
  242. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.d.ts +1 -0
  243. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
  244. package/hooks/features/preferencesPanel/index.d.ts +1 -1
  245. package/hooks/features/preferencesPanel/index.js +1 -1
  246. package/hooks/features/preferencesPanel/useGridPreferencesPanel.d.ts +2 -2
  247. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  248. package/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +3 -3
  249. package/hooks/features/rowSelection/useGridRowSelection.d.ts +2 -2
  250. package/hooks/features/rowSelection/useGridRowSelection.js +11 -18
  251. package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.d.ts +2 -2
  252. package/hooks/features/rowSelection/utils.d.ts +4 -3
  253. package/hooks/features/rowSelection/utils.js +4 -4
  254. package/hooks/features/rows/gridRowSpanningSelectors.d.ts +3 -3
  255. package/hooks/features/rows/gridRowSpanningUtils.d.ts +2 -2
  256. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -8
  257. package/hooks/features/rows/gridRowsMetaState.d.ts +8 -0
  258. package/hooks/features/rows/gridRowsSelector.d.ts +23 -13
  259. package/hooks/features/rows/gridRowsSelector.js +1 -2
  260. package/hooks/features/rows/gridRowsUtils.d.ts +3 -7
  261. package/hooks/features/rows/gridRowsUtils.js +0 -25
  262. package/hooks/features/rows/index.d.ts +1 -1
  263. package/hooks/features/rows/index.js +1 -1
  264. package/hooks/features/rows/useGridParamsApi.d.ts +2 -2
  265. package/hooks/features/rows/useGridParamsApi.js +33 -14
  266. package/hooks/features/rows/useGridRowSpanning.d.ts +2 -2
  267. package/hooks/features/rows/useGridRowSpanning.js +97 -86
  268. package/hooks/features/rows/useGridRows.d.ts +2 -2
  269. package/hooks/features/rows/useGridRows.js +27 -29
  270. package/hooks/features/rows/useGridRowsMeta.d.ts +2 -2
  271. package/hooks/features/rows/useGridRowsMeta.js +36 -19
  272. package/hooks/features/rows/useGridRowsPreProcessors.d.ts +2 -2
  273. package/hooks/features/scroll/useGridScroll.d.ts +2 -2
  274. package/hooks/features/sorting/gridSortingSelector.d.ts +10 -5
  275. package/hooks/features/sorting/gridSortingSelector.js +21 -9
  276. package/hooks/features/sorting/gridSortingUtils.d.ts +3 -3
  277. package/hooks/features/sorting/gridSortingUtils.js +2 -2
  278. package/hooks/features/sorting/index.d.ts +2 -1
  279. package/hooks/features/sorting/index.js +1 -1
  280. package/hooks/features/sorting/useGridSorting.d.ts +2 -2
  281. package/hooks/features/sorting/useGridSorting.js +1 -1
  282. package/hooks/features/statePersistence/useGridStatePersistence.d.ts +2 -2
  283. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +6 -0
  284. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +33 -0
  285. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +5 -5
  286. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +21 -6
  287. package/hooks/features/virtualization/useGridVirtualScroller.js +209 -118
  288. package/hooks/features/virtualization/useGridVirtualization.d.ts +2 -2
  289. package/hooks/utils/index.d.ts +1 -1
  290. package/hooks/utils/index.js +1 -1
  291. package/hooks/utils/useGridApiContext.d.ts +2 -2
  292. package/hooks/utils/useGridApiEventHandler.d.ts +9 -19
  293. package/hooks/utils/useGridApiEventHandler.js +68 -75
  294. package/hooks/utils/useGridApiMethod.d.ts +2 -2
  295. package/hooks/utils/useGridApiRef.d.ts +2 -2
  296. package/hooks/utils/useGridApiRef.js +1 -1
  297. package/hooks/utils/useGridInitializeState.d.ts +3 -3
  298. package/hooks/utils/useGridLogger.d.ts +2 -2
  299. package/hooks/utils/useGridNativeEventListener.d.ts +2 -1
  300. package/hooks/utils/useGridPrivateApiContext.d.ts +2 -1
  301. package/hooks/utils/useGridSelector.d.ts +5 -7
  302. package/hooks/utils/useGridSelector.js +29 -49
  303. package/hooks/utils/useGridVisibleRows.d.ts +8 -6
  304. package/hooks/utils/useGridVisibleRows.js +5 -28
  305. package/hooks/utils/useIsSSR.d.ts +1 -0
  306. package/hooks/utils/useIsSSR.js +5 -0
  307. package/index.js +1 -1
  308. package/internals/constants.d.ts +6 -0
  309. package/internals/constants.js +8 -1
  310. package/internals/index.d.ts +9 -5
  311. package/internals/index.js +7 -4
  312. package/internals/utils/attachPinnedStyle.d.ts +2 -0
  313. package/internals/utils/attachPinnedStyle.js +9 -0
  314. package/internals/utils/getPinnedCellOffset.d.ts +3 -3
  315. package/internals/utils/getPinnedCellOffset.js +6 -7
  316. package/internals/utils/index.d.ts +1 -1
  317. package/internals/utils/index.js +2 -2
  318. package/internals/utils/propValidation.js +1 -1
  319. package/locales/arSD.js +2 -1
  320. package/locales/beBY.js +1 -1
  321. package/locales/bgBG.js +2 -1
  322. package/locales/csCZ.js +2 -1
  323. package/locales/daDK.js +2 -1
  324. package/locales/deDE.js +12 -13
  325. package/locales/elGR.js +2 -1
  326. package/locales/esES.js +12 -13
  327. package/locales/faIR.js +7 -7
  328. package/locales/fiFI.js +2 -1
  329. package/locales/frFR.js +2 -1
  330. package/locales/heIL.js +16 -17
  331. package/locales/hrHR.js +2 -1
  332. package/locales/huHU.js +2 -1
  333. package/locales/isIS.js +2 -1
  334. package/locales/itIT.js +2 -1
  335. package/locales/jaJP.js +2 -1
  336. package/locales/koKR.js +46 -49
  337. package/locales/nbNO.js +2 -1
  338. package/locales/nlNL.js +7 -7
  339. package/locales/nnNO.js +2 -1
  340. package/locales/plPL.js +2 -1
  341. package/locales/ptBR.js +12 -13
  342. package/locales/ptPT.js +12 -13
  343. package/locales/roRO.js +20 -21
  344. package/locales/ruRU.js +2 -1
  345. package/locales/skSK.js +2 -1
  346. package/locales/svSE.js +2 -1
  347. package/locales/trTR.js +14 -15
  348. package/locales/ukUA.js +2 -1
  349. package/locales/urPK.js +11 -11
  350. package/locales/viVN.js +2 -1
  351. package/locales/zhCN.js +12 -13
  352. package/locales/zhHK.js +2 -1
  353. package/locales/zhTW.js +2 -1
  354. package/material/index.js +58 -7
  355. package/models/api/gridApiCommon.d.ts +2 -2
  356. package/models/api/gridCoreApi.d.ts +7 -7
  357. package/models/api/gridDensityApi.d.ts +1 -1
  358. package/models/api/gridLocaleTextApi.d.ts +1 -1
  359. package/models/api/gridParamsApi.d.ts +29 -2
  360. package/models/api/gridStateApi.d.ts +2 -1
  361. package/models/api/index.d.ts +1 -1
  362. package/models/api/index.js +0 -1
  363. package/models/colDef/gridColDef.d.ts +34 -33
  364. package/models/controlStateItem.d.ts +2 -2
  365. package/models/events/gridEventLookup.d.ts +13 -1
  366. package/models/gridBaseSlots.d.ts +95 -0
  367. package/models/gridDataSource.d.ts +1 -1
  368. package/models/gridExport.d.ts +2 -2
  369. package/models/gridFilterInputComponent.d.ts +32 -0
  370. package/models/gridFilterOperator.d.ts +6 -4
  371. package/models/gridIconSlotsComponent.d.ts +5 -0
  372. package/models/gridSlotsComponent.d.ts +16 -1
  373. package/models/gridSlotsComponentsProps.d.ts +45 -9
  374. package/models/gridStateCommunity.d.ts +4 -0
  375. package/models/index.d.ts +1 -0
  376. package/models/props/DataGridProps.d.ts +12 -24
  377. package/modern/DataGrid/DataGrid.js +20 -38
  378. package/modern/DataGrid/useDataGridComponent.js +3 -3
  379. package/modern/DataGrid/useDataGridProps.js +3 -3
  380. package/modern/components/GridApiContext.js +2 -0
  381. package/modern/components/GridColumnHeaders.js +4 -4
  382. package/modern/components/GridConfigurationContext.js +2 -0
  383. package/modern/components/GridFooter.js +4 -4
  384. package/modern/components/GridHeaders.js +2 -2
  385. package/modern/components/GridLoadingOverlay.js +10 -8
  386. package/modern/components/GridNoResultsOverlay.js +4 -4
  387. package/modern/components/GridNoRowsOverlay.js +4 -4
  388. package/modern/components/GridPagination.js +7 -4
  389. package/modern/components/GridRow.js +60 -88
  390. package/modern/components/GridRowCount.js +3 -2
  391. package/modern/components/GridScrollArea.js +33 -24
  392. package/modern/components/GridSelectedRowCount.js +3 -2
  393. package/modern/components/GridSkeletonLoadingOverlay.js +23 -21
  394. package/modern/components/base/GridOverlays.js +2 -24
  395. package/modern/components/base/index.js +1 -2
  396. package/modern/components/cell/GridActionsCell.js +8 -1
  397. package/modern/components/cell/GridActionsCellItem.js +9 -8
  398. package/modern/components/cell/GridCell.js +49 -92
  399. package/modern/components/cell/GridEditDateCell.js +1 -1
  400. package/modern/components/cell/GridEditInputCell.js +73 -4
  401. package/modern/components/cell/GridEditSingleSelectCell.js +2 -2
  402. package/modern/components/cell/GridSkeletonCell.js +1 -2
  403. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  404. package/modern/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  405. package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +20 -7
  406. package/modern/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  407. package/modern/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  408. package/modern/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  409. package/modern/components/columnHeaders/GridIconButtonContainer.js +5 -3
  410. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +11 -9
  411. package/modern/components/columnSelection/GridHeaderCheckbox.js +17 -9
  412. package/modern/components/columnsManagement/GridColumnsManagement.js +50 -27
  413. package/modern/components/containers/GridFooterContainer.js +5 -3
  414. package/modern/components/containers/GridOverlay.js +5 -3
  415. package/modern/components/containers/GridRoot.js +29 -17
  416. package/modern/components/containers/GridRootStyles.js +163 -53
  417. package/modern/components/containers/GridToolbarContainer.js +3 -2
  418. package/modern/components/menu/columnMenu/GridColumnMenu.js +5 -5
  419. package/modern/components/menu/columnMenu/GridColumnMenuContainer.js +8 -4
  420. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +6 -11
  421. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +6 -11
  422. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +6 -11
  423. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  424. package/modern/components/panel/GridColumnsPanel.js +1 -2
  425. package/modern/components/panel/GridPanel.js +5 -3
  426. package/modern/components/panel/GridPanelContent.js +7 -3
  427. package/modern/components/panel/GridPanelFooter.js +4 -3
  428. package/modern/components/panel/GridPanelWrapper.js +5 -3
  429. package/modern/components/panel/filterPanel/GridFilterForm.js +22 -18
  430. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +41 -31
  431. package/modern/components/panel/filterPanel/GridFilterInputDate.js +50 -31
  432. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +49 -24
  433. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +55 -33
  434. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +34 -25
  435. package/modern/components/panel/filterPanel/GridFilterInputValue.js +63 -38
  436. package/modern/components/panel/filterPanel/GridFilterPanel.js +4 -4
  437. package/modern/components/panel/filterPanel/index.js +1 -2
  438. package/modern/components/toolbar/GridToolbar.js +11 -5
  439. package/modern/components/toolbar/GridToolbarColumnsButton.js +12 -6
  440. package/modern/components/toolbar/GridToolbarDensitySelector.js +9 -11
  441. package/modern/components/toolbar/GridToolbarExport.js +2 -1
  442. package/modern/components/toolbar/GridToolbarExportContainer.js +6 -6
  443. package/modern/components/toolbar/GridToolbarFilterButton.js +20 -9
  444. package/modern/components/toolbar/GridToolbarQuickFilter.js +39 -31
  445. package/modern/components/virtualization/GridMainContainer.js +14 -5
  446. package/modern/components/virtualization/GridVirtualScrollbar.js +17 -17
  447. package/modern/components/virtualization/GridVirtualScroller.js +43 -21
  448. package/modern/components/virtualization/GridVirtualScrollerContent.js +15 -6
  449. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  450. package/modern/constants/dataGridPropsDefaultValues.js +2 -4
  451. package/modern/constants/gridClasses.js +1 -1
  452. package/modern/constants/index.js +2 -1
  453. package/modern/constants/localeTextConstants.js +1 -1
  454. package/modern/constants/signature.js +10 -0
  455. package/modern/context/GridRootPropsContext.js +2 -0
  456. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  457. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +7 -5
  458. package/modern/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +5 -1
  459. package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +7 -8
  460. package/modern/hooks/core/useGridApiInitialization.js +3 -3
  461. package/modern/hooks/core/useGridStateInitialization.js +6 -5
  462. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +39 -78
  463. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  464. package/modern/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  465. package/modern/hooks/features/columnResize/useGridColumnResize.js +17 -10
  466. package/modern/hooks/features/columns/gridColumnsSelector.js +0 -12
  467. package/modern/hooks/features/columns/gridColumnsUtils.js +2 -1
  468. package/modern/hooks/features/columns/useGridColumns.js +9 -4
  469. package/modern/hooks/features/dimensions/gridDimensionsSelectors.js +26 -1
  470. package/modern/hooks/features/dimensions/index.js +1 -2
  471. package/modern/hooks/features/dimensions/useGridDimensions.js +104 -98
  472. package/modern/hooks/features/editing/gridEditingSelectors.js +12 -1
  473. package/modern/hooks/features/editing/useGridCellEditing.js +4 -4
  474. package/modern/hooks/features/editing/useGridRowEditing.js +10 -11
  475. package/modern/hooks/features/export/useGridPrintExport.js +1 -1
  476. package/modern/hooks/features/filter/gridFilterSelector.js +8 -2
  477. package/modern/hooks/features/filter/gridFilterState.js +5 -0
  478. package/modern/hooks/features/filter/gridFilterUtils.js +3 -3
  479. package/modern/hooks/features/filter/useGridFilter.js +10 -15
  480. package/modern/hooks/features/focus/useGridFocus.js +3 -2
  481. package/modern/hooks/features/index.js +1 -0
  482. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -16
  483. package/modern/hooks/features/keyboardNavigation/utils.js +0 -5
  484. package/modern/hooks/features/listView/gridListViewSelectors.js +3 -1
  485. package/modern/hooks/features/listView/index.js +1 -0
  486. package/modern/hooks/features/listView/useGridListView.js +2 -1
  487. package/modern/hooks/features/overlays/useGridOverlays.js +23 -3
  488. package/modern/hooks/features/pagination/gridPaginationSelector.js +39 -1
  489. package/modern/hooks/features/pagination/gridPaginationUtils.js +1 -1
  490. package/modern/hooks/features/pagination/useGridPagination.js +6 -4
  491. package/modern/hooks/features/pagination/useGridPaginationModel.js +23 -1
  492. package/modern/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
  493. package/modern/hooks/features/preferencesPanel/index.js +1 -1
  494. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  495. package/modern/hooks/features/rowSelection/useGridRowSelection.js +11 -18
  496. package/modern/hooks/features/rowSelection/utils.js +4 -4
  497. package/modern/hooks/features/rows/gridRowsSelector.js +1 -2
  498. package/modern/hooks/features/rows/gridRowsUtils.js +0 -25
  499. package/modern/hooks/features/rows/index.js +1 -1
  500. package/modern/hooks/features/rows/useGridParamsApi.js +33 -14
  501. package/modern/hooks/features/rows/useGridRowSpanning.js +97 -86
  502. package/modern/hooks/features/rows/useGridRows.js +27 -29
  503. package/modern/hooks/features/rows/useGridRowsMeta.js +36 -19
  504. package/modern/hooks/features/sorting/gridSortingSelector.js +21 -9
  505. package/modern/hooks/features/sorting/gridSortingUtils.js +2 -2
  506. package/modern/hooks/features/sorting/index.js +1 -1
  507. package/modern/hooks/features/sorting/useGridSorting.js +1 -1
  508. package/modern/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +33 -0
  509. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +209 -118
  510. package/modern/hooks/utils/index.js +1 -1
  511. package/modern/hooks/utils/useGridApiEventHandler.js +68 -75
  512. package/modern/hooks/utils/useGridApiRef.js +1 -1
  513. package/modern/hooks/utils/useGridSelector.js +29 -49
  514. package/modern/hooks/utils/useGridVisibleRows.js +5 -28
  515. package/modern/hooks/utils/useIsSSR.js +5 -0
  516. package/modern/index.js +1 -1
  517. package/modern/internals/constants.js +8 -1
  518. package/modern/internals/index.js +7 -4
  519. package/modern/internals/utils/attachPinnedStyle.js +9 -0
  520. package/modern/internals/utils/getPinnedCellOffset.js +6 -7
  521. package/modern/internals/utils/index.js +2 -2
  522. package/modern/internals/utils/propValidation.js +1 -1
  523. package/modern/locales/arSD.js +2 -1
  524. package/modern/locales/beBY.js +1 -1
  525. package/modern/locales/bgBG.js +2 -1
  526. package/modern/locales/csCZ.js +2 -1
  527. package/modern/locales/daDK.js +2 -1
  528. package/modern/locales/deDE.js +12 -13
  529. package/modern/locales/elGR.js +2 -1
  530. package/modern/locales/esES.js +12 -13
  531. package/modern/locales/faIR.js +7 -7
  532. package/modern/locales/fiFI.js +2 -1
  533. package/modern/locales/frFR.js +2 -1
  534. package/modern/locales/heIL.js +16 -17
  535. package/modern/locales/hrHR.js +2 -1
  536. package/modern/locales/huHU.js +2 -1
  537. package/modern/locales/isIS.js +2 -1
  538. package/modern/locales/itIT.js +2 -1
  539. package/modern/locales/jaJP.js +2 -1
  540. package/modern/locales/koKR.js +46 -49
  541. package/modern/locales/nbNO.js +2 -1
  542. package/modern/locales/nlNL.js +7 -7
  543. package/modern/locales/nnNO.js +2 -1
  544. package/modern/locales/plPL.js +2 -1
  545. package/modern/locales/ptBR.js +12 -13
  546. package/modern/locales/ptPT.js +12 -13
  547. package/modern/locales/roRO.js +20 -21
  548. package/modern/locales/ruRU.js +2 -1
  549. package/modern/locales/skSK.js +2 -1
  550. package/modern/locales/svSE.js +2 -1
  551. package/modern/locales/trTR.js +14 -15
  552. package/modern/locales/ukUA.js +2 -1
  553. package/modern/locales/urPK.js +11 -11
  554. package/modern/locales/viVN.js +2 -1
  555. package/modern/locales/zhCN.js +12 -13
  556. package/modern/locales/zhHK.js +2 -1
  557. package/modern/locales/zhTW.js +2 -1
  558. package/modern/material/index.js +58 -7
  559. package/modern/models/api/index.js +0 -1
  560. package/modern/models/gridBaseSlots.js +1 -0
  561. package/modern/models/gridFilterInputComponent.js +1 -0
  562. package/modern/utils/assert.js +3 -0
  563. package/modern/utils/cellBorderUtils.js +5 -5
  564. package/modern/utils/createSelector.js +1 -120
  565. package/modern/utils/domUtils.js +7 -2
  566. package/modern/utils/isJSDOM.js +1 -0
  567. package/modern/utils/roundToDecimalPlaces.js +3 -0
  568. package/modern/utils/rtlFlipSide.js +22 -0
  569. package/modern/utils/utils.js +6 -1
  570. package/node/DataGrid/DataGrid.js +18 -36
  571. package/node/DataGrid/useDataGridComponent.js +3 -3
  572. package/node/DataGrid/useDataGridProps.js +2 -2
  573. package/node/components/GridApiContext.js +1 -0
  574. package/node/components/GridColumnHeaders.js +4 -4
  575. package/node/components/GridConfigurationContext.js +1 -0
  576. package/node/components/GridFooter.js +4 -4
  577. package/node/components/GridHeaders.js +2 -2
  578. package/node/components/GridLoadingOverlay.js +10 -8
  579. package/node/components/GridNoResultsOverlay.js +4 -4
  580. package/node/components/GridNoRowsOverlay.js +4 -4
  581. package/node/components/GridPagination.js +7 -4
  582. package/node/components/GridRow.js +56 -85
  583. package/node/components/GridRowCount.js +3 -2
  584. package/node/components/GridScrollArea.js +32 -24
  585. package/node/components/GridSelectedRowCount.js +3 -2
  586. package/node/components/GridSkeletonLoadingOverlay.js +23 -21
  587. package/node/components/base/GridOverlays.js +2 -24
  588. package/node/components/base/index.js +0 -11
  589. package/node/components/cell/GridActionsCell.js +8 -1
  590. package/node/components/cell/GridActionsCellItem.js +7 -8
  591. package/node/components/cell/GridCell.js +48 -91
  592. package/node/components/cell/GridEditDateCell.js +1 -1
  593. package/node/components/cell/GridEditInputCell.js +73 -4
  594. package/node/components/cell/GridEditSingleSelectCell.js +2 -2
  595. package/node/components/cell/GridSkeletonCell.js +1 -2
  596. package/node/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  597. package/node/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  598. package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +19 -6
  599. package/node/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  600. package/node/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  601. package/node/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  602. package/node/components/columnHeaders/GridIconButtonContainer.js +5 -3
  603. package/node/components/columnSelection/GridCellCheckboxRenderer.js +10 -8
  604. package/node/components/columnSelection/GridHeaderCheckbox.js +17 -9
  605. package/node/components/columnsManagement/GridColumnsManagement.js +50 -27
  606. package/node/components/containers/GridFooterContainer.js +5 -3
  607. package/node/components/containers/GridOverlay.js +5 -3
  608. package/node/components/containers/GridRoot.js +27 -15
  609. package/node/components/containers/GridRootStyles.js +163 -53
  610. package/node/components/containers/GridToolbarContainer.js +3 -2
  611. package/node/components/menu/columnMenu/GridColumnMenu.js +5 -5
  612. package/node/components/menu/columnMenu/GridColumnMenuContainer.js +8 -4
  613. package/node/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +5 -10
  614. package/node/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +5 -10
  615. package/node/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +5 -10
  616. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  617. package/node/components/panel/GridColumnsPanel.js +1 -2
  618. package/node/components/panel/GridPanel.js +5 -3
  619. package/node/components/panel/GridPanelContent.js +7 -3
  620. package/node/components/panel/GridPanelFooter.js +5 -4
  621. package/node/components/panel/GridPanelWrapper.js +5 -3
  622. package/node/components/panel/filterPanel/GridFilterForm.js +22 -18
  623. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +42 -33
  624. package/node/components/panel/filterPanel/GridFilterInputDate.js +49 -30
  625. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +49 -24
  626. package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +55 -33
  627. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +34 -25
  628. package/node/components/panel/filterPanel/GridFilterInputValue.js +62 -37
  629. package/node/components/panel/filterPanel/GridFilterPanel.js +4 -4
  630. package/node/components/panel/filterPanel/index.js +7 -23
  631. package/node/components/toolbar/GridToolbar.js +11 -5
  632. package/node/components/toolbar/GridToolbarColumnsButton.js +12 -6
  633. package/node/components/toolbar/GridToolbarDensitySelector.js +9 -11
  634. package/node/components/toolbar/GridToolbarExport.js +2 -1
  635. package/node/components/toolbar/GridToolbarExportContainer.js +6 -6
  636. package/node/components/toolbar/GridToolbarFilterButton.js +20 -9
  637. package/node/components/toolbar/GridToolbarQuickFilter.js +39 -31
  638. package/node/components/virtualization/GridMainContainer.js +14 -5
  639. package/node/components/virtualization/GridVirtualScrollbar.js +17 -17
  640. package/node/components/virtualization/GridVirtualScroller.js +43 -21
  641. package/node/components/virtualization/GridVirtualScrollerContent.js +15 -6
  642. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  643. package/node/constants/dataGridPropsDefaultValues.js +2 -4
  644. package/node/constants/gridClasses.js +1 -1
  645. package/node/constants/index.js +11 -0
  646. package/node/constants/localeTextConstants.js +1 -1
  647. package/node/constants/signature.js +16 -0
  648. package/node/context/GridRootPropsContext.js +1 -0
  649. package/node/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  650. package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +7 -5
  651. package/node/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +7 -1
  652. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +7 -8
  653. package/node/hooks/core/useGridApiInitialization.js +4 -4
  654. package/node/hooks/core/useGridStateInitialization.js +6 -5
  655. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +37 -76
  656. package/node/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  657. package/node/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  658. package/node/hooks/features/columnResize/useGridColumnResize.js +17 -10
  659. package/node/hooks/features/columns/gridColumnsSelector.js +1 -13
  660. package/node/hooks/features/columns/gridColumnsUtils.js +2 -1
  661. package/node/hooks/features/columns/useGridColumns.js +9 -4
  662. package/node/hooks/features/dimensions/gridDimensionsSelectors.js +38 -2
  663. package/node/hooks/features/dimensions/index.js +13 -11
  664. package/node/hooks/features/dimensions/useGridDimensions.js +102 -96
  665. package/node/hooks/features/editing/gridEditingSelectors.js +12 -2
  666. package/node/hooks/features/editing/useGridCellEditing.js +3 -3
  667. package/node/hooks/features/editing/useGridRowEditing.js +8 -9
  668. package/node/hooks/features/export/useGridPrintExport.js +1 -1
  669. package/node/hooks/features/filter/gridFilterSelector.js +8 -2
  670. package/node/hooks/features/filter/gridFilterState.js +6 -1
  671. package/node/hooks/features/filter/gridFilterUtils.js +3 -3
  672. package/node/hooks/features/filter/useGridFilter.js +9 -14
  673. package/node/hooks/features/focus/useGridFocus.js +3 -2
  674. package/node/hooks/features/index.js +11 -0
  675. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -15
  676. package/node/hooks/features/keyboardNavigation/utils.js +0 -6
  677. package/node/hooks/features/listView/gridListViewSelectors.js +3 -1
  678. package/node/hooks/features/listView/index.js +16 -0
  679. package/node/hooks/features/listView/useGridListView.js +2 -1
  680. package/node/hooks/features/overlays/useGridOverlays.js +25 -3
  681. package/node/hooks/features/pagination/gridPaginationSelector.js +41 -3
  682. package/node/hooks/features/pagination/gridPaginationUtils.js +2 -2
  683. package/node/hooks/features/pagination/useGridPagination.js +6 -4
  684. package/node/hooks/features/pagination/useGridPaginationModel.js +23 -1
  685. package/node/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +9 -2
  686. package/node/hooks/features/preferencesPanel/index.js +11 -10
  687. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  688. package/node/hooks/features/rowSelection/useGridRowSelection.js +12 -19
  689. package/node/hooks/features/rowSelection/utils.js +5 -5
  690. package/node/hooks/features/rows/gridRowsSelector.js +2 -3
  691. package/node/hooks/features/rows/gridRowsUtils.js +0 -26
  692. package/node/hooks/features/rows/index.js +0 -7
  693. package/node/hooks/features/rows/useGridParamsApi.js +33 -14
  694. package/node/hooks/features/rows/useGridRowSpanning.js +95 -84
  695. package/node/hooks/features/rows/useGridRows.js +27 -29
  696. package/node/hooks/features/rows/useGridRowsMeta.js +36 -19
  697. package/node/hooks/features/sorting/gridSortingSelector.js +22 -10
  698. package/node/hooks/features/sorting/gridSortingUtils.js +2 -2
  699. package/node/hooks/features/sorting/index.js +24 -16
  700. package/node/hooks/features/sorting/useGridSorting.js +1 -1
  701. package/node/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +40 -0
  702. package/node/hooks/features/virtualization/useGridVirtualScroller.js +210 -119
  703. package/node/hooks/utils/index.js +21 -11
  704. package/node/hooks/utils/useGridApiEventHandler.js +71 -78
  705. package/node/hooks/utils/useGridApiRef.js +1 -1
  706. package/node/hooks/utils/useGridSelector.js +31 -52
  707. package/node/hooks/utils/useGridVisibleRows.js +3 -28
  708. package/node/hooks/utils/useIsSSR.js +12 -0
  709. package/node/index.js +1 -1
  710. package/node/internals/constants.js +9 -2
  711. package/node/internals/index.js +57 -27
  712. package/node/internals/utils/attachPinnedStyle.js +15 -0
  713. package/node/internals/utils/getPinnedCellOffset.js +6 -7
  714. package/node/internals/utils/index.js +11 -11
  715. package/node/internals/utils/propValidation.js +2 -2
  716. package/node/locales/arSD.js +2 -1
  717. package/node/locales/beBY.js +1 -1
  718. package/node/locales/bgBG.js +2 -1
  719. package/node/locales/csCZ.js +2 -1
  720. package/node/locales/daDK.js +2 -1
  721. package/node/locales/deDE.js +12 -13
  722. package/node/locales/elGR.js +2 -1
  723. package/node/locales/esES.js +12 -13
  724. package/node/locales/faIR.js +7 -7
  725. package/node/locales/fiFI.js +2 -1
  726. package/node/locales/frFR.js +2 -1
  727. package/node/locales/heIL.js +16 -17
  728. package/node/locales/hrHR.js +2 -1
  729. package/node/locales/huHU.js +2 -1
  730. package/node/locales/isIS.js +2 -1
  731. package/node/locales/itIT.js +2 -1
  732. package/node/locales/jaJP.js +2 -1
  733. package/node/locales/koKR.js +46 -49
  734. package/node/locales/nbNO.js +2 -1
  735. package/node/locales/nlNL.js +7 -7
  736. package/node/locales/nnNO.js +2 -1
  737. package/node/locales/plPL.js +2 -1
  738. package/node/locales/ptBR.js +12 -13
  739. package/node/locales/ptPT.js +12 -13
  740. package/node/locales/roRO.js +20 -21
  741. package/node/locales/ruRU.js +2 -1
  742. package/node/locales/skSK.js +2 -1
  743. package/node/locales/svSE.js +2 -1
  744. package/node/locales/trTR.js +14 -15
  745. package/node/locales/ukUA.js +2 -1
  746. package/node/locales/urPK.js +11 -11
  747. package/node/locales/viVN.js +2 -1
  748. package/node/locales/zhCN.js +12 -13
  749. package/node/locales/zhHK.js +2 -1
  750. package/node/locales/zhTW.js +2 -1
  751. package/node/material/index.js +59 -7
  752. package/node/models/api/index.js +0 -11
  753. package/node/models/gridFilterInputComponent.js +5 -0
  754. package/node/utils/assert.js +9 -0
  755. package/node/utils/cellBorderUtils.js +5 -5
  756. package/node/utils/createSelector.js +4 -125
  757. package/node/utils/domUtils.js +7 -2
  758. package/node/utils/isJSDOM.js +7 -0
  759. package/node/utils/roundToDecimalPlaces.js +9 -0
  760. package/node/utils/rtlFlipSide.js +29 -0
  761. package/node/utils/utils.js +8 -1
  762. package/package.json +4 -3
  763. package/themeAugmentation/overrides.d.ts +10 -5
  764. package/utils/assert.d.ts +2 -0
  765. package/utils/assert.js +3 -0
  766. package/utils/cellBorderUtils.d.ts +3 -3
  767. package/utils/cellBorderUtils.js +5 -5
  768. package/utils/createSelector.d.ts +7 -19
  769. package/utils/createSelector.js +1 -120
  770. package/utils/domUtils.js +7 -2
  771. package/utils/getPublicApiRef.d.ts +2 -1
  772. package/utils/isJSDOM.d.ts +1 -0
  773. package/utils/isJSDOM.js +1 -0
  774. package/utils/keyboardUtils.d.ts +1 -1
  775. package/utils/roundToDecimalPlaces.d.ts +1 -0
  776. package/utils/roundToDecimalPlaces.js +3 -0
  777. package/utils/rtlFlipSide.d.ts +2 -0
  778. package/utils/rtlFlipSide.js +22 -0
  779. package/utils/utils.d.ts +1 -0
  780. package/utils/utils.js +6 -1
  781. package/components/panel/filterPanel/GridFilterInputValueProps.d.ts +0 -11
  782. package/internals/utils/useProps.d.ts +0 -1
  783. package/internals/utils/useProps.js +0 -24
  784. package/joy/icons.d.ts +0 -32
  785. package/joy/icons.js +0 -431
  786. package/joy/index.d.ts +0 -2
  787. package/joy/index.js +0 -2
  788. package/joy/joySlots.d.ts +0 -3
  789. package/joy/joySlots.js +0 -389
  790. package/joy/package.json +0 -6
  791. package/modern/internals/utils/useProps.js +0 -24
  792. package/modern/joy/icons.js +0 -431
  793. package/modern/joy/index.js +0 -2
  794. package/modern/joy/joySlots.js +0 -389
  795. package/node/internals/utils/useProps.js +0 -30
  796. package/node/joy/icons.js +0 -439
  797. package/node/joy/index.js +0 -13
  798. package/node/joy/joySlots.js +0 -397
  799. /package/{components/panel/filterPanel/GridFilterInputValueProps.js → models/gridBaseSlots.js} +0 -0
  800. /package/{modern/components/panel/filterPanel/GridFilterInputValueProps.js → models/gridFilterInputComponent.js} +0 -0
  801. /package/node/{components/panel/filterPanel/GridFilterInputValueProps.js → models/gridBaseSlots.js} +0 -0
@@ -8,19 +8,6 @@ const reselectCreateSelector = createSelectorCreator({
8
8
  equalityCheck: Object.is
9
9
  }
10
10
  });
11
-
12
- // TODO v8: Remove this type
13
-
14
- // TODO v8: Rename this type to `OutputSelector`
15
-
16
- // TODO v8: Remove this type
17
-
18
- // TODO v8: Rename this type to `SelectorArgs`
19
-
20
- // TODO v8: Remove this type
21
-
22
- // TODO v8: Rename this type to `CreateSelectorFunction`
23
-
24
11
  const cache = new WeakMap();
25
12
  function checkIsAPIRef(value) {
26
13
  return 'current' in value && 'instanceId' in value.current;
@@ -28,83 +15,12 @@ function checkIsAPIRef(value) {
28
15
  const DEFAULT_INSTANCE_ID = {
29
16
  id: 'default'
30
17
  };
31
-
32
- // TODO v8: Remove this function
33
18
  export const createSelector = (a, b, c, d, e, f, ...other) => {
34
19
  if (other.length > 0) {
35
20
  throw new Error('Unsupported number of selectors');
36
21
  }
37
22
  let selector;
38
23
 
39
- // eslint-disable-next-line id-denylist
40
- if (a && b && c && d && e && f) {
41
- selector = (stateOrApiRef, instanceIdParam) => {
42
- const isAPIRef = checkIsAPIRef(stateOrApiRef);
43
- const instanceId = instanceIdParam ?? (isAPIRef ? stateOrApiRef.current.instanceId : DEFAULT_INSTANCE_ID);
44
- const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;
45
- const va = a(state, instanceId);
46
- const vb = b(state, instanceId);
47
- const vc = c(state, instanceId);
48
- const vd = d(state, instanceId);
49
- const ve = e(state, instanceId);
50
- return f(va, vb, vc, vd, ve);
51
- };
52
- // eslint-disable-next-line id-denylist
53
- } else if (a && b && c && d && e) {
54
- selector = (stateOrApiRef, instanceIdParam) => {
55
- const isAPIRef = checkIsAPIRef(stateOrApiRef);
56
- const instanceId = instanceIdParam ?? (isAPIRef ? stateOrApiRef.current.instanceId : DEFAULT_INSTANCE_ID);
57
- const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;
58
- const va = a(state, instanceId);
59
- const vb = b(state, instanceId);
60
- const vc = c(state, instanceId);
61
- const vd = d(state, instanceId);
62
- return e(va, vb, vc, vd);
63
- };
64
- } else if (a && b && c && d) {
65
- selector = (stateOrApiRef, instanceIdParam) => {
66
- const isAPIRef = checkIsAPIRef(stateOrApiRef);
67
- const instanceId = instanceIdParam ?? (isAPIRef ? stateOrApiRef.current.instanceId : DEFAULT_INSTANCE_ID);
68
- const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;
69
- const va = a(state, instanceId);
70
- const vb = b(state, instanceId);
71
- const vc = c(state, instanceId);
72
- return d(va, vb, vc);
73
- };
74
- } else if (a && b && c) {
75
- selector = (stateOrApiRef, instanceIdParam) => {
76
- const isAPIRef = checkIsAPIRef(stateOrApiRef);
77
- const instanceId = instanceIdParam ?? (isAPIRef ? stateOrApiRef.current.instanceId : DEFAULT_INSTANCE_ID);
78
- const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;
79
- const va = a(state, instanceId);
80
- const vb = b(state, instanceId);
81
- return c(va, vb);
82
- };
83
- } else if (a && b) {
84
- selector = (stateOrApiRef, instanceIdParam) => {
85
- const isAPIRef = checkIsAPIRef(stateOrApiRef);
86
- const instanceId = instanceIdParam ?? (isAPIRef ? stateOrApiRef.current.instanceId : DEFAULT_INSTANCE_ID);
87
- const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;
88
- const va = a(state, instanceId);
89
- return b(va);
90
- };
91
- } else {
92
- throw new Error('Missing arguments');
93
- }
94
-
95
- // We use this property to detect if the selector was created with createSelector
96
- // or it's only a simple function the receives the state and returns part of it.
97
- selector.acceptsApiRef = true;
98
- return selector;
99
- };
100
-
101
- // TODO v8: Rename this function to `createSelector`
102
- export const createSelectorV8 = (a, b, c, d, e, f, ...other) => {
103
- if (other.length > 0) {
104
- throw new Error('Unsupported number of selectors');
105
- }
106
- let selector;
107
-
108
24
  // eslint-disable-next-line id-denylist
109
25
  if (a && b && c && d && e && f) {
110
26
  selector = (stateOrApiRef, args, instanceIdParam) => {
@@ -166,49 +82,14 @@ export const createSelectorV8 = (a, b, c, d, e, f, ...other) => {
166
82
  selector.acceptsApiRef = true;
167
83
  return selector;
168
84
  };
169
-
170
- // TODO v8: Remove this function
171
85
  export const createSelectorMemoized = (...args) => {
172
- const selector = (stateOrApiRef, instanceId) => {
173
- const isAPIRef = checkIsAPIRef(stateOrApiRef);
174
- const cacheKey = isAPIRef ? stateOrApiRef.current.instanceId : instanceId ?? DEFAULT_INSTANCE_ID;
175
- const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;
176
- if (process.env.NODE_ENV !== 'production') {
177
- if (cacheKey.id === 'default') {
178
- warnOnce(['MUI X: A selector was called without passing the instance ID, which may impact the performance of the grid.', 'To fix, call it with `apiRef`, for example `mySelector(apiRef)`, or pass the instance ID explicitly, for example `mySelector(state, apiRef.current.instanceId)`.']);
179
- }
180
- }
181
- const cacheArgsInit = cache.get(cacheKey);
182
- const cacheArgs = cacheArgsInit ?? new Map();
183
- const cacheFn = cacheArgs?.get(args);
184
- if (cacheArgs && cacheFn) {
185
- // We pass the cache key because the called selector might have as
186
- // dependency another selector created with this `createSelector`.
187
- return cacheFn(state, cacheKey);
188
- }
189
- const fn = reselectCreateSelector(...args);
190
- if (!cacheArgsInit) {
191
- cache.set(cacheKey, cacheArgs);
192
- }
193
- cacheArgs.set(args, fn);
194
- return fn(state, cacheKey);
195
- };
196
-
197
- // We use this property to detect if the selector was created with createSelector
198
- // or it's only a simple function the receives the state and returns part of it.
199
- selector.acceptsApiRef = true;
200
- return selector;
201
- };
202
-
203
- // TODO v8: Rename this function to `createSelectorMemoized`
204
- export const createSelectorMemoizedV8 = (...args) => {
205
86
  const selector = (stateOrApiRef, selectorArgs, instanceId) => {
206
87
  const isAPIRef = checkIsAPIRef(stateOrApiRef);
207
88
  const cacheKey = isAPIRef ? stateOrApiRef.current.instanceId : instanceId ?? DEFAULT_INSTANCE_ID;
208
89
  const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;
209
90
  if (process.env.NODE_ENV !== 'production') {
210
91
  if (cacheKey.id === 'default') {
211
- warnOnce(['MUI X: A selector was called without passing the instance ID, which may impact the performance of the grid.', 'To fix, call it with `apiRef`, for example `mySelector(apiRef)`, or pass the instance ID explicitly, for example `mySelector(state, apiRef.current.instanceId)`.']);
92
+ warnOnce(['MUI X: A selector was called without passing the instance ID, which may impact the performance of the grid.', 'To fix, call it with `apiRef`, for example `mySelector(apiRef)`, or pass the instance ID explicitly, for example `mySelector(state, args, apiRef.current.instanceId)`.']);
212
93
  }
213
94
  }
214
95
  const cacheArgsInit = cache.get(cacheKey);
@@ -153,7 +153,7 @@ const findPinnedHeaders = ({
153
153
  const elements = [];
154
154
  api.columnHeadersContainerRef.current.querySelectorAll(`.${gridClasses[position === 'left' ? 'columnHeader--pinnedLeft' : 'columnHeader--pinnedRight']}`).forEach(element => {
155
155
  const currentColIndex = parseCellColIndex(element);
156
- if (currentColIndex !== null && filterFn(currentColIndex)) {
156
+ if (currentColIndex !== null && filterFn(currentColIndex, element)) {
157
157
  elements.push(element);
158
158
  }
159
159
  });
@@ -174,7 +174,12 @@ export function findRightPinnedHeadersBeforeCol(api, col, isRtl) {
174
174
  api,
175
175
  position: isRtl ? 'left' : 'right',
176
176
  colIndex,
177
- filterFn: index => isRtl ? index > colIndex : index < colIndex
177
+ filterFn: (index, element) => {
178
+ if (element.classList.contains(gridClasses['columnHeader--last'])) {
179
+ return false;
180
+ }
181
+ return isRtl ? index > colIndex : index < colIndex;
182
+ }
178
183
  });
179
184
  }
180
185
  export function findGridHeader(api, field) {
@@ -0,0 +1 @@
1
+ export const isJSDOM = typeof window !== 'undefined' && /jsdom|HappyDOM/.test(window.navigator.userAgent);
@@ -0,0 +1,3 @@
1
+ export function roundToDecimalPlaces(value, decimals) {
2
+ return Math.round(value * 10 ** decimals) / 10 ** decimals;
3
+ }
@@ -0,0 +1,22 @@
1
+ import { PinnedColumnPosition } from "../internals/constants.js";
2
+ export const rtlFlipSide = (position, isRtl) => {
3
+ if (!position) {
4
+ return undefined;
5
+ }
6
+ if (!isRtl) {
7
+ if (position === PinnedColumnPosition.LEFT) {
8
+ return 'left';
9
+ }
10
+ if (position === PinnedColumnPosition.RIGHT) {
11
+ return 'right';
12
+ }
13
+ } else {
14
+ if (position === PinnedColumnPosition.LEFT) {
15
+ return 'right';
16
+ }
17
+ if (position === PinnedColumnPosition.RIGHT) {
18
+ return 'left';
19
+ }
20
+ }
21
+ return undefined;
22
+ };
@@ -196,4 +196,9 @@ export function deepClone(obj) {
196
196
  * of a `eslint-disable-next-line react-hooks/exhaustive-deps` because
197
197
  * that hint disables checks on all values instead of just one.
198
198
  */
199
- export function eslintUseValue(_) {}
199
+ export function eslintUseValue(_) {}
200
+ export const runIf = (condition, fn) => params => {
201
+ if (condition) {
202
+ fn(params);
203
+ }
204
+ };
@@ -10,6 +10,7 @@ exports.DataGrid = void 0;
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _forwardRef = require("@mui/x-internals/forwardRef");
13
14
  var _components = require("../components");
14
15
  var _useGridAriaAttributes = require("../hooks/utils/useGridAriaAttributes");
15
16
  var _useGridRowAriaAttributes = require("../hooks/features/rows/useGridRowAriaAttributes");
@@ -24,29 +25,22 @@ const configuration = {
24
25
  useGridRowAriaAttributes: _useGridRowAriaAttributes.useGridRowAriaAttributes
25
26
  }
26
27
  };
27
- let propValidators;
28
- if (process.env.NODE_ENV !== 'production') {
29
- propValidators = [..._propValidation.propValidatorsDataGrid,
30
- // Only validate in MIT version
31
- 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];
32
- }
33
- const DataGridRaw = /*#__PURE__*/React.forwardRef(function DataGrid(inProps, ref) {
28
+ const DataGridRaw = (0, _forwardRef.forwardRef)(function DataGrid(inProps, ref) {
34
29
  const props = (0, _useDataGridProps.useDataGridProps)(inProps);
35
30
  const privateApiRef = (0, _useDataGridComponent.useDataGridComponent)(props.apiRef, props);
36
31
  if (process.env.NODE_ENV !== 'production') {
37
- (0, _propValidation.validateProps)(props, propValidators);
32
+ (0, _propValidation.validateProps)(props, _propValidation.propValidatorsDataGrid);
38
33
  }
39
34
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridContextProvider.GridContextProvider, {
40
35
  privateApiRef: privateApiRef,
41
36
  configuration: configuration,
42
37
  props: props,
43
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.GridRoot, (0, _extends2.default)({
38
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.GridRoot, (0, _extends2.default)({
44
39
  className: props.className,
45
40
  style: props.style,
46
- sx: props.sx,
41
+ sx: props.sx
42
+ }, props.slotProps?.root, {
47
43
  ref: ref
48
- }, props.forwardedProps, {
49
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.GridHeader, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.GridBody, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.GridFooterPlaceholder, {})]
50
44
  }))
51
45
  });
52
46
  });
@@ -67,7 +61,7 @@ DataGridRaw.propTypes = {
67
61
  * The ref object that allows Data Grid manipulation. Can be instantiated with `useGridApiRef()`.
68
62
  */
69
63
  apiRef: _propTypes.default.shape({
70
- current: _propTypes.default.object.isRequired
64
+ current: _propTypes.default.object
71
65
  }),
72
66
  /**
73
67
  * The label of the Data Grid.
@@ -102,6 +96,7 @@ DataGridRaw.propTypes = {
102
96
  */
103
97
  autosizeOptions: _propTypes.default.shape({
104
98
  columns: _propTypes.default.arrayOf(_propTypes.default.string),
99
+ disableColumnVirtualization: _propTypes.default.bool,
105
100
  expand: _propTypes.default.bool,
106
101
  includeHeaders: _propTypes.default.bool,
107
102
  includeOutliers: _propTypes.default.bool,
@@ -255,11 +250,6 @@ DataGridRaw.propTypes = {
255
250
  quickFilterLogicOperator: _propTypes.default.oneOf(['and', 'or']),
256
251
  quickFilterValues: _propTypes.default.array
257
252
  }),
258
- /**
259
- * Forwarded props for the Data Grid root element.
260
- * @ignore - do not document.
261
- */
262
- forwardedProps: _propTypes.default.object,
263
253
  /**
264
254
  * Function that applies CSS classes dynamically on cells.
265
255
  * @param {GridCellParams} params With all properties from [[GridCellParams]].
@@ -332,14 +322,6 @@ DataGridRaw.propTypes = {
332
322
  clipboardExport: _propTypes.default.bool,
333
323
  csvExport: _propTypes.default.bool
334
324
  }), _propTypes.default.bool]),
335
- /**
336
- * If `select`, a group header checkbox in indeterminate state (like "Select All" checkbox)
337
- * will select all the rows under it.
338
- * If `deselect`, it will deselect all the rows under it.
339
- * Works only if `checkboxSelection` is enabled.
340
- * @default "deselect"
341
- */
342
- indeterminateCheckboxAction: _propTypes.default.oneOf(['deselect', 'select']),
343
325
  /**
344
326
  * The initial state of the DataGrid.
345
327
  * The data in it will be set in the state on initialization but will not be controlled.
@@ -697,14 +679,6 @@ DataGridRaw.propTypes = {
697
679
  * Controls the modes of the rows.
698
680
  */
699
681
  rowModesModel: _propTypes.default.object,
700
- /**
701
- * The milliseconds delay to wait after measuring the row height before recalculating row positions.
702
- * Setting it to a lower value could be useful when using dynamic row height,
703
- * but might reduce performance when displaying a large number of rows.
704
- * @default 166
705
- * @deprecated
706
- */
707
- rowPositionsDebounceMs: _propTypes.default.number,
708
682
  /**
709
683
  * Set of rows of type [[GridRowsProp]].
710
684
  * @default []
@@ -724,6 +698,11 @@ DataGridRaw.propTypes = {
724
698
  * @default "margin"
725
699
  */
726
700
  rowSpacingType: _propTypes.default.oneOf(['border', 'margin']),
701
+ /**
702
+ * If `true`, the Data Grid will auto span the cells over the rows having the same value.
703
+ * @default false
704
+ */
705
+ rowSpanning: _propTypes.default.bool,
727
706
  /**
728
707
  * Override the height/width of the Data Grid inner scrollbar.
729
708
  */
@@ -770,8 +749,11 @@ DataGridRaw.propTypes = {
770
749
  */
771
750
  sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
772
751
  /**
773
- * If `true`, the Data Grid will auto span the cells over the rows having the same value.
752
+ * If `true`, the Data Grid enables column virtualization when `getRowHeight` is set to `() => 'auto'`.
753
+ * By default, column virtualization is disabled when dynamic row height is enabled to measure the row height correctly.
754
+ * For datasets with a large number of columns, this can cause performance issues.
755
+ * The downside of enabling this prop is that the row height will be estimated based the cells that are currently rendered, which can cause row height change when scrolling horizontally.
774
756
  * @default false
775
757
  */
776
- unstable_rowSpanning: _propTypes.default.bool
758
+ virtualizeColumnsWithAutoRowHeight: _propTypes.default.bool
777
759
  };
@@ -47,9 +47,9 @@ const useDataGridComponent = (inputApiRef, props) => {
47
47
  /**
48
48
  * Register all state initializers here.
49
49
  */
50
- (0, _useGridInitializeState.useGridInitializeState)(_useGridDimensions.dimensionsStateInitializer, apiRef, props);
51
50
  (0, _useGridInitializeState.useGridInitializeState)(_useGridRowSelection.rowSelectionStateInitializer, apiRef, props);
52
51
  (0, _useGridInitializeState.useGridInitializeState)(_useGridColumns.columnsStateInitializer, apiRef, props);
52
+ (0, _useGridInitializeState.useGridInitializeState)(_useGridPagination.paginationStateInitializer, apiRef, props);
53
53
  (0, _useGridInitializeState.useGridInitializeState)(_useGridRows.rowsStateInitializer, apiRef, props);
54
54
  (0, _useGridInitializeState.useGridInitializeState)(_useGridEditing.editingStateInitializer, apiRef, props);
55
55
  (0, _useGridInitializeState.useGridInitializeState)(_useGridFocus.focusStateInitializer, apiRef, props);
@@ -59,11 +59,11 @@ const useDataGridComponent = (inputApiRef, props) => {
59
59
  (0, _useGridInitializeState.useGridInitializeState)(_useGridRowSpanning.rowSpanningStateInitializer, apiRef, props);
60
60
  (0, _useGridInitializeState.useGridInitializeState)(_useGridDensity.densityStateInitializer, apiRef, props);
61
61
  (0, _useGridInitializeState.useGridInitializeState)(_useGridColumnResize.columnResizeStateInitializer, apiRef, props);
62
- (0, _useGridInitializeState.useGridInitializeState)(_useGridPagination.paginationStateInitializer, apiRef, props);
63
- (0, _useGridInitializeState.useGridInitializeState)(_useGridRowsMeta.rowsMetaStateInitializer, apiRef, props);
64
62
  (0, _useGridInitializeState.useGridInitializeState)(_useGridColumnMenu.columnMenuStateInitializer, apiRef, props);
65
63
  (0, _useGridInitializeState.useGridInitializeState)(_useGridColumnGrouping.columnGroupsStateInitializer, apiRef, props);
66
64
  (0, _useGridInitializeState.useGridInitializeState)(_virtualization.virtualizationStateInitializer, apiRef, props);
65
+ (0, _useGridInitializeState.useGridInitializeState)(_useGridDimensions.dimensionsStateInitializer, apiRef, props);
66
+ (0, _useGridInitializeState.useGridInitializeState)(_useGridRowsMeta.rowsMetaStateInitializer, apiRef, props);
67
67
  (0, _useGridInitializeState.useGridInitializeState)(_useGridListView.listViewStateInitializer, apiRef, props);
68
68
  (0, _useGridKeyboardNavigation.useGridKeyboardNavigation)(apiRef, props);
69
69
  (0, _useGridRowSelection.useGridRowSelection)(apiRef, props);
@@ -27,12 +27,12 @@ const DATA_GRID_FORCED_PROPS = {
27
27
  };
28
28
  const defaultSlots = _defaultGridSlotsComponents.DATA_GRID_DEFAULT_SLOTS_COMPONENTS;
29
29
  const useDataGridProps = inProps => {
30
- const themedProps = (0, _utils.useProps)(
30
+ const themedProps =
31
31
  // eslint-disable-next-line material-ui/mui-name-matches-component-name
32
32
  (0, _styles.useThemeProps)({
33
33
  props: inProps,
34
34
  name: 'MuiDataGrid'
35
- }));
35
+ });
36
36
  const localeText = React.useMemo(() => (0, _extends2.default)({}, _constants.GRID_DEFAULT_LOCALE_TEXT, themedProps.localeText), [themedProps.localeText]);
37
37
  const slots = React.useMemo(() => (0, _utils.computeSlots)({
38
38
  defaultSlots,
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  Object.defineProperty(exports, "__esModule", {
@@ -11,11 +11,12 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _fastMemo = require("@mui/x-internals/fastMemo");
14
+ var _forwardRef = require("@mui/x-internals/forwardRef");
14
15
  var _useGridColumnHeaders = require("../hooks/features/columnHeaders/useGridColumnHeaders");
15
16
  var _GridBaseColumnHeaders = require("./columnHeaders/GridBaseColumnHeaders");
16
17
  var _jsxRuntime = require("react/jsx-runtime");
17
18
  const _excluded = ["className", "visibleColumns", "sortColumnLookup", "filterColumnLookup", "columnHeaderTabIndexState", "columnGroupHeaderTabIndexState", "columnHeaderFocus", "columnGroupHeaderFocus", "headerGroupingMaxDepth", "columnMenuState", "columnVisibility", "columnGroupsHeaderStructure", "hasOtherElementInTabSequence"];
18
- const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnHeaders(props, ref) {
19
+ const GridColumnHeaders = (0, _forwardRef.forwardRef)(function GridColumnHeaders(props, ref) {
19
20
  const {
20
21
  visibleColumns,
21
22
  sortColumnLookup,
@@ -49,9 +50,8 @@ const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnHeade
49
50
  columnGroupsHeaderStructure,
50
51
  hasOtherElementInTabSequence
51
52
  });
52
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridBaseColumnHeaders.GridBaseColumnHeaders, (0, _extends2.default)({
53
- ref: ref
54
- }, other, getInnerProps(), {
53
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridBaseColumnHeaders.GridBaseColumnHeaders, (0, _extends2.default)({}, other, getInnerProps(), {
54
+ ref: ref,
55
55
  children: [getColumnGroupHeadersRows(), getColumnHeadersRow()]
56
56
  }));
57
57
  });
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  Object.defineProperty(exports, "__esModule", {
@@ -9,6 +9,7 @@ exports.GridFooter = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _forwardRef = require("@mui/x-internals/forwardRef");
12
13
  var _useGridSelector = require("../hooks/utils/useGridSelector");
13
14
  var _gridRowsSelector = require("../hooks/features/rows/gridRowsSelector");
14
15
  var _gridRowSelectionSelector = require("../hooks/features/rowSelection/gridRowSelectionSelector");
@@ -18,7 +19,7 @@ var _GridSelectedRowCount = require("./GridSelectedRowCount");
18
19
  var _GridFooterContainer = require("./containers/GridFooterContainer");
19
20
  var _useGridRootProps = require("../hooks/utils/useGridRootProps");
20
21
  var _jsxRuntime = require("react/jsx-runtime");
21
- const GridFooter = exports.GridFooter = /*#__PURE__*/React.forwardRef(function GridFooter(props, ref) {
22
+ const GridFooter = exports.GridFooter = (0, _forwardRef.forwardRef)(function GridFooter(props, ref) {
22
23
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
23
24
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
24
25
  const totalTopLevelRowCount = (0, _useGridSelector.useGridSelector)(apiRef, _gridRowsSelector.gridTopLevelRowCountSelector);
@@ -32,9 +33,8 @@ const GridFooter = exports.GridFooter = /*#__PURE__*/React.forwardRef(function G
32
33
  visibleRowCount: visibleTopLevelRowCount
33
34
  })) : null;
34
35
  const paginationElement = rootProps.pagination && !rootProps.hideFooterPagination && rootProps.slots.pagination && /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.pagination, (0, _extends2.default)({}, rootProps.slotProps?.pagination));
35
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridFooterContainer.GridFooterContainer, (0, _extends2.default)({
36
- ref: ref
37
- }, props, {
36
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridFooterContainer.GridFooterContainer, (0, _extends2.default)({}, props, {
37
+ ref: ref,
38
38
  children: [selectedRowCountElement, rowCountElement, paginationElement]
39
39
  }));
40
40
  });
@@ -26,7 +26,7 @@ function GridHeaders() {
26
26
  const filterColumnLookup = (0, _useGridSelector.useGridSelector)(apiRef, _gridFilterSelector.gridFilterActiveItemsLookupSelector);
27
27
  const sortColumnLookup = (0, _useGridSelector.useGridSelector)(apiRef, _gridSortingSelector.gridSortColumnLookupSelector);
28
28
  const columnHeaderTabIndexState = (0, _useGridSelector.useGridSelector)(apiRef, _gridFocusStateSelector.gridTabIndexColumnHeaderSelector);
29
- const cellTabIndexState = (0, _useGridSelector.useGridSelector)(apiRef, _gridFocusStateSelector.gridTabIndexCellSelector);
29
+ const hasNoCellTabIndexState = (0, _useGridSelector.useGridSelector)(apiRef, () => (0, _gridFocusStateSelector.gridTabIndexCellSelector)(apiRef) === null);
30
30
  const columnGroupHeaderTabIndexState = (0, _useGridSelector.useGridSelector)(apiRef, _gridFocusStateSelector.gridTabIndexColumnGroupHeaderSelector);
31
31
  const columnHeaderFocus = (0, _useGridSelector.useGridSelector)(apiRef, _gridFocusStateSelector.gridFocusColumnHeaderSelector);
32
32
  const columnGroupHeaderFocus = (0, _useGridSelector.useGridSelector)(apiRef, _gridFocusStateSelector.gridFocusColumnGroupHeaderSelector);
@@ -34,7 +34,7 @@ function GridHeaders() {
34
34
  const columnMenuState = (0, _useGridSelector.useGridSelector)(apiRef, _columnMenuSelector.gridColumnMenuSelector);
35
35
  const columnVisibility = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridColumnVisibilityModelSelector);
36
36
  const columnGroupsHeaderStructure = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnGroupsSelector.gridColumnGroupsHeaderStructureSelector);
37
- const hasOtherElementInTabSequence = !(columnGroupHeaderTabIndexState === null && columnHeaderTabIndexState === null && cellTabIndexState === null);
37
+ const hasOtherElementInTabSequence = !(columnGroupHeaderTabIndexState === null && columnHeaderTabIndexState === null && hasNoCellTabIndexState);
38
38
  const columnsContainerRef = apiRef.current.columnHeadersContainerRef;
39
39
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnHeaders, (0, _extends2.default)({
40
40
  ref: columnsContainerRef,
@@ -10,8 +10,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
- var _LinearProgress = _interopRequireDefault(require("@mui/material/LinearProgress"));
14
- var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
13
+ var _forwardRef = require("@mui/x-internals/forwardRef");
14
+ var _useGridRootProps = require("../hooks/utils/useGridRootProps");
15
15
  var _GridOverlay = require("./containers/GridOverlay");
16
16
  var _GridSkeletonLoadingOverlay = require("./GridSkeletonLoadingOverlay");
17
17
  var _useGridApiContext = require("../hooks/utils/useGridApiContext");
@@ -20,23 +20,23 @@ var _jsxRuntime = require("react/jsx-runtime");
20
20
  const _excluded = ["variant", "noRowsVariant", "style"];
21
21
  const LOADING_VARIANTS = {
22
22
  'circular-progress': {
23
- component: _CircularProgress.default,
23
+ component: rootProps => rootProps.slots.baseCircularProgress,
24
24
  style: {}
25
25
  },
26
26
  'linear-progress': {
27
- component: _LinearProgress.default,
27
+ component: rootProps => rootProps.slots.baseLinearProgress,
28
28
  style: {
29
29
  display: 'block'
30
30
  }
31
31
  },
32
32
  skeleton: {
33
- component: _GridSkeletonLoadingOverlay.GridSkeletonLoadingOverlay,
33
+ component: () => _GridSkeletonLoadingOverlay.GridSkeletonLoadingOverlay,
34
34
  style: {
35
35
  display: 'block'
36
36
  }
37
37
  }
38
38
  };
39
- const GridLoadingOverlay = exports.GridLoadingOverlay = /*#__PURE__*/React.forwardRef(function GridLoadingOverlay(props, ref) {
39
+ const GridLoadingOverlay = exports.GridLoadingOverlay = (0, _forwardRef.forwardRef)(function GridLoadingOverlay(props, ref) {
40
40
  const {
41
41
  variant = 'linear-progress',
42
42
  noRowsVariant = 'skeleton',
@@ -44,13 +44,15 @@ const GridLoadingOverlay = exports.GridLoadingOverlay = /*#__PURE__*/React.forwa
44
44
  } = props,
45
45
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
46
46
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
47
+ const rootProps = (0, _useGridRootProps.useGridRootProps)();
47
48
  const rowsCount = (0, _hooks.useGridSelector)(apiRef, _hooks.gridRowCountSelector);
48
49
  const activeVariant = LOADING_VARIANTS[rowsCount === 0 ? noRowsVariant : variant];
50
+ const Component = activeVariant.component(rootProps);
49
51
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridOverlay.GridOverlay, (0, _extends2.default)({
50
- ref: ref,
51
52
  style: (0, _extends2.default)({}, activeVariant.style, style)
52
53
  }, other, {
53
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(activeVariant.component, {})
54
+ ref: ref,
55
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, {})
54
56
  }));
55
57
  });
56
58
  process.env.NODE_ENV !== "production" ? GridLoadingOverlay.propTypes = {
@@ -8,15 +8,15 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.GridNoResultsOverlay = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
+ var _forwardRef = require("@mui/x-internals/forwardRef");
11
12
  var _useGridApiContext = require("../hooks/utils/useGridApiContext");
12
13
  var _GridOverlay = require("./containers/GridOverlay");
13
14
  var _jsxRuntime = require("react/jsx-runtime");
14
- const GridNoResultsOverlay = exports.GridNoResultsOverlay = /*#__PURE__*/React.forwardRef(function GridNoResultsOverlay(props, ref) {
15
+ const GridNoResultsOverlay = exports.GridNoResultsOverlay = (0, _forwardRef.forwardRef)(function GridNoResultsOverlay(props, ref) {
15
16
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
16
17
  const noResultsOverlayLabel = apiRef.current.getLocaleText('noResultsOverlayLabel');
17
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridOverlay.GridOverlay, (0, _extends2.default)({
18
- ref: ref
19
- }, props, {
18
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridOverlay.GridOverlay, (0, _extends2.default)({}, props, {
19
+ ref: ref,
20
20
  children: noResultsOverlayLabel
21
21
  }));
22
22
  });
@@ -9,15 +9,15 @@ exports.GridNoRowsOverlay = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _forwardRef = require("@mui/x-internals/forwardRef");
12
13
  var _useGridApiContext = require("../hooks/utils/useGridApiContext");
13
14
  var _GridOverlay = require("./containers/GridOverlay");
14
15
  var _jsxRuntime = require("react/jsx-runtime");
15
- const GridNoRowsOverlay = exports.GridNoRowsOverlay = /*#__PURE__*/React.forwardRef(function GridNoRowsOverlay(props, ref) {
16
+ const GridNoRowsOverlay = exports.GridNoRowsOverlay = (0, _forwardRef.forwardRef)(function GridNoRowsOverlay(props, ref) {
16
17
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
17
18
  const noRowsLabel = apiRef.current.getLocaleText('noRowsLabel');
18
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridOverlay.GridOverlay, (0, _extends2.default)({
19
- ref: ref
20
- }, props, {
19
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridOverlay.GridOverlay, (0, _extends2.default)({}, props, {
20
+ ref: ref,
21
21
  children: noRowsLabel
22
22
  }));
23
23
  });
@@ -11,6 +11,7 @@ var React = _interopRequireWildcard(require("react"));
11
11
  var _styles = require("@mui/material/styles");
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _TablePagination = _interopRequireWildcard(require("@mui/material/TablePagination"));
14
+ var _forwardRef = require("@mui/x-internals/forwardRef");
14
15
  var _useGridSelector = require("../hooks/utils/useGridSelector");
15
16
  var _useGridApiContext = require("../hooks/utils/useGridApiContext");
16
17
  var _useGridRootProps = require("../hooks/utils/useGridRootProps");
@@ -58,12 +59,13 @@ const defaultLabelDisplayedRows = ({
58
59
  if (!estimated) {
59
60
  return `${from}–${to} of ${count !== -1 ? count : `more than ${to}`}`;
60
61
  }
61
- return `${from}–${to} of ${count !== -1 ? count : `more than ${estimated > to ? estimated : to}`}`;
62
+ const estimateLabel = estimated && estimated > to ? `around ${estimated}` : `more than ${to}`;
63
+ return `${from}–${to} of ${count !== -1 ? count : estimateLabel}`;
62
64
  };
63
65
 
64
66
  // A mutable version of a readonly array.
65
67
 
66
- const GridPagination = exports.GridPagination = /*#__PURE__*/React.forwardRef(function GridPagination(props, ref) {
68
+ const GridPagination = exports.GridPagination = (0, _forwardRef.forwardRef)(function GridPagination(props, ref) {
67
69
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
68
70
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
69
71
  const paginationModel = (0, _useGridSelector.useGridSelector)(apiRef, _gridPaginationSelector.gridPaginationModelSelector);
@@ -127,7 +129,6 @@ const GridPagination = exports.GridPagination = /*#__PURE__*/React.forwardRef(fu
127
129
  const locales = apiRef.current.getLocaleText('MuiTablePagination');
128
130
  const wrappedLabelDisplayedRows = wrapLabelDisplayedRows(locales.labelDisplayedRows || defaultLabelDisplayedRows, estimatedRowCount);
129
131
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridPaginationRoot, (0, _extends2.default)({
130
- ref: ref,
131
132
  component: "div",
132
133
  count: rowCount,
133
134
  page: computedPage
@@ -141,7 +142,9 @@ const GridPagination = exports.GridPagination = /*#__PURE__*/React.forwardRef(fu
141
142
  onRowsPerPageChange: handlePageSizeChange
142
143
  }, computedProps, locales, {
143
144
  labelDisplayedRows: wrappedLabelDisplayedRows
144
- }, props));
145
+ }, props, {
146
+ ref: ref
147
+ }));
145
148
  });
146
149
  process.env.NODE_ENV !== "production" ? GridPagination.propTypes = {
147
150
  // ----------------------------- Warning --------------------------------