@mui/x-data-grid 7.0.0-alpha.8 → 7.0.0-alpha.9

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 (410) hide show
  1. package/CHANGELOG.md +379 -2
  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 +1 -1
  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 +260 -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/containers/GridRoot.js +18 -15
  31. package/components/containers/GridRootStyles.js +307 -204
  32. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  33. package/components/panel/GridPanel.js +3 -4
  34. package/components/panel/filterPanel/GridFilterForm.d.ts +6 -4
  35. package/components/panel/filterPanel/GridFilterForm.js +31 -14
  36. package/components/panel/filterPanel/GridFilterPanel.js +46 -20
  37. package/components/toolbar/GridToolbarColumnsButton.d.ts +13 -1
  38. package/components/toolbar/GridToolbarColumnsButton.js +40 -22
  39. package/components/toolbar/GridToolbarDensitySelector.d.ts +13 -1
  40. package/components/toolbar/GridToolbarDensitySelector.js +40 -22
  41. package/components/toolbar/GridToolbarExport.d.ts +10 -1
  42. package/components/toolbar/GridToolbarExport.js +6 -1
  43. package/components/toolbar/GridToolbarExportContainer.d.ts +15 -1
  44. package/components/toolbar/GridToolbarExportContainer.js +41 -23
  45. package/components/toolbar/GridToolbarFilterButton.d.ts +5 -4
  46. package/components/toolbar/GridToolbarFilterButton.js +6 -10
  47. package/components/virtualization/GridBottomContainer.d.ts +2 -0
  48. package/components/virtualization/GridBottomContainer.js +25 -0
  49. package/components/{containers → virtualization}/GridMainContainer.d.ts +2 -0
  50. package/components/virtualization/GridMainContainer.js +20 -0
  51. package/components/virtualization/GridTopContainer.d.ts +2 -0
  52. package/components/virtualization/GridTopContainer.js +35 -0
  53. package/components/virtualization/GridVirtualScrollbar.d.ts +7 -0
  54. package/components/virtualization/GridVirtualScrollbar.js +131 -0
  55. package/components/virtualization/GridVirtualScroller.d.ts +4 -4
  56. package/components/virtualization/GridVirtualScroller.js +69 -16
  57. package/components/virtualization/GridVirtualScrollerFiller.d.ts +4 -0
  58. package/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  59. package/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  60. package/constants/defaultGridSlotsComponents.js +6 -2
  61. package/constants/gridClasses.d.ts +60 -8
  62. package/constants/gridClasses.js +1 -1
  63. package/hooks/core/gridCoreSelector.d.ts +6 -0
  64. package/hooks/core/gridCoreSelector.js +5 -0
  65. package/hooks/core/useGridInitialization.js +4 -0
  66. package/hooks/core/useGridRefs.d.ts +3 -0
  67. package/hooks/core/useGridRefs.js +13 -0
  68. package/hooks/core/useGridTheme.d.ts +3 -0
  69. package/hooks/core/useGridTheme.js +19 -0
  70. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -1
  71. package/hooks/features/columnGrouping/useGridColumnGrouping.js +7 -14
  72. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +13 -18
  73. package/hooks/features/columnHeaders/useGridColumnHeaders.js +68 -162
  74. package/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  75. package/hooks/features/columns/gridColumnsInterfaces.d.ts +17 -0
  76. package/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  77. package/hooks/features/columns/gridColumnsSelector.d.ts +14 -1
  78. package/hooks/features/columns/gridColumnsSelector.js +52 -0
  79. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -5
  80. package/hooks/features/columns/gridColumnsUtils.js +10 -12
  81. package/hooks/features/columns/index.d.ts +2 -2
  82. package/hooks/features/columns/index.js +2 -1
  83. package/hooks/features/columns/useGridColumnSpanning.js +62 -61
  84. package/hooks/features/columns/useGridColumns.js +20 -23
  85. package/hooks/features/dimensions/gridDimensionsApi.d.ts +60 -11
  86. package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +2 -0
  87. package/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  88. package/hooks/features/dimensions/index.d.ts +2 -0
  89. package/hooks/features/dimensions/index.js +1 -0
  90. package/hooks/features/dimensions/useGridDimensions.d.ts +7 -1
  91. package/hooks/features/dimensions/useGridDimensions.js +216 -148
  92. package/hooks/features/export/serializers/csvSerializer.js +2 -2
  93. package/hooks/features/filter/useGridFilter.js +3 -3
  94. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -2
  95. package/hooks/features/focus/gridFocusStateSelector.js +2 -6
  96. package/hooks/features/focus/useGridFocus.js +3 -3
  97. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  98. package/hooks/features/pagination/useGridPagination.js +3 -5
  99. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -0
  100. package/hooks/features/rows/gridRowsSelector.d.ts +2 -2
  101. package/hooks/features/rows/gridRowsSelector.js +5 -5
  102. package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
  103. package/hooks/features/rows/gridRowsUtils.js +4 -4
  104. package/hooks/features/rows/useGridRowsMeta.js +7 -4
  105. package/hooks/features/scroll/useGridScroll.js +8 -10
  106. package/hooks/features/sorting/gridSortingUtils.js +1 -1
  107. package/hooks/features/sorting/useGridSorting.d.ts +1 -1
  108. package/hooks/features/sorting/useGridSorting.js +15 -10
  109. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +14 -0
  110. package/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  111. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +27 -42
  112. package/hooks/features/virtualization/useGridVirtualScroller.js +441 -438
  113. package/hooks/features/virtualization/useGridVirtualization.d.ts +8 -0
  114. package/hooks/features/virtualization/useGridVirtualization.js +8 -1
  115. package/hooks/utils/index.d.ts +3 -0
  116. package/hooks/utils/index.js +4 -1
  117. package/hooks/utils/useGridAriaAttributes.js +1 -2
  118. package/hooks/utils/useGridNativeEventListener.js +4 -9
  119. package/hooks/utils/useResizeObserver.d.ts +2 -0
  120. package/hooks/utils/useResizeObserver.js +36 -0
  121. package/hooks/utils/useRunOnce.d.ts +5 -0
  122. package/hooks/utils/useRunOnce.js +18 -0
  123. package/index.js +1 -1
  124. package/internals/index.d.ts +12 -9
  125. package/internals/index.js +9 -7
  126. package/legacy/DataGrid/DataGrid.js +6 -6
  127. package/legacy/DataGrid/useDataGridComponent.js +2 -1
  128. package/legacy/DataGrid/useDataGridProps.js +1 -0
  129. package/legacy/components/GridColumnHeaders.js +3 -11
  130. package/legacy/components/GridDetailPanels.js +4 -0
  131. package/legacy/components/GridHeaders.js +53 -0
  132. package/legacy/components/GridPinnedRows.js +4 -0
  133. package/legacy/components/GridRow.js +258 -98
  134. package/legacy/components/GridScrollbarFillerCell.js +36 -0
  135. package/legacy/components/base/GridBody.js +2 -114
  136. package/legacy/components/base/GridOverlays.js +10 -25
  137. package/legacy/components/cell/GridCell.js +69 -377
  138. package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  139. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  140. package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  141. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  142. package/legacy/components/containers/GridRoot.js +18 -15
  143. package/legacy/components/containers/GridRootStyles.js +215 -137
  144. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  145. package/legacy/components/panel/GridPanel.js +3 -4
  146. package/legacy/components/panel/filterPanel/GridFilterForm.js +30 -13
  147. package/legacy/components/panel/filterPanel/GridFilterPanel.js +49 -20
  148. package/legacy/components/toolbar/GridToolbarColumnsButton.js +40 -21
  149. package/legacy/components/toolbar/GridToolbarDensitySelector.js +40 -21
  150. package/legacy/components/toolbar/GridToolbarExport.js +6 -1
  151. package/legacy/components/toolbar/GridToolbarExportContainer.js +40 -21
  152. package/legacy/components/toolbar/GridToolbarFilterButton.js +6 -10
  153. package/legacy/components/virtualization/GridBottomContainer.js +25 -0
  154. package/legacy/components/virtualization/GridMainContainer.js +20 -0
  155. package/legacy/components/virtualization/GridTopContainer.js +35 -0
  156. package/legacy/components/virtualization/GridVirtualScrollbar.js +129 -0
  157. package/legacy/components/virtualization/GridVirtualScroller.js +67 -16
  158. package/legacy/components/virtualization/GridVirtualScrollerFiller.js +70 -0
  159. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  160. package/legacy/constants/defaultGridSlotsComponents.js +6 -2
  161. package/legacy/constants/gridClasses.js +1 -1
  162. package/legacy/hooks/core/gridCoreSelector.js +7 -0
  163. package/legacy/hooks/core/useGridInitialization.js +4 -0
  164. package/legacy/hooks/core/useGridRefs.js +13 -0
  165. package/legacy/hooks/core/useGridTheme.js +21 -0
  166. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +7 -14
  167. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +69 -181
  168. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  169. package/legacy/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  170. package/legacy/hooks/features/columns/gridColumnsSelector.js +62 -0
  171. package/legacy/hooks/features/columns/gridColumnsUtils.js +10 -16
  172. package/legacy/hooks/features/columns/index.js +2 -1
  173. package/legacy/hooks/features/columns/useGridColumnSpanning.js +60 -59
  174. package/legacy/hooks/features/columns/useGridColumns.js +22 -23
  175. package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +3 -0
  176. package/legacy/hooks/features/dimensions/index.js +1 -0
  177. package/legacy/hooks/features/dimensions/useGridDimensions.js +226 -151
  178. package/legacy/hooks/features/export/serializers/csvSerializer.js +2 -2
  179. package/legacy/hooks/features/filter/useGridFilter.js +3 -3
  180. package/legacy/hooks/features/focus/gridFocusStateSelector.js +2 -6
  181. package/legacy/hooks/features/focus/useGridFocus.js +3 -3
  182. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  183. package/legacy/hooks/features/pagination/useGridPagination.js +3 -5
  184. package/legacy/hooks/features/rows/gridRowsSelector.js +5 -5
  185. package/legacy/hooks/features/rows/gridRowsUtils.js +4 -4
  186. package/legacy/hooks/features/rows/useGridRowsMeta.js +7 -4
  187. package/legacy/hooks/features/scroll/useGridScroll.js +8 -10
  188. package/legacy/hooks/features/sorting/gridSortingUtils.js +1 -1
  189. package/legacy/hooks/features/sorting/useGridSorting.js +15 -10
  190. package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +29 -1
  191. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +490 -483
  192. package/legacy/hooks/features/virtualization/useGridVirtualization.js +8 -1
  193. package/legacy/hooks/utils/index.js +4 -1
  194. package/legacy/hooks/utils/useGridAriaAttributes.js +1 -2
  195. package/legacy/hooks/utils/useGridNativeEventListener.js +4 -9
  196. package/legacy/hooks/utils/useResizeObserver.js +36 -0
  197. package/legacy/hooks/utils/useRunOnce.js +18 -0
  198. package/legacy/index.js +1 -1
  199. package/legacy/internals/index.js +9 -7
  200. package/legacy/locales/hrHR.js +161 -0
  201. package/legacy/locales/index.js +4 -1
  202. package/legacy/locales/ptPT.js +161 -0
  203. package/legacy/locales/zhHK.js +161 -0
  204. package/legacy/models/index.js +0 -1
  205. package/legacy/models/params/index.js +1 -2
  206. package/legacy/utils/utils.js +10 -1
  207. package/locales/hrHR.d.ts +1 -0
  208. package/locales/hrHR.js +149 -0
  209. package/locales/index.d.ts +3 -0
  210. package/locales/index.js +4 -1
  211. package/locales/ptPT.d.ts +1 -0
  212. package/locales/ptPT.js +149 -0
  213. package/locales/zhHK.d.ts +1 -0
  214. package/locales/zhHK.js +149 -0
  215. package/models/api/gridColumnGroupingApi.d.ts +2 -2
  216. package/models/api/gridCoreApi.d.ts +16 -16
  217. package/models/api/gridRowsMetaApi.d.ts +1 -1
  218. package/models/api/gridVirtualizationApi.d.ts +2 -3
  219. package/models/events/gridEventLookup.d.ts +3 -3
  220. package/models/gridFilterModel.d.ts +1 -1
  221. package/models/gridSlotsComponent.d.ts +16 -2
  222. package/models/gridStateCommunity.d.ts +5 -1
  223. package/models/index.d.ts +0 -1
  224. package/models/index.js +0 -1
  225. package/models/params/index.d.ts +0 -1
  226. package/models/params/index.js +1 -2
  227. package/models/props/DataGridProps.d.ts +6 -11
  228. package/modern/DataGrid/DataGrid.js +6 -6
  229. package/modern/DataGrid/useDataGridComponent.js +2 -1
  230. package/modern/DataGrid/useDataGridProps.js +1 -0
  231. package/modern/components/GridColumnHeaders.js +3 -11
  232. package/modern/components/GridDetailPanels.js +4 -0
  233. package/modern/components/GridHeaders.js +53 -0
  234. package/modern/components/GridPinnedRows.js +4 -0
  235. package/modern/components/GridRow.js +258 -96
  236. package/modern/components/GridScrollbarFillerCell.js +39 -0
  237. package/modern/components/base/GridBody.js +2 -116
  238. package/modern/components/base/GridOverlays.js +10 -16
  239. package/modern/components/cell/GridCell.js +65 -369
  240. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  241. package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  242. package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  243. package/modern/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  244. package/modern/components/containers/GridRoot.js +18 -14
  245. package/modern/components/containers/GridRootStyles.js +307 -204
  246. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  247. package/modern/components/panel/GridPanel.js +3 -4
  248. package/modern/components/panel/filterPanel/GridFilterForm.js +30 -13
  249. package/modern/components/panel/filterPanel/GridFilterPanel.js +46 -20
  250. package/modern/components/toolbar/GridToolbarColumnsButton.js +38 -21
  251. package/modern/components/toolbar/GridToolbarDensitySelector.js +38 -21
  252. package/modern/components/toolbar/GridToolbarExport.js +6 -1
  253. package/modern/components/toolbar/GridToolbarExportContainer.js +39 -22
  254. package/modern/components/toolbar/GridToolbarFilterButton.js +6 -10
  255. package/modern/components/virtualization/GridBottomContainer.js +25 -0
  256. package/modern/components/virtualization/GridMainContainer.js +20 -0
  257. package/modern/components/virtualization/GridTopContainer.js +35 -0
  258. package/modern/components/virtualization/GridVirtualScrollbar.js +131 -0
  259. package/modern/components/virtualization/GridVirtualScroller.js +69 -16
  260. package/modern/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  261. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  262. package/modern/constants/defaultGridSlotsComponents.js +6 -2
  263. package/modern/constants/gridClasses.js +1 -1
  264. package/modern/hooks/core/gridCoreSelector.js +5 -0
  265. package/modern/hooks/core/useGridInitialization.js +4 -0
  266. package/modern/hooks/core/useGridRefs.js +13 -0
  267. package/modern/hooks/core/useGridTheme.js +19 -0
  268. package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +5 -12
  269. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +67 -160
  270. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  271. package/modern/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  272. package/modern/hooks/features/columns/gridColumnsSelector.js +51 -0
  273. package/modern/hooks/features/columns/gridColumnsUtils.js +10 -12
  274. package/modern/hooks/features/columns/index.js +2 -1
  275. package/modern/hooks/features/columns/useGridColumnSpanning.js +62 -61
  276. package/modern/hooks/features/columns/useGridColumns.js +19 -21
  277. package/modern/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  278. package/modern/hooks/features/dimensions/index.js +1 -0
  279. package/modern/hooks/features/dimensions/useGridDimensions.js +214 -146
  280. package/modern/hooks/features/export/serializers/csvSerializer.js +2 -2
  281. package/modern/hooks/features/filter/useGridFilter.js +3 -3
  282. package/modern/hooks/features/focus/gridFocusStateSelector.js +2 -6
  283. package/modern/hooks/features/focus/useGridFocus.js +3 -3
  284. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  285. package/modern/hooks/features/pagination/useGridPagination.js +3 -5
  286. package/modern/hooks/features/rows/gridRowsSelector.js +2 -2
  287. package/modern/hooks/features/rows/gridRowsUtils.js +4 -4
  288. package/modern/hooks/features/rows/useGridRowsMeta.js +7 -4
  289. package/modern/hooks/features/scroll/useGridScroll.js +8 -9
  290. package/modern/hooks/features/sorting/gridSortingUtils.js +1 -1
  291. package/modern/hooks/features/sorting/useGridSorting.js +15 -10
  292. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  293. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +435 -432
  294. package/modern/hooks/features/virtualization/useGridVirtualization.js +8 -1
  295. package/modern/hooks/utils/index.js +4 -1
  296. package/modern/hooks/utils/useGridAriaAttributes.js +1 -1
  297. package/modern/hooks/utils/useGridNativeEventListener.js +3 -9
  298. package/modern/hooks/utils/useResizeObserver.js +36 -0
  299. package/modern/hooks/utils/useRunOnce.js +18 -0
  300. package/modern/index.js +1 -1
  301. package/modern/internals/index.js +9 -7
  302. package/modern/locales/hrHR.js +149 -0
  303. package/modern/locales/index.js +4 -1
  304. package/modern/locales/ptPT.js +149 -0
  305. package/modern/locales/zhHK.js +149 -0
  306. package/modern/models/index.js +0 -1
  307. package/modern/models/params/index.js +1 -2
  308. package/modern/utils/utils.js +10 -1
  309. package/node/DataGrid/DataGrid.js +6 -6
  310. package/node/DataGrid/useDataGridComponent.js +1 -0
  311. package/node/DataGrid/useDataGridProps.js +1 -0
  312. package/node/components/GridColumnHeaders.js +3 -11
  313. package/node/components/GridDetailPanels.js +10 -0
  314. package/node/components/GridHeaders.js +60 -0
  315. package/node/components/GridPinnedRows.js +10 -0
  316. package/node/components/GridRow.js +256 -94
  317. package/node/components/GridScrollbarFillerCell.js +47 -0
  318. package/node/components/base/GridBody.js +7 -118
  319. package/node/components/base/GridOverlays.js +9 -15
  320. package/node/components/cell/GridCell.js +66 -369
  321. package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  322. package/node/components/columnHeaders/GridColumnHeaderItem.js +8 -4
  323. package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  324. package/node/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  325. package/node/components/containers/GridRoot.js +17 -14
  326. package/node/components/containers/GridRootStyles.js +175 -72
  327. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  328. package/node/components/panel/GridPanel.js +3 -4
  329. package/node/components/panel/filterPanel/GridFilterForm.js +29 -12
  330. package/node/components/panel/filterPanel/GridFilterPanel.js +45 -19
  331. package/node/components/toolbar/GridToolbarColumnsButton.js +36 -20
  332. package/node/components/toolbar/GridToolbarDensitySelector.js +36 -20
  333. package/node/components/toolbar/GridToolbarExport.js +6 -1
  334. package/node/components/toolbar/GridToolbarExportContainer.js +37 -21
  335. package/node/components/toolbar/GridToolbarFilterButton.js +6 -10
  336. package/node/components/virtualization/GridBottomContainer.js +34 -0
  337. package/node/components/{containers → virtualization}/GridMainContainer.js +7 -29
  338. package/node/components/virtualization/GridTopContainer.js +44 -0
  339. package/node/components/virtualization/GridVirtualScrollbar.js +138 -0
  340. package/node/components/virtualization/GridVirtualScroller.js +69 -17
  341. package/node/components/virtualization/GridVirtualScrollerFiller.js +77 -0
  342. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  343. package/node/constants/defaultGridSlotsComponents.js +5 -1
  344. package/node/constants/gridClasses.js +1 -1
  345. package/node/hooks/core/gridCoreSelector.js +12 -0
  346. package/node/hooks/core/useGridInitialization.js +4 -0
  347. package/node/hooks/core/useGridRefs.js +22 -0
  348. package/node/hooks/core/useGridTheme.js +29 -0
  349. package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +5 -12
  350. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +65 -159
  351. package/node/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  352. package/node/hooks/features/columns/gridColumnsInterfaces.js +11 -1
  353. package/node/hooks/features/columns/gridColumnsSelector.js +52 -1
  354. package/node/hooks/features/columns/gridColumnsUtils.js +10 -13
  355. package/node/hooks/features/columns/index.js +22 -61
  356. package/node/hooks/features/columns/useGridColumnSpanning.js +62 -61
  357. package/node/hooks/features/columns/useGridColumns.js +20 -22
  358. package/node/hooks/features/dimensions/gridDimensionsSelectors.js +8 -0
  359. package/node/hooks/features/dimensions/index.js +11 -0
  360. package/node/hooks/features/dimensions/useGridDimensions.js +215 -144
  361. package/node/hooks/features/export/serializers/csvSerializer.js +2 -2
  362. package/node/hooks/features/filter/useGridFilter.js +2 -2
  363. package/node/hooks/features/focus/gridFocusStateSelector.js +3 -7
  364. package/node/hooks/features/focus/useGridFocus.js +2 -2
  365. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -15
  366. package/node/hooks/features/pagination/useGridPagination.js +3 -5
  367. package/node/hooks/features/rows/gridRowsSelector.js +2 -2
  368. package/node/hooks/features/rows/gridRowsUtils.js +4 -4
  369. package/node/hooks/features/rows/useGridRowsMeta.js +5 -3
  370. package/node/hooks/features/scroll/useGridScroll.js +8 -9
  371. package/node/hooks/features/sorting/gridSortingUtils.js +1 -1
  372. package/node/hooks/features/sorting/useGridSorting.js +15 -10
  373. package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  374. package/node/hooks/features/virtualization/useGridVirtualScroller.js +434 -431
  375. package/node/hooks/features/virtualization/useGridVirtualization.js +9 -1
  376. package/node/hooks/utils/index.js +36 -0
  377. package/node/hooks/utils/useGridAriaAttributes.js +1 -1
  378. package/node/hooks/utils/useGridNativeEventListener.js +3 -9
  379. package/node/hooks/utils/useResizeObserver.js +44 -0
  380. package/node/hooks/utils/useRunOnce.js +27 -0
  381. package/node/index.js +1 -1
  382. package/node/internals/index.js +86 -71
  383. package/node/locales/hrHR.js +155 -0
  384. package/node/locales/index.js +33 -0
  385. package/node/locales/ptPT.js +155 -0
  386. package/node/locales/zhHK.js +155 -0
  387. package/node/models/index.js +0 -11
  388. package/node/models/params/index.js +0 -11
  389. package/node/utils/utils.js +11 -1
  390. package/package.json +6 -6
  391. package/utils/utils.d.ts +6 -0
  392. package/utils/utils.js +10 -1
  393. package/components/DataGridVirtualScroller.d.ts +0 -3
  394. package/components/DataGridVirtualScroller.js +0 -35
  395. package/components/containers/GridMainContainer.js +0 -43
  396. package/legacy/components/DataGridVirtualScroller.js +0 -32
  397. package/legacy/components/containers/GridMainContainer.js +0 -45
  398. package/legacy/models/gridRootContainerRef.js +0 -1
  399. package/legacy/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  400. package/models/gridRootContainerRef.d.ts +0 -5
  401. package/models/gridRootContainerRef.js +0 -1
  402. package/models/params/gridRenderedRowsIntervalChangeParams.d.ts +0 -10
  403. package/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  404. package/modern/components/DataGridVirtualScroller.js +0 -35
  405. package/modern/components/containers/GridMainContainer.js +0 -42
  406. package/modern/models/gridRootContainerRef.js +0 -1
  407. package/modern/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  408. package/node/components/DataGridVirtualScroller.js +0 -42
  409. package/node/models/gridRootContainerRef.js +0 -5
  410. package/node/models/params/gridRenderedRowsIntervalChangeParams.js +0 -5
