@mui/x-data-grid 6.4.0 → 6.6.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 (403) hide show
  1. package/CHANGELOG.md +134 -2
  2. package/DataGrid/DataGrid.js +10 -3
  3. package/DataGrid/useDataGridProps.js +5 -12
  4. package/README.md +2 -2
  5. package/colDef/gridNumericOperators.js +0 -6
  6. package/components/GridColumnHeaders.js +4 -9
  7. package/components/GridHeader.d.ts +2 -2
  8. package/components/base/GridBody.d.ts +1 -1
  9. package/components/base/GridFooterPlaceholder.d.ts +2 -2
  10. package/components/base/GridOverlays.d.ts +2 -2
  11. package/components/cell/GridActionsCell.d.ts +3 -3
  12. package/components/cell/GridActionsCell.js +3 -3
  13. package/components/cell/GridBooleanCell.d.ts +1 -1
  14. package/components/cell/GridEditBooleanCell.d.ts +2 -2
  15. package/components/cell/GridEditDateCell.d.ts +2 -2
  16. package/components/cell/GridEditInputCell.d.ts +1 -1
  17. package/components/cell/GridEditInputCell.js +4 -1
  18. package/components/cell/GridEditSingleSelectCell.d.ts +3 -3
  19. package/components/cell/GridEditSingleSelectCell.js +5 -5
  20. package/components/cell/GridSkeletonCell.d.ts +1 -1
  21. package/components/columnHeaders/ColumnHeaderMenuIcon.d.ts +1 -1
  22. package/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
  23. package/components/columnHeaders/GridColumnGroupHeader.d.ts +2 -2
  24. package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +1 -1
  25. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +13 -4
  26. package/components/columnHeaders/GridColumnHeaderItem.d.ts +2 -2
  27. package/components/columnHeaders/GridColumnHeaderSeparator.d.ts +1 -1
  28. package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -1
  29. package/components/columnHeaders/GridColumnHeaderTitle.d.ts +1 -1
  30. package/components/containers/GridRoot.js +1 -3
  31. package/components/index.d.ts +0 -1
  32. package/components/index.js +1 -2
  33. package/components/menu/GridMenu.d.ts +1 -1
  34. package/components/menu/columnMenu/GridColumnHeaderMenu.d.ts +1 -1
  35. package/components/menu/columnMenu/menuItems/GridColumnMenuColumnsItem.d.ts +2 -2
  36. package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.d.ts +2 -2
  37. package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.d.ts +2 -2
  38. package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.d.ts +2 -2
  39. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.d.ts +2 -2
  40. package/components/panel/GridColumnsPanel.d.ts +2 -2
  41. package/components/panel/GridPanelContent.d.ts +1 -1
  42. package/components/panel/GridPanelFooter.d.ts +1 -1
  43. package/components/panel/GridPanelHeader.d.ts +1 -1
  44. package/components/panel/GridPreferencesPanel.js +3 -1
  45. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +15 -2
  46. package/components/panel/filterPanel/GridFilterInputBoolean.js +80 -36
  47. package/components/panel/filterPanel/GridFilterInputDate.d.ts +9 -2
  48. package/components/panel/filterPanel/GridFilterInputDate.js +27 -6
  49. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.d.ts +2 -2
  50. package/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +2 -2
  51. package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +9 -2
  52. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +56 -32
  53. package/components/panel/filterPanel/GridFilterInputValue.d.ts +11 -4
  54. package/components/panel/filterPanel/GridFilterInputValue.js +29 -6
  55. package/components/panel/filterPanel/GridFilterPanel.d.ts +2 -1
  56. package/components/panel/filterPanel/GridFilterPanel.js +1 -1
  57. package/components/panel/filterPanel/index.d.ts +3 -1
  58. package/components/panel/filterPanel/index.js +2 -1
  59. package/components/toolbar/GridToolbarColumnsButton.js +11 -6
  60. package/components/toolbar/GridToolbarDensitySelector.js +2 -2
  61. package/components/toolbar/GridToolbarExport.d.ts +2 -2
  62. package/components/toolbar/GridToolbarExportContainer.js +7 -7
  63. package/components/toolbar/GridToolbarFilterButton.js +11 -4
  64. package/components/toolbar/GridToolbarQuickFilter.d.ts +2 -2
  65. package/constants/localeTextConstants.js +26 -0
  66. package/context/GridContextProvider.d.ts +1 -1
  67. package/hooks/core/strategyProcessing/gridStrategyProcessingApi.d.ts +10 -2
  68. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
  69. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +10 -3
  70. package/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
  71. package/hooks/features/dimensions/useGridDimensions.js +2 -2
  72. package/hooks/features/editing/useGridEditing.js +0 -3
  73. package/hooks/features/filter/gridFilterSelector.d.ts +2 -2
  74. package/hooks/features/filter/gridFilterSelector.js +2 -2
  75. package/hooks/features/filter/gridFilterState.d.ts +6 -6
  76. package/hooks/features/filter/gridFilterState.js +6 -0
  77. package/hooks/features/filter/useGridFilter.js +29 -9
  78. package/hooks/features/focus/gridFocusState.d.ts +2 -0
  79. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -0
  80. package/hooks/features/focus/gridFocusStateSelector.js +6 -0
  81. package/hooks/features/focus/useGridFocus.js +55 -9
  82. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +4 -0
  83. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +5 -0
  84. package/hooks/features/headerFiltering/index.d.ts +1 -0
  85. package/hooks/features/headerFiltering/index.js +1 -0
  86. package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +6 -0
  87. package/hooks/features/headerFiltering/useGridHeaderFiltering.js +91 -0
  88. package/hooks/features/index.d.ts +1 -0
  89. package/hooks/features/index.js +2 -1
  90. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
  91. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +113 -4
  92. package/hooks/features/preferencesPanel/gridPreferencePanelState.d.ts +2 -0
  93. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -2
  94. package/hooks/features/rows/useGridRows.js +16 -1
  95. package/hooks/features/rows/useGridRowsMeta.js +11 -12
  96. package/index.js +1 -1
  97. package/internals/index.d.ts +6 -1
  98. package/internals/index.js +4 -0
  99. package/internals/utils/index.d.ts +1 -0
  100. package/internals/utils/index.js +2 -1
  101. package/internals/utils/useProps.d.ts +8 -0
  102. package/internals/utils/useProps.js +33 -0
  103. package/legacy/DataGrid/DataGrid.js +10 -3
  104. package/legacy/DataGrid/useDataGridProps.js +8 -8
  105. package/legacy/colDef/gridNumericOperators.js +0 -6
  106. package/legacy/components/GridColumnHeaders.js +4 -9
  107. package/legacy/components/cell/GridActionsCell.js +3 -3
  108. package/legacy/components/cell/GridEditInputCell.js +4 -1
  109. package/legacy/components/cell/GridEditSingleSelectCell.js +5 -5
  110. package/legacy/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
  111. package/legacy/components/columnHeaders/GridColumnHeaderFilterIconButton.js +13 -4
  112. package/legacy/components/containers/GridRoot.js +1 -3
  113. package/legacy/components/index.js +1 -2
  114. package/legacy/components/panel/GridPreferencesPanel.js +3 -1
  115. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +79 -35
  116. package/legacy/components/panel/filterPanel/GridFilterInputDate.js +26 -5
  117. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -31
  118. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +28 -5
  119. package/legacy/components/panel/filterPanel/GridFilterPanel.js +1 -1
  120. package/legacy/components/panel/filterPanel/index.js +2 -1
  121. package/legacy/components/toolbar/GridToolbarColumnsButton.js +11 -5
  122. package/legacy/components/toolbar/GridToolbarDensitySelector.js +2 -2
  123. package/legacy/components/toolbar/GridToolbarExportContainer.js +7 -7
  124. package/legacy/components/toolbar/GridToolbarFilterButton.js +11 -4
  125. package/legacy/constants/localeTextConstants.js +26 -0
  126. package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
  127. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -5
  128. package/legacy/hooks/features/dimensions/useGridDimensions.js +2 -2
  129. package/legacy/hooks/features/editing/useGridEditing.js +0 -3
  130. package/legacy/hooks/features/filter/gridFilterSelector.js +4 -4
  131. package/legacy/hooks/features/filter/gridFilterState.js +6 -0
  132. package/legacy/hooks/features/filter/useGridFilter.js +29 -9
  133. package/legacy/hooks/features/focus/gridFocusStateSelector.js +10 -0
  134. package/legacy/hooks/features/focus/useGridFocus.js +58 -9
  135. package/legacy/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +11 -0
  136. package/legacy/hooks/features/headerFiltering/index.js +1 -0
  137. package/legacy/hooks/features/headerFiltering/useGridHeaderFiltering.js +93 -0
  138. package/legacy/hooks/features/index.js +2 -1
  139. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +113 -4
  140. package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -2
  141. package/legacy/hooks/features/rows/useGridRows.js +16 -1
  142. package/legacy/hooks/features/rows/useGridRowsMeta.js +12 -20
  143. package/legacy/index.js +1 -1
  144. package/legacy/internals/index.js +4 -0
  145. package/legacy/internals/utils/index.js +2 -1
  146. package/legacy/internals/utils/useProps.js +33 -0
  147. package/legacy/locales/arSD.js +28 -0
  148. package/legacy/locales/beBY.js +28 -0
  149. package/legacy/locales/bgBG.js +28 -0
  150. package/legacy/locales/csCZ.js +36 -8
  151. package/legacy/locales/daDK.js +28 -0
  152. package/legacy/locales/deDE.js +28 -0
  153. package/legacy/locales/elGR.js +27 -0
  154. package/legacy/locales/esES.js +28 -0
  155. package/legacy/locales/faIR.js +28 -0
  156. package/legacy/locales/fiFI.js +28 -0
  157. package/legacy/locales/frFR.js +26 -0
  158. package/legacy/locales/heIL.js +30 -2
  159. package/legacy/locales/huHU.js +28 -0
  160. package/legacy/locales/itIT.js +28 -0
  161. package/legacy/locales/jaJP.js +28 -0
  162. package/legacy/locales/koKR.js +28 -0
  163. package/legacy/locales/nbNO.js +28 -0
  164. package/legacy/locales/nlNL.js +26 -0
  165. package/legacy/locales/plPL.js +28 -0
  166. package/legacy/locales/ptBR.js +28 -0
  167. package/legacy/locales/roRO.js +28 -0
  168. package/legacy/locales/ruRU.js +28 -0
  169. package/legacy/locales/skSK.js +28 -0
  170. package/legacy/locales/svSE.js +28 -0
  171. package/legacy/locales/trTR.js +28 -0
  172. package/legacy/locales/ukUA.js +28 -0
  173. package/legacy/locales/urPK.js +28 -0
  174. package/legacy/locales/viVN.js +27 -0
  175. package/legacy/locales/zhCN.js +28 -0
  176. package/legacy/locales/zhTW.js +28 -0
  177. package/legacy/material/index.js +2 -0
  178. package/legacy/models/api/gridHeaderFilteringApi.js +1 -0
  179. package/legacy/models/gridFilterItem.js +1 -1
  180. package/legacy/models/gridHeaderFilteringModel.js +1 -0
  181. package/legacy/models/index.js +0 -1
  182. package/locales/arSD.js +28 -0
  183. package/locales/beBY.js +28 -0
  184. package/locales/bgBG.js +28 -0
  185. package/locales/csCZ.js +36 -8
  186. package/locales/daDK.js +28 -0
  187. package/locales/deDE.js +28 -0
  188. package/locales/elGR.js +27 -0
  189. package/locales/esES.js +28 -0
  190. package/locales/faIR.js +28 -0
  191. package/locales/fiFI.js +28 -0
  192. package/locales/frFR.js +26 -0
  193. package/locales/heIL.js +30 -2
  194. package/locales/huHU.js +28 -0
  195. package/locales/itIT.js +28 -0
  196. package/locales/jaJP.js +28 -0
  197. package/locales/koKR.js +28 -0
  198. package/locales/nbNO.js +28 -0
  199. package/locales/nlNL.js +26 -0
  200. package/locales/plPL.js +28 -0
  201. package/locales/ptBR.js +28 -0
  202. package/locales/roRO.js +28 -0
  203. package/locales/ruRU.js +28 -0
  204. package/locales/skSK.js +28 -0
  205. package/locales/svSE.js +28 -0
  206. package/locales/trTR.js +28 -0
  207. package/locales/ukUA.js +28 -0
  208. package/locales/urPK.js +28 -0
  209. package/locales/viVN.js +27 -0
  210. package/locales/zhCN.js +28 -0
  211. package/locales/zhTW.js +28 -0
  212. package/material/components/MUISelectOption.d.ts +2 -2
  213. package/material/index.d.ts +3 -66
  214. package/material/index.js +2 -0
  215. package/models/api/gridApiCommon.d.ts +3 -2
  216. package/models/api/gridCoreApi.d.ts +4 -0
  217. package/models/api/gridFilterApi.d.ts +3 -1
  218. package/models/api/gridFocusApi.d.ts +6 -0
  219. package/models/api/gridHeaderFilteringApi.d.ts +30 -0
  220. package/models/api/gridHeaderFilteringApi.js +1 -0
  221. package/models/api/gridLocaleTextApi.d.ts +25 -0
  222. package/models/api/gridPreferencesPanelApi.d.ts +3 -1
  223. package/models/events/gridEventLookup.d.ts +27 -1
  224. package/models/gridFilterItem.d.ts +1 -1
  225. package/models/gridFilterItem.js +1 -1
  226. package/models/gridFilterOperator.d.ts +5 -1
  227. package/models/gridHeaderFilteringModel.d.ts +5 -0
  228. package/models/gridHeaderFilteringModel.js +1 -0
  229. package/models/gridSlotsComponent.d.ts +16 -4
  230. package/models/gridStateCommunity.d.ts +4 -0
  231. package/models/index.d.ts +1 -1
  232. package/models/index.js +0 -1
  233. package/models/props/DataGridProps.d.ts +5 -0
  234. package/modern/DataGrid/DataGrid.js +10 -3
  235. package/modern/DataGrid/useDataGridProps.js +5 -12
  236. package/modern/colDef/gridNumericOperators.js +0 -6
  237. package/modern/components/GridColumnHeaders.js +4 -9
  238. package/modern/components/cell/GridActionsCell.js +3 -3
  239. package/modern/components/cell/GridEditInputCell.js +4 -1
  240. package/modern/components/cell/GridEditSingleSelectCell.js +5 -5
  241. package/modern/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
  242. package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +13 -4
  243. package/modern/components/containers/GridRoot.js +1 -3
  244. package/modern/components/index.js +1 -2
  245. package/modern/components/panel/GridPreferencesPanel.js +3 -1
  246. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +80 -36
  247. package/modern/components/panel/filterPanel/GridFilterInputDate.js +27 -6
  248. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +56 -32
  249. package/modern/components/panel/filterPanel/GridFilterInputValue.js +29 -6
  250. package/modern/components/panel/filterPanel/GridFilterPanel.js +1 -1
  251. package/modern/components/panel/filterPanel/index.js +2 -1
  252. package/modern/components/toolbar/GridToolbarColumnsButton.js +11 -6
  253. package/modern/components/toolbar/GridToolbarDensitySelector.js +2 -2
  254. package/modern/components/toolbar/GridToolbarExportContainer.js +7 -7
  255. package/modern/components/toolbar/GridToolbarFilterButton.js +11 -4
  256. package/modern/constants/localeTextConstants.js +26 -0
  257. package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
  258. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
  259. package/modern/hooks/features/dimensions/useGridDimensions.js +2 -2
  260. package/modern/hooks/features/editing/useGridEditing.js +0 -3
  261. package/modern/hooks/features/filter/gridFilterSelector.js +2 -2
  262. package/modern/hooks/features/filter/gridFilterState.js +6 -0
  263. package/modern/hooks/features/filter/useGridFilter.js +29 -9
  264. package/modern/hooks/features/focus/gridFocusStateSelector.js +6 -0
  265. package/modern/hooks/features/focus/useGridFocus.js +55 -9
  266. package/modern/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +5 -0
  267. package/modern/hooks/features/headerFiltering/index.js +1 -0
  268. package/modern/hooks/features/headerFiltering/useGridHeaderFiltering.js +90 -0
  269. package/modern/hooks/features/index.js +2 -1
  270. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +113 -4
  271. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -2
  272. package/modern/hooks/features/rows/useGridRows.js +16 -1
  273. package/modern/hooks/features/rows/useGridRowsMeta.js +11 -12
  274. package/modern/index.js +1 -1
  275. package/modern/internals/index.js +4 -0
  276. package/modern/internals/utils/index.js +2 -1
  277. package/modern/internals/utils/useProps.js +32 -0
  278. package/modern/locales/arSD.js +28 -0
  279. package/modern/locales/beBY.js +28 -0
  280. package/modern/locales/bgBG.js +28 -0
  281. package/modern/locales/csCZ.js +36 -8
  282. package/modern/locales/daDK.js +28 -0
  283. package/modern/locales/deDE.js +28 -0
  284. package/modern/locales/elGR.js +27 -0
  285. package/modern/locales/esES.js +28 -0
  286. package/modern/locales/faIR.js +28 -0
  287. package/modern/locales/fiFI.js +28 -0
  288. package/modern/locales/frFR.js +26 -0
  289. package/modern/locales/heIL.js +30 -2
  290. package/modern/locales/huHU.js +28 -0
  291. package/modern/locales/itIT.js +28 -0
  292. package/modern/locales/jaJP.js +28 -0
  293. package/modern/locales/koKR.js +28 -0
  294. package/modern/locales/nbNO.js +28 -0
  295. package/modern/locales/nlNL.js +26 -0
  296. package/modern/locales/plPL.js +28 -0
  297. package/modern/locales/ptBR.js +28 -0
  298. package/modern/locales/roRO.js +28 -0
  299. package/modern/locales/ruRU.js +28 -0
  300. package/modern/locales/skSK.js +28 -0
  301. package/modern/locales/svSE.js +28 -0
  302. package/modern/locales/trTR.js +28 -0
  303. package/modern/locales/ukUA.js +28 -0
  304. package/modern/locales/urPK.js +28 -0
  305. package/modern/locales/viVN.js +27 -0
  306. package/modern/locales/zhCN.js +28 -0
  307. package/modern/locales/zhTW.js +28 -0
  308. package/modern/material/index.js +2 -0
  309. package/modern/models/api/gridHeaderFilteringApi.js +1 -0
  310. package/modern/models/gridFilterItem.js +1 -1
  311. package/modern/models/gridHeaderFilteringModel.js +1 -0
  312. package/modern/models/index.js +0 -1
  313. package/node/DataGrid/DataGrid.js +10 -3
  314. package/node/DataGrid/useDataGridProps.js +4 -11
  315. package/node/colDef/gridNumericOperators.js +0 -6
  316. package/node/components/GridColumnHeaders.js +3 -8
  317. package/node/components/cell/GridActionsCell.js +3 -3
  318. package/node/components/cell/GridEditInputCell.js +4 -1
  319. package/node/components/cell/GridEditSingleSelectCell.js +5 -5
  320. package/node/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
  321. package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +12 -3
  322. package/node/components/containers/GridRoot.js +1 -3
  323. package/node/components/index.js +0 -11
  324. package/node/components/panel/GridPreferencesPanel.js +3 -1
  325. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +78 -35
  326. package/node/components/panel/filterPanel/GridFilterInputDate.js +27 -6
  327. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +56 -32
  328. package/node/components/panel/filterPanel/GridFilterInputValue.js +29 -6
  329. package/node/components/panel/filterPanel/GridFilterPanel.js +2 -1
  330. package/node/components/panel/filterPanel/index.js +26 -8
  331. package/node/components/toolbar/GridToolbarColumnsButton.js +11 -6
  332. package/node/components/toolbar/GridToolbarDensitySelector.js +2 -2
  333. package/node/components/toolbar/GridToolbarExportContainer.js +7 -7
  334. package/node/components/toolbar/GridToolbarFilterButton.js +10 -3
  335. package/node/constants/localeTextConstants.js +26 -0
  336. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
  337. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
  338. package/node/hooks/features/dimensions/useGridDimensions.js +2 -2
  339. package/node/hooks/features/editing/useGridEditing.js +0 -3
  340. package/node/hooks/features/filter/gridFilterSelector.js +2 -2
  341. package/node/hooks/features/filter/gridFilterState.js +6 -0
  342. package/node/hooks/features/filter/useGridFilter.js +30 -10
  343. package/node/hooks/features/focus/gridFocusStateSelector.js +9 -1
  344. package/node/hooks/features/focus/useGridFocus.js +55 -9
  345. package/node/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +15 -0
  346. package/node/hooks/features/headerFiltering/index.js +16 -0
  347. package/node/hooks/features/headerFiltering/useGridHeaderFiltering.js +101 -0
  348. package/node/hooks/features/index.js +11 -0
  349. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +113 -4
  350. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -2
  351. package/node/hooks/features/rows/useGridRows.js +16 -1
  352. package/node/hooks/features/rows/useGridRowsMeta.js +11 -12
  353. package/node/index.js +1 -1
  354. package/node/internals/index.js +46 -0
  355. package/node/internals/utils/index.js +11 -0
  356. package/node/internals/utils/useProps.js +41 -0
  357. package/node/locales/arSD.js +28 -0
  358. package/node/locales/beBY.js +28 -0
  359. package/node/locales/bgBG.js +28 -0
  360. package/node/locales/csCZ.js +36 -8
  361. package/node/locales/daDK.js +28 -0
  362. package/node/locales/deDE.js +28 -0
  363. package/node/locales/elGR.js +27 -0
  364. package/node/locales/esES.js +28 -0
  365. package/node/locales/faIR.js +28 -0
  366. package/node/locales/fiFI.js +28 -0
  367. package/node/locales/frFR.js +26 -0
  368. package/node/locales/heIL.js +30 -2
  369. package/node/locales/huHU.js +28 -0
  370. package/node/locales/itIT.js +28 -0
  371. package/node/locales/jaJP.js +28 -0
  372. package/node/locales/koKR.js +28 -0
  373. package/node/locales/nbNO.js +28 -0
  374. package/node/locales/nlNL.js +26 -0
  375. package/node/locales/plPL.js +28 -0
  376. package/node/locales/ptBR.js +28 -0
  377. package/node/locales/roRO.js +28 -0
  378. package/node/locales/ruRU.js +28 -0
  379. package/node/locales/skSK.js +28 -0
  380. package/node/locales/svSE.js +28 -0
  381. package/node/locales/trTR.js +28 -0
  382. package/node/locales/ukUA.js +28 -0
  383. package/node/locales/urPK.js +28 -0
  384. package/node/locales/viVN.js +27 -0
  385. package/node/locales/zhCN.js +28 -0
  386. package/node/locales/zhTW.js +28 -0
  387. package/node/material/index.js +2 -0
  388. package/node/models/api/gridHeaderFilteringApi.js +5 -0
  389. package/node/models/gridFilterItem.js +1 -1
  390. package/node/models/gridHeaderFilteringModel.js +5 -0
  391. package/node/models/index.js +0 -11
  392. package/package.json +4 -4
  393. package/components/GridScrollArea.d.ts +0 -10
  394. package/components/GridScrollArea.js +0 -117
  395. package/legacy/components/GridScrollArea.js +0 -119
  396. package/legacy/lib/createDetectElementResize/index.js +0 -145
  397. package/lib/createDetectElementResize/index.d.ts +0 -18
  398. package/lib/createDetectElementResize/index.js +0 -145
  399. package/lib/createDetectElementResize/types.d.ts +0 -9
  400. package/modern/components/GridScrollArea.js +0 -117
  401. package/modern/lib/createDetectElementResize/index.js +0 -145
  402. package/node/components/GridScrollArea.js +0 -126
  403. package/node/lib/createDetectElementResize/index.js +0 -151
