@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
@@ -3,7 +3,7 @@ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
3
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
5
  import _typeof from "@babel/runtime/helpers/esm/typeof";
6
- var _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "className", "getValue", "hasFocus", "isValidating", "isProcessingProps", "error"];
6
+ var _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "className", "getValue", "hasFocus", "isValidating", "isProcessingProps", "error", "onValueChange"];
7
7
  import _regeneratorRuntime from "@babel/runtime/regenerator";
8
8
  import * as React from 'react';
9
9
  import PropTypes from 'prop-types';
@@ -12,7 +12,6 @@ import MenuItem from '@mui/material/MenuItem';
12
12
  import { isEscapeKey } from '../../utils/keyboardUtils';
13
13
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
14
14
  import { GridEditModes } from '../../models/gridEditRowModel';
15
- import { GridEvents } from '../../models/events/gridEvents';
16
15
  import { getValueFromValueOptions } from '../panel/filterPanel/filterPanelUtils';
17
16
  import { jsx as _jsx } from "react/jsx-runtime";
18
17
 
@@ -47,6 +46,7 @@ function GridEditSingleSelectCell(props) {
47
46
  isValidating = props.isValidating,
48
47
  isProcessingProps = props.isProcessingProps,
49
48
  error = props.error,
49
+ onValueChange = props.onValueChange,
50
50
  other = _objectWithoutProperties(props, _excluded);
51
51
 
52
52
  var ref = React.useRef();
@@ -103,39 +103,49 @@ function GridEditSingleSelectCell(props) {
103
103
  target = event.target; // NativeSelect casts the value to a string.
104
104
 
105
105
  formattedTargetValue = getValueFromValueOptions(target.value, valueOptionsFormatted);
106
- _context.next = 5;
106
+
107
+ if (!onValueChange) {
108
+ _context.next = 6;
109
+ break;
110
+ }
111
+
112
+ _context.next = 6;
113
+ return onValueChange(event, formattedTargetValue);
114
+
115
+ case 6:
116
+ _context.next = 8;
107
117
  return api.setEditCellValue({
108
118
  id: id,
109
119
  field: field,
110
120
  value: formattedTargetValue
111
121
  }, event);
112
122
 
113
- case 5:
123
+ case 8:
114
124
  isValid = _context.sent;
115
125
 
116
126
  if (!((_rootProps$experiment = rootProps.experimentalFeatures) != null && _rootProps$experiment.newEditingApi)) {
117
- _context.next = 8;
127
+ _context.next = 11;
118
128
  break;
119
129
  }
120
130
 
121
131
  return _context.abrupt("return");
122
132
 
123
- case 8:
133
+ case 11:
124
134
  if (!(rootProps.editMode === GridEditModes.Row || isValid === false)) {
125
- _context.next = 10;
135
+ _context.next = 13;
126
136
  break;
127
137
  }
128
138
 
129
139
  return _context.abrupt("return");
130
140
 
131
- case 10:
132
- _context.next = 12;
141
+ case 13:
142
+ _context.next = 15;
133
143
  return Promise.resolve(api.commitCellChange({
134
144
  id: id,
135
145
  field: field
136
146
  }, event));
137
147
 
138
- case 12:
148
+ case 15:
139
149
  canCommit = _context.sent;
140
150
 
141
151
  if (canCommit) {
@@ -144,11 +154,11 @@ function GridEditSingleSelectCell(props) {
144
154
  if (event.key) {
145
155
  // TODO v6: remove once we stop ignoring events fired from portals
146
156
  params = api.getCellParams(id, field);
147
- api.publishEvent(GridEvents.cellNavigationKeyDown, params, event);
157
+ api.publishEvent('cellNavigationKeyDown', params, event);
148
158
  }
149
159
  }
150
160
 
151
- case 14:
161
+ case 17:
152
162
  case "end":
153
163
  return _context.stop();
154
164
  }
@@ -269,6 +279,14 @@ process.env.NODE_ENV !== "production" ? GridEditSingleSelectCell.propTypes = {
269
279
  isProcessingProps: PropTypes.bool,
270
280
  isValidating: PropTypes.bool,
271
281
 
282
+ /**
283
+ * Callback called when the value is changed by the user.
284
+ * @param {SelectChangeEvent<any>} event The event source of the callback.
285
+ * @param {any} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.
286
+ * @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`
287
+ */
288
+ onValueChange: PropTypes.func,
289
+
272
290
  /**
273
291
  * The row model of the row that the current cell belongs to.
274
292
  */
@@ -277,7 +295,17 @@ process.env.NODE_ENV !== "production" ? GridEditSingleSelectCell.propTypes = {
277
295
  /**
278
296
  * The node of the row that the current cell belongs to.
279
297
  */
280
- rowNode: PropTypes.object.isRequired
298
+ rowNode: PropTypes.object.isRequired,
299
+
300
+ /**
301
+ * the tabIndex value.
302
+ */
303
+ tabIndex: PropTypes.oneOf([-1, 0]).isRequired,
304
+
305
+ /**
306
+ * The cell value, but if the column has valueGetter, use getValue.
307
+ */
308
+ value: PropTypes.any
281
309
  } : void 0;
282
310
  export { GridEditSingleSelectCell };
283
311
  export var renderEditSingleSelectCell = function renderEditSingleSelectCell(params) {
@@ -1,4 +1,6 @@
1
1
  export * from './GridCell';
2
+ export * from './GridEditBooleanCell';
3
+ export * from './GridEditDateCell';
2
4
  export * from './GridEditInputCell';
3
5
  export * from './GridEditSingleSelectCell';
4
6
  export * from './GridActionsCell';
@@ -5,7 +5,6 @@ import PropTypes from 'prop-types';
5
5
  import clsx from 'clsx';
6
6
  import { unstable_composeClasses as composeClasses } from '@mui/material';
7
7
  import { unstable_useId as useId } from '@mui/material/utils';
8
- import { GridEvents } from '../../models/events';
9
8
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
10
9
  import { GridColumnHeaderSortIcon } from './GridColumnHeaderSortIcon';
11
10
  import { GridColumnHeaderTitle } from './GridColumnHeaderTitle';
@@ -91,25 +90,25 @@ function GridColumnHeaderItem(props) {
91
90
  };
92
91
  }, [apiRef, column.field]);
93
92
  var mouseEventsHandlers = {
94
- onClick: publish(GridEvents.columnHeaderClick),
95
- onDoubleClick: publish(GridEvents.columnHeaderDoubleClick),
96
- onMouseOver: publish(GridEvents.columnHeaderOver),
93
+ onClick: publish('columnHeaderClick'),
94
+ onDoubleClick: publish('columnHeaderDoubleClick'),
95
+ onMouseOver: publish('columnHeaderOver'),
97
96
  // TODO remove as it's not used
98
- onMouseOut: publish(GridEvents.columnHeaderOut),
97
+ onMouseOut: publish('columnHeaderOut'),
99
98
  // TODO remove as it's not used
100
- onMouseEnter: publish(GridEvents.columnHeaderEnter),
99
+ onMouseEnter: publish('columnHeaderEnter'),
101
100
  // TODO remove as it's not used
102
- onMouseLeave: publish(GridEvents.columnHeaderLeave),
101
+ onMouseLeave: publish('columnHeaderLeave'),
103
102
  // TODO remove as it's not used
104
- onKeyDown: publish(GridEvents.columnHeaderKeyDown),
105
- onFocus: publish(GridEvents.columnHeaderFocus),
106
- onBlur: publish(GridEvents.columnHeaderBlur)
103
+ onKeyDown: publish('columnHeaderKeyDown'),
104
+ onFocus: publish('columnHeaderFocus'),
105
+ onBlur: publish('columnHeaderBlur')
107
106
  };
108
107
  var draggableEventHandlers = {
109
- onDragStart: publish(GridEvents.columnHeaderDragStart),
110
- onDragEnter: publish(GridEvents.columnHeaderDragEnter),
111
- onDragOver: publish(GridEvents.columnHeaderDragOver),
112
- onDragEnd: publish(GridEvents.columnHeaderDragEnd)
108
+ onDragStart: publish('columnHeaderDragStart'),
109
+ onDragEnter: publish('columnHeaderDragEnter'),
110
+ onDragOver: publish('columnHeaderDragOver'),
111
+ onDragEnd: publish('columnHeaderDragEnd')
113
112
  };
114
113
  var removeLastBorderRight = isLastColumn && hasScrollX && !hasScrollY;
115
114
  var showRightBorder = !isLastColumn ? rootProps.showColumnRightBorder : !removeLastBorderRight && !extendRowFullWidth;
@@ -121,7 +120,7 @@ function GridColumnHeaderItem(props) {
121
120
 
122
121
  var classes = useUtilityClasses(ownerState);
123
122
  var width = column.computedWidth;
124
- var ariaSort;
123
+ var ariaSort = 'none';
125
124
 
126
125
  if (sortDirection != null) {
127
126
  ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';
@@ -204,7 +203,7 @@ function GridColumnHeaderItem(props) {
204
203
  resizable: !rootProps.disableColumnResize && !!column.resizable,
205
204
  resizing: isResizing,
206
205
  height: headerHeight,
207
- onMouseDown: publish(GridEvents.columnSeparatorMouseDown),
206
+ onMouseDown: publish('columnSeparatorMouseDown'),
208
207
  side: separatorSide
209
208
  }), /*#__PURE__*/_jsx(GridColumnHeaderMenu, {
210
209
  columnMenuId: columnMenuId,
@@ -5,7 +5,6 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { unstable_composeClasses as composeClasses } from '@mui/material';
7
7
  import { useForkRef } from '@mui/material/utils';
8
- import { GridEvents } from '../../models/events';
9
8
  import { isNavigationKey, isSpaceKey } from '../../utils/keyboardUtils';
10
9
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
11
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
@@ -54,7 +53,7 @@ var GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCell
54
53
  value: event.target.checked,
55
54
  id: id
56
55
  };
57
- apiRef.current.publishEvent(GridEvents.rowSelectionCheckboxChange, params, event);
56
+ apiRef.current.publishEvent('rowSelectionCheckboxChange', params, event);
58
57
  };
59
58
 
60
59
  React.useLayoutEffect(function () {
@@ -79,7 +78,7 @@ var GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCell
79
78
  }
80
79
 
81
80
  if (isNavigationKey(event.key) && !event.shiftKey) {
82
- apiRef.current.publishEvent(GridEvents.cellNavigationKeyDown, props, event);
81
+ apiRef.current.publishEvent('cellNavigationKeyDown', props, event);
83
82
  }
84
83
  }, [apiRef, props]);
85
84
  var isSelectable = !rootProps.isRowSelectable || rootProps.isRowSelectable(apiRef.current.getRowParams(id));
@@ -5,7 +5,6 @@ var _excluded = ["field", "colDef"];
5
5
  import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import { unstable_composeClasses as composeClasses } from '@mui/material';
8
- import { GridEvents } from '../../models/events';
9
8
  import { useGridSelector } from '../../hooks/utils/useGridSelector';
10
9
  import { gridTabIndexColumnHeaderSelector } from '../../hooks/features/focus/gridFocusStateSelector';
11
10
  import { gridSelectionStateSelector } from '../../hooks/features/selection/gridSelectionSelector';
@@ -83,7 +82,7 @@ var GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderCheckb
83
82
  var params = {
84
83
  value: event.target.checked
85
84
  };
86
- apiRef.current.publishEvent(GridEvents.headerSelectionCheckboxChange, params);
85
+ apiRef.current.publishEvent('headerSelectionCheckboxChange', params);
87
86
  };
88
87
 
89
88
  var tabIndex = tabIndexState !== null && tabIndexState.field === props.field ? 0 : -1;
@@ -97,14 +96,14 @@ var GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderCheckb
97
96
  var handleKeyDown = React.useCallback(function (event) {
98
97
  if (event.key === ' ') {
99
98
  // imperative toggle the checkbox because Space is disable by some preventDefault
100
- apiRef.current.publishEvent(GridEvents.headerSelectionCheckboxChange, {
99
+ apiRef.current.publishEvent('headerSelectionCheckboxChange', {
101
100
  value: !isChecked
102
101
  });
103
102
  } // TODO v6 remove columnHeaderNavigationKeyDown events which are not used internally anymore
104
103
 
105
104
 
106
105
  if (isNavigationKey(event.key) && !event.shiftKey) {
107
- apiRef.current.publishEvent(GridEvents.columnHeaderNavigationKeyDown, props, event);
106
+ apiRef.current.publishEvent('columnHeaderNavigationKeyDown', props, event);
108
107
  }
109
108
  }, [apiRef, props, isChecked]);
110
109
  var handleSelectionChange = React.useCallback(function () {
@@ -113,7 +112,7 @@ var GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderCheckb
113
112
  });
114
113
  }, []);
115
114
  React.useEffect(function () {
116
- return apiRef.current.subscribeEvent(GridEvents.selectionChange, handleSelectionChange);
115
+ return apiRef.current.subscribeEvent('selectionChange', handleSelectionChange);
117
116
  }, [apiRef, handleSelectionChange]);
118
117
  var label = apiRef.current.getLocaleText(isChecked ? 'checkboxSelectionUnselectAllRows' : 'checkboxSelectionSelectAllRows');
119
118
  return /*#__PURE__*/_jsx(rootProps.components.BaseCheckbox, _extends({
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
3
  var _excluded = ["className"];
4
4
  import * as React from 'react';
5
+ import PropTypes from 'prop-types';
5
6
  import clsx from 'clsx';
6
7
  import { unstable_composeClasses as composeClasses } from '@mui/material';
7
8
  import { styled, alpha, lighten, darken } from '@mui/material/styles';
@@ -35,7 +36,7 @@ var GridFooterContainerRoot = styled('div', {
35
36
  borderTop: "1px solid ".concat(borderColor)
36
37
  };
37
38
  });
38
- export var GridFooterContainer = /*#__PURE__*/React.forwardRef(function GridFooterContainer(props, ref) {
39
+ var GridFooterContainer = /*#__PURE__*/React.forwardRef(function GridFooterContainer(props, ref) {
39
40
  var className = props.className,
40
41
  other = _objectWithoutProperties(props, _excluded);
41
42
 
@@ -48,4 +49,12 @@ export var GridFooterContainer = /*#__PURE__*/React.forwardRef(function GridFoot
48
49
  ref: ref,
49
50
  className: clsx(classes.root, className)
50
51
  }, other));
51
- });
52
+ });
53
+ process.env.NODE_ENV !== "production" ? GridFooterContainer.propTypes = {
54
+ // ----------------------------- Warning --------------------------------
55
+ // | These PropTypes are generated from the TypeScript type definitions |
56
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
57
+ // ----------------------------------------------------------------------
58
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
59
+ } : void 0;
60
+ export { GridFooterContainer };
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
3
  var _excluded = ["className", "children"];
4
4
  import * as React from 'react';
5
+ import PropTypes from 'prop-types';
5
6
  import clsx from 'clsx';
6
7
  import { styled } from '@mui/material/styles';
7
8
  import { unstable_composeClasses as composeClasses } from '@mui/material';
@@ -28,10 +29,11 @@ var GridToolbarContainerRoot = styled('div', {
28
29
  return {
29
30
  display: 'flex',
30
31
  alignItems: 'center',
32
+ flexWrap: 'wrap',
31
33
  padding: theme.spacing(0.5, 0.5, 0)
32
34
  };
33
35
  });
34
- export var GridToolbarContainer = /*#__PURE__*/React.forwardRef(function GridToolbarContainer(props, ref) {
36
+ var GridToolbarContainer = /*#__PURE__*/React.forwardRef(function GridToolbarContainer(props, ref) {
35
37
  var className = props.className,
36
38
  children = props.children,
37
39
  other = _objectWithoutProperties(props, _excluded);
@@ -52,4 +54,12 @@ export var GridToolbarContainer = /*#__PURE__*/React.forwardRef(function GridToo
52
54
  }, other, {
53
55
  children: children
54
56
  }));
55
- });
57
+ });
58
+ process.env.NODE_ENV !== "production" ? GridToolbarContainer.propTypes = {
59
+ // ----------------------------- Warning --------------------------------
60
+ // | These PropTypes are generated from the TypeScript type definitions |
61
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
62
+ // ----------------------------------------------------------------------
63
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
64
+ } : void 0;
65
+ export { GridToolbarContainer };
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
3
  var _excluded = ["className"];