@@ -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;
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.GridToolbarDensitySelector = 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/utils");
12
12
  var _MenuList = _interopRequireDefault(require("@mui/material/MenuList"));
13
13
  var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
@@ -20,14 +20,14 @@ var _GridMenu = require("../menu/GridMenu");
20
20
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
21
21
  var _gridClasses = require("../../constants/gridClasses");
22
22
  var _jsxRuntime = require("react/jsx-runtime");
23
- const _excluded = ["onClick"];
24
23
  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); }
25
24
  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; }
26
25
  const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridToolbarDensitySelector(props, ref) {
27
26
  const {
28
- onClick
29
- } = props,
30
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
27
+ slotProps = {}
28
+ } = props;
29
+ const buttonProps = slotProps.button || {};
30
+ const tooltipProps = slotProps.tooltip || {};
31
31
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
32
32
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
33
33
  const densityValue = (0, _useGridSelector.useGridSelector)(apiRef, _densitySelector.gridDensityValueSelector);
@@ -61,7 +61,7 @@ const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = /*#__PUR
61
61
  }, [densityValue, rootProps]);
62
62
  const handleDensitySelectorOpen = event => {
63
63
  setOpen(prevOpen => !prevOpen);
64
- onClick?.(event);
64
+ buttonProps.onClick?.(event);
65
65
  };
66
66
  const handleDensitySelectorClose = () => {
67
67
  setOpen(false);
@@ -91,19 +91,24 @@ const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = /*#__PUR
91
91
  }), option.label]
92
92
  }, index));
93
93
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
94
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
95
- ref: handleRef,
96
- size: "small",
97
- startIcon: startIcon,
98
- "aria-label": apiRef.current.getLocaleText('toolbarDensityLabel'),
99
- "aria-haspopup": "menu",
100
- "aria-expanded": open,
101
- "aria-controls": open ? densityMenuId : undefined,
102
- id: densityButtonId
103
- }, other, {
104
- onClick: handleDensitySelectorOpen
105
- }, rootProps.slotProps?.baseButton, {
106
- children: apiRef.current.getLocaleText('toolbarDensity')
94
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, (0, _extends2.default)({
95
+ title: apiRef.current.getLocaleText('toolbarDensityLabel'),
96
+ enterDelay: 1000
97
+ }, tooltipProps, rootProps.slotProps?.baseTooltip, {
98
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
99
+ ref: handleRef,
100
+ size: "small",
101
+ startIcon: startIcon,
102
+ "aria-label": apiRef.current.getLocaleText('toolbarDensityLabel'),
103
+ "aria-haspopup": "menu",
104
+ "aria-expanded": open,
105
+ "aria-controls": open ? densityMenuId : undefined,
106
+ id: densityButtonId
107
+ }, buttonProps, {
108
+ onClick: handleDensitySelectorOpen
109
+ }, rootProps.slotProps?.baseButton, {
110
+ children: apiRef.current.getLocaleText('toolbarDensity')
111
+ }))
107
112
  })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridMenu.GridMenu, {
108
113
  open: open,
109
114
  target: buttonRef.current,
@@ -119,4 +124,15 @@ const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = /*#__PUR
119
124
  })
120
125
  })]
121
126
  });
122
- });
127
+ });
128
+ process.env.NODE_ENV !== "production" ? GridToolbarDensitySelector.propTypes = {
129
+ // ----------------------------- Warning --------------------------------
130
+ // | These PropTypes are generated from the TypeScript type definitions |
131
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
132
+ // ----------------------------------------------------------------------
133
+ /**
134
+ * The props used for each slot inside.
135
+ * @default {}
136
+ */
137
+ slotProps: _propTypes.default.object
138
+ } : void 0;
@@ -81,5 +81,10 @@ process.env.NODE_ENV !== "production" ? GridToolbarExport.propTypes = {
81
81
  // | To update them edit the TypeScript types and run "yarn proptypes" |
82
82
  // ----------------------------------------------------------------------
83
83
  csvOptions: _propTypes.default.object,
84
- printOptions: _propTypes.default.object
84
+ printOptions: _propTypes.default.object,
85
+ /**
86
+ * The props used for each slot inside.
87
+ * @default {}
88
+ */
89
+ slotProps: _propTypes.default.object
85
90
  } : void 0;
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.GridToolbarExportContainer = 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/utils");
12
12
  var _MenuList = _interopRequireDefault(require("@mui/material/MenuList"));
