@mui/x-data-grid 5.8.0 → 5.11.0

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 (626) hide show
  1. package/CHANGELOG.md +333 -66
  2. package/DataGrid/DataGrid.js +36 -2
  3. package/DataGrid/useDataGridComponent.js +3 -1
  4. package/DataGrid/useDataGridProps.js +2 -1
  5. package/LICENSE +21 -0
  6. package/README.md +7 -5
  7. package/colDef/gridActionsColDef.js +2 -1
  8. package/colDef/gridBooleanColDef.js +2 -1
  9. package/colDef/gridCheckboxSelectionColDef.js +1 -0
  10. package/colDef/gridDateColDef.js +4 -2
  11. package/colDef/gridNumericColDef.js +3 -2
  12. package/colDef/gridNumericOperators.d.ts +2 -0
  13. package/colDef/gridNumericOperators.js +11 -0
  14. package/colDef/gridSingleSelectColDef.js +3 -2
  15. package/colDef/gridSingleSelectOperators.d.ts +3 -0
  16. package/colDef/gridSingleSelectOperators.js +52 -0
  17. package/colDef/gridStringColDef.js +3 -2
  18. package/colDef/gridStringOperators.d.ts +2 -0
  19. package/colDef/gridStringOperators.js +12 -0
  20. package/components/GridFooter.d.ts +4 -2
  21. package/components/GridFooter.js +11 -2
  22. package/components/GridRow.d.ts +4 -0
  23. package/components/GridRow.js +58 -28
  24. package/components/GridRowCount.d.ts +4 -1
  25. package/components/GridRowCount.js +1 -0
  26. package/components/GridScrollArea.js +3 -4
  27. package/components/GridSelectedRowCount.d.ts +4 -1
  28. package/components/GridSelectedRowCount.js +2 -1
  29. package/components/base/GridBody.js +1 -2
  30. package/components/base/GridOverlays.js +5 -5
  31. package/components/cell/GridActionsCell.d.ts +5 -1
  32. package/components/cell/GridActionsCell.js +179 -21
  33. package/components/cell/GridActionsCellItem.d.ts +66 -4
  34. package/components/cell/GridActionsCellItem.js +7 -5
  35. package/components/cell/GridCell.d.ts +1 -0
  36. package/components/cell/GridCell.js +36 -15
  37. package/components/cell/GridEditBooleanCell.d.ts +15 -3
  38. package/components/cell/GridEditBooleanCell.js +101 -6
  39. package/components/cell/GridEditDateCell.d.ts +16 -4
  40. package/components/cell/GridEditDateCell.js +99 -5
  41. package/components/cell/GridEditInputCell.d.ts +11 -5
  42. package/components/cell/GridEditInputCell.js +30 -6
  43. package/components/cell/GridEditSingleSelectCell.d.ts +12 -4
  44. package/components/cell/GridEditSingleSelectCell.js +50 -18
  45. package/components/cell/index.d.ts +2 -0
  46. package/components/cell/index.js +2 -0
  47. package/components/columnHeaders/GridColumnHeaderItem.js +19 -23
  48. package/components/columnHeaders/GridColumnHeaders.d.ts +2 -1
  49. package/components/columnHeaders/GridColumnHeaders.js +1 -1
  50. package/components/columnHeaders/GridColumnHeadersInner.d.ts +2 -0
  51. package/components/columnSelection/GridCellCheckboxRenderer.d.ts +3 -3
  52. package/components/columnSelection/GridCellCheckboxRenderer.js +22 -6
  53. package/components/columnSelection/GridHeaderCheckbox.js +4 -5
  54. package/components/containers/GridFooterContainer.d.ts +8 -2
  55. package/components/containers/GridFooterContainer.js +11 -2
  56. package/components/containers/GridRootStyles.js +36 -1
  57. package/components/containers/GridToolbarContainer.d.ts +8 -2
  58. package/components/containers/GridToolbarContainer.js +12 -2
  59. package/components/menu/GridMenu.js +1 -0
  60. package/components/panel/GridPanel.js +1 -0
  61. package/components/panel/GridPanelContent.d.ts +8 -1
  62. package/components/panel/GridPanelContent.js +13 -2
  63. package/components/panel/GridPanelFooter.d.ts +8 -1
  64. package/components/panel/GridPanelFooter.js +13 -2
  65. package/components/panel/GridPanelHeader.d.ts +8 -1
  66. package/components/panel/GridPanelHeader.js +13 -2
  67. package/components/panel/filterPanel/GridFilterForm.js +14 -10
  68. package/components/panel/filterPanel/GridFilterInputBoolean.js +13 -8
  69. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +22 -15
  70. package/components/panel/filterPanel/GridFilterInputValue.js +22 -15
  71. package/components/toolbar/GridToolbar.d.ts +12 -2
  72. package/components/toolbar/GridToolbar.js +30 -7
  73. package/components/toolbar/GridToolbarDensitySelector.js +1 -1
  74. package/components/toolbar/GridToolbarExport.d.ts +5 -4
  75. package/components/toolbar/GridToolbarExport.js +15 -20
  76. package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
  77. package/components/toolbar/GridToolbarQuickFilter.d.ts +20 -0
  78. package/components/toolbar/GridToolbarQuickFilter.js +88 -0
  79. package/components/toolbar/index.d.ts +3 -1
  80. package/components/toolbar/index.js +3 -2
  81. package/components/virtualization/GridVirtualScroller.d.ts +4 -1
  82. package/components/virtualization/GridVirtualScroller.js +2 -0
  83. package/components/virtualization/GridVirtualScrollerContent.d.ts +4 -1
  84. package/components/virtualization/GridVirtualScrollerContent.js +1 -3
  85. package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +4 -1
  86. package/constants/defaultGridSlotsComponents.js +3 -2
  87. package/constants/gridClasses.d.ts +20 -0
  88. package/constants/gridClasses.js +1 -1
  89. package/constants/gridDetailPanelToggleField.d.ts +1 -0
  90. package/constants/gridDetailPanelToggleField.js +2 -0
  91. package/constants/localeTextConstants.js +8 -1
  92. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +39 -15
  93. package/hooks/core/pipeProcessing/index.d.ts +1 -0
  94. package/hooks/core/pipeProcessing/index.js +2 -1
  95. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +8 -3
  96. package/hooks/core/pipeProcessing/useGridPipeProcessing.js +53 -19
  97. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +3 -0
  98. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
  99. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +0 -3
  100. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -4
  101. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +4 -4
  102. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -7
  103. package/hooks/core/useGridApiInitialization.js +3 -3
  104. package/hooks/core/useGridErrorHandler.js +1 -2
  105. package/hooks/core/useGridStateInitialization.js +1 -2
  106. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +0 -1
  107. package/hooks/features/columnHeaders/useGridColumnHeaders.js +81 -16
  108. package/hooks/features/columnMenu/useGridColumnMenu.js +3 -3
  109. package/hooks/features/columns/gridColumnsInterfaces.d.ts +3 -1
  110. package/hooks/features/columns/gridColumnsUtils.d.ts +19 -1
  111. package/hooks/features/columns/gridColumnsUtils.js +61 -8
  112. package/hooks/features/columns/useGridColumnSpanning.d.ts +7 -0
  113. package/hooks/features/columns/useGridColumnSpanning.js +108 -0
  114. package/hooks/features/columns/useGridColumns.d.ts +1 -1
  115. package/hooks/features/columns/useGridColumns.js +30 -25
  116. package/hooks/features/dimensions/useGridDimensions.d.ts +1 -1
  117. package/hooks/features/dimensions/useGridDimensions.js +10 -11
  118. package/hooks/features/editRows/useGridCellEditing.new.d.ts +1 -1
  119. package/hooks/features/editRows/useGridCellEditing.new.js +151 -42
  120. package/hooks/features/editRows/useGridCellEditing.old.js +20 -21
  121. package/hooks/features/editRows/useGridEditing.new.js +7 -3
  122. package/hooks/features/editRows/useGridEditing.old.js +4 -5
  123. package/hooks/features/editRows/useGridRowEditing.new.d.ts +1 -1
  124. package/hooks/features/editRows/useGridRowEditing.new.js +145 -57
  125. package/hooks/features/editRows/useGridRowEditing.old.js +21 -22
  126. package/hooks/features/events/useGridEvents.js +17 -18
  127. package/hooks/features/export/serializers/csvSerializer.js +5 -5
  128. package/hooks/features/export/useGridCsvExport.js +23 -16
  129. package/hooks/features/export/useGridPrintExport.js +22 -0
  130. package/hooks/features/export/utils.d.ts +3 -1
  131. package/hooks/features/export/utils.js +13 -0
  132. package/hooks/features/filter/gridFilterState.d.ts +1 -2
  133. package/hooks/features/filter/gridFilterState.js +3 -1
  134. package/hooks/features/filter/gridFilterUtils.d.ts +8 -0
  135. package/hooks/features/filter/gridFilterUtils.js +84 -2
  136. package/hooks/features/filter/useGridFilter.js +32 -15
  137. package/hooks/features/focus/useGridFocus.d.ts +1 -1
  138. package/hooks/features/focus/useGridFocus.js +48 -42
  139. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -0
  140. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +43 -12
  141. package/hooks/features/pagination/useGridPage.js +3 -4
  142. package/hooks/features/pagination/useGridPageSize.js +2 -3
  143. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -6
  144. package/hooks/features/rows/gridRowsSelector.d.ts +2 -0
  145. package/hooks/features/rows/gridRowsSelector.js +2 -0
  146. package/hooks/features/rows/gridRowsState.d.ts +7 -7
  147. package/hooks/features/rows/gridRowsUtils.d.ts +2 -1
  148. package/hooks/features/rows/gridRowsUtils.js +25 -1
  149. package/hooks/features/rows/useGridRows.d.ts +2 -2
  150. package/hooks/features/rows/useGridRows.js +121 -61
  151. package/hooks/features/rows/useGridRowsMeta.js +6 -13
  152. package/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
  153. package/hooks/features/scroll/useGridScroll.d.ts +2 -0
  154. package/hooks/features/scroll/useGridScroll.js +31 -4
  155. package/hooks/features/selection/useGridSelection.d.ts +1 -1
  156. package/hooks/features/selection/useGridSelection.js +15 -11
  157. package/hooks/features/sorting/useGridSorting.js +17 -18
  158. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +9 -0
  159. package/hooks/features/virtualization/useGridVirtualScroller.js +68 -32
  160. package/hooks/utils/useGridApiEventHandler.d.ts +4 -1
  161. package/hooks/utils/useGridApiEventHandler.js +22 -9
  162. package/hooks/utils/useGridNativeEventListener.js +1 -2
  163. package/hooks/utils/useGridSelector.js +1 -1
  164. package/index.d.ts +2 -0
  165. package/index.js +1 -1
  166. package/internals/index.d.ts +5 -1
  167. package/internals/index.js +6 -2
  168. package/legacy/DataGrid/DataGrid.js +36 -2
  169. package/legacy/DataGrid/useDataGridComponent.js +3 -1
  170. package/legacy/DataGrid/useDataGridProps.js +2 -1
  171. package/legacy/colDef/gridActionsColDef.js +2 -1
  172. package/legacy/colDef/gridBooleanColDef.js +2 -1
  173. package/legacy/colDef/gridCheckboxSelectionColDef.js +1 -0
  174. package/legacy/colDef/gridDateColDef.js +4 -2
  175. package/legacy/colDef/gridNumericColDef.js +3 -2
  176. package/legacy/colDef/gridNumericOperators.js +28 -18
  177. package/legacy/colDef/gridSingleSelectColDef.js +3 -2
  178. package/legacy/colDef/gridSingleSelectOperators.js +55 -6
  179. package/legacy/colDef/gridStringColDef.js +3 -2
  180. package/legacy/colDef/gridStringOperators.js +25 -14
  181. package/legacy/components/GridFooter.js +11 -2
  182. package/legacy/components/GridRow.js +56 -28
  183. package/legacy/components/GridRowCount.js +1 -0
  184. package/legacy/components/GridScrollArea.js +3 -4
  185. package/legacy/components/GridSelectedRowCount.js +2 -1
  186. package/legacy/components/base/GridBody.js +1 -2
  187. package/legacy/components/base/GridOverlays.js +5 -5
  188. package/legacy/components/cell/GridActionsCell.js +197 -27
  189. package/legacy/components/cell/GridActionsCellItem.js +7 -5
  190. package/legacy/components/cell/GridCell.js +37 -15
  191. package/legacy/components/cell/GridEditBooleanCell.js +132 -11
  192. package/legacy/components/cell/GridEditDateCell.js +148 -42
  193. package/legacy/components/cell/GridEditInputCell.js +62 -13
  194. package/legacy/components/cell/GridEditSingleSelectCell.js +65 -28
  195. package/legacy/components/cell/index.js +2 -0
  196. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +19 -23
  197. package/legacy/components/columnHeaders/GridColumnHeaders.js +2 -3
  198. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +23 -6
  199. package/legacy/components/columnSelection/GridHeaderCheckbox.js +4 -5
  200. package/legacy/components/containers/GridFooterContainer.js +11 -2
  201. package/legacy/components/containers/GridRootStyles.js +26 -5
  202. package/legacy/components/containers/GridToolbarContainer.js +12 -2
  203. package/legacy/components/menu/GridMenu.js +1 -0
  204. package/legacy/components/panel/GridPanel.js +1 -0
  205. package/legacy/components/panel/GridPanelContent.js +13 -2
  206. package/legacy/components/panel/GridPanelFooter.js +13 -2
  207. package/legacy/components/panel/GridPanelHeader.js +13 -2
  208. package/legacy/components/panel/filterPanel/GridFilterForm.js +14 -10
  209. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +13 -8
  210. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +22 -17
  211. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +22 -17
  212. package/legacy/components/toolbar/GridToolbar.js +31 -6
  213. package/legacy/components/toolbar/GridToolbarDensitySelector.js +1 -1
  214. package/legacy/components/toolbar/GridToolbarExport.js +18 -19
  215. package/legacy/components/toolbar/GridToolbarQuickFilter.js +103 -0
  216. package/legacy/components/toolbar/index.js +3 -2
  217. package/legacy/components/virtualization/GridVirtualScroller.js +2 -0
  218. package/legacy/components/virtualization/GridVirtualScrollerContent.js +1 -3
  219. package/legacy/constants/defaultGridSlotsComponents.js +3 -2
  220. package/legacy/constants/gridClasses.js +1 -1
  221. package/legacy/constants/gridDetailPanelToggleField.js +2 -0
  222. package/legacy/constants/localeTextConstants.js +8 -1
  223. package/legacy/hooks/core/pipeProcessing/index.js +2 -1
  224. package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +60 -24
  225. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
  226. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -4
  227. package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -7
  228. package/legacy/hooks/core/useGridApiInitialization.js +3 -3
  229. package/legacy/hooks/core/useGridErrorHandler.js +1 -2
  230. package/legacy/hooks/core/useGridStateInitialization.js +1 -2
  231. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +94 -16
  232. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +3 -3
  233. package/legacy/hooks/features/columns/gridColumnsUtils.js +79 -22
  234. package/legacy/hooks/features/columns/useGridColumnSpanning.js +106 -0
  235. package/legacy/hooks/features/columns/useGridColumns.js +30 -25
  236. package/legacy/hooks/features/dimensions/useGridDimensions.js +10 -11
  237. package/legacy/hooks/features/editRows/useGridCellEditing.new.js +225 -89
  238. package/legacy/hooks/features/editRows/useGridCellEditing.old.js +20 -21
  239. package/legacy/hooks/features/editRows/useGridEditing.new.js +7 -3
  240. package/legacy/hooks/features/editRows/useGridEditing.old.js +4 -5
  241. package/legacy/hooks/features/editRows/useGridRowEditing.new.js +157 -65
  242. package/legacy/hooks/features/editRows/useGridRowEditing.old.js +20 -21
  243. package/legacy/hooks/features/events/useGridEvents.js +17 -18
  244. package/legacy/hooks/features/export/serializers/csvSerializer.js +5 -5
  245. package/legacy/hooks/features/export/useGridCsvExport.js +24 -17
  246. package/legacy/hooks/features/export/useGridPrintExport.js +22 -0
  247. package/legacy/hooks/features/export/utils.js +14 -0
  248. package/legacy/hooks/features/filter/gridFilterState.js +3 -1
  249. package/legacy/hooks/features/filter/gridFilterUtils.js +96 -2
  250. package/legacy/hooks/features/filter/useGridFilter.js +32 -15
  251. package/legacy/hooks/features/focus/useGridFocus.js +50 -44
  252. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +43 -11
  253. package/legacy/hooks/features/pagination/useGridPage.js +3 -4
  254. package/legacy/hooks/features/pagination/useGridPageSize.js +2 -3
  255. package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -6
  256. package/legacy/hooks/features/rows/gridRowsSelector.js +6 -0
  257. package/legacy/hooks/features/rows/gridRowsUtils.js +27 -1
  258. package/legacy/hooks/features/rows/useGridRows.js +131 -61
  259. package/legacy/hooks/features/rows/useGridRowsMeta.js +6 -13
  260. package/legacy/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
  261. package/legacy/hooks/features/scroll/useGridScroll.js +31 -4
  262. package/legacy/hooks/features/selection/useGridSelection.js +15 -11
  263. package/legacy/hooks/features/sorting/useGridSorting.js +12 -15
  264. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +79 -42
  265. package/legacy/hooks/utils/useGridApiEventHandler.js +20 -9
  266. package/legacy/hooks/utils/useGridNativeEventListener.js +1 -2
  267. package/legacy/hooks/utils/useGridSelector.js +1 -1
  268. package/legacy/index.js +1 -1
  269. package/legacy/internals/index.js +6 -2
  270. package/legacy/locales/arSD.js +8 -1
  271. package/legacy/locales/bgBG.js +8 -1
  272. package/legacy/locales/csCZ.js +7 -0
  273. package/legacy/locales/daDK.js +8 -1
  274. package/legacy/locales/deDE.js +10 -3
  275. package/legacy/locales/elGR.js +7 -0
  276. package/legacy/locales/esES.js +7 -0
  277. package/legacy/locales/faIR.js +8 -1
  278. package/legacy/locales/fiFI.js +7 -0
  279. package/legacy/locales/frFR.js +7 -0
  280. package/legacy/locales/heIL.js +8 -1
  281. package/legacy/locales/huHU.js +127 -0
  282. package/legacy/locales/index.js +1 -0
  283. package/legacy/locales/itIT.js +7 -0
  284. package/legacy/locales/jaJP.js +7 -0
  285. package/legacy/locales/koKR.js +7 -0
  286. package/legacy/locales/nlNL.js +7 -0
  287. package/legacy/locales/plPL.js +8 -1
  288. package/legacy/locales/ptBR.js +8 -1
  289. package/legacy/locales/ruRU.js +7 -0
  290. package/legacy/locales/skSK.js +7 -0
  291. package/legacy/locales/trTR.js +8 -1
  292. package/legacy/locales/ukUA.js +7 -0
  293. package/legacy/locales/viVN.js +7 -0
  294. package/legacy/locales/zhCN.js +7 -0
  295. package/legacy/models/api/gridColumnSpanning.js +1 -0
  296. package/legacy/models/events/gridEvents.js +10 -3
  297. package/legacy/models/gridColumnSpanning.js +1 -0
  298. package/legacy/models/index.js +4 -3
  299. package/legacy/utils/createSelector.js +18 -2
  300. package/legacy/utils/exportAs.js +1 -1
  301. package/locales/arSD.js +8 -1
  302. package/locales/bgBG.js +8 -1
  303. package/locales/csCZ.js +7 -0
  304. package/locales/daDK.js +8 -1
  305. package/locales/deDE.js +10 -3
  306. package/locales/elGR.js +7 -0
  307. package/locales/esES.js +7 -0
  308. package/locales/faIR.js +8 -1
  309. package/locales/fiFI.js +7 -0
  310. package/locales/frFR.js +7 -0
  311. package/locales/heIL.js +8 -1
  312. package/locales/huHU.d.ts +2 -0
  313. package/locales/huHU.js +115 -0
  314. package/locales/index.d.ts +1 -0
  315. package/locales/index.js +1 -0
  316. package/locales/itIT.js +7 -0
  317. package/locales/jaJP.js +7 -0
  318. package/locales/koKR.js +7 -0
  319. package/locales/nlNL.js +7 -0
  320. package/locales/plPL.js +8 -1
  321. package/locales/ptBR.js +8 -1
  322. package/locales/ruRU.js +7 -0
  323. package/locales/skSK.js +7 -0
  324. package/locales/trTR.js +8 -1
  325. package/locales/ukUA.js +7 -0
  326. package/locales/viVN.js +7 -0
  327. package/locales/zhCN.js +7 -0
  328. package/models/api/gridApiCommon.d.ts +2 -1
  329. package/models/api/gridColumnSpanning.d.ts +28 -0
  330. package/models/api/gridColumnSpanning.js +1 -0
  331. package/models/api/gridCoreApi.d.ts +10 -0
  332. package/models/api/gridEditingApi.d.ts +72 -7
  333. package/models/api/gridFilterApi.d.ts +5 -0
  334. package/models/api/gridFocusApi.d.ts +1 -0
  335. package/models/api/gridLocaleTextApi.d.ts +5 -0
  336. package/models/api/gridRowApi.d.ts +34 -0
  337. package/models/api/index.d.ts +1 -1
  338. package/models/colDef/gridColDef.d.ts +18 -0
  339. package/models/events/gridEventLookup.d.ts +296 -11
  340. package/models/events/gridEvents.d.ts +10 -258
  341. package/models/events/gridEvents.js +10 -3
  342. package/models/gridColumnSpanning.d.ts +12 -0
  343. package/models/gridColumnSpanning.js +1 -0
  344. package/models/gridEditRowModel.d.ts +1 -1
  345. package/models/gridExport.d.ts +29 -2
  346. package/models/gridFilterModel.d.ts +11 -0
  347. package/models/gridFilterOperator.d.ts +1 -1
  348. package/models/gridIconSlotsComponent.d.ts +5 -0
  349. package/models/gridStateCommunity.d.ts +0 -2
  350. package/models/index.d.ts +1 -1
  351. package/models/index.js +4 -3
  352. package/models/params/gridCellParams.d.ts +12 -2
  353. package/models/params/gridRowParams.d.ts +5 -0
  354. package/models/props/DataGridProps.d.ts +57 -29
  355. package/modern/DataGrid/DataGrid.js +36 -2
  356. package/modern/DataGrid/useDataGridComponent.js +3 -1
  357. package/modern/DataGrid/useDataGridProps.js +2 -1
  358. package/modern/colDef/gridActionsColDef.js +2 -1
  359. package/modern/colDef/gridBooleanColDef.js +2 -1
  360. package/modern/colDef/gridCheckboxSelectionColDef.js +1 -0
  361. package/modern/colDef/gridDateColDef.js +4 -2
  362. package/modern/colDef/gridNumericColDef.js +3 -2
  363. package/modern/colDef/gridNumericOperators.js +11 -0
  364. package/modern/colDef/gridSingleSelectColDef.js +3 -2
  365. package/modern/colDef/gridSingleSelectOperators.js +52 -0
  366. package/modern/colDef/gridStringColDef.js +3 -2
  367. package/modern/colDef/gridStringOperators.js +12 -0
  368. package/modern/components/GridFooter.js +11 -2
  369. package/modern/components/GridRow.js +56 -26
  370. package/modern/components/GridRowCount.js +1 -0
  371. package/modern/components/GridScrollArea.js +3 -4
  372. package/modern/components/GridSelectedRowCount.js +2 -1
  373. package/modern/components/base/GridBody.js +1 -2
  374. package/modern/components/base/GridOverlays.js +5 -5
  375. package/modern/components/cell/GridActionsCell.js +179 -21
  376. package/modern/components/cell/GridActionsCellItem.js +7 -5
  377. package/modern/components/cell/GridCell.js +36 -15
  378. package/modern/components/cell/GridEditBooleanCell.js +101 -6
  379. package/modern/components/cell/GridEditDateCell.js +99 -5
  380. package/modern/components/cell/GridEditInputCell.js +30 -6
  381. package/modern/components/cell/GridEditSingleSelectCell.js +48 -16
  382. package/modern/components/cell/index.js +2 -0
  383. package/modern/components/columnHeaders/GridColumnHeaderItem.js +19 -23
  384. package/modern/components/columnHeaders/GridColumnHeaders.js +1 -1
  385. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +22 -6
  386. package/modern/components/columnSelection/GridHeaderCheckbox.js +4 -5
  387. package/modern/components/containers/GridFooterContainer.js +11 -2
  388. package/modern/components/containers/GridRootStyles.js +36 -1
  389. package/modern/components/containers/GridToolbarContainer.js +12 -2
  390. package/modern/components/menu/GridMenu.js +1 -0
  391. package/modern/components/panel/GridPanel.js +1 -0
  392. package/modern/components/panel/GridPanelContent.js +13 -2
  393. package/modern/components/panel/GridPanelFooter.js +13 -2
  394. package/modern/components/panel/GridPanelHeader.js +13 -2
  395. package/modern/components/panel/filterPanel/GridFilterForm.js +10 -6
  396. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +11 -6
  397. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +20 -13
  398. package/modern/components/panel/filterPanel/GridFilterInputValue.js +20 -13
  399. package/modern/components/toolbar/GridToolbar.js +30 -7
  400. package/modern/components/toolbar/GridToolbarDensitySelector.js +1 -1
  401. package/modern/components/toolbar/GridToolbarExport.js +15 -20
  402. package/modern/components/toolbar/GridToolbarQuickFilter.js +86 -0
  403. package/modern/components/toolbar/index.js +3 -2
  404. package/modern/components/virtualization/GridVirtualScroller.js +2 -0
  405. package/modern/components/virtualization/GridVirtualScrollerContent.js +1 -3
  406. package/modern/constants/defaultGridSlotsComponents.js +3 -2
  407. package/modern/constants/gridClasses.js +1 -1
  408. package/modern/constants/gridDetailPanelToggleField.js +2 -0
  409. package/modern/constants/localeTextConstants.js +8 -1
  410. package/modern/hooks/core/pipeProcessing/index.js +2 -1
  411. package/modern/hooks/core/pipeProcessing/useGridPipeProcessing.js +53 -19
  412. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
  413. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -4
  414. package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -7
  415. package/modern/hooks/core/useGridApiInitialization.js +3 -3
  416. package/modern/hooks/core/useGridErrorHandler.js +1 -2
  417. package/modern/hooks/core/useGridStateInitialization.js +1 -2
  418. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +81 -16
  419. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +3 -3
  420. package/modern/hooks/features/columns/gridColumnsUtils.js +61 -8
  421. package/modern/hooks/features/columns/useGridColumnSpanning.js +106 -0
  422. package/modern/hooks/features/columns/useGridColumns.js +30 -25
  423. package/modern/hooks/features/dimensions/useGridDimensions.js +10 -11
  424. package/modern/hooks/features/editRows/useGridCellEditing.new.js +149 -42
  425. package/modern/hooks/features/editRows/useGridCellEditing.old.js +20 -21
  426. package/modern/hooks/features/editRows/useGridEditing.new.js +7 -3
  427. package/modern/hooks/features/editRows/useGridEditing.old.js +4 -5
  428. package/modern/hooks/features/editRows/useGridRowEditing.new.js +143 -57
  429. package/modern/hooks/features/editRows/useGridRowEditing.old.js +21 -22
  430. package/modern/hooks/features/events/useGridEvents.js +17 -18
  431. package/modern/hooks/features/export/serializers/csvSerializer.js +5 -5
  432. package/modern/hooks/features/export/useGridCsvExport.js +21 -16
  433. package/modern/hooks/features/export/useGridPrintExport.js +20 -0
  434. package/modern/hooks/features/export/utils.js +13 -0
  435. package/modern/hooks/features/filter/gridFilterState.js +3 -1
  436. package/modern/hooks/features/filter/gridFilterUtils.js +80 -2
  437. package/modern/hooks/features/filter/useGridFilter.js +32 -15
  438. package/modern/hooks/features/focus/useGridFocus.js +48 -42
  439. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +41 -12
  440. package/modern/hooks/features/pagination/useGridPage.js +3 -4
  441. package/modern/hooks/features/pagination/useGridPageSize.js +2 -3
  442. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -6
  443. package/modern/hooks/features/rows/gridRowsSelector.js +2 -0
  444. package/modern/hooks/features/rows/gridRowsUtils.js +23 -1
  445. package/modern/hooks/features/rows/useGridRows.js +121 -61
  446. package/modern/hooks/features/rows/useGridRowsMeta.js +6 -13
  447. package/modern/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
  448. package/modern/hooks/features/scroll/useGridScroll.js +29 -4
  449. package/modern/hooks/features/selection/useGridSelection.js +15 -11
  450. package/modern/hooks/features/sorting/useGridSorting.js +17 -18
  451. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +68 -28
  452. package/modern/hooks/utils/useGridApiEventHandler.js +20 -9
  453. package/modern/hooks/utils/useGridNativeEventListener.js +1 -2
  454. package/modern/hooks/utils/useGridSelector.js +1 -1
  455. package/modern/index.js +1 -1
  456. package/modern/internals/index.js +6 -2
  457. package/modern/locales/arSD.js +8 -1
  458. package/modern/locales/bgBG.js +8 -1
  459. package/modern/locales/csCZ.js +7 -0
  460. package/modern/locales/daDK.js +8 -1
  461. package/modern/locales/deDE.js +10 -3
  462. package/modern/locales/elGR.js +7 -0
  463. package/modern/locales/esES.js +7 -0
  464. package/modern/locales/faIR.js +8 -1
  465. package/modern/locales/fiFI.js +7 -0
  466. package/modern/locales/frFR.js +7 -0
  467. package/modern/locales/heIL.js +8 -1
  468. package/modern/locales/huHU.js +115 -0
  469. package/modern/locales/index.js +1 -0
  470. package/modern/locales/itIT.js +7 -0
  471. package/modern/locales/jaJP.js +7 -0
  472. package/modern/locales/koKR.js +7 -0
  473. package/modern/locales/nlNL.js +7 -0
  474. package/modern/locales/plPL.js +8 -1
  475. package/modern/locales/ptBR.js +8 -1
  476. package/modern/locales/ruRU.js +7 -0
  477. package/modern/locales/skSK.js +7 -0
  478. package/modern/locales/trTR.js +8 -1
  479. package/modern/locales/ukUA.js +7 -0
  480. package/modern/locales/viVN.js +7 -0
  481. package/modern/locales/zhCN.js +7 -0
  482. package/modern/models/api/gridColumnSpanning.js +1 -0
  483. package/modern/models/events/gridEvents.js +10 -3
  484. package/modern/models/gridColumnSpanning.js +1 -0
  485. package/modern/models/index.js +4 -3
  486. package/modern/utils/createSelector.js +20 -2
  487. package/modern/utils/exportAs.js +1 -1
  488. package/node/DataGrid/DataGrid.js +36 -2
  489. package/node/DataGrid/useDataGridComponent.js +4 -1
  490. package/node/DataGrid/useDataGridProps.js +2 -1
  491. package/node/colDef/gridActionsColDef.js +2 -1
  492. package/node/colDef/gridBooleanColDef.js +2 -1
  493. package/node/colDef/gridCheckboxSelectionColDef.js +1 -0
  494. package/node/colDef/gridDateColDef.js +4 -2
  495. package/node/colDef/gridNumericColDef.js +2 -1
  496. package/node/colDef/gridNumericOperators.js +15 -1
  497. package/node/colDef/gridSingleSelectColDef.js +2 -1
  498. package/node/colDef/gridSingleSelectOperators.js +56 -1
  499. package/node/colDef/gridStringColDef.js +2 -1
  500. package/node/colDef/gridStringOperators.js +16 -1
  501. package/node/components/GridFooter.js +10 -1
  502. package/node/components/GridRow.js +59 -29
  503. package/node/components/GridRowCount.js +1 -0
  504. package/node/components/GridScrollArea.js +3 -5
  505. package/node/components/GridSelectedRowCount.js +2 -1
  506. package/node/components/base/GridBody.js +1 -3
  507. package/node/components/base/GridOverlays.js +4 -5
  508. package/node/components/cell/GridActionsCell.js +181 -21
  509. package/node/components/cell/GridActionsCellItem.js +7 -4
  510. package/node/components/cell/GridCell.js +35 -14
  511. package/node/components/cell/GridEditBooleanCell.js +100 -5
  512. package/node/components/cell/GridEditDateCell.js +98 -4
  513. package/node/components/cell/GridEditInputCell.js +30 -6
  514. package/node/components/cell/GridEditSingleSelectCell.js +50 -18
  515. package/node/components/cell/index.js +26 -0
  516. package/node/components/columnHeaders/GridColumnHeaderItem.js +19 -24
  517. package/node/components/columnHeaders/GridColumnHeaders.js +1 -1
  518. package/node/components/columnSelection/GridCellCheckboxRenderer.js +22 -7
  519. package/node/components/columnSelection/GridHeaderCheckbox.js +4 -6
  520. package/node/components/containers/GridFooterContainer.js +10 -1
  521. package/node/components/containers/GridRootStyles.js +36 -1
  522. package/node/components/containers/GridToolbarContainer.js +11 -1
  523. package/node/components/menu/GridMenu.js +1 -0
  524. package/node/components/panel/GridPanel.js +1 -0
  525. package/node/components/panel/GridPanelContent.js +11 -1
  526. package/node/components/panel/GridPanelFooter.js +11 -1
  527. package/node/components/panel/GridPanelHeader.js +11 -1
  528. package/node/components/panel/filterPanel/GridFilterForm.js +15 -10
  529. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +14 -8
  530. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +23 -15
  531. package/node/components/panel/filterPanel/GridFilterInputValue.js +23 -15
  532. package/node/components/toolbar/GridToolbar.js +32 -7
  533. package/node/components/toolbar/GridToolbarDensitySelector.js +1 -1
  534. package/node/components/toolbar/GridToolbarExport.js +14 -19
  535. package/node/components/toolbar/GridToolbarQuickFilter.js +111 -0
  536. package/node/components/toolbar/index.js +42 -11
  537. package/node/components/virtualization/GridVirtualScroller.js +2 -0
  538. package/node/components/virtualization/GridVirtualScrollerContent.js +1 -3
  539. package/node/constants/defaultGridSlotsComponents.js +2 -1
  540. package/node/constants/gridClasses.js +1 -1
  541. package/node/constants/gridDetailPanelToggleField.js +9 -0
  542. package/node/constants/localeTextConstants.js +8 -1
  543. package/node/hooks/core/pipeProcessing/index.js +13 -0
  544. package/node/hooks/core/pipeProcessing/useGridPipeProcessing.js +51 -20
  545. package/node/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +42 -0
  546. package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -3
  547. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -8
  548. package/node/hooks/core/useGridApiInitialization.js +3 -4
  549. package/node/hooks/core/useGridErrorHandler.js +1 -3
  550. package/node/hooks/core/useGridStateInitialization.js +1 -3
  551. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +85 -17
  552. package/node/hooks/features/columnMenu/useGridColumnMenu.js +3 -4
  553. package/node/hooks/features/columns/gridColumnsUtils.js +65 -9
  554. package/node/hooks/features/columns/useGridColumnSpanning.js +128 -0
  555. package/node/hooks/features/columns/useGridColumns.js +29 -25
  556. package/node/hooks/features/dimensions/useGridDimensions.js +10 -12
  557. package/node/hooks/features/editRows/useGridCellEditing.new.js +151 -42
  558. package/node/hooks/features/editRows/useGridCellEditing.old.js +20 -22
  559. package/node/hooks/features/editRows/useGridEditing.new.js +6 -2
  560. package/node/hooks/features/editRows/useGridEditing.old.js +4 -6
  561. package/node/hooks/features/editRows/useGridRowEditing.new.js +143 -57
  562. package/node/hooks/features/editRows/useGridRowEditing.old.js +21 -23
  563. package/node/hooks/features/events/useGridEvents.js +17 -19
  564. package/node/hooks/features/export/serializers/csvSerializer.js +5 -5
  565. package/node/hooks/features/export/useGridCsvExport.js +26 -17
  566. package/node/hooks/features/export/useGridPrintExport.js +25 -0
  567. package/node/hooks/features/export/utils.js +19 -2
  568. package/node/hooks/features/filter/gridFilterState.js +3 -1
  569. package/node/hooks/features/filter/gridFilterUtils.js +92 -3
  570. package/node/hooks/features/filter/useGridFilter.js +33 -16
  571. package/node/hooks/features/focus/useGridFocus.js +48 -43
  572. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +44 -13
  573. package/node/hooks/features/pagination/useGridPage.js +3 -5
  574. package/node/hooks/features/pagination/useGridPageSize.js +2 -4
  575. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -8
  576. package/node/hooks/features/rows/gridRowsSelector.js +5 -1
  577. package/node/hooks/features/rows/gridRowsUtils.js +29 -1
  578. package/node/hooks/features/rows/useGridRows.js +122 -61
  579. package/node/hooks/features/rows/useGridRowsMeta.js +6 -14
  580. package/node/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
  581. package/node/hooks/features/scroll/useGridScroll.js +32 -3
  582. package/node/hooks/features/selection/useGridSelection.js +16 -12
  583. package/node/hooks/features/sorting/useGridSorting.js +17 -19
  584. package/node/hooks/features/virtualization/useGridVirtualScroller.js +73 -33
  585. package/node/hooks/utils/useGridApiEventHandler.js +22 -10
  586. package/node/hooks/utils/useGridNativeEventListener.js +1 -3
  587. package/node/hooks/utils/useGridSelector.js +1 -1
  588. package/node/index.js +1 -1
  589. package/node/internals/index.js +47 -3
  590. package/node/locales/arSD.js +8 -1
  591. package/node/locales/bgBG.js +8 -1
  592. package/node/locales/csCZ.js +7 -0
  593. package/node/locales/daDK.js +8 -1
  594. package/node/locales/deDE.js +10 -3
  595. package/node/locales/elGR.js +7 -0
  596. package/node/locales/esES.js +7 -0
  597. package/node/locales/faIR.js +8 -1
  598. package/node/locales/fiFI.js +7 -0
  599. package/node/locales/frFR.js +7 -0
  600. package/node/locales/heIL.js +8 -1
  601. package/node/locales/huHU.js +125 -0
  602. package/node/locales/index.js +13 -0
  603. package/node/locales/itIT.js +7 -0
  604. package/node/locales/jaJP.js +7 -0
  605. package/node/locales/koKR.js +7 -0
  606. package/node/locales/nlNL.js +7 -0
  607. package/node/locales/plPL.js +8 -1
  608. package/node/locales/ptBR.js +8 -1
  609. package/node/locales/ruRU.js +7 -0
  610. package/node/locales/skSK.js +7 -0
  611. package/node/locales/trTR.js +8 -1
  612. package/node/locales/ukUA.js +7 -0
  613. package/node/locales/viVN.js +7 -0
  614. package/node/locales/zhCN.js +7 -0
  615. package/node/models/api/gridColumnSpanning.js +5 -0
  616. package/node/models/events/gridEvents.js +10 -3
  617. package/node/models/gridColumnSpanning.js +5 -0
  618. package/node/models/index.js +0 -13
  619. package/node/utils/createSelector.js +25 -4
  620. package/node/utils/exportAs.js +1 -1
  621. package/package.json +4 -4
  622. package/utils/createSelector.d.ts +2 -1
  623. package/utils/createSelector.js +20 -2
  624. package/utils/domUtils.d.ts +2 -2
  625. package/utils/exportAs.d.ts +2 -2
  626. package/utils/exportAs.js +1 -1
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
- import { GridEvents } from '../../../models/events';
3
2
  import { gridVisibleColumnDefinitionsSelector } from '../columns/gridColumnsSelector';
