@mui/x-data-grid 5.10.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 (490) hide show
  1. package/CHANGELOG.md +163 -10
  2. package/DataGrid/DataGrid.js +35 -1
  3. package/DataGrid/useDataGridProps.js +2 -1
  4. package/README.md +1 -1
  5. package/colDef/gridActionsColDef.js +2 -1
  6. package/colDef/gridBooleanColDef.js +2 -1
  7. package/colDef/gridCheckboxSelectionColDef.js +1 -0
  8. package/colDef/gridDateColDef.js +4 -2
  9. package/colDef/gridNumericColDef.js +3 -2
  10. package/colDef/gridNumericOperators.d.ts +2 -0
  11. package/colDef/gridNumericOperators.js +11 -0
  12. package/colDef/gridSingleSelectColDef.js +3 -2
  13. package/colDef/gridSingleSelectOperators.d.ts +3 -0
  14. package/colDef/gridSingleSelectOperators.js +52 -0
  15. package/colDef/gridStringColDef.js +3 -2
  16. package/colDef/gridStringOperators.d.ts +2 -0
  17. package/colDef/gridStringOperators.js +12 -0
  18. package/components/GridFooter.d.ts +4 -2
  19. package/components/GridFooter.js +11 -2
  20. package/components/GridRow.js +4 -5
  21. package/components/GridRowCount.d.ts +4 -1
  22. package/components/GridRowCount.js +1 -0
  23. package/components/GridScrollArea.js +3 -4
  24. package/components/GridSelectedRowCount.d.ts +4 -1
  25. package/components/GridSelectedRowCount.js +2 -1
  26. package/components/base/GridBody.js +1 -2
  27. package/components/base/GridOverlays.js +1 -2
  28. package/components/cell/GridActionsCell.js +13 -4
  29. package/components/cell/GridCell.js +8 -8
  30. package/components/cell/GridEditBooleanCell.d.ts +15 -3
  31. package/components/cell/GridEditBooleanCell.js +101 -6
  32. package/components/cell/GridEditDateCell.d.ts +16 -4
  33. package/components/cell/GridEditDateCell.js +99 -5
  34. package/components/cell/GridEditInputCell.d.ts +11 -5
  35. package/components/cell/GridEditInputCell.js +29 -5
  36. package/components/cell/GridEditSingleSelectCell.d.ts +12 -4
  37. package/components/cell/GridEditSingleSelectCell.js +28 -5
  38. package/components/cell/index.d.ts +2 -0
  39. package/components/cell/index.js +2 -0
  40. package/components/columnHeaders/GridColumnHeaderItem.js +15 -16
  41. package/components/columnHeaders/GridColumnHeaders.d.ts +2 -0
  42. package/components/columnHeaders/GridColumnHeadersInner.d.ts +2 -0
  43. package/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
  44. package/components/columnSelection/GridHeaderCheckbox.js +4 -5
  45. package/components/containers/GridFooterContainer.d.ts +8 -2
  46. package/components/containers/GridFooterContainer.js +11 -2
  47. package/components/containers/GridToolbarContainer.d.ts +8 -2
  48. package/components/containers/GridToolbarContainer.js +12 -2
  49. package/components/panel/GridPanelContent.d.ts +8 -1
  50. package/components/panel/GridPanelContent.js +13 -2
  51. package/components/panel/GridPanelFooter.d.ts +8 -1
  52. package/components/panel/GridPanelFooter.js +13 -2
  53. package/components/panel/GridPanelHeader.d.ts +8 -1
  54. package/components/panel/GridPanelHeader.js +13 -2
  55. package/components/toolbar/GridToolbar.d.ts +12 -2
  56. package/components/toolbar/GridToolbar.js +30 -7
  57. package/components/toolbar/GridToolbarExport.d.ts +5 -4
  58. package/components/toolbar/GridToolbarExport.js +15 -20
  59. package/components/toolbar/GridToolbarQuickFilter.d.ts +20 -0
  60. package/components/toolbar/GridToolbarQuickFilter.js +88 -0
  61. package/components/toolbar/index.d.ts +3 -1
  62. package/components/toolbar/index.js +3 -2
  63. package/components/virtualization/GridVirtualScroller.d.ts +4 -1
  64. package/components/virtualization/GridVirtualScrollerContent.d.ts +4 -1
  65. package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +4 -1
  66. package/constants/localeTextConstants.js +5 -0
  67. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +7 -0
  68. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +4 -4
  69. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -7
  70. package/hooks/core/useGridApiInitialization.js +3 -3
  71. package/hooks/core/useGridErrorHandler.js +1 -2
  72. package/hooks/core/useGridStateInitialization.js +1 -2
  73. package/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -6
  74. package/hooks/features/columnMenu/useGridColumnMenu.js +3 -4
  75. package/hooks/features/columns/useGridColumnSpanning.js +1 -2
  76. package/hooks/features/columns/useGridColumns.js +8 -9
  77. package/hooks/features/dimensions/useGridDimensions.d.ts +1 -1
  78. package/hooks/features/dimensions/useGridDimensions.js +8 -9
  79. package/hooks/features/editRows/useGridCellEditing.new.d.ts +1 -1
  80. package/hooks/features/editRows/useGridCellEditing.new.js +133 -32
  81. package/hooks/features/editRows/useGridCellEditing.old.js +20 -21
  82. package/hooks/features/editRows/useGridEditing.old.js +4 -5
  83. package/hooks/features/editRows/useGridRowEditing.new.d.ts +1 -1
  84. package/hooks/features/editRows/useGridRowEditing.new.js +122 -42
  85. package/hooks/features/editRows/useGridRowEditing.old.js +21 -22
  86. package/hooks/features/events/useGridEvents.js +17 -18
  87. package/hooks/features/export/serializers/csvSerializer.js +5 -5
  88. package/hooks/features/export/useGridCsvExport.js +23 -16
  89. package/hooks/features/export/useGridPrintExport.js +22 -0
  90. package/hooks/features/export/utils.d.ts +3 -1
  91. package/hooks/features/export/utils.js +13 -0
  92. package/hooks/features/filter/gridFilterState.d.ts +1 -2
  93. package/hooks/features/filter/gridFilterState.js +3 -1
  94. package/hooks/features/filter/gridFilterUtils.d.ts +8 -0
  95. package/hooks/features/filter/gridFilterUtils.js +84 -2
  96. package/hooks/features/filter/useGridFilter.js +20 -8
  97. package/hooks/features/focus/useGridFocus.d.ts +1 -1
  98. package/hooks/features/focus/useGridFocus.js +29 -33
  99. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +4 -5
  100. package/hooks/features/pagination/useGridPage.js +3 -4
  101. package/hooks/features/pagination/useGridPageSize.js +2 -3
  102. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -6
  103. package/hooks/features/rows/gridRowsSelector.d.ts +1 -0
  104. package/hooks/features/rows/gridRowsSelector.js +1 -0
  105. package/hooks/features/rows/gridRowsState.d.ts +3 -7
  106. package/hooks/features/rows/gridRowsUtils.d.ts +2 -1
  107. package/hooks/features/rows/gridRowsUtils.js +25 -1
  108. package/hooks/features/rows/useGridRows.js +100 -60
  109. package/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
  110. package/hooks/features/scroll/useGridScroll.js +6 -1
  111. package/hooks/features/selection/useGridSelection.d.ts +1 -1
  112. package/hooks/features/selection/useGridSelection.js +13 -10
  113. package/hooks/features/sorting/useGridSorting.js +8 -9
  114. package/hooks/features/virtualization/useGridVirtualScroller.js +6 -7
  115. package/hooks/utils/useGridApiEventHandler.d.ts +4 -1
  116. package/hooks/utils/useGridApiEventHandler.js +22 -9
  117. package/hooks/utils/useGridNativeEventListener.js +1 -2
  118. package/hooks/utils/useGridSelector.js +1 -1
  119. package/index.d.ts +2 -0
  120. package/index.js +1 -1
  121. package/internals/index.d.ts +4 -1
  122. package/internals/index.js +5 -2
  123. package/legacy/DataGrid/DataGrid.js +35 -1
  124. package/legacy/DataGrid/useDataGridProps.js +2 -1
  125. package/legacy/colDef/gridActionsColDef.js +2 -1
  126. package/legacy/colDef/gridBooleanColDef.js +2 -1
  127. package/legacy/colDef/gridCheckboxSelectionColDef.js +1 -0
  128. package/legacy/colDef/gridDateColDef.js +4 -2
  129. package/legacy/colDef/gridNumericColDef.js +3 -2
  130. package/legacy/colDef/gridNumericOperators.js +28 -18
  131. package/legacy/colDef/gridSingleSelectColDef.js +3 -2
  132. package/legacy/colDef/gridSingleSelectOperators.js +55 -6
  133. package/legacy/colDef/gridStringColDef.js +3 -2
  134. package/legacy/colDef/gridStringOperators.js +25 -14
  135. package/legacy/components/GridFooter.js +11 -2
  136. package/legacy/components/GridRow.js +4 -5
  137. package/legacy/components/GridRowCount.js +1 -0
  138. package/legacy/components/GridScrollArea.js +3 -4
  139. package/legacy/components/GridSelectedRowCount.js +2 -1
  140. package/legacy/components/base/GridBody.js +1 -2
  141. package/legacy/components/base/GridOverlays.js +1 -2
  142. package/legacy/components/cell/GridActionsCell.js +13 -4
  143. package/legacy/components/cell/GridCell.js +8 -8
  144. package/legacy/components/cell/GridEditBooleanCell.js +132 -11
  145. package/legacy/components/cell/GridEditDateCell.js +148 -42
  146. package/legacy/components/cell/GridEditInputCell.js +61 -12
  147. package/legacy/components/cell/GridEditSingleSelectCell.js +41 -13
  148. package/legacy/components/cell/index.js +2 -0
  149. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +15 -16
  150. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
  151. package/legacy/components/columnSelection/GridHeaderCheckbox.js +4 -5
  152. package/legacy/components/containers/GridFooterContainer.js +11 -2
  153. package/legacy/components/containers/GridToolbarContainer.js +12 -2
  154. package/legacy/components/panel/GridPanelContent.js +13 -2
  155. package/legacy/components/panel/GridPanelFooter.js +13 -2
  156. package/legacy/components/panel/GridPanelHeader.js +13 -2
  157. package/legacy/components/toolbar/GridToolbar.js +31 -6
  158. package/legacy/components/toolbar/GridToolbarExport.js +18 -19
  159. package/legacy/components/toolbar/GridToolbarQuickFilter.js +103 -0
  160. package/legacy/components/toolbar/index.js +3 -2
  161. package/legacy/constants/localeTextConstants.js +5 -0
  162. package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -7
  163. package/legacy/hooks/core/useGridApiInitialization.js +3 -3
  164. package/legacy/hooks/core/useGridErrorHandler.js +1 -2
  165. package/legacy/hooks/core/useGridStateInitialization.js +1 -2
  166. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -6
  167. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +3 -4
  168. package/legacy/hooks/features/columns/useGridColumnSpanning.js +1 -2
  169. package/legacy/hooks/features/columns/useGridColumns.js +8 -9
  170. package/legacy/hooks/features/dimensions/useGridDimensions.js +8 -9
  171. package/legacy/hooks/features/editRows/useGridCellEditing.new.js +213 -83
  172. package/legacy/hooks/features/editRows/useGridCellEditing.old.js +20 -21
  173. package/legacy/hooks/features/editRows/useGridEditing.old.js +4 -5
  174. package/legacy/hooks/features/editRows/useGridRowEditing.new.js +126 -42
  175. package/legacy/hooks/features/editRows/useGridRowEditing.old.js +20 -21
  176. package/legacy/hooks/features/events/useGridEvents.js +17 -18
  177. package/legacy/hooks/features/export/serializers/csvSerializer.js +5 -5
  178. package/legacy/hooks/features/export/useGridCsvExport.js +24 -17
  179. package/legacy/hooks/features/export/useGridPrintExport.js +22 -0
  180. package/legacy/hooks/features/export/utils.js +14 -0
  181. package/legacy/hooks/features/filter/gridFilterState.js +3 -1
  182. package/legacy/hooks/features/filter/gridFilterUtils.js +96 -2
  183. package/legacy/hooks/features/filter/useGridFilter.js +20 -8
  184. package/legacy/hooks/features/focus/useGridFocus.js +31 -35
  185. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +4 -5
  186. package/legacy/hooks/features/pagination/useGridPage.js +3 -4
  187. package/legacy/hooks/features/pagination/useGridPageSize.js +2 -3
  188. package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -6
  189. package/legacy/hooks/features/rows/gridRowsSelector.js +3 -0
  190. package/legacy/hooks/features/rows/gridRowsUtils.js +27 -1
  191. package/legacy/hooks/features/rows/useGridRows.js +104 -60
  192. package/legacy/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
  193. package/legacy/hooks/features/scroll/useGridScroll.js +6 -1
  194. package/legacy/hooks/features/selection/useGridSelection.js +13 -10
  195. package/legacy/hooks/features/sorting/useGridSorting.js +8 -9
  196. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +6 -7
  197. package/legacy/hooks/utils/useGridApiEventHandler.js +20 -9
  198. package/legacy/hooks/utils/useGridNativeEventListener.js +1 -2
  199. package/legacy/hooks/utils/useGridSelector.js +1 -1
  200. package/legacy/index.js +1 -1
  201. package/legacy/internals/index.js +5 -2
  202. package/legacy/locales/arSD.js +5 -0
  203. package/legacy/locales/bgBG.js +5 -0
  204. package/legacy/locales/csCZ.js +5 -0
  205. package/legacy/locales/daDK.js +5 -0
  206. package/legacy/locales/deDE.js +10 -5
  207. package/legacy/locales/elGR.js +5 -0
  208. package/legacy/locales/esES.js +5 -0
  209. package/legacy/locales/faIR.js +5 -0
  210. package/legacy/locales/fiFI.js +5 -0
  211. package/legacy/locales/frFR.js +5 -0
  212. package/legacy/locales/heIL.js +5 -0
  213. package/legacy/locales/huHU.js +5 -0
  214. package/legacy/locales/itIT.js +5 -0
  215. package/legacy/locales/jaJP.js +5 -0
  216. package/legacy/locales/koKR.js +5 -0
  217. package/legacy/locales/nlNL.js +5 -0
  218. package/legacy/locales/plPL.js +5 -0
  219. package/legacy/locales/ptBR.js +5 -0
  220. package/legacy/locales/ruRU.js +5 -0
  221. package/legacy/locales/skSK.js +5 -0
  222. package/legacy/locales/trTR.js +5 -0
  223. package/legacy/locales/ukUA.js +5 -0
  224. package/legacy/locales/viVN.js +5 -0
  225. package/legacy/locales/zhCN.js +5 -0
  226. package/legacy/models/events/gridEvents.js +2 -0
  227. package/legacy/models/index.js +4 -3
  228. package/legacy/utils/createSelector.js +18 -2
  229. package/legacy/utils/exportAs.js +1 -1
  230. package/locales/arSD.js +5 -0
  231. package/locales/bgBG.js +5 -0
  232. package/locales/csCZ.js +5 -0
  233. package/locales/daDK.js +5 -0
  234. package/locales/deDE.js +10 -5
  235. package/locales/elGR.js +5 -0
  236. package/locales/esES.js +5 -0
  237. package/locales/faIR.js +5 -0
  238. package/locales/fiFI.js +5 -0
  239. package/locales/frFR.js +5 -0
  240. package/locales/heIL.js +5 -0
  241. package/locales/huHU.js +5 -0
  242. package/locales/itIT.js +5 -0
  243. package/locales/jaJP.js +5 -0
  244. package/locales/koKR.js +5 -0
  245. package/locales/nlNL.js +5 -0
  246. package/locales/plPL.js +5 -0
  247. package/locales/ptBR.js +5 -0
  248. package/locales/ruRU.js +5 -0
  249. package/locales/skSK.js +5 -0
  250. package/locales/trTR.js +5 -0
  251. package/locales/ukUA.js +5 -0
  252. package/locales/viVN.js +5 -0
  253. package/locales/zhCN.js +5 -0
  254. package/models/api/gridCoreApi.d.ts +10 -0
  255. package/models/api/gridEditingApi.d.ts +23 -4
  256. package/models/api/gridFilterApi.d.ts +5 -0
  257. package/models/api/gridFocusApi.d.ts +1 -0
  258. package/models/api/gridLocaleTextApi.d.ts +4 -0
  259. package/models/api/gridRowApi.d.ts +28 -0
  260. package/models/api/index.d.ts +1 -1
  261. package/models/colDef/gridColDef.d.ts +13 -0
  262. package/models/events/gridEventLookup.d.ts +273 -3
  263. package/models/events/gridEvents.d.ts +2 -277
  264. package/models/events/gridEvents.js +2 -0
  265. package/models/gridExport.d.ts +29 -2
  266. package/models/gridFilterModel.d.ts +11 -0
  267. package/models/gridFilterOperator.d.ts +1 -1
  268. package/models/gridStateCommunity.d.ts +0 -2
  269. package/models/index.d.ts +1 -1
  270. package/models/index.js +4 -3
  271. package/models/props/DataGridProps.d.ts +56 -28
  272. package/modern/DataGrid/DataGrid.js +35 -1
  273. package/modern/DataGrid/useDataGridProps.js +2 -1
  274. package/modern/colDef/gridActionsColDef.js +2 -1
  275. package/modern/colDef/gridBooleanColDef.js +2 -1
  276. package/modern/colDef/gridCheckboxSelectionColDef.js +1 -0
  277. package/modern/colDef/gridDateColDef.js +4 -2
  278. package/modern/colDef/gridNumericColDef.js +3 -2
  279. package/modern/colDef/gridNumericOperators.js +11 -0
  280. package/modern/colDef/gridSingleSelectColDef.js +3 -2
  281. package/modern/colDef/gridSingleSelectOperators.js +52 -0
  282. package/modern/colDef/gridStringColDef.js +3 -2
  283. package/modern/colDef/gridStringOperators.js +12 -0
  284. package/modern/components/GridFooter.js +11 -2
  285. package/modern/components/GridRow.js +4 -5
  286. package/modern/components/GridRowCount.js +1 -0
  287. package/modern/components/GridScrollArea.js +3 -4
  288. package/modern/components/GridSelectedRowCount.js +2 -1
  289. package/modern/components/base/GridBody.js +1 -2
  290. package/modern/components/base/GridOverlays.js +1 -2
  291. package/modern/components/cell/GridActionsCell.js +14 -3
  292. package/modern/components/cell/GridCell.js +8 -8
  293. package/modern/components/cell/GridEditBooleanCell.js +101 -6
  294. package/modern/components/cell/GridEditDateCell.js +99 -5
  295. package/modern/components/cell/GridEditInputCell.js +29 -5
  296. package/modern/components/cell/GridEditSingleSelectCell.js +28 -5
  297. package/modern/components/cell/index.js +2 -0
  298. package/modern/components/columnHeaders/GridColumnHeaderItem.js +15 -16
  299. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
  300. package/modern/components/columnSelection/GridHeaderCheckbox.js +4 -5
  301. package/modern/components/containers/GridFooterContainer.js +11 -2
  302. package/modern/components/containers/GridToolbarContainer.js +12 -2
  303. package/modern/components/panel/GridPanelContent.js +13 -2
  304. package/modern/components/panel/GridPanelFooter.js +13 -2
  305. package/modern/components/panel/GridPanelHeader.js +13 -2
  306. package/modern/components/toolbar/GridToolbar.js +30 -7
  307. package/modern/components/toolbar/GridToolbarExport.js +15 -20
  308. package/modern/components/toolbar/GridToolbarQuickFilter.js +86 -0
  309. package/modern/components/toolbar/index.js +3 -2
  310. package/modern/constants/localeTextConstants.js +5 -0
  311. package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -7
  312. package/modern/hooks/core/useGridApiInitialization.js +3 -3
  313. package/modern/hooks/core/useGridErrorHandler.js +1 -2
  314. package/modern/hooks/core/useGridStateInitialization.js +1 -2
  315. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -6
  316. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +3 -4
  317. package/modern/hooks/features/columns/useGridColumnSpanning.js +1 -2
  318. package/modern/hooks/features/columns/useGridColumns.js +8 -9
  319. package/modern/hooks/features/dimensions/useGridDimensions.js +8 -9
  320. package/modern/hooks/features/editRows/useGridCellEditing.new.js +131 -32
  321. package/modern/hooks/features/editRows/useGridCellEditing.old.js +20 -21
  322. package/modern/hooks/features/editRows/useGridEditing.old.js +4 -5
  323. package/modern/hooks/features/editRows/useGridRowEditing.new.js +120 -42
  324. package/modern/hooks/features/editRows/useGridRowEditing.old.js +21 -22
  325. package/modern/hooks/features/events/useGridEvents.js +17 -18
  326. package/modern/hooks/features/export/serializers/csvSerializer.js +5 -5
  327. package/modern/hooks/features/export/useGridCsvExport.js +21 -16
  328. package/modern/hooks/features/export/useGridPrintExport.js +20 -0
  329. package/modern/hooks/features/export/utils.js +13 -0
  330. package/modern/hooks/features/filter/gridFilterState.js +3 -1
  331. package/modern/hooks/features/filter/gridFilterUtils.js +80 -2
  332. package/modern/hooks/features/filter/useGridFilter.js +20 -8
  333. package/modern/hooks/features/focus/useGridFocus.js +29 -33
  334. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +4 -5
  335. package/modern/hooks/features/pagination/useGridPage.js +3 -4
  336. package/modern/hooks/features/pagination/useGridPageSize.js +2 -3
  337. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -6
  338. package/modern/hooks/features/rows/gridRowsSelector.js +1 -0
  339. package/modern/hooks/features/rows/gridRowsUtils.js +23 -1
  340. package/modern/hooks/features/rows/useGridRows.js +100 -60
  341. package/modern/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
  342. package/modern/hooks/features/scroll/useGridScroll.js +6 -1
  343. package/modern/hooks/features/selection/useGridSelection.js +13 -10
  344. package/modern/hooks/features/sorting/useGridSorting.js +8 -9
  345. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +6 -7
  346. package/modern/hooks/utils/useGridApiEventHandler.js +20 -9
  347. package/modern/hooks/utils/useGridNativeEventListener.js +1 -2
  348. package/modern/hooks/utils/useGridSelector.js +1 -1
  349. package/modern/index.js +1 -1
  350. package/modern/internals/index.js +5 -2
  351. package/modern/locales/arSD.js +5 -0
  352. package/modern/locales/bgBG.js +5 -0
  353. package/modern/locales/csCZ.js +5 -0
  354. package/modern/locales/daDK.js +5 -0
  355. package/modern/locales/deDE.js +10 -5
  356. package/modern/locales/elGR.js +5 -0
  357. package/modern/locales/esES.js +5 -0
  358. package/modern/locales/faIR.js +5 -0
  359. package/modern/locales/fiFI.js +5 -0
  360. package/modern/locales/frFR.js +5 -0
  361. package/modern/locales/heIL.js +5 -0
  362. package/modern/locales/huHU.js +5 -0
  363. package/modern/locales/itIT.js +5 -0
  364. package/modern/locales/jaJP.js +5 -0
  365. package/modern/locales/koKR.js +5 -0
  366. package/modern/locales/nlNL.js +5 -0
  367. package/modern/locales/plPL.js +5 -0
  368. package/modern/locales/ptBR.js +5 -0
  369. package/modern/locales/ruRU.js +5 -0
  370. package/modern/locales/skSK.js +5 -0
  371. package/modern/locales/trTR.js +5 -0
  372. package/modern/locales/ukUA.js +5 -0
  373. package/modern/locales/viVN.js +5 -0
  374. package/modern/locales/zhCN.js +5 -0
  375. package/modern/models/events/gridEvents.js +2 -0
  376. package/modern/models/index.js +4 -3
  377. package/modern/utils/createSelector.js +20 -2
  378. package/modern/utils/exportAs.js +1 -1
  379. package/node/DataGrid/DataGrid.js +35 -1
  380. package/node/DataGrid/useDataGridProps.js +2 -1
  381. package/node/colDef/gridActionsColDef.js +2 -1
  382. package/node/colDef/gridBooleanColDef.js +2 -1
  383. package/node/colDef/gridCheckboxSelectionColDef.js +1 -0
  384. package/node/colDef/gridDateColDef.js +4 -2
  385. package/node/colDef/gridNumericColDef.js +2 -1
  386. package/node/colDef/gridNumericOperators.js +15 -1
  387. package/node/colDef/gridSingleSelectColDef.js +2 -1
  388. package/node/colDef/gridSingleSelectOperators.js +56 -1
  389. package/node/colDef/gridStringColDef.js +2 -1
  390. package/node/colDef/gridStringOperators.js +16 -1
  391. package/node/components/GridFooter.js +10 -1
  392. package/node/components/GridRow.js +4 -6
  393. package/node/components/GridRowCount.js +1 -0
  394. package/node/components/GridScrollArea.js +3 -5
  395. package/node/components/GridSelectedRowCount.js +2 -1
  396. package/node/components/base/GridBody.js +1 -3
  397. package/node/components/base/GridOverlays.js +1 -3
  398. package/node/components/cell/GridActionsCell.js +13 -4
  399. package/node/components/cell/GridCell.js +7 -7
  400. package/node/components/cell/GridEditBooleanCell.js +100 -5
  401. package/node/components/cell/GridEditDateCell.js +98 -4
  402. package/node/components/cell/GridEditInputCell.js +29 -5
  403. package/node/components/cell/GridEditSingleSelectCell.js +28 -6
  404. package/node/components/cell/index.js +26 -0
  405. package/node/components/columnHeaders/GridColumnHeaderItem.js +15 -17
  406. package/node/components/columnSelection/GridCellCheckboxRenderer.js +2 -4
  407. package/node/components/columnSelection/GridHeaderCheckbox.js +4 -6
  408. package/node/components/containers/GridFooterContainer.js +10 -1
  409. package/node/components/containers/GridToolbarContainer.js +11 -1
  410. package/node/components/panel/GridPanelContent.js +11 -1
  411. package/node/components/panel/GridPanelFooter.js +11 -1
  412. package/node/components/panel/GridPanelHeader.js +11 -1
  413. package/node/components/toolbar/GridToolbar.js +32 -7
  414. package/node/components/toolbar/GridToolbarExport.js +14 -19
  415. package/node/components/toolbar/GridToolbarQuickFilter.js +111 -0
  416. package/node/components/toolbar/index.js +42 -11
  417. package/node/constants/localeTextConstants.js +5 -0
  418. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -8
  419. package/node/hooks/core/useGridApiInitialization.js +3 -4
  420. package/node/hooks/core/useGridErrorHandler.js +1 -3
  421. package/node/hooks/core/useGridStateInitialization.js +1 -3
  422. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -7
  423. package/node/hooks/features/columnMenu/useGridColumnMenu.js +3 -5
  424. package/node/hooks/features/columns/useGridColumnSpanning.js +1 -3
  425. package/node/hooks/features/columns/useGridColumns.js +8 -10
  426. package/node/hooks/features/dimensions/useGridDimensions.js +8 -10
  427. package/node/hooks/features/editRows/useGridCellEditing.new.js +133 -32
  428. package/node/hooks/features/editRows/useGridCellEditing.old.js +20 -22
  429. package/node/hooks/features/editRows/useGridEditing.old.js +4 -6
  430. package/node/hooks/features/editRows/useGridRowEditing.new.js +122 -43
  431. package/node/hooks/features/editRows/useGridRowEditing.old.js +21 -23
  432. package/node/hooks/features/events/useGridEvents.js +17 -19
  433. package/node/hooks/features/export/serializers/csvSerializer.js +5 -5
  434. package/node/hooks/features/export/useGridCsvExport.js +26 -17
  435. package/node/hooks/features/export/useGridPrintExport.js +25 -0
  436. package/node/hooks/features/export/utils.js +19 -2
  437. package/node/hooks/features/filter/gridFilterState.js +3 -1
  438. package/node/hooks/features/filter/gridFilterUtils.js +92 -3
  439. package/node/hooks/features/filter/useGridFilter.js +21 -9
  440. package/node/hooks/features/focus/useGridFocus.js +29 -34
  441. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +4 -6
  442. package/node/hooks/features/pagination/useGridPage.js +3 -5
  443. package/node/hooks/features/pagination/useGridPageSize.js +2 -4
  444. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -8
  445. package/node/hooks/features/rows/gridRowsSelector.js +3 -1
  446. package/node/hooks/features/rows/gridRowsUtils.js +29 -1
  447. package/node/hooks/features/rows/useGridRows.js +101 -60
  448. package/node/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
  449. package/node/hooks/features/scroll/useGridScroll.js +6 -1
  450. package/node/hooks/features/selection/useGridSelection.js +13 -11
  451. package/node/hooks/features/sorting/useGridSorting.js +8 -10
  452. package/node/hooks/features/virtualization/useGridVirtualScroller.js +6 -8
  453. package/node/hooks/utils/useGridApiEventHandler.js +22 -10
  454. package/node/hooks/utils/useGridNativeEventListener.js +1 -3
  455. package/node/hooks/utils/useGridSelector.js +1 -1
  456. package/node/index.js +1 -1
  457. package/node/internals/index.js +39 -3
  458. package/node/locales/arSD.js +5 -0
  459. package/node/locales/bgBG.js +5 -0
  460. package/node/locales/csCZ.js +5 -0
  461. package/node/locales/daDK.js +5 -0
  462. package/node/locales/deDE.js +10 -5
  463. package/node/locales/elGR.js +5 -0
  464. package/node/locales/esES.js +5 -0
  465. package/node/locales/faIR.js +5 -0
  466. package/node/locales/fiFI.js +5 -0
  467. package/node/locales/frFR.js +5 -0
  468. package/node/locales/heIL.js +5 -0
  469. package/node/locales/huHU.js +5 -0
  470. package/node/locales/itIT.js +5 -0
  471. package/node/locales/jaJP.js +5 -0
  472. package/node/locales/koKR.js +5 -0
  473. package/node/locales/nlNL.js +5 -0
  474. package/node/locales/plPL.js +5 -0
  475. package/node/locales/ptBR.js +5 -0
  476. package/node/locales/ruRU.js +5 -0
  477. package/node/locales/skSK.js +5 -0
  478. package/node/locales/trTR.js +5 -0
  479. package/node/locales/ukUA.js +5 -0
  480. package/node/locales/viVN.js +5 -0
  481. package/node/locales/zhCN.js +5 -0
  482. package/node/models/events/gridEvents.js +2 -0
  483. package/node/models/index.js +0 -13
  484. package/node/utils/createSelector.js +25 -4
  485. package/node/utils/exportAs.js +1 -1
  486. package/package.json +1 -1
  487. package/utils/createSelector.d.ts +2 -1
  488. package/utils/createSelector.js +20 -2
  489. package/utils/exportAs.d.ts +2 -2
  490. package/utils/exportAs.js +1 -1
