@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
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.GridCellWrapper = exports.GridCellV7 = exports.GridCell = void 0;
7
+ exports.PinnedPosition = exports.GridCell = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var React = _interopRequireWildcard(require("react"));
@@ -21,12 +21,16 @@ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
21
21
  var _gridFocusStateSelector = require("../../hooks/features/focus/gridFocusStateSelector");
22
22
  var _useGridParamsApi = require("../../hooks/features/rows/useGridParamsApi");
23
23
  var _jsxRuntime = require("react/jsx-runtime");
24
- const _excluded = ["changeReason", "unstable_updateValueOnRender"],
25
- _excluded2 = ["align", "children", "editCellState", "colIndex", "column", "cellMode", "field", "formattedValue", "hasFocus", "height", "isEditable", "isSelected", "rowId", "tabIndex", "value", "width", "className", "showRightBorder", "extendRowFullWidth", "row", "colSpan", "disableDragEvents", "isNotVisible", "onClick", "onDoubleClick", "onMouseDown", "onMouseUp", "onMouseOver", "onKeyDown", "onKeyUp", "onDragEnter", "onDragOver"],
26
- _excluded3 = ["column", "rowId", "editCellState", "align", "children", "colIndex", "height", "width", "className", "showRightBorder", "extendRowFullWidth", "row", "colSpan", "disableDragEvents", "isNotVisible", "onClick", "onDoubleClick", "onMouseDown", "onMouseUp", "onMouseOver", "onKeyDown", "onKeyUp", "onDragEnter", "onDragOver"],
27
- _excluded4 = ["changeReason", "unstable_updateValueOnRender"];
24
+ const _excluded = ["column", "rowId", "editCellState", "align", "children", "colIndex", "height", "width", "className", "style", "gridHasScrollX", "colSpan", "disableDragEvents", "isNotVisible", "pinnedOffset", "pinnedPosition", "sectionIndex", "sectionLength", "onClick", "onDoubleClick", "onMouseDown", "onMouseUp", "onMouseOver", "onKeyDown", "onKeyUp", "onDragEnter", "onDragOver"],
25
+ _excluded2 = ["changeReason", "unstable_updateValueOnRender"];
28
26
  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); }
29
27
  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; }