4
4
  import * as React from 'react';
5
+ import PropTypes from 'prop-types';
5
6
  import clsx from 'clsx';
6
7
  import { styled } from '@mui/material/styles';
7
8
  import { unstable_composeClasses as composeClasses } from '@mui/material';
@@ -30,7 +31,8 @@ var GridPanelContentRoot = styled('div', {
30
31
  flex: '1 1',
31
32
  maxHeight: 400
32
33
  });
33
- export function GridPanelContent(props) {
34
+
35
+ function GridPanelContent(props) {
34
36
  var className = props.className,
35
37
  other = _objectWithoutProperties(props, _excluded);
36
38
 
@@ -42,4 +44,13 @@ export function GridPanelContent(props) {
42
44
  return /*#__PURE__*/_jsx(GridPanelContentRoot, _extends({
43
45
  className: clsx(className, classes.root)
44
46
  }, other));
45
- }
47
+ }
48
+
49
+ process.env.NODE_ENV !== "production" ? GridPanelContent.propTypes = {
50
+ // ----------------------------- Warning --------------------------------
51
+ // | These PropTypes are generated from the TypeScript type definitions |
52
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
53
+ // ----------------------------------------------------------------------
54
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
55
+ } : void 0;
56
+ export { GridPanelContent };
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
3
  var _excluded = ["className"];
4
4
  import * as React from 'react';
5
+ import PropTypes from 'prop-types';
5
6
  import clsx from 'clsx';
6
7
  import { styled } from '@mui/material/styles';
7
8
  import { unstable_composeClasses as composeClasses } from '@mui/material';
@@ -31,7 +32,8 @@ var GridPanelFooterRoot = styled('div', {
31
32
  justifyContent: 'space-between'
32
33
  };
33
34
  });
