@mui/x-data-grid 8.0.0-alpha.0 → 8.0.0-alpha.10

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 (762) hide show
  1. package/CHANGELOG.md +2215 -119
  2. package/DataGrid/DataGrid.js +20 -38
  3. package/DataGrid/useDataGridComponent.d.ts +2 -1
  4. package/DataGrid/useDataGridComponent.js +1 -1
  5. package/DataGrid/useDataGridProps.js +3 -3
  6. package/README.md +3 -3
  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 +3 -3
  17. package/components/GridLoadingOverlay.js +14 -12
  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 +55 -87
  26. package/components/GridRowCount.d.ts +1 -1
  27. package/components/GridRowCount.js +3 -2
  28. package/components/GridScrollArea.js +2 -0
  29. package/components/GridSelectedRowCount.d.ts +4 -1
  30. package/components/GridSelectedRowCount.js +3 -2
  31. package/components/GridSkeletonLoadingOverlay.d.ts +1 -1
  32. package/components/GridSkeletonLoadingOverlay.js +22 -21
  33. package/components/base/GridOverlays.d.ts +4 -3
  34. package/components/base/GridOverlays.js +2 -24
  35. package/components/base/index.d.ts +0 -1
  36. package/components/base/index.js +1 -2
  37. package/components/cell/GridActionsCell.js +8 -1
  38. package/components/cell/GridActionsCellItem.d.ts +17 -10
  39. package/components/cell/GridActionsCellItem.js +9 -8
  40. package/components/cell/GridCell.d.ts +19 -23
  41. package/components/cell/GridCell.js +52 -92
  42. package/components/cell/GridEditDateCell.js +1 -1
  43. package/components/cell/GridEditInputCell.d.ts +1 -1
  44. package/components/cell/GridEditInputCell.js +73 -4
  45. package/components/cell/GridEditSingleSelectCell.js +2 -2
  46. package/components/cell/GridSkeletonCell.js +1 -2
  47. package/components/columnHeaders/ColumnHeaderMenuIcon.d.ts +1 -1
  48. package/components/columnHeaders/GridBaseColumnHeaders.d.ts +1 -1
  49. package/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  50. package/components/columnHeaders/GridColumnGroupHeader.d.ts +5 -5
  51. package/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  52. package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +3 -3
  53. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +20 -7
  54. package/components/columnHeaders/GridColumnHeaderItem.d.ts +5 -5
  55. package/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  56. package/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  57. package/components/columnHeaders/GridGenericColumnHeaderItem.d.ts +1 -1
  58. package/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  59. package/components/columnHeaders/GridIconButtonContainer.d.ts +1 -1
  60. package/components/columnHeaders/GridIconButtonContainer.js +5 -3
  61. package/components/columnSelection/GridCellCheckboxRenderer.d.ts +2 -2
  62. package/components/columnSelection/GridCellCheckboxRenderer.js +11 -9
  63. package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  64. package/components/columnSelection/GridHeaderCheckbox.js +17 -9
  65. package/components/columnsManagement/GridColumnsManagement.d.ts +2 -0
  66. package/components/columnsManagement/GridColumnsManagement.js +81 -11
  67. package/components/containers/GridFooterContainer.d.ts +1 -1
  68. package/components/containers/GridFooterContainer.js +5 -3
  69. package/components/containers/GridOverlay.d.ts +1 -1
  70. package/components/containers/GridOverlay.js +5 -3
  71. package/components/containers/GridRoot.d.ts +2 -2
  72. package/components/containers/GridRoot.js +18 -8
  73. package/components/containers/GridRootStyles.js +160 -50
  74. package/components/containers/GridToolbarContainer.d.ts +1 -1
  75. package/components/containers/GridToolbarContainer.js +3 -2
  76. package/components/menu/columnMenu/GridColumnMenu.d.ts +2 -2
  77. package/components/menu/columnMenu/GridColumnMenu.js +5 -5
  78. package/components/menu/columnMenu/GridColumnMenuContainer.d.ts +1 -1
  79. package/components/menu/columnMenu/GridColumnMenuContainer.js +3 -2
  80. package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +6 -11
  81. package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +6 -11
  82. package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +6 -11
  83. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  84. package/components/panel/GridColumnsPanel.js +1 -2
  85. package/components/panel/GridPanel.d.ts +2 -2
  86. package/components/panel/GridPanel.js +5 -3
  87. package/components/panel/GridPanelContent.js +7 -3
  88. package/components/panel/GridPanelFooter.d.ts +1 -1
  89. package/components/panel/GridPanelFooter.js +4 -3
  90. package/components/panel/GridPanelWrapper.d.ts +1 -1
  91. package/components/panel/GridPanelWrapper.js +5 -3
  92. package/components/panel/filterPanel/GridFilterForm.d.ts +1 -1
  93. package/components/panel/filterPanel/GridFilterForm.js +22 -18
  94. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +4 -11
  95. package/components/panel/filterPanel/GridFilterInputBoolean.js +41 -31
  96. package/components/panel/filterPanel/GridFilterInputDate.d.ts +3 -9
  97. package/components/panel/filterPanel/GridFilterInputDate.js +50 -31
  98. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.d.ts +3 -3
  99. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +49 -24
  100. package/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +3 -3
  101. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +55 -33
  102. package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +3 -9
  103. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +34 -25
  104. package/components/panel/filterPanel/GridFilterInputValue.d.ts +3 -9
  105. package/components/panel/filterPanel/GridFilterInputValue.js +63 -38
  106. package/components/panel/filterPanel/GridFilterPanel.d.ts +1 -1
  107. package/components/panel/filterPanel/GridFilterPanel.js +4 -4
  108. package/components/panel/filterPanel/index.d.ts +2 -2
  109. package/components/panel/filterPanel/index.js +1 -2
  110. package/components/toolbar/GridToolbar.d.ts +1 -1
  111. package/components/toolbar/GridToolbar.js +11 -5
  112. package/components/toolbar/GridToolbarColumnsButton.d.ts +1 -1
  113. package/components/toolbar/GridToolbarColumnsButton.js +12 -6
  114. package/components/toolbar/GridToolbarDensitySelector.d.ts +1 -1
  115. package/components/toolbar/GridToolbarDensitySelector.js +9 -11
  116. package/components/toolbar/GridToolbarExport.d.ts +1 -1
  117. package/components/toolbar/GridToolbarExport.js +2 -1
  118. package/components/toolbar/GridToolbarExportContainer.d.ts +1 -1
  119. package/components/toolbar/GridToolbarExportContainer.js +6 -6
  120. package/components/toolbar/GridToolbarFilterButton.d.ts +3 -1
  121. package/components/toolbar/GridToolbarFilterButton.js +20 -9
  122. package/components/toolbar/GridToolbarQuickFilter.d.ts +6 -2
  123. package/components/toolbar/GridToolbarQuickFilter.js +39 -31
  124. package/components/virtualization/GridMainContainer.d.ts +13 -1
  125. package/components/virtualization/GridMainContainer.js +14 -5
  126. package/components/virtualization/GridVirtualScrollbar.d.ts +5 -1
  127. package/components/virtualization/GridVirtualScrollbar.js +17 -17
  128. package/components/virtualization/GridVirtualScroller.js +27 -12
  129. package/components/virtualization/GridVirtualScrollerContent.d.ts +2 -0
  130. package/components/virtualization/GridVirtualScrollerContent.js +15 -6
  131. package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +2 -0
  132. package/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  133. package/constants/dataGridPropsDefaultValues.js +2 -4
  134. package/constants/gridClasses.d.ts +36 -12
  135. package/constants/gridClasses.js +1 -1
  136. package/constants/localeTextConstants.js +12 -0
  137. package/context/GridContextProvider.d.ts +2 -1
  138. package/context/GridRootPropsContext.js +2 -0
  139. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +9 -2
  140. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +2 -2
  141. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +2 -2
  142. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  143. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +2 -2
  144. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -1
  145. package/hooks/core/strategyProcessing/gridStrategyProcessingApi.d.ts +25 -9
  146. package/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +5 -1
  147. package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.d.ts +2 -2
  148. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +5 -8
  149. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +7 -8
  150. package/hooks/core/useGridApiInitialization.d.ts +2 -2
  151. package/hooks/core/useGridApiInitialization.js +2 -2
  152. package/hooks/core/useGridInitialization.d.ts +2 -2
  153. package/hooks/core/useGridIsRtl.d.ts +2 -2
  154. package/hooks/core/useGridLocaleText.d.ts +2 -2
  155. package/hooks/core/useGridLoggerFactory.d.ts +2 -2
  156. package/hooks/core/useGridRefs.d.ts +2 -2
  157. package/hooks/core/useGridStateInitialization.d.ts +2 -2
  158. package/hooks/core/useGridStateInitialization.js +3 -3
  159. package/hooks/features/clipboard/useGridClipboard.d.ts +2 -2
  160. package/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +4 -4
  161. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +2 -2
  162. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +5 -7
  163. package/hooks/features/columnHeaders/useGridColumnHeaders.js +34 -69
  164. package/hooks/features/columnMenu/useGridColumnMenu.d.ts +2 -2
  165. package/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  166. package/hooks/features/columnResize/columnResizeSelector.d.ts +1 -1
  167. package/hooks/features/columnResize/gridColumnResizeApi.d.ts +6 -0
  168. package/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  169. package/hooks/features/columnResize/useGridColumnResize.d.ts +2 -2
  170. package/hooks/features/columnResize/useGridColumnResize.js +17 -10
  171. package/hooks/features/columns/gridColumnsSelector.d.ts +12 -12
  172. package/hooks/features/columns/gridColumnsUtils.d.ts +4 -4
  173. package/hooks/features/columns/gridColumnsUtils.js +2 -1
  174. package/hooks/features/columns/useGridColumnSpanning.d.ts +2 -2
  175. package/hooks/features/columns/useGridColumns.d.ts +2 -2
  176. package/hooks/features/columns/useGridColumns.js +7 -3
  177. package/hooks/features/density/densitySelector.d.ts +1 -1
  178. package/hooks/features/density/useGridDensity.d.ts +2 -2
  179. package/hooks/features/dimensions/gridDimensionsApi.d.ts +0 -4
  180. package/hooks/features/dimensions/useGridDimensions.d.ts +2 -2
  181. package/hooks/features/dimensions/useGridDimensions.js +11 -32
  182. package/hooks/features/editing/gridEditingSelectors.d.ts +6 -0
  183. package/hooks/features/editing/gridEditingSelectors.js +7 -1
  184. package/hooks/features/editing/useGridCellEditing.d.ts +2 -2
  185. package/hooks/features/editing/useGridCellEditing.js +4 -4
  186. package/hooks/features/editing/useGridEditing.d.ts +2 -2
  187. package/hooks/features/editing/useGridRowEditing.d.ts +2 -2
  188. package/hooks/features/editing/useGridRowEditing.js +7 -8
  189. package/hooks/features/events/useGridEvents.d.ts +2 -2
  190. package/hooks/features/export/serializers/csvSerializer.d.ts +2 -1
  191. package/hooks/features/export/useGridCsvExport.d.ts +2 -2
  192. package/hooks/features/export/useGridPrintExport.d.ts +2 -2
  193. package/hooks/features/export/useGridPrintExport.js +1 -1
  194. package/hooks/features/export/utils.d.ts +2 -2
  195. package/hooks/features/filter/gridFilterSelector.d.ts +17 -17
  196. package/hooks/features/filter/gridFilterSelector.js +6 -1
  197. package/hooks/features/filter/gridFilterUtils.d.ts +7 -7
  198. package/hooks/features/filter/gridFilterUtils.js +3 -3
  199. package/hooks/features/filter/useGridFilter.d.ts +2 -2
  200. package/hooks/features/filter/useGridFilter.js +1 -1
  201. package/hooks/features/focus/gridFocusStateSelector.d.ts +8 -8
  202. package/hooks/features/focus/useGridFocus.d.ts +2 -2
  203. package/hooks/features/focus/useGridFocus.js +3 -2
  204. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +3 -3
  205. package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +2 -2
  206. package/hooks/features/index.d.ts +1 -0
  207. package/hooks/features/index.js +1 -0
  208. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +2 -2
  209. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -16
  210. package/hooks/features/keyboardNavigation/utils.d.ts +3 -4
  211. package/hooks/features/keyboardNavigation/utils.js +0 -5
  212. package/hooks/features/listView/gridListViewSelectors.d.ts +3 -1
  213. package/hooks/features/listView/gridListViewSelectors.js +3 -1
  214. package/hooks/features/listView/index.d.ts +1 -0
  215. package/hooks/features/listView/index.js +1 -0
  216. package/hooks/features/listView/useGridListView.d.ts +2 -2
  217. package/hooks/features/listView/useGridListView.js +2 -1
  218. package/hooks/features/overlays/useGridOverlays.d.ts +7 -4
  219. package/hooks/features/overlays/useGridOverlays.js +22 -2
  220. package/hooks/features/pagination/gridPaginationInterfaces.d.ts +3 -0
  221. package/hooks/features/pagination/gridPaginationSelector.d.ts +34 -9
  222. package/hooks/features/pagination/gridPaginationSelector.js +39 -1
  223. package/hooks/features/pagination/useGridPagination.d.ts +3 -3
  224. package/hooks/features/pagination/useGridPagination.js +5 -3
  225. package/hooks/features/pagination/useGridPaginationMeta.d.ts +2 -2
  226. package/hooks/features/pagination/useGridPaginationModel.d.ts +2 -2
  227. package/hooks/features/pagination/useGridPaginationModel.js +23 -1
  228. package/hooks/features/pagination/useGridRowCount.d.ts +2 -2
  229. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.d.ts +1 -0
  230. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
  231. package/hooks/features/preferencesPanel/index.d.ts +1 -1
  232. package/hooks/features/preferencesPanel/index.js +1 -1
  233. package/hooks/features/preferencesPanel/useGridPreferencesPanel.d.ts +2 -2
  234. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  235. package/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +3 -3
  236. package/hooks/features/rowSelection/useGridRowSelection.d.ts +2 -2
  237. package/hooks/features/rowSelection/useGridRowSelection.js +8 -16
  238. package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.d.ts +2 -2
  239. package/hooks/features/rowSelection/utils.d.ts +4 -3
  240. package/hooks/features/rowSelection/utils.js +2 -2
  241. package/hooks/features/rows/gridRowSpanningSelectors.d.ts +3 -3
  242. package/hooks/features/rows/gridRowSpanningUtils.d.ts +2 -2
  243. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -8
  244. package/hooks/features/rows/gridRowsSelector.d.ts +23 -13
  245. package/hooks/features/rows/gridRowsSelector.js +1 -2
  246. package/hooks/features/rows/gridRowsUtils.d.ts +4 -4
  247. package/hooks/features/rows/gridRowsUtils.js +0 -9
  248. package/hooks/features/rows/index.d.ts +1 -1
  249. package/hooks/features/rows/index.js +1 -1
  250. package/hooks/features/rows/useGridParamsApi.d.ts +2 -2
  251. package/hooks/features/rows/useGridParamsApi.js +33 -14
  252. package/hooks/features/rows/useGridRowSpanning.d.ts +2 -2
  253. package/hooks/features/rows/useGridRowSpanning.js +97 -86
  254. package/hooks/features/rows/useGridRows.d.ts +2 -2
  255. package/hooks/features/rows/useGridRows.js +23 -27
  256. package/hooks/features/rows/useGridRowsMeta.d.ts +2 -2
  257. package/hooks/features/rows/useGridRowsMeta.js +3 -2
  258. package/hooks/features/rows/useGridRowsPreProcessors.d.ts +2 -2
  259. package/hooks/features/scroll/useGridScroll.d.ts +2 -2
  260. package/hooks/features/sorting/gridSortingSelector.d.ts +10 -5
  261. package/hooks/features/sorting/gridSortingSelector.js +11 -0
  262. package/hooks/features/sorting/gridSortingUtils.d.ts +3 -3
  263. package/hooks/features/sorting/gridSortingUtils.js +2 -2
  264. package/hooks/features/sorting/index.d.ts +2 -1
  265. package/hooks/features/sorting/index.js +1 -1
  266. package/hooks/features/sorting/useGridSorting.d.ts +2 -2
  267. package/hooks/features/sorting/useGridSorting.js +1 -1
  268. package/hooks/features/statePersistence/useGridStatePersistence.d.ts +2 -2
  269. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +6 -0
  270. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +33 -0
  271. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +5 -5
  272. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +15 -6
  273. package/hooks/features/virtualization/useGridVirtualScroller.js +169 -94
  274. package/hooks/features/virtualization/useGridVirtualization.d.ts +2 -2
  275. package/hooks/utils/useGridApiContext.d.ts +2 -2
  276. package/hooks/utils/useGridApiEventHandler.d.ts +4 -4
  277. package/hooks/utils/useGridApiEventHandler.js +1 -1
  278. package/hooks/utils/useGridApiMethod.d.ts +2 -2
  279. package/hooks/utils/useGridApiRef.d.ts +2 -2
  280. package/hooks/utils/useGridApiRef.js +1 -1
  281. package/hooks/utils/useGridInitializeState.d.ts +3 -3
  282. package/hooks/utils/useGridLogger.d.ts +2 -2
  283. package/hooks/utils/useGridNativeEventListener.d.ts +2 -1
  284. package/hooks/utils/useGridPrivateApiContext.d.ts +2 -1
  285. package/hooks/utils/useGridSelector.d.ts +5 -7
  286. package/hooks/utils/useGridSelector.js +6 -44
  287. package/hooks/utils/useGridVisibleRows.d.ts +8 -6
  288. package/hooks/utils/useGridVisibleRows.js +5 -28
  289. package/index.js +1 -1
  290. package/internals/constants.d.ts +6 -0
  291. package/internals/constants.js +8 -1
  292. package/internals/index.d.ts +7 -4
  293. package/internals/index.js +5 -3
  294. package/internals/utils/attachPinnedStyle.d.ts +2 -0
  295. package/internals/utils/attachPinnedStyle.js +9 -0
  296. package/internals/utils/getPinnedCellOffset.d.ts +3 -3
  297. package/internals/utils/getPinnedCellOffset.js +6 -7
  298. package/internals/utils/index.d.ts +1 -1
  299. package/internals/utils/index.js +2 -2
  300. package/locales/arSD.js +14 -0
  301. package/locales/beBY.js +13 -0
  302. package/locales/bgBG.js +15 -0
  303. package/locales/csCZ.js +15 -0
  304. package/locales/daDK.js +15 -0
  305. package/locales/deDE.js +13 -0
  306. package/locales/elGR.js +14 -0
  307. package/locales/esES.js +17 -4
  308. package/locales/faIR.js +18 -4
  309. package/locales/fiFI.js +15 -0
  310. package/locales/frFR.js +15 -0
  311. package/locales/heIL.js +17 -4
  312. package/locales/hrHR.js +15 -0
  313. package/locales/huHU.js +15 -0
  314. package/locales/isIS.js +14 -0
  315. package/locales/itIT.js +15 -0
  316. package/locales/jaJP.js +15 -0
  317. package/locales/koKR.js +47 -37
  318. package/locales/nbNO.js +15 -0
  319. package/locales/nlNL.js +18 -4
  320. package/locales/nnNO.js +15 -0
  321. package/locales/plPL.js +15 -0
  322. package/locales/ptBR.js +13 -0
  323. package/locales/ptPT.js +13 -0
  324. package/locales/roRO.js +21 -9
  325. package/locales/ruRU.js +15 -0
  326. package/locales/skSK.js +14 -0
  327. package/locales/svSE.js +19 -5
  328. package/locales/trTR.js +15 -2
  329. package/locales/ukUA.js +14 -0
  330. package/locales/urPK.js +22 -9
  331. package/locales/viVN.js +15 -0
  332. package/locales/zhCN.js +17 -4
  333. package/locales/zhHK.js +14 -0
  334. package/locales/zhTW.js +14 -0
  335. package/material/index.js +58 -7
  336. package/models/api/gridApiCommon.d.ts +2 -2
  337. package/models/api/gridCoreApi.d.ts +7 -7
  338. package/models/api/gridDensityApi.d.ts +1 -1
  339. package/models/api/gridLocaleTextApi.d.ts +11 -0
  340. package/models/api/gridParamsApi.d.ts +29 -2
  341. package/models/api/gridStateApi.d.ts +1 -1
  342. package/models/api/index.d.ts +1 -1
  343. package/models/api/index.js +0 -1
  344. package/models/colDef/gridColDef.d.ts +38 -33
  345. package/models/controlStateItem.d.ts +2 -2
  346. package/models/events/gridEventLookup.d.ts +7 -1
  347. package/models/gridBaseSlots.d.ts +95 -0
  348. package/models/gridDataSource.d.ts +13 -13
  349. package/models/gridExport.d.ts +2 -2
  350. package/models/gridFilterInputComponent.d.ts +32 -0
  351. package/models/gridFilterOperator.d.ts +6 -4
  352. package/models/gridIconSlotsComponent.d.ts +5 -0
  353. package/models/gridSlotsComponent.d.ts +16 -1
  354. package/models/gridSlotsComponentsProps.d.ts +45 -9
  355. package/models/gridStateCommunity.d.ts +4 -0
  356. package/models/index.d.ts +1 -0
  357. package/models/props/DataGridProps.d.ts +12 -24
  358. package/modern/DataGrid/DataGrid.js +20 -38
  359. package/modern/DataGrid/useDataGridComponent.js +1 -1
  360. package/modern/DataGrid/useDataGridProps.js +3 -3
  361. package/modern/components/GridApiContext.js +2 -0
  362. package/modern/components/GridColumnHeaders.js +4 -4
  363. package/modern/components/GridConfigurationContext.js +2 -0
  364. package/modern/components/GridFooter.js +4 -4
  365. package/modern/components/GridHeaders.js +2 -2
  366. package/modern/components/GridLoadingOverlay.js +14 -12
  367. package/modern/components/GridNoResultsOverlay.js +4 -4
  368. package/modern/components/GridNoRowsOverlay.js +4 -4
  369. package/modern/components/GridPagination.js +7 -4
  370. package/modern/components/GridRow.js +55 -87
  371. package/modern/components/GridRowCount.js +3 -2
  372. package/modern/components/GridScrollArea.js +2 -0
  373. package/modern/components/GridSelectedRowCount.js +3 -2
  374. package/modern/components/GridSkeletonLoadingOverlay.js +22 -21
  375. package/modern/components/base/GridOverlays.js +2 -24
  376. package/modern/components/base/index.js +1 -2
  377. package/modern/components/cell/GridActionsCell.js +8 -1
  378. package/modern/components/cell/GridActionsCellItem.js +9 -8
  379. package/modern/components/cell/GridCell.js +52 -92
  380. package/modern/components/cell/GridEditDateCell.js +1 -1
  381. package/modern/components/cell/GridEditInputCell.js +73 -4
  382. package/modern/components/cell/GridEditSingleSelectCell.js +2 -2
  383. package/modern/components/cell/GridSkeletonCell.js +1 -2
  384. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  385. package/modern/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  386. package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +20 -7
  387. package/modern/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  388. package/modern/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  389. package/modern/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  390. package/modern/components/columnHeaders/GridIconButtonContainer.js +5 -3
  391. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +11 -9
  392. package/modern/components/columnSelection/GridHeaderCheckbox.js +17 -9
  393. package/modern/components/columnsManagement/GridColumnsManagement.js +81 -11
  394. package/modern/components/containers/GridFooterContainer.js +5 -3
  395. package/modern/components/containers/GridOverlay.js +5 -3
  396. package/modern/components/containers/GridRoot.js +18 -8
  397. package/modern/components/containers/GridRootStyles.js +160 -50
  398. package/modern/components/containers/GridToolbarContainer.js +3 -2
  399. package/modern/components/menu/columnMenu/GridColumnMenu.js +5 -5
  400. package/modern/components/menu/columnMenu/GridColumnMenuContainer.js +3 -2
  401. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +6 -11
  402. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +6 -11
  403. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +6 -11
  404. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  405. package/modern/components/panel/GridColumnsPanel.js +1 -2
  406. package/modern/components/panel/GridPanel.js +5 -3
  407. package/modern/components/panel/GridPanelContent.js +7 -3
  408. package/modern/components/panel/GridPanelFooter.js +4 -3
  409. package/modern/components/panel/GridPanelWrapper.js +5 -3
  410. package/modern/components/panel/filterPanel/GridFilterForm.js +22 -18
  411. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +41 -31
  412. package/modern/components/panel/filterPanel/GridFilterInputDate.js +50 -31
  413. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +49 -24
  414. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +55 -33
  415. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +34 -25
  416. package/modern/components/panel/filterPanel/GridFilterInputValue.js +63 -38
  417. package/modern/components/panel/filterPanel/GridFilterPanel.js +4 -4
  418. package/modern/components/panel/filterPanel/index.js +1 -2
  419. package/modern/components/toolbar/GridToolbar.js +11 -5
  420. package/modern/components/toolbar/GridToolbarColumnsButton.js +12 -6
  421. package/modern/components/toolbar/GridToolbarDensitySelector.js +9 -11
  422. package/modern/components/toolbar/GridToolbarExport.js +2 -1
  423. package/modern/components/toolbar/GridToolbarExportContainer.js +6 -6
  424. package/modern/components/toolbar/GridToolbarFilterButton.js +20 -9
  425. package/modern/components/toolbar/GridToolbarQuickFilter.js +39 -31
  426. package/modern/components/virtualization/GridMainContainer.js +14 -5
  427. package/modern/components/virtualization/GridVirtualScrollbar.js +17 -17
  428. package/modern/components/virtualization/GridVirtualScroller.js +27 -12
  429. package/modern/components/virtualization/GridVirtualScrollerContent.js +15 -6
  430. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  431. package/modern/constants/dataGridPropsDefaultValues.js +2 -4
  432. package/modern/constants/gridClasses.js +1 -1
  433. package/modern/constants/localeTextConstants.js +12 -0
  434. package/modern/context/GridRootPropsContext.js +2 -0
  435. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  436. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -1
  437. package/modern/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +5 -1
  438. package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +7 -8
  439. package/modern/hooks/core/useGridApiInitialization.js +2 -2
  440. package/modern/hooks/core/useGridStateInitialization.js +3 -3
  441. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +34 -69
  442. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  443. package/modern/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  444. package/modern/hooks/features/columnResize/useGridColumnResize.js +17 -10
  445. package/modern/hooks/features/columns/gridColumnsUtils.js +2 -1
  446. package/modern/hooks/features/columns/useGridColumns.js +7 -3
  447. package/modern/hooks/features/dimensions/useGridDimensions.js +11 -32
  448. package/modern/hooks/features/editing/gridEditingSelectors.js +7 -1
  449. package/modern/hooks/features/editing/useGridCellEditing.js +4 -4
  450. package/modern/hooks/features/editing/useGridRowEditing.js +7 -8
  451. package/modern/hooks/features/export/useGridPrintExport.js +1 -1
  452. package/modern/hooks/features/filter/gridFilterSelector.js +6 -1
  453. package/modern/hooks/features/filter/gridFilterUtils.js +3 -3
  454. package/modern/hooks/features/filter/useGridFilter.js +1 -1
  455. package/modern/hooks/features/focus/useGridFocus.js +3 -2
  456. package/modern/hooks/features/index.js +1 -0
  457. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -16
  458. package/modern/hooks/features/keyboardNavigation/utils.js +0 -5
  459. package/modern/hooks/features/listView/gridListViewSelectors.js +3 -1
  460. package/modern/hooks/features/listView/index.js +1 -0
  461. package/modern/hooks/features/listView/useGridListView.js +2 -1
  462. package/modern/hooks/features/overlays/useGridOverlays.js +22 -2
  463. package/modern/hooks/features/pagination/gridPaginationSelector.js +39 -1
  464. package/modern/hooks/features/pagination/useGridPagination.js +5 -3
  465. package/modern/hooks/features/pagination/useGridPaginationModel.js +23 -1
  466. package/modern/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
  467. package/modern/hooks/features/preferencesPanel/index.js +1 -1
  468. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  469. package/modern/hooks/features/rowSelection/useGridRowSelection.js +8 -16
  470. package/modern/hooks/features/rowSelection/utils.js +2 -2
  471. package/modern/hooks/features/rows/gridRowsSelector.js +1 -2
  472. package/modern/hooks/features/rows/gridRowsUtils.js +0 -9
  473. package/modern/hooks/features/rows/index.js +1 -1
  474. package/modern/hooks/features/rows/useGridParamsApi.js +33 -14
  475. package/modern/hooks/features/rows/useGridRowSpanning.js +97 -86
  476. package/modern/hooks/features/rows/useGridRows.js +23 -27
  477. package/modern/hooks/features/rows/useGridRowsMeta.js +3 -2
  478. package/modern/hooks/features/sorting/gridSortingSelector.js +11 -0
  479. package/modern/hooks/features/sorting/gridSortingUtils.js +2 -2
  480. package/modern/hooks/features/sorting/index.js +1 -1
  481. package/modern/hooks/features/sorting/useGridSorting.js +1 -1
  482. package/modern/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +33 -0
  483. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +169 -94
  484. package/modern/hooks/utils/useGridApiEventHandler.js +1 -1
  485. package/modern/hooks/utils/useGridApiRef.js +1 -1
  486. package/modern/hooks/utils/useGridSelector.js +6 -44
  487. package/modern/hooks/utils/useGridVisibleRows.js +5 -28
  488. package/modern/index.js +1 -1
  489. package/modern/internals/constants.js +8 -1
  490. package/modern/internals/index.js +5 -3
  491. package/modern/internals/utils/attachPinnedStyle.js +9 -0
  492. package/modern/internals/utils/getPinnedCellOffset.js +6 -7
  493. package/modern/internals/utils/index.js +2 -2
  494. package/modern/locales/arSD.js +14 -0
  495. package/modern/locales/beBY.js +13 -0
  496. package/modern/locales/bgBG.js +15 -0
  497. package/modern/locales/csCZ.js +15 -0
  498. package/modern/locales/daDK.js +15 -0
  499. package/modern/locales/deDE.js +13 -0
  500. package/modern/locales/elGR.js +14 -0
  501. package/modern/locales/esES.js +17 -4
  502. package/modern/locales/faIR.js +18 -4
  503. package/modern/locales/fiFI.js +15 -0
  504. package/modern/locales/frFR.js +15 -0
  505. package/modern/locales/heIL.js +17 -4
  506. package/modern/locales/hrHR.js +15 -0
  507. package/modern/locales/huHU.js +15 -0
  508. package/modern/locales/isIS.js +14 -0
  509. package/modern/locales/itIT.js +15 -0
  510. package/modern/locales/jaJP.js +15 -0
  511. package/modern/locales/koKR.js +47 -37
  512. package/modern/locales/nbNO.js +15 -0
  513. package/modern/locales/nlNL.js +18 -4
  514. package/modern/locales/nnNO.js +15 -0
  515. package/modern/locales/plPL.js +15 -0
  516. package/modern/locales/ptBR.js +13 -0
  517. package/modern/locales/ptPT.js +13 -0
  518. package/modern/locales/roRO.js +21 -9
  519. package/modern/locales/ruRU.js +15 -0
  520. package/modern/locales/skSK.js +14 -0
  521. package/modern/locales/svSE.js +19 -5
  522. package/modern/locales/trTR.js +15 -2
  523. package/modern/locales/ukUA.js +14 -0
  524. package/modern/locales/urPK.js +22 -9
  525. package/modern/locales/viVN.js +15 -0
  526. package/modern/locales/zhCN.js +17 -4
  527. package/modern/locales/zhHK.js +14 -0
  528. package/modern/locales/zhTW.js +14 -0
  529. package/modern/material/index.js +58 -7
  530. package/modern/models/api/index.js +0 -1
  531. package/modern/models/gridBaseSlots.js +1 -0
  532. package/modern/models/gridFilterInputComponent.js +1 -0
  533. package/modern/utils/assert.js +3 -0
  534. package/modern/utils/cellBorderUtils.js +5 -5
  535. package/modern/utils/createSelector.js +1 -120
  536. package/modern/utils/domUtils.js +7 -2
  537. package/modern/utils/isJSDOM.js +1 -0
  538. package/modern/utils/roundToDecimalPlaces.js +3 -0
  539. package/modern/utils/rtlFlipSide.js +22 -0
  540. package/modern/utils/utils.js +6 -1
  541. package/node/DataGrid/DataGrid.js +18 -36
  542. package/node/DataGrid/useDataGridComponent.js +1 -1
  543. package/node/DataGrid/useDataGridProps.js +2 -2
  544. package/node/components/GridApiContext.js +1 -0
  545. package/node/components/GridColumnHeaders.js +4 -4
  546. package/node/components/GridConfigurationContext.js +1 -0
  547. package/node/components/GridFooter.js +4 -4
  548. package/node/components/GridHeaders.js +2 -2
  549. package/node/components/GridLoadingOverlay.js +14 -12
  550. package/node/components/GridNoResultsOverlay.js +4 -4
  551. package/node/components/GridNoRowsOverlay.js +4 -4
  552. package/node/components/GridPagination.js +7 -4
  553. package/node/components/GridRow.js +51 -84
  554. package/node/components/GridRowCount.js +3 -2
  555. package/node/components/GridScrollArea.js +1 -0
  556. package/node/components/GridSelectedRowCount.js +3 -2
  557. package/node/components/GridSkeletonLoadingOverlay.js +21 -20
  558. package/node/components/base/GridOverlays.js +2 -24
  559. package/node/components/base/index.js +0 -11
  560. package/node/components/cell/GridActionsCell.js +8 -1
  561. package/node/components/cell/GridActionsCellItem.js +7 -8
  562. package/node/components/cell/GridCell.js +51 -91
  563. package/node/components/cell/GridEditDateCell.js +1 -1
  564. package/node/components/cell/GridEditInputCell.js +73 -4
  565. package/node/components/cell/GridEditSingleSelectCell.js +2 -2
  566. package/node/components/cell/GridSkeletonCell.js +1 -2
  567. package/node/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  568. package/node/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  569. package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +19 -6
  570. package/node/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  571. package/node/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  572. package/node/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  573. package/node/components/columnHeaders/GridIconButtonContainer.js +5 -3
  574. package/node/components/columnSelection/GridCellCheckboxRenderer.js +10 -8
  575. package/node/components/columnSelection/GridHeaderCheckbox.js +17 -9
  576. package/node/components/columnsManagement/GridColumnsManagement.js +81 -11
  577. package/node/components/containers/GridFooterContainer.js +5 -3
  578. package/node/components/containers/GridOverlay.js +5 -3
  579. package/node/components/containers/GridRoot.js +17 -7
  580. package/node/components/containers/GridRootStyles.js +160 -50
  581. package/node/components/containers/GridToolbarContainer.js +3 -2
  582. package/node/components/menu/columnMenu/GridColumnMenu.js +5 -5
  583. package/node/components/menu/columnMenu/GridColumnMenuContainer.js +3 -2
  584. package/node/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +5 -10
  585. package/node/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +5 -10
  586. package/node/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +5 -10
  587. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  588. package/node/components/panel/GridColumnsPanel.js +1 -2
  589. package/node/components/panel/GridPanel.js +5 -3
  590. package/node/components/panel/GridPanelContent.js +7 -3
  591. package/node/components/panel/GridPanelFooter.js +5 -4
  592. package/node/components/panel/GridPanelWrapper.js +5 -3
  593. package/node/components/panel/filterPanel/GridFilterForm.js +22 -18
  594. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +42 -33
  595. package/node/components/panel/filterPanel/GridFilterInputDate.js +49 -30
  596. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +49 -24
  597. package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +55 -33
  598. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +34 -25
  599. package/node/components/panel/filterPanel/GridFilterInputValue.js +62 -37
  600. package/node/components/panel/filterPanel/GridFilterPanel.js +4 -4
  601. package/node/components/panel/filterPanel/index.js +7 -23
  602. package/node/components/toolbar/GridToolbar.js +11 -5
  603. package/node/components/toolbar/GridToolbarColumnsButton.js +12 -6
  604. package/node/components/toolbar/GridToolbarDensitySelector.js +9 -11
  605. package/node/components/toolbar/GridToolbarExport.js +2 -1
  606. package/node/components/toolbar/GridToolbarExportContainer.js +6 -6
  607. package/node/components/toolbar/GridToolbarFilterButton.js +20 -9
  608. package/node/components/toolbar/GridToolbarQuickFilter.js +39 -31
  609. package/node/components/virtualization/GridMainContainer.js +14 -5
  610. package/node/components/virtualization/GridVirtualScrollbar.js +17 -17
  611. package/node/components/virtualization/GridVirtualScroller.js +27 -12
  612. package/node/components/virtualization/GridVirtualScrollerContent.js +15 -6
  613. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  614. package/node/constants/dataGridPropsDefaultValues.js +2 -4
  615. package/node/constants/gridClasses.js +1 -1
  616. package/node/constants/localeTextConstants.js +12 -0
  617. package/node/context/GridRootPropsContext.js +1 -0
  618. package/node/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  619. package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -1
  620. package/node/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +7 -1
  621. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +7 -8
  622. package/node/hooks/core/useGridApiInitialization.js +2 -2
  623. package/node/hooks/core/useGridStateInitialization.js +3 -3
  624. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +32 -67
  625. package/node/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  626. package/node/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  627. package/node/hooks/features/columnResize/useGridColumnResize.js +17 -10
  628. package/node/hooks/features/columns/gridColumnsUtils.js +2 -1
  629. package/node/hooks/features/columns/useGridColumns.js +7 -3
  630. package/node/hooks/features/dimensions/useGridDimensions.js +12 -33
  631. package/node/hooks/features/editing/gridEditingSelectors.js +8 -2
  632. package/node/hooks/features/editing/useGridCellEditing.js +3 -3
  633. package/node/hooks/features/editing/useGridRowEditing.js +5 -6
  634. package/node/hooks/features/export/useGridPrintExport.js +1 -1
  635. package/node/hooks/features/filter/gridFilterSelector.js +6 -1
  636. package/node/hooks/features/filter/gridFilterUtils.js +3 -3
  637. package/node/hooks/features/filter/useGridFilter.js +1 -1
  638. package/node/hooks/features/focus/useGridFocus.js +3 -2
  639. package/node/hooks/features/index.js +11 -0
  640. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -15
  641. package/node/hooks/features/keyboardNavigation/utils.js +0 -6
  642. package/node/hooks/features/listView/gridListViewSelectors.js +3 -1
  643. package/node/hooks/features/listView/index.js +16 -0
  644. package/node/hooks/features/listView/useGridListView.js +2 -1
  645. package/node/hooks/features/overlays/useGridOverlays.js +24 -2
  646. package/node/hooks/features/pagination/gridPaginationSelector.js +41 -3
  647. package/node/hooks/features/pagination/useGridPagination.js +5 -3
  648. package/node/hooks/features/pagination/useGridPaginationModel.js +23 -1
  649. package/node/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +9 -2
  650. package/node/hooks/features/preferencesPanel/index.js +11 -10
  651. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  652. package/node/hooks/features/rowSelection/useGridRowSelection.js +7 -15
  653. package/node/hooks/features/rowSelection/utils.js +2 -2
  654. package/node/hooks/features/rows/gridRowsSelector.js +2 -3
  655. package/node/hooks/features/rows/gridRowsUtils.js +0 -9
  656. package/node/hooks/features/rows/index.js +0 -7
  657. package/node/hooks/features/rows/useGridParamsApi.js +33 -14
  658. package/node/hooks/features/rows/useGridRowSpanning.js +95 -84
  659. package/node/hooks/features/rows/useGridRows.js +21 -25
  660. package/node/hooks/features/rows/useGridRowsMeta.js +5 -4
  661. package/node/hooks/features/sorting/gridSortingSelector.js +12 -1
  662. package/node/hooks/features/sorting/gridSortingUtils.js +2 -2
  663. package/node/hooks/features/sorting/index.js +24 -16
  664. package/node/hooks/features/sorting/useGridSorting.js +1 -1
  665. package/node/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +40 -0
  666. package/node/hooks/features/virtualization/useGridVirtualScroller.js +171 -96
  667. package/node/hooks/utils/useGridApiEventHandler.js +1 -1
  668. package/node/hooks/utils/useGridApiRef.js +1 -1
  669. package/node/hooks/utils/useGridSelector.js +8 -47
  670. package/node/hooks/utils/useGridVisibleRows.js +3 -28
  671. package/node/index.js +1 -1
  672. package/node/internals/constants.js +9 -2
  673. package/node/internals/index.js +36 -24
  674. package/node/internals/utils/attachPinnedStyle.js +15 -0
  675. package/node/internals/utils/getPinnedCellOffset.js +6 -7
  676. package/node/internals/utils/index.js +11 -11
  677. package/node/locales/arSD.js +14 -0
  678. package/node/locales/beBY.js +13 -0
  679. package/node/locales/bgBG.js +15 -0
  680. package/node/locales/csCZ.js +15 -0
  681. package/node/locales/daDK.js +15 -0
  682. package/node/locales/deDE.js +13 -0
  683. package/node/locales/elGR.js +14 -0
  684. package/node/locales/esES.js +17 -4
  685. package/node/locales/faIR.js +18 -4
  686. package/node/locales/fiFI.js +15 -0
  687. package/node/locales/frFR.js +15 -0
  688. package/node/locales/heIL.js +17 -4
  689. package/node/locales/hrHR.js +15 -0
  690. package/node/locales/huHU.js +15 -0
  691. package/node/locales/isIS.js +14 -0
  692. package/node/locales/itIT.js +15 -0
  693. package/node/locales/jaJP.js +15 -0
  694. package/node/locales/koKR.js +47 -37
  695. package/node/locales/nbNO.js +15 -0
  696. package/node/locales/nlNL.js +18 -4
  697. package/node/locales/nnNO.js +15 -0
  698. package/node/locales/plPL.js +15 -0
  699. package/node/locales/ptBR.js +13 -0
  700. package/node/locales/ptPT.js +13 -0
  701. package/node/locales/roRO.js +21 -9
  702. package/node/locales/ruRU.js +15 -0
  703. package/node/locales/skSK.js +14 -0
  704. package/node/locales/svSE.js +19 -5
  705. package/node/locales/trTR.js +15 -2
  706. package/node/locales/ukUA.js +14 -0
  707. package/node/locales/urPK.js +22 -9
  708. package/node/locales/viVN.js +15 -0
  709. package/node/locales/zhCN.js +17 -4
  710. package/node/locales/zhHK.js +14 -0
  711. package/node/locales/zhTW.js +14 -0
  712. package/node/material/index.js +59 -7
  713. package/node/models/api/index.js +0 -11
  714. package/node/models/gridFilterInputComponent.js +5 -0
  715. package/node/utils/assert.js +9 -0
  716. package/node/utils/cellBorderUtils.js +5 -5
  717. package/node/utils/createSelector.js +4 -125
  718. package/node/utils/domUtils.js +7 -2
  719. package/node/utils/isJSDOM.js +7 -0
  720. package/node/utils/roundToDecimalPlaces.js +9 -0
  721. package/node/utils/rtlFlipSide.js +29 -0
  722. package/node/utils/utils.js +8 -1
  723. package/package.json +5 -5
  724. package/themeAugmentation/overrides.d.ts +10 -5
  725. package/utils/assert.d.ts +2 -0
  726. package/utils/assert.js +3 -0
  727. package/utils/cellBorderUtils.d.ts +3 -3
  728. package/utils/cellBorderUtils.js +5 -5
  729. package/utils/createSelector.d.ts +7 -19
  730. package/utils/createSelector.js +1 -120
  731. package/utils/domUtils.js +7 -2
  732. package/utils/getPublicApiRef.d.ts +2 -1
  733. package/utils/isJSDOM.d.ts +1 -0
  734. package/utils/isJSDOM.js +1 -0
  735. package/utils/keyboardUtils.d.ts +1 -1
  736. package/utils/roundToDecimalPlaces.d.ts +1 -0
  737. package/utils/roundToDecimalPlaces.js +3 -0
  738. package/utils/rtlFlipSide.d.ts +2 -0
  739. package/utils/rtlFlipSide.js +22 -0
  740. package/utils/utils.d.ts +1 -0
  741. package/utils/utils.js +6 -1
  742. package/components/panel/filterPanel/GridFilterInputValueProps.d.ts +0 -11
  743. package/internals/utils/useProps.d.ts +0 -1
  744. package/internals/utils/useProps.js +0 -24
  745. package/joy/icons.d.ts +0 -32
  746. package/joy/icons.js +0 -431
  747. package/joy/index.d.ts +0 -2
  748. package/joy/index.js +0 -2
  749. package/joy/joySlots.d.ts +0 -3
  750. package/joy/joySlots.js +0 -384
  751. package/joy/package.json +0 -6
  752. package/modern/internals/utils/useProps.js +0 -24
  753. package/modern/joy/icons.js +0 -431
  754. package/modern/joy/index.js +0 -2
  755. package/modern/joy/joySlots.js +0 -384
  756. package/node/internals/utils/useProps.js +0 -30
  757. package/node/joy/icons.js +0 -439
  758. package/node/joy/index.js +0 -13
  759. package/node/joy/joySlots.js +0 -392
  760. /package/{components/panel/filterPanel/GridFilterInputValueProps.js → models/gridBaseSlots.js} +0 -0
  761. /package/{modern/components/panel/filterPanel/GridFilterInputValueProps.js → models/gridFilterInputComponent.js} +0 -0
  762. /package/node/{components/panel/filterPanel/GridFilterInputValueProps.js → models/gridBaseSlots.js} +0 -0
