@mui/x-data-grid 6.5.0 → 6.7.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 (329) hide show
  1. package/CHANGELOG.md +150 -2
  2. package/DataGrid/DataGrid.js +10 -3
  3. package/README.md +2 -2
  4. package/components/GridColumnHeaders.js +4 -9
  5. package/components/GridHeader.d.ts +2 -2
  6. package/components/base/GridBody.d.ts +1 -1
  7. package/components/base/GridFooterPlaceholder.d.ts +2 -2
  8. package/components/base/GridOverlays.d.ts +2 -2
  9. package/components/cell/GridActionsCell.d.ts +3 -3
  10. package/components/cell/GridActionsCell.js +3 -3
  11. package/components/cell/GridBooleanCell.d.ts +1 -1
  12. package/components/cell/GridEditBooleanCell.d.ts +2 -2
  13. package/components/cell/GridEditDateCell.d.ts +2 -2
  14. package/components/cell/GridEditInputCell.d.ts +1 -1
  15. package/components/cell/GridEditSingleSelectCell.d.ts +3 -3
  16. package/components/cell/GridEditSingleSelectCell.js +5 -5
  17. package/components/cell/GridSkeletonCell.d.ts +1 -1
  18. package/components/columnHeaders/ColumnHeaderMenuIcon.d.ts +1 -1
  19. package/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
  20. package/components/columnHeaders/GridColumnGroupHeader.d.ts +2 -2
  21. package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +1 -1
  22. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +13 -4
  23. package/components/columnHeaders/GridColumnHeaderItem.d.ts +2 -2
  24. package/components/columnHeaders/GridColumnHeaderSeparator.d.ts +1 -1
  25. package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -1
  26. package/components/columnHeaders/GridColumnHeaderTitle.d.ts +1 -1
  27. package/components/containers/GridRoot.js +1 -3
  28. package/components/containers/GridRootStyles.js +8 -1
  29. package/components/index.d.ts +0 -1
  30. package/components/index.js +1 -2
  31. package/components/menu/GridMenu.d.ts +1 -1
  32. package/components/menu/columnMenu/GridColumnHeaderMenu.d.ts +1 -1
  33. package/components/menu/columnMenu/menuItems/GridColumnMenuColumnsItem.d.ts +2 -2
  34. package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.d.ts +2 -2
  35. package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.d.ts +2 -2
  36. package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.d.ts +2 -2
  37. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.d.ts +2 -2
  38. package/components/panel/GridColumnsPanel.d.ts +16 -2
  39. package/components/panel/GridColumnsPanel.js +14 -0
  40. package/components/panel/GridPanelContent.d.ts +1 -1
  41. package/components/panel/GridPanelFooter.d.ts +1 -1
  42. package/components/panel/GridPanelHeader.d.ts +1 -1
  43. package/components/panel/GridPreferencesPanel.js +3 -1
  44. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +1 -2
  45. package/components/panel/filterPanel/GridFilterInputBoolean.js +6 -7
  46. package/components/panel/filterPanel/GridFilterInputDate.d.ts +1 -2
  47. package/components/panel/filterPanel/GridFilterInputDate.js +1 -6
  48. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.d.ts +2 -2
  49. package/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +2 -2
  50. package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +1 -2
  51. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +6 -6
  52. package/components/panel/filterPanel/GridFilterInputValue.d.ts +1 -2
  53. package/components/panel/filterPanel/GridFilterInputValue.js +1 -6
  54. package/components/panel/filterPanel/GridFilterPanel.d.ts +8 -0
  55. package/components/panel/filterPanel/GridFilterPanel.js +8 -0
  56. package/components/toolbar/GridToolbarColumnsButton.js +11 -6
  57. package/components/toolbar/GridToolbarDensitySelector.js +2 -2
  58. package/components/toolbar/GridToolbarExport.d.ts +2 -2
  59. package/components/toolbar/GridToolbarExportContainer.js +7 -7
  60. package/components/toolbar/GridToolbarFilterButton.js +11 -4
  61. package/components/toolbar/GridToolbarQuickFilter.d.ts +2 -2
  62. package/constants/gridClasses.d.ts +4 -0
  63. package/constants/gridClasses.js +1 -1
  64. package/constants/localeTextConstants.js +4 -4
  65. package/context/GridContextProvider.d.ts +1 -1
  66. package/hooks/core/strategyProcessing/gridStrategyProcessingApi.d.ts +10 -2
  67. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
  68. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +1 -1
  69. package/hooks/features/filter/gridFilterSelector.d.ts +2 -2
  70. package/hooks/features/filter/gridFilterSelector.js +2 -2
  71. package/hooks/features/filter/gridFilterState.d.ts +6 -6
  72. package/hooks/features/filter/gridFilterState.js +6 -0
  73. package/hooks/features/filter/useGridFilter.js +31 -10
  74. package/hooks/features/focus/useGridFocus.js +1 -0
  75. package/hooks/features/preferencesPanel/gridPreferencePanelState.d.ts +2 -0
  76. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -2
  77. package/hooks/features/rows/useGridRowsMeta.js +12 -13
  78. package/hooks/features/sorting/useGridSorting.js +2 -1
  79. package/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  80. package/index.js +1 -1
  81. package/internals/utils/useProps.js +21 -1
  82. package/legacy/DataGrid/DataGrid.js +10 -3
  83. package/legacy/components/GridColumnHeaders.js +4 -9
  84. package/legacy/components/cell/GridActionsCell.js +3 -3
  85. package/legacy/components/cell/GridEditSingleSelectCell.js +5 -5
  86. package/legacy/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
  87. package/legacy/components/columnHeaders/GridColumnHeaderFilterIconButton.js +13 -4
  88. package/legacy/components/containers/GridRoot.js +1 -3
  89. package/legacy/components/containers/GridRootStyles.js +8 -4
  90. package/legacy/components/index.js +1 -2
  91. package/legacy/components/panel/GridColumnsPanel.js +14 -0
  92. package/legacy/components/panel/GridPreferencesPanel.js +3 -1
  93. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +7 -7
  94. package/legacy/components/panel/filterPanel/GridFilterInputDate.js +1 -5
  95. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +7 -6
  96. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +1 -5
  97. package/legacy/components/panel/filterPanel/GridFilterPanel.js +8 -0
  98. package/legacy/components/toolbar/GridToolbarColumnsButton.js +11 -5
  99. package/legacy/components/toolbar/GridToolbarDensitySelector.js +2 -2
  100. package/legacy/components/toolbar/GridToolbarExportContainer.js +7 -7
  101. package/legacy/components/toolbar/GridToolbarFilterButton.js +11 -4
  102. package/legacy/constants/gridClasses.js +1 -1
  103. package/legacy/constants/localeTextConstants.js +4 -4
  104. package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
  105. package/legacy/hooks/features/filter/gridFilterSelector.js +4 -4
  106. package/legacy/hooks/features/filter/gridFilterState.js +6 -0
  107. package/legacy/hooks/features/filter/useGridFilter.js +31 -10
  108. package/legacy/hooks/features/focus/useGridFocus.js +1 -0
  109. package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -2
  110. package/legacy/hooks/features/rows/useGridRowsMeta.js +13 -21
  111. package/legacy/hooks/features/sorting/useGridSorting.js +2 -1
  112. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  113. package/legacy/index.js +1 -1
  114. package/legacy/internals/utils/useProps.js +23 -1
  115. package/legacy/locales/arSD.js +12 -12
  116. package/legacy/locales/beBY.js +12 -12
  117. package/legacy/locales/bgBG.js +12 -12
  118. package/legacy/locales/csCZ.js +25 -27
  119. package/legacy/locales/daDK.js +12 -12
  120. package/legacy/locales/deDE.js +25 -27
  121. package/legacy/locales/elGR.js +12 -12
  122. package/legacy/locales/esES.js +12 -12
  123. package/legacy/locales/faIR.js +12 -12
  124. package/legacy/locales/fiFI.js +12 -12
  125. package/legacy/locales/frFR.js +25 -27
  126. package/legacy/locales/heIL.js +12 -12
  127. package/legacy/locales/huHU.js +12 -12
  128. package/legacy/locales/itIT.js +12 -12
  129. package/legacy/locales/jaJP.js +12 -12
  130. package/legacy/locales/koKR.js +12 -12
  131. package/legacy/locales/nbNO.js +12 -12
  132. package/legacy/locales/nlNL.js +25 -27
  133. package/legacy/locales/plPL.js +12 -12
  134. package/legacy/locales/ptBR.js +12 -12
  135. package/legacy/locales/roRO.js +12 -12
  136. package/legacy/locales/ruRU.js +12 -12
  137. package/legacy/locales/skSK.js +12 -12
  138. package/legacy/locales/svSE.js +12 -12
  139. package/legacy/locales/trTR.js +18 -19
  140. package/legacy/locales/ukUA.js +12 -12
  141. package/legacy/locales/urPK.js +12 -12
  142. package/legacy/locales/viVN.js +12 -12
  143. package/legacy/locales/zhCN.js +12 -12
  144. package/legacy/locales/zhTW.js +12 -12
  145. package/legacy/models/gridFilterItem.js +1 -1
  146. package/legacy/utils/EventManager.js +2 -2
  147. package/locales/arSD.js +12 -12
  148. package/locales/beBY.js +12 -12
  149. package/locales/bgBG.js +12 -12
  150. package/locales/csCZ.js +25 -27
  151. package/locales/daDK.js +12 -12
  152. package/locales/deDE.js +25 -27
  153. package/locales/elGR.js +12 -12
  154. package/locales/esES.js +12 -12
  155. package/locales/faIR.js +12 -12
  156. package/locales/fiFI.js +12 -12
  157. package/locales/frFR.js +25 -27
  158. package/locales/heIL.js +12 -12
  159. package/locales/huHU.js +12 -12
  160. package/locales/itIT.js +12 -12
  161. package/locales/jaJP.js +12 -12
  162. package/locales/koKR.js +12 -12
  163. package/locales/nbNO.js +12 -12
  164. package/locales/nlNL.js +25 -27
  165. package/locales/plPL.js +12 -12
  166. package/locales/ptBR.js +12 -12
  167. package/locales/roRO.js +12 -12
  168. package/locales/ruRU.js +12 -12
  169. package/locales/skSK.js +12 -12
  170. package/locales/svSE.js +12 -12
  171. package/locales/trTR.js +18 -19
  172. package/locales/ukUA.js +12 -12
  173. package/locales/urPK.js +12 -12
  174. package/locales/viVN.js +12 -12
  175. package/locales/zhCN.js +12 -12
  176. package/locales/zhTW.js +12 -12
  177. package/material/components/MUISelectOption.d.ts +2 -2
  178. package/models/api/gridFilterApi.d.ts +3 -1
  179. package/models/api/gridPreferencesPanelApi.d.ts +3 -1
  180. package/models/events/gridEventLookup.d.ts +8 -0
  181. package/models/gridFilterItem.d.ts +1 -1
  182. package/models/gridFilterItem.js +1 -1
  183. package/models/gridFilterOperator.d.ts +1 -1
  184. package/models/gridStateCommunity.d.ts +2 -0
  185. package/models/props/DataGridProps.d.ts +5 -0
  186. package/modern/DataGrid/DataGrid.js +10 -3
  187. package/modern/components/GridColumnHeaders.js +4 -9
  188. package/modern/components/cell/GridActionsCell.js +3 -3
  189. package/modern/components/cell/GridEditSingleSelectCell.js +5 -5
  190. package/modern/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
  191. package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +13 -4
  192. package/modern/components/containers/GridRoot.js +1 -3
  193. package/modern/components/containers/GridRootStyles.js +8 -1
  194. package/modern/components/index.js +1 -2
  195. package/modern/components/panel/GridColumnsPanel.js +14 -0
  196. package/modern/components/panel/GridPreferencesPanel.js +3 -1
  197. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +6 -7
  198. package/modern/components/panel/filterPanel/GridFilterInputDate.js +1 -6
  199. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +6 -6
  200. package/modern/components/panel/filterPanel/GridFilterInputValue.js +1 -6
  201. package/modern/components/panel/filterPanel/GridFilterPanel.js +8 -0
  202. package/modern/components/toolbar/GridToolbarColumnsButton.js +11 -6
  203. package/modern/components/toolbar/GridToolbarDensitySelector.js +2 -2
  204. package/modern/components/toolbar/GridToolbarExportContainer.js +7 -7
  205. package/modern/components/toolbar/GridToolbarFilterButton.js +11 -4
  206. package/modern/constants/gridClasses.js +1 -1
  207. package/modern/constants/localeTextConstants.js +4 -4
  208. package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
  209. package/modern/hooks/features/filter/gridFilterSelector.js +2 -2
  210. package/modern/hooks/features/filter/gridFilterState.js +6 -0
  211. package/modern/hooks/features/filter/useGridFilter.js +31 -10
  212. package/modern/hooks/features/focus/useGridFocus.js +1 -0
  213. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -2
  214. package/modern/hooks/features/rows/useGridRowsMeta.js +12 -13
  215. package/modern/hooks/features/sorting/useGridSorting.js +2 -1
  216. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  217. package/modern/index.js +1 -1
  218. package/modern/internals/utils/useProps.js +20 -1
  219. package/modern/locales/arSD.js +12 -12
  220. package/modern/locales/beBY.js +12 -12
  221. package/modern/locales/bgBG.js +12 -12
  222. package/modern/locales/csCZ.js +25 -27
  223. package/modern/locales/daDK.js +12 -12
  224. package/modern/locales/deDE.js +25 -27
  225. package/modern/locales/elGR.js +12 -12
  226. package/modern/locales/esES.js +12 -12
  227. package/modern/locales/faIR.js +12 -12
  228. package/modern/locales/fiFI.js +12 -12
  229. package/modern/locales/frFR.js +25 -27
  230. package/modern/locales/heIL.js +12 -12
  231. package/modern/locales/huHU.js +12 -12
  232. package/modern/locales/itIT.js +12 -12
  233. package/modern/locales/jaJP.js +12 -12
  234. package/modern/locales/koKR.js +12 -12
  235. package/modern/locales/nbNO.js +12 -12
  236. package/modern/locales/nlNL.js +25 -27
  237. package/modern/locales/plPL.js +12 -12
  238. package/modern/locales/ptBR.js +12 -12
  239. package/modern/locales/roRO.js +12 -12
  240. package/modern/locales/ruRU.js +12 -12
  241. package/modern/locales/skSK.js +12 -12
  242. package/modern/locales/svSE.js +12 -12
  243. package/modern/locales/trTR.js +18 -19
  244. package/modern/locales/ukUA.js +12 -12
  245. package/modern/locales/urPK.js +12 -12
  246. package/modern/locales/viVN.js +12 -12
  247. package/modern/locales/zhCN.js +12 -12
  248. package/modern/locales/zhTW.js +12 -12
  249. package/modern/models/gridFilterItem.js +1 -1
  250. package/modern/utils/EventManager.js +2 -2
  251. package/node/DataGrid/DataGrid.js +10 -3
  252. package/node/components/GridColumnHeaders.js +3 -8
  253. package/node/components/cell/GridActionsCell.js +3 -3
  254. package/node/components/cell/GridEditSingleSelectCell.js +5 -5
  255. package/node/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
  256. package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +12 -3
  257. package/node/components/containers/GridRoot.js +1 -3
  258. package/node/components/containers/GridRootStyles.js +8 -1
  259. package/node/components/index.js +0 -11
  260. package/node/components/panel/GridColumnsPanel.js +14 -0
  261. package/node/components/panel/GridPreferencesPanel.js +3 -1
  262. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +6 -7
  263. package/node/components/panel/filterPanel/GridFilterInputDate.js +1 -6
  264. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +6 -6
  265. package/node/components/panel/filterPanel/GridFilterInputValue.js +1 -6
  266. package/node/components/panel/filterPanel/GridFilterPanel.js +8 -0
  267. package/node/components/toolbar/GridToolbarColumnsButton.js +11 -6
  268. package/node/components/toolbar/GridToolbarDensitySelector.js +2 -2
  269. package/node/components/toolbar/GridToolbarExportContainer.js +7 -7
  270. package/node/components/toolbar/GridToolbarFilterButton.js +10 -3
  271. package/node/constants/gridClasses.js +1 -1
  272. package/node/constants/localeTextConstants.js +4 -4
  273. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
  274. package/node/hooks/features/filter/gridFilterSelector.js +2 -2
  275. package/node/hooks/features/filter/gridFilterState.js +6 -0
  276. package/node/hooks/features/filter/useGridFilter.js +35 -14
  277. package/node/hooks/features/focus/useGridFocus.js +1 -0
  278. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -2
  279. package/node/hooks/features/rows/useGridRowsMeta.js +12 -13
  280. package/node/hooks/features/sorting/useGridSorting.js +2 -1
  281. package/node/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  282. package/node/index.js +1 -1
  283. package/node/internals/utils/useProps.js +20 -1
  284. package/node/locales/arSD.js +12 -12
  285. package/node/locales/beBY.js +12 -12
  286. package/node/locales/bgBG.js +12 -12
  287. package/node/locales/csCZ.js +25 -27
  288. package/node/locales/daDK.js +12 -12
  289. package/node/locales/deDE.js +25 -27
  290. package/node/locales/elGR.js +12 -12
  291. package/node/locales/esES.js +12 -12
  292. package/node/locales/faIR.js +12 -12
  293. package/node/locales/fiFI.js +12 -12
  294. package/node/locales/frFR.js +25 -27
  295. package/node/locales/heIL.js +12 -12
  296. package/node/locales/huHU.js +12 -12
  297. package/node/locales/itIT.js +12 -12
  298. package/node/locales/jaJP.js +12 -12
  299. package/node/locales/koKR.js +12 -12
  300. package/node/locales/nbNO.js +12 -12
  301. package/node/locales/nlNL.js +25 -27
  302. package/node/locales/plPL.js +12 -12
  303. package/node/locales/ptBR.js +12 -12
  304. package/node/locales/roRO.js +12 -12
  305. package/node/locales/ruRU.js +12 -12
  306. package/node/locales/skSK.js +12 -12
  307. package/node/locales/svSE.js +12 -12
  308. package/node/locales/trTR.js +18 -19
  309. package/node/locales/ukUA.js +12 -12
  310. package/node/locales/urPK.js +12 -12
  311. package/node/locales/viVN.js +12 -12
  312. package/node/locales/zhCN.js +12 -12
  313. package/node/locales/zhTW.js +12 -12
  314. package/node/models/gridFilterItem.js +1 -1
  315. package/node/utils/EventManager.js +2 -2
  316. package/package.json +4 -4
  317. package/themeAugmentation/overrides.d.ts +1 -1
  318. package/utils/EventManager.js +2 -2
  319. package/components/GridScrollArea.d.ts +0 -10
  320. package/components/GridScrollArea.js +0 -117
  321. package/legacy/components/GridScrollArea.js +0 -119
  322. package/legacy/lib/createDetectElementResize/index.js +0 -145
  323. package/lib/createDetectElementResize/index.d.ts +0 -18
  324. package/lib/createDetectElementResize/index.js +0 -145
  325. package/lib/createDetectElementResize/types.d.ts +0 -9
  326. package/modern/components/GridScrollArea.js +0 -117
  327. package/modern/lib/createDetectElementResize/index.js +0 -145
  328. package/node/components/GridScrollArea.js +0 -126
  329. package/node/lib/createDetectElementResize/index.js +0 -151