@@ -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 != null && 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 != null && 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 != null && csvOptions.disableToolbarButton && printOptions != null && 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,20 @@
1
+ /// <reference types="react" />
2
+ import { TextFieldProps } from '@mui/material/TextField';
3
+ export declare type GridToolbarQuickFilterProps = TextFieldProps & {
4
+ /**
5
+ * Function responsible for parsing text input in an array of independent values for quick filtering.
6
+ * @param {string} input The value entered by the user
7
+ * @returns {any[]} The array of value on which quick filter is applied
8
+ */
9
+ quickFilterParser?: (input: string) => any[];
10
+ /**
11
+ * The debounce time in milliseconds.
12
+ * @default 500
13
+ */
14
+ debounceMs?: number;
15
+ };
16
+ declare function GridToolbarQuickFilter(props: GridToolbarQuickFilterProps): JSX.Element;
17
+ declare namespace GridToolbarQuickFilter {
18
+ var propTypes: any;
19
+ }
20
+ export { GridToolbarQuickFilter };
@@ -0,0 +1,88 @@
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
+ var _rootProps$components;
34
+
35
+ const {
36
+ quickFilterParser = defaultSearchValueParser,
37
+ debounceMs = 500
38
+ } = props,
39
+ other = _objectWithoutPropertiesLoose(props, _excluded);
40
+
41
+ const apiRef = useGridApiContext();
42
+ const rootProps = useGridRootProps();
43
+ const [searchValue, setSearchValue] = React.useState('');
44
+ const updateSearchValue = React.useCallback(newSearchValue => {
45
+ apiRef.current.setQuickFilterValues(quickFilterParser(newSearchValue));
46
+ }, [apiRef, quickFilterParser]);
47
+ const debouncedUpdateSearchValue = React.useMemo(() => debounce(updateSearchValue, debounceMs), [updateSearchValue, debounceMs]);
48
+ const handleSearchValueChange = React.useCallback(event => {
49
+ const newSearchValue = event.target.value;
50
+ setSearchValue(newSearchValue);
51
+ debouncedUpdateSearchValue(newSearchValue);
52
+ }, [debouncedUpdateSearchValue]);
53
+ return /*#__PURE__*/_jsx(GridToolbarQuickFilterRoot, _extends({
54
+ as: rootProps.components.BaseTextField,
55
+ variant: "standard",
56
+ value: searchValue,
57
+ onChange: handleSearchValueChange,
58
+ placeholder: apiRef.current.getLocaleText('toolbarQuickFilterPlaceholder'),
59
+ "aria-label": apiRef.current.getLocaleText('toolbarQuickFilterLabel'),
60
+ type: "search",
61
+ InputProps: {
62
+ startAdornment: /*#__PURE__*/_jsx(SearchIcon, {
63
+ fontSize: "small"
64
+ })
65
+ }
66
+ }, other, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.baseTextField));
67
+ }
68
+
69
+ process.env.NODE_ENV !== "production" ? GridToolbarQuickFilter.propTypes = {
70
+ // ----------------------------- Warning --------------------------------
71
+ // | These PropTypes are generated from the TypeScript type definitions |
72
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
73
+ // ----------------------------------------------------------------------
74
+
75
+ /**
76
+ * The debounce time in milliseconds.
77
+ * @default 500
78
+ */
79
+ debounceMs: PropTypes.number,
80
+
81
+ /**
82
+ * Function responsible for parsing text input in an array of independent values for quick filtering.
83
+ * @param {string} input The value entered by the user
84
+ * @returns {any[]} The array of value on which quick filter is applied
85
+ */
86
+ quickFilterParser: PropTypes.func
87
+ } : void 0;
88
+ export { GridToolbarQuickFilter };
@@ -1,6 +1,8 @@
1
1
  export * from './GridToolbar';