@@ -3,11 +3,14 @@ import * as React from 'react';
3
3
  import useLazyRef from '@mui/utils/useLazyRef';
4
4
  import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from "../../../internals/constants.js";
5
5
  import { gridVisibleColumnDefinitionsSelector } from "../columns/gridColumnsSelector.js";
6
- import { useGridVisibleRows } from "../../utils/useGridVisibleRows.js";
6
+ import { getVisibleRows } from "../../utils/useGridVisibleRows.js";
7
7
  import { gridRenderContextSelector } from "../virtualization/gridVirtualizationSelectors.js";
8
- import { useGridSelector } from "../../utils/useGridSelector.js";
9
- import { getUnprocessedRange, isRowRangeUpdated, isRowContextInitialized, getCellValue } from "./gridRowSpanningUtils.js";
8
+ import { getUnprocessedRange, isRowContextInitialized, getCellValue } from "./gridRowSpanningUtils.js";
10
9
  import { GRID_CHECKBOX_SELECTION_FIELD } from "../../../colDef/gridCheckboxSelectionColDef.js";
10
+ import { useGridApiEventHandler } from "../../utils/useGridApiEventHandler.js";
11
+ import { runIf } from "../../../utils/utils.js";
12
+ import { gridPageSizeSelector } from "../pagination/index.js";
13
+ import { gridDataRowIdsSelector } from "./gridRowsSelector.js";
11
14
  const EMPTY_STATE = {
12
15
  spannedCells: {},
13
16
  hiddenCells: {},
@@ -35,7 +38,7 @@ const computeRowSpanningState = (apiRef, colDefs, visibleRows, range, rangeToPro
35
38
  if (skippedFields.has(colDef.field)) {
36
39
  return;
37
40
  }
38
- for (let index = rangeToProcess.firstRowIndex; index <= rangeToProcess.lastRowIndex; index += 1) {
41
+ for (let index = rangeToProcess.firstRowIndex; index < rangeToProcess.lastRowIndex; index += 1) {
39
42
  const row = visibleRows[index];
40
43
  if (hiddenCells[row.id]?.[colDef.field]) {
41
44
  continue;
@@ -52,8 +55,8 @@ const computeRowSpanningState = (apiRef, colDefs, visibleRows, range, rangeToPro
52
55
  const backwardsHiddenCells = [];
53
56
  if (index === rangeToProcess.firstRowIndex) {
54
57
  let prevIndex = index - 1;
55
- const prevRowEntry = visibleRows[prevIndex];
56
- while (prevIndex >= range.firstRowIndex && getCellValue(prevRowEntry.model, colDef, apiRef) === cellValue) {
58
+ let prevRowEntry = visibleRows[prevIndex];
59
+ while (prevIndex >= range.firstRowIndex && prevRowEntry && getCellValue(prevRowEntry.model, colDef, apiRef) === cellValue) {
57
60
  const currentRow = visibleRows[prevIndex + 1];
58
61
  if (hiddenCells[currentRow.id]) {
59
62
  hiddenCells[currentRow.id][colDef.field] = true;
@@ -67,6 +70,7 @@ const computeRowSpanningState = (apiRef, colDefs, visibleRows, range, rangeToPro
67
70
  spannedRowId = prevRowEntry.id;
68
71
  spannedRowIndex = prevIndex;
69
72
  prevIndex -= 1;
73
+ prevRowEntry = visibleRows[prevIndex];
70
74
  }
71
75
  }
72
76
  backwardsHiddenCells.forEach(hiddenCellIndex => {
@@ -122,6 +126,24 @@ const computeRowSpanningState = (apiRef, colDefs, visibleRows, range, rangeToPro
122
126
  processedRange
123
127
  };
124
128
  };
129
+ const getInitialRangeToProcess = (props, apiRef) => {
130
+ const rowCount = gridDataRowIdsSelector(apiRef).length;
131
+ if (props.pagination) {
132
+ const pageSize = gridPageSizeSelector(apiRef);
133
+ let paginationLastRowIndex = DEFAULT_ROWS_TO_PROCESS;
134
+ if (pageSize > 0) {
135
+ paginationLastRowIndex = pageSize - 1;
136
+ }
137
+ return {
138
+ firstRowIndex: 0,
139
+ lastRowIndex: Math.min(paginationLastRowIndex, rowCount)
140
+ };
141
+ }
142
+ return {
143
+ firstRowIndex: 0,
144
+ lastRowIndex: Math.min(DEFAULT_ROWS_TO_PROCESS, rowCount)
145
+ };
146
+ };
125
147
 
126
148
  /**
127
149
  * @requires columnsStateInitializer (method) - should be initialized before
@@ -129,73 +151,52 @@ const computeRowSpanningState = (apiRef, colDefs, visibleRows, range, rangeToPro
129
151
  * @requires filterStateInitializer (method) - should be initialized before
130
152
  */
131
153
  export const rowSpanningStateInitializer = (state, props, apiRef) => {
132
- if (props.unstable_rowSpanning) {
133
- const rowIds = state.rows.dataRowIds || [];
134
- const orderedFields = state.columns.orderedFields || [];
135
- const dataRowIdToModelLookup = state.rows.dataRowIdToModelLookup;
136
- const columnsLookup = state.columns.lookup;
137
- const isFilteringPending = Boolean(state.filter.filterModel.items.length) || Boolean(state.filter.filterModel.quickFilterValues?.length);
138
- if (!rowIds.length || !orderedFields.length || !dataRowIdToModelLookup || !columnsLookup || isFilteringPending) {
139
- return _extends({}, state, {
140
- rowSpanning: EMPTY_STATE
141
- });
142
- }
143
- const rangeToProcess = {
144
- firstRowIndex: 0,
145
- lastRowIndex: Math.min(DEFAULT_ROWS_TO_PROCESS - 1, Math.max(rowIds.length - 1, 0))
146
- };
147
- const rows = rowIds.map(id => ({
148
- id,
149
- model: dataRowIdToModelLookup[id]
150
- }));
151
- const colDefs = orderedFields.map(field => columnsLookup[field]);
152
- const {
153
- spannedCells,
154
- hiddenCells,
155
- hiddenCellOriginMap
156
- } = computeRowSpanningState(apiRef, colDefs, rows, rangeToProcess, rangeToProcess, true, EMPTY_RANGE);
154
+ if (!props.rowSpanning) {
157
155
  return _extends({}, state, {
158
- rowSpanning: {
159
- spannedCells,
160
- hiddenCells,
161
- hiddenCellOriginMap
162
- }
156
+ rowSpanning: EMPTY_STATE
163
157
  });
164
158
  }
159
+ const rowIds = state.rows.dataRowIds || [];
160
+ const orderedFields = state.columns.orderedFields || [];
161
+ const dataRowIdToModelLookup = state.rows.dataRowIdToModelLookup;
162
+ const columnsLookup = state.columns.lookup;
163
+ const isFilteringPending = Boolean(state.filter.filterModel.items.length) || Boolean(state.filter.filterModel.quickFilterValues?.length);
164
+ if (!rowIds.length || !orderedFields.length || !dataRowIdToModelLookup || !columnsLookup || isFilteringPending) {
165
+ return _extends({}, state, {
166
+ rowSpanning: EMPTY_STATE
167
+ });
168
+ }
169
+ const rangeToProcess = getInitialRangeToProcess(props, apiRef);
170
+ const rows = rowIds.map(id => ({
171
+ id,
172
+ model: dataRowIdToModelLookup[id]
173
+ }));
174
+ const colDefs = orderedFields.map(field => columnsLookup[field]);
175
+ const {
176
+ spannedCells,
177
+ hiddenCells,
178
+ hiddenCellOriginMap
179
+ } = computeRowSpanningState(apiRef, colDefs, rows, rangeToProcess, rangeToProcess, true, EMPTY_RANGE);
165
180
  return _extends({}, state, {
166
- rowSpanning: EMPTY_STATE
181
+ rowSpanning: {
182
+ spannedCells,
183
+ hiddenCells,
184
+ hiddenCellOriginMap
185
+ }
167
186
  });
168
187
  };
169
188
  export const useGridRowSpanning = (apiRef, props) => {
170
- const {
171
- range,
172
- rows: visibleRows
173
- } = useGridVisibleRows(apiRef, props);
174
- const renderContext = useGridSelector(apiRef, gridRenderContextSelector);
175
- const colDefs = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
176
189
  const processedRange = useLazyRef(() => {
177
- return Object.keys(apiRef.current.state.rowSpanning.spannedCells).length > 0 ? {
178
- firstRowIndex: 0,
179
- lastRowIndex: Math.min(DEFAULT_ROWS_TO_PROCESS - 1, Math.max(apiRef.current.state.rows.dataRowIds.length - 1, 0))
180
- } : EMPTY_RANGE;
190
+ return apiRef.current.state.rowSpanning !== EMPTY_STATE ? getInitialRangeToProcess(props, apiRef) : EMPTY_RANGE;
181
191
  });
182
- const lastRange = React.useRef(EMPTY_RANGE);
183
- const updateRowSpanningState = React.useCallback(
184
- // A reset needs to occur when:
185
- // - The `unstable_rowSpanning` prop is updated (feature flag)
186
- // - The filtering is applied
187
- // - The sorting is applied
188
- // - The `paginationModel` is updated
189
- // - The rows are updated
190
- (resetState = true) => {
191
- if (!props.unstable_rowSpanning) {
192
- if (apiRef.current.state.rowSpanning !== EMPTY_STATE) {
193
- apiRef.current.setState(state => _extends({}, state, {
194
- rowSpanning: EMPTY_STATE
195
- }));
196
- }
197
- return;
198
- }
192
+ const updateRowSpanningState = React.useCallback((renderContext, resetState = false) => {
193
+ const {
194
+ range,
195
+ rows: visibleRows
196
+ } = getVisibleRows(apiRef, {
197
+ pagination: props.pagination,
198
+ paginationMode: props.paginationMode
199
+ });
199
200
  if (range === null || !isRowContextInitialized(renderContext)) {
200
201
  return;
201
202
  }
@@ -204,11 +205,12 @@ export const useGridRowSpanning = (apiRef, props) => {
204
205
  }
205
206
  const rangeToProcess = getUnprocessedRange({
206
207
  firstRowIndex: renderContext.firstRowIndex,
207
- lastRowIndex: Math.min(renderContext.lastRowIndex - 1, range.lastRowIndex)
208
+ lastRowIndex: Math.min(renderContext.lastRowIndex, range.lastRowIndex + 1)
208
209
  }, processedRange.current);
209
210
  if (rangeToProcess === null) {
210
211
  return;
211
212
  }
213
+ const colDefs = gridVisibleColumnDefinitionsSelector(apiRef);
212
214
  const {
213
215
  spannedCells,
214
216
  hiddenCells,
@@ -221,7 +223,8 @@ export const useGridRowSpanning = (apiRef, props) => {
221
223
  const currentSpannedCellsCount = Object.keys(apiRef.current.state.rowSpanning.spannedCells).length;
222
224
  const currentHiddenCellsCount = Object.keys(apiRef.current.state.rowSpanning.hiddenCells).length;
223
225
  const shouldUpdateState = resetState || newSpannedCellsCount !== currentSpannedCellsCount || newHiddenCellsCount !== currentHiddenCellsCount;
224
- if (!shouldUpdateState) {
226
+ const hasNoSpannedCells = newSpannedCellsCount === 0 && currentSpannedCellsCount === 0;
227
+ if (!shouldUpdateState || hasNoSpannedCells) {
225
228
  return;
226
229
  }
227
230
  apiRef.current.setState(state => {
@@ -233,27 +236,35 @@ export const useGridRowSpanning = (apiRef, props) => {
233
236
  }
234
237
  });
235
238
  });
236
- }, [apiRef, props.unstable_rowSpanning, range, renderContext, visibleRows, colDefs, processedRange]);
237
- const prevRenderContext = React.useRef(renderContext);
238
- const isFirstRender = React.useRef(true);
239
- const shouldResetState = React.useRef(false);
240
- React.useEffect(() => {
241
- const firstRender = isFirstRender.current;
242
- if (isFirstRender.current) {
243
- isFirstRender.current = false;
244
- }
245
- if (range && lastRange.current && isRowRangeUpdated(range, lastRange.current)) {
246
- lastRange.current = range;
247
- shouldResetState.current = true;
239
+ }, [apiRef, processedRange, props.pagination, props.paginationMode]);
240
+
241
+ // Reset events trigger a full re-computation of the row spanning state:
242
+ // - The `unstable_rowSpanning` prop is updated (feature flag)
243
+ // - The filtering is applied
244
+ // - The sorting is applied
245
+ // - The `paginationModel` is updated
246
+ // - The rows are updated
247
+ const resetRowSpanningState = React.useCallback(() => {
248
+ const renderContext = gridRenderContextSelector(apiRef);
249
+ if (!isRowContextInitialized(renderContext)) {
250
+ return;
248
251
  }
249
- if (!firstRender && prevRenderContext.current !== renderContext) {
250
- if (isRowRangeUpdated(prevRenderContext.current, renderContext)) {
251
- updateRowSpanningState(shouldResetState.current);
252
- shouldResetState.current = false;
252
+ updateRowSpanningState(renderContext, true);
253
+ }, [apiRef, updateRowSpanningState]);
254
+ useGridApiEventHandler(apiRef, 'renderedRowsIntervalChange', runIf(props.rowSpanning, updateRowSpanningState));
255
+ useGridApiEventHandler(apiRef, 'sortedRowsSet', runIf(props.rowSpanning, resetRowSpanningState));
256
+ useGridApiEventHandler(apiRef, 'paginationModelChange', runIf(props.rowSpanning, resetRowSpanningState));
257
+ useGridApiEventHandler(apiRef, 'filteredRowsSet', runIf(props.rowSpanning, resetRowSpanningState));
258
+ useGridApiEventHandler(apiRef, 'columnsChange', runIf(props.rowSpanning, resetRowSpanningState));
259
+ React.useEffect(() => {
260
+ if (!props.rowSpanning) {
261
+ if (apiRef.current.state.rowSpanning !== EMPTY_STATE) {
262
+ apiRef.current.setState(state => _extends({}, state, {
263
+ rowSpanning: EMPTY_STATE
264
+ }));
253
265
  }
254
- prevRenderContext.current = renderContext;
255
- return;
266
+ } else if (apiRef.current.state.rowSpanning === EMPTY_STATE) {
267
+ resetRowSpanningState();
256
268
  }
257
- updateRowSpanningState();
258
- }, [updateRowSpanningState, renderContext, range, lastRange]);
269
+ }, [apiRef, resetRowSpanningState, props.rowSpanning]);
259
270
  };
@@ -1,6 +1,6 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
3
3
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
4
4
  import { GridStateInitializer } from '../../utils/useGridInitializeState';
5
5
  export declare const rowsStateInitializer: GridStateInitializer<Pick<DataGridProcessedProps, 'unstable_dataSource' | 'rows' | 'rowCount' | 'getRowId' | 'loading'>>;
6
- export declare const useGridRows: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "rows" | "getRowId" | "rowCount" | "throttleRowsMs" | "signature" | "pagination" | "paginationMode" | "loading" | "unstable_dataSource">) => void;
6
+ export declare const useGridRows: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "rows" | "getRowId" | "rowCount" | "throttleRowsMs" | "signature" | "pagination" | "paginationMode" | "loading" | "unstable_dataSource">) => void;
@@ -3,14 +3,15 @@ import * as React from 'react';
3
3
  import useLazyRef from '@mui/utils/useLazyRef';
4
4
  import { useGridApiMethod } from "../../utils/useGridApiMethod.js";
5
5
  import { useGridLogger } from "../../utils/useGridLogger.js";
6
- import { gridRowCountSelector, gridRowsLookupSelector, gridRowTreeSelector, gridRowGroupingNameSelector, gridRowTreeDepthsSelector, gridDataRowIdsSelector, gridRowsDataRowIdToIdLookupSelector, gridRowMaximumTreeDepthSelector, gridRowGroupsToFetchSelector } from "./gridRowsSelector.js";
6
+ import { gridRowCountSelector, gridRowsLookupSelector, gridRowTreeSelector, gridRowGroupingNameSelector, gridRowTreeDepthsSelector, gridDataRowIdsSelector, gridRowMaximumTreeDepthSelector, gridRowGroupsToFetchSelector } from "./gridRowsSelector.js";
7
7
  import { useTimeout } from "../../utils/useTimeout.js";
8
8
  import { GridSignature, useGridApiEventHandler } from "../../utils/useGridApiEventHandler.js";
9
- import { useGridVisibleRows } from "../../utils/useGridVisibleRows.js";
9
+ import { getVisibleRows } from "../../utils/useGridVisibleRows.js";
10
10
  import { gridSortedRowIdsSelector } from "../sorting/gridSortingSelector.js";
11
11
  import { gridFilteredRowsLookupSelector } from "../filter/gridFilterSelector.js";
12
12
  import { getTreeNodeDescendants, createRowsInternalCache, getRowsStateFromCache, isAutogeneratedRowNode, GRID_ROOT_GROUP_ID, GRID_ID_AUTOGENERATED, updateCacheWithNewRows, getTopLevelRowCount, getRowIdFromRowModel, computeRowsUpdates } from "./gridRowsUtils.js";
13
13
  import { useGridRegisterPipeApplier } from "../../core/pipeProcessing/index.js";
14
+ import { GridStrategyGroup } from "../../core/strategyProcessing/index.js";
14
15
  export const rowsStateInitializer = (state, props, apiRef) => {
15
16
  const isDataSourceAvailable = !!props.unstable_dataSource;
16
17
  apiRef.current.caches.rows = createRowsInternalCache({
@@ -39,7 +40,6 @@ export const useGridRows = (apiRef, props) => {
39
40
  }
40
41
  }
41
42
  const logger = useGridLogger(apiRef, 'useGridRows');
42
- const currentPage = useGridVisibleRows(apiRef, props);
43
43
  const lastUpdateMs = React.useRef(Date.now());
44
44
  const lastRowCount = React.useRef(props.rowCount);
45
45
  const timeout = useTimeout();
@@ -66,12 +66,6 @@ export const useGridRows = (apiRef, props) => {
66
66
  }
67
67
  return row.id;
68
68
  }, [getRowIdProp]);
69
- const lookup = React.useMemo(() => currentPage.rows.reduce((acc, {
70
- id
71
- }, index) => {
72
- acc[id] = index;
73
- return acc;
74
- }, {}), [currentPage.rows]);
75
69
  const throttledRowsChange = React.useCallback(({
76
70
  cache,
77
71
  throttle
@@ -170,7 +164,12 @@ export const useGridRows = (apiRef, props) => {
170
164
  }, [apiRef]);
171
165
  const getRowsCount = React.useCallback(() => gridRowCountSelector(apiRef), [apiRef]);
172
166
  const getAllRowIds = React.useCallback(() => gridDataRowIdsSelector(apiRef), [apiRef]);
173
- const getRowIndexRelativeToVisibleRows = React.useCallback(id => lookup[id], [lookup]);
167
+ const getRowIndexRelativeToVisibleRows = React.useCallback(id => {
168
+ const {
169
+ rowIdToIndexMap
170
+ } = getVisibleRows(apiRef);
171
+ return rowIdToIndexMap.get(id);
172
+ }, [apiRef]);
174
173
  const setRowChildrenExpansion = React.useCallback((id, isExpanded) => {
175
174
  const currentNode = apiRef.current.getRowNode(id);
176
175
  if (!currentNode) {
@@ -238,7 +237,7 @@ export const useGridRows = (apiRef, props) => {
238
237
  throw new Error(`MUI X: The row reordering do not support reordering of footer or grouping rows.`);
239
238
  }
240
239
  apiRef.current.setState(state => {
241
- const group = gridRowTreeSelector(state, apiRef.current.instanceId)[GRID_ROOT_GROUP_ID];
240
+ const group = gridRowTreeSelector(state, undefined, apiRef.current.instanceId)[GRID_ROOT_GROUP_ID];
242
241
  const allRows = group.children;
243
242
  const oldIndex = allRows.findIndex(row => row === rowId);
244
243
  if (oldIndex === -1 || oldIndex === targetIndex) {
@@ -272,7 +271,6 @@ export const useGridRows = (apiRef, props) => {
272
271
  }
273
272
  const tree = _extends({}, gridRowTreeSelector(apiRef));
274
273
  const dataRowIdToModelLookup = _extends({}, gridRowsLookupSelector(apiRef));
275
- const dataRowIdToIdLookup = _extends({}, gridRowsDataRowIdToIdLookupSelector(apiRef));
276
274
  const rootGroup = tree[GRID_ROOT_GROUP_ID];
277
275
  const rootGroupChildren = [...rootGroup.children];
278
276
  const seenIds = new Set();
@@ -282,7 +280,6 @@ export const useGridRows = (apiRef, props) => {
282
280
  const [removedRowId] = rootGroupChildren.splice(firstRowToRender + i, 1, rowId);
283
281
  if (!seenIds.has(removedRowId)) {
284
282
  delete dataRowIdToModelLookup[removedRowId];
285
- delete dataRowIdToIdLookup[removedRowId];
286
283
  delete tree[removedRowId];
287
284
  }
288
285
  const rowTreeNodeConfig = {
@@ -293,7 +290,6 @@ export const useGridRows = (apiRef, props) => {
293
290
  groupingKey: null
294
291
  };
295
292
  dataRowIdToModelLookup[rowId] = rowModel;
296
- dataRowIdToIdLookup[rowId] = rowId;
297
293
  tree[rowId] = rowTreeNodeConfig;
298
294
  seenIds.add(rowId);
299
295
  }
@@ -304,17 +300,17 @@ export const useGridRows = (apiRef, props) => {
304
300
  // Removes potential remaining skeleton rows from the dataRowIds.
305
301
  const dataRowIds = rootGroupChildren.filter(childId => tree[childId]?.type === 'leaf');
306
302
  apiRef.current.caches.rows.dataRowIdToModelLookup = dataRowIdToModelLookup;
307
- apiRef.current.caches.rows.dataRowIdToIdLookup = dataRowIdToIdLookup;
308
303
  apiRef.current.setState(state => _extends({}, state, {
309
304
  rows: _extends({}, state.rows, {
305
+ loading: props.loading,
306
+ totalRowCount: Math.max(props.rowCount || 0, rootGroupChildren.length),
310
307
  dataRowIdToModelLookup,
311
- dataRowIdToIdLookup,
312
308
  dataRowIds,
313
309
  tree
314
310
  })
315
311
  }));
316
312
  apiRef.current.publishEvent('rowsSet');
317
- }, [apiRef, props.signature, props.getRowId]);
313
+ }, [apiRef, props.signature, props.getRowId, props.loading, props.rowCount]);
318
314
  const rowApi = {
319
315
  getRow,
320
316
  setLoading,
@@ -381,7 +377,7 @@ export const useGridRows = (apiRef, props) => {
381
377
  const handleStrategyActivityChange = React.useCallback(() => {
382
378
  // `rowTreeCreation` is the only processor ran when `strategyAvailabilityChange` is fired.
383
379
  // All the other processors listen to `rowsSet` which will be published by the `groupRows` method below.
384
- if (apiRef.current.getActiveStrategy('rowTree') !== gridRowGroupingNameSelector(apiRef)) {
380
+ if (apiRef.current.getActiveStrategy(GridStrategyGroup.RowTree) !== gridRowGroupingNameSelector(apiRef)) {
385
381
  groupRows();
386
382
  }
387
383
  }, [apiRef, groupRows]);
@@ -394,11 +390,10 @@ export const useGridRows = (apiRef, props) => {
394
390
  const applyHydrateRowsProcessor = React.useCallback(() => {
395
391
  apiRef.current.setState(state => {
396
392
  const response = apiRef.current.unstable_applyPipeProcessors('hydrateRows', {
397
- tree: gridRowTreeSelector(state, apiRef.current.instanceId),
398
- treeDepths: gridRowTreeDepthsSelector(state, apiRef.current.instanceId),
399
- dataRowIds: gridDataRowIdsSelector(state, apiRef.current.instanceId),
400
- dataRowIdToModelLookup: gridRowsLookupSelector(state, apiRef.current.instanceId),
401
- dataRowIdToIdLookup: gridRowsDataRowIdToIdLookupSelector(state, apiRef.current.instanceId)
393
+ tree: gridRowTreeSelector(state, undefined, apiRef.current.instanceId),
394
+ treeDepths: gridRowTreeDepthsSelector(state, undefined, apiRef.current.instanceId),
395
+ dataRowIds: gridDataRowIdsSelector(state, undefined, apiRef.current.instanceId),
396
+ dataRowIdToModelLookup: gridRowsLookupSelector(state, undefined, apiRef.current.instanceId)
402
397
  });
403
398
  return _extends({}, state, {
404
399
  rows: _extends({}, state.rows, response, {
@@ -430,7 +425,8 @@ export const useGridRows = (apiRef, props) => {
430
425
  isRowCountPropUpdated = true;
431
426
  lastRowCount.current = props.rowCount;
432
427
  }
433
- const areNewRowsAlreadyInState = apiRef.current.caches.rows.rowsBeforePartialUpdates === props.rows;
428
+ const currentRows = props.unstable_dataSource ? Array.from(apiRef.current.getRowModels().values()) : props.rows;
429
+ const areNewRowsAlreadyInState = apiRef.current.caches.rows.rowsBeforePartialUpdates === currentRows;
434
430
  const isNewLoadingAlreadyInState = apiRef.current.caches.rows.loadingPropBeforePartialUpdates === props.loading;
435
431
  const isNewRowCountAlreadyInState = apiRef.current.caches.rows.rowCountPropBeforePartialUpdates === props.rowCount;
436
432
 
@@ -460,15 +456,15 @@ export const useGridRows = (apiRef, props) => {
460
456
  return;
461
457
  }
462
458
  }
463
- logger.debug(`Updating all rows, new length ${props.rows?.length}`);
459
+ logger.debug(`Updating all rows, new length ${currentRows?.length}`);
464
460
  throttledRowsChange({
465
461
  cache: createRowsInternalCache({
466
- rows: props.rows,
462
+ rows: currentRows,
467
463
  getRowId: props.getRowId,
468
464
  loading: props.loading,
469
465
  rowCount: props.rowCount
470
466
  }),
471
467
  throttle: false
472
468
  });
473
- }, [props.rows, props.rowCount, props.getRowId, props.loading, logger, throttledRowsChange, apiRef]);
469
+ }, [props.rows, props.rowCount, props.getRowId, props.loading, props.unstable_dataSource, logger, throttledRowsChange, apiRef]);
474
470
  };
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  import { GridStateInitializer } from '../../utils/useGridInitializeState';
@@ -7,4 +7,4 @@ export declare const rowsMetaStateInitializer: GridStateInitializer;
7
7
  * @requires useGridPageSize (method)
8
8
  * @requires useGridPage (method)
9
9
  */
10
- export declare const useGridRowsMeta: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "getRowHeight" | "getEstimatedRowHeight" | "getRowSpacing" | "pagination" | "paginationMode" | "rowHeight" | "rowPositionsDebounceMs">) => void;
10
+ export declare const useGridRowsMeta: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "getRowHeight" | "getEstimatedRowHeight" | "getRowSpacing" | "pagination" | "paginationMode" | "rowHeight">) => void;
@@ -1,6 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import useLazyRef from '@mui/utils/useLazyRef';
4
+ import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
4
5
  import { ResizeObserver } from "../../../utils/ResizeObserver.js";
5
6
  import { useGridVisibleRows } from "../../utils/useGridVisibleRows.js";
6
7
  import { eslintUseValue } from "../../../utils/utils.js";
@@ -110,7 +111,7 @@ export const useGridRowsMeta = (apiRef, props) => {
110
111
  }
111
112
  apiRef.current.unstable_applyPipeProcessors('rowHeight', entry, row);
112
113
  return entry;
113
- }, [apiRef, currentPage.rows.length, getRowHeightProp, getEstimatedRowHeight, rowHeight, getRowSpacing, densityFactor]);
114
+ }, [apiRef, currentPage.rows, getRowHeightProp, getEstimatedRowHeight, rowHeight, getRowSpacing, densityFactor]);
114
115
  const hydrateRowsMeta = React.useCallback(() => {
115
116
  hasRowWithAutoHeight.current = false;
116
117
  pinnedRows.top.forEach(processHeightEntry);
@@ -181,7 +182,7 @@ export const useGridRowsMeta = (apiRef, props) => {
181
182
 
182
183
  // The effect is used to build the rows meta data - currentPageTotalHeight and positions.
183
184
  // Because of variable row height this is needed for the virtualization
184
- React.useEffect(() => {
185
+ useEnhancedEffect(() => {
185
186
  hydrateRowsMeta();
186
187
  }, [filterModel, paginationState, sortModel, hydrateRowsMeta]);
187
188
  const rowsMetaApi = {
@@ -1,3 +1,3 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
- export declare const useGridRowsPreProcessors: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>) => void;
3
+ export declare const useGridRowsPreProcessors: (apiRef: RefObject<GridPrivateApiCommunity>) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  /**
@@ -9,4 +9,4 @@ import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
9
9
  * @requires useGridFilter (state)
10
10
  * @requires useGridColumnSpanning (method)
11
11
  */
12
- export declare const useGridScroll: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "pagination" | "unstable_listView">) => void;
12
+ export declare const useGridScroll: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "pagination" | "unstable_listView">) => void;
@@ -1,21 +1,21 @@
1
1
  import { GridSortDirection, GridSortModel } from '../../../models/gridSortModel';
2
2
  import type { GridStateCommunity } from '../../../models/gridStateCommunity';
3
- import type { GridValidRowModel, GridRowEntry } from '../../../models/gridRows';
3
+ import type { GridValidRowModel, GridRowEntry, GridRowId } from '../../../models/gridRows';
4
4
  /**
5
5
  * Get the id of the rows after the sorting process.
6
6
  * @category Sorting
7
7
  */
8
- export declare const gridSortedRowIdsSelector: import("../../..").OutputSelector<GridStateCommunity, import("../../..").GridRowId[]>;
8
+ export declare const gridSortedRowIdsSelector: import("../../..").OutputSelector<GridStateCommunity, import("./gridSortingState").GridSortingState, GridRowId[]>;
9
9
  /**
10
10
  * Get the id and the model of the rows after the sorting process.
11
11
  * @category Sorting
12
12
  */
13
- export declare const gridSortedRowEntriesSelector: import("../../..").OutputSelector<GridStateCommunity, GridRowEntry<GridValidRowModel>[]>;
13
+ export declare const gridSortedRowEntriesSelector: import("../../..").OutputSelector<GridStateCommunity, import("../../..").GridRowTreeConfig, GridRowEntry<GridValidRowModel>[]>;
14
14
  /**
15
15
  * Get the current sorting model.
16
16
  * @category Sorting
17
17
  */
18
- export declare const gridSortModelSelector: import("../../..").OutputSelector<GridStateCommunity, GridSortModel>;
18
+ export declare const gridSortModelSelector: import("../../..").OutputSelector<GridStateCommunity, import("./gridSortingState").GridSortingState, GridSortModel>;
19
19
  export type GridSortColumnLookup = Record<string, {
20
20
  sortDirection: GridSortDirection;
21
21
  sortIndex?: number;
@@ -24,4 +24,9 @@ export type GridSortColumnLookup = Record<string, {
24
24
  * @category Sorting
25
25
  * @ignore - do not document.
26
26
  */
27
- export declare const gridSortColumnLookupSelector: import("../../..").OutputSelector<GridStateCommunity, GridSortColumnLookup>;
27
+ export declare const gridSortColumnLookupSelector: import("../../..").OutputSelector<GridStateCommunity, GridSortModel, GridSortColumnLookup>;
28
+ /**
29
+ * @category Sorting
30
+ * @ignore - do not document.
31
+ */
32
+ export declare const gridSortedRowIndexLookupSelector: import("../../..").OutputSelector<GridStateCommunity, GridRowId[], Record<GridRowId, number>>;
@@ -55,4 +55,15 @@ export const gridSortColumnLookupSelector = createSelectorMemoized(gridSortModel
55
55
  return res;
56
56
  }, {});
57
57
  return result;
58
+ });
59
+
60
+ /**
61
+ * @category Sorting
62
+ * @ignore - do not document.
63
+ */
64
+ export const gridSortedRowIndexLookupSelector = createSelectorMemoized(gridSortedRowIdsSelector, sortedIds => {
65
+ return sortedIds.reduce((acc, id, index) => {
66
+ acc[id] = index;
67
+ return acc;
68
+ }, Object.create(null));
58
69
  });
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridSortingModelApplier } from './gridSortingState';
3
3
  import { GridApiCommunity } from '../../../models/api/gridApiCommunity';
4
4
  import { GridStateCommunity } from '../../../models/gridStateCommunity';
@@ -8,10 +8,10 @@ export declare const mergeStateWithSortModel: (sortModel: GridSortModel, disable
8
8
  /**
9
9
  * Generates a method to easily sort a list of rows according to the current sort model.
10
10
  * @param {GridSortModel} sortModel The model with which we want to sort the rows.
11
- * @param {React.MutableRefObject<GridApiCommunity>} apiRef The API of the grid.
11
+ * @param {RefObject<GridApiCommunity>} apiRef The API of the grid.
12
12
  * @returns {GridSortingModelApplier | null} A method that generates a list of sorted row ids from a list of rows according to the current sort model. If `null`, we consider that the rows should remain in the order there were provided.
13
13
  */
14
- export declare const buildAggregatedSortingApplier: (sortModel: GridSortModel, apiRef: React.MutableRefObject<GridApiCommunity>) => GridSortingModelApplier | null;
14
+ export declare const buildAggregatedSortingApplier: (sortModel: GridSortModel, apiRef: RefObject<GridApiCommunity>) => GridSortingModelApplier | null;
15
15
  export declare const getNextGridSortDirection: (sortingOrder: readonly GridSortDirection[], current?: GridSortDirection) => GridSortDirection;
16
16
  export declare const gridStringOrNumberComparator: GridComparatorFn;
17
17
  export declare const gridNumberComparator: GridComparatorFn;
@@ -19,7 +19,7 @@ const isDesc = direction => direction === 'desc';
19
19
  /**
20
20
  * Transform an item of the sorting model into a method comparing two rows.
21
21
  * @param {GridSortItem} sortItem The sort item we want to apply.
22
- * @param {React.MutableRefObject<GridApiCommunity>} apiRef The API of the grid.
22
+ * @param {RefObject<GridApiCommunity>} apiRef The API of the grid.
23
23
  * @returns {GridParsedSortItem | null} The parsed sort item. Returns `null` is the sort item is not valid.
24
24
  */
25
25
  const parseSortItem = (sortItem, apiRef) => {
@@ -72,7 +72,7 @@ const compareRows = (parsedSortItems, row1, row2) => {
72
72
  /**
73
73
  * Generates a method to easily sort a list of rows according to the current sort model.
74
74
  * @param {GridSortModel} sortModel The model with which we want to sort the rows.
75
- * @param {React.MutableRefObject<GridApiCommunity>} apiRef The API of the grid.
75
+ * @param {RefObject<GridApiCommunity>} apiRef The API of the grid.
76
76
  * @returns {GridSortingModelApplier | null} A method that generates a list of sorted row ids from a list of rows according to the current sort model. If `null`, we consider that the rows should remain in the order there were provided.
77
77
  */
78
78
  export const buildAggregatedSortingApplier = (sortModel, apiRef) => {
@@ -1,3 +1,4 @@
1
- export * from './gridSortingSelector';
1
+ export { gridSortedRowIdsSelector, gridSortedRowEntriesSelector, gridSortModelSelector, gridSortColumnLookupSelector, } from './gridSortingSelector';
2
+ export type { GridSortColumnLookup } from './gridSortingSelector';
2
3
  export type { GridSortingState, GridSortingInitialState } from './gridSortingState';
3
4
  export { gridDateComparator, gridNumberComparator, gridStringOrNumberComparator, } from './gridSortingUtils';
@@ -1,2 +1,2 @@
1
- export * from "./gridSortingSelector.js";
1
+ export { gridSortedRowIdsSelector, gridSortedRowEntriesSelector, gridSortModelSelector, gridSortColumnLookupSelector } from "./gridSortingSelector.js";
2
2
  export { gridDateComparator, gridNumberComparator, gridStringOrNumberComparator } from "./gridSortingUtils.js";
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
3
3
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
4
4
  import { GridStateInitializer } from '../../utils/useGridInitializeState';
@@ -7,4 +7,4 @@ export declare const sortingStateInitializer: GridStateInitializer<Pick<DataGrid
7
7
  * @requires useGridRows (event)
8
8
  * @requires useGridColumns (event)
9
9
  */
10
- export declare const useGridSorting: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "initialState" | "sortModel" | "onSortModelChange" | "sortingOrder" | "sortingMode" | "disableColumnSorting" | "disableMultipleColumnsSorting">) => void;
10
+ export declare const useGridSorting: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "initialState" | "sortModel" | "onSortModelChange" | "sortingOrder" | "sortingMode" | "disableColumnSorting" | "disableMultipleColumnsSorting">) => void;
@@ -88,7 +88,7 @@ export const useGridSorting = (apiRef, props) => {
88
88
  })
89
89
  });
90
90
  }
91
- const sortModel = gridSortModelSelector(state, apiRef.current.instanceId);
91
+ const sortModel = gridSortModelSelector(state, undefined, apiRef.current.instanceId);
92
92
  const sortRowList = buildAggregatedSortingApplier(sortModel, apiRef);
93
93
  const sortedRows = apiRef.current.applyStrategyProcessor('sorting', {
94
94
  sortRowList
@@ -1,3 +1,3 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
- export declare const useGridStatePersistence: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>) => void;
3
+ export declare const useGridStatePersistence: (apiRef: RefObject<GridPrivateApiCommunity>) => void;
@@ -0,0 +1,6 @@
1
+ export declare const gridFocusedVirtualCellSelector: import("../../..").OutputSelector<import("../../../models/gridStateCommunity").GridStateCommunity, import("../../..").GridCellCoordinates | null, {
2
+ rowIndex: number;
3
+ columnIndex: number;
4
+ id?: import("../../..").GridRowId | undefined;
5
+ field?: string | undefined;
6
+ } | null>;