@mui/x-data-grid 7.0.0-alpha.8 → 7.0.0-beta.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 (566) hide show
  1. package/CHANGELOG.md +508 -30
  2. package/DataGrid/DataGrid.js +6 -6
  3. package/DataGrid/useDataGridComponent.js +2 -1
  4. package/DataGrid/useDataGridProps.js +1 -0
  5. package/README.md +3 -3
  6. package/components/GridColumnHeaders.d.ts +3 -2
  7. package/components/GridColumnHeaders.js +3 -11
  8. package/components/GridDetailPanels.d.ts +5 -0
  9. package/components/GridDetailPanels.js +4 -0
  10. package/components/GridHeaders.d.ts +4 -0
  11. package/components/GridHeaders.js +53 -0
  12. package/components/GridPinnedRows.d.ts +7 -0
  13. package/components/GridPinnedRows.js +4 -0
  14. package/components/GridRow.d.ts +7 -4
  15. package/components/GridRow.js +161 -97
  16. package/components/GridScrollbarFillerCell.d.ts +7 -0
  17. package/components/GridScrollbarFillerCell.js +39 -0
  18. package/components/base/GridBody.d.ts +2 -13
  19. package/components/base/GridBody.js +2 -116
  20. package/components/base/GridOverlays.js +10 -21
  21. package/components/cell/GridActionsCellItem.d.ts +2 -2
  22. package/components/cell/GridCell.d.ts +15 -21
  23. package/components/cell/GridCell.js +67 -372
  24. package/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  25. package/components/columnHeaders/GridColumnHeaderItem.d.ts +2 -1
  26. package/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  27. package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -0
  28. package/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  29. package/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  30. package/components/columnsManagement/GridColumnsManagement.d.ts +36 -0
  31. package/components/columnsManagement/GridColumnsManagement.js +260 -0
  32. package/components/columnsManagement/index.d.ts +1 -0
  33. package/components/columnsManagement/index.js +1 -0
  34. package/components/columnsManagement/utils.d.ts +4 -0
  35. package/components/columnsManagement/utils.js +16 -0
  36. package/components/containers/GridRoot.js +18 -15
  37. package/components/containers/GridRootStyles.js +307 -204
  38. package/components/index.d.ts +1 -0
  39. package/components/index.js +1 -0
  40. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  41. package/components/panel/GridColumnsPanel.d.ts +0 -28
  42. package/components/panel/GridColumnsPanel.js +5 -213
  43. package/components/panel/GridPanel.js +3 -4
  44. package/components/panel/filterPanel/GridFilterForm.d.ts +6 -4
  45. package/components/panel/filterPanel/GridFilterForm.js +31 -14
  46. package/components/panel/filterPanel/GridFilterPanel.js +46 -20
  47. package/components/toolbar/GridToolbarColumnsButton.d.ts +13 -1
  48. package/components/toolbar/GridToolbarColumnsButton.js +40 -22
  49. package/components/toolbar/GridToolbarDensitySelector.d.ts +13 -1
  50. package/components/toolbar/GridToolbarDensitySelector.js +40 -22
  51. package/components/toolbar/GridToolbarExport.d.ts +10 -1
  52. package/components/toolbar/GridToolbarExport.js +6 -1
  53. package/components/toolbar/GridToolbarExportContainer.d.ts +15 -1
  54. package/components/toolbar/GridToolbarExportContainer.js +41 -23
  55. package/components/toolbar/GridToolbarFilterButton.d.ts +5 -4
  56. package/components/toolbar/GridToolbarFilterButton.js +6 -10
  57. package/components/virtualization/GridBottomContainer.d.ts +2 -0
  58. package/components/virtualization/GridBottomContainer.js +25 -0
  59. package/components/{containers → virtualization}/GridMainContainer.d.ts +2 -0
  60. package/components/virtualization/GridMainContainer.js +20 -0
  61. package/components/virtualization/GridTopContainer.d.ts +2 -0
  62. package/components/virtualization/GridTopContainer.js +35 -0
  63. package/components/virtualization/GridVirtualScrollbar.d.ts +7 -0
  64. package/components/virtualization/GridVirtualScrollbar.js +131 -0
  65. package/components/virtualization/GridVirtualScroller.d.ts +4 -4
  66. package/components/virtualization/GridVirtualScroller.js +69 -16
  67. package/components/virtualization/GridVirtualScrollerFiller.d.ts +4 -0
  68. package/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  69. package/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  70. package/constants/defaultGridSlotsComponents.js +8 -3
  71. package/constants/gridClasses.d.ts +72 -12
  72. package/constants/gridClasses.js +1 -1
  73. package/constants/localeTextConstants.js +4 -6
  74. package/hooks/core/gridCoreSelector.d.ts +6 -0
  75. package/hooks/core/gridCoreSelector.js +5 -0
  76. package/hooks/core/useGridApiInitialization.js +4 -0
  77. package/hooks/core/useGridInitialization.js +4 -0
  78. package/hooks/core/useGridRefs.d.ts +3 -0
  79. package/hooks/core/useGridRefs.js +13 -0
  80. package/hooks/core/useGridTheme.d.ts +3 -0
  81. package/hooks/core/useGridTheme.js +19 -0
  82. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -1
  83. package/hooks/features/columnGrouping/useGridColumnGrouping.js +7 -14
  84. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +13 -18
  85. package/hooks/features/columnHeaders/useGridColumnHeaders.js +68 -162
  86. package/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  87. package/hooks/features/columns/gridColumnsInterfaces.d.ts +17 -0
  88. package/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  89. package/hooks/features/columns/gridColumnsSelector.d.ts +14 -1
  90. package/hooks/features/columns/gridColumnsSelector.js +52 -0
  91. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -5
  92. package/hooks/features/columns/gridColumnsUtils.js +10 -12
  93. package/hooks/features/columns/index.d.ts +2 -2
  94. package/hooks/features/columns/index.js +2 -1
  95. package/hooks/features/columns/useGridColumnSpanning.js +62 -61
  96. package/hooks/features/columns/useGridColumns.js +20 -23
  97. package/hooks/features/dimensions/gridDimensionsApi.d.ts +60 -11
  98. package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +2 -0
  99. package/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  100. package/hooks/features/dimensions/index.d.ts +2 -0
  101. package/hooks/features/dimensions/index.js +1 -0
  102. package/hooks/features/dimensions/useGridDimensions.d.ts +7 -1
  103. package/hooks/features/dimensions/useGridDimensions.js +216 -148
  104. package/hooks/features/export/serializers/csvSerializer.js +2 -2
  105. package/hooks/features/filter/useGridFilter.js +3 -3
  106. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -2
  107. package/hooks/features/focus/gridFocusStateSelector.js +2 -6
  108. package/hooks/features/focus/useGridFocus.js +3 -3
  109. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  110. package/hooks/features/pagination/useGridPagination.js +3 -5
  111. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -0
  112. package/hooks/features/rows/gridRowsSelector.d.ts +2 -2
  113. package/hooks/features/rows/gridRowsSelector.js +5 -5
  114. package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
  115. package/hooks/features/rows/gridRowsUtils.js +8 -5
  116. package/hooks/features/rows/useGridRowsMeta.js +7 -4
  117. package/hooks/features/scroll/useGridScroll.js +8 -10
  118. package/hooks/features/sorting/gridSortingUtils.js +1 -1
  119. package/hooks/features/sorting/useGridSorting.d.ts +1 -1
  120. package/hooks/features/sorting/useGridSorting.js +15 -10
  121. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +14 -0
  122. package/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  123. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +27 -42
  124. package/hooks/features/virtualization/useGridVirtualScroller.js +441 -438
  125. package/hooks/features/virtualization/useGridVirtualization.d.ts +8 -0
  126. package/hooks/features/virtualization/useGridVirtualization.js +8 -1
  127. package/hooks/utils/index.d.ts +3 -0
  128. package/hooks/utils/index.js +4 -1
  129. package/hooks/utils/useGridAriaAttributes.js +1 -2
  130. package/hooks/utils/useGridNativeEventListener.js +4 -9
  131. package/hooks/utils/useResizeObserver.d.ts +2 -0
  132. package/hooks/utils/useResizeObserver.js +36 -0
  133. package/hooks/utils/useRunOnce.d.ts +5 -0
  134. package/hooks/utils/useRunOnce.js +18 -0
  135. package/index.js +1 -1
  136. package/internals/index.d.ts +12 -9
  137. package/internals/index.js +9 -7
  138. package/legacy/DataGrid/DataGrid.js +6 -6
  139. package/legacy/DataGrid/useDataGridComponent.js +2 -1
  140. package/legacy/DataGrid/useDataGridProps.js +1 -0
  141. package/legacy/components/GridColumnHeaders.js +3 -11
  142. package/legacy/components/GridDetailPanels.js +4 -0
  143. package/legacy/components/GridHeaders.js +53 -0
  144. package/legacy/components/GridPinnedRows.js +4 -0
  145. package/legacy/components/GridRow.js +159 -98
  146. package/legacy/components/GridScrollbarFillerCell.js +36 -0
  147. package/legacy/components/base/GridBody.js +2 -114
  148. package/legacy/components/base/GridOverlays.js +10 -25
  149. package/legacy/components/cell/GridCell.js +69 -377
  150. package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  151. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  152. package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  153. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  154. package/legacy/components/columnsManagement/GridColumnsManagement.js +300 -0
  155. package/legacy/components/columnsManagement/index.js +1 -0
  156. package/legacy/components/columnsManagement/utils.js +22 -0
  157. package/legacy/components/containers/GridRoot.js +18 -15
  158. package/legacy/components/containers/GridRootStyles.js +215 -137
  159. package/legacy/components/index.js +1 -0
  160. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  161. package/legacy/components/panel/GridColumnsPanel.js +5 -233
  162. package/legacy/components/panel/GridPanel.js +3 -4
  163. package/legacy/components/panel/filterPanel/GridFilterForm.js +30 -13
  164. package/legacy/components/panel/filterPanel/GridFilterPanel.js +49 -20
  165. package/legacy/components/toolbar/GridToolbarColumnsButton.js +40 -21
  166. package/legacy/components/toolbar/GridToolbarDensitySelector.js +40 -21
  167. package/legacy/components/toolbar/GridToolbarExport.js +6 -1
  168. package/legacy/components/toolbar/GridToolbarExportContainer.js +40 -21
  169. package/legacy/components/toolbar/GridToolbarFilterButton.js +6 -10
  170. package/legacy/components/virtualization/GridBottomContainer.js +25 -0
  171. package/legacy/components/virtualization/GridMainContainer.js +20 -0
  172. package/legacy/components/virtualization/GridTopContainer.js +35 -0
  173. package/legacy/components/virtualization/GridVirtualScrollbar.js +129 -0
  174. package/legacy/components/virtualization/GridVirtualScroller.js +67 -16
  175. package/legacy/components/virtualization/GridVirtualScrollerFiller.js +70 -0
  176. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  177. package/legacy/constants/defaultGridSlotsComponents.js +8 -3
  178. package/legacy/constants/gridClasses.js +1 -1
  179. package/legacy/constants/localeTextConstants.js +4 -6
  180. package/legacy/hooks/core/gridCoreSelector.js +7 -0
  181. package/legacy/hooks/core/useGridApiInitialization.js +4 -0
  182. package/legacy/hooks/core/useGridInitialization.js +4 -0
  183. package/legacy/hooks/core/useGridRefs.js +13 -0
  184. package/legacy/hooks/core/useGridTheme.js +21 -0
  185. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +7 -14
  186. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +69 -181
  187. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  188. package/legacy/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  189. package/legacy/hooks/features/columns/gridColumnsSelector.js +62 -0
  190. package/legacy/hooks/features/columns/gridColumnsUtils.js +10 -16
  191. package/legacy/hooks/features/columns/index.js +2 -1
  192. package/legacy/hooks/features/columns/useGridColumnSpanning.js +60 -59
  193. package/legacy/hooks/features/columns/useGridColumns.js +22 -23
  194. package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +3 -0
  195. package/legacy/hooks/features/dimensions/index.js +1 -0
  196. package/legacy/hooks/features/dimensions/useGridDimensions.js +226 -151
  197. package/legacy/hooks/features/export/serializers/csvSerializer.js +2 -2
  198. package/legacy/hooks/features/filter/useGridFilter.js +3 -3
  199. package/legacy/hooks/features/focus/gridFocusStateSelector.js +2 -6
  200. package/legacy/hooks/features/focus/useGridFocus.js +3 -3
  201. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  202. package/legacy/hooks/features/pagination/useGridPagination.js +3 -5
  203. package/legacy/hooks/features/rows/gridRowsSelector.js +5 -5
  204. package/legacy/hooks/features/rows/gridRowsUtils.js +8 -5
  205. package/legacy/hooks/features/rows/useGridRowsMeta.js +7 -4
  206. package/legacy/hooks/features/scroll/useGridScroll.js +8 -10
  207. package/legacy/hooks/features/sorting/gridSortingUtils.js +1 -1
  208. package/legacy/hooks/features/sorting/useGridSorting.js +15 -10
  209. package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +29 -1
  210. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +490 -483
  211. package/legacy/hooks/features/virtualization/useGridVirtualization.js +8 -1
  212. package/legacy/hooks/utils/index.js +4 -1
  213. package/legacy/hooks/utils/useGridAriaAttributes.js +1 -2
  214. package/legacy/hooks/utils/useGridNativeEventListener.js +4 -9
  215. package/legacy/hooks/utils/useResizeObserver.js +36 -0
  216. package/legacy/hooks/utils/useRunOnce.js +18 -0
  217. package/legacy/index.js +1 -1
  218. package/legacy/internals/index.js +9 -7
  219. package/legacy/locales/arSD.js +5 -6
  220. package/legacy/locales/beBY.js +5 -6
  221. package/legacy/locales/bgBG.js +5 -6
  222. package/legacy/locales/csCZ.js +5 -6
  223. package/legacy/locales/daDK.js +5 -6
  224. package/legacy/locales/deDE.js +5 -6
  225. package/legacy/locales/elGR.js +5 -6
  226. package/legacy/locales/esES.js +5 -6
  227. package/legacy/locales/faIR.js +5 -6
  228. package/legacy/locales/fiFI.js +5 -6
  229. package/legacy/locales/frFR.js +5 -6
  230. package/legacy/locales/heIL.js +5 -6
  231. package/legacy/locales/hrHR.js +160 -0
  232. package/legacy/locales/huHU.js +5 -6
  233. package/legacy/locales/index.js +4 -1
  234. package/legacy/locales/itIT.js +5 -6
  235. package/legacy/locales/jaJP.js +5 -6
  236. package/legacy/locales/koKR.js +5 -6
  237. package/legacy/locales/nbNO.js +5 -6
  238. package/legacy/locales/nlNL.js +5 -6
  239. package/legacy/locales/plPL.js +5 -6
  240. package/legacy/locales/ptBR.js +5 -6
  241. package/legacy/locales/ptPT.js +160 -0
  242. package/legacy/locales/roRO.js +5 -6
  243. package/legacy/locales/ruRU.js +5 -6
  244. package/legacy/locales/skSK.js +5 -6
  245. package/legacy/locales/svSE.js +5 -6
  246. package/legacy/locales/trTR.js +5 -6
  247. package/legacy/locales/ukUA.js +5 -6
  248. package/legacy/locales/urPK.js +5 -6
  249. package/legacy/locales/viVN.js +5 -6
  250. package/legacy/locales/zhCN.js +5 -6
  251. package/legacy/locales/zhHK.js +160 -0
  252. package/legacy/locales/zhTW.js +5 -6
  253. package/legacy/models/index.js +0 -1
  254. package/legacy/models/params/index.js +1 -2
  255. package/legacy/utils/utils.js +10 -1
  256. package/locales/arSD.js +5 -6
  257. package/locales/beBY.js +5 -6
  258. package/locales/bgBG.js +5 -6
  259. package/locales/csCZ.js +5 -6
  260. package/locales/daDK.js +5 -6
  261. package/locales/deDE.js +5 -6
  262. package/locales/elGR.js +5 -6
  263. package/locales/esES.js +5 -6
  264. package/locales/faIR.js +5 -6
  265. package/locales/fiFI.js +5 -6
  266. package/locales/frFR.js +5 -6
  267. package/locales/heIL.js +5 -6
  268. package/locales/hrHR.d.ts +1 -0
  269. package/locales/hrHR.js +148 -0
  270. package/locales/huHU.js +5 -6
  271. package/locales/index.d.ts +3 -0
  272. package/locales/index.js +4 -1
  273. package/locales/itIT.js +5 -6
  274. package/locales/jaJP.js +5 -6
  275. package/locales/koKR.js +5 -6
  276. package/locales/nbNO.js +5 -6
  277. package/locales/nlNL.js +5 -6
  278. package/locales/plPL.js +5 -6
  279. package/locales/ptBR.js +5 -6
  280. package/locales/ptPT.d.ts +1 -0
  281. package/locales/ptPT.js +148 -0
  282. package/locales/roRO.js +5 -6
  283. package/locales/ruRU.js +5 -6
  284. package/locales/skSK.js +5 -6
  285. package/locales/svSE.js +5 -6
  286. package/locales/trTR.js +5 -6
  287. package/locales/ukUA.js +5 -6
  288. package/locales/urPK.js +5 -6
  289. package/locales/viVN.js +5 -6
  290. package/locales/zhCN.js +5 -6
  291. package/locales/zhHK.d.ts +1 -0
  292. package/locales/zhHK.js +148 -0
  293. package/locales/zhTW.js +5 -6
  294. package/models/api/gridColumnGroupingApi.d.ts +2 -2
  295. package/models/api/gridCoreApi.d.ts +16 -16
  296. package/models/api/gridLocaleTextApi.d.ts +3 -5
  297. package/models/api/gridRowsMetaApi.d.ts +1 -1
  298. package/models/api/gridVirtualizationApi.d.ts +2 -3
  299. package/models/colDef/gridColType.d.ts +11 -2
  300. package/models/events/gridEventLookup.d.ts +3 -3
  301. package/models/gridFilterModel.d.ts +1 -1
  302. package/models/gridSlotsComponent.d.ts +21 -2
  303. package/models/gridSlotsComponentsProps.d.ts +4 -0
  304. package/models/gridStateCommunity.d.ts +5 -1
  305. package/models/index.d.ts +0 -1
  306. package/models/index.js +0 -1
  307. package/models/params/index.d.ts +0 -1
  308. package/models/params/index.js +1 -2
  309. package/models/props/DataGridProps.d.ts +6 -11
  310. package/modern/DataGrid/DataGrid.js +6 -6
  311. package/modern/DataGrid/useDataGridComponent.js +2 -1
  312. package/modern/DataGrid/useDataGridProps.js +1 -0
  313. package/modern/components/GridColumnHeaders.js +3 -11
  314. package/modern/components/GridDetailPanels.js +4 -0
  315. package/modern/components/GridHeaders.js +53 -0
  316. package/modern/components/GridPinnedRows.js +4 -0
  317. package/modern/components/GridRow.js +159 -96
  318. package/modern/components/GridScrollbarFillerCell.js +39 -0
  319. package/modern/components/base/GridBody.js +2 -116
  320. package/modern/components/base/GridOverlays.js +10 -16
  321. package/modern/components/cell/GridCell.js +65 -369
  322. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  323. package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  324. package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  325. package/modern/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  326. package/modern/components/columnsManagement/GridColumnsManagement.js +256 -0
  327. package/modern/components/columnsManagement/index.js +1 -0
  328. package/modern/components/columnsManagement/utils.js +16 -0
  329. package/modern/components/containers/GridRoot.js +18 -14
  330. package/modern/components/containers/GridRootStyles.js +307 -204
  331. package/modern/components/index.js +1 -0
  332. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  333. package/modern/components/panel/GridColumnsPanel.js +4 -209
  334. package/modern/components/panel/GridPanel.js +3 -4
  335. package/modern/components/panel/filterPanel/GridFilterForm.js +30 -13
  336. package/modern/components/panel/filterPanel/GridFilterPanel.js +46 -20
  337. package/modern/components/toolbar/GridToolbarColumnsButton.js +38 -21
  338. package/modern/components/toolbar/GridToolbarDensitySelector.js +38 -21
  339. package/modern/components/toolbar/GridToolbarExport.js +6 -1
  340. package/modern/components/toolbar/GridToolbarExportContainer.js +39 -22
  341. package/modern/components/toolbar/GridToolbarFilterButton.js +6 -10
  342. package/modern/components/virtualization/GridBottomContainer.js +25 -0
  343. package/modern/components/virtualization/GridMainContainer.js +20 -0
  344. package/modern/components/virtualization/GridTopContainer.js +35 -0
  345. package/modern/components/virtualization/GridVirtualScrollbar.js +131 -0
  346. package/modern/components/virtualization/GridVirtualScroller.js +69 -16
  347. package/modern/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  348. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  349. package/modern/constants/defaultGridSlotsComponents.js +8 -3
  350. package/modern/constants/gridClasses.js +1 -1
  351. package/modern/constants/localeTextConstants.js +4 -6
  352. package/modern/hooks/core/gridCoreSelector.js +5 -0
  353. package/modern/hooks/core/useGridApiInitialization.js +3 -0
  354. package/modern/hooks/core/useGridInitialization.js +4 -0
  355. package/modern/hooks/core/useGridRefs.js +13 -0
  356. package/modern/hooks/core/useGridTheme.js +19 -0
  357. package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +5 -12
  358. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +67 -160
  359. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  360. package/modern/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  361. package/modern/hooks/features/columns/gridColumnsSelector.js +51 -0
  362. package/modern/hooks/features/columns/gridColumnsUtils.js +10 -12
  363. package/modern/hooks/features/columns/index.js +2 -1
  364. package/modern/hooks/features/columns/useGridColumnSpanning.js +62 -61
  365. package/modern/hooks/features/columns/useGridColumns.js +19 -21
  366. package/modern/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  367. package/modern/hooks/features/dimensions/index.js +1 -0
  368. package/modern/hooks/features/dimensions/useGridDimensions.js +214 -146
  369. package/modern/hooks/features/export/serializers/csvSerializer.js +2 -2
  370. package/modern/hooks/features/filter/useGridFilter.js +3 -3
  371. package/modern/hooks/features/focus/gridFocusStateSelector.js +2 -6
  372. package/modern/hooks/features/focus/useGridFocus.js +3 -3
  373. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  374. package/modern/hooks/features/pagination/useGridPagination.js +3 -5
  375. package/modern/hooks/features/rows/gridRowsSelector.js +2 -2
  376. package/modern/hooks/features/rows/gridRowsUtils.js +8 -5
  377. package/modern/hooks/features/rows/useGridRowsMeta.js +7 -4
  378. package/modern/hooks/features/scroll/useGridScroll.js +8 -9
  379. package/modern/hooks/features/sorting/gridSortingUtils.js +1 -1
  380. package/modern/hooks/features/sorting/useGridSorting.js +15 -10
  381. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  382. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +435 -432
  383. package/modern/hooks/features/virtualization/useGridVirtualization.js +8 -1
  384. package/modern/hooks/utils/index.js +4 -1
  385. package/modern/hooks/utils/useGridAriaAttributes.js +1 -1
  386. package/modern/hooks/utils/useGridNativeEventListener.js +3 -9
  387. package/modern/hooks/utils/useResizeObserver.js +36 -0
  388. package/modern/hooks/utils/useRunOnce.js +18 -0
  389. package/modern/index.js +1 -1
  390. package/modern/internals/index.js +9 -7
  391. package/modern/locales/arSD.js +5 -6
  392. package/modern/locales/beBY.js +5 -6
  393. package/modern/locales/bgBG.js +5 -6
  394. package/modern/locales/csCZ.js +5 -6
  395. package/modern/locales/daDK.js +5 -6
  396. package/modern/locales/deDE.js +5 -6
  397. package/modern/locales/elGR.js +5 -6
  398. package/modern/locales/esES.js +5 -6
  399. package/modern/locales/faIR.js +5 -6
  400. package/modern/locales/fiFI.js +5 -6
  401. package/modern/locales/frFR.js +5 -6
  402. package/modern/locales/heIL.js +5 -6
  403. package/modern/locales/hrHR.js +148 -0
  404. package/modern/locales/huHU.js +5 -6
  405. package/modern/locales/index.js +4 -1
  406. package/modern/locales/itIT.js +5 -6
  407. package/modern/locales/jaJP.js +5 -6
  408. package/modern/locales/koKR.js +5 -6
  409. package/modern/locales/nbNO.js +5 -6
  410. package/modern/locales/nlNL.js +5 -6
  411. package/modern/locales/plPL.js +5 -6
  412. package/modern/locales/ptBR.js +5 -6
  413. package/modern/locales/ptPT.js +148 -0
  414. package/modern/locales/roRO.js +5 -6
  415. package/modern/locales/ruRU.js +5 -6
  416. package/modern/locales/skSK.js +5 -6
  417. package/modern/locales/svSE.js +5 -6
  418. package/modern/locales/trTR.js +5 -6
  419. package/modern/locales/ukUA.js +5 -6
  420. package/modern/locales/urPK.js +5 -6
  421. package/modern/locales/viVN.js +5 -6
  422. package/modern/locales/zhCN.js +5 -6
  423. package/modern/locales/zhHK.js +148 -0
  424. package/modern/locales/zhTW.js +5 -6
  425. package/modern/models/index.js +0 -1
  426. package/modern/models/params/index.js +1 -2
  427. package/modern/utils/utils.js +10 -1
  428. package/node/DataGrid/DataGrid.js +6 -6
  429. package/node/DataGrid/useDataGridComponent.js +1 -0
  430. package/node/DataGrid/useDataGridProps.js +1 -0
  431. package/node/components/GridColumnHeaders.js +3 -11
  432. package/node/components/GridDetailPanels.js +10 -0
  433. package/node/components/GridHeaders.js +60 -0
  434. package/node/components/GridPinnedRows.js +10 -0
  435. package/node/components/GridRow.js +157 -94
  436. package/node/components/GridScrollbarFillerCell.js +47 -0
  437. package/node/components/base/GridBody.js +7 -118
  438. package/node/components/base/GridOverlays.js +9 -15
  439. package/node/components/cell/GridCell.js +66 -369
  440. package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  441. package/node/components/columnHeaders/GridColumnHeaderItem.js +8 -4
  442. package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  443. package/node/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  444. package/node/components/columnsManagement/GridColumnsManagement.js +264 -0
  445. package/node/components/columnsManagement/index.js +16 -0
  446. package/node/components/columnsManagement/utils.js +24 -0
  447. package/node/components/containers/GridRoot.js +17 -14
  448. package/node/components/containers/GridRootStyles.js +175 -72
  449. package/node/components/index.js +11 -0
  450. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  451. package/node/components/panel/GridColumnsPanel.js +4 -208
  452. package/node/components/panel/GridPanel.js +3 -4
  453. package/node/components/panel/filterPanel/GridFilterForm.js +29 -12
  454. package/node/components/panel/filterPanel/GridFilterPanel.js +45 -19
  455. package/node/components/toolbar/GridToolbarColumnsButton.js +36 -20
  456. package/node/components/toolbar/GridToolbarDensitySelector.js +36 -20
  457. package/node/components/toolbar/GridToolbarExport.js +6 -1
  458. package/node/components/toolbar/GridToolbarExportContainer.js +37 -21
  459. package/node/components/toolbar/GridToolbarFilterButton.js +6 -10
  460. package/node/components/virtualization/GridBottomContainer.js +34 -0
  461. package/node/components/{containers → virtualization}/GridMainContainer.js +7 -29
  462. package/node/components/virtualization/GridTopContainer.js +44 -0
  463. package/node/components/virtualization/GridVirtualScrollbar.js +138 -0
  464. package/node/components/virtualization/GridVirtualScroller.js +69 -17
  465. package/node/components/virtualization/GridVirtualScrollerFiller.js +77 -0
  466. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  467. package/node/constants/defaultGridSlotsComponents.js +6 -1
  468. package/node/constants/gridClasses.js +1 -1
  469. package/node/constants/localeTextConstants.js +4 -6
  470. package/node/hooks/core/gridCoreSelector.js +12 -0
  471. package/node/hooks/core/useGridApiInitialization.js +3 -0
  472. package/node/hooks/core/useGridInitialization.js +4 -0
  473. package/node/hooks/core/useGridRefs.js +22 -0
  474. package/node/hooks/core/useGridTheme.js +29 -0
  475. package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +5 -12
  476. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +65 -159
  477. package/node/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  478. package/node/hooks/features/columns/gridColumnsInterfaces.js +11 -1
  479. package/node/hooks/features/columns/gridColumnsSelector.js +52 -1
  480. package/node/hooks/features/columns/gridColumnsUtils.js +10 -13
  481. package/node/hooks/features/columns/index.js +22 -61
  482. package/node/hooks/features/columns/useGridColumnSpanning.js +62 -61
  483. package/node/hooks/features/columns/useGridColumns.js +20 -22
  484. package/node/hooks/features/dimensions/gridDimensionsSelectors.js +8 -0
  485. package/node/hooks/features/dimensions/index.js +11 -0
  486. package/node/hooks/features/dimensions/useGridDimensions.js +215 -144
  487. package/node/hooks/features/export/serializers/csvSerializer.js +2 -2
  488. package/node/hooks/features/filter/useGridFilter.js +2 -2
  489. package/node/hooks/features/focus/gridFocusStateSelector.js +3 -7
  490. package/node/hooks/features/focus/useGridFocus.js +2 -2
  491. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -15
  492. package/node/hooks/features/pagination/useGridPagination.js +3 -5
  493. package/node/hooks/features/rows/gridRowsSelector.js +2 -2
  494. package/node/hooks/features/rows/gridRowsUtils.js +8 -5
  495. package/node/hooks/features/rows/useGridRowsMeta.js +5 -3
  496. package/node/hooks/features/scroll/useGridScroll.js +8 -9
  497. package/node/hooks/features/sorting/gridSortingUtils.js +1 -1
  498. package/node/hooks/features/sorting/useGridSorting.js +15 -10
  499. package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  500. package/node/hooks/features/virtualization/useGridVirtualScroller.js +434 -431
  501. package/node/hooks/features/virtualization/useGridVirtualization.js +9 -1
  502. package/node/hooks/utils/index.js +36 -0
  503. package/node/hooks/utils/useGridAriaAttributes.js +1 -1
  504. package/node/hooks/utils/useGridNativeEventListener.js +3 -9
  505. package/node/hooks/utils/useResizeObserver.js +44 -0
  506. package/node/hooks/utils/useRunOnce.js +27 -0
  507. package/node/index.js +1 -1
  508. package/node/internals/index.js +86 -71
  509. package/node/locales/arSD.js +5 -6
  510. package/node/locales/beBY.js +5 -6
  511. package/node/locales/bgBG.js +5 -6
  512. package/node/locales/csCZ.js +5 -6
  513. package/node/locales/daDK.js +5 -6
  514. package/node/locales/deDE.js +5 -6
  515. package/node/locales/elGR.js +5 -6
  516. package/node/locales/esES.js +5 -6
  517. package/node/locales/faIR.js +5 -6
  518. package/node/locales/fiFI.js +5 -6
  519. package/node/locales/frFR.js +5 -6
  520. package/node/locales/heIL.js +5 -6
  521. package/node/locales/hrHR.js +154 -0
  522. package/node/locales/huHU.js +5 -6
  523. package/node/locales/index.js +33 -0
  524. package/node/locales/itIT.js +5 -6
  525. package/node/locales/jaJP.js +5 -6
  526. package/node/locales/koKR.js +5 -6
  527. package/node/locales/nbNO.js +5 -6
  528. package/node/locales/nlNL.js +5 -6
  529. package/node/locales/plPL.js +5 -6
  530. package/node/locales/ptBR.js +5 -6
  531. package/node/locales/ptPT.js +154 -0
  532. package/node/locales/roRO.js +5 -6
  533. package/node/locales/ruRU.js +5 -6
  534. package/node/locales/skSK.js +5 -6
  535. package/node/locales/svSE.js +5 -6
  536. package/node/locales/trTR.js +5 -6
  537. package/node/locales/ukUA.js +5 -6
  538. package/node/locales/urPK.js +5 -6
  539. package/node/locales/viVN.js +5 -6
  540. package/node/locales/zhCN.js +5 -6
  541. package/node/locales/zhHK.js +154 -0
  542. package/node/locales/zhTW.js +5 -6
  543. package/node/models/index.js +0 -11
  544. package/node/models/params/index.js +0 -11
  545. package/node/utils/utils.js +11 -1
  546. package/package.json +6 -6
  547. package/utils/utils.d.ts +6 -0
  548. package/utils/utils.js +10 -1
  549. package/components/DataGridVirtualScroller.d.ts +0 -3
  550. package/components/DataGridVirtualScroller.js +0 -35
  551. package/components/containers/GridMainContainer.js +0 -43
  552. package/legacy/components/DataGridVirtualScroller.js +0 -32
  553. package/legacy/components/containers/GridMainContainer.js +0 -45
  554. package/legacy/models/gridRootContainerRef.js +0 -1
  555. package/legacy/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  556. package/models/gridRootContainerRef.d.ts +0 -5
  557. package/models/gridRootContainerRef.js +0 -1
  558. package/models/params/gridRenderedRowsIntervalChangeParams.d.ts +0 -10
  559. package/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  560. package/modern/components/DataGridVirtualScroller.js +0 -35
  561. package/modern/components/containers/GridMainContainer.js +0 -42
  562. package/modern/models/gridRootContainerRef.js +0 -1
  563. package/modern/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  564. package/node/components/DataGridVirtualScroller.js +0 -42
  565. package/node/models/gridRootContainerRef.js +0 -5
  566. package/node/models/params/gridRenderedRowsIntervalChangeParams.js +0 -5
