@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
@@ -10,10 +10,11 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _utils = require("@mui/utils");
13
+ var _styles = require("@mui/material/styles");
13
14
  var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
14
15
  var _filterPanelUtils = require("./filterPanelUtils");
15
16
  var _jsxRuntime = require("react/jsx-runtime");
16
- const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "getOptionLabel", "getOptionValue"];
17
+ const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "getOptionLabel", "getOptionValue", "placeholder", "tabIndex", "label", "headerFilterMenu", "isFilterActive", "clearButton"];
17
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
20
  const renderSingleSelectOptions = ({
@@ -40,6 +41,11 @@ const renderSingleSelectOptions = ({
40
41
  }), label);
41
42
  });
42
43
  };
44
+ const SingleSelectOperatorContainer = (0, _styles.styled)('div')({
45
+ display: 'flex',
46
+ alignItems: 'flex-end',
47
+ width: '100%'
48
+ });
43
49
  function GridFilterInputSingleSelect(props) {
44
50
  const {
45
51
  item,
@@ -48,7 +54,13 @@ function GridFilterInputSingleSelect(props) {
48
54
  apiRef,
49
55
  focusElementRef,
50
56
  getOptionLabel: getOptionLabelProp,
51
- getOptionValue: getOptionValueProp
57
+ getOptionValue: getOptionValueProp,
58
+ placeholder,
59
+ tabIndex,
60
+ label: labelProp,
61
+ headerFilterMenu,
62
+ isFilterActive,
63
+ clearButton
52
64
  } = props,
53
65
  others = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
54
66
  const [filterValueState, setFilterValueState] = React.useState(item.value ?? '');
@@ -106,36 +118,41 @@ function GridFilterInputSingleSelect(props) {
106
118
  if (!(0, _filterPanelUtils.isSingleSelectColDef)(resolvedColumn)) {
107
119
  return null;
108
120
  }
109
- const label = apiRef.current.getLocaleText('filterPanelInputLabel');
110
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
111
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseInputLabel, (0, _extends2.default)({}, rootProps.slotProps?.baseInputLabel, {
112
- id: labelId,
113
- shrink: true,
114
- variant: "standard",
115
- children: label
116
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseSelect, (0, _extends2.default)({
117
- id: id,
118
- label: label,
119
- labelId: labelId,
120
- value: filterValueState,
121
- onChange: onFilterChange,
122
- variant: "standard",
123
- type: type || 'text',
124
- inputProps: {
125
- ref: focusElementRef,
126
- placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder')
127
- },
128
- native: isSelectNative
129
- }, others, rootProps.slotProps?.baseSelect, {
130
- children: renderSingleSelectOptions({
131
- column: resolvedColumn,
132
- OptionComponent: rootProps.slots.baseSelectOption,
133
- getOptionLabel,
134
- getOptionValue,
135
- isSelectNative,
136
- baseSelectOptionProps: rootProps.slotProps?.baseSelectOption
137
- })
138
- }))]
121
+ const label = labelProp ?? apiRef.current.getLocaleText('filterPanelInputLabel');
122
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(SingleSelectOperatorContainer, {
123
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseFormControl, {
124
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseInputLabel, (0, _extends2.default)({}, rootProps.slotProps?.baseInputLabel, {
125
+ id: labelId,
126
+ htmlFor: id,
127
+ shrink: true,
128
+ variant: "standard",
129
+ children: label
130
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseSelect, (0, _extends2.default)({
131
+ id: id,
132
+ label: label,
133
+ labelId: labelId,
134
+ value: filterValueState,
135
+ onChange: onFilterChange,
136
+ startAdornment: isFilterActive ? headerFilterMenu : null,
137
+ variant: "standard",
138
+ type: type || 'text',
139
+ inputProps: {
140
+ tabIndex,
141
+ ref: focusElementRef,
142
+ placeholder: placeholder ?? apiRef.current.getLocaleText('filterPanelInputPlaceholder')
143
+ },
144
+ native: isSelectNative
145
+ }, others, rootProps.slotProps?.baseSelect, {
146
+ children: renderSingleSelectOptions({
147
+ column: resolvedColumn,
148
+ OptionComponent: rootProps.slots.baseSelectOption,
149
+ getOptionLabel,
150
+ getOptionValue,
151
+ isSelectNative,
152
+ baseSelectOptionProps: rootProps.slotProps?.baseSelectOption
153
+ })
154
+ }))]
155
+ }), clearButton]
139
156
  });
140
157
  }