@@ -16,11 +16,11 @@ export var GridRootStyles = styled('div', {
16
16
  slot: 'Root',
17
17
  overridesResolver: function overridesResolver(props, styles) {
18
18
  return [_defineProperty({}, "&.".concat(gridClasses.autoHeight), styles.autoHeight), _defineProperty({}, "&.".concat(gridClasses.aggregationColumnHeader), styles.aggregationColumnHeader), _defineProperty({}, "&.".concat(gridClasses['aggregationColumnHeader--alignLeft']), styles['aggregationColumnHeader--alignLeft']), _defineProperty({}, "&.".concat(gridClasses['aggregationColumnHeader--alignCenter']), styles['aggregationColumnHeader--alignCenter']), _defineProperty({}, "&.".concat(gridClasses['aggregationColumnHeader--alignRight']), styles['aggregationColumnHeader--alignRight']), _defineProperty({}, "&.".concat(gridClasses.aggregationColumnHeaderLabel), styles.aggregationColumnHeaderLabel), _defineProperty({}, "&.".concat(gridClasses['root--disableUserSelection'], " .").concat(gridClasses.cell), styles['root--disableUserSelection']), _defineProperty({}, "& .".concat(gridClasses.editBooleanCell), styles.editBooleanCell), _defineProperty({}, "& .".concat(gridClasses['cell--editing']), styles['cell--editing']), _defineProperty({}, "& .".concat(gridClasses['cell--textCenter']), styles['cell--textCenter']), _defineProperty({}, "& .".concat(gridClasses['cell--textLeft']), styles['cell--textLeft']), _defineProperty({}, "& .".concat(gridClasses['cell--textRight']), styles['cell--textRight']), // TODO v6: Remove
19
- _defineProperty({}, "& .".concat(gridClasses['cell--withRenderer']), styles['cell--withRenderer']), _defineProperty({}, "& .".concat(gridClasses.cell), styles.cell), _defineProperty({}, "& .".concat(gridClasses['cell--rangeTop']), styles['cell--rangeTop']), _defineProperty({}, "& .".concat(gridClasses['cell--rangeBottom']), styles['cell--rangeBottom']), _defineProperty({}, "& .".concat(gridClasses['cell--rangeLeft']), styles['cell--rangeLeft']), _defineProperty({}, "& .".concat(gridClasses['cell--rangeRight']), styles['cell--rangeRight']), _defineProperty({}, "& .".concat(gridClasses.cellContent), styles.cellContent), _defineProperty({}, "& .".concat(gridClasses.cellCheckbox), styles.cellCheckbox), _defineProperty({}, "& .".concat(gridClasses.cellSkeleton), styles.cellSkeleton), _defineProperty({}, "& .".concat(gridClasses.checkboxInput), styles.checkboxInput), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignCenter']), styles['columnHeader--alignCenter']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignLeft']), styles['columnHeader--alignLeft']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignRight']), styles['columnHeader--alignRight']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--dragging']), styles['columnHeader--dragging']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--moving']), styles['columnHeader--moving']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--numeric']), styles['columnHeader--numeric']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--sortable']), styles['columnHeader--sortable']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--sorted']), styles['columnHeader--sorted']), _defineProperty({}, "& .".concat(gridClasses.columnHeader), styles.columnHeader), _defineProperty({}, "& .".concat(gridClasses.columnHeaderCheckbox), styles.columnHeaderCheckbox), _defineProperty({}, "& .".concat(gridClasses.columnHeaderDraggableContainer), styles.columnHeaderDraggableContainer), _defineProperty({}, "& .".concat(gridClasses.columnHeaderTitleContainer), styles.columnHeaderTitleContainer), _defineProperty({}, "& .".concat(gridClasses['columnSeparator--resizable']), styles['columnSeparator--resizable']), _defineProperty({}, "& .".concat(gridClasses['columnSeparator--resizing']), styles['columnSeparator--resizing']), _defineProperty({}, "& .".concat(gridClasses.columnSeparator), styles.columnSeparator), _defineProperty({}, "& .".concat(gridClasses.filterIcon), styles.filterIcon), _defineProperty({}, "& .".concat(gridClasses.iconSeparator), styles.iconSeparator), _defineProperty({}, "& .".concat(gridClasses.menuIcon), styles.menuIcon), _defineProperty({}, "& .".concat(gridClasses.menuIconButton), styles.menuIconButton), _defineProperty({}, "& .".concat(gridClasses.menuOpen), styles.menuOpen), _defineProperty({}, "& .".concat(gridClasses.menuList), styles.menuList), _defineProperty({}, "& .".concat(gridClasses['row--editable']), styles['row--editable']), _defineProperty({}, "& .".concat(gridClasses['row--editing']), styles['row--editing']), _defineProperty({}, "& .".concat(gridClasses['row--dragging']), styles['row--dragging']), _defineProperty({}, "& .".concat(gridClasses.row), styles.row), _defineProperty({}, "& .".concat(gridClasses.rowReorderCellPlaceholder), styles.rowReorderCellPlaceholder), _defineProperty({}, "& .".concat(gridClasses.rowReorderCell), styles.rowReorderCell), _defineProperty({}, "& .".concat(gridClasses['rowReorderCell--draggable']), styles['rowReorderCell--draggable']), _defineProperty({}, "& .".concat(gridClasses.sortIcon), styles.sortIcon), _defineProperty({}, "& .".concat(gridClasses.withBorderColor), styles.withBorderColor), _defineProperty({}, "& .".concat(gridClasses.treeDataGroupingCell), styles.treeDataGroupingCell), _defineProperty({}, "& .".concat(gridClasses.treeDataGroupingCellToggle), styles.treeDataGroupingCellToggle), _defineProperty({}, "& .".concat(gridClasses.detailPanelToggleCell), styles.detailPanelToggleCell), _defineProperty({}, "& .".concat(gridClasses['detailPanelToggleCell--expanded']), styles['detailPanelToggleCell--expanded']), styles.root];
19
+ _defineProperty({}, "& .".concat(gridClasses['cell--withRenderer']), styles['cell--withRenderer']), _defineProperty({}, "& .".concat(gridClasses.cell), styles.cell), _defineProperty({}, "& .".concat(gridClasses['cell--rangeTop']), styles['cell--rangeTop']), _defineProperty({}, "& .".concat(gridClasses['cell--rangeBottom']), styles['cell--rangeBottom']), _defineProperty({}, "& .".concat(gridClasses['cell--rangeLeft']), styles['cell--rangeLeft']), _defineProperty({}, "& .".concat(gridClasses['cell--rangeRight']), styles['cell--rangeRight']), _defineProperty({}, "& .".concat(gridClasses.cellContent), styles.cellContent), _defineProperty({}, "& .".concat(gridClasses.cellCheckbox), styles.cellCheckbox), _defineProperty({}, "& .".concat(gridClasses.cellSkeleton), styles.cellSkeleton), _defineProperty({}, "& .".concat(gridClasses.checkboxInput), styles.checkboxInput), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignCenter']), styles['columnHeader--alignCenter']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignLeft']), styles['columnHeader--alignLeft']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignRight']), styles['columnHeader--alignRight']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--dragging']), styles['columnHeader--dragging']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--moving']), styles['columnHeader--moving']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--numeric']), styles['columnHeader--numeric']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--sortable']), styles['columnHeader--sortable']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--sorted']), styles['columnHeader--sorted']), _defineProperty({}, "& .".concat(gridClasses.columnHeader), styles.columnHeader), _defineProperty({}, "& .".concat(gridClasses.headerFilterRow), styles.headerFilterRow), _defineProperty({}, "& .".concat(gridClasses.columnHeaderCheckbox), styles.columnHeaderCheckbox), _defineProperty({}, "& .".concat(gridClasses.columnHeaderDraggableContainer), styles.columnHeaderDraggableContainer), _defineProperty({}, "& .".concat(gridClasses.columnHeaderTitleContainer), styles.columnHeaderTitleContainer), _defineProperty({}, "& .".concat(gridClasses['columnSeparator--resizable']), styles['columnSeparator--resizable']), _defineProperty({}, "& .".concat(gridClasses['columnSeparator--resizing']), styles['columnSeparator--resizing']), _defineProperty({}, "& .".concat(gridClasses.columnSeparator), styles.columnSeparator), _defineProperty({}, "& .".concat(gridClasses.filterIcon), styles.filterIcon), _defineProperty({}, "& .".concat(gridClasses.iconSeparator), styles.iconSeparator), _defineProperty({}, "& .".concat(gridClasses.menuIcon), styles.menuIcon), _defineProperty({}, "& .".concat(gridClasses.menuIconButton), styles.menuIconButton), _defineProperty({}, "& .".concat(gridClasses.menuOpen), styles.menuOpen), _defineProperty({}, "& .".concat(gridClasses.menuList), styles.menuList), _defineProperty({}, "& .".concat(gridClasses['row--editable']), styles['row--editable']), _defineProperty({}, "& .".concat(gridClasses['row--editing']), styles['row--editing']), _defineProperty({}, "& .".concat(gridClasses['row--dragging']), styles['row--dragging']), _defineProperty({}, "& .".concat(gridClasses.row), styles.row), _defineProperty({}, "& .".concat(gridClasses.rowReorderCellPlaceholder), styles.rowReorderCellPlaceholder), _defineProperty({}, "& .".concat(gridClasses.rowReorderCell), styles.rowReorderCell), _defineProperty({}, "& .".concat(gridClasses['rowReorderCell--draggable']), styles['rowReorderCell--draggable']), _defineProperty({}, "& .".concat(gridClasses.sortIcon), styles.sortIcon), _defineProperty({}, "& .".concat(gridClasses.withBorderColor), styles.withBorderColor), _defineProperty({}, "& .".concat(gridClasses.treeDataGroupingCell), styles.treeDataGroupingCell), _defineProperty({}, "& .".concat(gridClasses.treeDataGroupingCellToggle), styles.treeDataGroupingCellToggle), _defineProperty({}, "& .".concat(gridClasses.detailPanelToggleCell), styles.detailPanelToggleCell), _defineProperty({}, "& .".concat(gridClasses['detailPanelToggleCell--expanded']), styles['detailPanelToggleCell--expanded']), styles.root];
20
20
  }
