@mui/x-data-grid 5.10.0 → 5.12.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 (573) hide show
  1. package/CHANGELOG.md +325 -10
  2. package/DataGrid/DataGrid.js +61 -2
  3. package/DataGrid/useDataGridProps.js +2 -1
  4. package/README.md +4 -5
  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.d.ts +1 -1
  21. package/components/GridRow.js +55 -17
  22. package/components/GridRowCount.d.ts +4 -1
  23. package/components/GridRowCount.js +1 -0
  24. package/components/GridScrollArea.js +3 -4
  25. package/components/GridSelectedRowCount.d.ts +4 -1
  26. package/components/GridSelectedRowCount.js +2 -1
  27. package/components/base/GridBody.js +1 -2
  28. package/components/base/GridOverlays.js +2 -3
  29. package/components/cell/GridActionsCell.js +13 -4
  30. package/components/cell/GridActionsCellItem.d.ts +1 -1
  31. package/components/cell/GridCell.d.ts +2 -1
  32. package/components/cell/GridCell.js +17 -12
  33. package/components/cell/GridEditBooleanCell.d.ts +15 -3
  34. package/components/cell/GridEditBooleanCell.js +101 -6
  35. package/components/cell/GridEditDateCell.d.ts +16 -4
  36. package/components/cell/GridEditDateCell.js +99 -5
  37. package/components/cell/GridEditInputCell.d.ts +11 -5
  38. package/components/cell/GridEditInputCell.js +29 -5
  39. package/components/cell/GridEditSingleSelectCell.d.ts +12 -4
  40. package/components/cell/GridEditSingleSelectCell.js +28 -5
  41. package/components/cell/index.d.ts +2 -0
  42. package/components/cell/index.js +2 -0
  43. package/components/columnHeaders/GridColumnHeaderItem.js +19 -19
  44. package/components/columnHeaders/GridColumnHeaders.d.ts +2 -0
  45. package/components/columnHeaders/GridColumnHeadersInner.d.ts +2 -0
  46. package/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
  47. package/components/columnSelection/GridHeaderCheckbox.js +4 -5
  48. package/components/containers/GridFooterContainer.d.ts +8 -2
  49. package/components/containers/GridFooterContainer.js +11 -2
  50. package/components/containers/GridRoot.js +25 -5
  51. package/components/containers/GridRootStyles.js +4 -2
  52. package/components/containers/GridToolbarContainer.d.ts +8 -2
  53. package/components/containers/GridToolbarContainer.js +12 -2
  54. package/components/menu/GridMenu.js +9 -2
  55. package/components/panel/GridColumnsPanel.js +10 -2
  56. package/components/panel/GridPanelContent.d.ts +8 -1
  57. package/components/panel/GridPanelContent.js +13 -2
  58. package/components/panel/GridPanelFooter.d.ts +8 -1
  59. package/components/panel/GridPanelFooter.js +13 -2
  60. package/components/panel/GridPanelHeader.d.ts +8 -1
  61. package/components/panel/GridPanelHeader.js +13 -2
  62. package/components/panel/GridPanelWrapper.d.ts +1 -1
  63. package/components/panel/GridPanelWrapper.js +3 -3
  64. package/components/panel/filterPanel/GridFilterForm.d.ts +61 -4
  65. package/components/panel/filterPanel/GridFilterForm.js +88 -8
  66. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
  67. package/components/panel/filterPanel/GridFilterPanel.d.ts +8 -5
  68. package/components/panel/filterPanel/GridFilterPanel.js +24 -6
  69. package/components/toolbar/GridToolbar.d.ts +12 -2
  70. package/components/toolbar/GridToolbar.js +30 -7
  71. package/components/toolbar/GridToolbarExport.d.ts +5 -4
  72. package/components/toolbar/GridToolbarExport.js +15 -20
  73. package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
  74. package/components/toolbar/GridToolbarQuickFilter.d.ts +20 -0
  75. package/components/toolbar/GridToolbarQuickFilter.js +87 -0
  76. package/components/toolbar/index.d.ts +3 -1
  77. package/components/toolbar/index.js +3 -2
  78. package/components/virtualization/GridVirtualScroller.d.ts +4 -1
  79. package/components/virtualization/GridVirtualScrollerContent.d.ts +4 -1
  80. package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +4 -1
  81. package/constants/defaultGridSlotsComponents.js +3 -2
  82. package/constants/gridClasses.d.ts +16 -0
  83. package/constants/gridClasses.js +1 -1
  84. package/constants/localeTextConstants.js +5 -0
  85. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +11 -0
  86. package/hooks/core/pipeProcessing/useGridPipeProcessing.js +10 -9
  87. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +4 -4
  88. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -7
  89. package/hooks/core/useGridApiInitialization.js +3 -3
  90. package/hooks/core/useGridErrorHandler.js +1 -2
  91. package/hooks/core/useGridStateInitialization.js +1 -2
  92. package/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -6
  93. package/hooks/features/columnMenu/useGridColumnMenu.js +3 -4
  94. package/hooks/features/columns/gridColumnsInterfaces.d.ts +3 -0
  95. package/hooks/features/columns/useGridColumnSpanning.js +1 -2
  96. package/hooks/features/columns/useGridColumns.js +20 -23
  97. package/hooks/features/dimensions/useGridDimensions.d.ts +1 -1
  98. package/hooks/features/dimensions/useGridDimensions.js +8 -9
  99. package/hooks/features/editRows/useGridCellEditing.new.d.ts +1 -1
  100. package/hooks/features/editRows/useGridCellEditing.new.js +140 -32
  101. package/hooks/features/editRows/useGridCellEditing.old.js +20 -21
  102. package/hooks/features/editRows/useGridEditing.old.js +4 -5
  103. package/hooks/features/editRows/useGridRowEditing.new.d.ts +1 -1
  104. package/hooks/features/editRows/useGridRowEditing.new.js +128 -42
  105. package/hooks/features/editRows/useGridRowEditing.old.js +21 -22
  106. package/hooks/features/events/useGridEvents.d.ts +1 -1
  107. package/hooks/features/events/useGridEvents.js +19 -18
  108. package/hooks/features/export/serializers/csvSerializer.js +5 -5
  109. package/hooks/features/export/useGridCsvExport.js +23 -16
  110. package/hooks/features/export/useGridPrintExport.js +22 -0
  111. package/hooks/features/export/utils.d.ts +3 -1
  112. package/hooks/features/export/utils.js +13 -0
  113. package/hooks/features/filter/gridFilterState.d.ts +1 -2
  114. package/hooks/features/filter/gridFilterState.js +3 -1
  115. package/hooks/features/filter/gridFilterUtils.d.ts +17 -1
  116. package/hooks/features/filter/gridFilterUtils.js +85 -4
  117. package/hooks/features/filter/useGridFilter.js +25 -13
  118. package/hooks/features/focus/useGridFocus.d.ts +1 -1
  119. package/hooks/features/focus/useGridFocus.js +29 -33
  120. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +4 -5
  121. package/hooks/features/pagination/useGridPage.js +3 -4
  122. package/hooks/features/pagination/useGridPageSize.js +2 -3
  123. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -6
  124. package/hooks/features/rows/gridRowsSelector.d.ts +1 -0
  125. package/hooks/features/rows/gridRowsSelector.js +1 -0
  126. package/hooks/features/rows/gridRowsState.d.ts +16 -11
  127. package/hooks/features/rows/gridRowsUtils.d.ts +14 -1
  128. package/hooks/features/rows/gridRowsUtils.js +79 -1
  129. package/hooks/features/rows/useGridRows.js +130 -129
  130. package/hooks/features/rows/useGridRowsMeta.d.ts +1 -1
  131. package/hooks/features/rows/useGridRowsMeta.js +107 -43
  132. package/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
  133. package/hooks/features/scroll/useGridScroll.js +6 -1
  134. package/hooks/features/selection/useGridSelection.d.ts +1 -1
  135. package/hooks/features/selection/useGridSelection.js +13 -10
  136. package/hooks/features/sorting/useGridSorting.js +8 -9
  137. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +1 -0
  138. package/hooks/features/virtualization/useGridVirtualScroller.js +33 -14
  139. package/hooks/utils/useGridApiEventHandler.d.ts +4 -1
  140. package/hooks/utils/useGridApiEventHandler.js +22 -9
  141. package/hooks/utils/useGridNativeEventListener.js +1 -2
  142. package/hooks/utils/useGridSelector.js +1 -1
  143. package/index.d.ts +2 -0
  144. package/index.js +1 -1
  145. package/internals/index.d.ts +5 -1
  146. package/internals/index.js +5 -2
  147. package/legacy/DataGrid/DataGrid.js +61 -2
  148. package/legacy/DataGrid/useDataGridProps.js +2 -1
  149. package/legacy/colDef/gridActionsColDef.js +2 -1
  150. package/legacy/colDef/gridBooleanColDef.js +2 -1
  151. package/legacy/colDef/gridCheckboxSelectionColDef.js +1 -0
  152. package/legacy/colDef/gridDateColDef.js +4 -2
  153. package/legacy/colDef/gridNumericColDef.js +3 -2
  154. package/legacy/colDef/gridNumericOperators.js +28 -18
  155. package/legacy/colDef/gridSingleSelectColDef.js +3 -2
  156. package/legacy/colDef/gridSingleSelectOperators.js +55 -6
  157. package/legacy/colDef/gridStringColDef.js +3 -2
  158. package/legacy/colDef/gridStringOperators.js +25 -14
  159. package/legacy/components/GridFooter.js +11 -2
  160. package/legacy/components/GridRow.js +60 -17
  161. package/legacy/components/GridRowCount.js +1 -0
  162. package/legacy/components/GridScrollArea.js +3 -4
  163. package/legacy/components/GridSelectedRowCount.js +2 -1
  164. package/legacy/components/base/GridBody.js +1 -2
  165. package/legacy/components/base/GridOverlays.js +2 -3
  166. package/legacy/components/cell/GridActionsCell.js +13 -4
  167. package/legacy/components/cell/GridCell.js +17 -12
  168. package/legacy/components/cell/GridEditBooleanCell.js +132 -11
  169. package/legacy/components/cell/GridEditDateCell.js +148 -42
  170. package/legacy/components/cell/GridEditInputCell.js +61 -12
  171. package/legacy/components/cell/GridEditSingleSelectCell.js +41 -13
  172. package/legacy/components/cell/index.js +2 -0
  173. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +21 -19
  174. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
  175. package/legacy/components/columnSelection/GridHeaderCheckbox.js +4 -5
  176. package/legacy/components/containers/GridFooterContainer.js +11 -2
  177. package/legacy/components/containers/GridRoot.js +23 -5
  178. package/legacy/components/containers/GridRootStyles.js +3 -2
  179. package/legacy/components/containers/GridToolbarContainer.js +12 -2
  180. package/legacy/components/menu/GridMenu.js +9 -2
  181. package/legacy/components/panel/GridColumnsPanel.js +12 -2
  182. package/legacy/components/panel/GridPanelContent.js +13 -2
  183. package/legacy/components/panel/GridPanelFooter.js +13 -2
  184. package/legacy/components/panel/GridPanelHeader.js +13 -2
  185. package/legacy/components/panel/GridPanelWrapper.js +3 -3
  186. package/legacy/components/panel/filterPanel/GridFilterForm.js +89 -8
  187. package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
  188. package/legacy/components/panel/filterPanel/GridFilterPanel.js +25 -6
  189. package/legacy/components/toolbar/GridToolbar.js +31 -6
  190. package/legacy/components/toolbar/GridToolbarExport.js +18 -19
  191. package/legacy/components/toolbar/GridToolbarQuickFilter.js +102 -0
  192. package/legacy/components/toolbar/index.js +3 -2
  193. package/legacy/constants/defaultGridSlotsComponents.js +3 -2
  194. package/legacy/constants/gridClasses.js +1 -1
  195. package/legacy/constants/localeTextConstants.js +5 -0
  196. package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +10 -10
  197. package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -7
  198. package/legacy/hooks/core/useGridApiInitialization.js +3 -3
  199. package/legacy/hooks/core/useGridErrorHandler.js +1 -2
  200. package/legacy/hooks/core/useGridStateInitialization.js +1 -2
  201. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -6
  202. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +3 -4
  203. package/legacy/hooks/features/columns/useGridColumnSpanning.js +1 -2
  204. package/legacy/hooks/features/columns/useGridColumns.js +20 -23
  205. package/legacy/hooks/features/dimensions/useGridDimensions.js +8 -9
  206. package/legacy/hooks/features/editRows/useGridCellEditing.new.js +220 -83
  207. package/legacy/hooks/features/editRows/useGridCellEditing.old.js +20 -21
  208. package/legacy/hooks/features/editRows/useGridEditing.old.js +4 -5
  209. package/legacy/hooks/features/editRows/useGridRowEditing.new.js +132 -42
  210. package/legacy/hooks/features/editRows/useGridRowEditing.old.js +20 -21
  211. package/legacy/hooks/features/events/useGridEvents.js +19 -18
  212. package/legacy/hooks/features/export/serializers/csvSerializer.js +5 -5
  213. package/legacy/hooks/features/export/useGridCsvExport.js +24 -17
  214. package/legacy/hooks/features/export/useGridPrintExport.js +22 -0
  215. package/legacy/hooks/features/export/utils.js +14 -0
  216. package/legacy/hooks/features/filter/gridFilterState.js +3 -1
  217. package/legacy/hooks/features/filter/gridFilterUtils.js +97 -4
  218. package/legacy/hooks/features/filter/useGridFilter.js +25 -13
  219. package/legacy/hooks/features/focus/useGridFocus.js +31 -35
  220. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +4 -5
  221. package/legacy/hooks/features/pagination/useGridPage.js +3 -4
  222. package/legacy/hooks/features/pagination/useGridPageSize.js +2 -3
  223. package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -6
  224. package/legacy/hooks/features/rows/gridRowsSelector.js +3 -0
  225. package/legacy/hooks/features/rows/gridRowsUtils.js +82 -1
  226. package/legacy/hooks/features/rows/useGridRows.js +140 -132
  227. package/legacy/hooks/features/rows/useGridRowsMeta.js +104 -41
  228. package/legacy/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
  229. package/legacy/hooks/features/scroll/useGridScroll.js +6 -1
  230. package/legacy/hooks/features/selection/useGridSelection.js +13 -10
  231. package/legacy/hooks/features/sorting/useGridSorting.js +8 -9
  232. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +52 -29
  233. package/legacy/hooks/utils/useGridApiEventHandler.js +20 -9
  234. package/legacy/hooks/utils/useGridNativeEventListener.js +1 -2
  235. package/legacy/hooks/utils/useGridSelector.js +1 -1
  236. package/legacy/index.js +1 -1
  237. package/legacy/internals/index.js +5 -2
  238. package/legacy/locales/arSD.js +5 -0
  239. package/legacy/locales/bgBG.js +5 -0
  240. package/legacy/locales/csCZ.js +5 -0
  241. package/legacy/locales/daDK.js +5 -0
  242. package/legacy/locales/deDE.js +10 -5
  243. package/legacy/locales/elGR.js +5 -0
  244. package/legacy/locales/esES.js +5 -0
  245. package/legacy/locales/faIR.js +5 -0
  246. package/legacy/locales/fiFI.js +5 -0
  247. package/legacy/locales/frFR.js +5 -0
  248. package/legacy/locales/heIL.js +10 -5
  249. package/legacy/locales/huHU.js +5 -0
  250. package/legacy/locales/itIT.js +5 -0
  251. package/legacy/locales/jaJP.js +5 -0
  252. package/legacy/locales/koKR.js +5 -0
  253. package/legacy/locales/nbNO.js +127 -0
  254. package/legacy/locales/nlNL.js +5 -0
  255. package/legacy/locales/plPL.js +5 -0
  256. package/legacy/locales/ptBR.js +5 -0
  257. package/legacy/locales/ruRU.js +5 -0
  258. package/legacy/locales/skSK.js +5 -0
  259. package/legacy/locales/trTR.js +8 -3
  260. package/legacy/locales/ukUA.js +5 -0
  261. package/legacy/locales/viVN.js +5 -0
  262. package/legacy/locales/zhCN.js +5 -0
  263. package/legacy/models/events/gridEvents.js +4 -0
  264. package/legacy/models/gridApiCaches.js +1 -0
  265. package/legacy/models/index.js +4 -3
  266. package/legacy/models/params/gridMenuParams.js +1 -0
  267. package/legacy/models/params/index.js +2 -1
  268. package/legacy/utils/createSelector.js +18 -2
  269. package/legacy/utils/exportAs.js +1 -1
  270. package/locales/arSD.js +5 -0
  271. package/locales/bgBG.js +5 -0
  272. package/locales/csCZ.js +5 -0
  273. package/locales/daDK.js +5 -0
  274. package/locales/deDE.js +10 -5
  275. package/locales/elGR.js +5 -0
  276. package/locales/esES.js +5 -0
  277. package/locales/faIR.js +5 -0
  278. package/locales/fiFI.js +5 -0
  279. package/locales/frFR.js +5 -0
  280. package/locales/heIL.js +10 -5
  281. package/locales/huHU.js +5 -0
  282. package/locales/itIT.js +5 -0
  283. package/locales/jaJP.js +5 -0
  284. package/locales/koKR.js +5 -0
  285. package/locales/nbNO.d.ts +2 -0
  286. package/locales/nbNO.js +115 -0
  287. package/locales/nlNL.js +5 -0
  288. package/locales/plPL.js +5 -0
  289. package/locales/ptBR.js +5 -0
  290. package/locales/ruRU.js +5 -0
  291. package/locales/skSK.js +5 -0
  292. package/locales/trTR.js +8 -3
  293. package/locales/ukUA.js +5 -0
  294. package/locales/viVN.js +5 -0
  295. package/locales/zhCN.js +5 -0
  296. package/models/api/gridCoreApi.d.ts +6 -0
  297. package/models/api/gridEditingApi.d.ts +23 -4
  298. package/models/api/gridFilterApi.d.ts +5 -0
  299. package/models/api/gridFocusApi.d.ts +1 -0
  300. package/models/api/gridLocaleTextApi.d.ts +4 -0
  301. package/models/api/gridRowApi.d.ts +28 -0
  302. package/models/api/gridRowsMetaApi.d.ts +24 -0
  303. package/models/api/index.d.ts +1 -1
  304. package/models/colDef/gridColDef.d.ts +16 -3
  305. package/models/events/gridEventLookup.d.ts +286 -4
  306. package/models/events/gridEvents.d.ts +5 -278
  307. package/models/events/gridEvents.js +4 -0
  308. package/models/gridApiCaches.d.ts +6 -0
  309. package/models/gridApiCaches.js +1 -0
  310. package/models/gridExport.d.ts +29 -2
  311. package/models/gridFilterModel.d.ts +11 -0
  312. package/models/gridFilterOperator.d.ts +1 -1
  313. package/models/gridIconSlotsComponent.d.ts +5 -0
  314. package/models/gridStateCommunity.d.ts +0 -2
  315. package/models/index.d.ts +1 -1
  316. package/models/index.js +4 -3
  317. package/models/params/gridMenuParams.d.ts +7 -0
  318. package/models/params/gridMenuParams.js +1 -0
  319. package/models/params/gridRowParams.d.ts +1 -1
  320. package/models/params/index.d.ts +1 -0
  321. package/models/params/index.js +2 -1
  322. package/models/props/DataGridProps.d.ts +79 -29
  323. package/modern/DataGrid/DataGrid.js +61 -2
  324. package/modern/DataGrid/useDataGridProps.js +2 -1
  325. package/modern/colDef/gridActionsColDef.js +2 -1
  326. package/modern/colDef/gridBooleanColDef.js +2 -1
  327. package/modern/colDef/gridCheckboxSelectionColDef.js +1 -0
  328. package/modern/colDef/gridDateColDef.js +4 -2
  329. package/modern/colDef/gridNumericColDef.js +3 -2
  330. package/modern/colDef/gridNumericOperators.js +11 -0
  331. package/modern/colDef/gridSingleSelectColDef.js +3 -2
  332. package/modern/colDef/gridSingleSelectOperators.js +52 -0
  333. package/modern/colDef/gridStringColDef.js +3 -2
  334. package/modern/colDef/gridStringOperators.js +12 -0
  335. package/modern/components/GridFooter.js +11 -2
  336. package/modern/components/GridRow.js +55 -17
  337. package/modern/components/GridRowCount.js +1 -0
  338. package/modern/components/GridScrollArea.js +3 -4
  339. package/modern/components/GridSelectedRowCount.js +2 -1
  340. package/modern/components/base/GridBody.js +1 -2
  341. package/modern/components/base/GridOverlays.js +2 -3
  342. package/modern/components/cell/GridActionsCell.js +14 -3
  343. package/modern/components/cell/GridCell.js +17 -12
  344. package/modern/components/cell/GridEditBooleanCell.js +101 -6
  345. package/modern/components/cell/GridEditDateCell.js +99 -5
  346. package/modern/components/cell/GridEditInputCell.js +29 -5
  347. package/modern/components/cell/GridEditSingleSelectCell.js +28 -5
  348. package/modern/components/cell/index.js +2 -0
  349. package/modern/components/columnHeaders/GridColumnHeaderItem.js +19 -19
  350. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
  351. package/modern/components/columnSelection/GridHeaderCheckbox.js +4 -5
  352. package/modern/components/containers/GridFooterContainer.js +11 -2
  353. package/modern/components/containers/GridRoot.js +25 -3
  354. package/modern/components/containers/GridRootStyles.js +4 -2
  355. package/modern/components/containers/GridToolbarContainer.js +12 -2
  356. package/modern/components/menu/GridMenu.js +9 -2
  357. package/modern/components/panel/GridColumnsPanel.js +10 -2
  358. package/modern/components/panel/GridPanelContent.js +13 -2
  359. package/modern/components/panel/GridPanelFooter.js +13 -2
  360. package/modern/components/panel/GridPanelHeader.js +13 -2
  361. package/modern/components/panel/GridPanelWrapper.js +3 -3
  362. package/modern/components/panel/filterPanel/GridFilterForm.js +88 -8
  363. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
  364. package/modern/components/panel/filterPanel/GridFilterPanel.js +24 -6
  365. package/modern/components/toolbar/GridToolbar.js +30 -7
  366. package/modern/components/toolbar/GridToolbarExport.js +15 -20
  367. package/modern/components/toolbar/GridToolbarQuickFilter.js +85 -0
  368. package/modern/components/toolbar/index.js +3 -2
  369. package/modern/constants/defaultGridSlotsComponents.js +3 -2
  370. package/modern/constants/gridClasses.js +1 -1
  371. package/modern/constants/localeTextConstants.js +5 -0
  372. package/modern/hooks/core/pipeProcessing/useGridPipeProcessing.js +10 -9
  373. package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -7
  374. package/modern/hooks/core/useGridApiInitialization.js +3 -3
  375. package/modern/hooks/core/useGridErrorHandler.js +1 -2
  376. package/modern/hooks/core/useGridStateInitialization.js +1 -2
  377. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -6
  378. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +3 -4
  379. package/modern/hooks/features/columns/useGridColumnSpanning.js +1 -2
  380. package/modern/hooks/features/columns/useGridColumns.js +19 -22
  381. package/modern/hooks/features/dimensions/useGridDimensions.js +8 -9
  382. package/modern/hooks/features/editRows/useGridCellEditing.new.js +138 -32
  383. package/modern/hooks/features/editRows/useGridCellEditing.old.js +20 -21
  384. package/modern/hooks/features/editRows/useGridEditing.old.js +4 -5
  385. package/modern/hooks/features/editRows/useGridRowEditing.new.js +126 -42
  386. package/modern/hooks/features/editRows/useGridRowEditing.old.js +21 -22
  387. package/modern/hooks/features/events/useGridEvents.js +19 -18
  388. package/modern/hooks/features/export/serializers/csvSerializer.js +5 -5
  389. package/modern/hooks/features/export/useGridCsvExport.js +21 -16
  390. package/modern/hooks/features/export/useGridPrintExport.js +20 -0
  391. package/modern/hooks/features/export/utils.js +13 -0
  392. package/modern/hooks/features/filter/gridFilterState.js +3 -1
  393. package/modern/hooks/features/filter/gridFilterUtils.js +81 -4
  394. package/modern/hooks/features/filter/useGridFilter.js +25 -13
  395. package/modern/hooks/features/focus/useGridFocus.js +29 -33
  396. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +4 -5
  397. package/modern/hooks/features/pagination/useGridPage.js +3 -4
  398. package/modern/hooks/features/pagination/useGridPageSize.js +2 -3
  399. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -6
  400. package/modern/hooks/features/rows/gridRowsSelector.js +1 -0
  401. package/modern/hooks/features/rows/gridRowsUtils.js +77 -1
  402. package/modern/hooks/features/rows/useGridRows.js +130 -129
  403. package/modern/hooks/features/rows/useGridRowsMeta.js +105 -37
  404. package/modern/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
  405. package/modern/hooks/features/scroll/useGridScroll.js +6 -1
  406. package/modern/hooks/features/selection/useGridSelection.js +13 -10
  407. package/modern/hooks/features/sorting/useGridSorting.js +8 -9
  408. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +33 -14
  409. package/modern/hooks/utils/useGridApiEventHandler.js +20 -9
  410. package/modern/hooks/utils/useGridNativeEventListener.js +1 -2
  411. package/modern/hooks/utils/useGridSelector.js +1 -1
  412. package/modern/index.js +1 -1
  413. package/modern/internals/index.js +5 -2
  414. package/modern/locales/arSD.js +5 -0
  415. package/modern/locales/bgBG.js +5 -0
  416. package/modern/locales/csCZ.js +5 -0
  417. package/modern/locales/daDK.js +5 -0
  418. package/modern/locales/deDE.js +10 -5
  419. package/modern/locales/elGR.js +5 -0
  420. package/modern/locales/esES.js +5 -0
  421. package/modern/locales/faIR.js +5 -0
  422. package/modern/locales/fiFI.js +5 -0
  423. package/modern/locales/frFR.js +5 -0
  424. package/modern/locales/heIL.js +10 -5
  425. package/modern/locales/huHU.js +5 -0
  426. package/modern/locales/itIT.js +5 -0
  427. package/modern/locales/jaJP.js +5 -0
  428. package/modern/locales/koKR.js +5 -0
  429. package/modern/locales/nbNO.js +115 -0
  430. package/modern/locales/nlNL.js +5 -0
  431. package/modern/locales/plPL.js +5 -0
  432. package/modern/locales/ptBR.js +5 -0
  433. package/modern/locales/ruRU.js +5 -0
  434. package/modern/locales/skSK.js +5 -0
  435. package/modern/locales/trTR.js +8 -3
  436. package/modern/locales/ukUA.js +5 -0
  437. package/modern/locales/viVN.js +5 -0
  438. package/modern/locales/zhCN.js +5 -0
  439. package/modern/models/events/gridEvents.js +4 -0
  440. package/modern/models/gridApiCaches.js +1 -0
  441. package/modern/models/index.js +4 -3
  442. package/modern/models/params/gridMenuParams.js +1 -0
  443. package/modern/models/params/index.js +2 -1
  444. package/modern/utils/createSelector.js +20 -2
  445. package/modern/utils/exportAs.js +1 -1
  446. package/node/DataGrid/DataGrid.js +61 -2
  447. package/node/DataGrid/useDataGridProps.js +2 -1
  448. package/node/colDef/gridActionsColDef.js +2 -1
  449. package/node/colDef/gridBooleanColDef.js +2 -1
  450. package/node/colDef/gridCheckboxSelectionColDef.js +1 -0
  451. package/node/colDef/gridDateColDef.js +4 -2
  452. package/node/colDef/gridNumericColDef.js +2 -1
  453. package/node/colDef/gridNumericOperators.js +15 -1
  454. package/node/colDef/gridSingleSelectColDef.js +2 -1
  455. package/node/colDef/gridSingleSelectOperators.js +56 -1
  456. package/node/colDef/gridStringColDef.js +2 -1
  457. package/node/colDef/gridStringOperators.js +16 -1
  458. package/node/components/GridFooter.js +10 -1
  459. package/node/components/GridRow.js +57 -18
  460. package/node/components/GridRowCount.js +1 -0
  461. package/node/components/GridScrollArea.js +3 -5
  462. package/node/components/GridSelectedRowCount.js +2 -1
  463. package/node/components/base/GridBody.js +1 -3
  464. package/node/components/base/GridOverlays.js +2 -4
  465. package/node/components/cell/GridActionsCell.js +13 -4
  466. package/node/components/cell/GridCell.js +16 -11
  467. package/node/components/cell/GridEditBooleanCell.js +100 -5
  468. package/node/components/cell/GridEditDateCell.js +98 -4
  469. package/node/components/cell/GridEditInputCell.js +29 -5
  470. package/node/components/cell/GridEditSingleSelectCell.js +28 -6
  471. package/node/components/cell/index.js +26 -0
  472. package/node/components/columnHeaders/GridColumnHeaderItem.js +19 -20
  473. package/node/components/columnSelection/GridCellCheckboxRenderer.js +2 -4
  474. package/node/components/columnSelection/GridHeaderCheckbox.js +4 -6
  475. package/node/components/containers/GridFooterContainer.js +10 -1
  476. package/node/components/containers/GridRoot.js +24 -3
  477. package/node/components/containers/GridRootStyles.js +4 -2
  478. package/node/components/containers/GridToolbarContainer.js +11 -1
  479. package/node/components/menu/GridMenu.js +10 -2
  480. package/node/components/panel/GridColumnsPanel.js +10 -2
  481. package/node/components/panel/GridPanelContent.js +11 -1
  482. package/node/components/panel/GridPanelFooter.js +11 -1
  483. package/node/components/panel/GridPanelHeader.js +11 -1
  484. package/node/components/panel/GridPanelWrapper.js +5 -3
  485. package/node/components/panel/filterPanel/GridFilterForm.js +91 -9
  486. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
  487. package/node/components/panel/filterPanel/GridFilterPanel.js +26 -6
  488. package/node/components/toolbar/GridToolbar.js +32 -7
  489. package/node/components/toolbar/GridToolbarExport.js +14 -19
  490. package/node/components/toolbar/GridToolbarQuickFilter.js +109 -0
  491. package/node/components/toolbar/index.js +42 -11
  492. package/node/constants/defaultGridSlotsComponents.js +2 -1
  493. package/node/constants/gridClasses.js +1 -1
  494. package/node/constants/localeTextConstants.js +5 -0
  495. package/node/hooks/core/pipeProcessing/useGridPipeProcessing.js +10 -8
  496. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -8
  497. package/node/hooks/core/useGridApiInitialization.js +3 -4
  498. package/node/hooks/core/useGridErrorHandler.js +1 -3
  499. package/node/hooks/core/useGridStateInitialization.js +1 -3
  500. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -7
  501. package/node/hooks/features/columnMenu/useGridColumnMenu.js +3 -5
  502. package/node/hooks/features/columns/useGridColumnSpanning.js +1 -3
  503. package/node/hooks/features/columns/useGridColumns.js +20 -24
  504. package/node/hooks/features/dimensions/useGridDimensions.js +8 -10
  505. package/node/hooks/features/editRows/useGridCellEditing.new.js +140 -32
  506. package/node/hooks/features/editRows/useGridCellEditing.old.js +20 -22
  507. package/node/hooks/features/editRows/useGridEditing.old.js +4 -6
  508. package/node/hooks/features/editRows/useGridRowEditing.new.js +128 -43
  509. package/node/hooks/features/editRows/useGridRowEditing.old.js +21 -23
  510. package/node/hooks/features/events/useGridEvents.js +19 -19
  511. package/node/hooks/features/export/serializers/csvSerializer.js +5 -5
  512. package/node/hooks/features/export/useGridCsvExport.js +26 -17
  513. package/node/hooks/features/export/useGridPrintExport.js +25 -0
  514. package/node/hooks/features/export/utils.js +19 -2
  515. package/node/hooks/features/filter/gridFilterState.js +3 -1
  516. package/node/hooks/features/filter/gridFilterUtils.js +93 -3
  517. package/node/hooks/features/filter/useGridFilter.js +25 -13
  518. package/node/hooks/features/focus/useGridFocus.js +29 -34
  519. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +4 -6
  520. package/node/hooks/features/pagination/useGridPage.js +3 -5
  521. package/node/hooks/features/pagination/useGridPageSize.js +2 -4
  522. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -8
  523. package/node/hooks/features/rows/gridRowsSelector.js +3 -1
  524. package/node/hooks/features/rows/gridRowsUtils.js +95 -1
  525. package/node/hooks/features/rows/useGridRows.js +132 -127
  526. package/node/hooks/features/rows/useGridRowsMeta.js +107 -43
  527. package/node/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
  528. package/node/hooks/features/scroll/useGridScroll.js +6 -1
  529. package/node/hooks/features/selection/useGridSelection.js +13 -11
  530. package/node/hooks/features/sorting/useGridSorting.js +8 -10
  531. package/node/hooks/features/virtualization/useGridVirtualScroller.js +33 -15
  532. package/node/hooks/utils/useGridApiEventHandler.js +22 -10
  533. package/node/hooks/utils/useGridNativeEventListener.js +1 -3
  534. package/node/hooks/utils/useGridSelector.js +1 -1
  535. package/node/index.js +1 -1
  536. package/node/internals/index.js +39 -3
  537. package/node/locales/arSD.js +5 -0
  538. package/node/locales/bgBG.js +5 -0
  539. package/node/locales/csCZ.js +5 -0
  540. package/node/locales/daDK.js +5 -0
  541. package/node/locales/deDE.js +10 -5
  542. package/node/locales/elGR.js +5 -0
  543. package/node/locales/esES.js +5 -0
  544. package/node/locales/faIR.js +5 -0
  545. package/node/locales/fiFI.js +5 -0
  546. package/node/locales/frFR.js +5 -0
  547. package/node/locales/heIL.js +10 -5
  548. package/node/locales/huHU.js +5 -0
  549. package/node/locales/itIT.js +5 -0
  550. package/node/locales/jaJP.js +5 -0
  551. package/node/locales/koKR.js +5 -0
  552. package/node/locales/nbNO.js +125 -0
  553. package/node/locales/nlNL.js +5 -0
  554. package/node/locales/plPL.js +5 -0
  555. package/node/locales/ptBR.js +5 -0
  556. package/node/locales/ruRU.js +5 -0
  557. package/node/locales/skSK.js +5 -0
  558. package/node/locales/trTR.js +8 -3
  559. package/node/locales/ukUA.js +5 -0
  560. package/node/locales/viVN.js +5 -0
  561. package/node/locales/zhCN.js +5 -0
  562. package/node/models/events/gridEvents.js +4 -0
  563. package/node/models/gridApiCaches.js +5 -0
  564. package/node/models/index.js +0 -13
  565. package/node/models/params/gridMenuParams.js +5 -0
  566. package/node/models/params/index.js +13 -0
  567. package/node/utils/createSelector.js +25 -4
  568. package/node/utils/exportAs.js +1 -1
  569. package/package.json +5 -4
  570. package/utils/createSelector.d.ts +2 -1
  571. package/utils/createSelector.js +20 -2
  572. package/utils/exportAs.d.ts +2 -2
  573. package/utils/exportAs.js +1 -1