@@ -64,9 +64,7 @@ const GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
64
64
  role: "grid",
65
65
  "aria-colcount": visibleColumns.length,
66
66
  "aria-rowcount": headerGroupingMaxDepth + 1 + pinnedRowsCount + totalRowCount,
67
- "aria-multiselectable": !rootProps.disableMultipleRowSelection,
68
- "aria-label": rootProps['aria-label'],
69
- "aria-labelledby": rootProps['aria-labelledby']
67
+ "aria-multiselectable": !rootProps.disableMultipleRowSelection
70
68
  }, other, {
71
69
  children: children
72
70
  }));
@@ -16,4 +16,3 @@ export * from './GridPagination';
16
16
  export * from './GridRowCount';
17
17
  export * from './GridRow';
18
18
  export * from './GridSelectedRowCount';
19
- export * from './GridScrollArea';
@@ -15,5 +15,4 @@ export * from './GridNoRowsOverlay';
15
15
  export * from './GridPagination';
16
16
  export * from './GridRowCount';
17
17
  export * from './GridRow';
18
- export * from './GridSelectedRowCount';
19
- export * from './GridScrollArea';
18
+ export * from './GridSelectedRowCount';
@@ -11,7 +11,7 @@ export interface GridMenuProps extends Omit<PopperProps, 'onKeyDown' | 'children
11
11
  onExited?: GrowProps['onExited'];