13
13
  var _keyboardUtils = require("../../utils/keyboardUtils");
@@ -16,15 +16,15 @@ var _GridMenu = require("../menu/GridMenu");
16
16
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
17
17
  var _gridClasses = require("../../constants/gridClasses");
18
18
  var _jsxRuntime = require("react/jsx-runtime");
19
- const _excluded = ["children", "onClick"];
20
19
  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); }
21
20
  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; }
22
21
  const GridToolbarExportContainer = exports.GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function GridToolbarExportContainer(props, ref) {
23
22
  const {
24
- children,
25
- onClick
26
- } = props,
27
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
23
+ children,
24
+ slotProps = {}
25
+ } = props;
26
+ const buttonProps = slotProps.button || {};
27
+ const tooltipProps = slotProps.tooltip || {};
28
28
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
29
29
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
30
30
  const exportButtonId = (0, _utils.unstable_useId)();
@@ -34,7 +34,7 @@ const GridToolbarExportContainer = exports.GridToolbarExportContainer = /*#__PUR
34
34
  const handleRef = (0, _utils.unstable_useForkRef)(ref, buttonRef);
35
35
  const handleMenuOpen = event => {
36
36
  setOpen(prevOpen => !prevOpen);
37
- onClick?.(event);
37
+ buttonProps.onClick?.(event);
38
38
  };
39
39
  const handleMenuClose = () => setOpen(false);
40
40
  const handleListKeyDown = event => {
@@ -49,19 +49,24 @@ const GridToolbarExportContainer = exports.GridToolbarExportContainer = /*#__PUR
49
49
  return null;
50
50
  }
51
51
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
52
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
53
- ref: handleRef,
54
- size: "small",
55
- startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.exportIcon, {}),
56
- "aria-expanded": open,
57
- "aria-label": apiRef.current.getLocaleText('toolbarExportLabel'),
58
- "aria-haspopup": "menu",
59
- "aria-controls": open ? exportMenuId : undefined,
60
- id: exportButtonId
61
- }, other, {
62
- onClick: handleMenuOpen
63
- }, rootProps.slotProps?.baseButton, {
64
- children: apiRef.current.getLocaleText('toolbarExport')
52
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, (0, _extends2.default)({
53
+ title: apiRef.current.getLocaleText('toolbarExportLabel'),
54
+ enterDelay: 1000
55
+ }, tooltipProps, rootProps.slotProps?.baseTooltip, {
56
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
57
+ ref: handleRef,
58
+ size: "small",
59
+ startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.exportIcon, {}),
60
+ "aria-expanded": open,
61
+ "aria-label": apiRef.current.getLocaleText('toolbarExportLabel'),
62
+ "aria-haspopup": "menu",
63
+ "aria-controls": open ? exportMenuId : undefined,
64
+ id: exportButtonId
65
+ }, buttonProps, {
66
+ onClick: handleMenuOpen
67
+ }, rootProps.slotProps?.baseButton, {
68
+ children: apiRef.current.getLocaleText('toolbarExport')
69
+ }))
65
70
  })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridMenu.GridMenu, {
66
71
  open: open,
67
72
  target: buttonRef.current,
@@ -84,4 +89,15 @@ const GridToolbarExportContainer = exports.GridToolbarExportContainer = /*#__PUR
84
89
  })
85
90
  })]
86
91
  });
87
- });
92
+ });
93
+ process.env.NODE_ENV !== "production" ? GridToolbarExportContainer.propTypes = {
94
+ // ----------------------------- Warning --------------------------------
95
+ // | These PropTypes are generated from the TypeScript type definitions |
96
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
97
+ // ----------------------------------------------------------------------
98
+ /**
99
+ * The props used for each slot inside.
100
+ * @default {}
101
+ */
102
+ slotProps: _propTypes.default.object
103
+ } : void 0;
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.GridToolbarFilterButton = 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"));
11
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
11
  var _styles = require("@mui/material/styles");
