@mui/x-data-grid 5.8.0 → 5.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (626) hide show
  1. package/CHANGELOG.md +333 -66
  2. package/DataGrid/DataGrid.js +36 -2
  3. package/DataGrid/useDataGridComponent.js +3 -1
  4. package/DataGrid/useDataGridProps.js +2 -1
  5. package/LICENSE +21 -0
  6. package/README.md +7 -5
  7. package/colDef/gridActionsColDef.js +2 -1
  8. package/colDef/gridBooleanColDef.js +2 -1
  9. package/colDef/gridCheckboxSelectionColDef.js +1 -0
  10. package/colDef/gridDateColDef.js +4 -2
  11. package/colDef/gridNumericColDef.js +3 -2
  12. package/colDef/gridNumericOperators.d.ts +2 -0
  13. package/colDef/gridNumericOperators.js +11 -0
  14. package/colDef/gridSingleSelectColDef.js +3 -2
  15. package/colDef/gridSingleSelectOperators.d.ts +3 -0
  16. package/colDef/gridSingleSelectOperators.js +52 -0
  17. package/colDef/gridStringColDef.js +3 -2
  18. package/colDef/gridStringOperators.d.ts +2 -0
  19. package/colDef/gridStringOperators.js +12 -0
  20. package/components/GridFooter.d.ts +4 -2
  21. package/components/GridFooter.js +11 -2
  22. package/components/GridRow.d.ts +4 -0
  23. package/components/GridRow.js +58 -28
  24. package/components/GridRowCount.d.ts +4 -1
  25. package/components/GridRowCount.js +1 -0
  26. package/components/GridScrollArea.js +3 -4
  27. package/components/GridSelectedRowCount.d.ts +4 -1
  28. package/components/GridSelectedRowCount.js +2 -1
  29. package/components/base/GridBody.js +1 -2
  30. package/components/base/GridOverlays.js +5 -5
  31. package/components/cell/GridActionsCell.d.ts +5 -1
  32. package/components/cell/GridActionsCell.js +179 -21
  33. package/components/cell/GridActionsCellItem.d.ts +66 -4
  34. package/components/cell/GridActionsCellItem.js +7 -5
  35. package/components/cell/GridCell.d.ts +1 -0
  36. package/components/cell/GridCell.js +36 -15
  37. package/components/cell/GridEditBooleanCell.d.ts +15 -3
  38. package/components/cell/GridEditBooleanCell.js +101 -6
  39. package/components/cell/GridEditDateCell.d.ts +16 -4
  40. package/components/cell/GridEditDateCell.js +99 -5
  41. package/components/cell/GridEditInputCell.d.ts +11 -5
  42. package/components/cell/GridEditInputCell.js +30 -6
  43. package/components/cell/GridEditSingleSelectCell.d.ts +12 -4
  44. package/components/cell/GridEditSingleSelectCell.js +50 -18
  45. package/components/cell/index.d.ts +2 -0
  46. package/components/cell/index.js +2 -0
  47. package/components/columnHeaders/GridColumnHeaderItem.js +19 -23
  48. package/components/columnHeaders/GridColumnHeaders.d.ts +2 -1
  49. package/components/columnHeaders/GridColumnHeaders.js +1 -1
  50. package/components/columnHeaders/GridColumnHeadersInner.d.ts +2 -0
  51. package/components/columnSelection/GridCellCheckboxRenderer.d.ts +3 -3
  52. package/components/columnSelection/GridCellCheckboxRenderer.js +22 -6
  53. package/components/columnSelection/GridHeaderCheckbox.js +4 -5
  54. package/components/containers/GridFooterContainer.d.ts +8 -2
  55. package/components/containers/GridFooterContainer.js +11 -2
  56. package/components/containers/GridRootStyles.js +36 -1
  57. package/components/containers/GridToolbarContainer.d.ts +8 -2
  58. package/components/containers/GridToolbarContainer.js +12 -2
  59. package/components/menu/GridMenu.js +1 -0
  60. package/components/panel/GridPanel.js +1 -0
  61. package/components/panel/GridPanelContent.d.ts +8 -1
  62. package/components/panel/GridPanelContent.js +13 -2
  63. package/components/panel/GridPanelFooter.d.ts +8 -1
  64. package/components/panel/GridPanelFooter.js +13 -2
  65. package/components/panel/GridPanelHeader.d.ts +8 -1
  66. package/components/panel/GridPanelHeader.js +13 -2
  67. package/components/panel/filterPanel/GridFilterForm.js +14 -10
  68. package/components/panel/filterPanel/GridFilterInputBoolean.js +13 -8
  69. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +22 -15
  70. package/components/panel/filterPanel/GridFilterInputValue.js +22 -15
  71. package/components/toolbar/GridToolbar.d.ts +12 -2
  72. package/components/toolbar/GridToolbar.js +30 -7
  73. package/components/toolbar/GridToolbarDensitySelector.js +1 -1
  74. package/components/toolbar/GridToolbarExport.d.ts +5 -4
  75. package/components/toolbar/GridToolbarExport.js +15 -20
  76. package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
  77. package/components/toolbar/GridToolbarQuickFilter.d.ts +20 -0
  78. package/components/toolbar/GridToolbarQuickFilter.js +88 -0
  79. package/components/toolbar/index.d.ts +3 -1
  80. package/components/toolbar/index.js +3 -2
  81. package/components/virtualization/GridVirtualScroller.d.ts +4 -1
  82. package/components/virtualization/GridVirtualScroller.js +2 -0
  83. package/components/virtualization/GridVirtualScrollerContent.d.ts +4 -1
  84. package/components/virtualization/GridVirtualScrollerContent.js +1 -3
  85. package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +4 -1
  86. package/constants/defaultGridSlotsComponents.js +3 -2
  87. package/constants/gridClasses.d.ts +20 -0
  88. package/constants/gridClasses.js +1 -1
  89. package/constants/gridDetailPanelToggleField.d.ts +1 -0
  90. package/constants/gridDetailPanelToggleField.js +2 -0
  91. package/constants/localeTextConstants.js +8 -1
  92. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +39 -15
  93. package/hooks/core/pipeProcessing/index.d.ts +1 -0
  94. package/hooks/core/pipeProcessing/index.js +2 -1
  95. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +8 -3
  96. package/hooks/core/pipeProcessing/useGridPipeProcessing.js +53 -19
  97. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +3 -0
  98. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
  99. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +0 -3
  100. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -4
  101. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +4 -4
  102. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -7
  103. package/hooks/core/useGridApiInitialization.js +3 -3
  104. package/hooks/core/useGridErrorHandler.js +1 -2
  105. package/hooks/core/useGridStateInitialization.js +1 -2
  106. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +0 -1
  107. package/hooks/features/columnHeaders/useGridColumnHeaders.js +81 -16
  108. package/hooks/features/columnMenu/useGridColumnMenu.js +3 -3
  109. package/hooks/features/columns/gridColumnsInterfaces.d.ts +3 -1
  110. package/hooks/features/columns/gridColumnsUtils.d.ts +19 -1
  111. package/hooks/features/columns/gridColumnsUtils.js +61 -8
  112. package/hooks/features/columns/useGridColumnSpanning.d.ts +7 -0
  113. package/hooks/features/columns/useGridColumnSpanning.js +108 -0
  114. package/hooks/features/columns/useGridColumns.d.ts +1 -1
  115. package/hooks/features/columns/useGridColumns.js +30 -25
  116. package/hooks/features/dimensions/useGridDimensions.d.ts +1 -1
  117. package/hooks/features/dimensions/useGridDimensions.js +10 -11
  118. package/hooks/features/editRows/useGridCellEditing.new.d.ts +1 -1
  119. package/hooks/features/editRows/useGridCellEditing.new.js +151 -42
  120. package/hooks/features/editRows/useGridCellEditing.old.js +20 -21
  121. package/hooks/features/editRows/useGridEditing.new.js +7 -3
  122. package/hooks/features/editRows/useGridEditing.old.js +4 -5
  123. package/hooks/features/editRows/useGridRowEditing.new.d.ts +1 -1
  124. package/hooks/features/editRows/useGridRowEditing.new.js +145 -57
  125. package/hooks/features/editRows/useGridRowEditing.old.js +21 -22
  126. package/hooks/features/events/useGridEvents.js +17 -18
  127. package/hooks/features/export/serializers/csvSerializer.js +5 -5
  128. package/hooks/features/export/useGridCsvExport.js +23 -16
  129. package/hooks/features/export/useGridPrintExport.js +22 -0
  130. package/hooks/features/export/utils.d.ts +3 -1
  131. package/hooks/features/export/utils.js +13 -0
  132. package/hooks/features/filter/gridFilterState.d.ts +1 -2
  133. package/hooks/features/filter/gridFilterState.js +3 -1
  134. package/hooks/features/filter/gridFilterUtils.d.ts +8 -0
  135. package/hooks/features/filter/gridFilterUtils.js +84 -2
  136. package/hooks/features/filter/useGridFilter.js +32 -15
  137. package/hooks/features/focus/useGridFocus.d.ts +1 -1
  138. package/hooks/features/focus/useGridFocus.js +48 -42
  139. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -0
  140. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +43 -12
  141. package/hooks/features/pagination/useGridPage.js +3 -4
  142. package/hooks/features/pagination/useGridPageSize.js +2 -3
  143. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -6
  144. package/hooks/features/rows/gridRowsSelector.d.ts +2 -0
  145. package/hooks/features/rows/gridRowsSelector.js +2 -0
  146. package/hooks/features/rows/gridRowsState.d.ts +7 -7
  147. package/hooks/features/rows/gridRowsUtils.d.ts +2 -1
  148. package/hooks/features/rows/gridRowsUtils.js +25 -1
  149. package/hooks/features/rows/useGridRows.d.ts +2 -2
  150. package/hooks/features/rows/useGridRows.js +121 -61
  151. package/hooks/features/rows/useGridRowsMeta.js +6 -13
  152. package/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
  153. package/hooks/features/scroll/useGridScroll.d.ts +2 -0
  154. package/hooks/features/scroll/useGridScroll.js +31 -4
  155. package/hooks/features/selection/useGridSelection.d.ts +1 -1
  156. package/hooks/features/selection/useGridSelection.js +15 -11
  157. package/hooks/features/sorting/useGridSorting.js +17 -18
  158. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +9 -0
  159. package/hooks/features/virtualization/useGridVirtualScroller.js +68 -32
  160. package/hooks/utils/useGridApiEventHandler.d.ts +4 -1
  161. package/hooks/utils/useGridApiEventHandler.js +22 -9
  162. package/hooks/utils/useGridNativeEventListener.js +1 -2
  163. package/hooks/utils/useGridSelector.js +1 -1
  164. package/index.d.ts +2 -0
  165. package/index.js +1 -1
  166. package/internals/index.d.ts +5 -1
  167. package/internals/index.js +6 -2
  168. package/legacy/DataGrid/DataGrid.js +36 -2
  169. package/legacy/DataGrid/useDataGridComponent.js +3 -1
  170. package/legacy/DataGrid/useDataGridProps.js +2 -1
  171. package/legacy/colDef/gridActionsColDef.js +2 -1
  172. package/legacy/colDef/gridBooleanColDef.js +2 -1
  173. package/legacy/colDef/gridCheckboxSelectionColDef.js +1 -0
  174. package/legacy/colDef/gridDateColDef.js +4 -2
  175. package/legacy/colDef/gridNumericColDef.js +3 -2
  176. package/legacy/colDef/gridNumericOperators.js +28 -18
  177. package/legacy/colDef/gridSingleSelectColDef.js +3 -2
  178. package/legacy/colDef/gridSingleSelectOperators.js +55 -6
  179. package/legacy/colDef/gridStringColDef.js +3 -2
  180. package/legacy/colDef/gridStringOperators.js +25 -14
  181. package/legacy/components/GridFooter.js +11 -2
  182. package/legacy/components/GridRow.js +56 -28
  183. package/legacy/components/GridRowCount.js +1 -0
  184. package/legacy/components/GridScrollArea.js +3 -4
  185. package/legacy/components/GridSelectedRowCount.js +2 -1
  186. package/legacy/components/base/GridBody.js +1 -2
  187. package/legacy/components/base/GridOverlays.js +5 -5
  188. package/legacy/components/cell/GridActionsCell.js +197 -27
  189. package/legacy/components/cell/GridActionsCellItem.js +7 -5
  190. package/legacy/components/cell/GridCell.js +37 -15
  191. package/legacy/components/cell/GridEditBooleanCell.js +132 -11
  192. package/legacy/components/cell/GridEditDateCell.js +148 -42
  193. package/legacy/components/cell/GridEditInputCell.js +62 -13
  194. package/legacy/components/cell/GridEditSingleSelectCell.js +65 -28
  195. package/legacy/components/cell/index.js +2 -0
  196. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +19 -23
  197. package/legacy/components/columnHeaders/GridColumnHeaders.js +2 -3
  198. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +23 -6
  199. package/legacy/components/columnSelection/GridHeaderCheckbox.js +4 -5
  200. package/legacy/components/containers/GridFooterContainer.js +11 -2
  201. package/legacy/components/containers/GridRootStyles.js +26 -5
  202. package/legacy/components/containers/GridToolbarContainer.js +12 -2
  203. package/legacy/components/menu/GridMenu.js +1 -0
  204. package/legacy/components/panel/GridPanel.js +1 -0
  205. package/legacy/components/panel/GridPanelContent.js +13 -2
  206. package/legacy/components/panel/GridPanelFooter.js +13 -2
  207. package/legacy/components/panel/GridPanelHeader.js +13 -2
  208. package/legacy/components/panel/filterPanel/GridFilterForm.js +14 -10
  209. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +13 -8
  210. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +22 -17
  211. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +22 -17
  212. package/legacy/components/toolbar/GridToolbar.js +31 -6
  213. package/legacy/components/toolbar/GridToolbarDensitySelector.js +1 -1
  214. package/legacy/components/toolbar/GridToolbarExport.js +18 -19
  215. package/legacy/components/toolbar/GridToolbarQuickFilter.js +103 -0
  216. package/legacy/components/toolbar/index.js +3 -2
  217. package/legacy/components/virtualization/GridVirtualScroller.js +2 -0
  218. package/legacy/components/virtualization/GridVirtualScrollerContent.js +1 -3
  219. package/legacy/constants/defaultGridSlotsComponents.js +3 -2
  220. package/legacy/constants/gridClasses.js +1 -1
  221. package/legacy/constants/gridDetailPanelToggleField.js +2 -0
  222. package/legacy/constants/localeTextConstants.js +8 -1
  223. package/legacy/hooks/core/pipeProcessing/index.js +2 -1
  224. package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +60 -24
  225. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
  226. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -4
  227. package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -7
  228. package/legacy/hooks/core/useGridApiInitialization.js +3 -3
  229. package/legacy/hooks/core/useGridErrorHandler.js +1 -2
  230. package/legacy/hooks/core/useGridStateInitialization.js +1 -2
  231. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +94 -16
  232. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +3 -3
  233. package/legacy/hooks/features/columns/gridColumnsUtils.js +79 -22
  234. package/legacy/hooks/features/columns/useGridColumnSpanning.js +106 -0
  235. package/legacy/hooks/features/columns/useGridColumns.js +30 -25
  236. package/legacy/hooks/features/dimensions/useGridDimensions.js +10 -11
  237. package/legacy/hooks/features/editRows/useGridCellEditing.new.js +225 -89
  238. package/legacy/hooks/features/editRows/useGridCellEditing.old.js +20 -21
  239. package/legacy/hooks/features/editRows/useGridEditing.new.js +7 -3
  240. package/legacy/hooks/features/editRows/useGridEditing.old.js +4 -5
  241. package/legacy/hooks/features/editRows/useGridRowEditing.new.js +157 -65
  242. package/legacy/hooks/features/editRows/useGridRowEditing.old.js +20 -21
  243. package/legacy/hooks/features/events/useGridEvents.js +17 -18
  244. package/legacy/hooks/features/export/serializers/csvSerializer.js +5 -5
  245. package/legacy/hooks/features/export/useGridCsvExport.js +24 -17
  246. package/legacy/hooks/features/export/useGridPrintExport.js +22 -0
  247. package/legacy/hooks/features/export/utils.js +14 -0
  248. package/legacy/hooks/features/filter/gridFilterState.js +3 -1
  249. package/legacy/hooks/features/filter/gridFilterUtils.js +96 -2
  250. package/legacy/hooks/features/filter/useGridFilter.js +32 -15
  251. package/legacy/hooks/features/focus/useGridFocus.js +50 -44
  252. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +43 -11
  253. package/legacy/hooks/features/pagination/useGridPage.js +3 -4
  254. package/legacy/hooks/features/pagination/useGridPageSize.js +2 -3
  255. package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -6
  256. package/legacy/hooks/features/rows/gridRowsSelector.js +6 -0
  257. package/legacy/hooks/features/rows/gridRowsUtils.js +27 -1
  258. package/legacy/hooks/features/rows/useGridRows.js +131 -61
  259. package/legacy/hooks/features/rows/useGridRowsMeta.js +6 -13
  260. package/legacy/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
  261. package/legacy/hooks/features/scroll/useGridScroll.js +31 -4
  262. package/legacy/hooks/features/selection/useGridSelection.js +15 -11
  263. package/legacy/hooks/features/sorting/useGridSorting.js +12 -15
  264. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +79 -42
  265. package/legacy/hooks/utils/useGridApiEventHandler.js +20 -9
  266. package/legacy/hooks/utils/useGridNativeEventListener.js +1 -2
  267. package/legacy/hooks/utils/useGridSelector.js +1 -1
  268. package/legacy/index.js +1 -1
  269. package/legacy/internals/index.js +6 -2
  270. package/legacy/locales/arSD.js +8 -1
  271. package/legacy/locales/bgBG.js +8 -1
  272. package/legacy/locales/csCZ.js +7 -0
  273. package/legacy/locales/daDK.js +8 -1
  274. package/legacy/locales/deDE.js +10 -3
  275. package/legacy/locales/elGR.js +7 -0
  276. package/legacy/locales/esES.js +7 -0
  277. package/legacy/locales/faIR.js +8 -1
  278. package/legacy/locales/fiFI.js +7 -0
  279. package/legacy/locales/frFR.js +7 -0
  280. package/legacy/locales/heIL.js +8 -1
  281. package/legacy/locales/huHU.js +127 -0
  282. package/legacy/locales/index.js +1 -0
  283. package/legacy/locales/itIT.js +7 -0
  284. package/legacy/locales/jaJP.js +7 -0
  285. package/legacy/locales/koKR.js +7 -0
  286. package/legacy/locales/nlNL.js +7 -0
  287. package/legacy/locales/plPL.js +8 -1
  288. package/legacy/locales/ptBR.js +8 -1
  289. package/legacy/locales/ruRU.js +7 -0
  290. package/legacy/locales/skSK.js +7 -0
  291. package/legacy/locales/trTR.js +8 -1
  292. package/legacy/locales/ukUA.js +7 -0
  293. package/legacy/locales/viVN.js +7 -0
  294. package/legacy/locales/zhCN.js +7 -0
  295. package/legacy/models/api/gridColumnSpanning.js +1 -0
  296. package/legacy/models/events/gridEvents.js +10 -3
  297. package/legacy/models/gridColumnSpanning.js +1 -0
  298. package/legacy/models/index.js +4 -3
  299. package/legacy/utils/createSelector.js +18 -2
  300. package/legacy/utils/exportAs.js +1 -1
  301. package/locales/arSD.js +8 -1
  302. package/locales/bgBG.js +8 -1
  303. package/locales/csCZ.js +7 -0
  304. package/locales/daDK.js +8 -1
  305. package/locales/deDE.js +10 -3
  306. package/locales/elGR.js +7 -0
  307. package/locales/esES.js +7 -0
  308. package/locales/faIR.js +8 -1
  309. package/locales/fiFI.js +7 -0
  310. package/locales/frFR.js +7 -0
  311. package/locales/heIL.js +8 -1
  312. package/locales/huHU.d.ts +2 -0
  313. package/locales/huHU.js +115 -0
  314. package/locales/index.d.ts +1 -0
  315. package/locales/index.js +1 -0
  316. package/locales/itIT.js +7 -0
  317. package/locales/jaJP.js +7 -0
  318. package/locales/koKR.js +7 -0
  319. package/locales/nlNL.js +7 -0
  320. package/locales/plPL.js +8 -1
  321. package/locales/ptBR.js +8 -1
  322. package/locales/ruRU.js +7 -0
  323. package/locales/skSK.js +7 -0
  324. package/locales/trTR.js +8 -1
  325. package/locales/ukUA.js +7 -0
  326. package/locales/viVN.js +7 -0
  327. package/locales/zhCN.js +7 -0
  328. package/models/api/gridApiCommon.d.ts +2 -1
  329. package/models/api/gridColumnSpanning.d.ts +28 -0
  330. package/models/api/gridColumnSpanning.js +1 -0
  331. package/models/api/gridCoreApi.d.ts +10 -0
  332. package/models/api/gridEditingApi.d.ts +72 -7
  333. package/models/api/gridFilterApi.d.ts +5 -0
  334. package/models/api/gridFocusApi.d.ts +1 -0
  335. package/models/api/gridLocaleTextApi.d.ts +5 -0
  336. package/models/api/gridRowApi.d.ts +34 -0
  337. package/models/api/index.d.ts +1 -1
  338. package/models/colDef/gridColDef.d.ts +18 -0
  339. package/models/events/gridEventLookup.d.ts +296 -11
  340. package/models/events/gridEvents.d.ts +10 -258
  341. package/models/events/gridEvents.js +10 -3
  342. package/models/gridColumnSpanning.d.ts +12 -0
  343. package/models/gridColumnSpanning.js +1 -0
  344. package/models/gridEditRowModel.d.ts +1 -1
  345. package/models/gridExport.d.ts +29 -2
  346. package/models/gridFilterModel.d.ts +11 -0
  347. package/models/gridFilterOperator.d.ts +1 -1
  348. package/models/gridIconSlotsComponent.d.ts +5 -0
  349. package/models/gridStateCommunity.d.ts +0 -2
  350. package/models/index.d.ts +1 -1
  351. package/models/index.js +4 -3
  352. package/models/params/gridCellParams.d.ts +12 -2
  353. package/models/params/gridRowParams.d.ts +5 -0
  354. package/models/props/DataGridProps.d.ts +57 -29
  355. package/modern/DataGrid/DataGrid.js +36 -2
  356. package/modern/DataGrid/useDataGridComponent.js +3 -1
  357. package/modern/DataGrid/useDataGridProps.js +2 -1
  358. package/modern/colDef/gridActionsColDef.js +2 -1
  359. package/modern/colDef/gridBooleanColDef.js +2 -1
  360. package/modern/colDef/gridCheckboxSelectionColDef.js +1 -0
  361. package/modern/colDef/gridDateColDef.js +4 -2
  362. package/modern/colDef/gridNumericColDef.js +3 -2
  363. package/modern/colDef/gridNumericOperators.js +11 -0
  364. package/modern/colDef/gridSingleSelectColDef.js +3 -2
  365. package/modern/colDef/gridSingleSelectOperators.js +52 -0
  366. package/modern/colDef/gridStringColDef.js +3 -2
  367. package/modern/colDef/gridStringOperators.js +12 -0
  368. package/modern/components/GridFooter.js +11 -2
  369. package/modern/components/GridRow.js +56 -26
  370. package/modern/components/GridRowCount.js +1 -0
  371. package/modern/components/GridScrollArea.js +3 -4
  372. package/modern/components/GridSelectedRowCount.js +2 -1
  373. package/modern/components/base/GridBody.js +1 -2
  374. package/modern/components/base/GridOverlays.js +5 -5
  375. package/modern/components/cell/GridActionsCell.js +179 -21
  376. package/modern/components/cell/GridActionsCellItem.js +7 -5
  377. package/modern/components/cell/GridCell.js +36 -15
  378. package/modern/components/cell/GridEditBooleanCell.js +101 -6
  379. package/modern/components/cell/GridEditDateCell.js +99 -5
  380. package/modern/components/cell/GridEditInputCell.js +30 -6
  381. package/modern/components/cell/GridEditSingleSelectCell.js +48 -16
  382. package/modern/components/cell/index.js +2 -0
  383. package/modern/components/columnHeaders/GridColumnHeaderItem.js +19 -23
  384. package/modern/components/columnHeaders/GridColumnHeaders.js +1 -1
  385. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +22 -6
  386. package/modern/components/columnSelection/GridHeaderCheckbox.js +4 -5
  387. package/modern/components/containers/GridFooterContainer.js +11 -2
  388. package/modern/components/containers/GridRootStyles.js +36 -1
  389. package/modern/components/containers/GridToolbarContainer.js +12 -2
  390. package/modern/components/menu/GridMenu.js +1 -0
  391. package/modern/components/panel/GridPanel.js +1 -0
  392. package/modern/components/panel/GridPanelContent.js +13 -2
  393. package/modern/components/panel/GridPanelFooter.js +13 -2
  394. package/modern/components/panel/GridPanelHeader.js +13 -2
  395. package/modern/components/panel/filterPanel/GridFilterForm.js +10 -6
  396. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +11 -6
  397. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +20 -13
  398. package/modern/components/panel/filterPanel/GridFilterInputValue.js +20 -13
  399. package/modern/components/toolbar/GridToolbar.js +30 -7
  400. package/modern/components/toolbar/GridToolbarDensitySelector.js +1 -1
  401. package/modern/components/toolbar/GridToolbarExport.js +15 -20
  402. package/modern/components/toolbar/GridToolbarQuickFilter.js +86 -0
  403. package/modern/components/toolbar/index.js +3 -2
  404. package/modern/components/virtualization/GridVirtualScroller.js +2 -0
  405. package/modern/components/virtualization/GridVirtualScrollerContent.js +1 -3
  406. package/modern/constants/defaultGridSlotsComponents.js +3 -2
  407. package/modern/constants/gridClasses.js +1 -1
  408. package/modern/constants/gridDetailPanelToggleField.js +2 -0
  409. package/modern/constants/localeTextConstants.js +8 -1
  410. package/modern/hooks/core/pipeProcessing/index.js +2 -1
  411. package/modern/hooks/core/pipeProcessing/useGridPipeProcessing.js +53 -19
  412. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
  413. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -4
  414. package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -7
  415. package/modern/hooks/core/useGridApiInitialization.js +3 -3
  416. package/modern/hooks/core/useGridErrorHandler.js +1 -2
  417. package/modern/hooks/core/useGridStateInitialization.js +1 -2
  418. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +81 -16
  419. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +3 -3
  420. package/modern/hooks/features/columns/gridColumnsUtils.js +61 -8
  421. package/modern/hooks/features/columns/useGridColumnSpanning.js +106 -0
  422. package/modern/hooks/features/columns/useGridColumns.js +30 -25
  423. package/modern/hooks/features/dimensions/useGridDimensions.js +10 -11
  424. package/modern/hooks/features/editRows/useGridCellEditing.new.js +149 -42
  425. package/modern/hooks/features/editRows/useGridCellEditing.old.js +20 -21
  426. package/modern/hooks/features/editRows/useGridEditing.new.js +7 -3
  427. package/modern/hooks/features/editRows/useGridEditing.old.js +4 -5
  428. package/modern/hooks/features/editRows/useGridRowEditing.new.js +143 -57
  429. package/modern/hooks/features/editRows/useGridRowEditing.old.js +21 -22
  430. package/modern/hooks/features/events/useGridEvents.js +17 -18
  431. package/modern/hooks/features/export/serializers/csvSerializer.js +5 -5
  432. package/modern/hooks/features/export/useGridCsvExport.js +21 -16
  433. package/modern/hooks/features/export/useGridPrintExport.js +20 -0
  434. package/modern/hooks/features/export/utils.js +13 -0
  435. package/modern/hooks/features/filter/gridFilterState.js +3 -1
  436. package/modern/hooks/features/filter/gridFilterUtils.js +80 -2
  437. package/modern/hooks/features/filter/useGridFilter.js +32 -15
  438. package/modern/hooks/features/focus/useGridFocus.js +48 -42
  439. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +41 -12
  440. package/modern/hooks/features/pagination/useGridPage.js +3 -4
  441. package/modern/hooks/features/pagination/useGridPageSize.js +2 -3
  442. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -6
  443. package/modern/hooks/features/rows/gridRowsSelector.js +2 -0
  444. package/modern/hooks/features/rows/gridRowsUtils.js +23 -1
  445. package/modern/hooks/features/rows/useGridRows.js +121 -61
  446. package/modern/hooks/features/rows/useGridRowsMeta.js +6 -13
  447. package/modern/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
  448. package/modern/hooks/features/scroll/useGridScroll.js +29 -4
  449. package/modern/hooks/features/selection/useGridSelection.js +15 -11
  450. package/modern/hooks/features/sorting/useGridSorting.js +17 -18
  451. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +68 -28
  452. package/modern/hooks/utils/useGridApiEventHandler.js +20 -9
  453. package/modern/hooks/utils/useGridNativeEventListener.js +1 -2
  454. package/modern/hooks/utils/useGridSelector.js +1 -1
  455. package/modern/index.js +1 -1
  456. package/modern/internals/index.js +6 -2
  457. package/modern/locales/arSD.js +8 -1
  458. package/modern/locales/bgBG.js +8 -1
  459. package/modern/locales/csCZ.js +7 -0
  460. package/modern/locales/daDK.js +8 -1
  461. package/modern/locales/deDE.js +10 -3
  462. package/modern/locales/elGR.js +7 -0
  463. package/modern/locales/esES.js +7 -0
  464. package/modern/locales/faIR.js +8 -1
  465. package/modern/locales/fiFI.js +7 -0
  466. package/modern/locales/frFR.js +7 -0
  467. package/modern/locales/heIL.js +8 -1
  468. package/modern/locales/huHU.js +115 -0
  469. package/modern/locales/index.js +1 -0
  470. package/modern/locales/itIT.js +7 -0
  471. package/modern/locales/jaJP.js +7 -0
  472. package/modern/locales/koKR.js +7 -0
  473. package/modern/locales/nlNL.js +7 -0
  474. package/modern/locales/plPL.js +8 -1
  475. package/modern/locales/ptBR.js +8 -1
  476. package/modern/locales/ruRU.js +7 -0
  477. package/modern/locales/skSK.js +7 -0
  478. package/modern/locales/trTR.js +8 -1
  479. package/modern/locales/ukUA.js +7 -0
  480. package/modern/locales/viVN.js +7 -0
  481. package/modern/locales/zhCN.js +7 -0
  482. package/modern/models/api/gridColumnSpanning.js +1 -0
  483. package/modern/models/events/gridEvents.js +10 -3
  484. package/modern/models/gridColumnSpanning.js +1 -0
  485. package/modern/models/index.js +4 -3
  486. package/modern/utils/createSelector.js +20 -2
  487. package/modern/utils/exportAs.js +1 -1
  488. package/node/DataGrid/DataGrid.js +36 -2
  489. package/node/DataGrid/useDataGridComponent.js +4 -1
  490. package/node/DataGrid/useDataGridProps.js +2 -1
  491. package/node/colDef/gridActionsColDef.js +2 -1
  492. package/node/colDef/gridBooleanColDef.js +2 -1
  493. package/node/colDef/gridCheckboxSelectionColDef.js +1 -0
  494. package/node/colDef/gridDateColDef.js +4 -2
  495. package/node/colDef/gridNumericColDef.js +2 -1
  496. package/node/colDef/gridNumericOperators.js +15 -1
  497. package/node/colDef/gridSingleSelectColDef.js +2 -1
  498. package/node/colDef/gridSingleSelectOperators.js +56 -1
  499. package/node/colDef/gridStringColDef.js +2 -1
  500. package/node/colDef/gridStringOperators.js +16 -1
  501. package/node/components/GridFooter.js +10 -1
  502. package/node/components/GridRow.js +59 -29
  503. package/node/components/GridRowCount.js +1 -0
  504. package/node/components/GridScrollArea.js +3 -5
  505. package/node/components/GridSelectedRowCount.js +2 -1
  506. package/node/components/base/GridBody.js +1 -3
  507. package/node/components/base/GridOverlays.js +4 -5
  508. package/node/components/cell/GridActionsCell.js +181 -21
  509. package/node/components/cell/GridActionsCellItem.js +7 -4
  510. package/node/components/cell/GridCell.js +35 -14
  511. package/node/components/cell/GridEditBooleanCell.js +100 -5
  512. package/node/components/cell/GridEditDateCell.js +98 -4
  513. package/node/components/cell/GridEditInputCell.js +30 -6
  514. package/node/components/cell/GridEditSingleSelectCell.js +50 -18
  515. package/node/components/cell/index.js +26 -0
  516. package/node/components/columnHeaders/GridColumnHeaderItem.js +19 -24
  517. package/node/components/columnHeaders/GridColumnHeaders.js +1 -1
  518. package/node/components/columnSelection/GridCellCheckboxRenderer.js +22 -7
  519. package/node/components/columnSelection/GridHeaderCheckbox.js +4 -6
  520. package/node/components/containers/GridFooterContainer.js +10 -1
  521. package/node/components/containers/GridRootStyles.js +36 -1
  522. package/node/components/containers/GridToolbarContainer.js +11 -1
  523. package/node/components/menu/GridMenu.js +1 -0
  524. package/node/components/panel/GridPanel.js +1 -0
  525. package/node/components/panel/GridPanelContent.js +11 -1
  526. package/node/components/panel/GridPanelFooter.js +11 -1
  527. package/node/components/panel/GridPanelHeader.js +11 -1
  528. package/node/components/panel/filterPanel/GridFilterForm.js +15 -10
  529. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +14 -8
  530. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +23 -15
  531. package/node/components/panel/filterPanel/GridFilterInputValue.js +23 -15
  532. package/node/components/toolbar/GridToolbar.js +32 -7
  533. package/node/components/toolbar/GridToolbarDensitySelector.js +1 -1
  534. package/node/components/toolbar/GridToolbarExport.js +14 -19
  535. package/node/components/toolbar/GridToolbarQuickFilter.js +111 -0
  536. package/node/components/toolbar/index.js +42 -11
  537. package/node/components/virtualization/GridVirtualScroller.js +2 -0
  538. package/node/components/virtualization/GridVirtualScrollerContent.js +1 -3
  539. package/node/constants/defaultGridSlotsComponents.js +2 -1
  540. package/node/constants/gridClasses.js +1 -1
  541. package/node/constants/gridDetailPanelToggleField.js +9 -0
  542. package/node/constants/localeTextConstants.js +8 -1
  543. package/node/hooks/core/pipeProcessing/index.js +13 -0
  544. package/node/hooks/core/pipeProcessing/useGridPipeProcessing.js +51 -20
  545. package/node/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +42 -0
  546. package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -3
  547. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -8
  548. package/node/hooks/core/useGridApiInitialization.js +3 -4
  549. package/node/hooks/core/useGridErrorHandler.js +1 -3
  550. package/node/hooks/core/useGridStateInitialization.js +1 -3
  551. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +85 -17
  552. package/node/hooks/features/columnMenu/useGridColumnMenu.js +3 -4
  553. package/node/hooks/features/columns/gridColumnsUtils.js +65 -9
  554. package/node/hooks/features/columns/useGridColumnSpanning.js +128 -0
  555. package/node/hooks/features/columns/useGridColumns.js +29 -25
  556. package/node/hooks/features/dimensions/useGridDimensions.js +10 -12
  557. package/node/hooks/features/editRows/useGridCellEditing.new.js +151 -42
  558. package/node/hooks/features/editRows/useGridCellEditing.old.js +20 -22
  559. package/node/hooks/features/editRows/useGridEditing.new.js +6 -2
  560. package/node/hooks/features/editRows/useGridEditing.old.js +4 -6
  561. package/node/hooks/features/editRows/useGridRowEditing.new.js +143 -57
  562. package/node/hooks/features/editRows/useGridRowEditing.old.js +21 -23
  563. package/node/hooks/features/events/useGridEvents.js +17 -19
  564. package/node/hooks/features/export/serializers/csvSerializer.js +5 -5
  565. package/node/hooks/features/export/useGridCsvExport.js +26 -17
  566. package/node/hooks/features/export/useGridPrintExport.js +25 -0
  567. package/node/hooks/features/export/utils.js +19 -2
  568. package/node/hooks/features/filter/gridFilterState.js +3 -1
  569. package/node/hooks/features/filter/gridFilterUtils.js +92 -3
  570. package/node/hooks/features/filter/useGridFilter.js +33 -16
  571. package/node/hooks/features/focus/useGridFocus.js +48 -43
  572. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +44 -13
  573. package/node/hooks/features/pagination/useGridPage.js +3 -5
  574. package/node/hooks/features/pagination/useGridPageSize.js +2 -4
  575. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -8
  576. package/node/hooks/features/rows/gridRowsSelector.js +5 -1
  577. package/node/hooks/features/rows/gridRowsUtils.js +29 -1
  578. package/node/hooks/features/rows/useGridRows.js +122 -61
  579. package/node/hooks/features/rows/useGridRowsMeta.js +6 -14
  580. package/node/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
  581. package/node/hooks/features/scroll/useGridScroll.js +32 -3
  582. package/node/hooks/features/selection/useGridSelection.js +16 -12
  583. package/node/hooks/features/sorting/useGridSorting.js +17 -19
  584. package/node/hooks/features/virtualization/useGridVirtualScroller.js +73 -33
  585. package/node/hooks/utils/useGridApiEventHandler.js +22 -10
  586. package/node/hooks/utils/useGridNativeEventListener.js +1 -3
  587. package/node/hooks/utils/useGridSelector.js +1 -1
  588. package/node/index.js +1 -1
  589. package/node/internals/index.js +47 -3
  590. package/node/locales/arSD.js +8 -1
  591. package/node/locales/bgBG.js +8 -1
  592. package/node/locales/csCZ.js +7 -0
  593. package/node/locales/daDK.js +8 -1
  594. package/node/locales/deDE.js +10 -3
  595. package/node/locales/elGR.js +7 -0
  596. package/node/locales/esES.js +7 -0
  597. package/node/locales/faIR.js +8 -1
  598. package/node/locales/fiFI.js +7 -0
  599. package/node/locales/frFR.js +7 -0
  600. package/node/locales/heIL.js +8 -1
  601. package/node/locales/huHU.js +125 -0
  602. package/node/locales/index.js +13 -0
  603. package/node/locales/itIT.js +7 -0
  604. package/node/locales/jaJP.js +7 -0
  605. package/node/locales/koKR.js +7 -0
  606. package/node/locales/nlNL.js +7 -0
  607. package/node/locales/plPL.js +8 -1
  608. package/node/locales/ptBR.js +8 -1
  609. package/node/locales/ruRU.js +7 -0
  610. package/node/locales/skSK.js +7 -0
  611. package/node/locales/trTR.js +8 -1
  612. package/node/locales/ukUA.js +7 -0
  613. package/node/locales/viVN.js +7 -0
  614. package/node/locales/zhCN.js +7 -0
  615. package/node/models/api/gridColumnSpanning.js +5 -0
  616. package/node/models/events/gridEvents.js +10 -3
  617. package/node/models/gridColumnSpanning.js +5 -0
  618. package/node/models/index.js +0 -13
  619. package/node/utils/createSelector.js +25 -4
  620. package/node/utils/exportAs.js +1 -1
  621. package/package.json +4 -4
  622. package/utils/createSelector.d.ts +2 -1
  623. package/utils/createSelector.js +20 -2
  624. package/utils/domUtils.d.ts +2 -2
  625. package/utils/exportAs.d.ts +2 -2
  626. package/utils/exportAs.js +1 -1
