@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,195 +6,18 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.GridColumnsPanel = GridColumnsPanel;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
9
  var React = _interopRequireWildcard(require("react"));
11
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _utils = require("@mui/utils");
13
- var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
14
- var _Switch = require("@mui/material/Switch");
15
- var _FormControlLabel = _interopRequireDefault(require("@mui/material/FormControlLabel"));
16
- var _styles = require("@mui/material/styles");
17
- var _gridColumnsSelector = require("../../hooks/features/columns/gridColumnsSelector");
18
- var _useGridSelector = require("../../hooks/utils/useGridSelector");
19
- var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
20
- var _GridPanelContent = require("./GridPanelContent");
21
- var _GridPanelFooter = require("./GridPanelFooter");
22
- var _GridPanelHeader = require("./GridPanelHeader");
23
11
  var _GridPanelWrapper = require("./GridPanelWrapper");
24
- var _envConstants = require("../../constants/envConstants");
12
+ var _columnsManagement = require("../columnsManagement");
25
13
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
26
- var _gridClasses = require("../../constants/gridClasses");
27
14
  var _jsxRuntime = require("react/jsx-runtime");
28
- const _excluded = ["sort", "searchPredicate", "autoFocusSearchField", "disableHideAllButton", "disableShowAllButton", "getTogglableColumns"];
29
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
30
16
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
31
- const useUtilityClasses = ownerState => {
32
- const {
33
- classes
34
- } = ownerState;
35
- const slots = {
36
- root: ['columnsPanel'],
37
- columnsPanelRow: ['columnsPanelRow']
38
- };
39
- return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
40
- };
41
- const GridColumnsPanelRoot = (0, _styles.styled)('div', {
42
- name: 'MuiDataGrid',
43
- slot: 'ColumnsPanel',
44
- overridesResolver: (props, styles) => styles.columnsPanel
45
- })({
46
- padding: '8px 0px 8px 8px'
47
- });
48
- const GridColumnsPanelRowRoot = (0, _styles.styled)('div', {
49
- name: 'MuiDataGrid',
50
- slot: 'ColumnsPanelRow',
51
- overridesResolver: (props, styles) => styles.columnsPanelRow
52
- })(({
53
- theme
54
- }) => ({
55
- display: 'flex',
56
- justifyContent: 'space-between',
57
- padding: '1px 8px 1px 7px',
58
- [`& .${_Switch.switchClasses.root}`]: {
59
- marginRight: theme.spacing(0.5)
60
- }
61
- }));
62
- const GridIconButtonRoot = (0, _styles.styled)(_IconButton.default)({
63
- justifyContent: 'flex-end'
64
- });
65
- const collator = new Intl.Collator();
66
- const defaultSearchPredicate = (column, searchValue) => {
67
- return (column.headerName || column.field).toLowerCase().indexOf(searchValue) > -1;
68
- };
69
17
  function GridColumnsPanel(props) {
70
- const apiRef = (0, _useGridApiContext.useGridApiContext)();
71
- const searchInputRef = React.useRef(null);
72
- const columns = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridColumnDefinitionsSelector);
73
- const columnVisibilityModel = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridColumnVisibilityModelSelector);
74
18
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
75
- const [searchValue, setSearchValue] = React.useState('');
76
- const classes = useUtilityClasses(rootProps);
77
- const {
78
- sort,
79
- searchPredicate = defaultSearchPredicate,
80
- autoFocusSearchField = true,
81
- disableHideAllButton = false,
82
- disableShowAllButton = false,
83
- getTogglableColumns
84
- } = props,
85
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
86
- const sortedColumns = React.useMemo(() => {
87
- switch (sort) {
88
- case 'asc':
89
- return [...columns].sort((a, b) => collator.compare(a.headerName || a.field, b.headerName || b.field));
90
- case 'desc':
91
- return [...columns].sort((a, b) => -collator.compare(a.headerName || a.field, b.headerName || b.field));
92
- default:
93
- return columns;
94
- }
95
- }, [columns, sort]);
96
- const toggleColumn = event => {
97
- const {
98
- name: field
99
- } = event.target;
100
- apiRef.current.setColumnVisibility(field, columnVisibilityModel[field] === false);
101
- };
102
- const toggleAllColumns = React.useCallback(isVisible => {
103
- const currentModel = (0, _gridColumnsSelector.gridColumnVisibilityModelSelector)(apiRef);
104
- const newModel = (0, _extends2.default)({}, currentModel);
105
- const togglableColumns = getTogglableColumns ? getTogglableColumns(columns) : null;
106
- columns.forEach(col => {
107
- if (col.hideable && (togglableColumns == null || togglableColumns.includes(col.field))) {
108
- if (isVisible) {
109
- // delete the key from the model instead of setting it to `true`
110
- delete newModel[col.field];
111
- } else {
112
- newModel[col.field] = false;
113
- }
114
- }
115
- });
116
- return apiRef.current.setColumnVisibilityModel(newModel);
117
- }, [apiRef, columns, getTogglableColumns]);
118
- const handleSearchValueChange = React.useCallback(event => {
119
- setSearchValue(event.target.value);
120
- }, []);
121
- const currentColumns = React.useMemo(() => {
122
- const togglableColumns = getTogglableColumns ? getTogglableColumns(sortedColumns) : null;
123
- const togglableSortedColumns = togglableColumns ? sortedColumns.filter(({
124
- field
125
- }) => togglableColumns.includes(field)) : sortedColumns;
126
- if (!searchValue) {
127
- return togglableSortedColumns;
128
- }
129
- return togglableSortedColumns.filter(column => searchPredicate(column, searchValue.toLowerCase()));
130
- }, [sortedColumns, searchValue, searchPredicate, getTogglableColumns]);
131
- const firstSwitchRef = React.useRef(null);
132
- React.useEffect(() => {
133
- if (autoFocusSearchField) {
134
- searchInputRef.current.focus();
135
- } else if (firstSwitchRef.current && typeof firstSwitchRef.current.focus === 'function') {
136
- firstSwitchRef.current.focus();
137
- }
138
- }, [autoFocusSearchField]);
139
- let firstHideableColumnFound = false;
140
- const isFirstHideableColumn = column => {
141
- if (firstHideableColumnFound === false && column.hideable !== false) {
142
- firstHideableColumnFound = true;
143
- return true;
144
- }
145
- return false;
146
- };
147
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridPanelWrapper.GridPanelWrapper, (0, _extends2.default)({}, other, {
148
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridPanelHeader.GridPanelHeader, {
149
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTextField, (0, _extends2.default)({
150
- label: apiRef.current.getLocaleText('columnsPanelTextFieldLabel'),
151
- placeholder: apiRef.current.getLocaleText('columnsPanelTextFieldPlaceholder'),
152
- inputRef: searchInputRef,
153
- value: searchValue,
154
- onChange: handleSearchValueChange,
155
- variant: "standard",
156
- fullWidth: true
157
- }, rootProps.slotProps?.baseTextField))
158
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridPanelContent.GridPanelContent, {
159
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(GridColumnsPanelRoot, {
160
- className: classes.root,
161
- ownerState: rootProps,
162
- children: currentColumns.map(column => /*#__PURE__*/(0, _jsxRuntime.jsxs)(GridColumnsPanelRowRoot, {
163
- className: classes.columnsPanelRow,
164
- ownerState: rootProps,
165
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormControlLabel.default, {
166
- control: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseSwitch, (0, _extends2.default)({
167
- disabled: column.hideable === false,
168
- checked: columnVisibilityModel[column.field] !== false,
169
- onClick: toggleColumn,
170
- name: column.field,
171
- size: "small",
172
- inputRef: isFirstHideableColumn(column) ? firstSwitchRef : undefined
173
- }, rootProps.slotProps?.baseSwitch)),
174
- label: column.headerName || column.field
175
- }), !rootProps.disableColumnReorder && _envConstants.GRID_EXPERIMENTAL_ENABLED && /*#__PURE__*/(0, _jsxRuntime.jsx)(GridIconButtonRoot, {
176
- draggable: true,
177
- "aria-label": apiRef.current.getLocaleText('columnsPanelDragIconLabel'),
178
- title: apiRef.current.getLocaleText('columnsPanelDragIconLabel'),
179
- size: "small",
180
- disabled: true,
181
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnReorderIcon, {})
182
- })]
183
- }, column.field))
184
- })
185
- }), disableShowAllButton && disableHideAllButton ? null : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridPanelFooter.GridPanelFooter, {
186
- children: [!disableHideAllButton ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
187
- onClick: () => toggleAllColumns(false)
188
- }, rootProps.slotProps?.baseButton, {
189
- disabled: disableHideAllButton,
190
- children: apiRef.current.getLocaleText('columnsPanelHideAllButton')
191
- })) : /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}), !disableShowAllButton ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
192
- onClick: () => toggleAllColumns(true)
193
- }, rootProps.slotProps?.baseButton, {
194
- disabled: disableShowAllButton,
195
- children: apiRef.current.getLocaleText('columnsPanelShowAllButton')
196
- })) : null]
197
- })]
19
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridPanelWrapper.GridPanelWrapper, (0, _extends2.default)({}, props, {
20
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_columnsManagement.GridColumnsManagement, (0, _extends2.default)({}, rootProps.slotProps?.columnsManagement))
198
21
  }));
