@mui/x-data-grid 5.7.0 → 5.10.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 (524) hide show
  1. package/CHANGELOG.md +241 -53
  2. package/DataGrid/DataGrid.d.ts +8 -3
  3. package/DataGrid/DataGrid.js +28 -5
  4. package/DataGrid/useDataGridComponent.js +5 -5
  5. package/DataGrid/useDataGridProps.d.ts +2 -1
  6. package/LICENSE +21 -0
  7. package/README.md +6 -4
  8. package/colDef/gridBooleanColDef.d.ts +1 -1
  9. package/colDef/gridBooleanOperators.d.ts +1 -1
  10. package/colDef/gridDateColDef.d.ts +5 -9
  11. package/colDef/gridDateColDef.js +2 -2
  12. package/colDef/gridDateOperators.d.ts +1 -1
  13. package/{models/colDef → colDef}/gridDefaultColumnTypes.d.ts +1 -1
  14. package/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
  15. package/colDef/gridNumericColDef.d.ts +1 -1
  16. package/colDef/gridNumericOperators.d.ts +2 -2
  17. package/colDef/gridStringColDef.d.ts +1 -1
  18. package/colDef/gridStringOperators.d.ts +1 -1
  19. package/colDef/index.d.ts +1 -0
  20. package/colDef/index.js +2 -1
  21. package/components/GridRow.d.ts +4 -0
  22. package/components/GridRow.js +55 -24
  23. package/components/base/GridOverlays.js +4 -3
  24. package/components/cell/GridActionsCell.d.ts +5 -1
  25. package/components/cell/GridActionsCell.js +170 -21
  26. package/components/cell/GridActionsCellItem.d.ts +66 -4
  27. package/components/cell/GridActionsCellItem.js +7 -5
  28. package/components/cell/GridCell.d.ts +5 -4
  29. package/components/cell/GridCell.js +30 -9
  30. package/components/cell/GridEditInputCell.js +3 -3
  31. package/components/cell/GridEditSingleSelectCell.js +24 -15
  32. package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +12 -0
  33. package/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
  34. package/components/columnHeaders/GridColumnHeaderItem.js +9 -12
  35. package/components/columnHeaders/GridColumnHeaders.d.ts +0 -1
  36. package/components/columnHeaders/GridColumnHeaders.js +1 -1
  37. package/components/columnHeaders/index.d.ts +1 -0
  38. package/components/columnHeaders/index.js +1 -0
  39. package/components/columnSelection/GridCellCheckboxRenderer.d.ts +3 -3
  40. package/components/columnSelection/GridCellCheckboxRenderer.js +22 -5
  41. package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  42. package/components/containers/GridRoot.js +29 -17
  43. package/components/containers/GridRootStyles.js +36 -1
  44. package/components/menu/GridMenu.js +1 -0
  45. package/components/menu/columnMenu/GridColumnMenu.js +1 -1
  46. package/components/panel/GridPanel.d.ts +2 -2
  47. package/components/panel/GridPanel.js +1 -0
  48. package/components/panel/GridPreferencesPanel.js +1 -1
  49. package/components/panel/filterPanel/GridFilterForm.js +14 -10
  50. package/components/panel/filterPanel/GridFilterInputBoolean.js +13 -8
  51. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +22 -15
  52. package/components/panel/filterPanel/GridFilterInputValue.js +22 -15
  53. package/components/toolbar/GridToolbarDensitySelector.js +1 -1
  54. package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
  55. package/components/virtualization/GridVirtualScroller.js +2 -0
  56. package/components/virtualization/GridVirtualScrollerContent.js +1 -3
  57. package/constants/defaultGridSlotsComponents.js +4 -2
  58. package/constants/gridClasses.d.ts +35 -3
  59. package/constants/gridClasses.js +1 -1
  60. package/constants/gridDetailPanelToggleField.d.ts +1 -0
  61. package/constants/gridDetailPanelToggleField.js +2 -0
  62. package/constants/localeTextConstants.js +3 -1
  63. package/hooks/core/index.d.ts +1 -1
  64. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +85 -0
  65. package/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
  66. package/hooks/core/pipeProcessing/index.d.ts +4 -0
  67. package/hooks/core/pipeProcessing/index.js +4 -0
  68. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +32 -0
  69. package/hooks/core/pipeProcessing/useGridPipeProcessing.js +108 -0
  70. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +3 -0
  71. package/{modern/hooks/core/preProcessing/useGridRegisterPreProcessor.js → hooks/core/pipeProcessing/useGridRegisterPipeApplier.js} +2 -6
  72. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +4 -0
  73. package/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeProcessor.js} +2 -6
  74. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +27 -16
  75. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
  76. package/hooks/core/useGridInitialization.js +2 -2
  77. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +0 -1
  78. package/hooks/features/columnHeaders/useGridColumnHeaders.js +77 -11
  79. package/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
  80. package/hooks/features/columns/gridColumnsInterfaces.d.ts +3 -1
  81. package/hooks/features/columns/gridColumnsSelector.d.ts +6 -6
  82. package/hooks/features/columns/gridColumnsUtils.d.ts +22 -4
  83. package/hooks/features/columns/gridColumnsUtils.js +105 -20
  84. package/hooks/features/columns/useGridColumnSpanning.d.ts +7 -0
  85. package/hooks/features/columns/useGridColumnSpanning.js +109 -0
  86. package/hooks/features/columns/useGridColumns.d.ts +1 -1
  87. package/hooks/features/columns/useGridColumns.js +55 -40
  88. package/hooks/features/dimensions/gridDimensionsApi.d.ts +5 -0
  89. package/hooks/features/dimensions/useGridDimensions.js +5 -4
  90. package/hooks/features/editRows/useGridCellEditing.new.d.ts +1 -1
  91. package/hooks/features/editRows/useGridCellEditing.new.js +40 -17
  92. package/hooks/features/editRows/useGridEditing.new.js +7 -3
  93. package/hooks/features/editRows/useGridRowEditing.new.d.ts +1 -1
  94. package/hooks/features/editRows/useGridRowEditing.new.js +44 -21
  95. package/hooks/features/events/useGridEvents.d.ts +1 -1
  96. package/hooks/features/events/useGridEvents.js +2 -0
  97. package/hooks/features/filter/gridFilterSelector.d.ts +3 -9
  98. package/hooks/features/filter/useGridFilter.js +18 -13
  99. package/hooks/features/focus/useGridFocus.js +19 -9
  100. package/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.d.ts +3 -5
  101. package/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +66 -13
  102. package/hooks/features/pagination/gridPaginationSelector.d.ts +1 -3
  103. package/hooks/features/pagination/useGridPage.js +9 -4
  104. package/hooks/features/pagination/useGridPageSize.js +3 -3
  105. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
  106. package/hooks/features/rows/gridRowsSelector.d.ts +2 -1
  107. package/hooks/features/rows/gridRowsSelector.js +1 -0
  108. package/hooks/features/rows/gridRowsState.d.ts +4 -0
  109. package/hooks/features/rows/gridRowsUtils.d.ts +8 -0
  110. package/hooks/features/rows/gridRowsUtils.js +11 -0
  111. package/hooks/features/rows/index.d.ts +1 -0
  112. package/hooks/features/rows/index.js +1 -1
  113. package/hooks/features/rows/useGridRows.d.ts +2 -2
  114. package/hooks/features/rows/useGridRows.js +27 -7
  115. package/hooks/features/rows/useGridRowsMeta.js +7 -14
  116. package/hooks/features/scroll/useGridScroll.d.ts +2 -0
  117. package/hooks/features/scroll/useGridScroll.js +27 -14
  118. package/hooks/features/selection/gridSelectionSelector.d.ts +1 -3
  119. package/hooks/features/selection/useGridSelection.d.ts +4 -2
  120. package/hooks/features/selection/useGridSelection.js +75 -27
  121. package/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
  122. package/hooks/features/sorting/gridSortingSelector.d.ts +1 -3
  123. package/hooks/features/sorting/gridSortingUtils.d.ts +1 -2
  124. package/hooks/features/sorting/useGridSorting.js +13 -13
  125. package/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  126. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +9 -0
  127. package/hooks/features/virtualization/useGridVirtualScroller.js +64 -27
  128. package/hooks/utils/useGridRootProps.d.ts +1 -1
  129. package/hooks/utils/useGridVisibleRows.d.ts +2 -2
  130. package/index.js +1 -1
  131. package/internals/index.d.ts +4 -6
  132. package/internals/index.js +3 -3
  133. package/legacy/DataGrid/DataGrid.js +28 -5
  134. package/legacy/DataGrid/useDataGridComponent.js +5 -5
  135. package/legacy/colDef/gridDateColDef.js +2 -2
  136. package/legacy/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
  137. package/legacy/colDef/index.js +2 -1
  138. package/legacy/components/GridRow.js +53 -24
  139. package/legacy/components/base/GridOverlays.js +4 -3
  140. package/legacy/components/cell/GridActionsCell.js +188 -27
  141. package/legacy/components/cell/GridActionsCellItem.js +7 -5
  142. package/legacy/components/cell/GridCell.js +31 -9
  143. package/legacy/components/cell/GridEditInputCell.js +3 -3
  144. package/legacy/components/cell/GridEditSingleSelectCell.js +35 -26
  145. package/legacy/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
  146. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +9 -12
  147. package/legacy/components/columnHeaders/GridColumnHeaders.js +2 -3
  148. package/legacy/components/columnHeaders/index.js +1 -0
  149. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +23 -5
  150. package/legacy/components/containers/GridRoot.js +34 -17
  151. package/legacy/components/containers/GridRootStyles.js +26 -5
  152. package/legacy/components/menu/GridMenu.js +1 -0
  153. package/legacy/components/menu/columnMenu/GridColumnMenu.js +1 -1
  154. package/legacy/components/panel/GridPanel.js +1 -0
  155. package/legacy/components/panel/GridPreferencesPanel.js +1 -1
  156. package/legacy/components/panel/filterPanel/GridFilterForm.js +14 -10
  157. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +13 -8
  158. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +22 -17
  159. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +22 -17
  160. package/legacy/components/toolbar/GridToolbarDensitySelector.js +1 -1
  161. package/legacy/components/virtualization/GridVirtualScroller.js +2 -0
  162. package/legacy/components/virtualization/GridVirtualScrollerContent.js +1 -3
  163. package/legacy/constants/defaultGridSlotsComponents.js +4 -2
  164. package/legacy/constants/gridClasses.js +1 -1
  165. package/legacy/constants/gridDetailPanelToggleField.js +2 -0
  166. package/legacy/constants/localeTextConstants.js +3 -1
  167. package/legacy/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
  168. package/legacy/hooks/core/pipeProcessing/index.js +4 -0
  169. package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +119 -0
  170. package/legacy/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeApplier.js} +2 -6
  171. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +27 -0
  172. package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
  173. package/legacy/hooks/core/useGridInitialization.js +2 -2
  174. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +90 -11
  175. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
  176. package/legacy/hooks/features/columns/gridColumnsUtils.js +120 -32
  177. package/legacy/hooks/features/columns/useGridColumnSpanning.js +107 -0
  178. package/legacy/hooks/features/columns/useGridColumns.js +55 -40
  179. package/legacy/hooks/features/dimensions/useGridDimensions.js +5 -4
  180. package/legacy/hooks/features/editRows/useGridCellEditing.new.js +36 -15
  181. package/legacy/hooks/features/editRows/useGridEditing.new.js +7 -3
  182. package/legacy/hooks/features/editRows/useGridRowEditing.new.js +53 -30
  183. package/legacy/hooks/features/events/useGridEvents.js +2 -0
  184. package/legacy/hooks/features/filter/useGridFilter.js +18 -13
  185. package/legacy/hooks/features/focus/useGridFocus.js +19 -9
  186. package/legacy/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +66 -12
  187. package/legacy/hooks/features/pagination/useGridPage.js +11 -4
  188. package/legacy/hooks/features/pagination/useGridPageSize.js +3 -3
  189. package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
  190. package/legacy/hooks/features/rows/gridRowsSelector.js +3 -0
  191. package/legacy/hooks/features/rows/gridRowsUtils.js +13 -0
  192. package/legacy/hooks/features/rows/index.js +1 -1
  193. package/legacy/hooks/features/rows/useGridRows.js +35 -9
  194. package/legacy/hooks/features/rows/useGridRowsMeta.js +7 -14
  195. package/legacy/hooks/features/scroll/useGridScroll.js +27 -14
  196. package/legacy/hooks/features/selection/useGridSelection.js +77 -27
  197. package/legacy/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
  198. package/legacy/hooks/features/sorting/useGridSorting.js +8 -10
  199. package/legacy/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  200. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +75 -37
  201. package/legacy/index.js +1 -1
  202. package/legacy/internals/index.js +3 -3
  203. package/legacy/locales/arSD.js +3 -1
  204. package/legacy/locales/bgBG.js +3 -1
  205. package/legacy/locales/csCZ.js +2 -0
  206. package/legacy/locales/daDK.js +37 -31
  207. package/legacy/locales/deDE.js +3 -1
  208. package/legacy/locales/elGR.js +2 -0
  209. package/legacy/locales/esES.js +2 -0
  210. package/legacy/locales/faIR.js +3 -1
  211. package/legacy/locales/fiFI.js +2 -0
  212. package/legacy/locales/frFR.js +2 -0
  213. package/legacy/locales/heIL.js +3 -1
  214. package/legacy/locales/huHU.js +122 -0
  215. package/legacy/locales/index.js +1 -0
  216. package/legacy/locales/itIT.js +2 -0
  217. package/legacy/locales/jaJP.js +2 -0
  218. package/legacy/locales/koKR.js +2 -0
  219. package/legacy/locales/nlNL.js +2 -0
  220. package/legacy/locales/plPL.js +3 -1
  221. package/legacy/locales/ptBR.js +3 -1
  222. package/legacy/locales/ruRU.js +2 -0
  223. package/legacy/locales/skSK.js +2 -0
  224. package/legacy/locales/trTR.js +3 -1
  225. package/legacy/locales/ukUA.js +2 -0
  226. package/legacy/locales/viVN.js +2 -0
  227. package/legacy/locales/zhCN.js +2 -0
  228. package/{modern/hooks/core/preProcessing/gridPreProcessingApi.js → legacy/models/api/gridColumnSpanning.js} +0 -0
  229. package/legacy/models/colDef/index.js +1 -2
  230. package/legacy/models/events/gridEvents.js +10 -3
  231. package/legacy/models/gridColumnSpanning.js +1 -0
  232. package/legacy/models/gridRows.js +1 -33
  233. package/legacy/models/index.js +2 -2
  234. package/legacy/models/params/gridPreferencePanelParams.js +1 -0
  235. package/legacy/models/params/index.js +2 -1
  236. package/locales/arSD.js +3 -1
  237. package/locales/bgBG.js +3 -1
  238. package/locales/csCZ.js +2 -0
  239. package/locales/daDK.js +33 -31
  240. package/locales/deDE.js +3 -1
  241. package/locales/elGR.js +2 -0
  242. package/locales/esES.js +2 -0
  243. package/locales/faIR.js +3 -1
  244. package/locales/fiFI.js +2 -0
  245. package/locales/frFR.js +2 -0
  246. package/locales/heIL.js +3 -1
  247. package/locales/huHU.d.ts +2 -0
  248. package/locales/huHU.js +110 -0
  249. package/locales/index.d.ts +1 -0
  250. package/locales/index.js +1 -0
  251. package/locales/itIT.js +2 -0
  252. package/locales/jaJP.js +2 -0
  253. package/locales/koKR.js +2 -0
  254. package/locales/nlNL.js +2 -0
  255. package/locales/plPL.js +3 -1
  256. package/locales/ptBR.js +3 -1
  257. package/locales/ruRU.js +2 -0
  258. package/locales/skSK.js +2 -0
  259. package/locales/trTR.js +3 -1
  260. package/locales/ukUA.js +2 -0
  261. package/locales/viVN.js +2 -0
  262. package/locales/zhCN.js +2 -0
  263. package/models/api/gridApiCommon.d.ts +3 -2
  264. package/models/api/gridColumnSpanning.d.ts +28 -0
  265. package/models/api/gridColumnSpanning.js +1 -0
  266. package/models/api/gridEditingApi.d.ts +51 -5
  267. package/models/api/gridLocaleTextApi.d.ts +1 -0
  268. package/models/api/gridParamsApi.d.ts +5 -5
  269. package/models/api/gridRowApi.d.ts +8 -2
  270. package/models/colDef/gridColDef.d.ts +38 -28
  271. package/models/colDef/index.d.ts +0 -1
  272. package/models/colDef/index.js +1 -2
  273. package/models/events/gridEventLookup.d.ts +30 -9
  274. package/models/events/gridEvents.d.ts +50 -17
  275. package/models/events/gridEvents.js +10 -3
  276. package/models/gridCell.d.ts +1 -0
  277. package/models/gridColumnSpanning.d.ts +12 -0
  278. package/models/gridColumnSpanning.js +1 -0
  279. package/models/gridEditRowModel.d.ts +1 -1
  280. package/models/gridFilterOperator.d.ts +3 -2
  281. package/models/gridIconSlotsComponent.d.ts +5 -0
  282. package/models/gridRows.d.ts +10 -18
  283. package/models/gridRows.js +1 -31
  284. package/models/gridSlotsComponent.d.ts +5 -0
  285. package/models/gridSlotsComponentsProps.d.ts +1 -0
  286. package/models/gridSortModel.d.ts +3 -4
  287. package/models/index.d.ts +1 -1
  288. package/models/index.js +2 -2
  289. package/models/params/gridCellParams.d.ts +25 -15
  290. package/models/params/gridColumnHeaderParams.d.ts +3 -2
  291. package/models/params/gridEditCellParams.d.ts +2 -3
  292. package/models/params/gridPreferencePanelParams.d.ts +3 -0
  293. package/models/params/gridPreferencePanelParams.js +1 -0
  294. package/models/params/gridRowParams.d.ts +12 -8
  295. package/models/params/gridValueOptionsParams.d.ts +3 -3
  296. package/models/params/index.d.ts +1 -0
  297. package/models/params/index.js +2 -1
  298. package/models/props/DataGridProps.d.ts +37 -17
  299. package/modern/DataGrid/DataGrid.js +28 -5
  300. package/modern/DataGrid/useDataGridComponent.js +5 -5
  301. package/modern/colDef/gridDateColDef.js +2 -2
  302. package/modern/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
  303. package/modern/colDef/index.js +2 -1
  304. package/modern/components/GridRow.js +53 -22
  305. package/modern/components/base/GridOverlays.js +4 -3
  306. package/modern/components/cell/GridActionsCell.js +168 -21
  307. package/modern/components/cell/GridActionsCellItem.js +7 -5
  308. package/modern/components/cell/GridCell.js +30 -9
  309. package/modern/components/cell/GridEditInputCell.js +3 -3
  310. package/modern/components/cell/GridEditSingleSelectCell.js +22 -13
  311. package/modern/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
  312. package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -10
  313. package/modern/components/columnHeaders/GridColumnHeaders.js +1 -1
  314. package/modern/components/columnHeaders/index.js +1 -0
  315. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +22 -5
  316. package/modern/components/containers/GridRoot.js +29 -17
  317. package/modern/components/containers/GridRootStyles.js +36 -1
  318. package/modern/components/menu/GridMenu.js +1 -0
  319. package/modern/components/menu/columnMenu/GridColumnMenu.js +1 -1
  320. package/modern/components/panel/GridPanel.js +1 -0
  321. package/modern/components/panel/GridPreferencesPanel.js +1 -1
  322. package/modern/components/panel/filterPanel/GridFilterForm.js +10 -6
  323. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +11 -6
  324. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +20 -13
  325. package/modern/components/panel/filterPanel/GridFilterInputValue.js +20 -13
  326. package/modern/components/toolbar/GridToolbarDensitySelector.js +1 -1
  327. package/modern/components/virtualization/GridVirtualScroller.js +2 -0
  328. package/modern/components/virtualization/GridVirtualScrollerContent.js +1 -3
  329. package/modern/constants/defaultGridSlotsComponents.js +4 -2
  330. package/modern/constants/gridClasses.js +1 -1
  331. package/modern/constants/gridDetailPanelToggleField.js +2 -0
  332. package/modern/constants/localeTextConstants.js +3 -1
  333. package/modern/hooks/core/pipeProcessing/gridPipeProcessingApi.js +1 -0
  334. package/modern/hooks/core/pipeProcessing/index.js +4 -0
  335. package/modern/hooks/core/pipeProcessing/useGridPipeProcessing.js +108 -0
  336. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
  337. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +27 -0
  338. package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
  339. package/modern/hooks/core/useGridInitialization.js +2 -2
  340. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +77 -11
  341. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
  342. package/modern/hooks/features/columns/gridColumnsUtils.js +105 -20
  343. package/modern/hooks/features/columns/useGridColumnSpanning.js +107 -0
  344. package/modern/hooks/features/columns/useGridColumns.js +55 -40
  345. package/modern/hooks/features/dimensions/useGridDimensions.js +5 -4
  346. package/modern/hooks/features/editRows/useGridCellEditing.new.js +40 -17
  347. package/modern/hooks/features/editRows/useGridEditing.new.js +7 -3
  348. package/modern/hooks/features/editRows/useGridRowEditing.new.js +44 -21
  349. package/modern/hooks/features/events/useGridEvents.js +2 -0
  350. package/modern/hooks/features/filter/useGridFilter.js +18 -13
  351. package/modern/hooks/features/focus/useGridFocus.js +19 -9
  352. package/modern/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +64 -13
  353. package/modern/hooks/features/pagination/useGridPage.js +9 -4
  354. package/modern/hooks/features/pagination/useGridPageSize.js +3 -3
  355. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
  356. package/modern/hooks/features/rows/gridRowsSelector.js +1 -0
  357. package/modern/hooks/features/rows/gridRowsUtils.js +11 -0
  358. package/modern/hooks/features/rows/index.js +1 -1
  359. package/modern/hooks/features/rows/useGridRows.js +25 -5
  360. package/modern/hooks/features/rows/useGridRowsMeta.js +7 -14
  361. package/modern/hooks/features/scroll/useGridScroll.js +25 -10
  362. package/modern/hooks/features/selection/useGridSelection.js +75 -27
  363. package/modern/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
  364. package/modern/hooks/features/sorting/useGridSorting.js +13 -13
  365. package/modern/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  366. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +64 -23
  367. package/modern/index.js +1 -1
  368. package/modern/internals/index.js +3 -3
  369. package/modern/locales/arSD.js +3 -1
  370. package/modern/locales/bgBG.js +3 -1
  371. package/modern/locales/csCZ.js +2 -0
  372. package/modern/locales/daDK.js +33 -31
  373. package/modern/locales/deDE.js +3 -1
  374. package/modern/locales/elGR.js +2 -0
  375. package/modern/locales/esES.js +2 -0
  376. package/modern/locales/faIR.js +3 -1
  377. package/modern/locales/fiFI.js +2 -0
  378. package/modern/locales/frFR.js +2 -0
  379. package/modern/locales/heIL.js +3 -1
  380. package/modern/locales/huHU.js +110 -0
  381. package/modern/locales/index.js +1 -0
  382. package/modern/locales/itIT.js +2 -0
  383. package/modern/locales/jaJP.js +2 -0
  384. package/modern/locales/koKR.js +2 -0
  385. package/modern/locales/nlNL.js +2 -0
  386. package/modern/locales/plPL.js +3 -1
  387. package/modern/locales/ptBR.js +3 -1
  388. package/modern/locales/ruRU.js +2 -0
  389. package/modern/locales/skSK.js +2 -0
  390. package/modern/locales/trTR.js +3 -1
  391. package/modern/locales/ukUA.js +2 -0
  392. package/modern/locales/viVN.js +2 -0
  393. package/modern/locales/zhCN.js +2 -0
  394. package/modern/models/api/gridColumnSpanning.js +1 -0
  395. package/modern/models/colDef/index.js +1 -2
  396. package/modern/models/events/gridEvents.js +10 -3
  397. package/modern/models/gridColumnSpanning.js +1 -0
  398. package/modern/models/gridRows.js +1 -31
  399. package/modern/models/index.js +2 -2
  400. package/modern/models/params/gridPreferencePanelParams.js +1 -0
  401. package/modern/models/params/index.js +2 -1
  402. package/node/DataGrid/DataGrid.js +28 -5
  403. package/node/DataGrid/useDataGridComponent.js +6 -6
  404. package/node/colDef/gridDateColDef.js +2 -2
  405. package/node/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
  406. package/node/colDef/index.js +13 -0
  407. package/node/components/GridRow.js +56 -24
  408. package/node/components/base/GridOverlays.js +3 -2
  409. package/node/components/cell/GridActionsCell.js +172 -21
  410. package/node/components/cell/GridActionsCellItem.js +7 -4
  411. package/node/components/cell/GridCell.js +30 -9
  412. package/node/components/cell/GridEditInputCell.js +3 -3
  413. package/node/components/cell/GridEditSingleSelectCell.js +25 -15
  414. package/node/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +23 -5
  415. package/node/components/columnHeaders/GridColumnHeaderItem.js +9 -13
  416. package/node/components/columnHeaders/GridColumnHeaders.js +1 -1
  417. package/node/components/columnHeaders/index.js +13 -0
  418. package/node/components/columnSelection/GridCellCheckboxRenderer.js +22 -5
  419. package/node/components/containers/GridRoot.js +28 -17
  420. package/node/components/containers/GridRootStyles.js +36 -1
  421. package/node/components/menu/GridMenu.js +1 -0
  422. package/node/components/menu/columnMenu/GridColumnMenu.js +1 -1
  423. package/node/components/panel/GridPanel.js +1 -0
  424. package/node/components/panel/GridPreferencesPanel.js +1 -1
  425. package/node/components/panel/filterPanel/GridFilterForm.js +15 -10
  426. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +14 -8
  427. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +23 -15
  428. package/node/components/panel/filterPanel/GridFilterInputValue.js +23 -15
  429. package/node/components/toolbar/GridToolbarDensitySelector.js +1 -1
  430. package/node/components/virtualization/GridVirtualScroller.js +2 -0
  431. package/node/components/virtualization/GridVirtualScrollerContent.js +1 -3
  432. package/node/constants/defaultGridSlotsComponents.js +3 -1
  433. package/node/constants/gridClasses.js +1 -1
  434. package/node/constants/gridDetailPanelToggleField.js +9 -0
  435. package/node/constants/localeTextConstants.js +3 -1
  436. package/node/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
  437. package/node/hooks/core/pipeProcessing/index.js +57 -0
  438. package/node/hooks/core/pipeProcessing/useGridPipeProcessing.js +124 -0
  439. package/node/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeApplier.js} +4 -7
  440. package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +42 -0
  441. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
  442. package/node/hooks/core/useGridInitialization.js +2 -2
  443. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +81 -11
  444. package/node/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
  445. package/node/hooks/features/columns/gridColumnsUtils.js +114 -25
  446. package/node/hooks/features/columns/useGridColumnSpanning.js +130 -0
  447. package/node/hooks/features/columns/useGridColumns.js +55 -40
  448. package/node/hooks/features/dimensions/useGridDimensions.js +5 -4
  449. package/node/hooks/features/editRows/useGridCellEditing.new.js +42 -17
  450. package/node/hooks/features/editRows/useGridEditing.new.js +6 -2
  451. package/node/hooks/features/editRows/useGridRowEditing.new.js +45 -21
  452. package/node/hooks/features/events/useGridEvents.js +2 -0
  453. package/node/hooks/features/filter/useGridFilter.js +18 -13
  454. package/node/hooks/features/focus/useGridFocus.js +19 -9
  455. package/node/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +69 -13
  456. package/node/hooks/features/pagination/useGridPage.js +8 -3
  457. package/node/hooks/features/pagination/useGridPageSize.js +3 -3
  458. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +20 -5
  459. package/node/hooks/features/rows/gridRowsSelector.js +3 -1
  460. package/node/hooks/features/rows/gridRowsUtils.js +18 -0
  461. package/node/hooks/features/rows/index.js +15 -1
  462. package/node/hooks/features/rows/useGridRows.js +29 -9
  463. package/node/hooks/features/rows/useGridRowsMeta.js +7 -15
  464. package/node/hooks/features/scroll/useGridScroll.js +28 -14
  465. package/node/hooks/features/selection/useGridSelection.js +75 -26
  466. package/node/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
  467. package/node/hooks/features/sorting/useGridSorting.js +13 -13
  468. package/node/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  469. package/node/hooks/features/virtualization/useGridVirtualScroller.js +69 -27
  470. package/node/index.js +1 -1
  471. package/node/internals/index.js +12 -12
  472. package/node/locales/arSD.js +3 -1
  473. package/node/locales/bgBG.js +3 -1
  474. package/node/locales/csCZ.js +2 -0
  475. package/node/locales/daDK.js +33 -31
  476. package/node/locales/deDE.js +3 -1
  477. package/node/locales/elGR.js +2 -0
  478. package/node/locales/esES.js +2 -0
  479. package/node/locales/faIR.js +3 -1
  480. package/node/locales/fiFI.js +2 -0
  481. package/node/locales/frFR.js +2 -0
  482. package/node/locales/heIL.js +3 -1
  483. package/node/locales/huHU.js +120 -0
  484. package/node/locales/index.js +13 -0
  485. package/node/locales/itIT.js +2 -0
  486. package/node/locales/jaJP.js +2 -0
  487. package/node/locales/koKR.js +2 -0
  488. package/node/locales/nlNL.js +2 -0
  489. package/node/locales/plPL.js +3 -1
  490. package/node/locales/ptBR.js +3 -1
  491. package/node/locales/ruRU.js +2 -0
  492. package/node/locales/skSK.js +2 -0
  493. package/node/locales/trTR.js +3 -1
  494. package/node/locales/ukUA.js +2 -0
  495. package/node/locales/viVN.js +2 -0
  496. package/node/locales/zhCN.js +2 -0
  497. package/node/models/api/gridColumnSpanning.js +5 -0
  498. package/node/models/colDef/index.js +0 -13
  499. package/node/models/events/gridEvents.js +10 -3
  500. package/node/models/gridColumnSpanning.js +5 -0
  501. package/node/models/gridRows.js +1 -34
  502. package/node/models/index.js +13 -13
  503. package/node/models/params/gridPreferencePanelParams.js +5 -0
  504. package/node/models/params/index.js +13 -0
  505. package/package.json +4 -4
  506. package/utils/domUtils.d.ts +2 -2
  507. package/components/columnHeaders/ColumnHeaderFilterIcon.d.ts +0 -5
  508. package/hooks/core/preProcessing/gridPreProcessingApi.d.ts +0 -67
  509. package/hooks/core/preProcessing/index.d.ts +0 -3
  510. package/hooks/core/preProcessing/index.js +0 -3
  511. package/hooks/core/preProcessing/useGridPreProcessing.d.ts +0 -6
  512. package/hooks/core/preProcessing/useGridPreProcessing.js +0 -53
  513. package/hooks/core/preProcessing/useGridRegisterPreProcessor.d.ts +0 -7
  514. package/hooks/features/keyboard/useGridKeyboard.d.ts +0 -10
  515. package/hooks/features/keyboard/useGridKeyboard.js +0 -70
  516. package/legacy/hooks/core/preProcessing/index.js +0 -3
  517. package/legacy/hooks/core/preProcessing/useGridPreProcessing.js +0 -62
  518. package/legacy/hooks/features/keyboard/useGridKeyboard.js +0 -70
  519. package/modern/hooks/core/preProcessing/index.js +0 -3
  520. package/modern/hooks/core/preProcessing/useGridPreProcessing.js +0 -53
  521. package/modern/hooks/features/keyboard/useGridKeyboard.js +0 -70
  522. package/node/hooks/core/preProcessing/index.js +0 -44
  523. package/node/hooks/core/preProcessing/useGridPreProcessing.js +0 -72
  524. package/node/hooks/features/keyboard/useGridKeyboard.js +0 -91