@@ -1,26 +1,33 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["className", "csvOptions", "printOptions"];
3
+ const _excluded = ["className", "csvOptions", "printOptions", "excelOptions", "showQuickFilter", "quickFilterProps"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
+ import Box from '@mui/material/Box';
6
7
  import { GridToolbarContainer } from '../containers/GridToolbarContainer';
7
8
  import { GridToolbarColumnsButton } from './GridToolbarColumnsButton';
8
9
  import { GridToolbarDensitySelector } from './GridToolbarDensitySelector';
9
10
  import { GridToolbarFilterButton } from './GridToolbarFilterButton';
10
11
  import { GridToolbarExport } from './GridToolbarExport';
11
12
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
13
+ import { GridToolbarQuickFilter } from './GridToolbarQuickFilter';
12
14
  import { jsx as _jsx } from "react/jsx-runtime";
13
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
14
16
  const GridToolbar = /*#__PURE__*/React.forwardRef(function GridToolbar(props, ref) {
17
+ // TODO v6: think about where export option should be passed.
18
+ // from componentProps={{ toolbarExport: { ...exportOption} }} seems to be more appropriate
15
19
  const {
16
20
  csvOptions,
17
- printOptions
21
+ printOptions,
22
+ excelOptions,
23
+ showQuickFilter = false,
24
+ quickFilterProps = {}
18
25
  } = props,
19
26
  other = _objectWithoutPropertiesLoose(props, _excluded);
20
27
 
21
28
  const rootProps = useGridRootProps();
22
29
 
23
- if (rootProps.disableColumnFilter && rootProps.disableColumnSelector && rootProps.disableDensitySelector) {
30
+ if (rootProps.disableColumnFilter && rootProps.disableColumnSelector && rootProps.disableDensitySelector && !showQuickFilter) {
24
31
  return null;
25
32
  }
26
33
 
@@ -29,8 +36,14 @@ const GridToolbar = /*#__PURE__*/React.forwardRef(function GridToolbar(props, re
29
36
  }, other, {
30
37
  children: [/*#__PURE__*/_jsx(GridToolbarColumnsButton, {}), /*#__PURE__*/_jsx(GridToolbarFilterButton, {}), /*#__PURE__*/_jsx(GridToolbarDensitySelector, {}), /*#__PURE__*/_jsx(GridToolbarExport, {
31
38
  csvOptions: csvOptions,
32
- printOptions: printOptions
33
- })]
39
+ printOptions: printOptions // TODO: remove the reference to excelOptions in community package
40
+ ,
41
+ excelOptions: excelOptions
42
+ }), /*#__PURE__*/_jsx(Box, {
43
+ sx: {
44
+ flex: 1
45
+ }
46
+ }), showQuickFilter && /*#__PURE__*/_jsx(GridToolbarQuickFilter, _extends({}, quickFilterProps))]
34
47
  }));