199
22
  }
200
23
  process.env.NODE_ENV !== "production" ? GridColumnsPanel.propTypes = {
@@ -202,32 +25,5 @@ process.env.NODE_ENV !== "production" ? GridColumnsPanel.propTypes = {
202
25
  // | These PropTypes are generated from the TypeScript type definitions |
203
26
  // | To update them edit the TypeScript types and run "yarn proptypes" |
204
27
  // ----------------------------------------------------------------------
205
- /**
206
- * If `true`, the column search field will be focused automatically.
207
- * If `false`, the first column switch input will be focused automatically.
208
- * This helps to avoid input keyboard panel to popup automatically on touch devices.
209
- * @default true
210
- */
211
- autoFocusSearchField: _propTypes.default.bool,
212
- /**
213
- * If `true`, the `Hide all` button will not be displayed.
214
- * @default false
215
- */
216
- disableHideAllButton: _propTypes.default.bool,
217
- /**
218
- * If `true`, the `Show all` button will be disabled
219
- * @default false
220
- */
221
- disableShowAllButton: _propTypes.default.bool,
222
- /**
223
- * Returns the list of togglable columns.
224
- * If used, only those columns will be displayed in the panel
225
- * which are passed as the return value of the function.
226
- * @param {GridColDef[]} columns The `ColDef` list of all columns.
227
- * @returns {GridColDef['field'][]} The list of togglable columns' field names.
228
- */
229
- getTogglableColumns: _propTypes.default.func,
230
- searchPredicate: _propTypes.default.func,
231
- slotProps: _propTypes.default.object,
232
- sort: _propTypes.default.oneOf(['asc', 'desc'])
28
+ slotProps: _propTypes.default.object
233
29
  } : void 0;
@@ -17,7 +17,6 @@ var _Paper = _interopRequireDefault(require("@mui/material/Paper"));
17
17
  var _Popper = _interopRequireDefault(require("@mui/material/Popper"));
18
18
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
19
19
  var _keyboardUtils = require("../../utils/keyboardUtils");
20
- var _gridClasses = require("../../constants/gridClasses");
21
20
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
22
21
  var _jsxRuntime = require("react/jsx-runtime");
23
22
  const _excluded = ["children", "className", "classes"];
@@ -79,9 +78,9 @@ const GridPanel = exports.GridPanel = /*#__PURE__*/React.forwardRef((props, ref)
79
78
  }], []);