21
- })(function (_ref57) {
21
+ })(function (_ref58) {
22
22
  var _$concat2, _$concat3, _extends2;
23
- var theme = _ref57.theme;
23
+ var theme = _ref58.theme;
24
24
  var borderColor = getBorderColor(theme);
25
25
  var radius = theme.shape.borderRadius;
26
26
  var gridStyle = _extends({
@@ -39,7 +39,9 @@ export var GridRootStyles = styled('div', {
39
39
  outline: 'none',
40
40
  height: '100%',
41
41
  display: 'flex',
42
- overflow: 'hidden',
42
+ minWidth: 0,
43
+ // See https://github.com/mui/mui-x/issues/8547
44
+ minHeight: 0,
43
45
  flexDirection: 'column',
44
46
  overflowAnchor: 'none'
45
47
  }, _defineProperty(_extends2, "&.".concat(gridClasses.autoHeight), _defineProperty({
@@ -100,6 +102,8 @@ export var GridRootStyles = styled('div', {
100
102
  borderBottomWidth: '1px',
101
103
  borderBottomStyle: 'solid',
102
104
  boxSizing: 'border-box'
105
+ }), _defineProperty(_extends2, "& .".concat(gridClasses.headerFilterRow), {
106
+ borderTop: "1px solid ".concat(borderColor)
103
107
  }), _defineProperty(_extends2, "& .".concat(gridClasses.sortIcon, ", & .").concat(gridClasses.filterIcon), {
104
108
  fontSize: 'inherit'
105
109
  }), _defineProperty(_extends2, "& .".concat(gridClasses['columnHeader--sortable']), {
@@ -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';
@@ -218,8 +218,22 @@ process.env.NODE_ENV !== "production" ? GridColumnsPanel.propTypes = {
218
218
  // | These PropTypes are generated from the TypeScript type definitions |
219
219
  // | To update them edit the TypeScript types and run "yarn proptypes" |
220
220
  // ----------------------------------------------------------------------
221
+ /**
222
+ * If `true`, the column search field will be focused automatically.
223
+ * If `false`, the first column switch input will be focused automatically.
224
+ * This helps to avoid input keyboard panel to popup automatically on touch devices.
225
+ * @default true
226
+ */
221
227
  autoFocusSearchField: PropTypes.bool,
228
+ /**
229
+ * If `true`, the `Hide all` button will not be displayed.
230
+ * @default false
231
+ */
222
232
  disableHideAllButton: PropTypes.bool,
233
+ /**
234
+ * If `true`, the `Show all` button will be disabled
235
+ * @default false
236
+ */
223
237
  disableShowAllButton: PropTypes.bool,
224
238
  /**
225
239
  * Returns the list of togglable columns.
@@ -17,7 +17,9 @@ export var GridPreferencesPanel = /*#__PURE__*/React.forwardRef(function GridPre
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,7 +1,8 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
- var _excluded = ["item", "applyValue", "apiRef", "focusElementRef", "headerFilterMenu", "isFilterActive", "clearButton", "tabIndex", "label"];
4
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
+ var _excluded = ["item", "applyValue", "apiRef", "focusElementRef", "isFilterActive", "clearButton", "tabIndex", "label"];
5
6
  import * as React from 'react';
6
7
  import PropTypes from 'prop-types';
7
8
  import { unstable_useId as useId } from '@mui/utils';
@@ -9,18 +10,19 @@ import { styled } from '@mui/material/styles';
9
10
  import { useGridRootProps } from '../../../hooks/utils/useGridRootProps';
10
11
  import { jsx as _jsx } from "react/jsx-runtime";
11
12
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
- var BooleanOperatorContainer = styled('div')({
13
+ var BooleanOperatorContainer = styled('div')(_defineProperty({
13
14
  display: 'flex',
14
- alignItems: 'flex-end',
15
+ alignItems: 'center',
15
16
  width: '100%'
16
- });
17
+ }, "& button", {
18
+ margin: 'auto 0px 5px 5px'
19
+ }));
17
20
  function GridFilterInputBoolean(props) {
18
21
  var _rootProps$slotProps, _baseSelectProps$nati, _rootProps$slotProps2, _rootProps$slotProps3;
19
22
  var item = props.item,
20
23
  applyValue = props.applyValue,
21
24
  apiRef = props.apiRef,
22
25
  focusElementRef = props.focusElementRef,
23
- headerFilterMenu = props.headerFilterMenu,
24
26
  isFilterActive = props.isFilterActive,
25
27
  clearButton = props.clearButton,
26
28
  tabIndex = props.tabIndex,
@@ -64,7 +66,6 @@ function GridFilterInputBoolean(props) {
64
66
  variant: "standard",
65
67
  native: isSelectNative,
66
68
  displayEmpty: true,
67
- startAdornment: isFilterActive ? headerFilterMenu : null,
68
69
  inputProps: {
69
70
  ref: focusElementRef,
70
71
  tabIndex: tabIndex
@@ -100,7 +101,6 @@ process.env.NODE_ENV !== "production" ? GridFilterInputBoolean.propTypes = {
100
101
  focusElementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
101
102
  current: PropTypes.any.isRequired
102
103
  })]),
103
- headerFilterMenu: PropTypes.node,
104
104
  /**
105
105
  * It is `true` if the filter either has a value or an operator with no value
106
106
  * required is selected (e.g. `isEmpty`)
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
- var _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "InputProps", "headerFilterMenu", "isFilterActive", "clearButton", "tabIndex", "disabled"];
4
+ var _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "InputProps", "isFilterActive", "clearButton", "tabIndex", "disabled"];
5
5
  import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import { unstable_useId as useId } from '@mui/utils';
@@ -16,7 +16,6 @@ function GridFilterInputDate(props) {
16
16
  apiRef = props.apiRef,
17
17
  focusElementRef = props.focusElementRef,
18
18
  InputProps = props.InputProps,
19
- headerFilterMenu = props.headerFilterMenu,
20
19
  isFilterActive = props.isFilterActive,
21
20
  clearButton = props.clearButton,
22
21
  tabIndex = props.tabIndex,
@@ -73,8 +72,6 @@ function GridFilterInputDate(props) {
73
72
  fontSize: "small",
74
73
  color: "action"
75
74
  }) : clearButton
76
- } : {}, headerFilterMenu && isFilterActive ? {
77
- startAdornment: headerFilterMenu
78
75
  } : {}, {
79
76
  disabled: disabled
80
77
  }, InputProps, {
@@ -96,7 +93,6 @@ process.env.NODE_ENV !== "production" ? GridFilterInputDate.propTypes = {
96
93
  applyValue: PropTypes.func.isRequired,
97
94
  clearButton: PropTypes.node,
98
95
  focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),
99
- headerFilterMenu: PropTypes.node,
100
96
  /**
101
97
  * It is `true` if the filter either has a value or an operator with no value
102
98
  * required is selected (e.g. `isEmpty`)
@@ -1,8 +1,9 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
4
  import _extends from "@babel/runtime/helpers/esm/extends";
4
5
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
5
- var _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "getOptionLabel", "getOptionValue", "placeholder", "tabIndex", "label", "headerFilterMenu", "isFilterActive", "clearButton"];
6
+ var _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "getOptionLabel", "getOptionValue", "placeholder", "tabIndex", "label", "isFilterActive", "clearButton"];
6
7
  import * as React from 'react';
7
8
  import PropTypes from 'prop-types';
8
9
  import { unstable_useId as useId } from '@mui/utils';
@@ -34,11 +35,13 @@ var renderSingleSelectOptions = function renderSingleSelectOptions(_ref) {
34
35
  }), label);
35
36
  });
36
37
  };
37
- var SingleSelectOperatorContainer = styled('div')({
38
+ var SingleSelectOperatorContainer = styled('div')(_defineProperty({
38
39
  display: 'flex',
39
40
  alignItems: 'flex-end',
40
41
  width: '100%'
41
- });
42
+ }, "& button", {
43
+ margin: 'auto 0px 5px 5px'
44
+ }));
42
45
  function GridFilterInputSingleSelect(props) {
43
46
  var _item$value, _rootProps$slotProps$, _rootProps$slotProps, _rootProps$slotProps$2, _resolvedColumn, _resolvedColumn2, _rootProps$slotProps2, _rootProps$slotProps3, _rootProps$slotProps4;
44
47
  var item = props.item,
@@ -51,7 +54,6 @@ function GridFilterInputSingleSelect(props) {
51
54
  placeholder = props.placeholder,
52
55
  tabIndex = props.tabIndex,
53
56
  labelProp = props.label,
54
- headerFilterMenu = props.headerFilterMenu,
55
57
  isFilterActive = props.isFilterActive,
56
58
  clearButton = props.clearButton,
57
59
  others = _objectWithoutProperties(props, _excluded);
@@ -119,6 +121,7 @@ function GridFilterInputSingleSelect(props) {
119
121
  children: [/*#__PURE__*/_jsxs(rootProps.slots.baseFormControl, {
120
122
  children: [/*#__PURE__*/_jsx(rootProps.slots.baseInputLabel, _extends({}, (_rootProps$slotProps2 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps2.baseInputLabel, {
121
123
  id: labelId,
124
+ htmlFor: id,
122
125
  shrink: true,
123
126
  variant: "standard",
124
127
  children: label
@@ -128,7 +131,6 @@ function GridFilterInputSingleSelect(props) {
128
131
  labelId: labelId,
129
132
  value: filterValueState,
130
133
  onChange: onFilterChange,
131
- startAdornment: isFilterActive ? headerFilterMenu : null,
132
134
  variant: "standard",
133
135
  type: type || 'text',
134
136
  inputProps: {
@@ -173,7 +175,6 @@ process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes =
173
175
  * @returns {string} The value to be used.
174
176
  */
175
177
  getOptionValue: PropTypes.func,
176
- headerFilterMenu: PropTypes.node,
177
178
  /**
178
179
  * It is `true` if the filter either has a value or an operator with no value
179
180
  * required is selected (e.g. `isEmpty`)
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
- var _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "tabIndex", "disabled", "headerFilterMenu", "isFilterActive", "clearButton", "InputProps"];
4
+ var _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "tabIndex", "disabled", "isFilterActive", "clearButton", "InputProps"];
5
5
  import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import { unstable_useId as useId } from '@mui/utils';
@@ -17,7 +17,6 @@ function GridFilterInputValue(props) {
17
17
  focusElementRef = props.focusElementRef,
18
18
  tabIndex = props.tabIndex,
19
19
  disabled = props.disabled,
20
- headerFilterMenu = props.headerFilterMenu,
21
20
  isFilterActive = props.isFilterActive,
22
21
  clearButton = props.clearButton,
23
22
  InputProps = props.InputProps,
@@ -68,8 +67,6 @@ function GridFilterInputValue(props) {
68
67
  fontSize: "small",
69
68
  color: "action"
70
69
  }) : clearButton
71
- } : {}, headerFilterMenu && isFilterActive ? {
72
- startAdornment: headerFilterMenu
73
70
  } : {}, {
74
71
  disabled: disabled
75
72
  }, InputProps, {
@@ -94,7 +91,6 @@ process.env.NODE_ENV !== "production" ? GridFilterInputValue.propTypes = {
94
91
  applyValue: PropTypes.func.isRequired,
95
92
  clearButton: PropTypes.node,
96
93
  focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),
97
- headerFilterMenu: PropTypes.node,
98
94
  /**
99
95
  * It is `true` if the filter either has a value or an operator with no value
100
96
  * required is selected (e.g. `isEmpty`)
@@ -188,7 +188,15 @@ process.env.NODE_ENV !== "production" ? GridFilterPanel.propTypes = {
188
188
  * If not specified, the order is derived from the `columns` prop.
189
189
  */
190
190
  columnsSort: PropTypes.oneOf(['asc', 'desc']),
191
+ /**
192
+ * If `true`, the `Add filter` button will not be displayed.
193
+ * @default false
194
+ */
191
195
  disableAddFilterButton: PropTypes.bool,
196
+ /**
197
+ * If `true`, the `Remove all` button will be disabled
198
+ * @default false
199
+ */
192
200
  disableRemoveAllButton: PropTypes.bool,
193
201
  /**
194
202
  * Props passed to each filter form.
@@ -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 = ["onClick"];
4
4
  import * as React from 'react';
5
+ import { unstable_useId as useId } from '@mui/material/utils';
5
6
  import { useGridSelector } from '../../hooks/utils/useGridSelector';
6
7
  import { gridPreferencePanelStateSelector } from '../../hooks/features/preferencesPanel/gridPreferencePanelSelector';
7
8
  import { GridPreferencePanelsValue } from '../../hooks/features/preferencesPanel/gridPreferencePanelsValue';
@@ -12,16 +13,16 @@ export var GridToolbarColumnsButton = /*#__PURE__*/React.forwardRef(function Gri
12
13
  var _rootProps$slotProps;
13
14
  var onClick = props.onClick,
14
15
  other = _objectWithoutProperties(props, _excluded);
16
+ var columnButtonId = useId();
17
+ var columnPanelId = useId();
15
18
  var apiRef = useGridApiContext();
16
19
  var rootProps = useGridRootProps();
17
- var _useGridSelector = useGridSelector(apiRef, gridPreferencePanelStateSelector),
18
- open = _useGridSelector.open,
19
- openedPanelValue = _useGridSelector.openedPanelValue;
20
+ var preferencePanel = useGridSelector(apiRef, gridPreferencePanelStateSelector);
20
21
  var showColumns = function showColumns(event) {
21
- if (open && openedPanelValue === GridPreferencePanelsValue.columns) {
22
+ if (preferencePanel.open && preferencePanel.openedPanelValue === GridPreferencePanelsValue.columns) {
22
23
  apiRef.current.hidePreferences();
23
24
  } else {
24
- apiRef.current.showPreferences(GridPreferencePanelsValue.columns);
25
+ apiRef.current.showPreferences(GridPreferencePanelsValue.columns, columnPanelId, columnButtonId);
25
26
  }
26
27
  onClick == null ? void 0 : onClick(event);
27
28
  };
@@ -30,10 +31,15 @@ export var GridToolbarColumnsButton = /*#__PURE__*/React.forwardRef(function Gri
30
31
  if (rootProps.disableColumnSelector) {
31
32
  return null;
32
33
  }
34
+ var isOpen = preferencePanel.open && preferencePanel.panelId === columnPanelId;
33
35
  return /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
34
36
  ref: ref,
37
+ id: columnButtonId,
35
38
  size: "small",
36
39
  "aria-label": apiRef.current.getLocaleText('toolbarColumnsLabel'),
40
+ "aria-haspopup": "menu",
41
+ "aria-expanded": isOpen,
42
+ "aria-controls": isOpen ? columnPanelId : undefined,
37
43
  startIcon: /*#__PURE__*/_jsx(rootProps.slots.columnSelectorIcon, {})
38
44
  }, other, {
39
45
  onClick: showColumns
@@ -102,9 +102,9 @@ export var GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function G
102
102
  size: "small",
103
103
  startIcon: startIcon,
104
104
  "aria-label": apiRef.current.getLocaleText('toolbarDensityLabel'),
105
- "aria-expanded": open ? 'true' : undefined,
106
105
  "aria-haspopup": "menu",
107
- "aria-controls": densityMenuId,
106
+ "aria-expanded": open,
107
+ "aria-controls": open ? densityMenuId : undefined,
108
108
  id: densityButtonId
109
109
  }, other, {
110
110
  onClick: handleDensitySelectorOpen
@@ -19,8 +19,8 @@ export var GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function G
19
19
  other = _objectWithoutProperties(props, _excluded);
20
20
  var apiRef = useGridApiContext();
21
21
  var rootProps = useGridRootProps();
22
- var buttonId = useId();
23
- var menuId = useId();
22
+ var exportButtonId = useId();
23
+ var exportMenuId = useId();
24
24
  var _React$useState = React.useState(false),
25
25
  _React$useState2 = _slicedToArray(_React$useState, 2),
26
26
  open = _React$useState2[0],
@@ -60,11 +60,11 @@ export var GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function G
60
60
  ref: handleRef,
61
61
  size: "small",
62
62
  startIcon: /*#__PURE__*/_jsx(rootProps.slots.exportIcon, {}),
63
- "aria-expanded": open ? 'true' : undefined,
63
+ "aria-expanded": open,
64
64
  "aria-label": apiRef.current.getLocaleText('toolbarExportLabel'),
65
65
  "aria-haspopup": "menu",
66
- "aria-labelledby": menuId,
67
- id: buttonId
66
+ "aria-controls": open ? exportMenuId : undefined,
67
+ id: exportButtonId
68
68
  }, other, {
69
69
  onClick: handleMenuOpen
70
70
  }, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseButton, {
@@ -75,9 +75,9 @@ export var GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function G
75
75
  onClickAway: handleMenuClickAway,
76
76
  position: "bottom-start",
77
77
  children: /*#__PURE__*/_jsx(MenuList, {
78
- id: menuId,
78
+ id: exportMenuId,
79
79
  className: gridClasses.menuList,
80
- "aria-labelledby": buttonId,
80
+ "aria-labelledby": exportButtonId,
81
81
  onKeyDown: handleListKeyDown,
82
82
  autoFocusItem: open,
83
83
  children: React.Children.map(children, function (child) {
@@ -4,7 +4,7 @@ var _excluded = ["componentsProps"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { styled } from '@mui/material/styles';
7
- import { unstable_composeClasses as composeClasses, unstable_capitalize as capitalize } from '@mui/utils';
7
+ import { unstable_composeClasses as composeClasses, unstable_capitalize as capitalize, unstable_useId as useId } from '@mui/utils';
8
8
  import Badge from '@mui/material/Badge';
9
9
  import { gridColumnLookupSelector } from '../../hooks/features/columns/gridColumnsSelector';
10
10
  import { useGridSelector } from '../../hooks/utils/useGridSelector';
@@ -26,7 +26,7 @@ var useUtilityClasses = function useUtilityClasses(ownerState) {
26
26
  var GridToolbarFilterListRoot = styled('ul', {
27
27
  name: 'MuiDataGrid',
28
28
  slot: 'ToolbarFilterList',
29
- overridesResolver: function overridesResolver(props, styles) {
29
+ overridesResolver: function overridesResolver(_props, styles) {
30
30
  return styles.toolbarFilterList;
31
31
  }
32
32
  })(function (_ref) {
@@ -48,6 +48,8 @@ var GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolbar
48
48
  var lookup = useGridSelector(apiRef, gridColumnLookupSelector);
49
49
  var preferencePanel = useGridSelector(apiRef, gridPreferencePanelStateSelector);
50
50
  var classes = useUtilityClasses(rootProps);
51
+ var filterButtonId = useId();
52
+ var filterPanelId = useId();
51
53
  var tooltipContentNode = React.useMemo(function () {
52
54
  if (preferencePanel.open) {
53
55
  return apiRef.current.getLocaleText('toolbarFiltersTooltipHide');
@@ -86,9 +88,9 @@ var GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolbar
86
88
  var open = preferencePanel.open,
87
89
  openedPanelValue = preferencePanel.openedPanelValue;
88
90
  if (open && openedPanelValue === GridPreferencePanelsValue.filters) {
89
- apiRef.current.hideFilterPanel();
91
+ apiRef.current.hidePreferences();
90
92
  } else {
91
- apiRef.current.showFilterPanel();
93
+ apiRef.current.showPreferences(GridPreferencePanelsValue.filters, filterPanelId, filterButtonId);
92
94
  }
93
95
  (_buttonProps$onClick = buttonProps.onClick) == null ? void 0 : _buttonProps$onClick.call(buttonProps, event);
94
96
  };
@@ -97,14 +99,19 @@ var GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolbar
97
99
  if (rootProps.disableColumnFilter) {
98
100
  return null;
99
101
  }
102
+ var isOpen = preferencePanel.open && preferencePanel.panelId === filterPanelId;
100
103
  return /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({
101
104
  title: tooltipContentNode,
102
105
  enterDelay: 1000
103
106
  }, other, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseTooltip, {
104
107
  children: /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
105
108
  ref: ref,
109
+ id: filterButtonId,
106
110
  size: "small",
107
111
  "aria-label": apiRef.current.getLocaleText('toolbarFiltersLabel'),
112
+ "aria-controls": isOpen ? filterPanelId : undefined,
113
+ "aria-expanded": isOpen,
114
+ "aria-haspopup": true,
108
115
  startIcon: /*#__PURE__*/_jsx(Badge, {
109
116
  badgeContent: activeFilters.length,
110
117
  color: "primary",
@@ -2,4 +2,4 @@ import { unstable_generateUtilityClasses as generateUtilityClasses, unstable_gen
2
2
  export function getDataGridUtilityClass(slot) {
3
3
  return generateUtilityClass('MuiDataGrid', slot);
4
4
  }
5
- export var gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell', 'cellContent', 'cellCheckbox', 'cellSkeleton', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnGroupHeader', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeader--showColumnBorder', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorderColor', 'cell--withRightBorder', 'columnHeader--withRightBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
5
+ export var gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell', 'cellContent', 'cellCheckbox', 'cellSkeleton', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnGroupHeader', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeader--showColumnBorder', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorderColor', 'cell--withRightBorder', 'columnHeader--withRightBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
@@ -82,10 +82,10 @@ export var GRID_DEFAULT_LOCALE_TEXT = {
82
82
  headerFilterOperatorIsAnyOf: 'Is any of',
83
83
  'headerFilterOperator=': 'Equals',
84
84
  'headerFilterOperator!=': 'Not equals',
85
- 'headerFilterOperator>': 'Is greater than',
86
- 'headerFilterOperator>=': 'Is greater than or equal to',
87
- 'headerFilterOperator<': 'Is less than',
88
- 'headerFilterOperator<=': 'Is less than or equal to',
85
+ 'headerFilterOperator>': 'Greater than',
86
+ 'headerFilterOperator>=': 'Greater than or equal to',
87
+ 'headerFilterOperator<': 'Less than',
88
+ 'headerFilterOperator<=': 'Less than or equal to',
89
89
  // Filter values text
90
90
  filterValueAny: 'any',
91
91
  filterValueTrue: 'true',
@@ -7,7 +7,8 @@ export var GRID_DEFAULT_STRATEGY = 'none';
7
7
  export var GRID_STRATEGIES_PROCESSORS = {
8
8
  rowTreeCreation: 'rowTree',
9
9
  filtering: 'rowTree',
10
- sorting: 'rowTree'
10
+ sorting: 'rowTree',
11
+ visibleRowsLookupCreation: 'rowTree'
11
12
  };
12
13
  /**
13
14
  * Implements a variant of the Strategy Pattern (see https://en.wikipedia.org/wiki/Strategy_pattern)
@@ -27,12 +27,12 @@ export var gridQuickFilterValuesSelector = createSelector(gridFilterModelSelecto
27
27
  });
28
28
 
29
29
  /**
30
- * @category Filtering
30
+ * @category Visible rows
31
31
  * @ignore - do not document.
32
32
  */
33
- export var gridVisibleRowsLookupSelector = createSelector(gridFilterStateSelector, function (filterState) {
34
- return filterState.visibleRowsLookup;
35
- });
33
+ export var gridVisibleRowsLookupSelector = function gridVisibleRowsLookupSelector(state) {
34
+ return state.visibleRowsLookup;
35
+ };
36
36
 
37
37
  /**
38
38
  * @category Filtering
@@ -11,4 +11,10 @@ export var getDefaultGridFilterModel = function getDefaultGridFilterModel() {
11
11
  /**
12
12
  * @param {GridRowId} rowId The id of the row we want to filter.
13
13
  * @param {(filterItem: GridFilterItem) => boolean} shouldApplyItem An optional callback to allow the filtering engine to only apply some items.
14
+ */
15
+
16
+ /**
17
+ * Visibility status for each row.
18
+ * A row is visible if it is passing the filters AND if its parents are expanded.
19
+ * If a row is not registered in this lookup, it is visible.
14
20
  */