12
12
  children: React.ReactNode;
13
13
  }
14
- declare function GridMenu(props: GridMenuProps): JSX.Element;
14
+ declare function GridMenu(props: GridMenuProps): React.JSX.Element;
15
15
  declare namespace GridMenu {
16
16
  var propTypes: any;
17
17
  }
@@ -10,7 +10,7 @@ export interface GridColumnHeaderMenuProps {
10
10
  target: HTMLElement | null;
11
11
  onExited?: GridMenuProps['onExited'];
12
12
  }
13
- declare function GridColumnHeaderMenu({ columnMenuId, columnMenuButtonId, ContentComponent, contentComponentProps, field, open, target, onExited, }: GridColumnHeaderMenuProps): JSX.Element | null;
13
+ declare function GridColumnHeaderMenu({ columnMenuId, columnMenuButtonId, ContentComponent, contentComponentProps, field, open, target, onExited, }: GridColumnHeaderMenuProps): React.JSX.Element | null;
14
14
  declare namespace GridColumnHeaderMenu {
15
15
  var propTypes: any;
16
16
  }
@@ -1,6 +1,6 @@
1
- /// <reference types="react" />
1
+ import * as React from 'react';
2
2
  import { GridColumnMenuItemProps } from '../GridColumnMenuItemProps';
