@mui/x-data-grid 8.0.0-alpha.1 → 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 +1903 -231
  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 +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 +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 +49 -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 +1 -1
  66. package/components/columnsManagement/GridColumnsManagement.js +50 -27
  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 +12 -12
  135. package/constants/gridClasses.js +1 -1
  136. package/constants/localeTextConstants.js +1 -1
  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 +33 -68
  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 +6 -4
  293. package/internals/index.js +4 -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 +2 -1
  301. package/locales/beBY.js +1 -1
  302. package/locales/bgBG.js +2 -1
  303. package/locales/csCZ.js +2 -1
  304. package/locales/daDK.js +2 -1
  305. package/locales/deDE.js +12 -13
  306. package/locales/elGR.js +2 -1
  307. package/locales/esES.js +12 -13
  308. package/locales/faIR.js +7 -7
  309. package/locales/fiFI.js +2 -1
  310. package/locales/frFR.js +2 -1
  311. package/locales/heIL.js +16 -17
  312. package/locales/hrHR.js +2 -1
  313. package/locales/huHU.js +2 -1
  314. package/locales/isIS.js +2 -1
  315. package/locales/itIT.js +2 -1
  316. package/locales/jaJP.js +2 -1
  317. package/locales/koKR.js +46 -49
  318. package/locales/nbNO.js +2 -1
  319. package/locales/nlNL.js +7 -7
  320. package/locales/nnNO.js +2 -1
  321. package/locales/plPL.js +2 -1
  322. package/locales/ptBR.js +12 -13
  323. package/locales/ptPT.js +12 -13
  324. package/locales/roRO.js +20 -21
  325. package/locales/ruRU.js +2 -1
  326. package/locales/skSK.js +2 -1
  327. package/locales/svSE.js +2 -1
  328. package/locales/trTR.js +14 -15
  329. package/locales/ukUA.js +2 -1
  330. package/locales/urPK.js +11 -11
  331. package/locales/viVN.js +2 -1
  332. package/locales/zhCN.js +12 -13
  333. package/locales/zhHK.js +2 -1
  334. package/locales/zhTW.js +2 -1
  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 +1 -1
  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 +34 -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 +1 -1
  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 +10 -8
  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 +49 -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 +50 -27
  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 +1 -1
  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 +33 -68
  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 +4 -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 +2 -1
  495. package/modern/locales/beBY.js +1 -1
  496. package/modern/locales/bgBG.js +2 -1
  497. package/modern/locales/csCZ.js +2 -1
  498. package/modern/locales/daDK.js +2 -1
  499. package/modern/locales/deDE.js +12 -13
  500. package/modern/locales/elGR.js +2 -1
  501. package/modern/locales/esES.js +12 -13
  502. package/modern/locales/faIR.js +7 -7
  503. package/modern/locales/fiFI.js +2 -1
  504. package/modern/locales/frFR.js +2 -1
  505. package/modern/locales/heIL.js +16 -17
  506. package/modern/locales/hrHR.js +2 -1
  507. package/modern/locales/huHU.js +2 -1
  508. package/modern/locales/isIS.js +2 -1
  509. package/modern/locales/itIT.js +2 -1
  510. package/modern/locales/jaJP.js +2 -1
  511. package/modern/locales/koKR.js +46 -49
  512. package/modern/locales/nbNO.js +2 -1
  513. package/modern/locales/nlNL.js +7 -7
  514. package/modern/locales/nnNO.js +2 -1
  515. package/modern/locales/plPL.js +2 -1
  516. package/modern/locales/ptBR.js +12 -13
  517. package/modern/locales/ptPT.js +12 -13
  518. package/modern/locales/roRO.js +20 -21
  519. package/modern/locales/ruRU.js +2 -1
  520. package/modern/locales/skSK.js +2 -1
  521. package/modern/locales/svSE.js +2 -1
  522. package/modern/locales/trTR.js +14 -15
  523. package/modern/locales/ukUA.js +2 -1
  524. package/modern/locales/urPK.js +11 -11
  525. package/modern/locales/viVN.js +2 -1
  526. package/modern/locales/zhCN.js +12 -13
  527. package/modern/locales/zhHK.js +2 -1
  528. package/modern/locales/zhTW.js +2 -1
  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 +10 -8
  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 +48 -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 +50 -27
  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 +1 -1
  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 +31 -66
  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 +27 -22
  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 +2 -1
  678. package/node/locales/beBY.js +1 -1
  679. package/node/locales/bgBG.js +2 -1
  680. package/node/locales/csCZ.js +2 -1
  681. package/node/locales/daDK.js +2 -1
  682. package/node/locales/deDE.js +12 -13
  683. package/node/locales/elGR.js +2 -1
  684. package/node/locales/esES.js +12 -13
  685. package/node/locales/faIR.js +7 -7
  686. package/node/locales/fiFI.js +2 -1
  687. package/node/locales/frFR.js +2 -1
  688. package/node/locales/heIL.js +16 -17
  689. package/node/locales/hrHR.js +2 -1
  690. package/node/locales/huHU.js +2 -1
  691. package/node/locales/isIS.js +2 -1
  692. package/node/locales/itIT.js +2 -1
  693. package/node/locales/jaJP.js +2 -1
  694. package/node/locales/koKR.js +46 -49
  695. package/node/locales/nbNO.js +2 -1
  696. package/node/locales/nlNL.js +7 -7
  697. package/node/locales/nnNO.js +2 -1
  698. package/node/locales/plPL.js +2 -1
  699. package/node/locales/ptBR.js +12 -13
  700. package/node/locales/ptPT.js +12 -13
  701. package/node/locales/roRO.js +20 -21
  702. package/node/locales/ruRU.js +2 -1
  703. package/node/locales/skSK.js +2 -1
  704. package/node/locales/svSE.js +2 -1
  705. package/node/locales/trTR.js +14 -15
  706. package/node/locales/ukUA.js +2 -1
  707. package/node/locales/urPK.js +11 -11
  708. package/node/locales/viVN.js +2 -1
  709. package/node/locales/zhCN.js +12 -13
  710. package/node/locales/zhHK.js +2 -1
  711. package/node/locales/zhTW.js +2 -1
  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 +3 -3
  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 -389
  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 -389
  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 -397
  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