141
158
  process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes = {
@@ -147,6 +164,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes =
147
164
  current: _propTypes.default.object.isRequired
148
165
  }).isRequired,
149
166
  applyValue: _propTypes.default.func.isRequired,
167
+ clearButton: _propTypes.default.node,
150
168
  focusElementRef: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.func, _propTypes.default.object]),
151
169
  /**
152
170
  * Used to determine the label displayed for a given value option.
@@ -160,6 +178,12 @@ process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes =
160
178
  * @returns {string} The value to be used.
161
179
  */
162
180
  getOptionValue: _propTypes.default.func,
181
+ headerFilterMenu: _propTypes.default.node,
182
+ /**
183
+ * It is `true` if the filter either has a value or an operator with no value
184
+ * required is selected (e.g. `isEmpty`)
185
+ */
186
+ isFilterActive: _propTypes.default.bool,
163
187
  item: _propTypes.default.shape({
164
188
  field: _propTypes.default.string.isRequired,
165
189
  id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
@@ -13,7 +13,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _utils = require("@mui/utils");
14
14
  var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
15
15
  var _jsxRuntime = require("react/jsx-runtime");
16
- const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef"];
16
+ const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "tabIndex", "disabled", "headerFilterMenu", "isFilterActive", "clearButton", "InputProps"];
17
17
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
19
  const SUBMIT_FILTER_STROKE_TIME = 500;
@@ -24,7 +24,13 @@ function GridFilterInputValue(props) {
24
24
  applyValue,
25
25
  type,
26
26
  apiRef,
27
- focusElementRef
27
+ focusElementRef,
28
+ tabIndex,
29
+ disabled,
30
+ headerFilterMenu,
31
+ isFilterActive,
32
+ clearButton,
33
+ InputProps
28
34
  } = props,
29
35
  others = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
30
36
  const filterTimeout = React.useRef();
@@ -55,9 +61,6 @@ function GridFilterInputValue(props) {
55
61
  const itemValue = item.value ?? '';
56
62
  setFilterValueState(String(itemValue));
57
63
  }, [item.value]);
58
- const InputProps = applying ? {
59
- endAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.loadIcon, {})
60
- } : others.InputProps;
61
64
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTextField, (0, _extends2.default)({
62
65
  id: id,
63
66
  label: apiRef.current.getLocaleText('filterPanelInputLabel'),
@@ -66,7 +69,20 @@ function GridFilterInputValue(props) {
66
69
  onChange: onFilterChange,
67
70
  variant: "standard",
68
71
  type: type || 'text',
69
- InputProps: InputProps,
72
+ InputProps: (0, _extends2.default)({}, applying || clearButton ? {
73
+ endAdornment: applying ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.loadIcon, {
74
+ fontSize: "small",
75
+ color: "action"
76
+ }) : clearButton
77
+ } : {}, headerFilterMenu && isFilterActive ? {
78
+ startAdornment: headerFilterMenu
79
+ } : {}, {
80
+ disabled
81
+ }, InputProps, {
82
+ inputProps: (0, _extends2.default)({
83
+ tabIndex
84
+ }, InputProps?.inputProps)
85
+ }),
70
86
  InputLabelProps: {
71
87
  shrink: true
72
88
  },
@@ -82,7 +98,14 @@ process.env.NODE_ENV !== "production" ? GridFilterInputValue.propTypes = {
82
98
  current: _propTypes.default.object.isRequired
83
99
  }).isRequired,
84
100
  applyValue: _propTypes.default.func.isRequired,
101
+ clearButton: _propTypes.default.node,
85
102
  focusElementRef: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.func, _propTypes.default.object]),