3
- declare function GridColumnMenuColumnsItem(props: GridColumnMenuItemProps): JSX.Element;
3
+ declare function GridColumnMenuColumnsItem(props: GridColumnMenuItemProps): React.JSX.Element;
4
4
  declare namespace GridColumnMenuColumnsItem {
5
5
  var propTypes: any;
6
6
  }
@@ -1,6 +1,6 @@
1
- /// <reference types="react" />
1
+ import * as React from 'react';
2
2
  import { GridColumnMenuItemProps } from '../GridColumnMenuItemProps';
3
- declare function GridColumnMenuFilterItem(props: GridColumnMenuItemProps): JSX.Element | null;
3
+ declare function GridColumnMenuFilterItem(props: GridColumnMenuItemProps): React.JSX.Element | null;
4
4
  declare namespace GridColumnMenuFilterItem {
5
5
  var propTypes: any;
6
6
  }
@@ -1,6 +1,6 @@
1
- /// <reference types="react" />
1
+ import * as React from 'react';
2
2
  import { GridColumnMenuItemProps } from '../GridColumnMenuItemProps';
3
- declare function GridColumnMenuHideItem(props: GridColumnMenuItemProps): JSX.Element | null;
3
+ declare function GridColumnMenuHideItem(props: GridColumnMenuItemProps): React.JSX.Element | null;
4
4
  declare namespace GridColumnMenuHideItem {
5
5
  var propTypes: any;
6
6
  }