4
3
  import { useGridLogger } from '../../utils/useGridLogger';
5
4
  import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
@@ -9,6 +8,7 @@ import { GRID_CHECKBOX_SELECTION_COL_DEF } from '../../../colDef/gridCheckboxSel
9
8
  import { gridClasses } from '../../../constants/gridClasses';
10
9
  import { GridCellModes } from '../../../models/gridEditRowModel';
11
10
  import { isNavigationKey } from '../../../utils/keyboardUtils';
11
+ import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '../../../constants/gridDetailPanelToggleField';
12
12
  /**
13
13
  * @requires useGridSorting (method) - can be after
14
14
  * @requires useGridFilter (state) - can be after
@@ -16,21 +16,41 @@ import { isNavigationKey } from '../../../utils/keyboardUtils';
16
16
  * @requires useGridDimensions (method) - can be after
17
17
  * @requires useGridFocus (method) - can be after
18
18
  * @requires useGridScroll (method) - can be after
19
+ * @requires useGridColumnSpanning (method) - can be after
19
20
  */
20
21
 
21
22
  export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef, props) {
22
23
  var logger = useGridLogger(apiRef, 'useGridKeyboardNavigation');
23
24
  var currentPage = useGridVisibleRows(apiRef, props);
25
+ /**
26
+ * @param {number} colIndex Index of the column to focus
27
+ * @param {number} rowIndex index of the row to focus
28
+ * @param {string} closestColumnToUse Which closest column cell to use when the cell is spanned by `colSpan`.
29
+ */
30
+
24
31
  var goToCell = React.useCallback(function (colIndex, rowIndex) {
32
+ var _visibleSortedRows$ro;
33
+
34
+ var closestColumnToUse = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'left';
35
+ var visibleSortedRows = gridVisibleSortedRowEntriesSelector(apiRef);
36
+ var rowId = (_visibleSortedRows$ro = visibleSortedRows[rowIndex]) == null ? void 0 : _visibleSortedRows$ro.id;
37
+ var nextCellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, colIndex);
38
+
39
+ if (nextCellColSpanInfo && nextCellColSpanInfo.spannedByColSpan) {
40
+ if (closestColumnToUse === 'left') {
41
+ colIndex = nextCellColSpanInfo.leftVisibleCellIndex;
42
+ } else if (closestColumnToUse === 'right') {
43
+ colIndex = nextCellColSpanInfo.rightVisibleCellIndex;
44
+ }
45
+ }
46
+
25
47
  logger.debug("Navigating to cell row ".concat(rowIndex, ", col ").concat(colIndex));
26
48
  apiRef.current.scrollToIndexes({
27
49
  colIndex: colIndex,
28
50
  rowIndex: rowIndex
29
51
  });
30
52
  var field = apiRef.current.getVisibleColumns()[colIndex].field;
31
- var visibleSortedRows = gridVisibleSortedRowEntriesSelector(apiRef);
32
- var node = visibleSortedRows[rowIndex];
33
- apiRef.current.setCellFocus(node.id, field);
53
+ apiRef.current.setCellFocus(rowId, field);
34
54
  }, [apiRef, logger]);