80
79
  const [anchorEl, setAnchorEl] = React.useState(null);
81
80
  React.useEffect(() => {
82
- const columnHeadersElement = apiRef.current.rootElementRef?.current?.querySelector(`.${_gridClasses.gridClasses.columnHeaders}`);
83
- if (columnHeadersElement) {
84
- setAnchorEl(columnHeadersElement);
81
+ const panelAnchor = apiRef.current.rootElementRef?.current?.querySelector('[data-id="gridPanelAnchor"]');
82
+ if (panelAnchor) {
83
+ setAnchorEl(panelAnchor);
85
84
  }
86
85
  }, [apiRef]);
87
86
  if (!anchorEl) {
@@ -22,7 +22,7 @@ var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
22
22
  var _gridClasses = require("../../../constants/gridClasses");
23
23
  var _filterPanelUtils = require("./filterPanelUtils");
24
24
  var _jsxRuntime = require("react/jsx-runtime");
25
- const _excluded = ["item", "hasMultipleFilters", "deleteFilter", "applyFilterChanges", "multiFilterOperator", "showMultiFilterOperators", "disableMultiFilterOperator", "applyMultiFilterOperatorChanges", "focusElementRef", "logicOperators", "columnsSort", "filterColumns", "deleteIconProps", "logicOperatorInputProps", "operatorInputProps", "columnInputProps", "valueInputProps", "children"],
25
+ const _excluded = ["item", "hasMultipleFilters", "deleteFilter", "applyFilterChanges", "showMultiFilterOperators", "disableMultiFilterOperator", "applyMultiFilterOperatorChanges", "focusElementRef", "logicOperators", "columnsSort", "filterColumns", "deleteIconProps", "logicOperatorInputProps", "operatorInputProps", "columnInputProps", "valueInputProps", "readOnly", "children"],
26
26
  _excluded2 = ["InputComponentProps"];
27
27
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
28
28
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -110,7 +110,6 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
110
110
  hasMultipleFilters,
111
111
  deleteFilter,
112
112
  applyFilterChanges,
113
- multiFilterOperator,
114
113
  showMultiFilterOperators,
115
114
  disableMultiFilterOperator,
116
115
  applyMultiFilterOperatorChanges,
@@ -122,10 +121,12 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
122
121
  logicOperatorInputProps = {},
123
122
  operatorInputProps = {},
124
123
  columnInputProps = {},
125
- valueInputProps = {}
124
+ valueInputProps = {},
125
+ readOnly
126
126
  } = props,
127
127
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
128
128
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
129
+ const columnLookup = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridColumnLookupSelector);
129
130
  const filterableColumns = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridFilterableColumnDefinitionsSelector);
130
131
  const filterModel = (0, _useGridSelector.useGridSelector)(apiRef, _gridFilterSelector.gridFilterModelSelector);
131
132
  const columnSelectId = (0, _utils.unstable_useId)();
@@ -136,6 +137,7 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
136
137
  const classes = useUtilityClasses(rootProps);
137
138
  const valueRef = React.useRef(null);
138
139
  const filterSelectorRef = React.useRef(null);
140
+ const multiFilterOperator = filterModel.logicOperator ?? _gridFilterItem.GridLogicOperator.And;
139
141
  const hasLogicOperatorColumn = hasMultipleFilters && logicOperators.length > 0;
140
142
  const baseFormControlProps = rootProps.slotProps?.baseFormControl || {};
141
143
  const baseSelectProps = rootProps.slotProps?.baseSelect || {};
@@ -151,6 +153,15 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
151
153
  selectedField
152
154
  } = React.useMemo(() => {
153
155
  let itemField = item.field;
156
+
157
+ // Yields a valid value if the current filter belongs to a column that is not filterable
158
+ const selectedNonFilterableColumn = columnLookup[item.field].filterable === false ? columnLookup[item.field] : null;
159
+ if (selectedNonFilterableColumn) {
160
+ return {
161
+ filteredColumns: [selectedNonFilterableColumn],
162
+ selectedField: itemField
163
+ };
164
+ }
154
165
  if (filterColumns === undefined || typeof filterColumns !== 'function') {
155
166
  return {
156
167
  filteredColumns: filterableColumns,
@@ -172,7 +183,7 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
172
183
  }),
173
184
  selectedField: itemField
174
185
  };
175
- }, [filterColumns, filterModel?.items, filterableColumns, item.field]);
186
+ }, [filterColumns, filterModel?.items, filterableColumns, item.field, columnLookup]);
176
187
  const sortedFilteredColumns = React.useMemo(() => {
177
188
  switch (columnsSort) {
178
189
  case 'asc':
@@ -279,7 +290,8 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
279
290
  "aria-label": apiRef.current.getLocaleText('filterPanelDeleteIconLabel'),
280
291
  title: apiRef.current.getLocaleText('filterPanelDeleteIconLabel'),
281
292
  onClick: handleDeleteFilter,
282
- size: "small"
293
+ size: "small",
294
+ disabled: readOnly
283
295
  }, rootProps.slotProps?.baseIconButton, {
284
296
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.filterPanelDeleteIcon, {
285
297
  fontSize: "small"
@@ -326,7 +338,8 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
326
338
  label: apiRef.current.getLocaleText('filterPanelColumns'),
327
339
  value: selectedField ?? '',
328
340
  onChange: changeColumn,
329
- native: isBaseSelectNative
341
+ native: isBaseSelectNative,
342
+ disabled: readOnly
330
343
  }, rootProps.slotProps?.baseSelect, {
331
344
  children: sortedFilteredColumns.map(col => /*#__PURE__*/(0, _react.createElement)(rootProps.slots.baseSelectOption, (0, _extends2.default)({}, baseSelectOptionProps, {
332
345
  native: isBaseSelectNative,
@@ -351,7 +364,8 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
351
364
  value: item.operator,
352
365
  onChange: changeOperator,
353
366
  native: isBaseSelectNative,
354
- inputRef: filterSelectorRef
367
+ inputRef: filterSelectorRef,
368
+ disabled: readOnly
355
369
  }, rootProps.slotProps?.baseSelect, {
356
370
  children: currentColumn?.filterOperators?.map(operator => /*#__PURE__*/(0, _react.createElement)(rootProps.slots.baseSelectOption, (0, _extends2.default)({}, baseSelectOptionProps, {
357
371
  native: isBaseSelectNative,
@@ -369,7 +383,8 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
369
383
  apiRef: apiRef,
370
384
  item: item,
371
385
  applyValue: applyFilterChanges,
372
- focusElementRef: valueRef
386
+ focusElementRef: valueRef,
387
+ disabled: readOnly
373
388
  }, currentOperator.InputComponentProps, InputComponentProps), item.field) : null
374
389
  }))]
375
390
  }));
@@ -452,15 +467,17 @@ process.env.NODE_ENV !== "production" ? GridFilterForm.propTypes = {
452
467
  * @default [GridLogicOperator.And, GridLogicOperator.Or]
453
468
  */
454
469
  logicOperators: _propTypes.default.arrayOf(_propTypes.default.oneOf(['and', 'or']).isRequired),
455
- /**
456
- * The current logic operator applied.
457
- */
458
- multiFilterOperator: _propTypes.default.oneOf(['and', 'or']),
459
470
  /**
460
471
  * Props passed to the operator input component.
461
472
  * @default {}
462
473
  */
463
474
  operatorInputProps: _propTypes.default.any,
475
+ /**
476
+ * `true` if the filter is disabled/read only.
477
+ * i.e. `colDef.fiterable = false` but passed in `filterModel`
478
+ * @default false
479
+ */
480
+ readOnly: _propTypes.default.bool,
464
481
  /**
465
482
  * If `true`, the logic operator field is visible.
466
483
  */
@@ -34,6 +34,7 @@ const GridFilterPanel = exports.GridFilterPanel = /*#__PURE__*/React.forwardRef(
34
34
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
35
35
  const filterModel = (0, _useGridSelector.useGridSelector)(apiRef, _gridFilterSelector.gridFilterModelSelector);
36
36
  const filterableColumns = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridFilterableColumnDefinitionsSelector);
37
+ const filterableColumnsLookup = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridFilterableColumnLookupSelector);
37
38
  const lastFilterRef = React.useRef(null);
38
39
  const placeholderFilter = React.useRef(null);
39
40
  const {
@@ -103,63 +104,88 @@ const GridFilterPanel = exports.GridFilterPanel = /*#__PURE__*/React.forwardRef(
103
104
  return placeholderFilter.current ? [placeholderFilter.current] : [];
104
105
  }, [filterModel.items, getDefaultFilter]);
105
106
  const hasMultipleFilters = items.length > 1;
106
- const addNewFilter = () => {
107
+ const {
108
+ readOnlyFilters,
109
+ validFilters
110
+ } = React.useMemo(() => items.reduce((acc, item) => {
111
+ if (filterableColumnsLookup[item.field]) {
112
+ acc.validFilters.push(item);
113
+ } else {
114
+ acc.readOnlyFilters.push(item);
115
+ }
116
+ return acc;
117
+ }, {
118
+ readOnlyFilters: [],
119
+ validFilters: []
120
+ }), [items, filterableColumnsLookup]);
121
+ const addNewFilter = React.useCallback(() => {
107
122
  const newFilter = getNewFilter();
108
123
  if (!newFilter) {
109
124
  return;
110
125
  }
111
126
  apiRef.current.upsertFilterItems([...items, newFilter]);
112
- };
127
+ }, [apiRef, getNewFilter, items]);
113
128
  const deleteFilter = React.useCallback(item => {
114
- const shouldCloseFilterPanel = items.length === 1;
129
+ const shouldCloseFilterPanel = validFilters.length === 1;
115
130
  apiRef.current.deleteFilterItem(item);
116
131
  if (shouldCloseFilterPanel) {
117
132
  apiRef.current.hideFilterPanel();
118
133
  }
119
- }, [apiRef, items.length]);
120
- const handleRemoveAll = () => {
121
- if (items.length === 1 && items[0].value === undefined) {
122
- apiRef.current.deleteFilterItem(items[0]);
123
- apiRef.current.hideFilterPanel();
134
+ }, [apiRef, validFilters.length]);
135
+ const handleRemoveAll = React.useCallback(() => {
136
+ if (validFilters.length === 1 && validFilters[0].value === undefined) {
137
+ apiRef.current.deleteFilterItem(validFilters[0]);
138
+ return apiRef.current.hideFilterPanel();
124
139
  }
125
- apiRef.current.setFilterModel((0, _extends2.default)({}, filterModel, {
126
- items: []
140
+ return apiRef.current.setFilterModel((0, _extends2.default)({}, filterModel, {
141
+ items: readOnlyFilters
127
142
  }));
128
- };
143
+ }, [apiRef, readOnlyFilters, filterModel, validFilters]);
129
144
  React.useEffect(() => {
130
145
  if (logicOperators.length > 0 && filterModel.logicOperator && !logicOperators.includes(filterModel.logicOperator)) {
131
146
  applyFilterLogicOperator(logicOperators[0]);
132
147
  }
133
148
  }, [logicOperators, applyFilterLogicOperator, filterModel.logicOperator]);
134
149
  React.useEffect(() => {
135
- if (items.length > 0) {
150
+ if (validFilters.length > 0) {
136
151
  lastFilterRef.current.focus();
137
152
  }
138
- }, [items.length]);
153
+ }, [validFilters.length]);
139
154
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridPanelWrapper.GridPanelWrapper, (0, _extends2.default)({
140
155
  ref: ref
141
156
  }, other, {
142
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridPanelContent.GridPanelContent, {
143
- children: items.map((item, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridFilterForm.GridFilterForm, (0, _extends2.default)({
157
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridPanelContent.GridPanelContent, {
158
+ children: [readOnlyFilters.map((item, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridFilterForm.GridFilterForm, (0, _extends2.default)({
144
159
  item: item,
145
160
  applyFilterChanges: applyFilter,
146
161
  deleteFilter: deleteFilter,
147
162
  hasMultipleFilters: hasMultipleFilters,
148
163
  showMultiFilterOperators: index > 0,
149
- multiFilterOperator: filterModel.logicOperator,
150
164
  disableMultiFilterOperator: index !== 1,
151
165
  applyMultiFilterOperatorChanges: applyFilterLogicOperator,
152
- focusElementRef: index === items.length - 1 ? lastFilterRef : null,
166
+ focusElementRef: null,
167
+ readOnly: true,
168
+ logicOperators: logicOperators,
169
+ columnsSort: columnsSort
170
+ }, filterFormProps), item.id == null ? index : item.id)), validFilters.map((item, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridFilterForm.GridFilterForm, (0, _extends2.default)({
171
+ item: item,
172
+ applyFilterChanges: applyFilter,
173
+ deleteFilter: deleteFilter,
174
+ hasMultipleFilters: hasMultipleFilters,
175
+ showMultiFilterOperators: readOnlyFilters.length + index > 0,
176
+ disableMultiFilterOperator: readOnlyFilters.length + index !== 1,
177
+ applyMultiFilterOperatorChanges: applyFilterLogicOperator,
178
+ focusElementRef: index === validFilters.length - 1 ? lastFilterRef : null,
153
179
  logicOperators: logicOperators,
154
180
  columnsSort: columnsSort
155
- }, filterFormProps), item.id == null ? index : item.id))
181
+ }, filterFormProps), item.id == null ? index + readOnlyFilters.length : item.id))]
156
182
  }), !rootProps.disableMultipleColumnsFiltering && !(disableAddFilterButton && disableRemoveAllButton) ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridPanelFooter.GridPanelFooter, {
157
183
  children: [!disableAddFilterButton ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
158
184
  onClick: addNewFilter,
159
185
  startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.filterPanelAddIcon, {})
160
186
  }, rootProps.slotProps?.baseButton, {
161
187
  children: apiRef.current.getLocaleText('filterPanelAddFilter')
162
- })) : /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}), !disableRemoveAllButton ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
188
+ })) : /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}), !disableRemoveAllButton && validFilters.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
163
189
  onClick: handleRemoveAll,