@@ -13,9 +13,12 @@ var _constants = require("../../../internals/constants");
13
13
  var _gridColumnsSelector = require("../columns/gridColumnsSelector");
14
14
  var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
15
15
  var _gridVirtualizationSelectors = require("../virtualization/gridVirtualizationSelectors");
16
- var _useGridSelector = require("../../utils/useGridSelector");
17
16
  var _gridRowSpanningUtils = require("./gridRowSpanningUtils");
18
17
  var _gridCheckboxSelectionColDef = require("../../../colDef/gridCheckboxSelectionColDef");
18
+ var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
19
+ var _utils = require("../../../utils/utils");
20
+ var _pagination = require("../pagination");
21
+ var _gridRowsSelector = require("./gridRowsSelector");
19
22
  const EMPTY_STATE = {
20
23
  spannedCells: {},
21
24
  hiddenCells: {},
@@ -43,7 +46,7 @@ const computeRowSpanningState = (apiRef, colDefs, visibleRows, range, rangeToPro
43
46
  if (skippedFields.has(colDef.field)) {
44
47
  return;
45
48
  }
46
- for (let index = rangeToProcess.firstRowIndex; index <= rangeToProcess.lastRowIndex; index += 1) {
49
+ for (let index = rangeToProcess.firstRowIndex; index < rangeToProcess.lastRowIndex; index += 1) {
47
50
  const row = visibleRows[index];
48
51
  if (hiddenCells[row.id]?.[colDef.field]) {
49
52
  continue;
@@ -60,8 +63,8 @@ const computeRowSpanningState = (apiRef, colDefs, visibleRows, range, rangeToPro
60
63
  const backwardsHiddenCells = [];
61
64
  if (index === rangeToProcess.firstRowIndex) {
62
65
  let prevIndex = index - 1;
63
- const prevRowEntry = visibleRows[prevIndex];
64
- while (prevIndex >= range.firstRowIndex && (0, _gridRowSpanningUtils.getCellValue)(prevRowEntry.model, colDef, apiRef) === cellValue) {
66
+ let prevRowEntry = visibleRows[prevIndex];
67
+ while (prevIndex >= range.firstRowIndex && prevRowEntry && (0, _gridRowSpanningUtils.getCellValue)(prevRowEntry.model, colDef, apiRef) === cellValue) {
65
68
  const currentRow = visibleRows[prevIndex + 1];
66
69
  if (hiddenCells[currentRow.id]) {
67
70
  hiddenCells[currentRow.id][colDef.field] = true;
@@ -75,6 +78,7 @@ const computeRowSpanningState = (apiRef, colDefs, visibleRows, range, rangeToPro
75
78
  spannedRowId = prevRowEntry.id;
76
79
  spannedRowIndex = prevIndex;
77
80
  prevIndex -= 1;
81
+ prevRowEntry = visibleRows[prevIndex];
78
82
  }
79
83
  }
80
84
  backwardsHiddenCells.forEach(hiddenCellIndex => {
@@ -130,6 +134,24 @@ const computeRowSpanningState = (apiRef, colDefs, visibleRows, range, rangeToPro
130
134
  processedRange
131
135
  };
132
136
  };
137
+ const getInitialRangeToProcess = (props, apiRef) => {
138
+ const rowCount = (0, _gridRowsSelector.gridDataRowIdsSelector)(apiRef).length;
139
+ if (props.pagination) {
140
+ const pageSize = (0, _pagination.gridPageSizeSelector)(apiRef);
141
+ let paginationLastRowIndex = DEFAULT_ROWS_TO_PROCESS;
142
+ if (pageSize > 0) {
143
+ paginationLastRowIndex = pageSize - 1;
144
+ }
145
+ return {
146
+ firstRowIndex: 0,
147
+ lastRowIndex: Math.min(paginationLastRowIndex, rowCount)
148
+ };
149
+ }
150
+ return {
151
+ firstRowIndex: 0,
152
+ lastRowIndex: Math.min(DEFAULT_ROWS_TO_PROCESS, rowCount)
153
+ };
154
+ };
133
155
 
134
156
  /**
135
157
  * @requires columnsStateInitializer (method) - should be initialized before
@@ -137,74 +159,53 @@ const computeRowSpanningState = (apiRef, colDefs, visibleRows, range, rangeToPro
137
159
  * @requires filterStateInitializer (method) - should be initialized before
138
160
  */
139
161
  const rowSpanningStateInitializer = (state, props, apiRef) => {
140
- if (props.unstable_rowSpanning) {
141
- const rowIds = state.rows.dataRowIds || [];
142
- const orderedFields = state.columns.orderedFields || [];
143
- const dataRowIdToModelLookup = state.rows.dataRowIdToModelLookup;
144
- const columnsLookup = state.columns.lookup;
145
- const isFilteringPending = Boolean(state.filter.filterModel.items.length) || Boolean(state.filter.filterModel.quickFilterValues?.length);
146
- if (!rowIds.length || !orderedFields.length || !dataRowIdToModelLookup || !columnsLookup || isFilteringPending) {
147
- return (0, _extends2.default)({}, state, {
148
- rowSpanning: EMPTY_STATE
149
- });
150
- }
151
- const rangeToProcess = {
152
- firstRowIndex: 0,
153
- lastRowIndex: Math.min(DEFAULT_ROWS_TO_PROCESS - 1, Math.max(rowIds.length - 1, 0))
154
- };
155
- const rows = rowIds.map(id => ({
156
- id,
157
- model: dataRowIdToModelLookup[id]
158
- }));
159
- const colDefs = orderedFields.map(field => columnsLookup[field]);
160
- const {
161
- spannedCells,
162
- hiddenCells,
163
- hiddenCellOriginMap
164
- } = computeRowSpanningState(apiRef, colDefs, rows, rangeToProcess, rangeToProcess, true, EMPTY_RANGE);
162
+ if (!props.rowSpanning) {
165
163
  return (0, _extends2.default)({}, state, {
166
- rowSpanning: {
167
- spannedCells,
168
- hiddenCells,
169
- hiddenCellOriginMap
170
- }
164
+ rowSpanning: EMPTY_STATE
171
165
  });
172
166
  }
167
+ const rowIds = state.rows.dataRowIds || [];
168
+ const orderedFields = state.columns.orderedFields || [];
169
+ const dataRowIdToModelLookup = state.rows.dataRowIdToModelLookup;
170
+ const columnsLookup = state.columns.lookup;
171
+ const isFilteringPending = Boolean(state.filter.filterModel.items.length) || Boolean(state.filter.filterModel.quickFilterValues?.length);
172
+ if (!rowIds.length || !orderedFields.length || !dataRowIdToModelLookup || !columnsLookup || isFilteringPending) {
173
+ return (0, _extends2.default)({}, state, {
174
+ rowSpanning: EMPTY_STATE
175
+ });
176
+ }
177
+ const rangeToProcess = getInitialRangeToProcess(props, apiRef);
178
+ const rows = rowIds.map(id => ({
179
+ id,
180
+ model: dataRowIdToModelLookup[id]
181
+ }));
182
+ const colDefs = orderedFields.map(field => columnsLookup[field]);
183
+ const {
184
+ spannedCells,
185
+ hiddenCells,
186
+ hiddenCellOriginMap
187
+ } = computeRowSpanningState(apiRef, colDefs, rows, rangeToProcess, rangeToProcess, true, EMPTY_RANGE);
173
188
  return (0, _extends2.default)({}, state, {
174
- rowSpanning: EMPTY_STATE
189
+ rowSpanning: {
190
+ spannedCells,
191
+ hiddenCells,
192
+ hiddenCellOriginMap
193
+ }
175
194
  });
176
195
  };
177
196
  exports.rowSpanningStateInitializer = rowSpanningStateInitializer;
178
197
  const useGridRowSpanning = (apiRef, props) => {
179
- const {
180
- range,
181
- rows: visibleRows
182
- } = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, props);
183
- const renderContext = (0, _useGridSelector.useGridSelector)(apiRef, _gridVirtualizationSelectors.gridRenderContextSelector);
184
- const colDefs = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector);
185
198
  const processedRange = (0, _useLazyRef.default)(() => {
186
- return Object.keys(apiRef.current.state.rowSpanning.spannedCells).length > 0 ? {
187
- firstRowIndex: 0,
188
- lastRowIndex: Math.min(DEFAULT_ROWS_TO_PROCESS - 1, Math.max(apiRef.current.state.rows.dataRowIds.length - 1, 0))
189
- } : EMPTY_RANGE;
199
+ return apiRef.current.state.rowSpanning !== EMPTY_STATE ? getInitialRangeToProcess(props, apiRef) : EMPTY_RANGE;
190
200
  });
191
- const lastRange = React.useRef(EMPTY_RANGE);
192
- const updateRowSpanningState = React.useCallback(
193
- // A reset needs to occur when:
194
- // - The `unstable_rowSpanning` prop is updated (feature flag)
195
- // - The filtering is applied
196
- // - The sorting is applied
197
- // - The `paginationModel` is updated
198
- // - The rows are updated
199
- (resetState = true) => {
200
- if (!props.unstable_rowSpanning) {
201
- if (apiRef.current.state.rowSpanning !== EMPTY_STATE) {
202
- apiRef.current.setState(state => (0, _extends2.default)({}, state, {
203
- rowSpanning: EMPTY_STATE
204
- }));
205
- }
206
- return;
207
- }
201
+ const updateRowSpanningState = React.useCallback((renderContext, resetState = false) => {
202
+ const {
203
+ range,
204
+ rows: visibleRows
205
+ } = (0, _useGridVisibleRows.getVisibleRows)(apiRef, {
206
+ pagination: props.pagination,
207
+ paginationMode: props.paginationMode
208
+ });
208
209
  if (range === null || !(0, _gridRowSpanningUtils.isRowContextInitialized)(renderContext)) {
209
210
  return;
210
211
  }
@@ -213,11 +214,12 @@ const useGridRowSpanning = (apiRef, props) => {
213
214
  }
214
215
  const rangeToProcess = (0, _gridRowSpanningUtils.getUnprocessedRange)({
215
216
  firstRowIndex: renderContext.firstRowIndex,
216
- lastRowIndex: Math.min(renderContext.lastRowIndex - 1, range.lastRowIndex)
217
+ lastRowIndex: Math.min(renderContext.lastRowIndex, range.lastRowIndex + 1)
217
218
  }, processedRange.current);
218
219
  if (rangeToProcess === null) {
219
220
  return;
220
221
  }
222
+ const colDefs = (0, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector)(apiRef);
221
223
  const {
222
224
  spannedCells,
223
225
  hiddenCells,
@@ -230,7 +232,8 @@ const useGridRowSpanning = (apiRef, props) => {
230
232
  const currentSpannedCellsCount = Object.keys(apiRef.current.state.rowSpanning.spannedCells).length;
231
233
  const currentHiddenCellsCount = Object.keys(apiRef.current.state.rowSpanning.hiddenCells).length;
232
234
  const shouldUpdateState = resetState || newSpannedCellsCount !== currentSpannedCellsCount || newHiddenCellsCount !== currentHiddenCellsCount;
233
- if (!shouldUpdateState) {
235
+ const hasNoSpannedCells = newSpannedCellsCount === 0 && currentSpannedCellsCount === 0;
236
+ if (!shouldUpdateState || hasNoSpannedCells) {
234
237
  return;
235
238
  }
236
239
  apiRef.current.setState(state => {
@@ -242,28 +245,36 @@ const useGridRowSpanning = (apiRef, props) => {
242
245
  }
243
246
  });
244
247
  });
245
- }, [apiRef, props.unstable_rowSpanning, range, renderContext, visibleRows, colDefs, processedRange]);
246
- const prevRenderContext = React.useRef(renderContext);
247
- const isFirstRender = React.useRef(true);
248
- const shouldResetState = React.useRef(false);
249
- React.useEffect(() => {
250
- const firstRender = isFirstRender.current;
251
- if (isFirstRender.current) {
252
- isFirstRender.current = false;
253
- }
254
- if (range && lastRange.current && (0, _gridRowSpanningUtils.isRowRangeUpdated)(range, lastRange.current)) {
255
- lastRange.current = range;
256
- shouldResetState.current = true;
248
+ }, [apiRef, processedRange, props.pagination, props.paginationMode]);
249
+
250
+ // Reset events trigger a full re-computation of the row spanning state:
251
+ // - The `unstable_rowSpanning` prop is updated (feature flag)
252
+ // - The filtering is applied
253
+ // - The sorting is applied
254
+ // - The `paginationModel` is updated
255
+ // - The rows are updated
256
+ const resetRowSpanningState = React.useCallback(() => {
257
+ const renderContext = (0, _gridVirtualizationSelectors.gridRenderContextSelector)(apiRef);
258
+ if (!(0, _gridRowSpanningUtils.isRowContextInitialized)(renderContext)) {
259
+ return;
257
260
  }
258
- if (!firstRender && prevRenderContext.current !== renderContext) {
259
- if ((0, _gridRowSpanningUtils.isRowRangeUpdated)(prevRenderContext.current, renderContext)) {
260
- updateRowSpanningState(shouldResetState.current);
261
- shouldResetState.current = false;
261
+ updateRowSpanningState(renderContext, true);
262
+ }, [apiRef, updateRowSpanningState]);
263
+ (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'renderedRowsIntervalChange', (0, _utils.runIf)(props.rowSpanning, updateRowSpanningState));
264
+ (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'sortedRowsSet', (0, _utils.runIf)(props.rowSpanning, resetRowSpanningState));
265
+ (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'paginationModelChange', (0, _utils.runIf)(props.rowSpanning, resetRowSpanningState));
266
+ (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'filteredRowsSet', (0, _utils.runIf)(props.rowSpanning, resetRowSpanningState));
267
+ (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnsChange', (0, _utils.runIf)(props.rowSpanning, resetRowSpanningState));
268
+ React.useEffect(() => {
269
+ if (!props.rowSpanning) {
270
+ if (apiRef.current.state.rowSpanning !== EMPTY_STATE) {
271
+ apiRef.current.setState(state => (0, _extends2.default)({}, state, {
272
+ rowSpanning: EMPTY_STATE
273
+ }));
262
274
  }
263
- prevRenderContext.current = renderContext;
264
- return;
275
+ } else if (apiRef.current.state.rowSpanning === EMPTY_STATE) {
276
+ resetRowSpanningState();
265
277
  }
266
- updateRowSpanningState();
267
- }, [updateRowSpanningState, renderContext, range, lastRange]);
278
+ }, [apiRef, resetRowSpanningState, props.rowSpanning]);
268
279
  };
269
280
  exports.useGridRowSpanning = useGridRowSpanning;
@@ -19,6 +19,7 @@ var _gridSortingSelector = require("../sorting/gridSortingSelector");
19
19
  var _gridFilterSelector = require("../filter/gridFilterSelector");
20
20
  var _gridRowsUtils = require("./gridRowsUtils");
21
21
  var _pipeProcessing = require("../../core/pipeProcessing");
22
+ var _strategyProcessing = require("../../core/strategyProcessing");
22
23
  const rowsStateInitializer = (state, props, apiRef) => {
23
24
  const isDataSourceAvailable = !!props.unstable_dataSource;
24
25
  apiRef.current.caches.rows = (0, _gridRowsUtils.createRowsInternalCache)({
@@ -48,7 +49,6 @@ const useGridRows = (apiRef, props) => {
48
49
  }
49
50
  }
50
51
  const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridRows');
51
- const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, props);
52
52
  const lastUpdateMs = React.useRef(Date.now());
53
53
  const lastRowCount = React.useRef(props.rowCount);
54
54
  const timeout = (0, _useTimeout.useTimeout)();
@@ -75,12 +75,6 @@ const useGridRows = (apiRef, props) => {
75
75
  }
76
76
  return row.id;
77
77
  }, [getRowIdProp]);
78
- const lookup = React.useMemo(() => currentPage.rows.reduce((acc, {
79
- id
80
- }, index) => {
81
- acc[id] = index;
82
- return acc;
83
- }, {}), [currentPage.rows]);
84
78
  const throttledRowsChange = React.useCallback(({
85
79
  cache,
86
80
  throttle
@@ -179,7 +173,12 @@ const useGridRows = (apiRef, props) => {
179
173
  }, [apiRef]);
180
174
  const getRowsCount = React.useCallback(() => (0, _gridRowsSelector.gridRowCountSelector)(apiRef), [apiRef]);
181
175
  const getAllRowIds = React.useCallback(() => (0, _gridRowsSelector.gridDataRowIdsSelector)(apiRef), [apiRef]);
182
- const getRowIndexRelativeToVisibleRows = React.useCallback(id => lookup[id], [lookup]);
176
+ const getRowIndexRelativeToVisibleRows = React.useCallback(id => {
177
+ const {
178
+ rowIdToIndexMap
179
+ } = (0, _useGridVisibleRows.getVisibleRows)(apiRef);
180
+ return rowIdToIndexMap.get(id);
181
+ }, [apiRef]);
183
182
  const setRowChildrenExpansion = React.useCallback((id, isExpanded) => {
184
183
  const currentNode = apiRef.current.getRowNode(id);
185
184
  if (!currentNode) {
@@ -247,7 +246,7 @@ const useGridRows = (apiRef, props) => {
247
246
  throw new Error(`MUI X: The row reordering do not support reordering of footer or grouping rows.`);
248
247
  }
249
248
  apiRef.current.setState(state => {
250
- const group = (0, _gridRowsSelector.gridRowTreeSelector)(state, apiRef.current.instanceId)[_gridRowsUtils.GRID_ROOT_GROUP_ID];
249
+ const group = (0, _gridRowsSelector.gridRowTreeSelector)(state, undefined, apiRef.current.instanceId)[_gridRowsUtils.GRID_ROOT_GROUP_ID];
251
250
  const allRows = group.children;
252
251
  const oldIndex = allRows.findIndex(row => row === rowId);
253
252
  if (oldIndex === -1 || oldIndex === targetIndex) {
@@ -281,7 +280,6 @@ const useGridRows = (apiRef, props) => {
281
280
  }
282
281
  const tree = (0, _extends2.default)({}, (0, _gridRowsSelector.gridRowTreeSelector)(apiRef));
283
282
  const dataRowIdToModelLookup = (0, _extends2.default)({}, (0, _gridRowsSelector.gridRowsLookupSelector)(apiRef));
284
- const dataRowIdToIdLookup = (0, _extends2.default)({}, (0, _gridRowsSelector.gridRowsDataRowIdToIdLookupSelector)(apiRef));
285
283
  const rootGroup = tree[_gridRowsUtils.GRID_ROOT_GROUP_ID];
286
284
  const rootGroupChildren = [...rootGroup.children];
287
285
  const seenIds = new Set();
@@ -291,7 +289,6 @@ const useGridRows = (apiRef, props) => {
291
289
  const [removedRowId] = rootGroupChildren.splice(firstRowToRender + i, 1, rowId);
292
290
  if (!seenIds.has(removedRowId)) {
293
291
  delete dataRowIdToModelLookup[removedRowId];
294
- delete dataRowIdToIdLookup[removedRowId];
295
292
  delete tree[removedRowId];
296
293
  }
297
294
  const rowTreeNodeConfig = {
@@ -302,7 +299,6 @@ const useGridRows = (apiRef, props) => {
302
299
  groupingKey: null
303
300
  };
304
301
  dataRowIdToModelLookup[rowId] = rowModel;
305
- dataRowIdToIdLookup[rowId] = rowId;
306
302
  tree[rowId] = rowTreeNodeConfig;
307
303
  seenIds.add(rowId);
308
304
  }
@@ -313,17 +309,17 @@ const useGridRows = (apiRef, props) => {
313
309
  // Removes potential remaining skeleton rows from the dataRowIds.
314
310
  const dataRowIds = rootGroupChildren.filter(childId => tree[childId]?.type === 'leaf');
315
311
  apiRef.current.caches.rows.dataRowIdToModelLookup = dataRowIdToModelLookup;
316
- apiRef.current.caches.rows.dataRowIdToIdLookup = dataRowIdToIdLookup;
317
312
  apiRef.current.setState(state => (0, _extends2.default)({}, state, {
318
313
  rows: (0, _extends2.default)({}, state.rows, {
314
+ loading: props.loading,
315
+ totalRowCount: Math.max(props.rowCount || 0, rootGroupChildren.length),
319
316
  dataRowIdToModelLookup,
320
- dataRowIdToIdLookup,
321
317
  dataRowIds,
322
318
  tree
323
319
  })
324
320
  }));
325
321
  apiRef.current.publishEvent('rowsSet');
326
- }, [apiRef, props.signature, props.getRowId]);
322
+ }, [apiRef, props.signature, props.getRowId, props.loading, props.rowCount]);
327
323
  const rowApi = {
328
324
  getRow,
329
325
  setLoading,
@@ -390,7 +386,7 @@ const useGridRows = (apiRef, props) => {
390
386
  const handleStrategyActivityChange = React.useCallback(() => {
391
387
  // `rowTreeCreation` is the only processor ran when `strategyAvailabilityChange` is fired.
392
388
  // All the other processors listen to `rowsSet` which will be published by the `groupRows` method below.
393
- if (apiRef.current.getActiveStrategy('rowTree') !== (0, _gridRowsSelector.gridRowGroupingNameSelector)(apiRef)) {
389
+ if (apiRef.current.getActiveStrategy(_strategyProcessing.GridStrategyGroup.RowTree) !== (0, _gridRowsSelector.gridRowGroupingNameSelector)(apiRef)) {
394
390
  groupRows();
395
391
  }
396
392
  }, [apiRef, groupRows]);
@@ -403,11 +399,10 @@ const useGridRows = (apiRef, props) => {
403
399
  const applyHydrateRowsProcessor = React.useCallback(() => {
404
400
  apiRef.current.setState(state => {
405
401
  const response = apiRef.current.unstable_applyPipeProcessors('hydrateRows', {
406
- tree: (0, _gridRowsSelector.gridRowTreeSelector)(state, apiRef.current.instanceId),
407
- treeDepths: (0, _gridRowsSelector.gridRowTreeDepthsSelector)(state, apiRef.current.instanceId),
408
- dataRowIds: (0, _gridRowsSelector.gridDataRowIdsSelector)(state, apiRef.current.instanceId),
409
- dataRowIdToModelLookup: (0, _gridRowsSelector.gridRowsLookupSelector)(state, apiRef.current.instanceId),
410
- dataRowIdToIdLookup: (0, _gridRowsSelector.gridRowsDataRowIdToIdLookupSelector)(state, apiRef.current.instanceId)
402
+ tree: (0, _gridRowsSelector.gridRowTreeSelector)(state, undefined, apiRef.current.instanceId),
403
+ treeDepths: (0, _gridRowsSelector.gridRowTreeDepthsSelector)(state, undefined, apiRef.current.instanceId),
404
+ dataRowIds: (0, _gridRowsSelector.gridDataRowIdsSelector)(state, undefined, apiRef.current.instanceId),
405
+ dataRowIdToModelLookup: (0, _gridRowsSelector.gridRowsLookupSelector)(state, undefined, apiRef.current.instanceId)
411
406
  });
412
407
  return (0, _extends2.default)({}, state, {
413
408
  rows: (0, _extends2.default)({}, state.rows, response, {
@@ -439,7 +434,8 @@ const useGridRows = (apiRef, props) => {
439
434
  isRowCountPropUpdated = true;
440
435
  lastRowCount.current = props.rowCount;
441
436
  }
442
- const areNewRowsAlreadyInState = apiRef.current.caches.rows.rowsBeforePartialUpdates === props.rows;
437
+ const currentRows = props.unstable_dataSource ? Array.from(apiRef.current.getRowModels().values()) : props.rows;
438
+ const areNewRowsAlreadyInState = apiRef.current.caches.rows.rowsBeforePartialUpdates === currentRows;
443
439
  const isNewLoadingAlreadyInState = apiRef.current.caches.rows.loadingPropBeforePartialUpdates === props.loading;
444
440
  const isNewRowCountAlreadyInState = apiRef.current.caches.rows.rowCountPropBeforePartialUpdates === props.rowCount;
445
441
 
@@ -469,16 +465,16 @@ const useGridRows = (apiRef, props) => {
469
465
  return;
470
466
  }
471
467
  }
472
- logger.debug(`Updating all rows, new length ${props.rows?.length}`);
468
+ logger.debug(`Updating all rows, new length ${currentRows?.length}`);
473
469
  throttledRowsChange({
474
470
  cache: (0, _gridRowsUtils.createRowsInternalCache)({
475
- rows: props.rows,
471
+ rows: currentRows,
476
472
  getRowId: props.getRowId,
477
473
  loading: props.loading,
478
474
  rowCount: props.rowCount
479
475
  }),
480
476
  throttle: false
481
477
  });
482
- }, [props.rows, props.rowCount, props.getRowId, props.loading, logger, throttledRowsChange, apiRef]);
478
+ }, [props.rows, props.rowCount, props.getRowId, props.loading, props.unstable_dataSource, logger, throttledRowsChange, apiRef]);
483
479
  };
484
480
  exports.useGridRows = useGridRows;
@@ -9,9 +9,10 @@ exports.useGridRowsMeta = exports.rowsMetaStateInitializer = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _useLazyRef = _interopRequireDefault(require("@mui/utils/useLazyRef"));
12
+ var _utils = require("@mui/utils");
12
13
  var _ResizeObserver = require("../../../utils/ResizeObserver");
13
14
  var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
14
- var _utils = require("../../../utils/utils");
15
+ var _utils2 = require("../../../utils/utils");
15
16
  var _useGridApiMethod = require("../../utils/useGridApiMethod");
16
17
  var _useGridSelector = require("../../utils/useGridSelector");
17
18
  var _densitySelector = require("../density/densitySelector");
@@ -77,7 +78,7 @@ const useGridRowsMeta = (apiRef, props) => {
77
78
  // HACK: rowHeight trails behind the most up-to-date value just enough to
78
79
  // mess the initial rowsMeta hydration :/
79
80
  const baseRowHeight = (0, _gridDimensionsSelectors.gridDimensionsSelector)(apiRef.current.state).rowHeight;
80
- (0, _utils.eslintUseValue)(rowHeight);
81
+ (0, _utils2.eslintUseValue)(rowHeight);
81
82
  const entry = apiRef.current.getRowHeightEntry(row.id);
82
83
  if (!getRowHeightProp) {
83
84
  entry.content = baseRowHeight;
@@ -119,7 +120,7 @@ const useGridRowsMeta = (apiRef, props) => {
119
120
  }
120
121
  apiRef.current.unstable_applyPipeProcessors('rowHeight', entry, row);
121
122
  return entry;
122
- }, [apiRef, currentPage.rows.length, getRowHeightProp, getEstimatedRowHeight, rowHeight, getRowSpacing, densityFactor]);
123
+ }, [apiRef, currentPage.rows, getRowHeightProp, getEstimatedRowHeight, rowHeight, getRowSpacing, densityFactor]);
123
124
  const hydrateRowsMeta = React.useCallback(() => {
124
125
  hasRowWithAutoHeight.current = false;
125
126
  pinnedRows.top.forEach(processHeightEntry);
@@ -190,7 +191,7 @@ const useGridRowsMeta = (apiRef, props) => {
190
191
 
191
192
  // The effect is used to build the rows meta data - currentPageTotalHeight and positions.
192
193
  // Because of variable row height this is needed for the virtualization
193
- React.useEffect(() => {
194
+ (0, _utils.unstable_useEnhancedEffect)(() => {
194
195
  hydrateRowsMeta();
195
196
  }, [filterModel, paginationState, sortModel, hydrateRowsMeta]);
196
197
  const rowsMetaApi = {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.gridSortedRowIdsSelector = exports.gridSortedRowEntriesSelector = exports.gridSortModelSelector = exports.gridSortColumnLookupSelector = void 0;
6
+ exports.gridSortedRowIndexLookupSelector = exports.gridSortedRowIdsSelector = exports.gridSortedRowEntriesSelector = exports.gridSortModelSelector = exports.gridSortColumnLookupSelector = void 0;
7
7
  var _createSelector = require("../../../utils/createSelector");
8
8
  var _gridRowsSelector = require("../rows/gridRowsSelector");
9
9
  var _gridRowsUtils = require("../rows/gridRowsUtils");
@@ -61,4 +61,15 @@ const gridSortColumnLookupSelector = exports.gridSortColumnLookupSelector = (0,
61
61
  return res;
62
62
  }, {});
63
63
  return result;
64
+ });
65
+
66
+ /**
67
+ * @category Sorting
68
+ * @ignore - do not document.
69
+ */
70
+ const gridSortedRowIndexLookupSelector = exports.gridSortedRowIndexLookupSelector = (0, _createSelector.createSelectorMemoized)(gridSortedRowIdsSelector, sortedIds => {
71
+ return sortedIds.reduce((acc, id, index) => {
72
+ acc[id] = index;
73
+ return acc;
74
+ }, Object.create(null));
64
75
  });
@@ -28,7 +28,7 @@ const isDesc = direction => direction === 'desc';
28
28
  /**
29
29
  * Transform an item of the sorting model into a method comparing two rows.
30
30
  * @param {GridSortItem} sortItem The sort item we want to apply.
31
- * @param {React.MutableRefObject<GridApiCommunity>} apiRef The API of the grid.
31
+ * @param {RefObject<GridApiCommunity>} apiRef The API of the grid.
32
32
  * @returns {GridParsedSortItem | null} The parsed sort item. Returns `null` is the sort item is not valid.
33
33
  */
34
34
  const parseSortItem = (sortItem, apiRef) => {
@@ -81,7 +81,7 @@ const compareRows = (parsedSortItems, row1, row2) => {
81
81
  /**
82
82
  * Generates a method to easily sort a list of rows according to the current sort model.
83
83
  * @param {GridSortModel} sortModel The model with which we want to sort the rows.
84
- * @param {React.MutableRefObject<GridApiCommunity>} apiRef The API of the grid.
84
+ * @param {RefObject<GridApiCommunity>} apiRef The API of the grid.
85
85
  * @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.
86
86
  */
87
87
  const buildAggregatedSortingApplier = (sortModel, apiRef) => {
@@ -3,11 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- var _exportNames = {
7
- gridDateComparator: true,
8
- gridNumberComparator: true,
9
- gridStringOrNumberComparator: true
10
- };
11
6
  Object.defineProperty(exports, "gridDateComparator", {
12
7
  enumerable: true,
13
8
  get: function () {
@@ -20,6 +15,30 @@ Object.defineProperty(exports, "gridNumberComparator", {
20
15
  return _gridSortingUtils.gridNumberComparator;
21
16
  }
22
17
  });
18
+ Object.defineProperty(exports, "gridSortColumnLookupSelector", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _gridSortingSelector.gridSortColumnLookupSelector;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "gridSortModelSelector", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _gridSortingSelector.gridSortModelSelector;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "gridSortedRowEntriesSelector", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _gridSortingSelector.gridSortedRowEntriesSelector;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "gridSortedRowIdsSelector", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _gridSortingSelector.gridSortedRowIdsSelector;
40
+ }
41
+ });
23
42
  Object.defineProperty(exports, "gridStringOrNumberComparator", {
24
43
  enumerable: true,
25
44
  get: function () {
@@ -27,15 +46,4 @@ Object.defineProperty(exports, "gridStringOrNumberComparator", {
27
46
  }
28
47
  });
29
48
  var _gridSortingSelector = require("./gridSortingSelector");
30
- Object.keys(_gridSortingSelector).forEach(function (key) {
31
- if (key === "default" || key === "__esModule") return;
32
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
33
- if (key in exports && exports[key] === _gridSortingSelector[key]) return;
34
- Object.defineProperty(exports, key, {
35
- enumerable: true,
36
- get: function () {
37
- return _gridSortingSelector[key];
38
- }
39
- });
40
- });
41
49
  var _gridSortingUtils = require("./gridSortingUtils");
@@ -97,7 +97,7 @@ const useGridSorting = (apiRef, props) => {
97
97
  })
98
98
  });
99
99
  }
100
- const sortModel = (0, _gridSortingSelector.gridSortModelSelector)(state, apiRef.current.instanceId);
100
+ const sortModel = (0, _gridSortingSelector.gridSortModelSelector)(state, undefined, apiRef.current.instanceId);
101
101
  const sortRowList = (0, _gridSortingUtils.buildAggregatedSortingApplier)(sortModel, apiRef);
102
102
  const sortedRows = apiRef.current.applyStrategyProcessor('sorting', {
103
103
  sortRowList
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.gridFocusedVirtualCellSelector = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _reselect = require("reselect");
10
+ var _createSelector = require("../../../utils/createSelector");
11
+ var _gridColumnsSelector = require("../columns/gridColumnsSelector");
12
+ var _gridVirtualizationSelectors = require("./gridVirtualizationSelectors");
13
+ var _focus = require("../focus");
14
+ var _pagination = require("../pagination");
15
+ const gridIsFocusedCellOutOfContext = (0, _reselect.createSelector)(_focus.gridFocusCellSelector, _gridVirtualizationSelectors.gridRenderContextSelector, _pagination.gridVisibleRowsSelector, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector, (focusedCell, renderContext, currentPage, visibleColumns) => {
16
+ if (!focusedCell) {
17
+ return false;
18
+ }
19
+ const rowIndex = currentPage.rowIdToIndexMap.get(focusedCell.id);
20
+ const columnIndex = visibleColumns.slice(renderContext.firstColumnIndex, renderContext.lastColumnIndex).findIndex(column => column.field === focusedCell.field);
21
+ const isInRenderContext = rowIndex !== undefined && columnIndex !== -1 && rowIndex >= renderContext.firstRowIndex && rowIndex <= renderContext.lastRowIndex;
22
+ return !isInRenderContext;
23
+ });
24
+ const gridFocusedVirtualCellSelector = exports.gridFocusedVirtualCellSelector = (0, _createSelector.createSelectorMemoized)(gridIsFocusedCellOutOfContext, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector, _pagination.gridVisibleRowsSelector, _focus.gridFocusCellSelector, (isFocusedCellOutOfRenderContext, visibleColumns, currentPage, focusedCell) => {
25
+ if (!isFocusedCellOutOfRenderContext) {
26
+ return null;
27
+ }
28
+ const rowIndex = currentPage.rowIdToIndexMap.get(focusedCell.id);
29
+ if (rowIndex === undefined) {
30
+ return null;
31
+ }
32
+ const columnIndex = visibleColumns.findIndex(column => column.field === focusedCell.field);
33
+ if (columnIndex === -1) {
34
+ return null;
35
+ }
36
+ return (0, _extends2.default)({}, focusedCell, {
37
+ rowIndex,
38
+ columnIndex
39
+ });
40
+ });