28
+ let PinnedPosition = exports.PinnedPosition = /*#__PURE__*/function (PinnedPosition) {
29
+ PinnedPosition[PinnedPosition["NONE"] = 0] = "NONE";
30
+ PinnedPosition[PinnedPosition["LEFT"] = 1] = "LEFT";
31
+ PinnedPosition[PinnedPosition["RIGHT"] = 2] = "RIGHT";
32
+ return PinnedPosition;
33
+ }({});
30
34
  const EMPTY_CELL_PARAMS = {
31
35
  id: -1,
32
36
  field: '__unset__',
@@ -54,344 +58,25 @@ const EMPTY_CELL_PARAMS = {
54
58
  const useUtilityClasses = ownerState => {
55
59
  const {
56
60
  align,
61
+ showLeftBorder,
57
62
  showRightBorder,
63
+ pinnedPosition,
58
64
  isEditable,
59
65
  isSelected,
60
66
  isSelectionMode,
61
67
  classes
62
68
  } = ownerState;
63
69
  const slots = {
64
- root: ['cell', `cell--text${(0, _utils.unstable_capitalize)(align)}`, isEditable && 'cell--editable', isSelected && 'selected', showRightBorder && 'cell--withRightBorder', isSelectionMode && !isEditable && 'cell--selectionMode', 'withBorderColor'],
70
+ root: ['cell', `cell--text${(0, _utils.unstable_capitalize)(align)}`, isSelected && 'selected', isEditable && 'cell--editable', showLeftBorder && 'cell--withLeftBorder', showRightBorder && 'cell--withRightBorder', pinnedPosition === PinnedPosition.LEFT && 'cell--pinnedLeft', pinnedPosition === PinnedPosition.RIGHT && 'cell--pinnedRight', isSelectionMode && !isEditable && 'cell--selectionMode'],
65
71
  content: ['cellContent']
66
72
  };
67
73
  return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
68
74
  };
69
75
  let warnedOnce = false;
70
76
 
71
- // GridCellWrapper is a compatibility layer for the V6 cell slot. If we can use the more efficient
72
- // `GridCellV7`, we should. That component is a merge of `GridCellWrapper` and `GridCell`.
73
- // TODO(v7): Remove the wrapper & cellV6 and use the cellV7 exclusively.
74
77
  // TODO(v7): Removing the wrapper will break the docs performance visualization demo.
75
- const GridCellWrapper = /*#__PURE__*/React.forwardRef((props, ref) => {
76
- const {
77
- column,
78
- rowId,
79
- editCellState
80
- } = props;
81
- const apiRef = (0, _useGridApiContext.useGridApiContext)();
82
- const rootProps = (0, _useGridRootProps.useGridRootProps)();
83
- const field = column.field;
84
- const cellParamsWithAPI = (0, _useGridSelector.useGridSelector)(apiRef, () => {
85
- // This is required because `.getCellParams` tries to get the `state.rows.tree` entry
86
- // associated with `rowId`/`fieldId`, but this selector runs after the state has been
87
- // updated, while `rowId`/`fieldId` reference an entry in the old state.
88
- try {
89
- const cellParams = apiRef.current.getCellParams(rowId, field);
90
- const result = cellParams;
91
- result.api = apiRef.current;
92
- return result;
93
- } catch (e) {
94
- if (e instanceof _useGridParamsApi.MissingRowIdError) {
95
- return EMPTY_CELL_PARAMS;
96
- }
97
- throw e;
98
- }
99
- }, _useGridSelector.objectShallowCompare);
100
- const isSelected = (0, _useGridSelector.useGridSelector)(apiRef, () => apiRef.current.unstable_applyPipeProcessors('isCellSelected', false, {
101
- id: rowId,
102
- field
103
- }));
104
- if (cellParamsWithAPI === EMPTY_CELL_PARAMS) {
105
- return null;
106
- }
107
- const {
108
- cellMode,
109
- hasFocus,
110
- isEditable,
111
- value,
112
- formattedValue
113
- } = cellParamsWithAPI;
114
- const managesOwnFocus = column.type === 'actions';
115
- const tabIndex = (cellMode === 'view' || !isEditable) && !managesOwnFocus ? cellParamsWithAPI.tabIndex : -1;
116
- const {
117
- classes: rootClasses,
118
- getCellClassName
119
- } = rootProps;
120
- const classNames = apiRef.current.unstable_applyPipeProcessors('cellClassName', [], {
121
- id: rowId,
122
- field
123
- });
124
- if (column.cellClassName) {
125
- classNames.push(typeof column.cellClassName === 'function' ? column.cellClassName(cellParamsWithAPI) : column.cellClassName);
126
- }
127
- if (getCellClassName) {
128
- classNames.push(getCellClassName(cellParamsWithAPI));
129
- }
130
- let children;
131
- if (editCellState == null && column.renderCell) {
132
- children = column.renderCell(cellParamsWithAPI);
133
- classNames.push(_gridClasses.gridClasses['cell--withRenderer']);
134
- classNames.push(rootClasses?.['cell--withRenderer']);
135
- }
136
- if (editCellState != null && column.renderEditCell) {
137
- const updatedRow = apiRef.current.getRowWithUpdatedValues(rowId, column.field);
138
78
 
139
- // eslint-disable-next-line @typescript-eslint/naming-convention
140
- const editCellStateRest = (0, _objectWithoutPropertiesLoose2.default)(editCellState, _excluded);
141
- const params = (0, _extends2.default)({}, cellParamsWithAPI, {
142
- row: updatedRow
143
- }, editCellStateRest);
144
- children = column.renderEditCell(params);
145
- classNames.push(_gridClasses.gridClasses['cell--editing']);
146
- classNames.push(rootClasses?.['cell--editing']);
147
- }
148
- const {
149
- slots
150
- } = rootProps;
151
- const CellComponent = slots.cell;
152
- const cellProps = (0, _extends2.default)({}, props, {
153
- ref,
154
- field,
155
- formattedValue,
156
- hasFocus,
157
- isEditable,
158
- isSelected,
159
- value,
160
- cellMode,
161
- children,
162
- tabIndex,
163
- className: (0, _clsx.default)(classNames)
164
- });
165
- return /*#__PURE__*/React.createElement(CellComponent, cellProps);
166
- });
167
- const GridCell = exports.GridCell = /*#__PURE__*/React.forwardRef((props, ref) => {
168
- const {
169
- align,
170
- children: childrenProp,
171
- colIndex,
172
- column,
173
- cellMode,
174
- field,
175
- formattedValue,
176
- hasFocus,
177
- height,
178
- isEditable,
179
- isSelected,
180
- rowId,
181
- tabIndex,
182
- value,
183
- width,
184
- className,
185
- showRightBorder,
186
- colSpan,
187
- disableDragEvents,
188
- isNotVisible,
189
- onClick,
190
- onDoubleClick,
191
- onMouseDown,
192
- onMouseUp,
193
- onMouseOver,
194
- onKeyDown,
195
- onKeyUp,
196
- onDragEnter,
197
- onDragOver
198
- } = props,
199
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded2);
200
- const valueToRender = formattedValue == null ? value : formattedValue;
201
- const cellRef = React.useRef(null);
202
- const handleRef = (0, _utils.unstable_useForkRef)(ref, cellRef);
203
- const focusElementRef = React.useRef(null);
204
- const apiRef = (0, _useGridApiContext.useGridApiContext)();
205
- const rootProps = (0, _useGridRootProps.useGridRootProps)();
206
- const ownerState = {
207
- align,
208
- showRightBorder,
209
- isEditable,
210
- classes: rootProps.classes,
211
- isSelected
212
- };
213
- const classes = useUtilityClasses(ownerState);
214
- const publishMouseUp = React.useCallback(eventName => event => {
215
- const params = apiRef.current.getCellParams(rowId, field || '');
216
- apiRef.current.publishEvent(eventName, params, event);
217
- if (onMouseUp) {
218
- onMouseUp(event);
219
- }
220
- }, [apiRef, field, onMouseUp, rowId]);
221
- const publishMouseDown = React.useCallback(eventName => event => {
222
- const params = apiRef.current.getCellParams(rowId, field || '');
223
- apiRef.current.publishEvent(eventName, params, event);
224
- if (onMouseDown) {
225
- onMouseDown(event);
226
- }
227
- }, [apiRef, field, onMouseDown, rowId]);
228
- const publish = React.useCallback((eventName, propHandler) => event => {
229
- // The row might have been deleted during the click
230
- if (!apiRef.current.getRow(rowId)) {
231
- return;
232
- }
233
- const params = apiRef.current.getCellParams(rowId, field || '');
234
- apiRef.current.publishEvent(eventName, params, event);
235
- if (propHandler) {
236
- propHandler(event);
237
- }
238
- }, [apiRef, field, rowId]);
239
- const style = React.useMemo(() => {
240
- if (isNotVisible) {
241
- return {
242
- padding: 0,
243
- opacity: 0,
244
- width: 0,
245
- border: 0
246
- };
247
- }
248
- const cellStyle = {
249
- minWidth: width,
250
- maxWidth: width,
251
- minHeight: height,
252
- maxHeight: height === 'auto' ? 'none' : height // max-height doesn't support "auto"
253
- };
254
- return cellStyle;
255
- }, [width, height, isNotVisible]);
256
- React.useEffect(() => {
257
- if (!hasFocus || cellMode === _models.GridCellModes.Edit) {
258
- return;
259
- }
260
- const doc = (0, _utils.unstable_ownerDocument)(apiRef.current.rootElementRef.current);
261
- if (cellRef.current && !cellRef.current.contains(doc.activeElement)) {
262
- const focusableElement = cellRef.current.querySelector('[tabindex="0"]');
263
- const elementToFocus = focusElementRef.current || focusableElement || cellRef.current;
264
- if ((0, _doesSupportPreventScroll.doesSupportPreventScroll)()) {
265
- elementToFocus.focus({
266
- preventScroll: true
267
- });
268
- } else {
269
- const scrollPosition = apiRef.current.getScrollPosition();
270
- elementToFocus.focus();
271
- apiRef.current.scroll(scrollPosition);
272
- }
273
- }
274
- }, [hasFocus, cellMode, apiRef]);
275
- let handleFocus = other.onFocus;
276
- if (process.env.NODE_ENV === 'test' && rootProps.experimentalFeatures?.warnIfFocusStateIsNotSynced) {
277
- handleFocus = event => {
278
- const focusedCell = (0, _gridFocusStateSelector.gridFocusCellSelector)(apiRef);
279
- if (focusedCell?.id === rowId && focusedCell.field === field) {
280
- if (typeof other.onFocus === 'function') {
281
- other.onFocus(event);
282
- }
283
- return;
284
- }
285
- if (!warnedOnce) {
286
- console.warn([`MUI X: The cell with id=${rowId} and field=${field} received focus.`, `According to the state, the focus should be at id=${focusedCell?.id}, field=${focusedCell?.field}.`, "Not syncing the state may cause unwanted behaviors since the `cellFocusIn` event won't be fired.", 'Call `fireEvent.mouseUp` before the `fireEvent.click` to sync the focus with the state.'].join('\n'));
287
- warnedOnce = true;
288
- }
289
- };
290
- }
291
- const managesOwnFocus = column.type === 'actions';
292
- let children = childrenProp;
293
- if (children === undefined) {
294
- const valueString = valueToRender?.toString();
295
- children = /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
296
- className: classes.content,
297
- title: valueString,
298
- role: "presentation",
299
- children: valueString
300
- });
301
- }
302
- if ( /*#__PURE__*/React.isValidElement(children) && managesOwnFocus) {
303
- children = /*#__PURE__*/React.cloneElement(children, {
304
- focusElementRef
305
- });
306
- }
307
- const draggableEventHandlers = disableDragEvents ? null : {
308
- onDragEnter: publish('cellDragEnter', onDragEnter),
309
- onDragOver: publish('cellDragOver', onDragOver)
310
- };
311
- const ariaV7 = rootProps.experimentalFeatures?.ariaV7;
312
- return (
313
- /*#__PURE__*/
314
- // eslint-disable-next-line jsx-a11y/no-static-element-interactions
315
- (0, _jsxRuntime.jsx)("div", (0, _extends2.default)({
316
- ref: handleRef,
317
- className: (0, _clsx.default)(className, classes.root),
318
- role: ariaV7 ? 'gridcell' : 'cell',
319
- "data-field": field,
320
- "data-colindex": colIndex,
321
- "aria-colindex": colIndex + 1,
322
- "aria-colspan": colSpan,
323
- style: style,
324
- tabIndex: tabIndex,
325
- onClick: publish('cellClick', onClick),
326
- onDoubleClick: publish('cellDoubleClick', onDoubleClick),
327
- onMouseOver: publish('cellMouseOver', onMouseOver),
328
- onMouseDown: publishMouseDown('cellMouseDown'),
329
- onMouseUp: publishMouseUp('cellMouseUp'),
330
- onKeyDown: publish('cellKeyDown', onKeyDown),
331
- onKeyUp: publish('cellKeyUp', onKeyUp)
332
- }, draggableEventHandlers, other, {
333
- onFocus: handleFocus,
334
- children: children
335
- }))
336
- );
337
- });
338
- const MemoizedCellWrapper = exports.GridCellWrapper = (0, _fastMemo.fastMemo)(GridCellWrapper);
339
- process.env.NODE_ENV !== "production" ? GridCellWrapper.propTypes = {
340
- // ----------------------------- Warning --------------------------------
341
- // | These PropTypes are generated from the TypeScript type definitions |
342
- // | To update them edit the TypeScript types and run "yarn proptypes" |
343
- // ----------------------------------------------------------------------
344
- align: _propTypes.default.oneOf(['center', 'left', 'right']),
345
- className: _propTypes.default.string,
346
- colIndex: _propTypes.default.number,
347
- colSpan: _propTypes.default.number,
348
- column: _propTypes.default.object,
349
- disableDragEvents: _propTypes.default.bool,
350
- height: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
351
- onClick: _propTypes.default.func,
352
- onDoubleClick: _propTypes.default.func,
353
- onDragEnter: _propTypes.default.func,
354
- onDragOver: _propTypes.default.func,
355
- onKeyDown: _propTypes.default.func,
356
- onMouseDown: _propTypes.default.func,
357
- onMouseUp: _propTypes.default.func,
358
- rowId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
359
- showRightBorder: _propTypes.default.bool,
360
- width: _propTypes.default.number
361
- } : void 0;
362
- process.env.NODE_ENV !== "production" ? GridCell.propTypes = {
363
- // ----------------------------- Warning --------------------------------
364
- // | These PropTypes are generated from the TypeScript type definitions |
365
- // | To update them edit the TypeScript types and run "yarn proptypes" |
366
- // ----------------------------------------------------------------------
367
- align: _propTypes.default.oneOf(['center', 'left', 'right']),
368
- cellMode: _propTypes.default.oneOf(['edit', 'view']),
369
- children: _propTypes.default.node,
370
- className: _propTypes.default.string,
371
- colIndex: _propTypes.default.number,
372
- colSpan: _propTypes.default.number,
373
- column: _propTypes.default.object,
374
- disableDragEvents: _propTypes.default.bool,
375
- editCellState: _propTypes.default.shape({
376
- changeReason: _propTypes.default.oneOf(['debouncedSetEditCellValue', 'setEditCellValue']),
377
- isProcessingProps: _propTypes.default.bool,
378
- isValidating: _propTypes.default.bool,
379
- value: _propTypes.default.any
380
- }),
381
- isNotVisible: _propTypes.default.bool,
382
- height: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
383
- onClick: _propTypes.default.func,
384
- onDoubleClick: _propTypes.default.func,
385
- onDragEnter: _propTypes.default.func,
386
- onDragOver: _propTypes.default.func,
387
- onKeyDown: _propTypes.default.func,
388
- onMouseDown: _propTypes.default.func,
389
- onMouseUp: _propTypes.default.func,
390
- rowId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
391
- showRightBorder: _propTypes.default.bool,
392
- width: _propTypes.default.number
393
- } : void 0;
394
- const GridCellV7 = /*#__PURE__*/React.forwardRef((props, ref) => {
79
+ const GridCell = /*#__PURE__*/React.forwardRef((props, ref) => {
395
80
  const {
396
81
  column,
397
82
  rowId,
@@ -401,10 +86,14 @@ const GridCellV7 = /*#__PURE__*/React.forwardRef((props, ref) => {
401
86
  height,
402
87
  width,
403
88
  className,
404
- showRightBorder,
89
+ style: styleProp,
405
90
  colSpan,
406
91
  disableDragEvents,
407
92
  isNotVisible,
93
+ pinnedOffset,
94
+ pinnedPosition,
95
+ sectionIndex,
96
+ sectionLength,
408
97
  onClick,
409
98
  onDoubleClick,
410
99
  onMouseDown,
@@ -415,7 +104,7 @@ const GridCellV7 = /*#__PURE__*/React.forwardRef((props, ref) => {
415
104
  onDragEnter,
416
105
  onDragOver
417
106
  } = props,
418
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded3);
107
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
419
108
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
420
109
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
421
110
  const field = column.field;
@@ -442,7 +131,7 @@ const GridCellV7 = /*#__PURE__*/React.forwardRef((props, ref) => {
442
131
  const {
443
132
  cellMode,
444
133
  hasFocus,
445
- isEditable,
134
+ isEditable = false,
446
135
  value,
447
136
  formattedValue
448
137
  } = cellParamsWithAPI;
@@ -468,11 +157,16 @@ const GridCellV7 = /*#__PURE__*/React.forwardRef((props, ref) => {
468
157
  const focusElementRef = React.useRef(null);
469
158
  // @ts-expect-error To access `cellSelection` flag as it's a `premium` feature
470
159
  const isSelectionMode = rootProps.cellSelection ?? false;
160
+ const isSectionLastCell = sectionIndex === sectionLength - 1;
161
+ const showLeftBorder = pinnedPosition === PinnedPosition.RIGHT && sectionIndex === 0;
162
+ const showRightBorder = rootProps.showCellVerticalBorder && (pinnedPosition !== PinnedPosition.LEFT ? !isSectionLastCell : true) || pinnedPosition === PinnedPosition.LEFT && isSectionLastCell;
471
163
  const ownerState = {
472
164
  align,
165
+ showLeftBorder,
473
166
  showRightBorder,
474
167
  isEditable,
475
168
  classes: rootProps.classes,
169
+ pinnedPosition,
476
170
  isSelected,
477
171
  isSelectionMode
478
172
  };
@@ -511,14 +205,18 @@ const GridCellV7 = /*#__PURE__*/React.forwardRef((props, ref) => {
511
205
  border: 0
512
206
  };
513
207
  }
514
- const cellStyle = {
515
- minWidth: width,
516
- maxWidth: width,
517
- minHeight: height,
518
- maxHeight: height === 'auto' ? 'none' : height // max-height doesn't support "auto"
519
- };
208
+ const cellStyle = (0, _extends2.default)({
209
+ '--width': `${width}px`,
210
+ '--height': typeof height === 'number' ? `${height}px` : height
211
+ }, styleProp);
212
+ if (pinnedPosition === PinnedPosition.LEFT) {
213
+ cellStyle.left = pinnedOffset;
214
+ }
215
+ if (pinnedPosition === PinnedPosition.RIGHT) {
216
+ cellStyle.right = pinnedOffset;
217
+ }
520
218
  return cellStyle;
521
- }, [width, height, isNotVisible]);
219
+ }, [width, height, isNotVisible, styleProp, pinnedOffset, pinnedPosition]);
522
220
  React.useEffect(() => {
523
221
  if (!hasFocus || cellMode === _models.GridCellModes.Edit) {
524
222
  return;
@@ -567,7 +265,7 @@ const GridCellV7 = /*#__PURE__*/React.forwardRef((props, ref) => {
567
265
  const updatedRow = apiRef.current.getRowWithUpdatedValues(rowId, column.field);
568
266
 
569
267
  // eslint-disable-next-line @typescript-eslint/naming-convention
570
- const editCellStateRest = (0, _objectWithoutPropertiesLoose2.default)(editCellState, _excluded4);
268
+ const editCellStateRest = (0, _objectWithoutPropertiesLoose2.default)(editCellState, _excluded2);
571
269
  const params = (0, _extends2.default)({}, cellParamsWithAPI, {
572
270
  row: updatedRow
573
271
  }, editCellStateRest);
@@ -593,34 +291,29 @@ const GridCellV7 = /*#__PURE__*/React.forwardRef((props, ref) => {
593
291
  onDragEnter: publish('cellDragEnter', onDragEnter),
594
292
  onDragOver: publish('cellDragOver', onDragOver)
595
293
  };
596
- const ariaV7 = rootProps.experimentalFeatures?.ariaV7;
597
- return (
598
- /*#__PURE__*/
599
- // eslint-disable-next-line jsx-a11y/no-static-element-interactions
600
- (0, _jsxRuntime.jsx)("div", (0, _extends2.default)({
601
- ref: handleRef,
602
- className: (0, _clsx.default)(className, classNames, classes.root),
603
- role: ariaV7 ? 'gridcell' : 'cell',
604
- "data-field": field,
605
- "data-colindex": colIndex,
606
- "aria-colindex": colIndex + 1,
607
- "aria-colspan": colSpan,
608
- style: style,
609
- tabIndex: tabIndex,
610
- onClick: publish('cellClick', onClick),
611
- onDoubleClick: publish('cellDoubleClick', onDoubleClick),
612
- onMouseOver: publish('cellMouseOver', onMouseOver),
613
- onMouseDown: publishMouseDown('cellMouseDown'),
614
- onMouseUp: publishMouseUp('cellMouseUp'),
615
- onKeyDown: publish('cellKeyDown', onKeyDown),
616
- onKeyUp: publish('cellKeyUp', onKeyUp)
617
- }, draggableEventHandlers, other, {
618
- onFocus: handleFocus,
619
- children: children
620
- }))
621
- );
294
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", (0, _extends2.default)({
295
+ ref: handleRef,
296
+ className: (0, _clsx.default)(className, classNames, classes.root),
297
+ role: "gridcell",
298
+ "data-field": field,
299
+ "data-colindex": colIndex,
300
+ "aria-colindex": colIndex + 1,
301
+ "aria-colspan": colSpan,
302
+ style: style,
303
+ tabIndex: tabIndex,
304
+ onClick: publish('cellClick', onClick),
305
+ onDoubleClick: publish('cellDoubleClick', onDoubleClick),
306
+ onMouseOver: publish('cellMouseOver', onMouseOver),
307
+ onMouseDown: publishMouseDown('cellMouseDown'),
308
+ onMouseUp: publishMouseUp('cellMouseUp'),
309
+ onKeyDown: publish('cellKeyDown', onKeyDown),
310
+ onKeyUp: publish('cellKeyUp', onKeyUp)
311
+ }, draggableEventHandlers, other, {
312
+ onFocus: handleFocus,
313
+ children: children
314
+ }));
622
315
  });
623
- process.env.NODE_ENV !== "production" ? GridCellV7.propTypes = {
316
+ process.env.NODE_ENV !== "production" ? GridCell.propTypes = {
624
317
  // ----------------------------- Warning --------------------------------
625
318
  // | These PropTypes are generated from the TypeScript type definitions |
626
319
  // | To update them edit the TypeScript types and run "yarn proptypes" |
@@ -637,8 +330,9 @@ process.env.NODE_ENV !== "production" ? GridCellV7.propTypes = {
637
330
  isValidating: _propTypes.default.bool,
638
331
  value: _propTypes.default.any
639
332
  }),
333
+ gridHasScrollX: _propTypes.default.bool.isRequired,
640
334
  height: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]).isRequired,
641
- isNotVisible: _propTypes.default.bool,
335
+ isNotVisible: _propTypes.default.bool.isRequired,
642
336
  onClick: _propTypes.default.func,
643
337
  onDoubleClick: _propTypes.default.func,
644
338
  onDragEnter: _propTypes.default.func,
@@ -646,8 +340,11 @@ process.env.NODE_ENV !== "production" ? GridCellV7.propTypes = {
646
340
  onKeyDown: _propTypes.default.func,
647
341
  onMouseDown: _propTypes.default.func,
648
342
  onMouseUp: _propTypes.default.func,
343
+ pinnedOffset: _propTypes.default.number.isRequired,
344
+ pinnedPosition: _propTypes.default.oneOf([0, 1, 2]).isRequired,
649
345
  rowId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
650
- showRightBorder: _propTypes.default.bool,
346
+ sectionIndex: _propTypes.default.number.isRequired,
347
+ sectionLength: _propTypes.default.number.isRequired,
651
348
  width: _propTypes.default.number.isRequired
652
349
  } : void 0;
653
- const MemoizedGridCellV7 = exports.GridCellV7 = (0, _fastMemo.fastMemo)(GridCellV7);
350
+ const MemoizedGridCell = exports.GridCell = (0, _fastMemo.fastMemo)(GridCell);
@@ -22,7 +22,7 @@ const useUtilityClasses = ownerState => {
22
22
  classes
23
23
  } = ownerState;
24
24
  const slots = {
25
- root: ['columnHeaders', 'withBorderColor']
25
+ root: ['columnHeaders']
26
26
  };
27
27
  return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
28
28
  };
@@ -31,12 +31,7 @@ const GridColumnHeadersRoot = (0, _system.styled)('div', {
31
31
  slot: 'ColumnHeaders',
32
32
  overridesResolver: (props, styles) => styles.columnHeaders
33
33
  })({
34
- position: 'relative',
35
- overflow: 'hidden',
36
34
  display: 'flex',
37
- alignItems: 'center',
38
- boxSizing: 'border-box',
39
- borderBottom: '1px solid',
40
35
  borderTopLeftRadius: 'var(--unstable_DataGrid-radius)',
41
36
  borderTopRightRadius: 'var(--unstable_DataGrid-radius)'
42
37
  });
@@ -4,11 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.GridColumnHeaderItem = GridColumnHeaderItem;
7
+ exports.GridColumnHeaderItem = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _utils = require("@mui/utils");
12
+ var _fastMemo = require("../../utils/fastMemo");
12
13
  var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiContext");
13
14
  var _GridColumnHeaderSortIcon = require("./GridColumnHeaderSortIcon");
14
15
  var _ColumnHeaderMenuIcon = require("./ColumnHeaderMenuIcon");
@@ -132,14 +133,16 @@ function GridColumnHeaderItem(props) {
132
133
  onExited: handleExited
133
134
  });
134
135
  const sortingOrder = colDef.sortingOrder ?? rootProps.sortingOrder;
136
+ const showSortIcon = (colDef.sortable || sortDirection != null) && !colDef.hideSortIcons && !rootProps.disableColumnSorting;
135
137
  const columnTitleIconButtons = /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
136
138
  children: [!rootProps.disableColumnFilter && /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnHeaderFilterIconButton, (0, _extends2.default)({
137
139
  field: colDef.field,
138
140
  counter: filterItemsCounter
139
- }, rootProps.slotProps?.columnHeaderFilterIconButton)), colDef.sortable && !colDef.hideSortIcons && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnHeaderSortIcon.GridColumnHeaderSortIcon, {
141
+ }, rootProps.slotProps?.columnHeaderFilterIconButton)), showSortIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnHeaderSortIcon.GridColumnHeaderSortIcon, {
140
142
  direction: sortDirection,
141
143
  index: sortIndex,
142
- sortingOrder: sortingOrder
144
+ sortingOrder: sortingOrder,
145
+ disabled: !colDef.sortable
143
146
  })]
144
147
  });