@@ -1,22 +1,16 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["csvOptions", "printOptions"];
3
+ var _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 var GridCsvExportMenuItem = function GridCsvExportMenuItem(props) {
12
11
  var apiRef = useGridApiContext();
13
12
  var hideMenu = props.hideMenu,
14
13
  options = props.options;
15
-
16
- if (options != null && options.disableToolbarButton) {
17
- return null;
18
- }
19
-
20
14
  return /*#__PURE__*/_jsx(MenuItem, {
21
15
  onClick: function onClick() {
22
16
  apiRef.current.exportDataAsCsv(options);
@@ -29,11 +23,6 @@ export var GridPrintExportMenuItem = function GridPrintExportMenuItem(props) {
29
23
  var apiRef = useGridApiContext();
30
24
  var hideMenu = props.hideMenu,
31
25
  options = props.options;
32
-
33
- if (options != null && options.disableToolbarButton) {
34
- return null;
35
- }
36
-
37
26
  return /*#__PURE__*/_jsx(MenuItem, {
38
27
  onClick: function onClick() {
39
28
  apiRef.current.exportDataAsPrint(options);
@@ -47,19 +36,29 @@ var GridToolbarExport = /*#__PURE__*/React.forwardRef(function GridToolbarExport
47
36
  csvOptions = _props$csvOptions === void 0 ? {} : _props$csvOptions,
48
37
  _props$printOptions = props.printOptions,
49
38
  printOptions = _props$printOptions === void 0 ? {} : _props$printOptions,
39
+ excelOptions = props.excelOptions,
50
40
  other = _objectWithoutProperties(props, _excluded);
51
41
 
52
- if (csvOptions != null && csvOptions.disableToolbarButton && printOptions != null && printOptions.disableToolbarButton) {
42
+ var apiRef = useGridApiContext();
43
+ var preProcessedButtons = apiRef.current.unstable_applyPipeProcessors('exportMenu', [], {
44
+ excelOptions: excelOptions,
45
+ csvOptions: csvOptions,
46
+ printOptions: printOptions
47
+ }).sort(function (a, b) {
48
+ return a.componentName > b.componentName ? 1 : -1;
49
+ });
50
+
51
+ if (preProcessedButtons.length === 0) {
53
52
  return null;
54
53
  }
55
54
 
56
- return /*#__PURE__*/_jsxs(GridToolbarExportContainer, _extends({}, other, {
55
+ return /*#__PURE__*/_jsx(GridToolbarExportContainer, _extends({}, other, {
57
56
  ref: ref,
58
- children: [/*#__PURE__*/_jsx(GridCsvExportMenuItem, {
59
- options: csvOptions
60
- }), /*#__PURE__*/_jsx(GridPrintExportMenuItem, {
61
- options: printOptions
62
- })]
57
+ children: preProcessedButtons.map(function (button, index) {
58
+ return /*#__PURE__*/React.cloneElement(button.component, {
59
+ key: index
60
+ });
61
+ })
63
62
  }));
64
63
  });
65
64
  process.env.NODE_ENV !== "production" ? GridToolbarExport.propTypes = {
@@ -0,0 +1,102 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
+ var _excluded = ["quickFilterParser", "debounceMs"];
5
+ import * as React from 'react';
6
+ import PropTypes from 'prop-types';
7
+ import TextField from '@mui/material/TextField';
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
+ var GridToolbarQuickFilterRoot = styled(TextField, {
14
+ name: 'MuiDataGrid',
15
+ slot: 'ToolbarQuickFilter',
16
+ overridesResolver: function overridesResolver(props, styles) {
17
+ return styles.toolbarQuickFilter;
18
+ }
19
+ })(function (_ref) {
20
+ var theme = _ref.theme;
21
+ return {
22
+ width: 'auto',
23
+ paddingBottom: theme.spacing(0.5),
24
+ '& .MuiSvgIcon-root': {
25
+ marginRight: theme.spacing(0.5)
26
+ },
27
+ '& .MuiInput-underline:before': {
28
+ borderBottom: "1px solid ".concat(theme.palette.divider)
29
+ }
30
+ };
31
+ });
32
+
33
+ var defaultSearchValueParser = function defaultSearchValueParser(searchText) {
34
+ return searchText.split(' ').filter(function (word) {
35
+ return word !== '';
36
+ });
37
+ };
38
+
39
+ function GridToolbarQuickFilter(props) {
40
+ var _rootProps$components;
41
+
42
+ var _props$quickFilterPar = props.quickFilterParser,
43
+ quickFilterParser = _props$quickFilterPar === void 0 ? defaultSearchValueParser : _props$quickFilterPar,
44
+ _props$debounceMs = props.debounceMs,
45
+ debounceMs = _props$debounceMs === void 0 ? 500 : _props$debounceMs,
46
+ other = _objectWithoutProperties(props, _excluded);
47
+
48
+ var apiRef = useGridApiContext();
49
+ var rootProps = useGridRootProps();
50
+
51
+ var _React$useState = React.useState(''),
52
+ _React$useState2 = _slicedToArray(_React$useState, 2),
53
+ searchValue = _React$useState2[0],
54
+ setSearchValue = _React$useState2[1];
55
+
56
+ var updateSearchValue = React.useCallback(function (newSearchValue) {
57
+ apiRef.current.setQuickFilterValues(quickFilterParser(newSearchValue));
58
+ }, [apiRef, quickFilterParser]);
59
+ var debouncedUpdateSearchValue = React.useMemo(function () {
60
+ return debounce(updateSearchValue, debounceMs);
61
+ }, [updateSearchValue, debounceMs]);
62
+ var handleSearchValueChange = React.useCallback(function (event) {
63
+ var newSearchValue = event.target.value;
64
+ setSearchValue(newSearchValue);
65
+ debouncedUpdateSearchValue(newSearchValue);
66
+ }, [debouncedUpdateSearchValue]);
67
+ return /*#__PURE__*/_jsx(GridToolbarQuickFilterRoot, _extends({
68
+ as: rootProps.components.BaseTextField,
69
+ variant: "standard",
70
+ value: searchValue,
71
+ onChange: handleSearchValueChange,
72
+ placeholder: apiRef.current.getLocaleText('toolbarQuickFilterPlaceholder'),
73
+ "aria-label": apiRef.current.getLocaleText('toolbarQuickFilterLabel'),
74
+ type: "search",
75
+ InputProps: {
76
+ startAdornment: /*#__PURE__*/_jsx(rootProps.components.QuickFilterIcon, {
77
+ fontSize: "small"
78
+ })
79
+ }
80
+ }, other, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.baseTextField));
81
+ }
82
+
83
+ process.env.NODE_ENV !== "production" ? GridToolbarQuickFilter.propTypes = {
84
+ // ----------------------------- Warning --------------------------------
85
+ // | These PropTypes are generated from the TypeScript type definitions |
86
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
87
+ // ----------------------------------------------------------------------
88
+
89
+ /**
90
+ * The debounce time in milliseconds.
91
+ * @default 500
92
+ */
93
+ debounceMs: PropTypes.number,
94
+
95
+ /**
96
+ * Function responsible for parsing text input in an array of independent values for quick filtering.
97
+ * @param {string} input The value entered by the user
98
+ * @returns {any[]} The array of value on which quick filter is applied
99
+ */
100
+ quickFilterParser: PropTypes.func
101
+ } : void 0;
102
+ 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';
@@ -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, GridDragIcon, 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, GridSearchIcon } from '../components';
11
11
  import { GridColumnUnsortedIcon } from '../components/columnHeaders/GridColumnUnsortedIcon';
12
12
  import { ErrorOverlay } from '../components/ErrorOverlay';
13
13
  import { GridNoResultsOverlay } from '../components/GridNoResultsOverlay';
@@ -34,7 +34,8 @@ var DEFAULT_GRID_ICON_SLOTS_COMPONENTS = {
34
34
  GroupingCriteriaExpandIcon: GridKeyboardArrowRight,
35
35
  DetailPanelExpandIcon: GridAddIcon,
36
36
  DetailPanelCollapseIcon: GridRemoveIcon,
37
- RowReorderIcon: GridDragIcon
37
+ RowReorderIcon: GridDragIcon,
38
+ QuickFilterIcon: GridSearchIcon
38
39
  };
39
40
  /**
40
41
  * 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 var 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']);
5
+ export var 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', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', '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']);
@@ -20,11 +20,16 @@ export var GRID_DEFAULT_LOCALE_TEXT = {
20
20
  toolbarFiltersTooltipActive: function toolbarFiltersTooltipActive(count) {
21
21
  return count !== 1 ? "".concat(count, " active filters") : "".concat(count, " active filter");
22
22
  },
23
+ // Quick filter toolbar field
24
+ toolbarQuickFilterPlaceholder: 'Search...',
25
+ toolbarQuickFilterLabel: 'Search',
26
+ toolbarQuickFilterDeleteIconLabel: 'Clear',
23
27
  // Export selector toolbar button text
24
28
  toolbarExport: 'Export',
25
29
  toolbarExportLabel: 'Export',
26
30
  toolbarExportCSV: 'Download as CSV',
27
31
  toolbarExportPrint: 'Print',
32
+ toolbarExportExcel: 'Download as Excel',
28
33
  // Columns panel text
29
34
  columnsPanelTextFieldLabel: 'Find column',
30
35
  columnsPanelTextFieldPlaceholder: 'Column title',
@@ -47,31 +47,27 @@ export var useGridPipeProcessing = function useGridPipeProcessing(apiRef) {
47
47
  var registerPipeProcessor = React.useCallback(function (group, id, processor) {
48
48
  if (!processorsCache.current[group]) {
49
49
  processorsCache.current[group] = {
50
- processors: {},
50
+ processors: new Map(),
51
51
  appliers: {}
52
52
  };
53
53
  }
54
54
 
55
55
  var groupCache = processorsCache.current[group];
56
- var oldProcessor = groupCache.processors[id];
56
+ var oldProcessor = groupCache.processors.get(id);
57
57
 
58
58
  if (oldProcessor !== processor) {
59
- groupCache.processors[id] = processor;
59
+ groupCache.processors.set(id, processor);
60
60
  runAppliers(groupCache);
61
61
  }
62
62
 
63
63
  return function () {
64
- var _processors = processorsCache.current[group].processors,
65
- removedGroupProcessor = _processors[id],
66
- otherProcessors = _objectWithoutProperties(_processors, [id].map(_toPropertyKey));
67
-
68
- processorsCache.current[group].processors = otherProcessors;
64
+ processorsCache.current[group].processors.set(id, null);
69
65
  };
70
66
  }, [runAppliers]);
71
67
  var registerPipeApplier = React.useCallback(function (group, id, applier) {
72
68
  if (!processorsCache.current[group]) {
73
69
  processorsCache.current[group] = {
74
- processors: {},
70
+ processors: new Map(),
75
71
  appliers: {}
76
72
  };
77
73
  }
@@ -104,8 +100,12 @@ export var useGridPipeProcessing = function useGridPipeProcessing(apiRef) {
104
100
  return value;
105
101
  }
106
102
 
107
- var preProcessors = Object.values(processorsCache.current[group].processors);
103
+ var preProcessors = Array.from(processorsCache.current[group].processors.values());
108
104
  return preProcessors.reduce(function (acc, preProcessor) {
105
+ if (!preProcessor) {
106
+ return acc;
107
+ }
108
+
109
109
  return preProcessor(acc, context);
110
110
  }, value);
111
111
  }, []);
@@ -3,7 +3,6 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
3
3
  import _toPropertyKey from "@babel/runtime/helpers/esm/toPropertyKey";
4
4
  import * as React from 'react';
5
5
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
6
- import { GridEvents } from '../../../models/events';
7
6
  export var GRID_DEFAULT_STRATEGY = 'none';
8
7
  export var GRID_STRATEGIES_PROCESSORS = {
9
8
  rowTreeCreation: 'rowTree',
@@ -26,7 +25,7 @@ export var GRID_STRATEGIES_PROCESSORS = {
26
25
  * The plugin containing the custom logic must use:
27
26
  *
28
27
  * - `useGridRegisterStrategyProcessor` to register their processor.
29
- * When the processor of the active strategy changes, it will fire `GridEvents.activeStrategyProcessorChange` to re-apply the processor.
28
+ * When the processor of the active strategy changes, it will fire `"activeStrategyProcessorChange"` to re-apply the processor.
30
29
  *
31
30
  * - `apiRef.current.unstable_setStrategyAvailability` to tell if their strategy can be used.
32
31
  *
@@ -36,12 +35,12 @@ export var GRID_STRATEGIES_PROCESSORS = {
36
35
  *
37
36
  * - `apiRef.current.unstable_applyStrategyProcessor` to run the processor of the active strategy for a given processor name.
38
37
  *
39
- * - `GridEvents.strategyAvailabilityChange` to update something when the active strategy changes.
38
+ * - the "strategyAvailabilityChange" event to update something when the active strategy changes.
40
39
  * Warning: Be careful not to apply the processor several times.
41
- * For instance `GridEvents.rowsSet` is fired by `useGridRows` whenever the active strategy changes.
40
+ * For instance "rowsSet" is fired by `useGridRows` whenever the active strategy changes.
42
41
  * So listening to both would most likely run your logic twice.
43
42
  *
44
- * - `GridEvents.activeStrategyProcessorChange` to update something when the processor of the active strategy changes.
43
+ * - The "activeStrategyProcessorChange" event to update something when the processor of the active strategy changes.
45
44
  *
46
45
  * =====================================================================================================================
47
46
  *
@@ -76,7 +75,7 @@ export var useGridStrategyProcessing = function useGridStrategyProcessing(apiRef
76
75
  }
77
76
 
78
77
  if (strategyName === apiRef.current.unstable_getActiveStrategy(GRID_STRATEGIES_PROCESSORS[processorName])) {
79
- apiRef.current.publishEvent(GridEvents.activeStrategyProcessorChange, processorName);
78
+ apiRef.current.publishEvent('activeStrategyProcessorChange', processorName);
80
79
  }
81
80
 
82
81
  return cleanup;
@@ -118,7 +117,7 @@ export var useGridStrategyProcessing = function useGridStrategyProcessing(apiRef
118
117
  group: strategyGroup,
119
118
  isAvailable: isAvailable
120
119
  });
121
- apiRef.current.publishEvent(GridEvents.strategyAvailabilityChange);
120
+ apiRef.current.publishEvent('strategyAvailabilityChange');
122
121
  }, [apiRef]);
123
122
  var strategyProcessingApi = {
124
123
  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
  };
@@ -52,7 +52,7 @@ export function useGridApiInitialization(inputApiRef, props) {
52
52
  };
53
53
  }, [apiRef]);
54
54
  var showError = React.useCallback(function (args) {
55
- apiRef.current.publishEvent(GridEvents.componentError, args);
55
+ apiRef.current.publishEvent('componentError', args);
56
56
  }, [apiRef]);
57
57
  useGridApiMethod(apiRef, {
58
58
  subscribeEvent: subscribeEvent,
@@ -62,7 +62,7 @@ export function useGridApiInitialization(inputApiRef, props) {
62
62
  React.useEffect(function () {
63
63
  var api = apiRef.current;
64
64
  return function () {
65
- api.publishEvent(GridEvents.unmount);
65
+ api.publishEvent('unmount');
66
66
  };
67
67
  }, [apiRef]);
68
68
  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
  var handleError = React.useCallback(function (args) {
@@ -14,5 +13,5 @@ export function useGridErrorHandler(apiRef, props) {
14
13
  React.useEffect(function () {
15
14
  handleError(props.error);
16
15
  }, [handleError, props.error]);
17
- useGridApiEventHandler(apiRef, GridEvents.componentError, handleError);
16
+ useGridApiEventHandler(apiRef, 'componentError', handleError);
18
17
  }
@@ -4,7 +4,6 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
4
  var _excluded = ["stateId"];
5
5
  import * as React from 'react';
6
6
  import { GridSignature } from '../utils/useGridApiEventHandler';
7
- import { GridEvents } from '../../models/events';
8
7
  import { useGridApiMethod } from '../utils';
9
8
  import { isFunction } from '../../utils/utils';
10
9
  export var useGridStateInitialization = function useGridStateInitialization(apiRef, props) {
@@ -71,7 +70,7 @@ export var useGridStateInitialization = function useGridStateInitialization(apiR
71
70
  apiRef.current.state = newState;
72
71
 
73
72
  if (apiRef.current.publishEvent) {
74
- apiRef.current.publishEvent(GridEvents.stateChange, newState);
73
+ apiRef.current.publishEvent('stateChange', newState);
75
74
  }
76
75
  }
77
76
 
@@ -14,7 +14,6 @@ import { gridSortColumnLookupSelector } from '../sorting/gridSortingSelector';
14
14
  import { gridColumnMenuSelector } from '../columnMenu/columnMenuSelector';
15
15
  import { useGridRootProps } from '../../utils/useGridRootProps';
16
16
  import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
17
- import { GridEvents } from '../../../models/events';
18
17
  import { GridColumnHeaderItem } from '../../../components/columnHeaders/GridColumnHeaderItem';
19
18
  import { getFirstColumnIndexToRender } from '../columns/gridColumnsUtils';
20
19
  import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
@@ -160,11 +159,11 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
160
159
  var handleColumnReorderStop = React.useCallback(function () {
161
160
  return setDragCol('');
162
161
  }, []);
163
- useGridApiEventHandler(apiRef, GridEvents.columnResizeStart, handleColumnResizeStart);
164
- useGridApiEventHandler(apiRef, GridEvents.columnResizeStop, handleColumnResizeStop);
165
- useGridApiEventHandler(apiRef, GridEvents.columnHeaderDragStart, handleColumnReorderStart);
166
- useGridApiEventHandler(apiRef, GridEvents.columnHeaderDragEnd, handleColumnReorderStop);
167
- useGridApiEventHandler(apiRef, GridEvents.rowsScroll, handleScroll);
162
+ useGridApiEventHandler(apiRef, 'columnResizeStart', handleColumnResizeStart);
163
+ useGridApiEventHandler(apiRef, 'columnResizeStop', handleColumnResizeStop);
164
+ useGridApiEventHandler(apiRef, 'columnHeaderDragStart', handleColumnReorderStart);
165
+ useGridApiEventHandler(apiRef, 'columnHeaderDragEnd', handleColumnReorderStop);
166
+ useGridApiEventHandler(apiRef, 'rowsScroll', handleScroll);
168
167
 
169
168
  var getColumns = function getColumns(params) {
170
169
  var other = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -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 var columnMenuStateInitializer = function columnMenuStateInitializer(state) {
@@ -80,7 +79,7 @@ export var useGridColumnMenu = function useGridColumnMenu(apiRef) {
80
79
  * EVENTS
81
80
  */
82
81
 
83
- useGridApiEventHandler(apiRef, GridEvents.columnResizeStart, hideColumnMenu);
84
- useGridApiEventHandler(apiRef, GridEvents.virtualScrollerWheel, apiRef.current.hideColumnMenu);
85
- useGridApiEventHandler(apiRef, GridEvents.virtualScrollerTouchMove, apiRef.current.hideColumnMenu);
82
+ useGridApiEventHandler(apiRef, 'columnResizeStart', hideColumnMenu);
83
+ useGridApiEventHandler(apiRef, 'virtualScrollerWheel', apiRef.current.hideColumnMenu);
84
+ useGridApiEventHandler(apiRef, 'virtualScrollerTouchMove', apiRef.current.hideColumnMenu);
86
85
  };
@@ -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)
@@ -103,5 +102,5 @@ export var useGridColumnSpanning = function useGridColumnSpanning(apiRef) {
103
102
  // `colSpan` needs to be recalculated after column reordering
104
103
  lookup.current = {};
105
104
  }, []);
106
- useGridApiEventHandler(apiRef, GridEvents.columnOrderChange, handleColumnReorderChange);
105
+ useGridApiEventHandler(apiRef, 'columnOrderChange', handleColumnReorderChange);
107
106
  };
@@ -2,7 +2,6 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
2
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
- import { GridEvents } from '../../../models/events';
6
5
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
7
6
  import { useGridLogger } from '../../utils/useGridLogger';
8
7
  import { gridColumnFieldsSelector, gridColumnDefinitionsSelector, gridColumnLookupSelector, gridColumnsMetaSelector, gridColumnsSelector, gridColumnVisibilityModelSelector, gridVisibleColumnDefinitionsSelector, gridColumnPositionsSelector } from './gridColumnsSelector';
@@ -15,6 +14,9 @@ export var columnsStateInitializer = function columnsStateInitializer(state, pro
15
14
  var _props$initialState, _props$initialState$c, _props$initialState2, _ref, _props$columnVisibili, _props$initialState3, _props$initialState3$;
16
15
 
17
16
  var isUsingColumnVisibilityModel = !!props.columnVisibilityModel || !!((_props$initialState = props.initialState) != null && (_props$initialState$c = _props$initialState.columns) != null && _props$initialState$c.columnVisibilityModel);
17
+ apiRef.current.unstable_caches.columns = {
18
+ isUsingColumnVisibilityModel: isUsingColumnVisibilityModel
19
+ };
18
20
  var columnsTypes = computeColumnTypes(props.columnTypes);
19
21
  var columnsState = createColumnsState({
20
22
  apiRef: apiRef,
@@ -36,7 +38,7 @@ export var columnsStateInitializer = function columnsStateInitializer(state, pro
36
38
  */
37
39
 
38
40
  export function useGridColumns(apiRef, props) {
39
- var _props$initialState4, _props$initialState4$, _props$componentsProp2;
41
+ var _props$componentsProp2;
40
42
 
41
43
  var logger = useGridLogger(apiRef, 'useGridColumns');
42
44
  var columnTypes = React.useMemo(function () {
@@ -44,24 +46,18 @@ export function useGridColumns(apiRef, props) {
44
46
  }, [props.columnTypes]);
45
47
  var previousColumnsProp = React.useRef(props.columns);
46
48
  var previousColumnTypesProp = React.useRef(columnTypes);
47
- /**
48
- * If `initialState.columns.columnVisibilityModel` or `columnVisibilityModel` was defined during the 1st render, we are directly updating the model
49
- * If not, we keep the old behavior and update the `GridColDef.hide` option (which will update the state model through the `GridColDef.hide` => `columnVisibilityModel` sync in `createColumnsState`
50
- */
51
-
52
- var isUsingColumnVisibilityModel = React.useRef(!!props.columnVisibilityModel || !!((_props$initialState4 = props.initialState) != null && (_props$initialState4$ = _props$initialState4.columns) != null && _props$initialState4$.columnVisibilityModel));
53
49
  apiRef.current.unstable_updateControlState({
54
50
  stateId: 'visibleColumns',
55
51
  propModel: props.columnVisibilityModel,
56
52
  propOnChange: props.onColumnVisibilityModelChange,
57
53
  stateSelector: gridColumnVisibilityModelSelector,
58
- changeEvent: GridEvents.columnVisibilityModelChange
54
+ changeEvent: 'columnVisibilityModelChange'
59
55
  });
60
56
  var setGridColumnsState = React.useCallback(function (columnsState) {
61
57
  logger.debug('Updating columns state.');
62
58
  apiRef.current.setState(mergeColumnsState(columnsState));
63
59
  apiRef.current.forceUpdate();
64
- apiRef.current.publishEvent(GridEvents.columnsChange, columnsState.all);
60
+ apiRef.current.publishEvent('columnsChange', columnsState.all);
65
61
  }, [logger, apiRef]);
66
62
  /**
67
63
  * API METHODS
@@ -128,7 +124,7 @@ export function useGridColumns(apiRef, props) {
128
124
  // We keep updating the `hide` option of `GridColDef` when not controlling the model to avoid any breaking change.
129
125
  // `updateColumns` take care of updating the model itself if needs be.
130
126
  // TODO v6: stop using the `hide` field even when the model is not defined
131
- if (isUsingColumnVisibilityModel.current) {
127
+ if (apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel) {
132
128
  var _columnVisibilityMode;
133
129
 
134
130
  var columnVisibilityModel = gridColumnVisibilityModelSelector(apiRef);
@@ -152,7 +148,7 @@ export function useGridColumns(apiRef, props) {
152
148
  colDef: newColumn,
153
149
  isVisible: isVisible
154
150
  };
155
- apiRef.current.publishEvent(GridEvents.columnVisibilityChange, params);
151
+ apiRef.current.publishEvent('columnVisibilityChange', params);
156
152
  }
157
153
  }, [apiRef]);
158
154
  var setColumnIndex = React.useCallback(function (field, targetIndexPosition) {
@@ -169,7 +165,8 @@ export function useGridColumns(apiRef, props) {
169
165
 
170
166
  var updatedColumns = _toConsumableArray(allColumns);
171
167
 
172
- updatedColumns.splice(targetIndexPosition, 0, updatedColumns.splice(oldIndexPosition, 1)[0]);
168
+ var fieldRemoved = updatedColumns.splice(oldIndexPosition, 1)[0];
169
+ updatedColumns.splice(targetIndexPosition, 0, fieldRemoved);
173
170
  setGridColumnsState(_extends({}, gridColumnsSelector(apiRef.current.state), {
174
171
  all: updatedColumns
175
172
  }));
@@ -180,7 +177,7 @@ export function useGridColumns(apiRef, props) {
180
177
  targetIndex: targetIndexPosition,
181
178
  oldIndex: oldIndexPosition
182
179
  };
183
- apiRef.current.publishEvent(GridEvents.columnOrderChange, params);
180
+ apiRef.current.publishEvent('columnOrderChange', params);
184
181
  }, [apiRef, logger, setGridColumnsState]);
185
182
  var setColumnWidth = React.useCallback(function (field, width) {
186
183
  logger.debug("Updating column ".concat(field, " width to ").concat(width));
@@ -191,7 +188,7 @@ export function useGridColumns(apiRef, props) {
191
188
  });
192
189
 
193
190
  apiRef.current.updateColumns([newColumn]);
194
- apiRef.current.publishEvent(GridEvents.columnWidthChange, {
191
+ apiRef.current.publishEvent('columnWidthChange', {
195
192
  element: apiRef.current.getColumnHeaderElement(field),
196
193
  colDef: newColumn,
197
194
  width: width
@@ -219,7 +216,7 @@ export function useGridColumns(apiRef, props) {
219
216
  var stateExportPreProcessing = React.useCallback(function (prevState) {
220
217
  var columnsStateToExport = {};
221
218
 
222
- if (isUsingColumnVisibilityModel.current) {
219
+ if (apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel) {
223
220
  var columnVisibilityModelToExport = gridColumnVisibilityModelSelector(apiRef);
224
221
  var hasHiddenColumns = Object.values(columnVisibilityModelToExport).some(function (value) {
225
222
  return value === false;
@@ -260,7 +257,7 @@ export function useGridColumns(apiRef, props) {
260
257
  var stateRestorePreProcessing = React.useCallback(function (params, context) {
261
258
  var _context$stateToResto;
262
259
 
263
- var columnVisibilityModelToImport = isUsingColumnVisibilityModel.current ? (_context$stateToResto = context.stateToRestore.columns) == null ? void 0 : _context$stateToResto.columnVisibilityModel : undefined;
260
+ var columnVisibilityModelToImport = apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel ? (_context$stateToResto = context.stateToRestore.columns) == null ? void 0 : _context$stateToResto.columnVisibilityModel : undefined;
264
261
  var initialState = context.stateToRestore.columns;
265
262
 
266
263
  if (columnVisibilityModelToImport == null && initialState == null) {
@@ -272,14 +269,14 @@ export function useGridColumns(apiRef, props) {
272
269
  columnTypes: columnTypes,
273
270
  columnsToUpsert: [],
274
271
  initialState: initialState,
275
- shouldRegenColumnVisibilityModelFromColumns: !isUsingColumnVisibilityModel.current,
272
+ shouldRegenColumnVisibilityModelFromColumns: !apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel,
276
273
  currentColumnVisibilityModel: columnVisibilityModelToImport,
277
274
  keepOnlyColumnsToUpsert: false
278
275
  });
279
276
  apiRef.current.setState(mergeColumnsState(columnsState));
280
277
 
281
278
  if (initialState != null) {
282
- apiRef.current.publishEvent(GridEvents.columnsChange, columnsState.all);
279
+ apiRef.current.publishEvent('columnsChange', columnsState.all);
283
280
  }
284
281
 
285
282
  return params;
@@ -310,8 +307,8 @@ export function useGridColumns(apiRef, props) {
310
307
  }
311
308
  };
312
309
 
313
- useGridApiEventHandler(apiRef, GridEvents.viewportInnerSizeChange, handleGridSizeChange);
314
- useGridApiOptionHandler(apiRef, GridEvents.columnVisibilityChange, props.onColumnVisibilityChange);
310
+ useGridApiEventHandler(apiRef, 'viewportInnerSizeChange', handleGridSizeChange);
311
+ useGridApiOptionHandler(apiRef, 'columnVisibilityChange', props.onColumnVisibilityChange);
315
312
  /**
316
313
  * APPLIERS
317
314
  */
@@ -323,7 +320,7 @@ export function useGridColumns(apiRef, props) {
323
320
  columnTypes: columnTypes,
324
321
  columnsToUpsert: [],
325
322
  initialState: undefined,
326
- shouldRegenColumnVisibilityModelFromColumns: !isUsingColumnVisibilityModel.current,
323
+ shouldRegenColumnVisibilityModelFromColumns: !apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel,
327
324
  keepOnlyColumnsToUpsert: false
328
325
  });
329
326
  setGridColumnsState(columnsState);
@@ -353,7 +350,7 @@ export function useGridColumns(apiRef, props) {
353
350
  columnTypes: columnTypes,
354
351
  initialState: undefined,
355
352
  // If the user provides a model, we don't want to set it in the state here because it has it's dedicated `useEffect` which calls `setColumnVisibilityModel`
356
- shouldRegenColumnVisibilityModelFromColumns: !isUsingColumnVisibilityModel.current,
353
+ shouldRegenColumnVisibilityModelFromColumns: !apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel,
357
354
  columnsToUpsert: props.columns,
358
355
  keepOnlyColumnsToUpsert: true
359
356
  });