@@ -23,34 +23,56 @@ var _gridCheckboxSelectionColDef = require("../../../colDef/gridCheckboxSelectio
23
23
 
24
24
  var _gridClasses = require("../../../constants/gridClasses");
25
25
 
26
+ var _gridEditRowModel = require("../../../models/gridEditRowModel");
27
+
28
+ var _keyboardUtils = require("../../../utils/keyboardUtils");
29
+
30
+ var _gridDetailPanelToggleField = require("../../../constants/gridDetailPanelToggleField");
31
+
26
32
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
33
 
28
34
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
35
 
30
36
  /**
31
- * @requires useGridPage (state)
32
- * @requires useGridPageSize (state)
33
- * @requires useGridFilter (state)
34
- * @requires useGridColumns (state, method)
35
- * @requires useGridRows (state, method)
36
37
  * @requires useGridSorting (method) - can be after
38
+ * @requires useGridFilter (state) - can be after
39
+ * @requires useGridColumns (state, method) - can be after
37
40
  * @requires useGridDimensions (method) - can be after
38
41
  * @requires useGridFocus (method) - can be after
39
42
  * @requires useGridScroll (method) - can be after
43
+ * @requires useGridColumnSpanning (method) - can be after
40
44
  */
41
45
  const useGridKeyboardNavigation = (apiRef, props) => {
42
46
  const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridKeyboardNavigation');
43
47
  const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, props);
44
- const goToCell = React.useCallback((colIndex, rowIndex) => {
48
+ /**
49
+ * @param {number} colIndex Index of the column to focus
50
+ * @param {number} rowIndex index of the row to focus
51
+ * @param {string} closestColumnToUse Which closest column cell to use when the cell is spanned by `colSpan`.
52
+ */
53
+
54
+ const goToCell = React.useCallback((colIndex, rowIndex, closestColumnToUse = 'left') => {
55
+ var _visibleSortedRows$ro;
56
+
57
+ const visibleSortedRows = (0, _gridFilterSelector.gridVisibleSortedRowEntriesSelector)(apiRef);
58
+ const rowId = (_visibleSortedRows$ro = visibleSortedRows[rowIndex]) == null ? void 0 : _visibleSortedRows$ro.id;
59
+ const nextCellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, colIndex);
60
+
61
+ if (nextCellColSpanInfo && nextCellColSpanInfo.spannedByColSpan) {
62
+ if (closestColumnToUse === 'left') {
63
+ colIndex = nextCellColSpanInfo.leftVisibleCellIndex;
64
+ } else if (closestColumnToUse === 'right') {
65
+ colIndex = nextCellColSpanInfo.rightVisibleCellIndex;
66
+ }
67
+ }
68
+
45
69
  logger.debug(`Navigating to cell row ${rowIndex}, col ${colIndex}`);
46
70
  apiRef.current.scrollToIndexes({
47
71
  colIndex,
48
72
  rowIndex
49
73
  });
50
74
  const field = apiRef.current.getVisibleColumns()[colIndex].field;
51
- const visibleSortedRows = (0, _gridFilterSelector.gridVisibleSortedRowEntriesSelector)(apiRef);
52
- const node = visibleSortedRows[rowIndex];
53
- apiRef.current.setCellFocus(node.id, field);
75
+ apiRef.current.setCellFocus(rowId, field);
54
76
  }, [apiRef, logger]);
55
77
  const goToHeader = React.useCallback((colIndex, event) => {
56
78
  logger.debug(`Navigating to header col ${colIndex}`);
@@ -103,7 +125,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
103
125
  case 'ArrowRight':
104
126
  {
105
127
  if (colIndexBefore < lastColIndex) {
106
- goToCell(colIndexBefore + 1, rowIndexBefore);
128
+ goToCell(colIndexBefore + 1, rowIndexBefore, 'right');
107
129
  }
108
130
 
109
131
  break;
@@ -122,16 +144,36 @@ const useGridKeyboardNavigation = (apiRef, props) => {
122
144
  {
123
145
  // "Tab" is only triggered by the row / cell editing feature
124
146
  if (event.shiftKey && colIndexBefore > firstColIndex) {
125
- goToCell(colIndexBefore - 1, rowIndexBefore);
147
+ goToCell(colIndexBefore - 1, rowIndexBefore, 'left');
126
148
  } else if (!event.shiftKey && colIndexBefore < lastColIndex) {
127
- goToCell(colIndexBefore + 1, rowIndexBefore);
149
+ goToCell(colIndexBefore + 1, rowIndexBefore, 'right');
128
150
  }
129
151
 
130
152
  break;
131
153
  }
132
154
 
133
- case 'PageDown':
134
155
  case ' ':
156
+ {
157
+ const field = params.field;
158
+
159
+ if (field === _gridDetailPanelToggleField.GRID_DETAIL_PANEL_TOGGLE_FIELD) {
160
+ break;
161
+ }
162
+
163
+ const colDef = params.colDef;
164
+
165
+ if (colDef && colDef.type === 'treeDataGroup') {
166
+ break;
167
+ }
168
+
169
+ if (!event.shiftKey && rowIndexBefore < lastRowIndexInPage) {
170
+ goToCell(colIndexBefore, Math.min(rowIndexBefore + viewportPageSize, lastRowIndexInPage));
171
+ }
172
+
173
+ break;
174
+ }
175
+
176
+ case 'PageDown':
135
177
  {
136
178
  if (rowIndexBefore < lastRowIndexInPage) {
137
179
  goToCell(colIndexBefore, Math.min(rowIndexBefore + viewportPageSize, lastRowIndexInPage));
@@ -286,8 +328,22 @@ const useGridKeyboardNavigation = (apiRef, props) => {
286
328
  event.preventDefault();
287
329
  }
288
330
  }, [apiRef, currentPage, goToCell, goToHeader]);
331
+ const handleCellKeyDown = React.useCallback((params, event) => {
332
+ // Ignore portal
333
+ if (!event.currentTarget.contains(event.target)) {
334
+ return;
335
+ } // Get the most recent params because the cell mode may have changed by another listener
336
+
337
+
338
+ const cellParams = apiRef.current.getCellParams(params.id, params.field);
339
+
340
+ if (cellParams.cellMode !== _gridEditRowModel.GridCellModes.Edit && (0, _keyboardUtils.isNavigationKey)(event.key)) {
341
+ apiRef.current.publishEvent(_events.GridEvents.cellNavigationKeyDown, cellParams, event);
342
+ }
343
+ }, [apiRef]);
289
344
  (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.cellNavigationKeyDown, handleCellNavigationKeyDown);
290
345
  (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.columnHeaderKeyDown, handleColumnHeaderKeyDown);
346
+ (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.cellKeyDown, handleCellKeyDown);
291
347
  };
292
348
 
293
349
  exports.useGridKeyboardNavigation = useGridKeyboardNavigation;
@@ -19,7 +19,7 @@ var _filter = require("../filter");
19
19
 
20
20
  var _gridPaginationSelector = require("./gridPaginationSelector");
21
21
 
22
- var _preProcessing = require("../../core/preProcessing");
22
+ var _pipeProcessing = require("../../core/pipeProcessing");
23
23
 
24
24
  var _warning = require("../../../utils/warning");
25
25
 
@@ -114,8 +114,8 @@ const useGridPage = (apiRef, props) => {
114
114
  apiRef.current.setState(mergeStateWithPage(page));
115
115
  return params;
116
116
  }, [apiRef]);
117
- (0, _preProcessing.useGridRegisterPreProcessor)(apiRef, 'exportState', stateExportPreProcessing);
118
- (0, _preProcessing.useGridRegisterPreProcessor)(apiRef, 'restoreState', stateRestorePreProcessing);
117
+ (0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'exportState', stateExportPreProcessing);
118
+ (0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'restoreState', stateRestorePreProcessing);
119
119
  /**
120
120
  * EVENTS
121
121
  */
@@ -133,7 +133,12 @@ const useGridPage = (apiRef, props) => {
133
133
  apiRef.current.forceUpdate();
134
134
  };
135
135
 
136
+ const handlePageChange = () => apiRef.current.scrollToIndexes({
137
+ rowIndex: (0, _gridPaginationSelector.gridPageSelector)(apiRef) * (0, _gridPaginationSelector.gridPageSizeSelector)(apiRef)
138
+ });
139
+
136
140
  (0, _utils.useGridApiEventHandler)(apiRef, _events.GridEvents.pageSizeChange, handlePageSizeChange);
141
+ (0, _utils.useGridApiEventHandler)(apiRef, _events.GridEvents.pageChange, handlePageChange);
137
142
  /**
138
143
  * EFFECTS
139
144
  */
@@ -19,7 +19,7 @@ var _gridPaginationSelector = require("./gridPaginationSelector");
19
19
 
20
20
  var _density = require("../density");
21
21
 
22
- var _preProcessing = require("../../core/preProcessing");
22
+ var _pipeProcessing = require("../../core/pipeProcessing");
23
23
 
24
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
25
 
@@ -106,8 +106,8 @@ const useGridPageSize = (apiRef, props) => {
106
106
 
107
107
  return params;
108
108
  }, [apiRef]);
109
- (0, _preProcessing.useGridRegisterPreProcessor)(apiRef, 'exportState', stateExportPreProcessing);
110
- (0, _preProcessing.useGridRegisterPreProcessor)(apiRef, 'restoreState', stateRestorePreProcessing);
109
+ (0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'exportState', stateExportPreProcessing);
110
+ (0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'restoreState', stateRestorePreProcessing);
111
111
  /**
112
112
  * EVENTS
113
113
  */
@@ -11,14 +11,18 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
 
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
 
14
+ var _events = require("../../../models/events");
15
+
14
16
  var _useGridApiMethod = require("../../utils/useGridApiMethod");
15
17
 
16
18
  var _useGridLogger = require("../../utils/useGridLogger");
17
19
 
18
- var _preProcessing = require("../../core/preProcessing");
20
+ var _pipeProcessing = require("../../core/pipeProcessing");
19
21
 
20
22
  var _gridPreferencePanelSelector = require("./gridPreferencePanelSelector");
21
23
 
24
+ var _useGridSelector = require("../../utils/useGridSelector");
25
+
22
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
27
 
24
28
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -41,6 +45,7 @@ exports.preferencePanelStateInitializer = preferencePanelStateInitializer;
41
45
 
42
46
  const useGridPreferencesPanel = apiRef => {
43
47
  const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridPreferencesPanel');
48
+ const preferencePanelState = (0, _useGridSelector.useGridSelector)(apiRef, _gridPreferencePanelSelector.gridPreferencePanelStateSelector);
44
49
  const hideTimeout = React.useRef();
45
50
  const immediateTimeout = React.useRef();
46
51
  /**
@@ -49,13 +54,20 @@ const useGridPreferencesPanel = apiRef => {
49
54
 
50
55
  const hidePreferences = React.useCallback(() => {
51
56
  logger.debug('Hiding Preferences Panel');
57
+
58
+ if (preferencePanelState.openedPanelValue) {
59
+ apiRef.current.publishEvent(_events.GridEvents.preferencePanelClose, {
60
+ openedPanelValue: preferencePanelState.openedPanelValue
61
+ });
62
+ }
63
+
52
64
  apiRef.current.setState(state => (0, _extends2.default)({}, state, {
53
65
  preferencePanel: {
54
66
  open: false
55
67
  }
56
68
  }));
57
69
  apiRef.current.forceUpdate();
58
- }, [apiRef, logger]); // This is to prevent the preferences from closing when you open a select box or another panel,
70
+ }, [apiRef, logger, preferencePanelState.openedPanelValue]); // This is to prevent the preferences from closing when you open a select box or another panel,
59
71
  // The issue is in MUI core V4 => Fixed in V5
60
72
 
61
73
  const doNotHidePanel = React.useCallback(() => {
@@ -75,8 +87,11 @@ const useGridPreferencesPanel = apiRef => {
75
87
  openedPanelValue: newValue
76
88
  })
77
89
  }));
90
+ apiRef.current.publishEvent(_events.GridEvents.preferencePanelOpen, {
91
+ openedPanelValue: newValue
92
+ });
78
93
  apiRef.current.forceUpdate();
79
- }, [doNotHidePanel, apiRef, logger]);
94
+ }, [logger, doNotHidePanel, apiRef]);
80
95
  (0, _useGridApiMethod.useGridApiMethod)(apiRef, {
81
96
  showPreferences,
82
97
  hidePreferences: hidePreferencesDelayed
@@ -107,8 +122,8 @@ const useGridPreferencesPanel = apiRef => {
107
122
 
108
123
  return params;
109
124
  }, [apiRef]);
110
- (0, _preProcessing.useGridRegisterPreProcessor)(apiRef, 'exportState', stateExportPreProcessing);
111
- (0, _preProcessing.useGridRegisterPreProcessor)(apiRef, 'restoreState', stateRestorePreProcessing);
125
+ (0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'exportState', stateExportPreProcessing);
126
+ (0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'restoreState', stateRestorePreProcessing);
112
127
  /**
113
128
  * EFFECTS
114
129
  */
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.gridTopLevelRowCountSelector = exports.gridRowsStateSelector = exports.gridRowsLookupSelector = exports.gridRowTreeSelector = exports.gridRowTreeDepthSelector = exports.gridRowIdsSelector = exports.gridRowGroupingNameSelector = exports.gridRowCountSelector = void 0;
6
+ exports.gridTopLevelRowCountSelector = exports.gridRowsStateSelector = exports.gridRowsLookupSelector = exports.gridRowsLoadingSelector = exports.gridRowTreeSelector = exports.gridRowTreeDepthSelector = exports.gridRowIdsSelector = exports.gridRowGroupingNameSelector = exports.gridRowCountSelector = void 0;
7
7
 
8
8
  var _createSelector = require("../../../utils/createSelector");
9
9
 
@@ -12,6 +12,8 @@ const gridRowsStateSelector = state => state.rows;
12
12
  exports.gridRowsStateSelector = gridRowsStateSelector;
13
13
  const gridRowCountSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.totalRowCount);
14
14
  exports.gridRowCountSelector = gridRowCountSelector;
15
+ const gridRowsLoadingSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.loading);
16
+ exports.gridRowsLoadingSelector = gridRowsLoadingSelector;
15
17
  const gridTopLevelRowCountSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.totalTopLevelRowCount);
16
18
  exports.gridTopLevelRowCountSelector = gridTopLevelRowCountSelector;
17
19
  const gridRowsLookupSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.idRowsLookup);
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.checkGridRowIdIsValid = checkGridRowIdIsValid;
7
+
8
+ /**
9
+ * A helper function to check if the id provided is valid.
10
+ * @param {GridRowId} id Id as [[GridRowId]].
11
+ * @param {GridRowModel | Partial<GridRowModel>} row Row as [[GridRowModel]].
12
+ * @param {string} detailErrorMessage A custom error message to display for invalid IDs
13
+ */
14
+ function checkGridRowIdIsValid(id, row, detailErrorMessage = 'A row was provided without id in the rows prop:') {
15
+ if (id == null) {
16
+ 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'));
17
+ }
18
+ }
@@ -3,11 +3,21 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {
7
+ checkGridRowIdIsValid: true
8
+ };
9
+ Object.defineProperty(exports, "checkGridRowIdIsValid", {
10
+ enumerable: true,
11
+ get: function () {
12
+ return _gridRowsUtils.checkGridRowIdIsValid;
13
+ }
14
+ });
6
15
 