34
- export function GridPanelFooter(props) {
35
+
36
+ function GridPanelFooter(props) {
35
37
  var className = props.className,
36
38
  other = _objectWithoutProperties(props, _excluded);
37
39
 
@@ -43,4 +45,13 @@ export function GridPanelFooter(props) {
43
45
  return /*#__PURE__*/_jsx(GridPanelFooterRoot, _extends({
44
46
  className: clsx(className, classes.root)
45
47
  }, other));
46
- }
48
+ }
49
+
50
+ process.env.NODE_ENV !== "production" ? GridPanelFooter.propTypes = {
51
+ // ----------------------------- Warning --------------------------------
52
+ // | These PropTypes are generated from the TypeScript type definitions |
53
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
54
+ // ----------------------------------------------------------------------
55
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
56
+ } : void 0;
57
+ export { GridPanelFooter };
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
3
  var _excluded = ["className"];
4
4
  import * as React from 'react';
5
+ import PropTypes from 'prop-types';
5
6
  import clsx from 'clsx';
6
7
  import { styled } from '@mui/material/styles';
7
8
  import { unstable_composeClasses as composeClasses } from '@mui/material';
@@ -29,7 +30,8 @@ var GridPanelHeaderRoot = styled('div', {
29
30
  padding: theme.spacing(1)
30
31
  };
31
32
  });