145
148
  React.useLayoutEffect(() => {
@@ -201,4 +204,5 @@ process.env.NODE_ENV !== "production" ? GridColumnHeaderItem.propTypes = {
201
204
  sortDirection: _propTypes.default.oneOf(['asc', 'desc']),
202
205
  sortIndex: _propTypes.default.number,
203
206
  tabIndex: _propTypes.default.oneOf([-1, 0]).isRequired
204
- } : void 0;
207
+ } : void 0;
208
+ const Memoized = exports.GridColumnHeaderItem = (0, _fastMemo.fastMemo)(GridColumnHeaderItem);
@@ -46,7 +46,8 @@ function GridColumnHeaderSortIconRaw(props) {
46
46
  const {
47
47
  direction,
48
48
  index,
49
- sortingOrder
49
+ sortingOrder,
50
+ disabled
50
51
  } = props;
51
52
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
52
53
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
@@ -62,7 +63,8 @@ function GridColumnHeaderSortIconRaw(props) {
62
63
  tabIndex: -1,
63
64
  "aria-label": apiRef.current.getLocaleText('columnHeaderSortIconLabel'),
64
65
  title: apiRef.current.getLocaleText('columnHeaderSortIconLabel'),
65
- size: "small"
66
+ size: "small",
67
+ disabled: disabled
66
68
  }, rootProps.slotProps?.baseIconButton, {
67
69
  children: iconElement
68
70
  }));
@@ -81,6 +83,7 @@ process.env.NODE_ENV !== "production" ? GridColumnHeaderSortIconRaw.propTypes =
81
83
  // | To update them edit the TypeScript types and run "yarn proptypes" |
82
84
  // ----------------------------------------------------------------------
83
85
  direction: _propTypes.default.oneOf(['asc', 'desc']),
86
+ disabled: _propTypes.default.bool,
84
87
  index: _propTypes.default.number,
85
88
  sortingOrder: _propTypes.default.arrayOf(_propTypes.default.oneOf(['asc', 'desc'])).isRequired
86
89
  } : void 0;
@@ -56,7 +56,7 @@ const GridColumnHeadersInner = exports.GridColumnHeadersInner = /*#__PURE__*/Rea
56
56
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
57
57
  const ownerState = (0, _extends2.default)({}, rootProps, {
58
58
  isDragging,
59
- hasScrollX: apiRef.current.getRootDimensions()?.hasScrollX ?? false
59
+ hasScrollX: apiRef.current.getRootDimensions().hasScrollX
60
60
  });
61
61
  const classes = useUtilityClasses(ownerState);
62
62
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridColumnHeadersInnerRoot, (0, _extends2.default)({