@@ -1,6 +1,6 @@
1
- /// <reference types="react" />
1
+ import * as React from 'react';
2
2
  import { GridColumnMenuItemProps } from '../GridColumnMenuItemProps';
3
- declare function GridColumnMenuManageItem(props: GridColumnMenuItemProps): JSX.Element | null;
3
+ declare function GridColumnMenuManageItem(props: GridColumnMenuItemProps): React.JSX.Element | null;
4
4
  declare namespace GridColumnMenuManageItem {
5
5
  var propTypes: any;
6
6
  }
@@ -1,6 +1,6 @@
1
- /// <reference types="react" />
1
+ import * as React from 'react';
2
2
  import { GridColumnMenuItemProps } from '../GridColumnMenuItemProps';
3
- declare function GridColumnMenuSortItem(props: GridColumnMenuItemProps): JSX.Element | null;
3
+ declare function GridColumnMenuSortItem(props: GridColumnMenuItemProps): React.JSX.Element | null;
4
4
  declare namespace GridColumnMenuSortItem {
5
5
  var propTypes: any;
6
6
  }
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import * as React from 'react';
2
2
  import { GridPanelWrapperProps } from './GridPanelWrapper';
3
3
  import type { GridColDef } from '../../models/colDef/gridColDef';
4
4
  export interface GridColumnsPanelProps extends GridPanelWrapperProps {
@@ -16,7 +16,7 @@ export interface GridColumnsPanelProps extends GridPanelWrapperProps {
16
16
  */
17
17
  getTogglableColumns?: (columns: GridColDef[]) => GridColDef['field'][];
18
18
  }
19
- declare function GridColumnsPanel(props: GridColumnsPanelProps): JSX.Element;
19
+ declare function GridColumnsPanel(props: GridColumnsPanelProps): React.JSX.Element;
20
20
  declare namespace GridColumnsPanel {
21
21
  var propTypes: any;
22
22
  }
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { SxProps, Theme } from '@mui/system';
3
3
  declare function GridPanelContent(props: React.HTMLAttributes<HTMLDivElement> & {
4
4
  sx?: SxProps<Theme>;
5
- }): JSX.Element;
5
+ }): React.JSX.Element;
6
6
  declare namespace GridPanelContent {
7
7
  var propTypes: any;
8
8
  }
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { SxProps, Theme } from '@mui/system';
3
3
  declare function GridPanelFooter(props: React.HTMLAttributes<HTMLDivElement> & {
4
4
  sx?: SxProps<Theme>;
5
- }): JSX.Element;
5
+ }): React.JSX.Element;
6
6
  declare namespace GridPanelFooter {
7
7
  var propTypes: any;
8
8
  }
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { SxProps, Theme } from '@mui/system';
3
3
  declare function GridPanelHeader(props: React.HTMLAttributes<HTMLDivElement> & {
4
4
  sx?: SxProps<Theme>;
5
- }): JSX.Element;
5
+ }): React.JSX.Element;
6
6
  declare namespace GridPanelHeader {
7
7
  var propTypes: any;
8
8
  }