32
- export function GridPanelHeader(props) {
33
+
34
+ function GridPanelHeader(props) {
33
35
  var className = props.className,
34
36
  other = _objectWithoutProperties(props, _excluded);
35
37
 
@@ -41,4 +43,13 @@ export function GridPanelHeader(props) {
41
43
  return /*#__PURE__*/_jsx(GridPanelHeaderRoot, _extends({
42
44
  className: clsx(className, classes.root)
43
45
  }, other));
44
- }
46
+ }
47
+
48
+ process.env.NODE_ENV !== "production" ? GridPanelHeader.propTypes = {
49
+ // ----------------------------- Warning --------------------------------
50
+ // | These PropTypes are generated from the TypeScript type definitions |
51
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
52
+ // ----------------------------------------------------------------------
53
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
54
+ } : void 0;
55
+ export { GridPanelHeader };
@@ -1,25 +1,34 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["className", "csvOptions", "printOptions"];
3
+ var _excluded = ["className", "csvOptions", "printOptions", "excelOptions", "showQuickFilter", "quickFilterProps"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
+ import Box from '@mui/material/Box';
6
7
  import { GridToolbarContainer } from '../containers/GridToolbarContainer';
7
8
  import { GridToolbarColumnsButton } from './GridToolbarColumnsButton';
8
9
  import { GridToolbarDensitySelector } from './GridToolbarDensitySelector';
9
10
  import { GridToolbarFilterButton } from './GridToolbarFilterButton';
10
11
  import { GridToolbarExport } from './GridToolbarExport';
11
12
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
13
+ import { GridToolbarQuickFilter } from './GridToolbarQuickFilter';
12
14
  import { jsx as _jsx } from "react/jsx-runtime";
13
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
14
16
  var GridToolbar = /*#__PURE__*/React.forwardRef(function GridToolbar(props, ref) {
17
+ // TODO v6: think about where export option should be passed.
18
+ // from componentProps={{ toolbarExport: { ...exportOption} }} seems to be more appropriate
15
19
  var className = props.className,
16
20
  csvOptions = props.csvOptions,
17
21
  printOptions = props.printOptions,
22
+ excelOptions = props.excelOptions,
23
+ _props$showQuickFilte = props.showQuickFilter,
24
+ showQuickFilter = _props$showQuickFilte === void 0 ? false : _props$showQuickFilte,
25
+ _props$quickFilterPro = props.quickFilterProps,
26
+ quickFilterProps = _props$quickFilterPro === void 0 ? {} : _props$quickFilterPro,
18
27
  other = _objectWithoutProperties(props, _excluded);
19
28
 
20
29
  var rootProps = useGridRootProps();
21
30
 
22
- if (rootProps.disableColumnFilter && rootProps.disableColumnSelector && rootProps.disableDensitySelector) {
31
+ if (rootProps.disableColumnFilter && rootProps.disableColumnSelector && rootProps.disableDensitySelector && !showQuickFilter) {
23
32
  return null;
24
33
  }
25
34
 
@@ -28,8 +37,14 @@ var GridToolbar = /*#__PURE__*/React.forwardRef(function GridToolbar(props, ref)
28
37
  }, other, {
29
38
  children: [/*#__PURE__*/_jsx(GridToolbarColumnsButton, {}), /*#__PURE__*/_jsx(GridToolbarFilterButton, {}), /*#__PURE__*/_jsx(GridToolbarDensitySelector, {}), /*#__PURE__*/_jsx(GridToolbarExport, {
30
39
  csvOptions: csvOptions,
31
- printOptions: printOptions
32
- })]
40
+ printOptions: printOptions // TODO: remove the reference to excelOptions in community package
41
+ ,
42
+ excelOptions: excelOptions
43
+ }), /*#__PURE__*/_jsx(Box, {
44
+ sx: {
45
+ flex: 1
46
+ }
47
+ }), showQuickFilter && /*#__PURE__*/_jsx(GridToolbarQuickFilter, _extends({}, quickFilterProps))]
33
48
  }));
34
49
  });
35
50
  process.env.NODE_ENV !== "production" ? GridToolbar.propTypes = {
@@ -37,7 +52,17 @@ process.env.NODE_ENV !== "production" ? GridToolbar.propTypes = {
37
52
  // | These PropTypes are generated from the TypeScript type definitions |
38
53
  // | To update them edit the TypeScript types and run "yarn proptypes" |
39
54
  // ----------------------------------------------------------------------
40
- csvOptions: PropTypes.object,
41
- printOptions: PropTypes.object
55
+
56
+ /**
57
+ * Props passed to the quick filter component.
58
+ */
59
+ quickFilterProps: PropTypes.object,
60
+
61
+ /**
62
+ * Show the quick filter component.
63
+ * @default false
64
+ */
65
+ showQuickFilter: PropTypes.bool,
66
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
42
67
  } : void 0;
43
68
  export { GridToolbar };
@@ -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 = {