@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
@@ -11,8 +11,12 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
 
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
 
14
+ var ReactDOM = _interopRequireWildcard(require("react-dom"));
15
+
14
16
  var _utils = require("@mui/material/utils");
15
17
 
18
+ var _reselect = require("reselect");
19
+
16
20
  var _useGridApiContext = require("../../utils/useGridApiContext");
17
21
 
18
22
  var _useGridSelector = require("../../utils/useGridSelector");
@@ -33,16 +37,24 @@ var _useGridRootProps = require("../../utils/useGridRootProps");
33
37
 
34
38
  var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
35
39
 
36
- var _events = require("../../../models/events");
37
-
38
40
  var _GridColumnHeaderItem = require("../../../components/columnHeaders/GridColumnHeaderItem");
39
41
 
42
+ var _gridColumnsUtils = require("../columns/gridColumnsUtils");
43
+
44
+ var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
45
+
46
+ var _useGridVirtualScroller = require("../virtualization/useGridVirtualScroller");
47
+
40
48
  var _jsxRuntime = require("react/jsx-runtime");
41
49
 
42
50
  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); }
43
51
 
44
52
  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; }
45
53
 
54
+ function isUIEvent(event) {
55
+ return !!event.target;
56
+ }
57
+
46
58
  const useGridColumnHeaders = props => {
47
59
  const {
48
60
  innerRef: innerRefProp,
@@ -66,18 +78,43 @@ const useGridColumnHeaders = props => {
66
78
  const [renderContext, setRenderContext] = React.useState(null);
67
79
  const prevRenderContext = React.useRef(renderContext);
68
80
  const prevScrollLeft = React.useRef(0);
81
+ const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, rootProps);
69
82
  React.useEffect(() => {
70
83
  apiRef.current.columnHeadersContainerElementRef.current.scrollLeft = 0;
71
- }, [apiRef]);
84
+ }, [apiRef]); // memoize `getFirstColumnIndexToRender`, since it's called on scroll
85
+
86
+ const getFirstColumnIndexToRenderRef = React.useRef((0, _reselect.defaultMemoize)(_gridColumnsUtils.getFirstColumnIndexToRender, {
87
+ equalityCheck: (a, b) => ['firstColumnIndex', 'minColumnIndex', 'columnBuffer'].every(key => a[key] === b[key])
88
+ }));
72
89
  const updateInnerPosition = React.useCallback(nextRenderContext => {
73
- const firstColumnToRender = Math.max(nextRenderContext.firstColumnIndex - rootProps.columnBuffer, minColumnIndex);
90
+ const [firstRowToRender, lastRowToRender] = (0, _useGridVirtualScroller.getRenderableIndexes)({
91
+ firstIndex: nextRenderContext.firstRowIndex,
92
+ lastIndex: nextRenderContext.lastRowIndex,
93
+ minFirstIndex: 0,
94
+ maxLastIndex: currentPage.rows.length,
95
+ buffer: rootProps.rowBuffer
96
+ });
97
+ const firstColumnToRender = getFirstColumnIndexToRenderRef.current({
98
+ firstColumnIndex: nextRenderContext.firstColumnIndex,
99
+ minColumnIndex,
100
+ columnBuffer: rootProps.columnBuffer,
101
+ firstRowToRender,
102
+ lastRowToRender,
103
+ apiRef,
104
+ visibleRows: currentPage.rows
105
+ });
74
106
  const offset = firstColumnToRender > 0 ? prevScrollLeft.current - columnPositions[firstColumnToRender] : prevScrollLeft.current;
75
107
  innerRef.current.style.transform = `translate3d(${-offset}px, 0px, 0px)`;
76
- }, [columnPositions, minColumnIndex, rootProps.columnBuffer]);
108
+ }, [columnPositions, minColumnIndex, rootProps.columnBuffer, apiRef, currentPage.rows, rootProps.rowBuffer]);
109
+ React.useLayoutEffect(() => {
110
+ if (renderContext) {
111
+ updateInnerPosition(renderContext);
112
+ }
113
+ }, [renderContext, updateInnerPosition]);
77
114
  const handleScroll = React.useCallback(({
78
115
  left,
79
116
  renderContext: nextRenderContext = null
80
- }) => {
117
+ }, event) => {
81
118
  var _prevRenderContext$cu, _prevRenderContext$cu2;
82
119
 
83
120
  if (!innerRef.current) {
@@ -90,15 +127,32 @@ const useGridColumnHeaders = props => {
90
127
  return;
91
128
  }
92
129
 
93
- prevScrollLeft.current = left;
130
+ prevScrollLeft.current = left; // We can only update the position when we guarantee that the render context has been
131
+ // rendered. This is achieved using ReactDOM.flushSync or when the context doesn't change.
132
+
133
+ let canUpdateInnerPosition = false;
94
134
 
95
135
  if (nextRenderContext !== prevRenderContext.current || !prevRenderContext.current) {
96
- setRenderContext(nextRenderContext);
136
+ // ReactDOM.flushSync cannot be called on `scroll` events fired inside effects
137
+ if (isUIEvent(event)) {
138
+ // To prevent flickering, the inner position can only be updated after the new context has
139
+ // been rendered. ReactDOM.flushSync ensures that the state changes will happen before
140
+ // updating the position.
141
+ ReactDOM.flushSync(() => {
142
+ setRenderContext(nextRenderContext);
143
+ });
144
+ canUpdateInnerPosition = true;
145
+ } else {
146
+ setRenderContext(nextRenderContext);
147
+ }
148
+
97
149
  prevRenderContext.current = nextRenderContext;
150
+ } else {
151
+ canUpdateInnerPosition = true;
98
152
  } // Pass directly the render context to avoid waiting for the next render
99
153
 
100
154
 
101
- if (nextRenderContext) {
155
+ if (nextRenderContext && canUpdateInnerPosition) {
102
156
  updateInnerPosition(nextRenderContext);
103
157
  }
104
158
  }, [updateInnerPosition]);
@@ -106,11 +160,11 @@ const useGridColumnHeaders = props => {
106
160
  const handleColumnResizeStop = React.useCallback(() => setResizeCol(''), []);
107
161
  const handleColumnReorderStart = React.useCallback(params => setDragCol(params.field), []);
108
162
  const handleColumnReorderStop = React.useCallback(() => setDragCol(''), []);
109
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.columnResizeStart, handleColumnResizeStart);
110
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.columnResizeStop, handleColumnResizeStop);
111
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.columnHeaderDragStart, handleColumnReorderStart);
112
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.columnHeaderDragEnd, handleColumnReorderStop);
113
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.rowsScroll, handleScroll);
163
+ (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnResizeStart', handleColumnResizeStart);
164
+ (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnResizeStop', handleColumnResizeStop);
165
+ (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnHeaderDragStart', handleColumnReorderStart);
166
+ (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnHeaderDragEnd', handleColumnReorderStop);
167
+ (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'rowsScroll', handleScroll);
114
168
 
115
169
  const getColumns = (params, other = {}) => {
116
170
  const {
@@ -124,7 +178,22 @@ const useGridColumnHeaders = props => {
124
178
  }
125
179
 
126
180
  const columns = [];
127
- const firstColumnToRender = Math.max(nextRenderContext.firstColumnIndex - rootProps.columnBuffer, minFirstColumn);
181
+ const [firstRowToRender, lastRowToRender] = (0, _useGridVirtualScroller.getRenderableIndexes)({
182
+ firstIndex: nextRenderContext.firstRowIndex,
183
+ lastIndex: nextRenderContext.lastRowIndex,
184
+ minFirstIndex: 0,
185
+ maxLastIndex: currentPage.rows.length,
186
+ buffer: rootProps.rowBuffer
187
+ });
188
+ const firstColumnToRender = getFirstColumnIndexToRenderRef.current({
189
+ firstColumnIndex: nextRenderContext.firstColumnIndex,
190
+ minColumnIndex: minFirstColumn,
191
+ columnBuffer: rootProps.columnBuffer,
192
+ apiRef,
193
+ firstRowToRender,
194
+ lastRowToRender,
195
+ visibleRows: currentPage.rows
196
+ });
128
197
  const lastColumnToRender = Math.min(nextRenderContext.lastColumnIndex + rootProps.columnBuffer, maxLastColumn);
129
198
  const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
130
199
 
@@ -148,7 +217,7 @@ const useGridColumnHeaders = props => {
148
217
  extendRowFullWidth: !rootProps.disableExtendRowFullWidth,
149
218
  hasFocus: hasFocus,
150
219
  tabIndex: tabIndex
151
- }, other), i));
220
+ }, other), column.field));
152
221
  }