@@ -17,7 +17,9 @@ export const GridPreferencesPanel = /*#__PURE__*/React.forwardRef(function GridP
17
17
  return /*#__PURE__*/_jsx(rootProps.slots.panel, _extends({
18
18
  ref: ref,
19
19
  as: rootProps.slots.basePopper,
20
- open: columns.length > 0 && preferencePanelState.open
20
+ open: columns.length > 0 && preferencePanelState.open,
21
+ id: preferencePanelState.panelId,
22
+ "aria-labelledby": preferencePanelState.labelId
21
23
  }, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.panel, props, (_rootProps$slotProps2 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps2.basePopper, {
22
24
  children: panelContent
23
25
  }));
@@ -1,4 +1,17 @@
1
- /// <reference types="react" />
1
+ import * as React from 'react';
2
2
  import { TextFieldProps } from '@mui/material/TextField';
3
3
  import { GridFilterInputValueProps } from './GridFilterInputValueProps';
4
- export declare function GridFilterInputBoolean(props: GridFilterInputValueProps & TextFieldProps): JSX.Element;
4
+ export type GridFilterInputBooleanProps = GridFilterInputValueProps & TextFieldProps & {
5
+ headerFilterMenu?: React.ReactNode | null;
6
+ clearButton?: React.ReactNode | null;
7
+ /**
8
+ * It is `true` if the filter either has a value or an operator with no value
9
+ * required is selected (e.g. `isEmpty`)
10
+ */
11
+ isFilterActive?: boolean;
12
+ };
13
+ declare function GridFilterInputBoolean(props: GridFilterInputBooleanProps): React.JSX.Element;
14
+ declare namespace GridFilterInputBoolean {
15
+ var propTypes: any;
16
+ }
17
+ export { GridFilterInputBoolean };
@@ -1,18 +1,30 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["item", "applyValue", "apiRef", "focusElementRef"];
3
+ const _excluded = ["item", "applyValue", "apiRef", "focusElementRef", "headerFilterMenu", "isFilterActive", "clearButton", "tabIndex", "label"];
4
4
  import * as React from 'react';
5
+ import PropTypes from 'prop-types';
5
6
  import { unstable_useId as useId } from '@mui/utils';
7
+ import { styled } from '@mui/material/styles';
6
8
  import { useGridRootProps } from '../../../hooks/utils/useGridRootProps';
7
9
  import { jsx as _jsx } from "react/jsx-runtime";
8
10
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
- export function GridFilterInputBoolean(props) {
11
+ const BooleanOperatorContainer = styled('div')({
12
+ display: 'flex',
13
+ alignItems: 'flex-end',
14
+ width: '100%'
15
+ });
16
+ function GridFilterInputBoolean(props) {
10
17
  var _rootProps$slotProps, _baseSelectProps$nati, _rootProps$slotProps2, _rootProps$slotProps3;
11
18
  const {
12
19
  item,
13
20
  applyValue,
14
21
  apiRef,
15
- focusElementRef
22
+ focusElementRef,
23
+ headerFilterMenu,
24
+ isFilterActive,
25
+ clearButton,
26
+ tabIndex,
27
+ label: labelProp
16
28
  } = props,
17
29
  others = _objectWithoutPropertiesLoose(props, _excluded);
18
30
  const [filterValueState, setFilterValueState] = React.useState(item.value || '');
@@ -32,39 +44,71 @@ export function GridFilterInputBoolean(props) {
32
44
  React.useEffect(() => {
33
45
  setFilterValueState(item.value || '');
34
46
  }, [item.value]);
35
- const label = apiRef.current.getLocaleText('filterPanelInputLabel');
36
- return /*#__PURE__*/_jsxs(React.Fragment, {
37
- children: [/*#__PURE__*/_jsx(rootProps.slots.baseInputLabel, _extends({}, (_rootProps$slotProps3 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps3.baseInputLabel, {
38
- id: labelId,
39
- shrink: true,
40
- variant: "standard",
41
- children: label
42
- })), /*#__PURE__*/_jsxs(rootProps.slots.baseSelect, _extends({
43
- labelId: labelId,
44
- id: selectId,
45
- label: label,
46
- value: filterValueState,
47
- onChange: onFilterChange,
48
- variant: "standard",
49
- native: isSelectNative,
50
- displayEmpty: true,
51
- inputProps: {
52
- ref: focusElementRef
53
- }
54
- }, others, baseSelectProps, {
55
- children: [/*#__PURE__*/_jsx(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {
47
+ const label = labelProp != null ? labelProp : apiRef.current.getLocaleText('filterPanelInputLabel');
48
+ return /*#__PURE__*/_jsxs(BooleanOperatorContainer, {
49
+ children: [/*#__PURE__*/_jsxs(rootProps.slots.baseFormControl, {
50
+ fullWidth: true,
51
+ children: [/*#__PURE__*/_jsx(rootProps.slots.baseInputLabel, _extends({}, (_rootProps$slotProps3 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps3.baseInputLabel, {
52
+ id: labelId,
53
+ shrink: true,
54
+ variant: "standard",
55
+ children: label
56
+ })), /*#__PURE__*/_jsxs(rootProps.slots.baseSelect, _extends({
57
+ labelId: labelId,
58
+ id: selectId,
59
+ label: label,
60
+ value: filterValueState,
61
+ onChange: onFilterChange,
62
+ variant: "standard",
56
63
  native: isSelectNative,
57
- value: "",
58
- children: apiRef.current.getLocaleText('filterValueAny')
59
- })), /*#__PURE__*/_jsx(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {
60
- native: isSelectNative,
61
- value: "true",
62
- children: apiRef.current.getLocaleText('filterValueTrue')
63
- })), /*#__PURE__*/_jsx(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {
64
- native: isSelectNative,
65
- value: "false",
66
- children: apiRef.current.getLocaleText('filterValueFalse')
64
+ displayEmpty: true,
65
+ startAdornment: isFilterActive ? headerFilterMenu : null,
66
+ inputProps: {
67
+ ref: focusElementRef,
68
+ tabIndex
69
+ }
70
+ }, others, baseSelectProps, {
71
+ children: [/*#__PURE__*/_jsx(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {
72
+ native: isSelectNative,
73
+ value: "",
74
+ children: apiRef.current.getLocaleText('filterValueAny')
75
+ })), /*#__PURE__*/_jsx(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {
76
+ native: isSelectNative,
77
+ value: "true",
78
+ children: apiRef.current.getLocaleText('filterValueTrue')
79
+ })), /*#__PURE__*/_jsx(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {
80
+ native: isSelectNative,
81
+ value: "false",
82
+ children: apiRef.current.getLocaleText('filterValueFalse')
83
+ }))]
67
84
  }))]
68
- }))]
85
+ }), clearButton]
69
86
  });
70
- }
87
+ }
88
+ process.env.NODE_ENV !== "production" ? GridFilterInputBoolean.propTypes = {
89
+ // ----------------------------- Warning --------------------------------
90
+ // | These PropTypes are generated from the TypeScript type definitions |
91
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
92
+ // ----------------------------------------------------------------------
93
+ apiRef: PropTypes.shape({
94
+ current: PropTypes.object.isRequired
95
+ }).isRequired,
96
+ applyValue: PropTypes.func.isRequired,
97
+ clearButton: PropTypes.node,
98
+ focusElementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
99
+ current: PropTypes.any.isRequired
100
+ })]),
101
+ headerFilterMenu: PropTypes.node,
102
+ /**
103
+ * It is `true` if the filter either has a value or an operator with no value
104
+ * required is selected (e.g. `isEmpty`)
105
+ */
106
+ isFilterActive: PropTypes.bool,
107
+ item: PropTypes.shape({
108
+ field: PropTypes.string.isRequired,
109
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
110
+ operator: PropTypes.string.isRequired,
111
+ value: PropTypes.any
112
+ }).isRequired
113
+ } : void 0;
114
+ export { GridFilterInputBoolean };
@@ -1,11 +1,18 @@
1
- /// <reference types="react" />
1
+ import * as React from 'react';
2
2
  import { TextFieldProps } from '@mui/material/TextField';
3
3
  import { GridFilterInputValueProps } from './GridFilterInputValueProps';
4
4
  export type GridFilterInputDateProps = GridFilterInputValueProps & TextFieldProps & {
5
5
  type?: 'date' | 'datetime-local';
6
+ headerFilterMenu?: React.ReactNode | null;
7
+ clearButton?: React.ReactNode | null;
8
+ /**
9
+ * It is `true` if the filter either has a value or an operator with no value
10
+ * required is selected (e.g. `isEmpty`)
11
+ */
12
+ isFilterActive?: boolean;
6
13
  };
7
14
  export declare const SUBMIT_FILTER_DATE_STROKE_TIME = 500;
8
- declare function GridFilterInputDate(props: GridFilterInputDateProps): JSX.Element;
15
+ declare function GridFilterInputDate(props: GridFilterInputDateProps): React.JSX.Element;
9
16
  declare namespace GridFilterInputDate {
10
17
  var propTypes: any;
11
18
  }
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "InputProps"];
3
+ const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "InputProps", "headerFilterMenu", "isFilterActive", "clearButton", "tabIndex", "disabled"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { unstable_useId as useId } from '@mui/utils';
@@ -15,7 +15,12 @@ function GridFilterInputDate(props) {
15
15
  type,
16
16
  apiRef,
17
17
  focusElementRef,
18
- InputProps
18
+ InputProps,
19
+ headerFilterMenu,
20
+ isFilterActive,
21
+ clearButton,
22
+ tabIndex,
23
+ disabled
19
24
  } = props,