@@ -6,6 +6,7 @@ export * from './columnSelection';
6
6
  export * from '../material/icons';
7
7
  export * from './menu';
8
8
  export * from './panel';
9
+ export * from './columnsManagement';
9
10
  export * from './toolbar';
10
11
  export * from './GridApiContext';
11
12
  export * from './GridFooter';
@@ -6,6 +6,7 @@ export * from './columnSelection';
6
6
  export * from '../material/icons';
7
7
  export * from './menu';
8
8
  export * from './panel';
9
+ export * from './columnsManagement';
9
10
  export * from './toolbar';
10
11
  export * from './GridApiContext';
11
12
  export * from './GridFooter';
@@ -31,7 +31,7 @@ function GridColumnMenuSortItem(props) {
31
31
  const direction = event.currentTarget.getAttribute('data-value') || null;
32
32
  apiRef.current.sortColumn(colDef.field, direction === sortDirection ? null : direction);
33
33
  }, [apiRef, colDef, onClick, sortDirection]);
34
- if (!colDef || !colDef.sortable || !sortingOrder.some(item => !!item)) {
34
+ if (rootProps.disableColumnSorting || !colDef || !colDef.sortable || !sortingOrder.some(item => !!item)) {
35
35
  return null;
36
36
  }
37
37
  const getLabel = key => {
@@ -1,34 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { GridPanelWrapperProps } from './GridPanelWrapper';
3
- import type { GridColDef } from '../../models/colDef/gridColDef';
4
3
  export interface GridColumnsPanelProps extends GridPanelWrapperProps {
5
- sort?: 'asc' | 'desc';
6
- searchPredicate?: (column: GridColDef, searchValue: string) => boolean;
7
- /**
8
- * If `true`, the column search field will be focused automatically.
9
- * If `false`, the first column switch input will be focused automatically.
10
- * This helps to avoid input keyboard panel to popup automatically on touch devices.
11
- * @default true
12
- */
13
- autoFocusSearchField?: boolean;
14
- /**
15
- * If `true`, the `Hide all` button will not be displayed.
16
- * @default false
17
- */
18
- disableHideAllButton?: boolean;
19
- /**
20
- * If `true`, the `Show all` button will be disabled
21
- * @default false
22
- */
23
- disableShowAllButton?: boolean;
24
- /**
25
- * Returns the list of togglable columns.
26
- * If used, only those columns will be displayed in the panel
27
- * which are passed as the return value of the function.
28
- * @param {GridColDef[]} columns The `ColDef` list of all columns.
29
- * @returns {GridColDef['field'][]} The list of togglable columns' field names.
30
- */
31
- getTogglableColumns?: (columns: GridColDef[]) => GridColDef['field'][];
32
4
  }
33
5
  declare function GridColumnsPanel(props: GridColumnsPanelProps): React.JSX.Element;
34
6
  declare namespace GridColumnsPanel {
@@ -1,196 +1,15 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["sort", "searchPredicate", "autoFocusSearchField", "disableHideAllButton", "disableShowAllButton", "getTogglableColumns"];
4
2
  import * as React from 'react';
5
3
  import PropTypes from 'prop-types';
6
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
7
- import IconButton from '@mui/material/IconButton';
8
- import { switchClasses } from '@mui/material/Switch';
9
- import FormControlLabel from '@mui/material/FormControlLabel';
10
- import { styled } from '@mui/material/styles';
11
- import { gridColumnDefinitionsSelector, gridColumnVisibilityModelSelector } from '../../hooks/features/columns/gridColumnsSelector';
12
- import { useGridSelector } from '../../hooks/utils/useGridSelector';
13
- import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
14
- import { GridPanelContent } from './GridPanelContent';
15
- import { GridPanelFooter } from './GridPanelFooter';
16
- import { GridPanelHeader } from './GridPanelHeader';
17
4
  import { GridPanelWrapper } from './GridPanelWrapper';
18
- import { GRID_EXPERIMENTAL_ENABLED } from '../../constants/envConstants';
5
+ import { GridColumnsManagement } from '../columnsManagement';
19
6
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
20
- import { getDataGridUtilityClass } from '../../constants/gridClasses';
21
7
  import { jsx as _jsx } from "react/jsx-runtime";
22
- import { jsxs as _jsxs } from "react/jsx-runtime";
23
- const useUtilityClasses = ownerState => {
24
- const {
25
- classes
26
- } = ownerState;
27
- const slots = {
28
- root: ['columnsPanel'],
29
- columnsPanelRow: ['columnsPanelRow']
30
- };
31
- return composeClasses(slots, getDataGridUtilityClass, classes);
32
- };
33
- const GridColumnsPanelRoot = styled('div', {
34
- name: 'MuiDataGrid',
35
- slot: 'ColumnsPanel',
36
- overridesResolver: (props, styles) => styles.columnsPanel
37
- })({
38
- padding: '8px 0px 8px 8px'
39
- });
40
- const GridColumnsPanelRowRoot = styled('div', {
41
- name: 'MuiDataGrid',
42
- slot: 'ColumnsPanelRow',
43
- overridesResolver: (props, styles) => styles.columnsPanelRow
44
- })(({
45
- theme
46
- }) => ({
47
- display: 'flex',
48
- justifyContent: 'space-between',
49
- padding: '1px 8px 1px 7px',
50
- [`& .${switchClasses.root}`]: {
51
- marginRight: theme.spacing(0.5)
52
- }
53
- }));
54
- const GridIconButtonRoot = styled(IconButton)({
55
- justifyContent: 'flex-end'
56
- });
57
- const collator = new Intl.Collator();
58
- const defaultSearchPredicate = (column, searchValue) => {
59
- return (column.headerName || column.field).toLowerCase().indexOf(searchValue) > -1;
60
- };
61
8
  function GridColumnsPanel(props) {
62
- var _rootProps$slotProps, _rootProps$slotProps3, _rootProps$slotProps4;
63
- const apiRef = useGridApiContext();
64
- const searchInputRef = React.useRef(null);
65
- const columns = useGridSelector(apiRef, gridColumnDefinitionsSelector);
66
- const columnVisibilityModel = useGridSelector(apiRef, gridColumnVisibilityModelSelector);
9
+ var _rootProps$slotProps;
67
10
  const rootProps = useGridRootProps();
68
- const [searchValue, setSearchValue] = React.useState('');
69
- const classes = useUtilityClasses(rootProps);
70
- const {
71
- sort,
72
- searchPredicate = defaultSearchPredicate,
73
- autoFocusSearchField = true,
74
- disableHideAllButton = false,
75
- disableShowAllButton = false,
76
- getTogglableColumns
77
- } = props,
78
- other = _objectWithoutPropertiesLoose(props, _excluded);
79
- const sortedColumns = React.useMemo(() => {
80
- switch (sort) {
81
- case 'asc':
82
- return [...columns].sort((a, b) => collator.compare(a.headerName || a.field, b.headerName || b.field));
83
- case 'desc':
84
- return [...columns].sort((a, b) => -collator.compare(a.headerName || a.field, b.headerName || b.field));
85
- default:
86
- return columns;
87
- }
88
- }, [columns, sort]);
89
- const toggleColumn = event => {
90
- const {
91
- name: field
92
- } = event.target;
93
- apiRef.current.setColumnVisibility(field, columnVisibilityModel[field] === false);
94
- };
95
- const toggleAllColumns = React.useCallback(isVisible => {
96
- const currentModel = gridColumnVisibilityModelSelector(apiRef);
97
- const newModel = _extends({}, currentModel);
98
- const togglableColumns = getTogglableColumns ? getTogglableColumns(columns) : null;
99
- columns.forEach(col => {
100
- if (col.hideable && (togglableColumns == null || togglableColumns.includes(col.field))) {
101
- if (isVisible) {
102
- // delete the key from the model instead of setting it to `true`
103
- delete newModel[col.field];
104
- } else {
105
- newModel[col.field] = false;
106
- }
107
- }
108
- });
109
- return apiRef.current.setColumnVisibilityModel(newModel);
110
- }, [apiRef, columns, getTogglableColumns]);
111
- const handleSearchValueChange = React.useCallback(event => {
112
- setSearchValue(event.target.value);
113
- }, []);
114
- const currentColumns = React.useMemo(() => {
115
- const togglableColumns = getTogglableColumns ? getTogglableColumns(sortedColumns) : null;
116
- const togglableSortedColumns = togglableColumns ? sortedColumns.filter(({
117
- field
118
- }) => togglableColumns.includes(field)) : sortedColumns;
119
- if (!searchValue) {
120
- return togglableSortedColumns;
121
- }
122
- return togglableSortedColumns.filter(column => searchPredicate(column, searchValue.toLowerCase()));
123
- }, [sortedColumns, searchValue, searchPredicate, getTogglableColumns]);
124
- const firstSwitchRef = React.useRef(null);
125
- React.useEffect(() => {
126
- if (autoFocusSearchField) {
127
- searchInputRef.current.focus();
128
- } else if (firstSwitchRef.current && typeof firstSwitchRef.current.focus === 'function') {
129
- firstSwitchRef.current.focus();
130
- }
131
- }, [autoFocusSearchField]);
132
- let firstHideableColumnFound = false;
133
- const isFirstHideableColumn = column => {
134
- if (firstHideableColumnFound === false && column.hideable !== false) {
135
- firstHideableColumnFound = true;
136
- return true;
137
- }
138
- return false;
139
- };
140
- return /*#__PURE__*/_jsxs(GridPanelWrapper, _extends({}, other, {
141
- children: [/*#__PURE__*/_jsx(GridPanelHeader, {
142
- children: /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({
143
- label: apiRef.current.getLocaleText('columnsPanelTextFieldLabel'),
144
- placeholder: apiRef.current.getLocaleText('columnsPanelTextFieldPlaceholder'),
145
- inputRef: searchInputRef,
146
- value: searchValue,
147
- onChange: handleSearchValueChange,
148
- variant: "standard",
149
- fullWidth: true
150
- }, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseTextField))
151
- }), /*#__PURE__*/_jsx(GridPanelContent, {
152
- children: /*#__PURE__*/_jsx(GridColumnsPanelRoot, {
153
- className: classes.root,
154
- ownerState: rootProps,
155
- children: currentColumns.map(column => {
156
- var _rootProps$slotProps2;
157
- return /*#__PURE__*/_jsxs(GridColumnsPanelRowRoot, {
158
- className: classes.columnsPanelRow,
159
- ownerState: rootProps,
160
- children: [/*#__PURE__*/_jsx(FormControlLabel, {
161
- control: /*#__PURE__*/_jsx(rootProps.slots.baseSwitch, _extends({
162
- disabled: column.hideable === false,
163
- checked: columnVisibilityModel[column.field] !== false,
164
- onClick: toggleColumn,
165
- name: column.field,
166
- size: "small",
167
- inputRef: isFirstHideableColumn(column) ? firstSwitchRef : undefined
168
- }, (_rootProps$slotProps2 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps2.baseSwitch)),
169
- label: column.headerName || column.field
170
- }), !rootProps.disableColumnReorder && GRID_EXPERIMENTAL_ENABLED && /*#__PURE__*/_jsx(GridIconButtonRoot, {
171
- draggable: true,
172
- "aria-label": apiRef.current.getLocaleText('columnsPanelDragIconLabel'),
173
- title: apiRef.current.getLocaleText('columnsPanelDragIconLabel'),
174
- size: "small",
175
- disabled: true,
176
- children: /*#__PURE__*/_jsx(rootProps.slots.columnReorderIcon, {})
177
- })]
178
- }, column.field);
179
- })
180
- })
181
- }), disableShowAllButton && disableHideAllButton ? null : /*#__PURE__*/_jsxs(GridPanelFooter, {
182
- children: [!disableHideAllButton ? /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
183
- onClick: () => toggleAllColumns(false)
184
- }, (_rootProps$slotProps3 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps3.baseButton, {
185
- disabled: disableHideAllButton,
186
- children: apiRef.current.getLocaleText('columnsPanelHideAllButton')
187
- })) : /*#__PURE__*/_jsx("span", {}), !disableShowAllButton ? /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
188
- onClick: () => toggleAllColumns(true)
189
- }, (_rootProps$slotProps4 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps4.baseButton, {
190
- disabled: disableShowAllButton,
191
- children: apiRef.current.getLocaleText('columnsPanelShowAllButton')
192
- })) : null]
193
- })]
11
+ return /*#__PURE__*/_jsx(GridPanelWrapper, _extends({}, props, {
12
+ children: /*#__PURE__*/_jsx(GridColumnsManagement, _extends({}, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.columnsManagement))
194
13
  }));
195
14
  }
196
15
  process.env.NODE_ENV !== "production" ? GridColumnsPanel.propTypes = {
@@ -198,33 +17,6 @@ process.env.NODE_ENV !== "production" ? GridColumnsPanel.propTypes = {
198
17
  // | These PropTypes are generated from the TypeScript type definitions |
199
18
  // | To update them edit the TypeScript types and run "yarn proptypes" |
200
19
  // ----------------------------------------------------------------------
201
- /**
202
- * If `true`, the column search field will be focused automatically.
203
- * If `false`, the first column switch input will be focused automatically.
204
- * This helps to avoid input keyboard panel to popup automatically on touch devices.
205
- * @default true
206
- */
207
- autoFocusSearchField: PropTypes.bool,
208
- /**
209
- * If `true`, the `Hide all` button will not be displayed.
210
- * @default false
211
- */
212
- disableHideAllButton: PropTypes.bool,
213
- /**
214
- * If `true`, the `Show all` button will be disabled
215
- * @default false
216
- */
217
- disableShowAllButton: PropTypes.bool,
218
- /**
219
- * Returns the list of togglable columns.
220
- * If used, only those columns will be displayed in the panel
221
- * which are passed as the return value of the function.
222
- * @param {GridColDef[]} columns The `ColDef` list of all columns.
223
- * @returns {GridColDef['field'][]} The list of togglable columns' field names.
224
- */
225
- getTogglableColumns: PropTypes.func,
226
- searchPredicate: PropTypes.func,
227
- slotProps: PropTypes.object,
228
- sort: PropTypes.oneOf(['asc', 'desc'])
20
+ slotProps: PropTypes.object
229
21
  } : void 0;
230
22
  export { GridColumnsPanel };
@@ -11,7 +11,6 @@ import Paper from '@mui/material/Paper';
11
11
  import Popper from '@mui/material/Popper';
12
12
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
13
13
  import { isEscapeKey } from '../../utils/keyboardUtils';
14
- import { gridClasses } from '../../constants/gridClasses';
15
14
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
16
15
  import { jsx as _jsx } from "react/jsx-runtime";
17
16
  export const gridPanelClasses = generateUtilityClasses('MuiDataGrid', ['panel', 'paper']);
@@ -71,9 +70,9 @@ const GridPanel = /*#__PURE__*/React.forwardRef((props, ref) => {
71
70
  const [anchorEl, setAnchorEl] = React.useState(null);
72
71
  React.useEffect(() => {
73
72
  var _apiRef$current$rootE;
74
- const columnHeadersElement = (_apiRef$current$rootE = apiRef.current.rootElementRef) == null || (_apiRef$current$rootE = _apiRef$current$rootE.current) == null ? void 0 : _apiRef$current$rootE.querySelector(`.${gridClasses.columnHeaders}`);
75
- if (columnHeadersElement) {
76
- setAnchorEl(columnHeadersElement);
73
+ const panelAnchor = (_apiRef$current$rootE = apiRef.current.rootElementRef) == null || (_apiRef$current$rootE = _apiRef$current$rootE.current) == null ? void 0 : _apiRef$current$rootE.querySelector('[data-id="gridPanelAnchor"]');
74
+ if (panelAnchor) {
75
+ setAnchorEl(panelAnchor);
77
76
  }
78
77
  }, [apiRef]);
79
78
  if (!anchorEl) {
@@ -20,10 +20,6 @@ export interface GridFilterFormProps {
20
20
  * If `true`, the logic operator field is visible.
21
21
  */
22
22
  showMultiFilterOperators?: boolean;
23
- /**
24
- * The current logic operator applied.
25
- */
26
- multiFilterOperator?: GridLogicOperator;
27
23
  /**
28
24
  * If `true`, disables the logic operator field but still renders it.
29
25
  */
@@ -84,6 +80,12 @@ export interface GridFilterFormProps {
84
80
  * @default {}
85
81
  */
86
82
  columnInputProps?: any;
83
+ /**
84
+ * `true` if the filter is disabled/read only.
85
+ * i.e. `colDef.fiterable = false` but passed in `filterModel`
86
+ * @default false
87
+ */
88
+ readOnly?: boolean;
87
89
  /**
88
90
  * Props passed to the value input component.
89
91
  * @default {}
@@ -1,13 +1,13 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["item", "hasMultipleFilters", "deleteFilter", "applyFilterChanges", "multiFilterOperator", "showMultiFilterOperators", "disableMultiFilterOperator", "applyMultiFilterOperatorChanges", "focusElementRef", "logicOperators", "columnsSort", "filterColumns", "deleteIconProps", "logicOperatorInputProps", "operatorInputProps", "columnInputProps", "valueInputProps", "children"],
3
+ const _excluded = ["item", "hasMultipleFilters", "deleteFilter", "applyFilterChanges", "showMultiFilterOperators", "disableMultiFilterOperator", "applyMultiFilterOperatorChanges", "focusElementRef", "logicOperators", "columnsSort", "filterColumns", "deleteIconProps", "logicOperatorInputProps", "operatorInputProps", "columnInputProps", "valueInputProps", "readOnly", "children"],
4
4
  _excluded2 = ["InputComponentProps"];
5
5
  import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import { unstable_composeClasses as composeClasses, unstable_useId as useId, unstable_capitalize as capitalize } from '@mui/utils';
8
8
  import { styled } from '@mui/material/styles';
9
9
  import clsx from 'clsx';
10
- import { gridFilterableColumnDefinitionsSelector } from '../../../hooks/features/columns/gridColumnsSelector';
10
+ import { gridFilterableColumnDefinitionsSelector, gridColumnLookupSelector } from '../../../hooks/features/columns/gridColumnsSelector';
11
11
  import { gridFilterModelSelector } from '../../../hooks/features/filter/gridFilterSelector';
12
12
  import { useGridSelector } from '../../../hooks/utils/useGridSelector';
13
13
  import { GridLogicOperator } from '../../../models/gridFilterItem';
@@ -97,13 +97,12 @@ const getLogicOperatorLocaleKey = logicOperator => {
97
97
  const getColumnLabel = col => col.headerName || col.field;
98
98
  const collator = new Intl.Collator();
99
99
  const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(props, ref) {
100
- var _rootProps$slotProps, _rootProps$slotProps2, _baseSelectProps$nati, _rootProps$slotProps3, _rootProps$slotProps4, _rootProps$slotProps5, _rootProps$slotProps6, _rootProps$slotProps7, _rootProps$slotProps8, _currentColumn$filter2;
100
+ var _filterModel$logicOpe, _rootProps$slotProps, _rootProps$slotProps2, _baseSelectProps$nati, _rootProps$slotProps3, _rootProps$slotProps4, _rootProps$slotProps5, _rootProps$slotProps6, _rootProps$slotProps7, _rootProps$slotProps8, _currentColumn$filter2;
101
101
  const {
102
102
  item,
103
103
  hasMultipleFilters,
104
104
  deleteFilter,
105
105
  applyFilterChanges,
106
- multiFilterOperator,
107
106
  showMultiFilterOperators,
108
107
  disableMultiFilterOperator,
109
108
  applyMultiFilterOperatorChanges,
@@ -115,10 +114,12 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
115
114
  logicOperatorInputProps = {},
116
115
  operatorInputProps = {},
117
116
  columnInputProps = {},
118
- valueInputProps = {}
117
+ valueInputProps = {},
118
+ readOnly
119
119
  } = props,
120
120
  other = _objectWithoutPropertiesLoose(props, _excluded);
121
121
  const apiRef = useGridApiContext();
122
+ const columnLookup = useGridSelector(apiRef, gridColumnLookupSelector);
122
123
  const filterableColumns = useGridSelector(apiRef, gridFilterableColumnDefinitionsSelector);
123
124
  const filterModel = useGridSelector(apiRef, gridFilterModelSelector);
124
125
  const columnSelectId = useId();
@@ -129,6 +130,7 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
129
130
  const classes = useUtilityClasses(rootProps);
130
131
  const valueRef = React.useRef(null);
131
132
  const filterSelectorRef = React.useRef(null);
133
+ const multiFilterOperator = (_filterModel$logicOpe = filterModel.logicOperator) != null ? _filterModel$logicOpe : GridLogicOperator.And;
132
134
  const hasLogicOperatorColumn = hasMultipleFilters && logicOperators.length > 0;
133
135
  const baseFormControlProps = ((_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseFormControl) || {};
134
136
  const baseSelectProps = ((_rootProps$slotProps2 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps2.baseSelect) || {};
@@ -144,6 +146,15 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
144
146
  selectedField
145
147
  } = React.useMemo(() => {
146
148
  let itemField = item.field;
149
+
150
+ // Yields a valid value if the current filter belongs to a column that is not filterable
151
+ const selectedNonFilterableColumn = columnLookup[item.field].filterable === false ? columnLookup[item.field] : null;
152
+ if (selectedNonFilterableColumn) {
153
+ return {
154
+ filteredColumns: [selectedNonFilterableColumn],
155
+ selectedField: itemField
156
+ };
157
+ }
147
158
  if (filterColumns === undefined || typeof filterColumns !== 'function') {
148
159
  return {
149
160
  filteredColumns: filterableColumns,
@@ -165,7 +176,7 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
165
176
  }),
166
177
  selectedField: itemField
167
178
  };
168
- }, [filterColumns, filterModel == null ? void 0 : filterModel.items, filterableColumns, item.field]);
179
+ }, [filterColumns, filterModel == null ? void 0 : filterModel.items, filterableColumns, item.field, columnLookup]);
169
180
  const sortedFilteredColumns = React.useMemo(() => {
170
181
  switch (columnsSort) {
171
182
  case 'asc':
@@ -274,7 +285,8 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
274
285
  "aria-label": apiRef.current.getLocaleText('filterPanelDeleteIconLabel'),
275
286
  title: apiRef.current.getLocaleText('filterPanelDeleteIconLabel'),
276
287
  onClick: handleDeleteFilter,
277
- size: "small"
288
+ size: "small",
289
+ disabled: readOnly
278
290
  }, (_rootProps$slotProps5 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps5.baseIconButton, {
279
291
  children: /*#__PURE__*/_jsx(rootProps.slots.filterPanelDeleteIcon, {
280
292
  fontSize: "small"
@@ -321,7 +333,8 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
321
333
  label: apiRef.current.getLocaleText('filterPanelColumns'),
322
334
  value: selectedField != null ? selectedField : '',
323
335
  onChange: changeColumn,
324
- native: isBaseSelectNative
336
+ native: isBaseSelectNative,
337
+ disabled: readOnly
325
338
  }, (_rootProps$slotProps7 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps7.baseSelect, {
326
339
  children: sortedFilteredColumns.map(col => /*#__PURE__*/_createElement(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {
327
340
  native: isBaseSelectNative,
@@ -346,7 +359,8 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
346
359
  value: item.operator,
347
360
  onChange: changeOperator,
348
361
  native: isBaseSelectNative,
349
- inputRef: filterSelectorRef
362
+ inputRef: filterSelectorRef,
363
+ disabled: readOnly
350
364
  }, (_rootProps$slotProps8 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps8.baseSelect, {
351
365
  children: currentColumn == null || (_currentColumn$filter2 = currentColumn.filterOperators) == null ? void 0 : _currentColumn$filter2.map(operator => /*#__PURE__*/_createElement(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {
352
366
  native: isBaseSelectNative,
@@ -364,7 +378,8 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
364
378
  apiRef: apiRef,
365
379
  item: item,
366
380
  applyValue: applyFilterChanges,
367
- focusElementRef: valueRef
381
+ focusElementRef: valueRef,
382
+ disabled: readOnly
368
383
  }, currentOperator.InputComponentProps, InputComponentProps), item.field) : null
369
384
  }))]
370
385
  }));
@@ -447,15 +462,17 @@ process.env.NODE_ENV !== "production" ? GridFilterForm.propTypes = {
447
462
  * @default [GridLogicOperator.And, GridLogicOperator.Or]
448
463
  */
449
464
  logicOperators: PropTypes.arrayOf(PropTypes.oneOf(['and', 'or']).isRequired),
450
- /**
451
- * The current logic operator applied.
452
- */
453
- multiFilterOperator: PropTypes.oneOf(['and', 'or']),
454
465
  /**
455
466
  * Props passed to the operator input component.
456
467
  * @default {}
457
468
  */
458
469
  operatorInputProps: PropTypes.any,
470
+ /**
471
+ * `true` if the filter is disabled/read only.
472
+ * i.e. `colDef.fiterable = false` but passed in `filterModel`
473
+ * @default false
474
+ */
475
+ readOnly: PropTypes.bool,
459
476
  /**
460
477
  * If `true`, the logic operator field is visible.
461
478
  */
@@ -12,7 +12,7 @@ import { GridFilterForm } from './GridFilterForm';
12
12
  import { useGridRootProps } from '../../../hooks/utils/useGridRootProps';
13
13
  import { useGridSelector } from '../../../hooks/utils/useGridSelector';
14
14
  import { gridFilterModelSelector } from '../../../hooks/features/filter/gridFilterSelector';
15
- import { gridFilterableColumnDefinitionsSelector } from '../../../hooks/features/columns/gridColumnsSelector';
15
+ import { gridFilterableColumnDefinitionsSelector, gridFilterableColumnLookupSelector } from '../../../hooks/features/columns/gridColumnsSelector';
16
16
  import { jsx as _jsx } from "react/jsx-runtime";
17
17
  import { jsxs as _jsxs } from "react/jsx-runtime";
18
18
  const getGridFilter = col => ({
@@ -26,6 +26,7 @@ const GridFilterPanel = /*#__PURE__*/React.forwardRef(function GridFilterPanel(p
26
26
  const rootProps = useGridRootProps();
27
27
  const filterModel = useGridSelector(apiRef, gridFilterModelSelector);
28
28
  const filterableColumns = useGridSelector(apiRef, gridFilterableColumnDefinitionsSelector);
29
+ const filterableColumnsLookup = useGridSelector(apiRef, gridFilterableColumnLookupSelector);
29
30
  const lastFilterRef = React.useRef(null);
30
31
  const placeholderFilter = React.useRef(null);
31
32
  const {
@@ -98,63 +99,88 @@ const GridFilterPanel = /*#__PURE__*/React.forwardRef(function GridFilterPanel(p
98
99
  return placeholderFilter.current ? [placeholderFilter.current] : [];
99
100
  }, [filterModel.items, getDefaultFilter]);
100
101
  const hasMultipleFilters = items.length > 1;
101
- const addNewFilter = () => {
102
+ const {
103
+ readOnlyFilters,
104
+ validFilters
105
+ } = React.useMemo(() => items.reduce((acc, item) => {
106
+ if (filterableColumnsLookup[item.field]) {
107
+ acc.validFilters.push(item);
108
+ } else {
109
+ acc.readOnlyFilters.push(item);
110
+ }
111
+ return acc;
112
+ }, {
113
+ readOnlyFilters: [],
114
+ validFilters: []
115
+ }), [items, filterableColumnsLookup]);
116
+ const addNewFilter = React.useCallback(() => {
102
117
  const newFilter = getNewFilter();
103
118
  if (!newFilter) {
104
119
  return;
105
120
  }
106
121
  apiRef.current.upsertFilterItems([...items, newFilter]);
107
- };
122
+ }, [apiRef, getNewFilter, items]);
108
123
  const deleteFilter = React.useCallback(item => {
109
- const shouldCloseFilterPanel = items.length === 1;
124
+ const shouldCloseFilterPanel = validFilters.length === 1;
110
125
  apiRef.current.deleteFilterItem(item);
111
126
  if (shouldCloseFilterPanel) {
112
127
  apiRef.current.hideFilterPanel();
113
128
  }
114
- }, [apiRef, items.length]);
115
- const handleRemoveAll = () => {
116
- if (items.length === 1 && items[0].value === undefined) {
117
- apiRef.current.deleteFilterItem(items[0]);
118
- apiRef.current.hideFilterPanel();
129
+ }, [apiRef, validFilters.length]);
130
+ const handleRemoveAll = React.useCallback(() => {
131
+ if (validFilters.length === 1 && validFilters[0].value === undefined) {
132
+ apiRef.current.deleteFilterItem(validFilters[0]);
133
+ return apiRef.current.hideFilterPanel();
119
134
  }
120
- apiRef.current.setFilterModel(_extends({}, filterModel, {
121
- items: []
135
+ return apiRef.current.setFilterModel(_extends({}, filterModel, {
136
+ items: readOnlyFilters
122
137
  }));
123
- };
138
+ }, [apiRef, readOnlyFilters, filterModel, validFilters]);
124
139
  React.useEffect(() => {
125
140
  if (logicOperators.length > 0 && filterModel.logicOperator && !logicOperators.includes(filterModel.logicOperator)) {
126
141
  applyFilterLogicOperator(logicOperators[0]);
127
142
  }
128
143
  }, [logicOperators, applyFilterLogicOperator, filterModel.logicOperator]);
129
144
  React.useEffect(() => {
130
- if (items.length > 0) {
145
+ if (validFilters.length > 0) {
131
146
  lastFilterRef.current.focus();
132
147
  }
133
- }, [items.length]);
148
+ }, [validFilters.length]);
134
149
  return /*#__PURE__*/_jsxs(GridPanelWrapper, _extends({
135
150
  ref: ref
136
151
  }, other, {
137
- children: [/*#__PURE__*/_jsx(GridPanelContent, {
138
- children: items.map((item, index) => /*#__PURE__*/_jsx(GridFilterForm, _extends({
152
+ children: [/*#__PURE__*/_jsxs(GridPanelContent, {
153
+ children: [readOnlyFilters.map((item, index) => /*#__PURE__*/_jsx(GridFilterForm, _extends({
139
154
  item: item,
140
155
  applyFilterChanges: applyFilter,
141
156
  deleteFilter: deleteFilter,
142
157
  hasMultipleFilters: hasMultipleFilters,
143
158
  showMultiFilterOperators: index > 0,
144
- multiFilterOperator: filterModel.logicOperator,
145
159
  disableMultiFilterOperator: index !== 1,
146
160
  applyMultiFilterOperatorChanges: applyFilterLogicOperator,
147
- focusElementRef: index === items.length - 1 ? lastFilterRef : null,
161
+ focusElementRef: null,
162
+ readOnly: true,
163
+ logicOperators: logicOperators,
164
+ columnsSort: columnsSort
165
+ }, filterFormProps), item.id == null ? index : item.id)), validFilters.map((item, index) => /*#__PURE__*/_jsx(GridFilterForm, _extends({
166
+ item: item,
167
+ applyFilterChanges: applyFilter,
168
+ deleteFilter: deleteFilter,
169
+ hasMultipleFilters: hasMultipleFilters,
170
+ showMultiFilterOperators: readOnlyFilters.length + index > 0,
171
+ disableMultiFilterOperator: readOnlyFilters.length + index !== 1,
172
+ applyMultiFilterOperatorChanges: applyFilterLogicOperator,
173
+ focusElementRef: index === validFilters.length - 1 ? lastFilterRef : null,
148
174
  logicOperators: logicOperators,
149
175
  columnsSort: columnsSort
150
- }, filterFormProps), item.id == null ? index : item.id))
176
+ }, filterFormProps), item.id == null ? index + readOnlyFilters.length : item.id))]
151
177
  }), !rootProps.disableMultipleColumnsFiltering && !(disableAddFilterButton && disableRemoveAllButton) ? /*#__PURE__*/_jsxs(GridPanelFooter, {
152
178
  children: [!disableAddFilterButton ? /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
153
179
  onClick: addNewFilter,
154
180
  startIcon: /*#__PURE__*/_jsx(rootProps.slots.filterPanelAddIcon, {})
155
181
  }, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseButton, {
156
182
  children: apiRef.current.getLocaleText('filterPanelAddFilter')
157
- })) : /*#__PURE__*/_jsx("span", {}), !disableRemoveAllButton ? /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
183
+ })) : /*#__PURE__*/_jsx("span", {}), !disableRemoveAllButton && validFilters.length > 0 ? /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
158
184
  onClick: handleRemoveAll,
159
185
  startIcon: /*#__PURE__*/_jsx(rootProps.slots.filterPanelRemoveAllIcon, {})
160
186
  }, (_rootProps$slotProps2 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps2.baseButton, {
@@ -1,3 +1,15 @@
1
1
  import * as React from 'react';
2
2
  import { ButtonProps } from '@mui/material/Button';
3
- export declare const GridToolbarColumnsButton: React.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
3
+ import { TooltipProps } from '@mui/material/Tooltip';
4
+ interface GridToolbarColumnsButtonProps {
5
+ /**
6
+ * The props used for each slot inside.
7
+ * @default {}
8
+ */
9
+ slotProps?: {
10
+ button?: Partial<ButtonProps>;
11
+ tooltip?: Partial<TooltipProps>;
12
+ };
13
+ }
14
+ declare const GridToolbarColumnsButton: React.ForwardRefExoticComponent<GridToolbarColumnsButtonProps & React.RefAttributes<HTMLButtonElement>>;
15
+ export { GridToolbarColumnsButton };