164
190
  startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.filterPanelRemoveAllIcon, {})
165
191
  }, rootProps.slotProps?.baseButton, {
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.GridToolbarColumnsButton = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
9
  var React = _interopRequireWildcard(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _utils = require("@mui/material/utils");
12
12
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
13
13
  var _gridPreferencePanelSelector = require("../../hooks/features/preferencesPanel/gridPreferencePanelSelector");
@@ -15,14 +15,14 @@ var _gridPreferencePanelsValue = require("../../hooks/features/preferencesPanel/
15
15
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
16
16
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
17
17
  var _jsxRuntime = require("react/jsx-runtime");
18
- const _excluded = ["onClick"];
19
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
19
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
20
  const GridToolbarColumnsButton = exports.GridToolbarColumnsButton = /*#__PURE__*/React.forwardRef(function GridToolbarColumnsButton(props, ref) {
22
21
  const {
23
- onClick
24
- } = props,
25
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
22
+ slotProps = {}
23
+ } = props;
24
+ const buttonProps = slotProps.button || {};
25
+ const tooltipProps = slotProps.tooltip || {};
26
26
  const columnButtonId = (0, _utils.unstable_useId)();
27
27
  const columnPanelId = (0, _utils.unstable_useId)();
28
28
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
@@ -34,7 +34,7 @@ const GridToolbarColumnsButton = exports.GridToolbarColumnsButton = /*#__PURE__*
34
34
  } else {
35
35
  apiRef.current.showPreferences(_gridPreferencePanelsValue.GridPreferencePanelsValue.columns, columnPanelId, columnButtonId);
36
36
  }
37
- onClick?.(event);
37
+ buttonProps.onClick?.(event);
38
38
  };
39
39
 
40
40
  // Disable the button if the corresponding is disabled
@@ -42,18 +42,34 @@ const GridToolbarColumnsButton = exports.GridToolbarColumnsButton = /*#__PURE__*
42
42
  return null;
43
43
  }
44
44
  const isOpen = preferencePanel.open && preferencePanel.panelId === columnPanelId;
45
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
46
- ref: ref,
47
- id: columnButtonId,
48
- size: "small",
49
- "aria-label": apiRef.current.getLocaleText('toolbarColumnsLabel'),
50
- "aria-haspopup": "menu",
51
- "aria-expanded": isOpen,
52
- "aria-controls": isOpen ? columnPanelId : undefined,
53
- startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnSelectorIcon, {})
54
- }, other, {
55
- onClick: showColumns
56
- }, rootProps.slotProps?.baseButton, {
57
- children: apiRef.current.getLocaleText('toolbarColumns')
45
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, (0, _extends2.default)({
46
+ title: apiRef.current.getLocaleText('toolbarColumnsLabel'),
47
+ enterDelay: 1000
48
+ }, tooltipProps, rootProps.slotProps?.baseTooltip, {
49
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
50
+ ref: ref,
51
+ id: columnButtonId,
52
+ size: "small",
53
+ "aria-label": apiRef.current.getLocaleText('toolbarColumnsLabel'),
54
+ "aria-haspopup": "menu",
55
+ "aria-expanded": isOpen,
56
+ "aria-controls": isOpen ? columnPanelId : undefined,
57
+ startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnSelectorIcon, {})
58
+ }, buttonProps, {
59
+ onClick: showColumns
60
+ }, rootProps.slotProps?.baseButton, {
61
+ children: apiRef.current.getLocaleText('toolbarColumns')
62
+ }))
58
63
  }));
59
- });
64
+ });
65
+ process.env.NODE_ENV !== "production" ? GridToolbarColumnsButton.propTypes = {
66
+ // ----------------------------- Warning --------------------------------
67
+ // | These PropTypes are generated from the TypeScript type definitions |
68
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
69
+ // ----------------------------------------------------------------------
70
+ /**
71
+ * The props used for each slot inside.
72
+ * @default {}
73
+ */
74
+ slotProps: _propTypes.default.object
75
+ } : void 0;