35
55
  var goToHeader = React.useCallback(function (colIndex, event) {
36
56
  logger.debug("Navigating to header col ".concat(colIndex));
@@ -85,7 +105,7 @@ export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef
85
105
  case 'ArrowRight':
86
106
  {
87
107
  if (colIndexBefore < lastColIndex) {
88
- goToCell(colIndexBefore + 1, rowIndexBefore);
108
+ goToCell(colIndexBefore + 1, rowIndexBefore, 'right');
89
109
  }
90
110
 
91
111
  break;
@@ -104,9 +124,9 @@ export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef
104
124
  {
105
125
  // "Tab" is only triggered by the row / cell editing feature
106
126
  if (event.shiftKey && colIndexBefore > firstColIndex) {
107
- goToCell(colIndexBefore - 1, rowIndexBefore);
127
+ goToCell(colIndexBefore - 1, rowIndexBefore, 'left');
108
128
  } else if (!event.shiftKey && colIndexBefore < lastColIndex) {
109
- goToCell(colIndexBefore + 1, rowIndexBefore);
129
+ goToCell(colIndexBefore + 1, rowIndexBefore, 'right');
110
130
  }
111
131
 
112
132
  break;
@@ -114,6 +134,18 @@ export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef
114
134
 
115
135
  case ' ':
116
136
  {
137
+ var field = params.field;
138
+
139
+ if (field === GRID_DETAIL_PANEL_TOGGLE_FIELD) {
140
+ break;
141
+ }
142
+
143
+ var colDef = params.colDef;
144
+
145
+ if (colDef && colDef.type === 'treeDataGroup') {
146
+ break;
147
+ }
148
+
117
149
  if (!event.shiftKey && rowIndexBefore < lastRowIndexInPage) {
118
150
  goToCell(colIndexBefore, Math.min(rowIndexBefore + viewportPageSize, lastRowIndexInPage));
119
151
  }
@@ -286,10 +318,10 @@ export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef
286
318
  var cellParams = apiRef.current.getCellParams(params.id, params.field);
287
319
 
288
320
  if (cellParams.cellMode !== GridCellModes.Edit && isNavigationKey(event.key)) {
289
- apiRef.current.publishEvent(GridEvents.cellNavigationKeyDown, cellParams, event);
321
+ apiRef.current.publishEvent('cellNavigationKeyDown', cellParams, event);
290
322
  }
291
323
  }, [apiRef]);
292
- useGridApiEventHandler(apiRef, GridEvents.cellNavigationKeyDown, handleCellNavigationKeyDown);
293
- useGridApiEventHandler(apiRef, GridEvents.columnHeaderKeyDown, handleColumnHeaderKeyDown);
294
- useGridApiEventHandler(apiRef, GridEvents.cellKeyDown, handleCellKeyDown);
324
+ useGridApiEventHandler(apiRef, 'cellNavigationKeyDown', handleCellNavigationKeyDown);
325
+ useGridApiEventHandler(apiRef, 'columnHeaderKeyDown', handleColumnHeaderKeyDown);
326
+ useGridApiEventHandler(apiRef, 'cellKeyDown', handleCellKeyDown);
295
327
  };
@@ -1,7 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import { useGridLogger, useGridSelector, useGridApiMethod, useGridApiEventHandler } from '../../utils';
4
- import { GridEvents } from '../../../models/events';
5
4
  import { gridVisibleTopLevelRowCountSelector } from '../filter';
6
5
  import { gridPageSelector, gridPageSizeSelector } from './gridPaginationSelector';
7
6
  import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
@@ -49,7 +48,7 @@ export var useGridPage = function useGridPage(apiRef, props) {
49
48
  propModel: props.page,
50
49
  propOnChange: props.onPageChange,
51
50
  stateSelector: gridPageSelector,
52
- changeEvent: GridEvents.pageChange
51
+ changeEvent: 'pageChange'
53
52
  });
54
53
  /**
55
54
  * API METHODS
@@ -120,8 +119,8 @@ export var useGridPage = function useGridPage(apiRef, props) {
120
119
  });
121
120
  };
122
121
 
123
- useGridApiEventHandler(apiRef, GridEvents.pageSizeChange, handlePageSizeChange);
124
- useGridApiEventHandler(apiRef, GridEvents.pageChange, handlePageChange);
122
+ useGridApiEventHandler(apiRef, 'pageSizeChange', handlePageSizeChange);
123
+ useGridApiEventHandler(apiRef, 'pageChange', handlePageChange);
125
124
  /**
126
125
  * EFFECTS
127
126
  */
@@ -1,6 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
- import { GridEvents } from '../../../models/events';
4
3
  import { useGridLogger, useGridApiMethod, useGridApiEventHandler, useGridSelector } from '../../utils';
5
4
  import { gridPageSizeSelector } from './gridPaginationSelector';
6
5
  import { gridDensityRowHeightSelector } from '../density';
@@ -33,7 +32,7 @@ export var useGridPageSize = function useGridPageSize(apiRef, props) {
33
32
  propModel: props.pageSize,
34
33
  propOnChange: props.onPageSizeChange,
35
34
  stateSelector: gridPageSizeSelector,
36
- changeEvent: GridEvents.pageSizeChange
35
+ changeEvent: 'pageSizeChange'
37
36
  });
