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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/CHANGELOG.md +508 -30
  2. package/DataGrid/DataGrid.js +6 -6
  3. package/DataGrid/useDataGridComponent.js +2 -1
  4. package/DataGrid/useDataGridProps.js +1 -0
  5. package/README.md +3 -3
  6. package/components/GridColumnHeaders.d.ts +3 -2
  7. package/components/GridColumnHeaders.js +3 -11
  8. package/components/GridDetailPanels.d.ts +5 -0
  9. package/components/GridDetailPanels.js +4 -0
  10. package/components/GridHeaders.d.ts +4 -0
  11. package/components/GridHeaders.js +53 -0
  12. package/components/GridPinnedRows.d.ts +7 -0
  13. package/components/GridPinnedRows.js +4 -0
  14. package/components/GridRow.d.ts +7 -4
  15. package/components/GridRow.js +161 -97
  16. package/components/GridScrollbarFillerCell.d.ts +7 -0
  17. package/components/GridScrollbarFillerCell.js +39 -0
  18. package/components/base/GridBody.d.ts +2 -13
  19. package/components/base/GridBody.js +2 -116
  20. package/components/base/GridOverlays.js +10 -21
  21. package/components/cell/GridActionsCellItem.d.ts +2 -2
  22. package/components/cell/GridCell.d.ts +15 -21
  23. package/components/cell/GridCell.js +67 -372
  24. package/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  25. package/components/columnHeaders/GridColumnHeaderItem.d.ts +2 -1
  26. package/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  27. package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -0
  28. package/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  29. package/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  30. package/components/columnsManagement/GridColumnsManagement.d.ts +36 -0
  31. package/components/columnsManagement/GridColumnsManagement.js +260 -0
  32. package/components/columnsManagement/index.d.ts +1 -0
  33. package/components/columnsManagement/index.js +1 -0
  34. package/components/columnsManagement/utils.d.ts +4 -0
  35. package/components/columnsManagement/utils.js +16 -0
  36. package/components/containers/GridRoot.js +18 -15
  37. package/components/containers/GridRootStyles.js +307 -204
  38. package/components/index.d.ts +1 -0
  39. package/components/index.js +1 -0
  40. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  41. package/components/panel/GridColumnsPanel.d.ts +0 -28
  42. package/components/panel/GridColumnsPanel.js +5 -213
  43. package/components/panel/GridPanel.js +3 -4
  44. package/components/panel/filterPanel/GridFilterForm.d.ts +6 -4
  45. package/components/panel/filterPanel/GridFilterForm.js +31 -14
  46. package/components/panel/filterPanel/GridFilterPanel.js +46 -20
  47. package/components/toolbar/GridToolbarColumnsButton.d.ts +13 -1
  48. package/components/toolbar/GridToolbarColumnsButton.js +40 -22
  49. package/components/toolbar/GridToolbarDensitySelector.d.ts +13 -1
  50. package/components/toolbar/GridToolbarDensitySelector.js +40 -22
  51. package/components/toolbar/GridToolbarExport.d.ts +10 -1
  52. package/components/toolbar/GridToolbarExport.js +6 -1
  53. package/components/toolbar/GridToolbarExportContainer.d.ts +15 -1
  54. package/components/toolbar/GridToolbarExportContainer.js +41 -23
  55. package/components/toolbar/GridToolbarFilterButton.d.ts +5 -4
  56. package/components/toolbar/GridToolbarFilterButton.js +6 -10
  57. package/components/virtualization/GridBottomContainer.d.ts +2 -0
  58. package/components/virtualization/GridBottomContainer.js +25 -0
  59. package/components/{containers → virtualization}/GridMainContainer.d.ts +2 -0
  60. package/components/virtualization/GridMainContainer.js +20 -0
  61. package/components/virtualization/GridTopContainer.d.ts +2 -0
  62. package/components/virtualization/GridTopContainer.js +35 -0
  63. package/components/virtualization/GridVirtualScrollbar.d.ts +7 -0
  64. package/components/virtualization/GridVirtualScrollbar.js +131 -0
  65. package/components/virtualization/GridVirtualScroller.d.ts +4 -4
  66. package/components/virtualization/GridVirtualScroller.js +69 -16
  67. package/components/virtualization/GridVirtualScrollerFiller.d.ts +4 -0
  68. package/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  69. package/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  70. package/constants/defaultGridSlotsComponents.js +8 -3
  71. package/constants/gridClasses.d.ts +72 -12
  72. package/constants/gridClasses.js +1 -1
  73. package/constants/localeTextConstants.js +4 -6
  74. package/hooks/core/gridCoreSelector.d.ts +6 -0
  75. package/hooks/core/gridCoreSelector.js +5 -0
  76. package/hooks/core/useGridApiInitialization.js +4 -0
  77. package/hooks/core/useGridInitialization.js +4 -0
  78. package/hooks/core/useGridRefs.d.ts +3 -0
  79. package/hooks/core/useGridRefs.js +13 -0
  80. package/hooks/core/useGridTheme.d.ts +3 -0
  81. package/hooks/core/useGridTheme.js +19 -0
  82. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -1
  83. package/hooks/features/columnGrouping/useGridColumnGrouping.js +7 -14
  84. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +13 -18
  85. package/hooks/features/columnHeaders/useGridColumnHeaders.js +68 -162
  86. package/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  87. package/hooks/features/columns/gridColumnsInterfaces.d.ts +17 -0
  88. package/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  89. package/hooks/features/columns/gridColumnsSelector.d.ts +14 -1
  90. package/hooks/features/columns/gridColumnsSelector.js +52 -0
  91. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -5
  92. package/hooks/features/columns/gridColumnsUtils.js +10 -12
  93. package/hooks/features/columns/index.d.ts +2 -2
  94. package/hooks/features/columns/index.js +2 -1
  95. package/hooks/features/columns/useGridColumnSpanning.js +62 -61
  96. package/hooks/features/columns/useGridColumns.js +20 -23
  97. package/hooks/features/dimensions/gridDimensionsApi.d.ts +60 -11
  98. package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +2 -0
  99. package/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  100. package/hooks/features/dimensions/index.d.ts +2 -0
  101. package/hooks/features/dimensions/index.js +1 -0
  102. package/hooks/features/dimensions/useGridDimensions.d.ts +7 -1
  103. package/hooks/features/dimensions/useGridDimensions.js +216 -148
  104. package/hooks/features/export/serializers/csvSerializer.js +2 -2
  105. package/hooks/features/filter/useGridFilter.js +3 -3
  106. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -2
  107. package/hooks/features/focus/gridFocusStateSelector.js +2 -6
  108. package/hooks/features/focus/useGridFocus.js +3 -3
  109. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  110. package/hooks/features/pagination/useGridPagination.js +3 -5
  111. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -0
  112. package/hooks/features/rows/gridRowsSelector.d.ts +2 -2
  113. package/hooks/features/rows/gridRowsSelector.js +5 -5
  114. package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
  115. package/hooks/features/rows/gridRowsUtils.js +8 -5
  116. package/hooks/features/rows/useGridRowsMeta.js +7 -4
  117. package/hooks/features/scroll/useGridScroll.js +8 -10
  118. package/hooks/features/sorting/gridSortingUtils.js +1 -1
  119. package/hooks/features/sorting/useGridSorting.d.ts +1 -1
  120. package/hooks/features/sorting/useGridSorting.js +15 -10
  121. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +14 -0
  122. package/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  123. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +27 -42
  124. package/hooks/features/virtualization/useGridVirtualScroller.js +441 -438
  125. package/hooks/features/virtualization/useGridVirtualization.d.ts +8 -0
  126. package/hooks/features/virtualization/useGridVirtualization.js +8 -1
  127. package/hooks/utils/index.d.ts +3 -0
  128. package/hooks/utils/index.js +4 -1
  129. package/hooks/utils/useGridAriaAttributes.js +1 -2
  130. package/hooks/utils/useGridNativeEventListener.js +4 -9
  131. package/hooks/utils/useResizeObserver.d.ts +2 -0
  132. package/hooks/utils/useResizeObserver.js +36 -0
  133. package/hooks/utils/useRunOnce.d.ts +5 -0
  134. package/hooks/utils/useRunOnce.js +18 -0
  135. package/index.js +1 -1
  136. package/internals/index.d.ts +12 -9
  137. package/internals/index.js +9 -7
  138. package/legacy/DataGrid/DataGrid.js +6 -6
  139. package/legacy/DataGrid/useDataGridComponent.js +2 -1
  140. package/legacy/DataGrid/useDataGridProps.js +1 -0
  141. package/legacy/components/GridColumnHeaders.js +3 -11
  142. package/legacy/components/GridDetailPanels.js +4 -0
  143. package/legacy/components/GridHeaders.js +53 -0
  144. package/legacy/components/GridPinnedRows.js +4 -0
  145. package/legacy/components/GridRow.js +159 -98
  146. package/legacy/components/GridScrollbarFillerCell.js +36 -0
  147. package/legacy/components/base/GridBody.js +2 -114
  148. package/legacy/components/base/GridOverlays.js +10 -25
  149. package/legacy/components/cell/GridCell.js +69 -377
  150. package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  151. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  152. package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  153. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  154. package/legacy/components/columnsManagement/GridColumnsManagement.js +300 -0
  155. package/legacy/components/columnsManagement/index.js +1 -0
  156. package/legacy/components/columnsManagement/utils.js +22 -0
  157. package/legacy/components/containers/GridRoot.js +18 -15
  158. package/legacy/components/containers/GridRootStyles.js +215 -137
  159. package/legacy/components/index.js +1 -0
  160. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  161. package/legacy/components/panel/GridColumnsPanel.js +5 -233
  162. package/legacy/components/panel/GridPanel.js +3 -4
  163. package/legacy/components/panel/filterPanel/GridFilterForm.js +30 -13
  164. package/legacy/components/panel/filterPanel/GridFilterPanel.js +49 -20
  165. package/legacy/components/toolbar/GridToolbarColumnsButton.js +40 -21
  166. package/legacy/components/toolbar/GridToolbarDensitySelector.js +40 -21
  167. package/legacy/components/toolbar/GridToolbarExport.js +6 -1
  168. package/legacy/components/toolbar/GridToolbarExportContainer.js +40 -21
  169. package/legacy/components/toolbar/GridToolbarFilterButton.js +6 -10
  170. package/legacy/components/virtualization/GridBottomContainer.js +25 -0
  171. package/legacy/components/virtualization/GridMainContainer.js +20 -0
  172. package/legacy/components/virtualization/GridTopContainer.js +35 -0
  173. package/legacy/components/virtualization/GridVirtualScrollbar.js +129 -0
  174. package/legacy/components/virtualization/GridVirtualScroller.js +67 -16
  175. package/legacy/components/virtualization/GridVirtualScrollerFiller.js +70 -0
  176. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  177. package/legacy/constants/defaultGridSlotsComponents.js +8 -3
  178. package/legacy/constants/gridClasses.js +1 -1
  179. package/legacy/constants/localeTextConstants.js +4 -6
  180. package/legacy/hooks/core/gridCoreSelector.js +7 -0
  181. package/legacy/hooks/core/useGridApiInitialization.js +4 -0
  182. package/legacy/hooks/core/useGridInitialization.js +4 -0
  183. package/legacy/hooks/core/useGridRefs.js +13 -0
  184. package/legacy/hooks/core/useGridTheme.js +21 -0
  185. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +7 -14
  186. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +69 -181
  187. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  188. package/legacy/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  189. package/legacy/hooks/features/columns/gridColumnsSelector.js +62 -0
  190. package/legacy/hooks/features/columns/gridColumnsUtils.js +10 -16
  191. package/legacy/hooks/features/columns/index.js +2 -1
  192. package/legacy/hooks/features/columns/useGridColumnSpanning.js +60 -59
  193. package/legacy/hooks/features/columns/useGridColumns.js +22 -23
  194. package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +3 -0
  195. package/legacy/hooks/features/dimensions/index.js +1 -0
  196. package/legacy/hooks/features/dimensions/useGridDimensions.js +226 -151
  197. package/legacy/hooks/features/export/serializers/csvSerializer.js +2 -2
  198. package/legacy/hooks/features/filter/useGridFilter.js +3 -3
  199. package/legacy/hooks/features/focus/gridFocusStateSelector.js +2 -6
  200. package/legacy/hooks/features/focus/useGridFocus.js +3 -3
  201. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  202. package/legacy/hooks/features/pagination/useGridPagination.js +3 -5
  203. package/legacy/hooks/features/rows/gridRowsSelector.js +5 -5
  204. package/legacy/hooks/features/rows/gridRowsUtils.js +8 -5
  205. package/legacy/hooks/features/rows/useGridRowsMeta.js +7 -4
  206. package/legacy/hooks/features/scroll/useGridScroll.js +8 -10
  207. package/legacy/hooks/features/sorting/gridSortingUtils.js +1 -1
  208. package/legacy/hooks/features/sorting/useGridSorting.js +15 -10
  209. package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +29 -1
  210. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +490 -483
  211. package/legacy/hooks/features/virtualization/useGridVirtualization.js +8 -1
  212. package/legacy/hooks/utils/index.js +4 -1
  213. package/legacy/hooks/utils/useGridAriaAttributes.js +1 -2
  214. package/legacy/hooks/utils/useGridNativeEventListener.js +4 -9
  215. package/legacy/hooks/utils/useResizeObserver.js +36 -0
  216. package/legacy/hooks/utils/useRunOnce.js +18 -0
  217. package/legacy/index.js +1 -1
  218. package/legacy/internals/index.js +9 -7
  219. package/legacy/locales/arSD.js +5 -6
  220. package/legacy/locales/beBY.js +5 -6
  221. package/legacy/locales/bgBG.js +5 -6
  222. package/legacy/locales/csCZ.js +5 -6
  223. package/legacy/locales/daDK.js +5 -6
  224. package/legacy/locales/deDE.js +5 -6
  225. package/legacy/locales/elGR.js +5 -6
  226. package/legacy/locales/esES.js +5 -6
  227. package/legacy/locales/faIR.js +5 -6
  228. package/legacy/locales/fiFI.js +5 -6
  229. package/legacy/locales/frFR.js +5 -6
  230. package/legacy/locales/heIL.js +5 -6
  231. package/legacy/locales/hrHR.js +160 -0
  232. package/legacy/locales/huHU.js +5 -6
  233. package/legacy/locales/index.js +4 -1
  234. package/legacy/locales/itIT.js +5 -6
  235. package/legacy/locales/jaJP.js +5 -6
  236. package/legacy/locales/koKR.js +5 -6
  237. package/legacy/locales/nbNO.js +5 -6
  238. package/legacy/locales/nlNL.js +5 -6
  239. package/legacy/locales/plPL.js +5 -6
  240. package/legacy/locales/ptBR.js +5 -6
  241. package/legacy/locales/ptPT.js +160 -0
  242. package/legacy/locales/roRO.js +5 -6
  243. package/legacy/locales/ruRU.js +5 -6
  244. package/legacy/locales/skSK.js +5 -6
  245. package/legacy/locales/svSE.js +5 -6
  246. package/legacy/locales/trTR.js +5 -6
  247. package/legacy/locales/ukUA.js +5 -6
  248. package/legacy/locales/urPK.js +5 -6
  249. package/legacy/locales/viVN.js +5 -6
  250. package/legacy/locales/zhCN.js +5 -6
  251. package/legacy/locales/zhHK.js +160 -0
  252. package/legacy/locales/zhTW.js +5 -6
  253. package/legacy/models/index.js +0 -1
  254. package/legacy/models/params/index.js +1 -2
  255. package/legacy/utils/utils.js +10 -1
  256. package/locales/arSD.js +5 -6
  257. package/locales/beBY.js +5 -6
  258. package/locales/bgBG.js +5 -6
  259. package/locales/csCZ.js +5 -6
  260. package/locales/daDK.js +5 -6
  261. package/locales/deDE.js +5 -6
  262. package/locales/elGR.js +5 -6
  263. package/locales/esES.js +5 -6
  264. package/locales/faIR.js +5 -6
  265. package/locales/fiFI.js +5 -6
  266. package/locales/frFR.js +5 -6
  267. package/locales/heIL.js +5 -6
  268. package/locales/hrHR.d.ts +1 -0
  269. package/locales/hrHR.js +148 -0
  270. package/locales/huHU.js +5 -6
  271. package/locales/index.d.ts +3 -0
  272. package/locales/index.js +4 -1
  273. package/locales/itIT.js +5 -6
  274. package/locales/jaJP.js +5 -6
  275. package/locales/koKR.js +5 -6
  276. package/locales/nbNO.js +5 -6
  277. package/locales/nlNL.js +5 -6
  278. package/locales/plPL.js +5 -6
  279. package/locales/ptBR.js +5 -6
  280. package/locales/ptPT.d.ts +1 -0
  281. package/locales/ptPT.js +148 -0
  282. package/locales/roRO.js +5 -6
  283. package/locales/ruRU.js +5 -6
  284. package/locales/skSK.js +5 -6
  285. package/locales/svSE.js +5 -6
  286. package/locales/trTR.js +5 -6
  287. package/locales/ukUA.js +5 -6
  288. package/locales/urPK.js +5 -6
  289. package/locales/viVN.js +5 -6
  290. package/locales/zhCN.js +5 -6
  291. package/locales/zhHK.d.ts +1 -0
  292. package/locales/zhHK.js +148 -0
  293. package/locales/zhTW.js +5 -6
  294. package/models/api/gridColumnGroupingApi.d.ts +2 -2
  295. package/models/api/gridCoreApi.d.ts +16 -16
  296. package/models/api/gridLocaleTextApi.d.ts +3 -5
  297. package/models/api/gridRowsMetaApi.d.ts +1 -1
  298. package/models/api/gridVirtualizationApi.d.ts +2 -3
  299. package/models/colDef/gridColType.d.ts +11 -2
  300. package/models/events/gridEventLookup.d.ts +3 -3
  301. package/models/gridFilterModel.d.ts +1 -1
  302. package/models/gridSlotsComponent.d.ts +21 -2
  303. package/models/gridSlotsComponentsProps.d.ts +4 -0
  304. package/models/gridStateCommunity.d.ts +5 -1
  305. package/models/index.d.ts +0 -1
  306. package/models/index.js +0 -1
  307. package/models/params/index.d.ts +0 -1
  308. package/models/params/index.js +1 -2
  309. package/models/props/DataGridProps.d.ts +6 -11
  310. package/modern/DataGrid/DataGrid.js +6 -6
  311. package/modern/DataGrid/useDataGridComponent.js +2 -1
  312. package/modern/DataGrid/useDataGridProps.js +1 -0
  313. package/modern/components/GridColumnHeaders.js +3 -11
  314. package/modern/components/GridDetailPanels.js +4 -0
  315. package/modern/components/GridHeaders.js +53 -0
  316. package/modern/components/GridPinnedRows.js +4 -0
  317. package/modern/components/GridRow.js +159 -96
  318. package/modern/components/GridScrollbarFillerCell.js +39 -0
  319. package/modern/components/base/GridBody.js +2 -116
  320. package/modern/components/base/GridOverlays.js +10 -16
  321. package/modern/components/cell/GridCell.js +65 -369
  322. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  323. package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  324. package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  325. package/modern/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  326. package/modern/components/columnsManagement/GridColumnsManagement.js +256 -0
  327. package/modern/components/columnsManagement/index.js +1 -0
  328. package/modern/components/columnsManagement/utils.js +16 -0
  329. package/modern/components/containers/GridRoot.js +18 -14
  330. package/modern/components/containers/GridRootStyles.js +307 -204
  331. package/modern/components/index.js +1 -0
  332. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  333. package/modern/components/panel/GridColumnsPanel.js +4 -209
  334. package/modern/components/panel/GridPanel.js +3 -4
  335. package/modern/components/panel/filterPanel/GridFilterForm.js +30 -13
  336. package/modern/components/panel/filterPanel/GridFilterPanel.js +46 -20
  337. package/modern/components/toolbar/GridToolbarColumnsButton.js +38 -21
  338. package/modern/components/toolbar/GridToolbarDensitySelector.js +38 -21
  339. package/modern/components/toolbar/GridToolbarExport.js +6 -1
  340. package/modern/components/toolbar/GridToolbarExportContainer.js +39 -22
  341. package/modern/components/toolbar/GridToolbarFilterButton.js +6 -10
  342. package/modern/components/virtualization/GridBottomContainer.js +25 -0
  343. package/modern/components/virtualization/GridMainContainer.js +20 -0
  344. package/modern/components/virtualization/GridTopContainer.js +35 -0
  345. package/modern/components/virtualization/GridVirtualScrollbar.js +131 -0
  346. package/modern/components/virtualization/GridVirtualScroller.js +69 -16
  347. package/modern/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  348. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  349. package/modern/constants/defaultGridSlotsComponents.js +8 -3
  350. package/modern/constants/gridClasses.js +1 -1
  351. package/modern/constants/localeTextConstants.js +4 -6
  352. package/modern/hooks/core/gridCoreSelector.js +5 -0
  353. package/modern/hooks/core/useGridApiInitialization.js +3 -0
  354. package/modern/hooks/core/useGridInitialization.js +4 -0
  355. package/modern/hooks/core/useGridRefs.js +13 -0
  356. package/modern/hooks/core/useGridTheme.js +19 -0
  357. package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +5 -12
  358. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +67 -160
  359. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  360. package/modern/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  361. package/modern/hooks/features/columns/gridColumnsSelector.js +51 -0
  362. package/modern/hooks/features/columns/gridColumnsUtils.js +10 -12
  363. package/modern/hooks/features/columns/index.js +2 -1
  364. package/modern/hooks/features/columns/useGridColumnSpanning.js +62 -61
  365. package/modern/hooks/features/columns/useGridColumns.js +19 -21
  366. package/modern/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  367. package/modern/hooks/features/dimensions/index.js +1 -0
  368. package/modern/hooks/features/dimensions/useGridDimensions.js +214 -146
  369. package/modern/hooks/features/export/serializers/csvSerializer.js +2 -2
  370. package/modern/hooks/features/filter/useGridFilter.js +3 -3
  371. package/modern/hooks/features/focus/gridFocusStateSelector.js +2 -6
  372. package/modern/hooks/features/focus/useGridFocus.js +3 -3
  373. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  374. package/modern/hooks/features/pagination/useGridPagination.js +3 -5
  375. package/modern/hooks/features/rows/gridRowsSelector.js +2 -2
  376. package/modern/hooks/features/rows/gridRowsUtils.js +8 -5
  377. package/modern/hooks/features/rows/useGridRowsMeta.js +7 -4
  378. package/modern/hooks/features/scroll/useGridScroll.js +8 -9
  379. package/modern/hooks/features/sorting/gridSortingUtils.js +1 -1
  380. package/modern/hooks/features/sorting/useGridSorting.js +15 -10
  381. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  382. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +435 -432
  383. package/modern/hooks/features/virtualization/useGridVirtualization.js +8 -1
  384. package/modern/hooks/utils/index.js +4 -1
  385. package/modern/hooks/utils/useGridAriaAttributes.js +1 -1
  386. package/modern/hooks/utils/useGridNativeEventListener.js +3 -9
  387. package/modern/hooks/utils/useResizeObserver.js +36 -0
  388. package/modern/hooks/utils/useRunOnce.js +18 -0
  389. package/modern/index.js +1 -1
  390. package/modern/internals/index.js +9 -7
  391. package/modern/locales/arSD.js +5 -6
  392. package/modern/locales/beBY.js +5 -6
  393. package/modern/locales/bgBG.js +5 -6
  394. package/modern/locales/csCZ.js +5 -6
  395. package/modern/locales/daDK.js +5 -6
  396. package/modern/locales/deDE.js +5 -6
  397. package/modern/locales/elGR.js +5 -6
  398. package/modern/locales/esES.js +5 -6
  399. package/modern/locales/faIR.js +5 -6
  400. package/modern/locales/fiFI.js +5 -6
  401. package/modern/locales/frFR.js +5 -6
  402. package/modern/locales/heIL.js +5 -6
  403. package/modern/locales/hrHR.js +148 -0
  404. package/modern/locales/huHU.js +5 -6
  405. package/modern/locales/index.js +4 -1
  406. package/modern/locales/itIT.js +5 -6
  407. package/modern/locales/jaJP.js +5 -6
  408. package/modern/locales/koKR.js +5 -6
  409. package/modern/locales/nbNO.js +5 -6
  410. package/modern/locales/nlNL.js +5 -6
  411. package/modern/locales/plPL.js +5 -6
  412. package/modern/locales/ptBR.js +5 -6
  413. package/modern/locales/ptPT.js +148 -0
  414. package/modern/locales/roRO.js +5 -6
  415. package/modern/locales/ruRU.js +5 -6
  416. package/modern/locales/skSK.js +5 -6
  417. package/modern/locales/svSE.js +5 -6
  418. package/modern/locales/trTR.js +5 -6
  419. package/modern/locales/ukUA.js +5 -6
  420. package/modern/locales/urPK.js +5 -6
  421. package/modern/locales/viVN.js +5 -6
  422. package/modern/locales/zhCN.js +5 -6
  423. package/modern/locales/zhHK.js +148 -0
  424. package/modern/locales/zhTW.js +5 -6
  425. package/modern/models/index.js +0 -1
  426. package/modern/models/params/index.js +1 -2
  427. package/modern/utils/utils.js +10 -1
  428. package/node/DataGrid/DataGrid.js +6 -6
  429. package/node/DataGrid/useDataGridComponent.js +1 -0
  430. package/node/DataGrid/useDataGridProps.js +1 -0
  431. package/node/components/GridColumnHeaders.js +3 -11
  432. package/node/components/GridDetailPanels.js +10 -0
  433. package/node/components/GridHeaders.js +60 -0
  434. package/node/components/GridPinnedRows.js +10 -0
  435. package/node/components/GridRow.js +157 -94
  436. package/node/components/GridScrollbarFillerCell.js +47 -0
  437. package/node/components/base/GridBody.js +7 -118
  438. package/node/components/base/GridOverlays.js +9 -15
  439. package/node/components/cell/GridCell.js +66 -369
  440. package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  441. package/node/components/columnHeaders/GridColumnHeaderItem.js +8 -4
  442. package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  443. package/node/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  444. package/node/components/columnsManagement/GridColumnsManagement.js +264 -0
  445. package/node/components/columnsManagement/index.js +16 -0
  446. package/node/components/columnsManagement/utils.js +24 -0
  447. package/node/components/containers/GridRoot.js +17 -14
  448. package/node/components/containers/GridRootStyles.js +175 -72
  449. package/node/components/index.js +11 -0
  450. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  451. package/node/components/panel/GridColumnsPanel.js +4 -208
  452. package/node/components/panel/GridPanel.js +3 -4
  453. package/node/components/panel/filterPanel/GridFilterForm.js +29 -12
  454. package/node/components/panel/filterPanel/GridFilterPanel.js +45 -19
  455. package/node/components/toolbar/GridToolbarColumnsButton.js +36 -20
  456. package/node/components/toolbar/GridToolbarDensitySelector.js +36 -20
  457. package/node/components/toolbar/GridToolbarExport.js +6 -1
  458. package/node/components/toolbar/GridToolbarExportContainer.js +37 -21
  459. package/node/components/toolbar/GridToolbarFilterButton.js +6 -10
  460. package/node/components/virtualization/GridBottomContainer.js +34 -0
  461. package/node/components/{containers → virtualization}/GridMainContainer.js +7 -29
  462. package/node/components/virtualization/GridTopContainer.js +44 -0
  463. package/node/components/virtualization/GridVirtualScrollbar.js +138 -0
  464. package/node/components/virtualization/GridVirtualScroller.js +69 -17
  465. package/node/components/virtualization/GridVirtualScrollerFiller.js +77 -0
  466. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  467. package/node/constants/defaultGridSlotsComponents.js +6 -1
  468. package/node/constants/gridClasses.js +1 -1
  469. package/node/constants/localeTextConstants.js +4 -6
  470. package/node/hooks/core/gridCoreSelector.js +12 -0
  471. package/node/hooks/core/useGridApiInitialization.js +3 -0
  472. package/node/hooks/core/useGridInitialization.js +4 -0
  473. package/node/hooks/core/useGridRefs.js +22 -0
  474. package/node/hooks/core/useGridTheme.js +29 -0
  475. package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +5 -12
  476. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +65 -159
  477. package/node/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  478. package/node/hooks/features/columns/gridColumnsInterfaces.js +11 -1
  479. package/node/hooks/features/columns/gridColumnsSelector.js +52 -1
  480. package/node/hooks/features/columns/gridColumnsUtils.js +10 -13
  481. package/node/hooks/features/columns/index.js +22 -61
  482. package/node/hooks/features/columns/useGridColumnSpanning.js +62 -61
  483. package/node/hooks/features/columns/useGridColumns.js +20 -22
  484. package/node/hooks/features/dimensions/gridDimensionsSelectors.js +8 -0
  485. package/node/hooks/features/dimensions/index.js +11 -0
  486. package/node/hooks/features/dimensions/useGridDimensions.js +215 -144
  487. package/node/hooks/features/export/serializers/csvSerializer.js +2 -2
  488. package/node/hooks/features/filter/useGridFilter.js +2 -2
  489. package/node/hooks/features/focus/gridFocusStateSelector.js +3 -7
  490. package/node/hooks/features/focus/useGridFocus.js +2 -2
  491. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -15
  492. package/node/hooks/features/pagination/useGridPagination.js +3 -5
  493. package/node/hooks/features/rows/gridRowsSelector.js +2 -2
  494. package/node/hooks/features/rows/gridRowsUtils.js +8 -5
  495. package/node/hooks/features/rows/useGridRowsMeta.js +5 -3
  496. package/node/hooks/features/scroll/useGridScroll.js +8 -9
  497. package/node/hooks/features/sorting/gridSortingUtils.js +1 -1
  498. package/node/hooks/features/sorting/useGridSorting.js +15 -10
  499. package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  500. package/node/hooks/features/virtualization/useGridVirtualScroller.js +434 -431
  501. package/node/hooks/features/virtualization/useGridVirtualization.js +9 -1
  502. package/node/hooks/utils/index.js +36 -0
  503. package/node/hooks/utils/useGridAriaAttributes.js +1 -1
  504. package/node/hooks/utils/useGridNativeEventListener.js +3 -9
  505. package/node/hooks/utils/useResizeObserver.js +44 -0
  506. package/node/hooks/utils/useRunOnce.js +27 -0
  507. package/node/index.js +1 -1
  508. package/node/internals/index.js +86 -71
  509. package/node/locales/arSD.js +5 -6
  510. package/node/locales/beBY.js +5 -6
  511. package/node/locales/bgBG.js +5 -6
  512. package/node/locales/csCZ.js +5 -6
  513. package/node/locales/daDK.js +5 -6
  514. package/node/locales/deDE.js +5 -6
  515. package/node/locales/elGR.js +5 -6
  516. package/node/locales/esES.js +5 -6
  517. package/node/locales/faIR.js +5 -6
  518. package/node/locales/fiFI.js +5 -6
  519. package/node/locales/frFR.js +5 -6
  520. package/node/locales/heIL.js +5 -6
  521. package/node/locales/hrHR.js +154 -0
  522. package/node/locales/huHU.js +5 -6
  523. package/node/locales/index.js +33 -0
  524. package/node/locales/itIT.js +5 -6
  525. package/node/locales/jaJP.js +5 -6
  526. package/node/locales/koKR.js +5 -6
  527. package/node/locales/nbNO.js +5 -6
  528. package/node/locales/nlNL.js +5 -6
  529. package/node/locales/plPL.js +5 -6
  530. package/node/locales/ptBR.js +5 -6
  531. package/node/locales/ptPT.js +154 -0
  532. package/node/locales/roRO.js +5 -6
  533. package/node/locales/ruRU.js +5 -6
  534. package/node/locales/skSK.js +5 -6
  535. package/node/locales/svSE.js +5 -6
  536. package/node/locales/trTR.js +5 -6
  537. package/node/locales/ukUA.js +5 -6
  538. package/node/locales/urPK.js +5 -6
  539. package/node/locales/viVN.js +5 -6
  540. package/node/locales/zhCN.js +5 -6
  541. package/node/locales/zhHK.js +154 -0
  542. package/node/locales/zhTW.js +5 -6
  543. package/node/models/index.js +0 -11
  544. package/node/models/params/index.js +0 -11
  545. package/node/utils/utils.js +11 -1
  546. package/package.json +6 -6
  547. package/utils/utils.d.ts +6 -0
  548. package/utils/utils.js +10 -1
  549. package/components/DataGridVirtualScroller.d.ts +0 -3
  550. package/components/DataGridVirtualScroller.js +0 -35
  551. package/components/containers/GridMainContainer.js +0 -43
  552. package/legacy/components/DataGridVirtualScroller.js +0 -32
  553. package/legacy/components/containers/GridMainContainer.js +0 -45
  554. package/legacy/models/gridRootContainerRef.js +0 -1
  555. package/legacy/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  556. package/models/gridRootContainerRef.d.ts +0 -5
  557. package/models/gridRootContainerRef.js +0 -1
  558. package/models/params/gridRenderedRowsIntervalChangeParams.d.ts +0 -10
  559. package/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  560. package/modern/components/DataGridVirtualScroller.js +0 -35
  561. package/modern/components/containers/GridMainContainer.js +0 -42
  562. package/modern/models/gridRootContainerRef.js +0 -1
  563. package/modern/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  564. package/node/components/DataGridVirtualScroller.js +0 -42
  565. package/node/models/gridRootContainerRef.js +0 -5
  566. package/node/models/params/gridRenderedRowsIntervalChangeParams.js +0 -5
@@ -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)({