2
2
  export * from './GridToolbarColumnsButton';
3
3
  export * from './GridToolbarDensitySelector';
4
- export * from './GridToolbarExport';
4
+ export type { GridExportDisplayOptions, GridExportMenuItemProps, GridCsvExportMenuItemProps, GridPrintExportMenuItemProps, } from './GridToolbarExport';
5
+ export { GridCsvExportMenuItem, GridPrintExportMenuItem, GridToolbarExport, } from './GridToolbarExport';
5
6
  export * from './GridToolbarFilterButton';
6
7
  export * from './GridToolbarExportContainer';
8
+ export * from './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';
@@ -1,3 +1,6 @@
1
1
  import * as React from 'react';
2
- declare const GridVirtualScroller: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ declare const GridVirtualScroller: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
4
+ sx?: SxProps<Theme> | undefined;
5
+ } & React.RefAttributes<HTMLDivElement>>;
3
6
  export { GridVirtualScroller };
@@ -1,3 +1,6 @@
1
1
  import * as React from 'react';
2
- declare const GridVirtualScrollerContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ declare const GridVirtualScrollerContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
4
+ sx?: SxProps<Theme> | undefined;
5
+ } & React.RefAttributes<HTMLDivElement>>;
3
6
  export { GridVirtualScrollerContent };