103
+ headerFilterMenu: _propTypes.default.node,
104
+ /**
105
+ * It is `true` if the filter either has a value or an operator with no value
106
+ * required is selected (e.g. `isEmpty`)
107
+ */
108
+ isFilterActive: _propTypes.default.bool,
86
109
  item: _propTypes.default.shape({
87
110
  field: _propTypes.default.string.isRequired,
88
111
  id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.GridFilterPanel = void 0;
7
+ exports.getGridFilter = exports.GridFilterPanel = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var React = _interopRequireWildcard(require("react"));
@@ -28,6 +28,7 @@ const getGridFilter = col => ({
28
28
  operator: col.filterOperators[0].value,
29
29
  id: Math.round(Math.random() * 1e5)
30
30
  });
31
+ exports.getGridFilter = getGridFilter;
31
32
  const GridFilterPanel = /*#__PURE__*/React.forwardRef(function GridFilterPanel(props, ref) {
32
33
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
33
34
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
@@ -3,9 +3,19 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {
7
+ GridFilterPanel: true
8
+ };
9
+ Object.defineProperty(exports, "GridFilterPanel", {
10
+ enumerable: true,
11
+ get: function () {
12
+ return _GridFilterPanel.GridFilterPanel;
13
+ }
14
+ });
6
15
  var _GridFilterForm = require("./GridFilterForm");
7
16
  Object.keys(_GridFilterForm).forEach(function (key) {
8
17
  if (key === "default" || key === "__esModule") return;
18
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
9
19
  if (key in exports && exports[key] === _GridFilterForm[key]) return;
10
20
  Object.defineProperty(exports, key, {
11
21
  enumerable: true,
@@ -17,6 +27,7 @@ Object.keys(_GridFilterForm).forEach(function (key) {
17
27
  var _GridFilterInputValue = require("./GridFilterInputValue");
18
28
  Object.keys(_GridFilterInputValue).forEach(function (key) {
19
29
  if (key === "default" || key === "__esModule") return;
30
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
20
31
  if (key in exports && exports[key] === _GridFilterInputValue[key]) return;
21
32
  Object.defineProperty(exports, key, {
22
33
  enumerable: true,
@@ -28,6 +39,7 @@ Object.keys(_GridFilterInputValue).forEach(function (key) {
28
39
  var _GridFilterInputDate = require("./GridFilterInputDate");
29
40
  Object.keys(_GridFilterInputDate).forEach(function (key) {
30
41
  if (key === "default" || key === "__esModule") return;
42
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
31
43
  if (key in exports && exports[key] === _GridFilterInputDate[key]) return;
32
44
  Object.defineProperty(exports, key, {
33
45
  enumerable: true,
@@ -39,6 +51,7 @@ Object.keys(_GridFilterInputDate).forEach(function (key) {
39
51
  var _GridFilterInputSingleSelect = require("./GridFilterInputSingleSelect");
40
52
  Object.keys(_GridFilterInputSingleSelect).forEach(function (key) {
41
53
  if (key === "default" || key === "__esModule") return;
54
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
42
55
  if (key in exports && exports[key] === _GridFilterInputSingleSelect[key]) return;
43
56
  Object.defineProperty(exports, key, {
44
57
  enumerable: true,
@@ -47,31 +60,35 @@ Object.keys(_GridFilterInputSingleSelect).forEach(function (key) {
47
60
  }
48
61
  });
49
62
  });
50
- var _GridFilterInputValueProps = require("./GridFilterInputValueProps");
51
- Object.keys(_GridFilterInputValueProps).forEach(function (key) {
63
+ var _GridFilterInputBoolean = require("./GridFilterInputBoolean");
64
+ Object.keys(_GridFilterInputBoolean).forEach(function (key) {
52
65
  if (key === "default" || key === "__esModule") return;
53
- if (key in exports && exports[key] === _GridFilterInputValueProps[key]) return;
66
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
67
+ if (key in exports && exports[key] === _GridFilterInputBoolean[key]) return;
54
68
  Object.defineProperty(exports, key, {
55
69
  enumerable: true,
56
70
  get: function () {
57
- return _GridFilterInputValueProps[key];
71
+ return _GridFilterInputBoolean[key];
58
72
  }
59
73
  });
60
74
  });
61
- var _GridFilterPanel = require("./GridFilterPanel");
62
- Object.keys(_GridFilterPanel).forEach(function (key) {
75
+ var _GridFilterInputValueProps = require("./GridFilterInputValueProps");
76
+ Object.keys(_GridFilterInputValueProps).forEach(function (key) {
63
77
  if (key === "default" || key === "__esModule") return;
64
- if (key in exports && exports[key] === _GridFilterPanel[key]) return;
78
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
79
+ if (key in exports && exports[key] === _GridFilterInputValueProps[key]) return;
65
80
  Object.defineProperty(exports, key, {
66
81
  enumerable: true,
67
82
  get: function () {
68
- return _GridFilterPanel[key];
83
+ return _GridFilterInputValueProps[key];
69
84
  }
70
85
  });
71
86
  });
87
+ var _GridFilterPanel = require("./GridFilterPanel");
72
88
  var _GridFilterInputMultipleValue = require("./GridFilterInputMultipleValue");
73
89
  Object.keys(_GridFilterInputMultipleValue).forEach(function (key) {
74
90
  if (key === "default" || key === "__esModule") return;
91
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
75
92
  if (key in exports && exports[key] === _GridFilterInputMultipleValue[key]) return;
76
93
  Object.defineProperty(exports, key, {
77
94
  enumerable: true,
@@ -83,6 +100,7 @@ Object.keys(_GridFilterInputMultipleValue).forEach(function (key) {
83
100
  var _GridFilterInputMultipleSingleSelect = require("./GridFilterInputMultipleSingleSelect");
84
101
  Object.keys(_GridFilterInputMultipleSingleSelect).forEach(function (key) {
85
102
  if (key === "default" || key === "__esModule") return;
103
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
86
104
  if (key in exports && exports[key] === _GridFilterInputMultipleSingleSelect[key]) return;
87
105
  Object.defineProperty(exports, key, {
88
106
  enumerable: true,
@@ -8,6 +8,7 @@ exports.GridToolbarColumnsButton = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
+ var _utils = require("@mui/material/utils");
11
12
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
12
13
  var _gridPreferencePanelSelector = require("../../hooks/features/preferencesPanel/gridPreferencePanelSelector");
13
14
  var _gridPreferencePanelsValue = require("../../hooks/features/preferencesPanel/gridPreferencePanelsValue");
@@ -22,17 +23,16 @@ const GridToolbarColumnsButton = /*#__PURE__*/React.forwardRef(function GridTool
22
23
  onClick
23
24
  } = props,
24
25
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
26
+ const columnButtonId = (0, _utils.unstable_useId)();
27
+ const columnPanelId = (0, _utils.unstable_useId)();
25
28
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
26
29
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
27
- const {
28
- open,
29
- openedPanelValue
30
- } = (0, _useGridSelector.useGridSelector)(apiRef, _gridPreferencePanelSelector.gridPreferencePanelStateSelector);
30
+ const preferencePanel = (0, _useGridSelector.useGridSelector)(apiRef, _gridPreferencePanelSelector.gridPreferencePanelStateSelector);
31
31
  const showColumns = event => {
32
- if (open && openedPanelValue === _gridPreferencePanelsValue.GridPreferencePanelsValue.columns) {
32
+ if (preferencePanel.open && preferencePanel.openedPanelValue === _gridPreferencePanelsValue.GridPreferencePanelsValue.columns) {
33
33
  apiRef.current.hidePreferences();
34
34
  } else {
35
- apiRef.current.showPreferences(_gridPreferencePanelsValue.GridPreferencePanelsValue.columns);
35
+ apiRef.current.showPreferences(_gridPreferencePanelsValue.GridPreferencePanelsValue.columns, columnPanelId, columnButtonId);
36
36
  }
37
37
  onClick?.(event);
38
38
  };
@@ -41,10 +41,15 @@ const GridToolbarColumnsButton = /*#__PURE__*/React.forwardRef(function GridTool
41
41
  if (rootProps.disableColumnSelector) {
42
42
  return null;
43
43
  }
44
+ const isOpen = preferencePanel.open && preferencePanel.panelId === columnPanelId;
44
45
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
45
46
  ref: ref,
47
+ id: columnButtonId,
46
48
  size: "small",
47
49
  "aria-label": apiRef.current.getLocaleText('toolbarColumnsLabel'),
50
+ "aria-haspopup": "menu",
51
+ "aria-expanded": isOpen,
52
+ "aria-controls": isOpen ? columnPanelId : undefined,
48
53
  startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnSelectorIcon, {})
49
54
  }, other, {
50
55
  onClick: showColumns
@@ -101,9 +101,9 @@ const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridTo
101
101
  size: "small",
102
102
  startIcon: startIcon,
103
103
  "aria-label": apiRef.current.getLocaleText('toolbarDensityLabel'),
104
- "aria-expanded": open ? 'true' : undefined,
105
104
  "aria-haspopup": "menu",
106
- "aria-controls": densityMenuId,
105
+ "aria-expanded": open,
106
+ "aria-controls": open ? densityMenuId : undefined,
107
107
  id: densityButtonId
108
108
  }, other, {
109
109
  onClick: handleDensitySelectorOpen
@@ -27,8 +27,8 @@ const GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function GridTo
27
27
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
28
28
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
29
29
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
30
- const buttonId = (0, _utils.unstable_useId)();
31
- const menuId = (0, _utils.unstable_useId)();
30
+ const exportButtonId = (0, _utils.unstable_useId)();
31
+ const exportMenuId = (0, _utils.unstable_useId)();
32
32
  const [open, setOpen] = React.useState(false);
33
33
  const buttonRef = React.useRef(null);
34
34
  const handleRef = (0, _utils.unstable_useForkRef)(ref, buttonRef);
@@ -61,11 +61,11 @@ const GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function GridTo
61
61
  ref: handleRef,
62
62
  size: "small",
63
63
  startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.exportIcon, {}),
64
- "aria-expanded": open ? 'true' : undefined,
64
+ "aria-expanded": open,
65
65
  "aria-label": apiRef.current.getLocaleText('toolbarExportLabel'),
66
66
  "aria-haspopup": "menu",
67
- "aria-labelledby": menuId,
68
- id: buttonId
67
+ "aria-controls": open ? exportMenuId : undefined,
68
+ id: exportButtonId
69
69
  }, other, {
70
70
  onClick: handleMenuOpen
71
71
  }, rootProps.slotProps?.baseButton, {
@@ -76,9 +76,9 @@ const GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function GridTo
76
76
  onClickAway: handleMenuClickAway,
77
77
  position: "bottom-start",
78
78
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuList.default, {
79
- id: menuId,
79
+ id: exportMenuId,
80
80
  className: _gridClasses.gridClasses.menuList,
81
- "aria-labelledby": buttonId,
81
+ "aria-labelledby": exportButtonId,
82
82
  onKeyDown: handleListKeyDown,
83
83
  autoFocusItem: open,
84
84
  children: React.Children.map(children, child => {
@@ -36,7 +36,7 @@ const useUtilityClasses = ownerState => {
36
36
  const GridToolbarFilterListRoot = (0, _styles.styled)('ul', {
37
37
  name: 'MuiDataGrid',
38
38
  slot: 'ToolbarFilterList',
39
- overridesResolver: (props, styles) => styles.toolbarFilterList
39
+ overridesResolver: (_props, styles) => styles.toolbarFilterList
40
40
  })(({
41
41
  theme
42
42
  }) => ({
@@ -55,6 +55,8 @@ const GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolb
55
55
  const lookup = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridColumnLookupSelector);
56
56
  const preferencePanel = (0, _useGridSelector.useGridSelector)(apiRef, _gridPreferencePanelSelector.gridPreferencePanelStateSelector);
57
57
  const classes = useUtilityClasses(rootProps);
58
+ const filterButtonId = (0, _utils.unstable_useId)();
59
+ const filterPanelId = (0, _utils.unstable_useId)();
58
60
  const tooltipContentNode = React.useMemo(() => {
59
61
  if (preferencePanel.open) {
60
62
  return apiRef.current.getLocaleText('toolbarFiltersTooltipHide');
@@ -89,9 +91,9 @@ const GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolb
89
91
  openedPanelValue
90
92
  } = preferencePanel;
91
93
  if (open && openedPanelValue === _gridPreferencePanelsValue.GridPreferencePanelsValue.filters) {
92
- apiRef.current.hideFilterPanel();
94
+ apiRef.current.hidePreferences();
93
95
  } else {
94
- apiRef.current.showFilterPanel();
96
+ apiRef.current.showPreferences(_gridPreferencePanelsValue.GridPreferencePanelsValue.filters, filterPanelId, filterButtonId);
95
97
  }
96
98
  buttonProps.onClick?.(event);
97
99
  };
@@ -100,14 +102,19 @@ const GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolb
100
102
  if (rootProps.disableColumnFilter) {
101
103
  return null;
102
104
  }
105
+ const isOpen = preferencePanel.open && preferencePanel.panelId === filterPanelId;
103
106
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, (0, _extends2.default)({
104
107
  title: tooltipContentNode,
105
108
  enterDelay: 1000
106
109
  }, other, rootProps.slotProps?.baseTooltip, {
107
110
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
108
111
  ref: ref,
112
+ id: filterButtonId,
109
113
  size: "small",
110
114
  "aria-label": apiRef.current.getLocaleText('toolbarFiltersLabel'),
115
+ "aria-controls": isOpen ? filterPanelId : undefined,
116
+ "aria-expanded": isOpen,
117
+ "aria-haspopup": true,
111
118
  startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Badge.default, {
112
119
  badgeContent: activeFilters.length,
113
120
  color: "primary",
@@ -64,6 +64,32 @@ const GRID_DEFAULT_LOCALE_TEXT = {
64
64
  filterOperatorIsEmpty: 'is empty',
65
65
  filterOperatorIsNotEmpty: 'is not empty',
66
66
  filterOperatorIsAnyOf: 'is any of',
67
+ 'filterOperator=': '=',
68
+ 'filterOperator!=': '!=',
69
+ 'filterOperator>': '>',
70
+ 'filterOperator>=': '>=',
71
+ 'filterOperator<': '<',
72
+ 'filterOperator<=': '<=',
73
+ // Header filter operators text
74
+ headerFilterOperatorContains: 'Contains',
75
+ headerFilterOperatorEquals: 'Equals',
76
+ headerFilterOperatorStartsWith: 'Starts with',
77
+ headerFilterOperatorEndsWith: 'Ends with',
78
+ headerFilterOperatorIs: 'Is',
79
+ headerFilterOperatorNot: 'Is not',
80
+ headerFilterOperatorAfter: 'Is after',
81
+ headerFilterOperatorOnOrAfter: 'Is on or after',
82
+ headerFilterOperatorBefore: 'Is before',
83
+ headerFilterOperatorOnOrBefore: 'Is on or before',
84
+ headerFilterOperatorIsEmpty: 'Is empty',
85
+ headerFilterOperatorIsNotEmpty: 'Is not empty',
86
+ headerFilterOperatorIsAnyOf: 'Is any of',
87
+ 'headerFilterOperator=': 'Equals',
88
+ 'headerFilterOperator!=': 'Not equals',
89
+ 'headerFilterOperator>': 'Is greater than',
90
+ 'headerFilterOperator>=': 'Is greater than or equal to',
91
+ 'headerFilterOperator<': 'Is less than',
92
+ 'headerFilterOperator<=': 'Is less than or equal to',
67
93
  // Filter values text
68
94
  filterValueAny: 'any',
69
95
  filterValueTrue: 'true',
@@ -16,7 +16,8 @@ exports.GRID_DEFAULT_STRATEGY = GRID_DEFAULT_STRATEGY;
16
16
  const GRID_STRATEGIES_PROCESSORS = {
17
17
  rowTreeCreation: 'rowTree',
18
18
  filtering: 'rowTree',
19
- sorting: 'rowTree'
19
+ sorting: 'rowTree',
20
+ visibleRowsLookupCreation: 'rowTree'
20
21
  };
21
22
  exports.GRID_STRATEGIES_PROCESSORS = GRID_STRATEGIES_PROCESSORS;
22
23
  /**
@@ -269,7 +269,7 @@ const useGridColumnHeaders = props => {
269
269
  const tabIndex = columnGroupHeaderTabIndexState !== null && columnGroupHeaderTabIndexState.depth === depth && columnFields.includes(columnGroupHeaderTabIndexState.field) ? 0 : -1;
270
270
  const headerInfo = {
271
271
  groupId,
272
- width: columnFields.map(field => apiRef.current.getColumn(field).computedWidth).reduce((acc, val) => acc + val, 0),
272
+ width: columnFields.reduce((acc, field) => acc + apiRef.current.getColumn(field).computedWidth, 0),
273
273
  fields: columnFields,
274
274
  colIndex: columnIndex,
275
275
  hasFocus,
@@ -325,6 +325,7 @@ const useGridColumnHeaders = props => {
325
325
  return {
326
326
  renderContext,
327
327
  getColumnHeaders,
328
+ getColumnsToRender,
328
329
  getColumnGroupHeaders,
329
330
  isDragging: !!dragCol,
330
331
  getRootProps: (other = {}) => (0, _extends2.default)({
@@ -333,7 +334,8 @@ const useGridColumnHeaders = props => {
333
334
  getInnerProps: () => ({
334
335
  ref: handleInnerRef,
335
336
  role: 'rowgroup'
336
- })
337
+ }),
338
+ headerHeight
337
339
  };
338
340
  };
339
341
  exports.useGridColumnHeaders = useGridColumnHeaders;
@@ -161,8 +161,8 @@ function useGridDimensions(apiRef, props) {
161
161
  if (!mainEl) {
162
162
  return;
163
163
  }
164
- const height = mainEl.offsetHeight || 0;
165
- const width = mainEl.offsetWidth || 0;
164
+ const height = mainEl.clientHeight || 0;
165
+ const width = mainEl.clientWidth || 0;
166
166
  const win = (0, _utils.unstable_ownerWindow)(mainEl);
167
167
  const computedStyle = win.getComputedStyle(mainEl);
168
168
  const paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;
@@ -39,9 +39,6 @@ const useGridEditing = (apiRef, props) => {
39
39
  if (isCellEditableProp) {
40
40
  return isCellEditableProp(params);
41
41
  }
42
- if (params.rowNode.type === 'pinnedRow') {
43
- return false;
44
- }
45
42
  return true;
46
43
  }, [isCellEditableProp]);
47
44
  const maybeDebounce = (id, field, debounceMs, callback) => {
@@ -27,11 +27,11 @@ exports.gridFilterModelSelector = gridFilterModelSelector;
27
27
  const gridQuickFilterValuesSelector = (0, _createSelector.createSelector)(gridFilterModelSelector, filterModel => filterModel.quickFilterValues);
28
28
 
29
29
  /**
30
- * @category Filtering
30
+ * @category Visible rows
31
31
  * @ignore - do not document.
32
32
  */
33
33
  exports.gridQuickFilterValuesSelector = gridQuickFilterValuesSelector;
34
- const gridVisibleRowsLookupSelector = (0, _createSelector.createSelector)(gridFilterStateSelector, filterState => filterState.visibleRowsLookup);
34
+ const gridVisibleRowsLookupSelector = state => state.visibleRowsLookup;
35
35
 
36
36
  /**
37
37
  * @category Filtering
@@ -16,4 +16,10 @@ const getDefaultGridFilterModel = () => ({
16
16
  * @param {GridRowId} rowId The id of the row we want to filter.
17
17
  * @param {(filterItem: GridFilterItem) => boolean} shouldApplyItem An optional callback to allow the filtering engine to only apply some items.
18
18
  */
19
+
20
+ /**
21
+ * Visibility status for each row.
22
+ * A row is visible if it is passing the filters AND if its parents are expanded.
23
+ * If a row is not registered in this lookup, it is visible.
24
+ */
19
25
  exports.getDefaultGridFilterModel = getDefaultGridFilterModel;