@@ -21,7 +20,6 @@ var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
21
20
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
22
21
  var _gridClasses = require("../../constants/gridClasses");
23
22
  var _jsxRuntime = require("react/jsx-runtime");
24
- const _excluded = ["componentsProps"];
25
23
  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); }
26
24
  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; }
27
25
  const useUtilityClasses = ownerState => {
@@ -45,10 +43,10 @@ const GridToolbarFilterListRoot = (0, _styles.styled)('ul', {
45
43
  }));
46
44
  const GridToolbarFilterButton = exports.GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolbarFilterButton(props, ref) {
47
45
  const {
48
- componentsProps = {}
49
- } = props,
50
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
51
- const buttonProps = componentsProps.button || {};
46
+ slotProps = {}
47
+ } = props;
48
+ const buttonProps = slotProps.button || {};
49
+ const tooltipProps = slotProps.tooltip || {};
52
50
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
53
51
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
54
52
  const activeFilters = (0, _useGridSelector.useGridSelector)(apiRef, _gridFilterSelector.gridFilterActiveItemsSelector);
@@ -106,7 +104,7 @@ const GridToolbarFilterButton = exports.GridToolbarFilterButton = /*#__PURE__*/R
106
104
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, (0, _extends2.default)({
107
105
  title: tooltipContentNode,
108
106
  enterDelay: 1000
109
- }, other, rootProps.slotProps?.baseTooltip, {
107
+ }, tooltipProps, rootProps.slotProps?.baseTooltip, {
110
108
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
111
109
  ref: ref,
112
110
  id: filterButtonId,
@@ -136,7 +134,5 @@ process.env.NODE_ENV !== "production" ? GridToolbarFilterButton.propTypes = {
136
134
  * The props used for each slot inside.
137
135
  * @default {}
138
136
  */
139
- componentsProps: _propTypes.default.shape({
140
- button: _propTypes.default.object
141
- })
137
+ slotProps: _propTypes.default.object
142
138
  } : void 0;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.GridBottomContainer = GridBottomContainer;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _clsx = _interopRequireDefault(require("clsx"));
11
+ var _system = require("@mui/system");
12
+ var _utils = require("@mui/utils");
13
+ var _gridClasses = require("../../constants/gridClasses");
14
+ var _jsxRuntime = require("react/jsx-runtime");
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); }
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; }
17
+ const useUtilityClasses = () => {
18
+ const slots = {
19
+ root: ['bottomContainer']
20
+ };
21
+ return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, {});
22
+ };
23
+ const Element = (0, _system.styled)('div')({
24
+ position: 'sticky',
25
+ zIndex: 2,
26
+ bottom: 'calc(var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize))'
27
+ });
28
+ function GridBottomContainer(props) {
29
+ const classes = useUtilityClasses();
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Element, (0, _extends2.default)({}, props, {
31
+ className: (0, _clsx.default)(classes.root, props.className, _gridClasses.gridClasses['container--bottom']),
32
+ role: "presentation"
33
+ }));
34
+ }