153
222
 
154
223
  return columns;
@@ -163,7 +232,6 @@ const useGridColumnHeaders = props => {
163
232
  renderContext,
164
233
  getColumns,
165
234
  isDragging: !!dragCol,
166
- updateInnerPosition,
167
235
  getRootProps: (other = {}) => (0, _extends2.default)({
168
236
  style: rootStyle
169
237
  }, other),
@@ -11,8 +11,6 @@ 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
-
16
14
  var _utils = require("../../utils");
17
15
 
18
16
  var _columnMenuSelector = require("./columnMenuSelector");
@@ -99,8 +97,9 @@ const useGridColumnMenu = apiRef => {
99
97
  * EVENTS
100
98
  */
101
99
 
102
- (0, _utils.useGridApiEventHandler)(apiRef, _events.GridEvents.columnResizeStart, hideColumnMenu);
103
- (0, _utils.useGridApiEventHandler)(apiRef, _events.GridEvents.rowsScroll, hideColumnMenu);
100
+ (0, _utils.useGridApiEventHandler)(apiRef, 'columnResizeStart', hideColumnMenu);
101
+ (0, _utils.useGridApiEventHandler)(apiRef, 'virtualScrollerWheel', apiRef.current.hideColumnMenu);
102
+ (0, _utils.useGridApiEventHandler)(apiRef, 'virtualScrollerTouchMove', apiRef.current.hideColumnMenu);
104
103
  };
105
104
 
106
105
  exports.useGridColumnMenu = useGridColumnMenu;
@@ -7,7 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.computeColumnTypes = exports.applyInitialState = exports.COLUMNS_DIMENSION_PROPERTIES = void 0;
9
9
  exports.computeFlexColumnsWidth = computeFlexColumnsWidth;
10
- exports.mergeColumnsState = exports.hydrateColumnsWidth = exports.getGridColDef = exports.createColumnsState = void 0;
10
+ exports.createColumnsState = void 0;
11
+ exports.getFirstColumnIndexToRender = getFirstColumnIndexToRender;
12
+ exports.getFirstNonSpannedColumnToRender = getFirstNonSpannedColumnToRender;
13
+ exports.mergeColumnsState = exports.hydrateColumnsWidth = exports.getGridColDef = void 0;
11
14
 
12
15
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
16
 
@@ -227,9 +230,13 @@ const applyInitialState = (columnsState, initialState) => {
227
230
 
228
231
  for (let i = 0; i < columnsWithUpdatedDimensions.length; i += 1) {
229
232
  const field = columnsWithUpdatedDimensions[i];
230
- newColumnLookup[field] = (0, _extends2.default)({}, newColumnLookup[field], dimensions[field], {
233
+ const newColDef = (0, _extends2.default)({}, newColumnLookup[field], {
231
234
  hasBeenResized: true
232
235
  });
236
+ Object.entries(dimensions[field]).forEach(([key, value]) => {
237
+ newColDef[key] = value === -1 ? Infinity : value;
238
+ });
239
+ newColumnLookup[field] = newColDef;
233
240
  }
234
241
 
235
242
  const newColumnsState = {
@@ -323,16 +330,20 @@ const createColumnsState = ({
323
330
  columnsStateWithoutColumnVisibilityModel.all.push(field);
324
331
  }
325
332
 
326
- let hasValidDimension = false;
327
-
328
- if (!existingState.hasBeenResized) {
329
- hasValidDimension = COLUMNS_DIMENSION_PROPERTIES.some(key => newColumn[key] !== undefined);
330
- }
333
+ let hasBeenResized = existingState.hasBeenResized;
334
+ COLUMNS_DIMENSION_PROPERTIES.forEach(key => {
335
+ if (newColumn[key] !== undefined) {
336
+ hasBeenResized = true;
331
337
 
338
+ if (newColumn[key] === -1) {
339
+ newColumn[key] = Infinity;
340
+ }
341
+ }
342
+ });
332
343
  columnsStateWithoutColumnVisibilityModel.lookup[field] = (0, _extends2.default)({}, existingState, {
333
344
  hide: newColumn.hide == null ? false : newColumn.hide
334
345
  }, newColumn, {
335
- hasBeenResized: existingState.hasBeenResized || hasValidDimension
346
+ hasBeenResized
336
347
  });
337
348
  });
338
349
 
@@ -422,4 +433,49 @@ const mergeColumnsState = columnsState => state => (0, _extends2.default)({}, st
422
433
  columns: columnsState
423
434
  });
424
435
 
425
- exports.mergeColumnsState = mergeColumnsState;
436
+ exports.mergeColumnsState = mergeColumnsState;
437
+
438
+ function getFirstNonSpannedColumnToRender({
439
+ firstColumnToRender,
440
+ apiRef,
441
+ firstRowToRender,
442
+ lastRowToRender,
443
+ visibleRows
444
+ }) {
445
+ let firstNonSpannedColumnToRender = firstColumnToRender;
446
+
447
+ for (let i = firstRowToRender; i < lastRowToRender; i += 1) {
448
+ const row = visibleRows[i];
449
+
450
+ if (row) {
451
+ const rowId = visibleRows[i].id;
452
+ const cellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, firstColumnToRender);
453
+
454
+ if (cellColSpanInfo && cellColSpanInfo.spannedByColSpan) {
455
+ firstNonSpannedColumnToRender = cellColSpanInfo.leftVisibleCellIndex;
456
+ }
457
+ }
458
+ }
459
+
460
+ return firstNonSpannedColumnToRender;
461
+ }
462
+
463
+ function getFirstColumnIndexToRender({
464
+ firstColumnIndex,
465
+ minColumnIndex,
466
+ columnBuffer,
467
+ firstRowToRender,
468
+ lastRowToRender,
469
+ apiRef,
470
+ visibleRows
471
+ }) {
472
+ const initialFirstColumnToRender = Math.max(firstColumnIndex - columnBuffer, minColumnIndex);
473
+ const firstColumnToRender = getFirstNonSpannedColumnToRender({
474
+ firstColumnToRender: initialFirstColumnToRender,
475
+ apiRef,
476
+ firstRowToRender,
477
+ lastRowToRender,
478
+ visibleRows
479
+ });
480
+ return firstColumnToRender;
481
+ }
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useGridColumnSpanning = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _useGridApiMethod = require("../../utils/useGridApiMethod");
13
+
14
+ var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
15
+
16
+ /**
17
+ * @requires useGridColumns (method, event)
18
+ * @requires useGridParamsApi (method)
19
+ */
20
+ const useGridColumnSpanning = apiRef => {
21
+ const lookup = _react.default.useRef({});
22
+
23
+ const setCellColSpanInfo = _react.default.useCallback((rowId, columnIndex, cellColSpanInfo) => {
24
+ const sizes = lookup.current;
25
+
26
+ if (!sizes[rowId]) {
27
+ sizes[rowId] = {};
28
+ }
29
+
30
+ sizes[rowId][columnIndex] = cellColSpanInfo;
31
+ }, []);
32
+
33
+ const getCellColSpanInfo = _react.default.useCallback((rowId, columnIndex) => {
34
+ var _lookup$current$rowId;
35
+
36
+ return (_lookup$current$rowId = lookup.current[rowId]) == null ? void 0 : _lookup$current$rowId[columnIndex];
37
+ }, []); // Calculate `colSpan` for the cell.
38
+
39
+
40
+ const calculateCellColSpan = _react.default.useCallback(params => {
41
+ const {
42
+ columnIndex,
43
+ rowId,
44
+ minFirstColumnIndex,
45
+ maxLastColumnIndex
46
+ } = params;
47
+ const visibleColumns = apiRef.current.getVisibleColumns();
48
+ const columnsLength = visibleColumns.length;
49
+ const column = visibleColumns[columnIndex];
50
+ const colSpan = typeof column.colSpan === 'function' ? column.colSpan(apiRef.current.getCellParams(rowId, column.field)) : column.colSpan;
51
+
52
+ if (!colSpan || colSpan === 1) {
53
+ setCellColSpanInfo(rowId, columnIndex, {
54
+ spannedByColSpan: false,
55
+ cellProps: {
56
+ colSpan: 1,
57
+ width: column.computedWidth
58
+ }
59
+ });
60
+ return {
61
+ colSpan: 1
62
+ };
63
+ }
64
+
65
+ let width = column.computedWidth;
66
+
67
+ for (let j = 1; j < colSpan; j += 1) {
68
+ const nextColumnIndex = columnIndex + j; // Cells should be spanned only within their column section (left-pinned, right-pinned and unpinned).
69
+
70
+ if (nextColumnIndex >= minFirstColumnIndex && nextColumnIndex < maxLastColumnIndex) {
71
+ const nextColumn = visibleColumns[nextColumnIndex];
72
+ width += nextColumn.computedWidth;
73
+ setCellColSpanInfo(rowId, columnIndex + j, {
74
+ spannedByColSpan: true,
75
+ rightVisibleCellIndex: Math.min(columnIndex + colSpan, columnsLength - 1),
76
+ leftVisibleCellIndex: columnIndex
77
+ });
78
+ }
79
+
80
+ setCellColSpanInfo(rowId, columnIndex, {
81
+ spannedByColSpan: false,
82
+ cellProps: {
83
+ colSpan,
84
+ width
85
+ }
86
+ });
87
+ }
88
+
89
+ return {
90
+ colSpan
91
+ };
92
+ }, [apiRef, setCellColSpanInfo]); // Calculate `colSpan` for each cell in the row
93
+
94
+
95
+ const calculateColSpan = _react.default.useCallback(({
96
+ rowId,
97
+ minFirstColumn,
98
+ maxLastColumn
99
+ }) => {
100
+ for (let i = minFirstColumn; i < maxLastColumn; i += 1) {
101
+ const cellProps = calculateCellColSpan({
102
+ columnIndex: i,
103
+ rowId,
104
+ minFirstColumnIndex: minFirstColumn,
105
+ maxLastColumnIndex: maxLastColumn
106
+ });
107
+
108
+ if (cellProps.colSpan > 1) {
109
+ i += cellProps.colSpan - 1;
110
+ }
111
+ }
112
+ }, [calculateCellColSpan]);
113
+
114
+ const columnSpanningApi = {
115
+ unstable_getCellColSpanInfo: getCellColSpanInfo,
116
+ unstable_calculateColSpan: calculateColSpan
117
+ };
118
+ (0, _useGridApiMethod.useGridApiMethod)(apiRef, columnSpanningApi, 'GridColumnSpanningAPI');
119
+
120
+ const handleColumnReorderChange = _react.default.useCallback(() => {
121
+ // `colSpan` needs to be recalculated after column reordering
122
+ lookup.current = {};
123
+ }, []);
124
+
125
+ (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnOrderChange', handleColumnReorderChange);
126
+ };
127
+
128
+ exports.useGridColumnSpanning = useGridColumnSpanning;
@@ -12,8 +12,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
12
12
 
13
13
  var React = _interopRequireWildcard(require("react"));
14
14
 
15
- var _events = require("../../../models/events");
16
-
17
15
  var _useGridApiMethod = require("../../utils/useGridApiMethod");
18
16
 
19
17
  var _useGridLogger = require("../../utils/useGridLogger");
@@ -79,13 +77,13 @@ function useGridColumns(apiRef, props) {
79
77
  propModel: props.columnVisibilityModel,
80
78
  propOnChange: props.onColumnVisibilityModelChange,
81
79
  stateSelector: _gridColumnsSelector.gridColumnVisibilityModelSelector,
82
- changeEvent: _events.GridEvents.columnVisibilityModelChange
80
+ changeEvent: 'columnVisibilityModelChange'
83
81
  });
84
82
  const setGridColumnsState = React.useCallback(columnsState => {
85
83
  logger.debug('Updating columns state.');
86
84
  apiRef.current.setState((0, _gridColumnsUtils.mergeColumnsState)(columnsState));
87
85
  apiRef.current.forceUpdate();
88
- apiRef.current.publishEvent(_events.GridEvents.columnsChange, columnsState.all);
86
+ apiRef.current.publishEvent('columnsChange', columnsState.all);
89
87
  }, [logger, apiRef]);
90
88
  /**
91
89
  * API METHODS
@@ -160,7 +158,7 @@ function useGridColumns(apiRef, props) {
160
158
  colDef: newColumn,
161
159
  isVisible
162
160
  };
163
- apiRef.current.publishEvent(_events.GridEvents.columnVisibilityChange, params);
161
+ apiRef.current.publishEvent('columnVisibilityChange', params);
164
162
  }
165
163
  }, [apiRef]);
166
164
  const setColumnIndex = React.useCallback((field, targetIndexPosition) => {
@@ -184,7 +182,7 @@ function useGridColumns(apiRef, props) {
184
182
  targetIndex: targetIndexPosition,
185
183
  oldIndex: oldIndexPosition
186
184
  };
187
- apiRef.current.publishEvent(_events.GridEvents.columnOrderChange, params);
185
+ apiRef.current.publishEvent('columnOrderChange', params);
188
186
  }, [apiRef, logger, setGridColumnsState]);
189
187
  const setColumnWidth = React.useCallback((field, width) => {
190
188
  logger.debug(`Updating column ${field} width to ${width}`);
@@ -193,7 +191,7 @@ function useGridColumns(apiRef, props) {
193
191
  width
194
192
  });
195
193
  apiRef.current.updateColumns([newColumn]);
196
- apiRef.current.publishEvent(_events.GridEvents.columnWidthChange, {
194
+ apiRef.current.publishEvent('columnWidthChange', {
197
195
  element: apiRef.current.getColumnHeaderElement(field),
198
196
  colDef: newColumn,
199
197
  width
@@ -238,7 +236,13 @@ function useGridColumns(apiRef, props) {
238
236
  const colDefDimensions = {};
239
237
 
240
238
  _gridColumnsUtils.COLUMNS_DIMENSION_PROPERTIES.forEach(propertyName => {
241
- colDefDimensions[propertyName] = colDef[propertyName];
239
+ let propertyValue = colDef[propertyName];
240
+
241
+ if (propertyValue === Infinity) {
242
+ propertyValue = -1;
243
+ }
244
+
245
+ colDefDimensions[propertyName] = propertyValue;
242
246
  });
243
247
 
244
248
  dimensions[colDef.field] = colDefDimensions;
@@ -275,7 +279,7 @@ function useGridColumns(apiRef, props) {
275
279
  apiRef.current.setState((0, _gridColumnsUtils.mergeColumnsState)(columnsState));
276
280
 
277
281
  if (initialState != null) {
278
- apiRef.current.publishEvent(_events.GridEvents.columnsChange, columnsState.all);
282
+ apiRef.current.publishEvent('columnsChange', columnsState.all);
279
283
  }
280
284
 
281
285
  return params;
@@ -297,12 +301,23 @@ function useGridColumns(apiRef, props) {
297
301
  * EVENTS
298
302
  */
299
303
 
300
- const handlepipeProcessorRegister = React.useCallback(name => {
301
- if (name !== 'hydrateColumns') {
302
- return;
304
+ const prevInnerWidth = React.useRef(null);
305
+
306
+ const handleGridSizeChange = viewportInnerSize => {
307
+ if (prevInnerWidth.current !== viewportInnerSize.width) {
308
+ prevInnerWidth.current = viewportInnerSize.width;
309
+ setGridColumnsState((0, _gridColumnsUtils.hydrateColumnsWidth)((0, _gridColumnsSelector.gridColumnsSelector)(apiRef.current.state), viewportInnerSize.width));
303
310
  }
311
+ };
304
312
 
305
- logger.info(`Columns pre-processing have changed, regenerating the columns`);
313
+ (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'viewportInnerSizeChange', handleGridSizeChange);
314
+ (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'columnVisibilityChange', props.onColumnVisibilityChange);
315
+ /**
316
+ * APPLIERS
317
+ */
318
+
319
+ const hydrateColumns = React.useCallback(() => {
320
+ logger.info(`Columns pipe processing have changed, regenerating the columns`);
306
321
  const columnsState = (0, _gridColumnsUtils.createColumnsState)({
307
322
  apiRef,
308
323
  columnTypes,
@@ -313,18 +328,7 @@ function useGridColumns(apiRef, props) {
313
328
  });
314
329
  setGridColumnsState(columnsState);
315
330
  }, [apiRef, logger, setGridColumnsState, columnTypes]);
316
- const prevInnerWidth = React.useRef(null);
317
-
318
- const handleGridSizeChange = viewportInnerSize => {
319
- if (prevInnerWidth.current !== viewportInnerSize.width) {
320
- prevInnerWidth.current = viewportInnerSize.width;
321
- setGridColumnsState((0, _gridColumnsUtils.hydrateColumnsWidth)((0, _gridColumnsSelector.gridColumnsSelector)(apiRef.current.state), viewportInnerSize.width));
322
- }
323
- };
324
-
325
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.pipeProcessorRegister, handlepipeProcessorRegister);
326
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.viewportInnerSizeChange, handleGridSizeChange);
327
- (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, _events.GridEvents.columnVisibilityChange, props.onColumnVisibilityChange);
331
+ (0, _pipeProcessing.useGridRegisterPipeApplier)(apiRef, 'hydrateColumns', hydrateColumns);
328
332
  /**
329
333
  * EFFECTS
330
334
  */
@@ -9,8 +9,6 @@ var React = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _utils = require("@mui/material/utils");
11
11
 
12
- var _events = require("../../../models/events");
13
-
14
12
  var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
15
13
 
16
14
  var _useGridApiMethod = require("../../utils/useGridApiMethod");
@@ -123,12 +121,12 @@ function useGridDimensions(apiRef, props) {
123
121
  fullDimensionsRef.current = newFullDimensions;
124
122
 
125
123
  if (newFullDimensions.viewportInnerSize.width !== (prevDimensions == null ? void 0 : prevDimensions.viewportInnerSize.width) || newFullDimensions.viewportInnerSize.height !== (prevDimensions == null ? void 0 : prevDimensions.viewportInnerSize.height)) {
126
- apiRef.current.publishEvent(_events.GridEvents.viewportInnerSizeChange, newFullDimensions.viewportInnerSize);
124
+ apiRef.current.publishEvent('viewportInnerSizeChange', newFullDimensions.viewportInnerSize);
127
125
  }
128
126
  }, [apiRef, props.scrollbarSize, props.autoHeight, headerHeight, rowsMeta.currentPageTotalHeight]);
129
127
  const resize = React.useCallback(() => {
130
128
  updateGridDimensionsRef();
131
- apiRef.current.publishEvent(_events.GridEvents.debouncedResize, rootDimensionsRef.current);
129
+ apiRef.current.publishEvent('debouncedResize', rootDimensionsRef.current);
132
130
  }, [apiRef, updateGridDimensionsRef]);
133
131
  const getRootDimensions = React.useCallback(() => fullDimensionsRef.current, []);
134
132
  const getViewportPageSize = React.useCallback(() => {
@@ -168,12 +166,12 @@ function useGridDimensions(apiRef, props) {
168
166
  const isJSDOM = /jsdom/.test(window.navigator.userAgent);
169
167
 
170
168
  if (size.height === 0 && !warningShown.current && !props.autoHeight && !isJSDOM) {
171
- logger.warn(['The parent of the grid has an empty height.', 'You need to make sure the container has an intrinsic height.', 'The grid displays with a height of 0px.', '', 'You can find a solution in the docs:', 'https://mui.com/components/data-grid/layout/'].join('\n'));
169
+ logger.warn(['The parent of the grid has an empty height.', 'You need to make sure the container has an intrinsic height.', 'The grid displays with a height of 0px.', '', 'You can find a solution in the docs:', 'https://mui.com/x/react-data-grid/layout/'].join('\n'));
172
170
  warningShown.current = true;
173
171
  }
174
172
 
175
173
  if (size.width === 0 && !warningShown.current && !isJSDOM) {
176
- logger.warn(['The parent of the grid has an empty width.', 'You need to make sure the container has an intrinsic width.', 'The grid displays with a width of 0px.', '', 'You can find a solution in the docs:', 'https://mui.com/components/data-grid/layout/'].join('\n'));
174
+ logger.warn(['The parent of the grid has an empty width.', 'You need to make sure the container has an intrinsic width.', 'The grid displays with a width of 0px.', '', 'You can find a solution in the docs:', 'https://mui.com/x/react-data-grid/layout/'].join('\n'));
177
175
  warningShown.current = true;
178
176
  }
179
177
 
@@ -194,10 +192,10 @@ function useGridDimensions(apiRef, props) {
194
192
  debounceResize();
195
193
  }, [props.autoHeight, debounceResize, logger, resize]);
196
194
  (0, _utils.unstable_useEnhancedEffect)(() => updateGridDimensionsRef(), [updateGridDimensionsRef]);
197
- (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, _events.GridEvents.visibleRowsSet, updateGridDimensionsRef);
198
- (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, _events.GridEvents.pageChange, updateGridDimensionsRef);
199
- (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, _events.GridEvents.pageSizeChange, updateGridDimensionsRef);
200
- (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, _events.GridEvents.columnsChange, updateGridDimensionsRef);
201
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.resize, handleResize);
202
- (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, _events.GridEvents.debouncedResize, props.onResize);
195
+ (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'sortedRowsSet', updateGridDimensionsRef);
196
+ (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'pageChange', updateGridDimensionsRef);
197
+ (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'pageSizeChange', updateGridDimensionsRef);
198
+ (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'columnsChange', updateGridDimensionsRef);
199
+ (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'resize', handleResize);
200
+ (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'debouncedResize', props.onResize);
203
201
  }