@@ -1,3 +1,6 @@
1
1
  import * as React from 'react';
2
- declare const GridVirtualScrollerRenderZone: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ declare const GridVirtualScrollerRenderZone: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
4
+ sx?: SxProps<Theme> | undefined;
5
+ } & React.RefAttributes<HTMLDivElement>>;
3
6
  export { GridVirtualScrollerRenderZone };
@@ -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',
@@ -17,6 +17,13 @@ export interface GridPipeProcessingLookup {
17
17
  hydrateColumns: {
18
18
  value: GridHydrateColumnsValue;
19
19
  };
20
+ exportMenu: {
21
+ value: {
22
+ component: React.ReactElement;
23
+ componentName: string;
24
+ }[];
25
+ context: any;
26
+ };
20
27
  preferencePanel: {
21
28
  value: React.ReactNode;
22
29
  context: GridPreferencePanelsValue;
@@ -20,7 +20,7 @@ export declare const GRID_STRATEGIES_PROCESSORS: {
20
20
  * The plugin containing the custom logic must use:
21
21
  *
22
22
  * - `useGridRegisterStrategyProcessor` to register their processor.
23
- * When the processor of the active strategy changes, it will fire `GridEvents.activeStrategyProcessorChange` to re-apply the processor.
23
+ * When the processor of the active strategy changes, it will fire `"activeStrategyProcessorChange"` to re-apply the processor.
24
24
  *
25
25
  * - `apiRef.current.unstable_setStrategyAvailability` to tell if their strategy can be used.
26
26
  *
@@ -30,12 +30,12 @@ export declare const GRID_STRATEGIES_PROCESSORS: {
30
30
  *
31
31
  * - `apiRef.current.unstable_applyStrategyProcessor` to run the processor of the active strategy for a given processor name.
32
32
  *
33
- * - `GridEvents.strategyAvailabilityChange` to update something when the active strategy changes.
33
+ * - the "strategyAvailabilityChange" event to update something when the active strategy changes.
34
34
  * Warning: Be careful not to apply the processor several times.
35
- * For instance `GridEvents.rowsSet` is fired by `useGridRows` whenever the active strategy changes.
35
+ * For instance "rowsSet" is fired by `useGridRows` whenever the active strategy changes.
36
36
  * So listening to both would most likely run your logic twice.
37
37
  *
38
- * - `GridEvents.activeStrategyProcessorChange` to update something when the processor of the active strategy changes.
38
+ * - The "activeStrategyProcessorChange" event to update something when the processor of the active strategy changes.
39
39
  *
40
40
  * =====================================================================================================================
41
41
  *
@@ -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;
@@ -113,7 +112,7 @@ export const useGridStrategyProcessing = apiRef => {
113
112
  group: strategyGroup,
114
113
  isAvailable
115
114
  });
116
- apiRef.current.publishEvent(GridEvents.strategyAvailabilityChange);
115
+ apiRef.current.publishEvent('strategyAvailabilityChange');
117
116
  }, [apiRef]);
118
117
  const strategyProcessingApi = {
119
118
  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
 
@@ -13,7 +13,6 @@ import { gridSortColumnLookupSelector } from '../sorting/gridSortingSelector';
13
13
  import { gridColumnMenuSelector } from '../columnMenu/columnMenuSelector';
14
14
  import { useGridRootProps } from '../../utils/useGridRootProps';
15
15
  import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
16
- import { GridEvents } from '../../../models/events';
17
16
  import { GridColumnHeaderItem } from '../../../components/columnHeaders/GridColumnHeaderItem';
18
17
  import { getFirstColumnIndexToRender } from '../columns/gridColumnsUtils';
19
18
  import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
@@ -129,11 +128,11 @@ export const useGridColumnHeaders = props => {
129
128
  const handleColumnResizeStop = React.useCallback(() => setResizeCol(''), []);
130
129
  const handleColumnReorderStart = React.useCallback(params => setDragCol(params.field), []);
131
130
  const handleColumnReorderStop = React.useCallback(() => setDragCol(''), []);
132
- useGridApiEventHandler(apiRef, GridEvents.columnResizeStart, handleColumnResizeStart);
133
- useGridApiEventHandler(apiRef, GridEvents.columnResizeStop, handleColumnResizeStop);
134
- useGridApiEventHandler(apiRef, GridEvents.columnHeaderDragStart, handleColumnReorderStart);
135
- useGridApiEventHandler(apiRef, GridEvents.columnHeaderDragEnd, handleColumnReorderStop);
136
- useGridApiEventHandler(apiRef, GridEvents.rowsScroll, handleScroll);
131
+ useGridApiEventHandler(apiRef, 'columnResizeStart', handleColumnResizeStart);
132
+ useGridApiEventHandler(apiRef, 'columnResizeStop', handleColumnResizeStop);
133
+ useGridApiEventHandler(apiRef, 'columnHeaderDragStart', handleColumnReorderStart);
134
+ useGridApiEventHandler(apiRef, 'columnHeaderDragEnd', handleColumnReorderStop);
135
+ useGridApiEventHandler(apiRef, 'rowsScroll', handleScroll);
137
136
 
138
137
  const getColumns = (params, other = {}) => {
139
138
  const {
@@ -1,6 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
- import { GridEvents } from '../../../models/events';
4
3
  import { useGridLogger, useGridApiMethod, useGridApiEventHandler } from '../../utils';
5
4
  import { gridColumnMenuSelector } from './columnMenuSelector';
6
5
  export const columnMenuStateInitializer = state => _extends({}, state, {
@@ -78,7 +77,7 @@ export const useGridColumnMenu = apiRef => {
78
77
  * EVENTS
79
78
  */
80
79
 
81
- useGridApiEventHandler(apiRef, GridEvents.columnResizeStart, hideColumnMenu);
82
- useGridApiEventHandler(apiRef, GridEvents.virtualScrollerWheel, apiRef.current.hideColumnMenu);
83
- useGridApiEventHandler(apiRef, GridEvents.virtualScrollerTouchMove, apiRef.current.hideColumnMenu);
80
+ useGridApiEventHandler(apiRef, 'columnResizeStart', hideColumnMenu);
81
+ useGridApiEventHandler(apiRef, 'virtualScrollerWheel', apiRef.current.hideColumnMenu);
82
+ useGridApiEventHandler(apiRef, 'virtualScrollerTouchMove', apiRef.current.hideColumnMenu);
84
83
  };
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
3
3
  import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
4
- import { GridEvents } from '../../../models/events/gridEvents';
5
4
 
6
5
  /**
7
6
  * @requires useGridColumns (method, event)
@@ -105,5 +104,5 @@ export const useGridColumnSpanning = apiRef => {
105
104
  // `colSpan` needs to be recalculated after column reordering
106
105
  lookup.current = {};
107
106
  }, []);
108
- useGridApiEventHandler(apiRef, GridEvents.columnOrderChange, handleColumnReorderChange);
107
+ useGridApiEventHandler(apiRef, 'columnOrderChange', handleColumnReorderChange);
109
108
  };
@@ -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 { useGridApiMethod } from '../../utils/useGridApiMethod';
5
4
  import { useGridLogger } from '../../utils/useGridLogger';
6
5
  import { gridColumnFieldsSelector, gridColumnDefinitionsSelector, gridColumnLookupSelector, gridColumnsMetaSelector, gridColumnsSelector, gridColumnVisibilityModelSelector, gridVisibleColumnDefinitionsSelector, gridColumnPositionsSelector } from './gridColumnsSelector';
@@ -51,13 +50,13 @@ export function useGridColumns(apiRef, props) {
51
50
  propModel: props.columnVisibilityModel,
52
51
  propOnChange: props.onColumnVisibilityModelChange,
53
52
  stateSelector: gridColumnVisibilityModelSelector,
54
- changeEvent: GridEvents.columnVisibilityModelChange
53
+ changeEvent: 'columnVisibilityModelChange'
55
54
  });
56
55
  const setGridColumnsState = React.useCallback(columnsState => {
57
56
  logger.debug('Updating columns state.');
58
57
  apiRef.current.setState(mergeColumnsState(columnsState));
59
58
  apiRef.current.forceUpdate();
60
- apiRef.current.publishEvent(GridEvents.columnsChange, columnsState.all);
59
+ apiRef.current.publishEvent('columnsChange', columnsState.all);
61
60
  }, [logger, apiRef]);
62
61
  /**
63
62
  * API METHODS
@@ -135,7 +134,7 @@ export function useGridColumns(apiRef, props) {
135
134
  colDef: newColumn,
136
135
  isVisible
137
136
  };
138
- apiRef.current.publishEvent(GridEvents.columnVisibilityChange, params);
137
+ apiRef.current.publishEvent('columnVisibilityChange', params);
139
138
  }
140
139
  }, [apiRef]);
141
140
  const setColumnIndex = React.useCallback((field, targetIndexPosition) => {
@@ -159,7 +158,7 @@ export function useGridColumns(apiRef, props) {
159
158
  targetIndex: targetIndexPosition,
160
159
  oldIndex: oldIndexPosition
161
160
  };
162
- apiRef.current.publishEvent(GridEvents.columnOrderChange, params);
161
+ apiRef.current.publishEvent('columnOrderChange', params);
163
162
  }, [apiRef, logger, setGridColumnsState]);
164
163
  const setColumnWidth = React.useCallback((field, width) => {
165
164
  logger.debug(`Updating column ${field} width to ${width}`);
@@ -170,7 +169,7 @@ export function useGridColumns(apiRef, props) {
170
169
  });
171
170
 
172
171
  apiRef.current.updateColumns([newColumn]);
173
- apiRef.current.publishEvent(GridEvents.columnWidthChange, {
172
+ apiRef.current.publishEvent('columnWidthChange', {
174
173
  element: apiRef.current.getColumnHeaderElement(field),
175
174
  colDef: newColumn,
176
175
  width
@@ -256,7 +255,7 @@ export function useGridColumns(apiRef, props) {
256
255
  apiRef.current.setState(mergeColumnsState(columnsState));
257
256
 
258
257
  if (initialState != null) {
259
- apiRef.current.publishEvent(GridEvents.columnsChange, columnsState.all);
258
+ apiRef.current.publishEvent('columnsChange', columnsState.all);
260
259
  }
261
260
 
262
261
  return params;
@@ -287,8 +286,8 @@ export function useGridColumns(apiRef, props) {
287
286
  }
288
287
  };
289
288
 
290
- useGridApiEventHandler(apiRef, GridEvents.viewportInnerSizeChange, handleGridSizeChange);
291
- useGridApiOptionHandler(apiRef, GridEvents.columnVisibilityChange, props.onColumnVisibilityChange);
289
+ useGridApiEventHandler(apiRef, 'viewportInnerSizeChange', handleGridSizeChange);
290
+ useGridApiOptionHandler(apiRef, 'columnVisibilityChange', props.onColumnVisibilityChange);
292
291
  /**
293
292
  * APPLIERS
294
293
  */
@@ -1,4 +1,4 @@
1
1
  import * as React from 'react';
2
2
  import { GridApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
- export declare function useGridDimensions(apiRef: React.MutableRefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, 'rows' | 'onResize' | 'scrollbarSize' | 'pagination' | 'paginationMode' | 'autoHeight' | 'getRowHeight'>): void;
4
+ export declare function useGridDimensions(apiRef: React.MutableRefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, 'onResize' | 'scrollbarSize' | 'pagination' | 'paginationMode' | 'autoHeight' | 'getRowHeight'>): void;
@@ -1,6 +1,5 @@
1
1
  import * as React from 'react';
2
2
  import { debounce, ownerDocument, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/material/utils';
3
- import { GridEvents } from '../../../models/events';
4
3
  import { useGridApiEventHandler, useGridApiOptionHandler } from '../../utils/useGridApiEventHandler';
5
4
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
6
5
  import { useGridLogger } from '../../utils/useGridLogger';
@@ -101,12 +100,12 @@ export function useGridDimensions(apiRef, props) {
101
100
  fullDimensionsRef.current = newFullDimensions;
102
101
 
103
102
  if (newFullDimensions.viewportInnerSize.width !== (prevDimensions == null ? void 0 : prevDimensions.viewportInnerSize.width) || newFullDimensions.viewportInnerSize.height !== (prevDimensions == null ? void 0 : prevDimensions.viewportInnerSize.height)) {
104
- apiRef.current.publishEvent(GridEvents.viewportInnerSizeChange, newFullDimensions.viewportInnerSize);
103
+ apiRef.current.publishEvent('viewportInnerSizeChange', newFullDimensions.viewportInnerSize);
105
104
  }
106
105
  }, [apiRef, props.scrollbarSize, props.autoHeight, headerHeight, rowsMeta.currentPageTotalHeight]);
107
106
  const resize = React.useCallback(() => {
108
107
  updateGridDimensionsRef();
109
- apiRef.current.publishEvent(GridEvents.debouncedResize, rootDimensionsRef.current);
108
+ apiRef.current.publishEvent('debouncedResize', rootDimensionsRef.current);
110
109
  }, [apiRef, updateGridDimensionsRef]);
111
110
  const getRootDimensions = React.useCallback(() => fullDimensionsRef.current, []);
112
111
  const getViewportPageSize = React.useCallback(() => {
@@ -172,10 +171,10 @@ export function useGridDimensions(apiRef, props) {
172
171
  debounceResize();
173
172
  }, [props.autoHeight, debounceResize, logger, resize]);
174
173
  useEnhancedEffect(() => updateGridDimensionsRef(), [updateGridDimensionsRef]);
175
- useGridApiOptionHandler(apiRef, GridEvents.sortedRowsSet, updateGridDimensionsRef);
176
- useGridApiOptionHandler(apiRef, GridEvents.pageChange, updateGridDimensionsRef);
177
- useGridApiOptionHandler(apiRef, GridEvents.pageSizeChange, updateGridDimensionsRef);
178
- useGridApiOptionHandler(apiRef, GridEvents.columnsChange, updateGridDimensionsRef);
179
- useGridApiEventHandler(apiRef, GridEvents.resize, handleResize);
180
- useGridApiOptionHandler(apiRef, GridEvents.debouncedResize, props.onResize);
174
+ useGridApiOptionHandler(apiRef, 'sortedRowsSet', updateGridDimensionsRef);
175
+ useGridApiOptionHandler(apiRef, 'pageChange', updateGridDimensionsRef);
176
+ useGridApiOptionHandler(apiRef, 'pageSizeChange', updateGridDimensionsRef);
177
+ useGridApiOptionHandler(apiRef, 'columnsChange', updateGridDimensionsRef);
178
+ useGridApiEventHandler(apiRef, 'resize', handleResize);
179
+ useGridApiOptionHandler(apiRef, 'debouncedResize', props.onResize);
181
180
  }
@@ -1,4 +1,4 @@
1
1
  import * as React from 'react';
2
2
  import { GridApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
- export declare const useGridCellEditing: (apiRef: React.MutableRefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, 'editMode' | 'processRowUpdate' | 'onCellEditStart' | 'onCellEditStop' | 'onProcessRowUpdateError'>) => void;
4
+ export declare const useGridCellEditing: (apiRef: React.MutableRefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, 'editMode' | 'processRowUpdate' | 'onCellEditStart' | 'onCellEditStop' | 'cellModesModel' | 'onCellModesModelChange' | 'onProcessRowUpdateError' | 'signature'>) => void;