20
25
  other = _objectWithoutPropertiesLoose(props, _excluded);
21
26
  const filterTimeout = React.useRef();
@@ -46,6 +51,7 @@ function GridFilterInputDate(props) {
46
51
  setFilterValueState(String(itemValue));
47
52
  }, [item.value]);
48
53
  return /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({
54
+ fullWidth: true,
49
55
  id: id,
50
56
  label: apiRef.current.getLocaleText('filterPanelInputLabel'),
51
57
  placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),
@@ -57,11 +63,19 @@ function GridFilterInputDate(props) {
57
63
  shrink: true
58
64
  },
59
65
  inputRef: focusElementRef,
60
- InputProps: _extends({}, applying ? {
61
- endAdornment: /*#__PURE__*/_jsx(rootProps.slots.loadIcon, {})
62
- } : {}, InputProps, {
66
+ InputProps: _extends({}, applying || clearButton ? {
67
+ endAdornment: applying ? /*#__PURE__*/_jsx(rootProps.slots.loadIcon, {
68
+ fontSize: "small",
69
+ color: "action"
70
+ }) : clearButton
71
+ } : {}, headerFilterMenu && isFilterActive ? {
72
+ startAdornment: headerFilterMenu
73
+ } : {}, {
74
+ disabled
75
+ }, InputProps, {
63
76
  inputProps: _extends({
64
- max: type === 'datetime-local' ? '9999-12-31T23:59' : '9999-12-31'
77
+ max: type === 'datetime-local' ? '9999-12-31T23:59' : '9999-12-31',
78
+ tabIndex
65
79
  }, InputProps == null ? void 0 : InputProps.inputProps)
66
80
  })
67
81
  }, other, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseTextField));
@@ -75,7 +89,14 @@ process.env.NODE_ENV !== "production" ? GridFilterInputDate.propTypes = {
75
89
  current: PropTypes.object.isRequired
76
90
  }).isRequired,
77
91
  applyValue: PropTypes.func.isRequired,
92
+ clearButton: PropTypes.node,
78
93
  focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),
94
+ headerFilterMenu: PropTypes.node,
95
+ /**
96
+ * It is `true` if the filter either has a value or an operator with no value
97
+ * required is selected (e.g. `isEmpty`)
98
+ */
99
+ isFilterActive: PropTypes.bool,
79
100
  item: PropTypes.shape({
80
101
  field: PropTypes.string.isRequired,
81
102
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
@@ -1,11 +1,11 @@
1
- /// <reference types="react" />
1
+ import * as React from 'react';
2
2
  import { AutocompleteProps } from '@mui/material/Autocomplete';
3
3
  import { GridFilterInputValueProps } from './GridFilterInputValueProps';
4
4
  import type { GridSingleSelectColDef, ValueOptions } from '../../../models/colDef/gridColDef';
5
5
  export interface GridFilterInputMultipleSingleSelectProps extends Omit<AutocompleteProps<ValueOptions, true, false, true>, 'options' | 'renderInput' | 'onChange' | 'value' | 'id' | 'filterOptions' | 'isOptionEqualToValue' | 'multiple' | 'color' | 'getOptionLabel'>, Pick<GridSingleSelectColDef, 'getOptionLabel' | 'getOptionValue'>, GridFilterInputValueProps {
6
6
  type?: 'singleSelect';
7
7
  }
8
- declare function GridFilterInputMultipleSingleSelect(props: GridFilterInputMultipleSingleSelectProps): JSX.Element;
8
+ declare function GridFilterInputMultipleSingleSelect(props: GridFilterInputMultipleSingleSelectProps): React.JSX.Element;
9
9
  declare namespace GridFilterInputMultipleSingleSelect {
10
10
  var propTypes: any;
11
11
  }
@@ -1,10 +1,10 @@
1
- /// <reference types="react" />
1
+ import * as React from 'react';
2
2
  import { AutocompleteProps } from '@mui/material/Autocomplete';
3
3
  import { GridFilterInputValueProps } from './GridFilterInputValueProps';
4
4
  export type GridFilterInputMultipleValueProps = {
5
5
  type?: 'text' | 'number';
6
6
  } & GridFilterInputValueProps & Omit<AutocompleteProps<string, true, false, true>, 'options' | 'renderInput'>;
7
- declare function GridFilterInputMultipleValue(props: GridFilterInputMultipleValueProps): JSX.Element;
7
+ declare function GridFilterInputMultipleValue(props: GridFilterInputMultipleValueProps): React.JSX.Element;
8
8
  declare namespace GridFilterInputMultipleValue {
9
9
  var propTypes: any;
10
10
  }
@@ -1,11 +1,18 @@
1
- /// <reference types="react" />
1
+ import * as React from 'react';
2
2
  import { TextFieldProps } from '@mui/material/TextField';
3
3
  import { GridFilterInputValueProps } from './GridFilterInputValueProps';
4
4
  import { GridSingleSelectColDef } from '../../../models/colDef/gridColDef';
5
5
  export type GridFilterInputSingleSelectProps = GridFilterInputValueProps & TextFieldProps & Pick<GridSingleSelectColDef, 'getOptionLabel' | 'getOptionValue'> & {
6
+ headerFilterMenu?: React.ReactNode | null;
7
+ clearButton?: React.ReactNode | null;
8
+ /**
9
+ * It is `true` if the filter either has a value or an operator with no value
10
+ * required is selected (e.g. `isEmpty`)
11
+ */
12
+ isFilterActive?: boolean;
6
13
  type?: 'singleSelect';
7
14
  };
8
- declare function GridFilterInputSingleSelect(props: GridFilterInputSingleSelectProps): JSX.Element | null;
15
+ declare function GridFilterInputSingleSelect(props: GridFilterInputSingleSelectProps): React.JSX.Element | null;
9
16
  declare namespace GridFilterInputSingleSelect {
10
17
  var propTypes: any;
11
18
  }
@@ -1,9 +1,10 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "getOptionLabel", "getOptionValue"];
3
+ const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "getOptionLabel", "getOptionValue", "placeholder", "tabIndex", "label", "headerFilterMenu", "isFilterActive", "clearButton"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { unstable_useId as useId } from '@mui/utils';
7
+ import { styled } from '@mui/material/styles';
7
8
  import { useGridRootProps } from '../../../hooks/utils/useGridRootProps';
8
9
  import { getValueFromValueOptions, isSingleSelectColDef } from './filterPanelUtils';
9
10
  import { createElement as _createElement } from "react";
@@ -33,6 +34,11 @@ const renderSingleSelectOptions = ({
33
34
  }), label);