35
48
  });
36
49
  process.env.NODE_ENV !== "production" ? GridToolbar.propTypes = {
@@ -38,7 +51,17 @@ process.env.NODE_ENV !== "production" ? GridToolbar.propTypes = {
38
51
  // | These PropTypes are generated from the TypeScript type definitions |
39
52
  // | To update them edit the TypeScript types and run "yarn proptypes" |
40
53
  // ----------------------------------------------------------------------
41
- csvOptions: PropTypes.object,
42
- printOptions: PropTypes.object
54
+
55
+ /**
56
+ * Props passed to the quick filter component.
57
+ */
58
+ quickFilterProps: PropTypes.object,
59
+
60
+ /**
61
+ * Show the quick filter component.
62
+ * @default false
63
+ */
64
+ showQuickFilter: PropTypes.bool,
65
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
43
66
  } : void 0;
44
67
  export { GridToolbar };
@@ -99,7 +99,7 @@ export const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function
99
99
  "aria-label": apiRef.current.getLocaleText('toolbarDensityLabel'),
100
100
  "aria-expanded": open ? 'true' : undefined,
101
101
  "aria-haspopup": "menu",
102
- "aria-labelledby": densityMenuId,
102
+ "aria-controls": densityMenuId,
103
103
  id: densityButtonId
104
104
  }, other, {
105
105
  onClick: handleDensitySelectorOpen
@@ -1,24 +1,18 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["csvOptions", "printOptions"];
3
+ const _excluded = ["csvOptions", "printOptions", "excelOptions"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import MenuItem from '@mui/material/MenuItem';
7
7
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
8
8
  import { GridToolbarExportContainer } from './GridToolbarExportContainer';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
- import { jsxs as _jsxs } from "react/jsx-runtime";
11
10
  export const GridCsvExportMenuItem = props => {
12
11
  const apiRef = useGridApiContext();
13
12
  const {
14
13
  hideMenu,
15
14
  options
16
15
  } = props;
17
-
18
- if (options?.disableToolbarButton) {
19
- return null;
20
- }
21
-
22
16
  return /*#__PURE__*/_jsx(MenuItem, {
23
17
  onClick: () => {
24
18
  apiRef.current.exportDataAsCsv(options);
@@ -33,11 +27,6 @@ export const GridPrintExportMenuItem = props => {
33
27
  hideMenu,
34
28
  options
35
29
  } = props;
36
-
37
- if (options?.disableToolbarButton) {
38
- return null;
39
- }
40
-
41
30
  return /*#__PURE__*/_jsx(MenuItem, {
42
31
  onClick: () => {
43
32
  apiRef.current.exportDataAsPrint(options);
@@ -49,21 +38,27 @@ export const GridPrintExportMenuItem = props => {
49
38
  const GridToolbarExport = /*#__PURE__*/React.forwardRef(function GridToolbarExport(props, ref) {
50
39
  const {
51
40
  csvOptions = {},
52
- printOptions = {}
41
+ printOptions = {},
42
+ excelOptions
53
43
  } = props,
54
44
  other = _objectWithoutPropertiesLoose(props, _excluded);
55
45
 
56
- if (csvOptions?.disableToolbarButton && printOptions?.disableToolbarButton) {
46
+ const apiRef = useGridApiContext();
47
+ const preProcessedButtons = apiRef.current.unstable_applyPipeProcessors('exportMenu', [], {
48
+ excelOptions,
49
+ csvOptions,
50
+ printOptions
51
+ }).sort((a, b) => a.componentName > b.componentName ? 1 : -1);
52
+
53
+ if (preProcessedButtons.length === 0) {
57
54
  return null;
58
55
  }
59
56
 
60
- return /*#__PURE__*/_jsxs(GridToolbarExportContainer, _extends({}, other, {
57
+ return /*#__PURE__*/_jsx(GridToolbarExportContainer, _extends({}, other, {
61
58
  ref: ref,
62
- children: [/*#__PURE__*/_jsx(GridCsvExportMenuItem, {
63
- options: csvOptions
64
- }), /*#__PURE__*/_jsx(GridPrintExportMenuItem, {
65
- options: printOptions
66
- })]
59
+ children: preProcessedButtons.map((button, index) => /*#__PURE__*/React.cloneElement(button.component, {
60
+ key: index
61
+ }))
67
62
  }));
68
63
  });
69
64
  process.env.NODE_ENV !== "production" ? GridToolbarExport.propTypes = {
@@ -0,0 +1,86 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["quickFilterParser", "debounceMs"];
4
+ import * as React from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import TextField from '@mui/material/TextField';
7
+ import SearchIcon from '@mui/icons-material/Search';
8
+ import { styled } from '@mui/material/styles';
9
+ import { debounce } from '@mui/material/utils';
10
+ import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
11
+ import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ const GridToolbarQuickFilterRoot = styled(TextField, {
14
+ name: 'MuiDataGrid',
15
+ slot: 'ToolbarQuickFilter',
16
+ overridesResolver: (props, styles) => styles.toolbarQuickFilter
17
+ })(({
18
+ theme
19
+ }) => ({
20
+ width: 'auto',
21
+ paddingBottom: theme.spacing(0.5),
22
+ '& .MuiSvgIcon-root': {
23
+ marginRight: theme.spacing(0.5)
24
+ },
25
+ '& .MuiInput-underline:before': {
26
+ borderBottom: `1px solid ${theme.palette.divider}`
27
+ }
28
+ }));
29
+
30
+ const defaultSearchValueParser = searchText => searchText.split(' ').filter(word => word !== '');
31
+
32
+ function GridToolbarQuickFilter(props) {
33
+ const {
34
+ quickFilterParser = defaultSearchValueParser,
35
+ debounceMs = 500
36
+ } = props,
37
+ other = _objectWithoutPropertiesLoose(props, _excluded);
38
+
39
+ const apiRef = useGridApiContext();
40
+ const rootProps = useGridRootProps();
41
+ const [searchValue, setSearchValue] = React.useState('');
42
+ const updateSearchValue = React.useCallback(newSearchValue => {
43
+ apiRef.current.setQuickFilterValues(quickFilterParser(newSearchValue));
44
+ }, [apiRef, quickFilterParser]);
45
+ const debouncedUpdateSearchValue = React.useMemo(() => debounce(updateSearchValue, debounceMs), [updateSearchValue, debounceMs]);
46
+ const handleSearchValueChange = React.useCallback(event => {
47
+ const newSearchValue = event.target.value;
48
+ setSearchValue(newSearchValue);
49
+ debouncedUpdateSearchValue(newSearchValue);
50
+ }, [debouncedUpdateSearchValue]);
51
+ return /*#__PURE__*/_jsx(GridToolbarQuickFilterRoot, _extends({
52
+ as: rootProps.components.BaseTextField,
53
+ variant: "standard",
54
+ value: searchValue,
55
+ onChange: handleSearchValueChange,
56
+ placeholder: apiRef.current.getLocaleText('toolbarQuickFilterPlaceholder'),
57
+ "aria-label": apiRef.current.getLocaleText('toolbarQuickFilterLabel'),
58
+ type: "search",
59
+ InputProps: {
60
+ startAdornment: /*#__PURE__*/_jsx(SearchIcon, {
61
+ fontSize: "small"
62
+ })
63
+ }
64
+ }, other, rootProps.componentsProps?.baseTextField));
65
+ }
66
+
67
+ process.env.NODE_ENV !== "production" ? GridToolbarQuickFilter.propTypes = {
68
+ // ----------------------------- Warning --------------------------------
69
+ // | These PropTypes are generated from the TypeScript type definitions |
70
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
71
+ // ----------------------------------------------------------------------
72
+
73
+ /**
74
+ * The debounce time in milliseconds.
75
+ * @default 500
76
+ */
77
+ debounceMs: PropTypes.number,
78
+
79
+ /**
80
+ * Function responsible for parsing text input in an array of independent values for quick filtering.
81
+ * @param {string} input The value entered by the user
82
+ * @returns {any[]} The array of value on which quick filter is applied
83
+ */
84
+ quickFilterParser: PropTypes.func
85
+ } : void 0;
86
+ export { GridToolbarQuickFilter };
@@ -1,6 +1,7 @@
1
1
  export * from './GridToolbar';
2
2
  export * from './GridToolbarColumnsButton';
3
3
  export * from './GridToolbarDensitySelector';
4
- export * from './GridToolbarExport';
4
+ export { GridCsvExportMenuItem, GridPrintExportMenuItem, GridToolbarExport } from './GridToolbarExport';
5
5
  export * from './GridToolbarFilterButton';
6
- export * from './GridToolbarExportContainer';
6
+ export * from './GridToolbarExportContainer';
7
+ export * from './GridToolbarQuickFilter';
@@ -25,6 +25,8 @@ const VirtualScrollerRoot = styled('div', {
25
25
  overridesResolver: (props, styles) => styles.virtualScroller
26
26
  })({
27
27
  overflow: 'auto',
28
+ // See https://github.com/mui/mui-x/issues/4360
29
+ position: 'relative',
28
30
  '@media print': {
29
31
  overflow: 'hidden'
30
32
  }
@@ -24,9 +24,7 @@ const VirtualScrollerContentRoot = styled('div', {
24
24
  name: 'MuiDataGrid',
25
25
  slot: 'VirtualScrollerContent',
26
26
  overridesResolver: (props, styles) => styles.virtualScrollerContent
27
- })({
28
- position: 'relative'
29
- });
27
+ })({});
30
28
  const GridVirtualScrollerContent = /*#__PURE__*/React.forwardRef(function GridVirtualScrollerContent(props, ref) {
31
29
  const {
32
30
  className,
@@ -7,7 +7,7 @@ import MUISwitch from '@mui/material/Switch';
7
7
  import MUIButton from '@mui/material/Button';
8
8
  import MUITooltip from '@mui/material/Tooltip';
9
9
  import MUIPopper from '@mui/material/Popper';
10
- import { GridArrowDownwardIcon, GridArrowUpwardIcon, GridCell, GridCheckIcon, GridCloseIcon, GridColumnIcon, GridColumnMenu, GridColumnsPanel, GridFilterAltIcon, GridFilterListIcon, GridFilterPanel, GridFooter, GridHeader, GridLoadingOverlay, GridNoRowsOverlay, GridPagination, GridPanel, GridPreferencesPanel, GridRow, GridSaveAltIcon, GridSeparatorIcon, GridTableRowsIcon, GridTripleDotsVerticalIcon, GridViewHeadlineIcon, GridViewStreamIcon, GridMoreVertIcon, GridExpandMoreIcon, GridKeyboardArrowRight, GridAddIcon, GridRemoveIcon, GridColumnHeaderFilterIconButton } from '../components';
10
+ import { GridArrowDownwardIcon, GridArrowUpwardIcon, GridCell, GridCheckIcon, GridCloseIcon, GridColumnIcon, GridColumnMenu, GridColumnsPanel, GridFilterAltIcon, GridFilterListIcon, GridFilterPanel, GridFooter, GridHeader, GridLoadingOverlay, GridNoRowsOverlay, GridPagination, GridPanel, GridPreferencesPanel, GridRow, GridSaveAltIcon, GridSeparatorIcon, GridTableRowsIcon, GridTripleDotsVerticalIcon, GridViewHeadlineIcon, GridViewStreamIcon, GridMoreVertIcon, GridExpandMoreIcon, GridKeyboardArrowRight, GridAddIcon, GridRemoveIcon, GridDragIcon, GridColumnHeaderFilterIconButton } from '../components';
11
11
  import { GridColumnUnsortedIcon } from '../components/columnHeaders/GridColumnUnsortedIcon';
12
12
  import { ErrorOverlay } from '../components/ErrorOverlay';
13
13
  import { GridNoResultsOverlay } from '../components/GridNoResultsOverlay';
@@ -33,7 +33,8 @@ const DEFAULT_GRID_ICON_SLOTS_COMPONENTS = {
33
33
  GroupingCriteriaCollapseIcon: GridExpandMoreIcon,
34
34
  GroupingCriteriaExpandIcon: GridKeyboardArrowRight,
35
35
  DetailPanelExpandIcon: GridAddIcon,
36
- DetailPanelCollapseIcon: GridRemoveIcon
36
+ DetailPanelCollapseIcon: GridRemoveIcon,
37
+ RowReorderIcon: GridDragIcon
37
38
  };
38
39
  /**
39
40
  * TODO: Differentiate community and pro value and interface
@@ -2,4 +2,4 @@ import { generateUtilityClasses, generateUtilityClass } from '@mui/material';
2
2
  export function getDataGridUtilityClass(slot) {
3
3
  return generateUtilityClass('MuiDataGrid', slot);
4
4
  }
5
- export const gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'autoHeight', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell', 'cellContent', 'cellCheckbox', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLinkOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'root', 'row--editable', 'row--editing', 'row', 'row--lastVisible', 'rowCount', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle']);
5
+ export const gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'autoHeight', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell', 'cellContent', 'cellCheckbox', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLinkOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'root', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle']);
@@ -0,0 +1,2 @@
1
+ // Can't import from pro package - hence duplication
2
+ export const GRID_DETAIL_PANEL_TOGGLE_FIELD = '__detail_panel_toggle__';
@@ -18,11 +18,16 @@ export const GRID_DEFAULT_LOCALE_TEXT = {
18
18
  toolbarFiltersTooltipHide: 'Hide filters',
19
19
  toolbarFiltersTooltipShow: 'Show filters',
20
20
  toolbarFiltersTooltipActive: count => count !== 1 ? `${count} active filters` : `${count} active filter`,
21
+ // Quick filter toolbar field
22
+ toolbarQuickFilterPlaceholder: 'Search...',
23
+ toolbarQuickFilterLabel: 'Search',
24
+ toolbarQuickFilterDeleteIconLabel: 'Clear',
21
25
  // Export selector toolbar button text
22
26
  toolbarExport: 'Export',
23
27
  toolbarExportLabel: 'Export',
24
28
  toolbarExportCSV: 'Download as CSV',
25
29
  toolbarExportPrint: 'Print',
30
+ toolbarExportExcel: 'Download as Excel',
26
31
  // Columns panel text
27
32
  columnsPanelTextFieldLabel: 'Find column',
28
33
  columnsPanelTextFieldPlaceholder: 'Column title',
@@ -103,5 +108,7 @@ export const GRID_DEFAULT_LOCALE_TEXT = {
103
108
  expandDetailPanel: 'Expand',
104
109
  collapseDetailPanel: 'Collapse',
105
110
  // Used core components translation keys
106
- MuiTablePagination: {}
111
+ MuiTablePagination: {},
112
+ // Row reordering text
113
+ rowReorderingHeaderName: 'Row reordering'
107
114
  };
@@ -1,3 +1,4 @@
1
1
  export * from './gridPipeProcessingApi';
2
2
  export * from './useGridPipeProcessing';
3
- export * from './useGridRegisterPipeProcessor';
3
+ export * from './useGridRegisterPipeProcessor';
4
+ export * from './useGridRegisterPipeApplier';
@@ -1,9 +1,8 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _toPropertyKey from "@babel/runtime/helpers/esm/toPropertyKey";
3
- import _extends from "@babel/runtime/helpers/esm/extends";
4
3
  import * as React from 'react';
5
4
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
6
- import { GridEvents } from '../../../models/events';
5
+
7
6
  /**
8
7
  * Implement the Pipeline Pattern
9
8
  *
@@ -17,7 +16,10 @@ import { GridEvents } from '../../../models/events';
17
16
  * The plugin containing the custom logic must use:
18
17
  *
19
18
  * - `useGridRegisterPipeProcessor` to register their processor.
20
- * When the processor changes, it will fire `GridEvents.pipeProcessorRegister` to re-apply the whole pipe.
19
+ *
20
+ * - `apiRef.current.unstable_requestPipeProcessorsApplication` to imperatively re-apply a group.
21
+ * This method should be used in last resort.
22
+ * Most of the time, the application should be triggered by an update on the deps of the processor.
21
23
  *
22
24
  * =====================================================================================================================
23
25
  *
@@ -25,35 +27,65 @@ import { GridEvents } from '../../../models/events';
25
27
  *
26
28
  * - `apiRef.current.unstable_applyPipeProcessors` to run in chain all the processors of a given group.
27
29
  *
28
- * - `GridEvents.pipeProcessorRegister` to re-apply the whole pipe when a processor of this pipe changes.
29
- *
30
+ * - `useGridRegisterPipeApplier` to re-apply the whole pipe when requested.
31
+ * The applier will be called when:
32
+ * * a processor is registered.
33
+ * * `apiRef.current.unstable_requestPipeProcessorsApplication` is called for the given group.
30
34
  */
31
-
32
35
  export const useGridPipeProcessing = apiRef => {
33
36
  const processorsCache = React.useRef({});
37
+ const runAppliers = React.useCallback(groupCache => {
38
+ if (!groupCache) {
39
+ return;
40
+ }
41
+
42
+ Object.values(groupCache.appliers).forEach(callback => {
43
+ callback();
44
+ });
45
+ }, []);
34
46
  const registerPipeProcessor = React.useCallback((group, id, processor) => {
35
47
  if (!processorsCache.current[group]) {
36
- processorsCache.current[group] = {};
48
+ processorsCache.current[group] = {
49
+ processors: {},
50
+ appliers: {}
51
+ };
37
52
  }
38
53
 
39
- const groupProcessors = processorsCache.current[group];
40
- const oldProcessor = groupProcessors[id];
54
+ const groupCache = processorsCache.current[group];
55
+ const oldProcessor = groupCache.processors[id];
41
56
 
42
57
  if (oldProcessor !== processor) {
43
- processorsCache.current[group] = _extends({}, groupProcessors, {
44
- [id]: processor
45
- });
46
- apiRef.current.publishEvent(GridEvents.pipeProcessorRegister, group);
58
+ groupCache.processors[id] = processor;
59
+ runAppliers(groupCache);
47
60
  }
48
61
 
49
62
  return () => {
50
- const _ref = processorsCache.current[group],
51
- otherProcessors = _objectWithoutPropertiesLoose(_ref, [id].map(_toPropertyKey));
63
+ const _processors = processorsCache.current[group].processors,
64
+ otherProcessors = _objectWithoutPropertiesLoose(_processors, [id].map(_toPropertyKey));
52
65
 
53
- processorsCache.current[group] = otherProcessors;
54
- apiRef.current.publishEvent(GridEvents.pipeProcessorUnregister, group);
66
+ processorsCache.current[group].processors = otherProcessors;
55
67
  };
56
- }, [apiRef]);
68
+ }, [runAppliers]);
69
+ const registerPipeApplier = React.useCallback((group, id, applier) => {
70
+ if (!processorsCache.current[group]) {
71
+ processorsCache.current[group] = {
72
+ processors: {},
73
+ appliers: {}
74
+ };
75
+ }
76
+
77
+ processorsCache.current[group].appliers[id] = applier;
78
+ return () => {
79
+ const _appliers = processorsCache.current[group].appliers,
80
+ otherAppliers = _objectWithoutPropertiesLoose(_appliers, [id].map(_toPropertyKey));
81
+
82
+ processorsCache.current[group].appliers = otherAppliers;
83
+ };
84
+ }, []);
85
+ const requestPipeProcessorsApplication = React.useCallback(group => {
86
+ const groupCache = processorsCache.current[group];
87
+ runAppliers(groupCache);
88
+ }, [runAppliers]);
57
89
  const applyPipeProcessors = React.useCallback((...args) => {
58
90
  const [group, value, context] = args;
59
91
 
@@ -61,13 +93,15 @@ export const useGridPipeProcessing = apiRef => {
61
93
  return value;
62
94
  }
63
95
 
64
- const preProcessors = Object.values(processorsCache.current[group]);
96
+ const preProcessors = Object.values(processorsCache.current[group].processors);
65
97
  return preProcessors.reduce((acc, preProcessor) => {
66
98
  return preProcessor(acc, context);
67
99
  }, value);
68
100
  }, []);
69
101
  const preProcessingApi = {
70
102
  unstable_registerPipeProcessor: registerPipeProcessor,
103
+ unstable_registerPipeApplier: registerPipeApplier,
104
+ unstable_requestPipeProcessorsApplication: requestPipeProcessorsApplication,
71
105
  unstable_applyPipeProcessors: applyPipeProcessors
72
106
  };
73
107
  useGridApiMethod(apiRef, preProcessingApi, 'GridPipeProcessingApi');
@@ -0,0 +1,27 @@
1
+ import * as React from 'react';
2
+ import { useFirstRender } from '../../utils/useFirstRender';
3
+ export const useGridRegisterPipeApplier = (apiRef, group, callback) => {
4
+ const cleanup = React.useRef();
5
+ const id = React.useRef(`mui-${Math.round(Math.random() * 1e9)}`);
6
+ const registerPreProcessor = React.useCallback(() => {
7
+ cleanup.current = apiRef.current.unstable_registerPipeApplier(group, id.current, callback);
8
+ }, [apiRef, callback, group]);
9
+ useFirstRender(() => {
10
+ registerPreProcessor();
11
+ });
12
+ const isFirstRender = React.useRef(true);
13
+ React.useEffect(() => {
14
+ if (isFirstRender.current) {
15
+ isFirstRender.current = false;
16
+ } else {
17
+ registerPreProcessor();
18
+ }
19
+
20
+ return () => {
21
+ if (cleanup.current) {
22
+ cleanup.current();
23
+ cleanup.current = null;
24
+ }
25
+ };
26
+ }, [registerPreProcessor]);
27
+ };
@@ -1,9 +1,5 @@
1
1
  import * as React from 'react';
2
2
  import { useFirstRender } from '../../utils/useFirstRender';
3
-
4
- /**
5
- * TODO: Rename `useGridRegisterPipeProcessor`
6
- */
7
3
  export const useGridRegisterPipeProcessor = (apiRef, group, callback) => {
8
4
  const cleanup = React.useRef();
9
5
  const id = React.useRef(`mui-${Math.round(Math.random() * 1e9)}`);
@@ -2,7 +2,6 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
2
2
  import _toPropertyKey from "@babel/runtime/helpers/esm/toPropertyKey";
3
3
  import * as React from 'react';
4
4
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
5
- import { GridEvents } from '../../../models/events';
6
5
  export const GRID_DEFAULT_STRATEGY = 'none';
7
6
  export const GRID_STRATEGIES_PROCESSORS = {
8
7
  rowTreeCreation: 'rowTree',
@@ -25,7 +24,7 @@ export const GRID_STRATEGIES_PROCESSORS = {
25
24
  * The plugin containing the custom logic must use:
26
25
  *
27
26
  * - `useGridRegisterStrategyProcessor` to register their processor.
28
- * When the processor of the active strategy changes, it will fire `GridEvents.activeStrategyProcessorChange` to re-apply the processor.
27
+ * When the processor of the active strategy changes, it will fire `"activeStrategyProcessorChange"` to re-apply the processor.
29
28
  *
30
29
  * - `apiRef.current.unstable_setStrategyAvailability` to tell if their strategy can be used.
31
30
  *
@@ -35,12 +34,12 @@ export const GRID_STRATEGIES_PROCESSORS = {
35
34
  *
36
35
  * - `apiRef.current.unstable_applyStrategyProcessor` to run the processor of the active strategy for a given processor name.
37
36
  *
38
- * - `GridEvents.strategyAvailabilityChange` to update something when the active strategy changes.
37
+ * - the "strategyAvailabilityChange" event to update something when the active strategy changes.
39
38
  * Warning: Be careful not to apply the processor several times.
40
- * For instance `GridEvents.rowsSet` is fired by `useGridRows` whenever the active strategy changes.
39
+ * For instance "rowsSet" is fired by `useGridRows` whenever the active strategy changes.
41
40
  * So listening to both would most likely run your logic twice.
42
41
  *
43
- * - `GridEvents.activeStrategyProcessorChange` to update something when the processor of the active strategy changes.
42
+ * - The "activeStrategyProcessorChange" event to update something when the processor of the active strategy changes.
44
43
  *
45
44
  * =====================================================================================================================
46
45
  *
@@ -74,7 +73,7 @@ export const useGridStrategyProcessing = apiRef => {
74
73
  }
75
74
 
76
75
  if (strategyName === apiRef.current.unstable_getActiveStrategy(GRID_STRATEGIES_PROCESSORS[processorName])) {
77
- apiRef.current.publishEvent(GridEvents.activeStrategyProcessorChange, processorName);
76
+ apiRef.current.publishEvent('activeStrategyProcessorChange', processorName);
78
77
  }
79
78
 
80
79
  return cleanup;
@@ -111,7 +110,7 @@ export const useGridStrategyProcessing = apiRef => {
111
110
  group: strategyGroup,
112
111
  isAvailable
113
112
  });
114
- apiRef.current.publishEvent(GridEvents.strategyAvailabilityChange);
113
+ apiRef.current.publishEvent('strategyAvailabilityChange');
115
114
  }, [apiRef]);
116
115
  const strategyProcessingApi = {
117
116
  unstable_registerStrategyProcessor: registerStrategyProcessor,
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
- import { GridEvents } from '../../models/events';
3
2
  import { useGridApiMethod } from '../utils/useGridApiMethod';
4
3
  import { GridSignature } from '../utils/useGridApiEventHandler';
5
4
  import { EventManager } from '../../utils/EventManager';
@@ -15,6 +14,7 @@ export function useGridApiInitialization(inputApiRef, props) {
15
14
  if (!apiRef.current) {
16
15
  apiRef.current = {
17
16
  unstable_eventManager: new EventManager(),
17
+ unstable_caches: {},
18
18
  state: {},
19
19
  instanceId: globalId
20
20
  };
@@ -43,7 +43,7 @@ export function useGridApiInitialization(inputApiRef, props) {
43
43
  };
44
44
  }, [apiRef]);
45
45
  const showError = React.useCallback(args => {
46
- apiRef.current.publishEvent(GridEvents.componentError, args);
46
+ apiRef.current.publishEvent('componentError', args);
47
47
  }, [apiRef]);
48
48
  useGridApiMethod(apiRef, {
49
49
  subscribeEvent,
@@ -53,7 +53,7 @@ export function useGridApiInitialization(inputApiRef, props) {
53
53
  React.useEffect(() => {
54
54
  const api = apiRef.current;
55
55
  return () => {
56
- api.publishEvent(GridEvents.unmount);
56
+ api.publishEvent('unmount');
57
57
  };
58
58
  }, [apiRef]);
59
59
  return apiRef;
@@ -1,6 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
- import { GridEvents } from '../../models/events';
4
3
  import { useGridApiEventHandler } from '../utils/useGridApiEventHandler';
5
4
  export function useGridErrorHandler(apiRef, props) {
6
5
  const handleError = React.useCallback(args => {
@@ -12,5 +11,5 @@ export function useGridErrorHandler(apiRef, props) {
12
11
  React.useEffect(() => {
13
12
  handleError(props.error);
14
13
  }, [handleError, props.error]);
15
- useGridApiEventHandler(apiRef, GridEvents.componentError, handleError);
14
+ useGridApiEventHandler(apiRef, 'componentError', handleError);
16
15
  }
@@ -3,7 +3,6 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["stateId"];
4
4
  import * as React from 'react';
5
5
  import { GridSignature } from '../utils/useGridApiEventHandler';
6
- import { GridEvents } from '../../models/events';
7
6
  import { useGridApiMethod } from '../utils';
8
7
  import { isFunction } from '../../utils/utils';
9
8
  export const useGridStateInitialization = (apiRef, props) => {
@@ -66,7 +65,7 @@ export const useGridStateInitialization = (apiRef, props) => {
66
65
  apiRef.current.state = newState;
67
66
 
68
67
  if (apiRef.current.publishEvent) {
69
- apiRef.current.publishEvent(GridEvents.stateChange, newState);
68
+ apiRef.current.publishEvent('stateChange', newState);
70
69
  }
71
70
  }
72
71