7
16
  var _gridRowsMetaSelector = require("./gridRowsMetaSelector");
8
17
 
9
18
  Object.keys(_gridRowsMetaSelector).forEach(function (key) {
10
19
  if (key === "default" || key === "__esModule") return;
20
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
11
21
  if (key in exports && exports[key] === _gridRowsMetaSelector[key]) return;
12
22
  Object.defineProperty(exports, key, {
13
23
  enumerable: true,
@@ -21,6 +31,7 @@ var _gridRowsMetaState = require("./gridRowsMetaState");
21
31
 
22
32
  Object.keys(_gridRowsMetaState).forEach(function (key) {
23
33
  if (key === "default" || key === "__esModule") return;
34
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
24
35
  if (key in exports && exports[key] === _gridRowsMetaState[key]) return;
25
36
  Object.defineProperty(exports, key, {
26
37
  enumerable: true,
@@ -34,6 +45,7 @@ var _gridRowsSelector = require("./gridRowsSelector");
34
45
 
35
46
  Object.keys(_gridRowsSelector).forEach(function (key) {
36
47
  if (key === "default" || key === "__esModule") return;
48
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
37
49
  if (key in exports && exports[key] === _gridRowsSelector[key]) return;
38
50
  Object.defineProperty(exports, key, {
39
51
  enumerable: true,
@@ -41,4 +53,6 @@ Object.keys(_gridRowsSelector).forEach(function (key) {
41
53
  return _gridRowsSelector[key];
42
54
  }
43
55
  });
44
- });
56
+ });
57
+
58
+ var _gridRowsUtils = require("./gridRowsUtils");
@@ -13,8 +13,6 @@ var React = _interopRequireWildcard(require("react"));
13
13
 
14
14
  var _events = require("../../../models/events");
15
15
 
16
- var _gridRows = require("../../../models/gridRows");
17
-
18
16
  var _useGridApiMethod = require("../../utils/useGridApiMethod");
19
17
 
20
18
  var _useGridLogger = require("../../utils/useGridLogger");
@@ -25,13 +23,15 @@ var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
25
23
 
26
24
  var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
27
25
 
26
+ var _gridRowsUtils = require("./gridRowsUtils");
27
+
28
28
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
29
 
30
30
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
31
 
32
32
  function getGridRowId(rowModel, getRowId, detailErrorMessage) {
33
33
  const id = getRowId ? getRowId(rowModel) : rowModel.id;
34
- (0, _gridRows.checkGridRowIdIsValid)(id, rowModel, detailErrorMessage);
34
+ (0, _gridRowsUtils.checkGridRowIdIsValid)(id, rowModel, detailErrorMessage);
35
35
  return id;
36
36
  }
37
37
 
@@ -64,7 +64,7 @@ const convertGridRowsPropToState = ({
64
64
  };
65
65
  };
66
66
 
67
- const getRowsStateFromCache = (rowsCache, previousTree, apiRef, rowCountProp) => {
67
+ const getRowsStateFromCache = (rowsCache, previousTree, apiRef, rowCountProp, loadingProp) => {
68
68
  const {
69
69
  value
70
70
  } = rowsCache.state;
@@ -74,6 +74,7 @@ const getRowsStateFromCache = (rowsCache, previousTree, apiRef, rowCountProp) =>
74
74
  }));
75
75
  const dataTopLevelRowCount = groupingResponse.treeDepth === 1 ? groupingResponse.ids.length : Object.values(groupingResponse.tree).filter(node => node.parent == null).length;
76
76
  return (0, _extends2.default)({}, groupingResponse, {
77
+ loading: loadingProp,
77
78
  totalRowCount: Math.max(rowCount, groupingResponse.ids.length),
78
79
  totalTopLevelRowCount: Math.max(rowCount, dataTopLevelRowCount)
79
80
  });
@@ -96,7 +97,7 @@ const rowsStateInitializer = (state, props, apiRef) => {
96
97
  lastUpdateMs: Date.now()
97
98
  };
98
99
  return (0, _extends2.default)({}, state, {
99
- rows: getRowsStateFromCache(rowsCache, null, apiRef, props.rowCount),
100
+ rows: getRowsStateFromCache(rowsCache, null, apiRef, props.rowCount, props.loading),
100
101
  rowsCache // TODO remove from state
101
102
 
102
103
  });
@@ -115,9 +116,9 @@ const useGridRows = (apiRef, props) => {
115
116
 
116
117
  const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, props);
117
118
  const getRow = React.useCallback(id => {
118
- var _gridRowsLookupSelect;
119
+ var _ref;
119
120
 
120
- return (_gridRowsLookupSelect = (0, _gridRowsSelector.gridRowsLookupSelector)(apiRef)[id]) != null ? _gridRowsLookupSelect : null;
121
+ return (_ref = (0, _gridRowsSelector.gridRowsLookupSelector)(apiRef)[id]) != null ? _ref : null;
121
122
  }, [apiRef]);
122
123
  const lookup = React.useMemo(() => currentPage.rows.reduce((acc, {
123
124
  id
@@ -130,7 +131,7 @@ const useGridRows = (apiRef, props) => {
130
131
  rowsCache.current.timeout = null;
131
132
  rowsCache.current.lastUpdateMs = Date.now();
132
133
  apiRef.current.setState(state => (0, _extends2.default)({}, state, {
133
- rows: getRowsStateFromCache(rowsCache.current, (0, _gridRowsSelector.gridRowTreeSelector)(apiRef), apiRef, props.rowCount)
134
+ rows: getRowsStateFromCache(rowsCache.current, (0, _gridRowsSelector.gridRowTreeSelector)(apiRef), apiRef, props.rowCount, props.loading)
134
135
  }));
135
136
  apiRef.current.publishEvent(_events.GridEvents.rowsSet);
136
137
  apiRef.current.forceUpdate();
@@ -156,7 +157,7 @@ const useGridRows = (apiRef, props) => {
156
157
  }
157
158
 
158
159
  run();
159
- }, [props.throttleRowsMs, props.rowCount, apiRef]);
160
+ }, [props.throttleRowsMs, props.rowCount, props.loading, apiRef]);
160
161
  /**
161
162
  * API METHODS
162
163
  */
@@ -254,12 +255,31 @@ const useGridRows = (apiRef, props) => {
254
255
 
255
256
  return (_gridRowTreeSelector$ = (0, _gridRowsSelector.gridRowTreeSelector)(apiRef)[id]) != null ? _gridRowTreeSelector$ : null;
256
257
  }, [apiRef]);
258
+ const setRowIndex = React.useCallback((rowId, targetIndex) => {
259
+ const allRows = (0, _gridRowsSelector.gridRowIdsSelector)(apiRef);
260
+ const oldIndex = allRows.findIndex(row => row === rowId);
261
+
262
+ if (oldIndex === targetIndex) {
263
+ return;
264
+ }
265
+
266
+ logger.debug(`Moving row ${rowId} to index ${targetIndex}`);
267
+ const updatedRows = [...allRows];
268
+ updatedRows.splice(targetIndex, 0, updatedRows.splice(oldIndex, 1)[0]);
269
+ apiRef.current.setState(state => (0, _extends2.default)({}, state, {
270
+ rows: (0, _extends2.default)({}, state.rows, {
271
+ ids: updatedRows
272
+ })
273
+ }));
274
+ apiRef.current.applySorting();
275
+ }, [apiRef, logger]);
257
276
  const rowApi = {
258
277
  getRow,
259
278
  getRowModels,
260
279
  getRowsCount,
261
280
  getAllRowIds,
262
281
  setRows,
282
+ setRowIndex,
263
283
  updateRows,
264
284
  setRowChildrenExpansion,
265
285
  getRowNode,
@@ -25,9 +25,7 @@ var _gridPaginationSelector = require("../pagination/gridPaginationSelector");
25
25
 
26
26
  var _gridSortingSelector = require("../sorting/gridSortingSelector");
27
27
 
28
- var _gridEvents = require("../../../models/events/gridEvents");
29
-
30
- var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
28
+ var _pipeProcessing = require("../../core/pipeProcessing");
31
29
 
32
30
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
31
 
@@ -92,16 +90,17 @@ const useGridRowsMeta = (apiRef, props) => {
92
90
  if (getRowSpacing) {
93
91
  var _spacing$top, _spacing$bottom;
94
92
 
95
- const index = apiRef.current.getRowIndexRelativeToVisibleRows(row.id);
93
+ const indexRelativeToCurrentPage = apiRef.current.getRowIndexRelativeToVisibleRows(row.id);
96
94
  const spacing = getRowSpacing((0, _extends2.default)({}, row, {
97
- isFirstVisible: index === 0,
98
- isLastVisible: index === currentPage.rows.length - 1
95
+ isFirstVisible: indexRelativeToCurrentPage === 0,
96
+ isLastVisible: indexRelativeToCurrentPage === currentPage.rows.length - 1,
97
+ indexRelativeToCurrentPage
99
98
  }));
100
99
  initialHeights.spacingTop = (_spacing$top = spacing.top) != null ? _spacing$top : 0;
101
100
  initialHeights.spacingBottom = (_spacing$bottom = spacing.bottom) != null ? _spacing$bottom : 0;
102
101
  }
103
102
 
104
- const sizes = apiRef.current.unstable_applyPreProcessors('rowHeight', initialHeights, row);
103
+ const sizes = apiRef.current.unstable_applyPipeProcessors('rowHeight', initialHeights, row);
105
104
  const finalRowHeight = Object.values(sizes).reduce((acc2, value) => acc2 + value, 0);
106
105
  rowsHeightLookup.current[row.id] = {
107
106
  value: baseRowHeight,
@@ -147,14 +146,7 @@ const useGridRowsMeta = (apiRef, props) => {
147
146
  React.useEffect(() => {
148
147
  hydrateRowsMeta();
149
148
  }, [rowHeight, filterState, paginationState, sortingState, hydrateRowsMeta]);
150
- const handlePreProcessorRegister = React.useCallback(name => {
151
- if (name !== 'rowHeight') {
152
- return;
153
- }
154
-
155
- hydrateRowsMeta();
156
- }, [hydrateRowsMeta]);
157
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _gridEvents.GridEvents.preProcessorRegister, handlePreProcessorRegister);
149
+ (0, _pipeProcessing.useGridRegisterPipeApplier)(apiRef, 'rowHeight', hydrateRowsMeta);
158
150
  const rowsMetaApi = {
159
151
  unstable_getRowHeight: getTargetRowHeight,
160
152
  unstable_getRowInternalSizes: getRowInternalSizes,
@@ -11,6 +11,8 @@ var _useGridLogger = require("../../utils/useGridLogger");
11
11
 
12
12
  var _gridColumnsSelector = require("../columns/gridColumnsSelector");
13
13
 
14
+ var _useGridSelector = require("../../utils/useGridSelector");
15
+
14
16
  var _gridPaginationSelector = require("../pagination/gridPaginationSelector");
15
17
 
16
18
  var _gridRowsSelector = require("../rows/gridRowsSelector");
@@ -19,7 +21,7 @@ var _gridRowsMetaSelector = require("../rows/gridRowsMetaSelector");
19
21
 
20
22
  var _useGridApiMethod = require("../../utils/useGridApiMethod");
21
23
 
22
- var _useGridNativeEventListener = require("../../utils/useGridNativeEventListener");
24
+ var _gridFilterSelector = require("../filter/gridFilterSelector");
23
25
 
24
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
27
 
@@ -51,6 +53,8 @@ function scrollIntoView(dimensions) {
51
53
  * @requires useGridColumns (state) - can be after, async only
52
54
  * @requires useGridRows (state) - can be after, async only
53
55
  * @requires useGridRowsMeta (state) - can be after, async only
56
+ * @requires useGridFilter (state)
57
+ * @requires useGridColumnSpanning (method)
54
58
  */
55
59
 
56
60
 
@@ -58,11 +62,13 @@ const useGridScroll = (apiRef, props) => {
58
62
  const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridScroll');
59
63
  const colRef = apiRef.current.columnHeadersElementRef;
60
64
  const windowRef = apiRef.current.windowRef;
65
+ const visibleSortedRows = (0, _useGridSelector.useGridSelector)(apiRef, _gridFilterSelector.gridVisibleSortedRowEntriesSelector);
61
66
  const scrollToIndexes = React.useCallback(params => {
62
67
  const totalRowCount = (0, _gridRowsSelector.gridRowCountSelector)(apiRef);
63
68
  const visibleColumns = (0, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector)(apiRef);
69
+ const scrollToHeader = params.rowIndex == null;
64
70
 
65
- if (totalRowCount === 0 || visibleColumns.length === 0) {
71
+ if (!scrollToHeader && totalRowCount === 0 || visibleColumns.length === 0) {
66
72
  return false;
67
73
  }
68
74
 
@@ -71,10 +77,27 @@ const useGridScroll = (apiRef, props) => {
71
77
 
72
78
  if (params.colIndex != null) {
73
79
  const columnPositions = (0, _gridColumnsSelector.gridColumnPositionsSelector)(apiRef);
80
+ let cellWidth;
81
+
82
+ if (typeof params.rowIndex !== 'undefined') {
83
+ var _visibleSortedRows$pa;
84
+
85
+ const rowId = (_visibleSortedRows$pa = visibleSortedRows[params.rowIndex]) == null ? void 0 : _visibleSortedRows$pa.id;
86
+ const cellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, params.colIndex);
87
+
88
+ if (cellColSpanInfo && !cellColSpanInfo.spannedByColSpan) {
89
+ cellWidth = cellColSpanInfo.cellProps.width;
90
+ }
91
+ }
92
+
93
+ if (typeof cellWidth === 'undefined') {
94
+ cellWidth = visibleColumns[params.colIndex].computedWidth;
95
+ }
96
+
74
97
  scrollCoordinates.left = scrollIntoView({
75
98
  clientHeight: windowRef.current.clientWidth,
76
99
  scrollTop: windowRef.current.scrollLeft,
77
- offsetHeight: visibleColumns[params.colIndex].computedWidth,
100
+ offsetHeight: cellWidth,
78
101
  offsetTop: columnPositions[params.colIndex]
79
102
  });
80
103
  }
@@ -93,7 +116,7 @@ const useGridScroll = (apiRef, props) => {
93
116
  });
94
117
  }
95
118
 
96
- scrollCoordinates = apiRef.current.unstable_applyPreProcessors('scrollToIndexes', scrollCoordinates, params);
119
+ scrollCoordinates = apiRef.current.unstable_applyPipeProcessors('scrollToIndexes', scrollCoordinates, params);
97
120
 
98
121
  if (typeof scrollCoordinates.left !== undefined || typeof scrollCoordinates.top !== undefined) {
99
122
  apiRef.current.scroll(scrollCoordinates);
@@ -101,7 +124,7 @@ const useGridScroll = (apiRef, props) => {
101
124
  }
102
125
 
103
126
  return false;
104
- }, [logger, apiRef, windowRef, props.pagination]);
127
+ }, [logger, apiRef, windowRef, props.pagination, visibleSortedRows]);
105
128
  const scroll = React.useCallback(params => {
106
129
  if (windowRef.current && params.left != null && colRef.current) {
107
130
  colRef.current.scrollLeft = params.left;
@@ -135,15 +158,6 @@ const useGridScroll = (apiRef, props) => {
135
158
  getScrollPosition
136
159
  };
137
160
  (0, _useGridApiMethod.useGridApiMethod)(apiRef, scrollApi, 'GridScrollApi');
138
- const preventScroll = React.useCallback(event => {
139
- event.target.scrollLeft = 0;
140
- event.target.scrollTop = 0;
141
- }, []);
142
- (0, _useGridNativeEventListener.useGridNativeEventListener)(apiRef, () => {
143
- var _apiRef$current, _apiRef$current$rende, _apiRef$current$rende2;
144
-
145
- return (_apiRef$current = apiRef.current) == null ? void 0 : (_apiRef$current$rende = _apiRef$current.renderingZoneRef) == null ? void 0 : (_apiRef$current$rende2 = _apiRef$current$rende.current) == null ? void 0 : _apiRef$current$rende2.parentElement;
146
- }, 'scroll', preventScroll);
147
161
  };
148
162
 
149
163
  exports.useGridScroll = useGridScroll;