34
35
  });
35
36
  };
37
+ const SingleSelectOperatorContainer = styled('div')({
38
+ display: 'flex',
39
+ alignItems: 'flex-end',
40
+ width: '100%'
41
+ });
36
42
  function GridFilterInputSingleSelect(props) {
37
43
  var _item$value, _rootProps$slotProps$, _rootProps$slotProps, _rootProps$slotProps$2, _resolvedColumn, _resolvedColumn2, _rootProps$slotProps2, _rootProps$slotProps3, _rootProps$slotProps4;
38
44
  const {
@@ -42,7 +48,13 @@ function GridFilterInputSingleSelect(props) {
42
48
  apiRef,
43
49
  focusElementRef,
44
50
  getOptionLabel: getOptionLabelProp,
45
- getOptionValue: getOptionValueProp
51
+ getOptionValue: getOptionValueProp,
52
+ placeholder,
53
+ tabIndex,
54
+ label: labelProp,
55
+ headerFilterMenu,
56
+ isFilterActive,
57
+ clearButton
46
58
  } = props,
47
59
  others = _objectWithoutPropertiesLoose(props, _excluded);
48
60
  const [filterValueState, setFilterValueState] = React.useState((_item$value = item.value) != null ? _item$value : '');
@@ -101,36 +113,41 @@ function GridFilterInputSingleSelect(props) {
101
113
  if (!isSingleSelectColDef(resolvedColumn)) {
102
114
  return null;
103
115
  }
104
- const label = apiRef.current.getLocaleText('filterPanelInputLabel');
105
- return /*#__PURE__*/_jsxs(React.Fragment, {
106
- children: [/*#__PURE__*/_jsx(rootProps.slots.baseInputLabel, _extends({}, (_rootProps$slotProps2 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps2.baseInputLabel, {
107
- id: labelId,
108
- shrink: true,
109
- variant: "standard",
110
- children: label
111
- })), /*#__PURE__*/_jsx(rootProps.slots.baseSelect, _extends({
112
- id: id,
113
- label: label,
114
- labelId: labelId,
115
- value: filterValueState,
116
- onChange: onFilterChange,
117
- variant: "standard",
118
- type: type || 'text',
119
- inputProps: {
120
- ref: focusElementRef,
121
- placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder')
122
- },
123
- native: isSelectNative
124
- }, others, (_rootProps$slotProps3 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps3.baseSelect, {
125
- children: renderSingleSelectOptions({
126
- column: resolvedColumn,
127
- OptionComponent: rootProps.slots.baseSelectOption,
128
- getOptionLabel,
129
- getOptionValue,
130
- isSelectNative,
131
- baseSelectOptionProps: (_rootProps$slotProps4 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps4.baseSelectOption
132
- })
133
- }))]
116
+ const label = labelProp != null ? labelProp : apiRef.current.getLocaleText('filterPanelInputLabel');
117
+ return /*#__PURE__*/_jsxs(SingleSelectOperatorContainer, {
118
+ children: [/*#__PURE__*/_jsxs(rootProps.slots.baseFormControl, {
119
+ children: [/*#__PURE__*/_jsx(rootProps.slots.baseInputLabel, _extends({}, (_rootProps$slotProps2 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps2.baseInputLabel, {
120
+ id: labelId,
121
+ htmlFor: id,
122
+ shrink: true,
123
+ variant: "standard",
124
+ children: label
125
+ })), /*#__PURE__*/_jsx(rootProps.slots.baseSelect, _extends({
126
+ id: id,
127
+ label: label,
128
+ labelId: labelId,
129
+ value: filterValueState,
130
+ onChange: onFilterChange,
131
+ startAdornment: isFilterActive ? headerFilterMenu : null,
132
+ variant: "standard",
133
+ type: type || 'text',
134
+ inputProps: {
135
+ tabIndex,
136
+ ref: focusElementRef,
137
+ placeholder: placeholder != null ? placeholder : apiRef.current.getLocaleText('filterPanelInputPlaceholder')
138
+ },
139
+ native: isSelectNative
140
+ }, others, (_rootProps$slotProps3 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps3.baseSelect, {
141
+ children: renderSingleSelectOptions({
142
+ column: resolvedColumn,
143
+ OptionComponent: rootProps.slots.baseSelectOption,
144
+ getOptionLabel,
145
+ getOptionValue,
146
+ isSelectNative,
147
+ baseSelectOptionProps: (_rootProps$slotProps4 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps4.baseSelectOption
148
+ })
149
+ }))]
150
+ }), clearButton]
134
151
  });
135
152
  }
136
153
  process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes = {
@@ -142,6 +159,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes =
142
159
  current: PropTypes.object.isRequired
143
160
  }).isRequired,
144
161
  applyValue: PropTypes.func.isRequired,
162
+ clearButton: PropTypes.node,
145
163
  focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),
146
164
  /**
147
165
  * Used to determine the label displayed for a given value option.
@@ -155,6 +173,12 @@ process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes =
155
173
  * @returns {string} The value to be used.
156
174
  */
157
175
  getOptionValue: PropTypes.func,
176
+ headerFilterMenu: PropTypes.node,
177
+ /**
178
+ * It is `true` if the filter either has a value or an operator with no value
179
+ * required is selected (e.g. `isEmpty`)
180
+ */
181
+ isFilterActive: PropTypes.bool,
158
182
  item: PropTypes.shape({
159
183
  field: PropTypes.string.isRequired,
160
184
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
@@ -1,11 +1,18 @@
1
- /// <reference types="react" />
1
+ import * as React from 'react';
2
2
  import { TextFieldProps } from '@mui/material/TextField';
3
3
  import { GridFilterInputValueProps } from './GridFilterInputValueProps';
4
4
  export declare const SUBMIT_FILTER_STROKE_TIME = 500;
5
- export interface GridTypeFilterInputValueProps extends GridFilterInputValueProps {
5
+ export type GridTypeFilterInputValueProps = GridFilterInputValueProps & TextFieldProps & {
6
6
  type?: 'text' | 'number' | 'date' | 'datetime-local';
7
- }
8
- declare function GridFilterInputValue(props: GridTypeFilterInputValueProps & TextFieldProps): JSX.Element;
7
+ headerFilterMenu?: React.ReactNode | null;
8
+ clearButton?: React.ReactNode | null;
9
+ /**
10
+ * It is `true` if the filter either has a value or an operator with no value
11
+ * required is selected (e.g. `isEmpty`)
12
+ */
13
+ isFilterActive?: boolean;
14
+ };
15
+ declare function GridFilterInputValue(props: GridTypeFilterInputValueProps): React.JSX.Element;
9
16
  declare namespace GridFilterInputValue {
10
17
  var propTypes: any;
11
18
  }