38
37
  /**
39
38
  * API METHODS
@@ -106,7 +105,7 @@ export var useGridPageSize = function useGridPageSize(apiRef, props) {
106
105
  var maximumPageSizeWithoutScrollBar = Math.floor(dimensions.viewportInnerSize.height / rowHeight);
107
106
  apiRef.current.setPageSize(maximumPageSizeWithoutScrollBar);
108
107
  }, [apiRef, props.autoPageSize, rowHeight]);
109
- useGridApiEventHandler(apiRef, GridEvents.viewportInnerSizeChange, handleUpdateAutoPageSize);
108
+ useGridApiEventHandler(apiRef, 'viewportInnerSizeChange', handleUpdateAutoPageSize);
110
109
  /**
111
110
  * EFFECTS
112
111
  */
@@ -1,11 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
- import { GridEvents } from '../../../models/events';
4
3
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
5
4
  import { useGridLogger } from '../../utils/useGridLogger';
6
5
  import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
7
6
  import { gridPreferencePanelStateSelector } from './gridPreferencePanelSelector';
8
- import { useGridSelector } from '../../utils/useGridSelector';
9
7
  export var preferencePanelStateInitializer = function preferencePanelStateInitializer(state, props) {
10
8
  var _props$initialState$p, _props$initialState;
11
9
 
@@ -21,7 +19,6 @@ export var preferencePanelStateInitializer = function preferencePanelStateInitia
21
19
 
22
20
  export var useGridPreferencesPanel = function useGridPreferencesPanel(apiRef) {
23
21
  var logger = useGridLogger(apiRef, 'useGridPreferencesPanel');
24
- var preferencePanelState = useGridSelector(apiRef, gridPreferencePanelStateSelector);
25
22
  var hideTimeout = React.useRef();
26
23
  var immediateTimeout = React.useRef();
27
24
  /**
@@ -30,9 +27,10 @@ export var useGridPreferencesPanel = function useGridPreferencesPanel(apiRef) {
30
27
 
31
28
  var hidePreferences = React.useCallback(function () {
32
29
  logger.debug('Hiding Preferences Panel');
30
+ var preferencePanelState = gridPreferencePanelStateSelector(apiRef.current.state);
33
31
 
34
32
  if (preferencePanelState.openedPanelValue) {
35
- apiRef.current.publishEvent(GridEvents.preferencePanelClose, {
33
+ apiRef.current.publishEvent('preferencePanelClose', {
36
34
  openedPanelValue: preferencePanelState.openedPanelValue
37
35
  });
38
36
  }
@@ -45,7 +43,7 @@ export var useGridPreferencesPanel = function useGridPreferencesPanel(apiRef) {
45
43
  });
46
44
  });
47
45
  apiRef.current.forceUpdate();
48
- }, [apiRef, logger, preferencePanelState.openedPanelValue]); // This is to prevent the preferences from closing when you open a select box or another panel,
46
+ }, [apiRef, logger]); // This is to prevent the preferences from closing when you open a select box or another panel,
49
47
  // The issue is in MUI core V4 => Fixed in V5
50
48
 
51
49
  var doNotHidePanel = React.useCallback(function () {
@@ -69,7 +67,7 @@ export var useGridPreferencesPanel = function useGridPreferencesPanel(apiRef) {
69
67
  })
70
68
  });
71
69
  });
72
- apiRef.current.publishEvent(GridEvents.preferencePanelOpen, {
70
+ apiRef.current.publishEvent('preferencePanelOpen', {
73
71
  openedPanelValue: newValue
74
72
  });
75
73
  apiRef.current.forceUpdate();
@@ -5,12 +5,18 @@ export var gridRowsStateSelector = function gridRowsStateSelector(state) {
5
5
  export var gridRowCountSelector = createSelector(gridRowsStateSelector, function (rows) {
6
6
  return rows.totalRowCount;
7
7
  });
8
+ export var gridRowsLoadingSelector = createSelector(gridRowsStateSelector, function (rows) {
9
+ return rows.loading;
10
+ });
8
11
  export var gridTopLevelRowCountSelector = createSelector(gridRowsStateSelector, function (rows) {
9
12
  return rows.totalTopLevelRowCount;
10
13
  });
11
14
  export var gridRowsLookupSelector = createSelector(gridRowsStateSelector, function (rows) {
12
15
  return rows.idRowsLookup;
13
16
  });
17
+ export var gridRowsIdToIdLookupSelector = createSelector(gridRowsStateSelector, function (rows) {
18
+ return rows.idToIdLookup;
19
+ });
14
20
  export var gridRowTreeSelector = createSelector(gridRowsStateSelector, function (rows) {
15
21
  return rows.tree;
16
22
  });
@@ -1,3 +1,5 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+
1
3
  /**
2
4
  * A helper function to check if the id provided is valid.
3
5
  * @param {GridRowId} id Id as [[GridRowId]].
@@ -10,4 +12,28 @@ export function checkGridRowIdIsValid(id, row) {
10
12
  if (id == null) {
11
13
  throw new Error(['MUI: The data grid component requires all rows to have a unique `id` property.', 'Alternatively, you can use the `getRowId` prop to specify a custom id for each row.', detailErrorMessage, JSON.stringify(row)].join('\n'));
12
14
  }
13
- }
15
+ }
16
+ export var getTreeNodeDescendants = function getTreeNodeDescendants(tree, parentId, skipAutoGeneratedRows) {
17
+ var _tree$parentId;
18
+
19
+ var children = (_tree$parentId = tree[parentId]) == null ? void 0 : _tree$parentId.children;
20
+
21
+ if (children == null) {
22
+ return [];
23
+ }
24
+
25
+ var validDescendants = [];
26
+
27
+ for (var i = 0; i < children.length; i += 1) {
28
+ var child = children[i];
29
+ var childNode = tree[child];
30
+
31
+ if (!skipAutoGeneratedRows || !childNode.isAutoGenerated) {
32
+ validDescendants.push(child);
33
+ }
34
+
35
+ validDescendants.push.apply(validDescendants, _toConsumableArray(getTreeNodeDescendants(tree, childNode.id, skipAutoGeneratedRows)));
36
+ }
37
+
38
+ return validDescendants;
39
+ };
@@ -2,13 +2,14 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
- import { GridEvents } from '../../../models/events';
6
5
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
7
6
  import { useGridLogger } from '../../utils/useGridLogger';
8
7
  import { gridRowCountSelector, gridRowsLookupSelector, gridRowTreeSelector, gridRowIdsSelector, gridRowGroupingNameSelector } from './gridRowsSelector';
9
8
  import { GridSignature, useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
10
9
  import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
11
- import { checkGridRowIdIsValid } from './gridRowsUtils';
10
+ import { gridSortedRowIdsSelector } from '../sorting/gridSortingSelector';
11
+ import { gridFilteredRowsLookupSelector } from '../filter/gridFilterSelector';
12
+ import { checkGridRowIdIsValid, getTreeNodeDescendants } from './gridRowsUtils';
12
13
 
13
14
  function getGridRowId(rowModel, getRowId, detailErrorMessage) {
14
15
  var id = getRowId ? getRowId(rowModel) : rowModel.id;
@@ -16,8 +17,8 @@ function getGridRowId(rowModel, getRowId, detailErrorMessage) {
16
17
  return id;
17
18
  }
18
19
 
19
- var convertGridRowsPropToState = function convertGridRowsPropToState(_ref) {
20
- var prevState = _ref.prevState,
20
+ var convertRowsPropToState = function convertRowsPropToState(_ref) {
21
+ var prevState = _ref.prevCache,
21
22
  rows = _ref.rows,
22
23
  getRowId = _ref.getRowId;
23
24
  var value;
@@ -25,6 +26,7 @@ var convertGridRowsPropToState = function convertGridRowsPropToState(_ref) {
25
26
  if (rows) {
26
27
  value = {
27
28
  idRowsLookup: {},
29
+ idToIdLookup: {},
28
30
  ids: []
29
31
  };
30
32
 
@@ -32,6 +34,7 @@ var convertGridRowsPropToState = function convertGridRowsPropToState(_ref) {
32
34
  var row = rows[i];
33
35
  var id = getGridRowId(row, getRowId);
34
36
  value.idRowsLookup[id] = row;
37
+ value.idToIdLookup[id] = id;
35
38
  value.ids.push(id);
36
39
  }
37
40
  } else {
@@ -44,8 +47,8 @@ var convertGridRowsPropToState = function convertGridRowsPropToState(_ref) {
44
47
  };
45
48
  };
46
49
 
47
- var getRowsStateFromCache = function getRowsStateFromCache(rowsCache, previousTree, apiRef, rowCountProp) {
48
- var value = rowsCache.state.value;
50
+ var getRowsStateFromCache = function getRowsStateFromCache(rowsCache, previousTree, apiRef, rowCountProp, loadingProp) {
51
+ var value = rowsCache.value;
49
52
  var rowCount = rowCountProp != null ? rowCountProp : 0;
50
53
  var groupingResponse = apiRef.current.unstable_applyStrategyProcessor('rowTreeCreation', _extends({}, value, {
51
54
  previousTree: previousTree
@@ -54,31 +57,27 @@ var getRowsStateFromCache = function getRowsStateFromCache(rowsCache, previousTr
54
57
  return node.parent == null;
55
58
  }).length;
56
59
  return _extends({}, groupingResponse, {
60
+ loading: loadingProp,
57
61
  totalRowCount: Math.max(rowCount, groupingResponse.ids.length),
58
62
  totalTopLevelRowCount: Math.max(rowCount, dataTopLevelRowCount)
59
63
  });
60
64
  };
61
65
 
62
66
  export var rowsStateInitializer = function rowsStateInitializer(state, props, apiRef) {
63
- var rowsCache = {
64
- state: convertGridRowsPropToState({
65
- rows: props.rows,
66
- getRowId: props.getRowId,
67
- prevState: {
68
- value: {
69
- idRowsLookup: {},
70
- ids: []
71
- },
72
- rowsBeforePartialUpdates: []
73
- }
74
- }),
75
- timeout: null,
76
- lastUpdateMs: Date.now()
77
- };
67
+ apiRef.current.unstable_caches.rows = convertRowsPropToState({
68
+ rows: props.rows,
69
+ getRowId: props.getRowId,
70
+ prevCache: {
71
+ value: {
72
+ idRowsLookup: {},
73
+ idToIdLookup: {},
74
+ ids: []
75
+ },
76
+ rowsBeforePartialUpdates: []
77
+ }
78
+ });
78
79
  return _extends({}, state, {
79
- rows: getRowsStateFromCache(rowsCache, null, apiRef, props.rowCount),
80
- rowsCache: rowsCache // TODO remove from state
81
-
80
+ rows: getRowsStateFromCache(apiRef.current.unstable_caches.rows, null, apiRef, props.rowCount, props.loading)
82
81
  });
83
82
  };
84
83
  export var useGridRows = function useGridRows(apiRef, props) {
@@ -88,9 +87,9 @@ export var useGridRows = function useGridRows(apiRef, props) {
88
87
  }
89
88
 
90
89
  var logger = useGridLogger(apiRef, 'useGridRows');
91
- var rowsCache = React.useRef(apiRef.current.state.rowsCache); // To avoid listing rowsCache as useEffect dep
92
-
93
90
  var currentPage = useGridVisibleRows(apiRef, props);
91
+ var lastUpdateMs = React.useRef(Date.now());
92
+ var timeout = React.useRef(null);
94
93
  var getRow = React.useCallback(function (id) {
95
94
  var _ref2;
96
95
 
@@ -103,52 +102,52 @@ export var useGridRows = function useGridRows(apiRef, props) {
103
102
  return acc;
104
103
  }, {});
105
104
  }, [currentPage.rows]);
106
- var throttledRowsChange = React.useCallback(function (newState, throttle) {
105
+ var throttledRowsChange = React.useCallback(function (newCache, throttle) {
107
106
  var run = function run() {
108
- rowsCache.current.timeout = null;
109
- rowsCache.current.lastUpdateMs = Date.now();
107
+ timeout.current = null;
108
+ lastUpdateMs.current = Date.now();
110
109
  apiRef.current.setState(function (state) {
111
110
  return _extends({}, state, {
112
- rows: getRowsStateFromCache(rowsCache.current, gridRowTreeSelector(apiRef), apiRef, props.rowCount)
111
+ rows: getRowsStateFromCache(apiRef.current.unstable_caches.rows, gridRowTreeSelector(apiRef), apiRef, props.rowCount, props.loading)
113
112
  });
114
113
  });
115
- apiRef.current.publishEvent(GridEvents.rowsSet);
114
+ apiRef.current.publishEvent('rowsSet');
116
115
  apiRef.current.forceUpdate();
117
116
  };
118
117
 
119
- if (rowsCache.current.timeout) {
120
- clearTimeout(rowsCache.current.timeout);
118
+ if (timeout.current) {
119
+ clearTimeout(timeout.current);
120
+ timeout.current = null;
121
121
  }
122
122
 
123
- rowsCache.current.state = newState;
124
- rowsCache.current.timeout = null;
123
+ apiRef.current.unstable_caches.rows = newCache;
125
124
 
126
125
  if (!throttle) {
127
126
  run();
128
127
  return;
129
128
  }
130
129
 
131
- var throttleRemainingTimeMs = props.throttleRowsMs - (Date.now() - rowsCache.current.lastUpdateMs);
130
+ var throttleRemainingTimeMs = props.throttleRowsMs - (Date.now() - lastUpdateMs.current);
132
131
 
133
132
  if (throttleRemainingTimeMs > 0) {
134
- rowsCache.current.timeout = setTimeout(run, throttleRemainingTimeMs);
133
+ timeout.current = setTimeout(run, throttleRemainingTimeMs);
135
134
  return;
136
135
  }
137
136
 
138
137
  run();
139
- }, [props.throttleRowsMs, props.rowCount, apiRef]);
138
+ }, [props.throttleRowsMs, props.rowCount, props.loading, apiRef]);
140
139
  /**
141
140
  * API METHODS
142
141
  */
143
142
 
144
143
  var setRows = React.useCallback(function (rows) {
145
144
  logger.debug("Updating all rows, new length ".concat(rows.length));
146
- throttledRowsChange(convertGridRowsPropToState({
145
+ throttledRowsChange(convertRowsPropToState({
147
146
  rows: rows,
148
- prevState: rowsCache.current.state,
147
+ prevCache: apiRef.current.unstable_caches.rows,
149
148
  getRowId: props.getRowId
150
149
  }), true);
151
- }, [logger, props.getRowId, throttledRowsChange]);
150
+ }, [apiRef, logger, props.getRowId, throttledRowsChange]);
152
151
  var updateRows = React.useCallback(function (updates) {
153
152
  if (props.signature === GridSignature.DataGrid && updates.length > 1) {
154
153
  // TODO: Add test with direct call to `apiRef.current.updateRows` in DataGrid after enabling the `apiRef` on the free plan.
@@ -168,13 +167,15 @@ export var useGridRows = function useGridRows(apiRef, props) {
168
167
  });
169
168
  var deletedRowIds = [];
170
169
  var newStateValue = {
171
- idRowsLookup: _extends({}, rowsCache.current.state.value.idRowsLookup),
172
- ids: _toConsumableArray(rowsCache.current.state.value.ids)
170
+ idRowsLookup: _extends({}, apiRef.current.unstable_caches.rows.value.idRowsLookup),
171
+ idToIdLookup: _extends({}, apiRef.current.unstable_caches.rows.value.idToIdLookup),
172
+ ids: _toConsumableArray(apiRef.current.unstable_caches.rows.value.ids)
173
173
  };
174
174
  uniqUpdates.forEach(function (partialRow, id) {
175
175
  // eslint-disable-next-line no-underscore-dangle
176
176
  if (partialRow._action === 'delete') {
177
177
  delete newStateValue.idRowsLookup[id];
178
+ delete newStateValue.idToIdLookup[id];
178
179
  deletedRowIds.push(id);
179
180
  return;
180
181
  }
@@ -183,6 +184,7 @@ export var useGridRows = function useGridRows(apiRef, props) {
183
184
 
184
185
  if (!oldRow) {
185
186
  newStateValue.idRowsLookup[id] = partialRow;
187
+ newStateValue.idToIdLookup[id] = id;
186
188
  newStateValue.ids.push(id);
187
189
  return;
188
190
  }
@@ -196,12 +198,12 @@ export var useGridRows = function useGridRows(apiRef, props) {
196
198
  });
197
199
  }
198
200
 
199
- var state = _extends({}, rowsCache.current.state, {
201
+ var state = _extends({}, apiRef.current.unstable_caches.rows, {
200
202
  value: newStateValue
201
203
  });
202
204
 
203
205
  throttledRowsChange(state, true);
204
- }, [apiRef, props.getRowId, throttledRowsChange, props.signature]);
206
+ }, [props.signature, props.getRowId, throttledRowsChange, apiRef]);
205
207
  var getRowModels = React.useCallback(function () {
206
208
  var allRows = gridRowIdsSelector(apiRef);
207
209
  var idRowsLookup = gridRowsLookupSelector(apiRef);
@@ -237,23 +239,92 @@ export var useGridRows = function useGridRows(apiRef, props) {
237
239
  });
238
240
  });
239
241
  apiRef.current.forceUpdate();
240
- apiRef.current.publishEvent(GridEvents.rowExpansionChange, newNode);
242
+ apiRef.current.publishEvent('rowExpansionChange', newNode);
241
243
  }, [apiRef]);
242
244
  var getRowNode = React.useCallback(function (id) {
243
245
  var _gridRowTreeSelector$;
244
246
 
245
247
  return (_gridRowTreeSelector$ = gridRowTreeSelector(apiRef)[id]) != null ? _gridRowTreeSelector$ : null;
246
248
  }, [apiRef]);
249
+ var getRowGroupChildren = React.useCallback(function (_ref4) {
250
+ var _ref4$skipAutoGenerat = _ref4.skipAutoGeneratedRows,
251
+ skipAutoGeneratedRows = _ref4$skipAutoGenerat === void 0 ? true : _ref4$skipAutoGenerat,
252
+ groupId = _ref4.groupId,
253
+ applySorting = _ref4.applySorting,
254
+ applyFiltering = _ref4.applyFiltering;
255
+ var tree = gridRowTreeSelector(apiRef);
256
+ var children;
257
+
258
+ if (applySorting) {
259
+ var groupNode = tree[groupId];
260
+
261
+ if (!groupNode) {
262
+ return [];
263
+ }
264
+
265
+ var sortedRowIds = gridSortedRowIdsSelector(apiRef);
266
+ children = [];
267
+ var startIndex = sortedRowIds.findIndex(function (id) {
268
+ return id === groupId;
269
+ }) + 1;
270
+
271
+ for (var index = startIndex; index < sortedRowIds.length && tree[sortedRowIds[index]].depth > groupNode.depth; index += 1) {
272
+ var id = sortedRowIds[index];
273
+ var node = tree[id];
274
+
275
+ if (!skipAutoGeneratedRows || !node.isAutoGenerated) {
276
+ children.push(id);
277
+ }
278
+ }
279
+ } else {
280
+ children = getTreeNodeDescendants(tree, groupId, skipAutoGeneratedRows);
281
+ }
282
+
283
+ if (applyFiltering) {
284
+ var filteredRowsLookup = gridFilteredRowsLookupSelector(apiRef);
285
+ children = children.filter(function (childId) {
286
+ return filteredRowsLookup[childId] !== false;
287
+ });
288
+ }
289
+
290
+ return children;
291
+ }, [apiRef]);
292
+ var setRowIndex = React.useCallback(function (rowId, targetIndex) {
293
+ var allRows = gridRowIdsSelector(apiRef);
294
+ var oldIndex = allRows.findIndex(function (row) {
295
+ return row === rowId;
296
+ });
297
+
298
+ if (oldIndex === -1 || oldIndex === targetIndex) {
299
+ return;
300
+ }
301
+
302
+ logger.debug("Moving row ".concat(rowId, " to index ").concat(targetIndex));
303
+
304
+ var updatedRows = _toConsumableArray(allRows);
305
+
306
+ updatedRows.splice(targetIndex, 0, updatedRows.splice(oldIndex, 1)[0]);
307
+ apiRef.current.setState(function (state) {
308
+ return _extends({}, state, {
309
+ rows: _extends({}, state.rows, {
310
+ ids: updatedRows
311
+ })
312
+ });
313
+ });
314
+ apiRef.current.applySorting();
315
+ }, [apiRef, logger]);
247
316
  var rowApi = {
248
317
  getRow: getRow,
249
318
  getRowModels: getRowModels,
250
319
  getRowsCount: getRowsCount,
251
320
  getAllRowIds: getAllRowIds,
252
321
  setRows: setRows,
322
+ setRowIndex: setRowIndex,
253
323
  updateRows: updateRows,
254
324
  setRowChildrenExpansion: setRowChildrenExpansion,
255
325
  getRowNode: getRowNode,
256
- getRowIndexRelativeToVisibleRows: getRowIndexRelativeToVisibleRows
326
+ getRowIndexRelativeToVisibleRows: getRowIndexRelativeToVisibleRows,
327
+ getRowGroupChildren: getRowGroupChildren
257
328
  };
258
329
  /**
259
330
  * EVENTS
@@ -263,7 +334,7 @@ export var useGridRows = function useGridRows(apiRef, props) {
263
334
  logger.info("Row grouping pre-processing have changed, regenerating the row tree");
264
335
  var rows;
265
336
 
266
- if (rowsCache.current.state.rowsBeforePartialUpdates === props.rows) {
337
+ if (apiRef.current.unstable_caches.rows.rowsBeforePartialUpdates === props.rows) {
267
338
  // The `props.rows` has not changed since the last row grouping
268
339
  // We can keep the potential updates stored in `inputRowsAfterUpdates` on the new grouping
269
340
  rows = undefined;
@@ -274,12 +345,12 @@ export var useGridRows = function useGridRows(apiRef, props) {
274
345
  rows = props.rows;
275
346
  }
276
347
 
277
- throttledRowsChange(convertGridRowsPropToState({
348
+ throttledRowsChange(convertRowsPropToState({
278
349
  rows: rows,
279
350
  getRowId: props.getRowId,
280
- prevState: rowsCache.current.state
351
+ prevCache: apiRef.current.unstable_caches.rows
281
352
  }), false);
282
- }, [logger, throttledRowsChange, props.getRowId, props.rows]);
353
+ }, [logger, apiRef, props.rows, props.getRowId, throttledRowsChange]);
283
354
  var handleStrategyProcessorChange = React.useCallback(function (methodName) {
284
355
  if (methodName === 'rowTreeCreation') {
285
356
  groupRows();
@@ -292,8 +363,8 @@ export var useGridRows = function useGridRows(apiRef, props) {
292
363
  groupRows();
293
364
  }
294
365
  }, [apiRef, groupRows]);
295
- useGridApiEventHandler(apiRef, GridEvents.activeStrategyProcessorChange, handleStrategyProcessorChange);
296
- useGridApiEventHandler(apiRef, GridEvents.strategyAvailabilityChange, handleStrategyActivityChange);
366
+ useGridApiEventHandler(apiRef, 'activeStrategyProcessorChange', handleStrategyProcessorChange);
367
+ useGridApiEventHandler(apiRef, 'strategyAvailabilityChange', handleStrategyActivityChange);
297
368
  useGridApiMethod(apiRef, rowApi, 'GridRowApi');
298
369
  /**
299
370
  * EFFECTS
@@ -301,9 +372,8 @@ export var useGridRows = function useGridRows(apiRef, props) {
301
372
 
302
373
  React.useEffect(function () {
303
374
  return function () {
304
- if (rowsCache.current.timeout !== null) {
305
- // eslint-disable-next-line react-hooks/exhaustive-deps
306
- clearTimeout(rowsCache.current.timeout);
375
+ if (timeout.current !== null) {
376
+ clearTimeout(timeout.current);
307
377
  }
308
378
  };
309
379
  }, []); // The effect do not track any value defined synchronously during the 1st render by hooks called after `useGridRows`
@@ -314,18 +384,18 @@ export var useGridRows = function useGridRows(apiRef, props) {
314
384
  if (isFirstRender.current) {
315
385
  isFirstRender.current = false;
316
386
  return;
317
- } // The new rows have already been applied (most likely in the `GridEvents.rowGroupsPreProcessingChange` listener)
387
+ } // The new rows have already been applied (most likely in the `'rowGroupsPreProcessingChange'` listener)
318
388
 
319
389
 
320
- if (rowsCache.current.state.rowsBeforePartialUpdates === props.rows) {
390
+ if (apiRef.current.unstable_caches.rows.rowsBeforePartialUpdates === props.rows) {
321
391
  return;
322
392
  }
323
393
 
324
394
  logger.debug("Updating all rows, new length ".concat(props.rows.length));
325
- throttledRowsChange(convertGridRowsPropToState({
395
+ throttledRowsChange(convertRowsPropToState({
326
396
  rows: props.rows,
327
397
  getRowId: props.getRowId,
328
- prevState: rowsCache.current.state
398
+ prevCache: apiRef.current.unstable_caches.rows
329
399
  }), false);
330
- }, [props.rows, props.rowCount, props.getRowId, logger, throttledRowsChange]);
400
+ }, [props.rows, props.rowCount, props.getRowId, logger, throttledRowsChange, apiRef]);
331
401
  };