@mui/x-data-grid 8.0.0-alpha.7 → 8.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 (393) hide show
  1. package/CHANGELOG.md +551 -3
  2. package/DataGrid/DataGrid.js +4 -5
  3. package/DataGrid/useDataGridComponent.d.ts +2 -1
  4. package/DataGrid/useDataGridComponent.js +1 -1
  5. package/components/GridApiContext.js +2 -0
  6. package/components/GridConfigurationContext.js +2 -0
  7. package/components/GridHeaders.js +2 -2
  8. package/components/GridRow.d.ts +5 -9
  9. package/components/GridRow.js +28 -78
  10. package/components/GridScrollArea.js +2 -0
  11. package/components/GridSkeletonLoadingOverlay.js +18 -18
  12. package/components/cell/GridCell.d.ts +9 -16
  13. package/components/cell/GridCell.js +17 -35
  14. package/components/columnHeaders/GridColumnGroupHeader.d.ts +5 -5
  15. package/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  16. package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +3 -3
  17. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +20 -6
  18. package/components/columnHeaders/GridColumnHeaderItem.d.ts +5 -5
  19. package/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  20. package/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
  21. package/components/containers/GridRoot.d.ts +2 -2
  22. package/components/containers/GridRoot.js +14 -6
  23. package/components/containers/GridRootStyles.js +7 -0
  24. package/components/panel/GridPanel.js +2 -1
  25. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +1 -0
  26. package/components/panel/filterPanel/GridFilterInputBoolean.js +12 -16
  27. package/components/panel/filterPanel/GridFilterInputDate.d.ts +2 -1
  28. package/components/panel/filterPanel/GridFilterInputDate.js +32 -29
  29. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  30. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
  31. package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +1 -0
  32. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +13 -17
  33. package/components/panel/filterPanel/GridFilterInputValue.d.ts +1 -0
  34. package/components/panel/filterPanel/GridFilterInputValue.js +34 -28
  35. package/components/panel/filterPanel/GridFilterInputValueProps.d.ts +2 -1
  36. package/components/toolbar/GridToolbarColumnsButton.js +6 -1
  37. package/components/toolbar/GridToolbarFilterButton.js +6 -1
  38. package/components/virtualization/GridVirtualScrollbar.js +11 -12
  39. package/components/virtualization/GridVirtualScroller.js +4 -4
  40. package/constants/gridClasses.d.ts +12 -0
  41. package/constants/gridClasses.js +1 -1
  42. package/constants/localeTextConstants.js +1 -0
  43. package/context/GridContextProvider.d.ts +2 -1
  44. package/context/GridRootPropsContext.js +2 -0
  45. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +2 -2
  46. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +2 -2
  47. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +2 -2
  48. package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.d.ts +2 -2
  49. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +2 -2
  50. package/hooks/core/useGridApiInitialization.d.ts +2 -2
  51. package/hooks/core/useGridInitialization.d.ts +2 -2
  52. package/hooks/core/useGridIsRtl.d.ts +2 -2
  53. package/hooks/core/useGridLocaleText.d.ts +2 -2
  54. package/hooks/core/useGridLoggerFactory.d.ts +2 -2
  55. package/hooks/core/useGridRefs.d.ts +2 -2
  56. package/hooks/core/useGridStateInitialization.d.ts +2 -2
  57. package/hooks/features/clipboard/useGridClipboard.d.ts +2 -2
  58. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +2 -2
  59. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +5 -7
  60. package/hooks/features/columnHeaders/useGridColumnHeaders.js +34 -76
  61. package/hooks/features/columnMenu/useGridColumnMenu.d.ts +2 -2
  62. package/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  63. package/hooks/features/columnResize/useGridColumnResize.d.ts +2 -2
  64. package/hooks/features/columns/gridColumnsUtils.d.ts +4 -4
  65. package/hooks/features/columns/useGridColumnSpanning.d.ts +2 -2
  66. package/hooks/features/columns/useGridColumns.d.ts +2 -2
  67. package/hooks/features/density/useGridDensity.d.ts +2 -2
  68. package/hooks/features/dimensions/useGridDimensions.d.ts +2 -2
  69. package/hooks/features/dimensions/useGridDimensions.js +1 -3
  70. package/hooks/features/editing/useGridCellEditing.d.ts +2 -2
  71. package/hooks/features/editing/useGridCellEditing.js +1 -1
  72. package/hooks/features/editing/useGridEditing.d.ts +2 -2
  73. package/hooks/features/editing/useGridRowEditing.d.ts +2 -2
  74. package/hooks/features/editing/useGridRowEditing.js +1 -1
  75. package/hooks/features/events/useGridEvents.d.ts +2 -2
  76. package/hooks/features/export/serializers/csvSerializer.d.ts +2 -1
  77. package/hooks/features/export/useGridCsvExport.d.ts +2 -2
  78. package/hooks/features/export/useGridPrintExport.d.ts +2 -2
  79. package/hooks/features/export/utils.d.ts +2 -2
  80. package/hooks/features/filter/gridFilterSelector.d.ts +1 -1
  81. package/hooks/features/filter/gridFilterSelector.js +6 -1
  82. package/hooks/features/filter/gridFilterUtils.d.ts +7 -7
  83. package/hooks/features/filter/gridFilterUtils.js +3 -3
  84. package/hooks/features/filter/useGridFilter.d.ts +2 -2
  85. package/hooks/features/focus/useGridFocus.d.ts +2 -2
  86. package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +2 -2
  87. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +2 -2
  88. package/hooks/features/keyboardNavigation/utils.d.ts +3 -3
  89. package/hooks/features/listView/useGridListView.d.ts +2 -2
  90. package/hooks/features/pagination/gridPaginationInterfaces.d.ts +3 -0
  91. package/hooks/features/pagination/gridPaginationSelector.d.ts +21 -2
  92. package/hooks/features/pagination/gridPaginationSelector.js +39 -1
  93. package/hooks/features/pagination/useGridPagination.d.ts +3 -3
  94. package/hooks/features/pagination/useGridPagination.js +5 -3
  95. package/hooks/features/pagination/useGridPaginationMeta.d.ts +2 -2
  96. package/hooks/features/pagination/useGridPaginationModel.d.ts +2 -2
  97. package/hooks/features/pagination/useGridPaginationModel.js +23 -1
  98. package/hooks/features/pagination/useGridRowCount.d.ts +2 -2
  99. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.d.ts +1 -0
  100. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
  101. package/hooks/features/preferencesPanel/index.d.ts +1 -1
  102. package/hooks/features/preferencesPanel/index.js +1 -1
  103. package/hooks/features/preferencesPanel/useGridPreferencesPanel.d.ts +2 -2
  104. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  105. package/hooks/features/rowSelection/useGridRowSelection.d.ts +2 -2
  106. package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.d.ts +2 -2
  107. package/hooks/features/rowSelection/utils.d.ts +3 -2
  108. package/hooks/features/rows/gridRowSpanningUtils.d.ts +2 -2
  109. package/hooks/features/rows/gridRowsSelector.js +1 -1
  110. package/hooks/features/rows/gridRowsUtils.d.ts +4 -4
  111. package/hooks/features/rows/useGridParamsApi.d.ts +2 -2
  112. package/hooks/features/rows/useGridRowSpanning.d.ts +2 -2
  113. package/hooks/features/rows/useGridRows.d.ts +2 -2
  114. package/hooks/features/rows/useGridRows.js +2 -2
  115. package/hooks/features/rows/useGridRowsMeta.d.ts +2 -2
  116. package/hooks/features/rows/useGridRowsPreProcessors.d.ts +2 -2
  117. package/hooks/features/scroll/useGridScroll.d.ts +2 -2
  118. package/hooks/features/sorting/gridSortingUtils.d.ts +3 -3
  119. package/hooks/features/sorting/gridSortingUtils.js +2 -2
  120. package/hooks/features/sorting/useGridSorting.d.ts +2 -2
  121. package/hooks/features/statePersistence/useGridStatePersistence.d.ts +2 -2
  122. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +6 -0
  123. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +42 -0
  124. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +2 -1
  125. package/hooks/features/virtualization/useGridVirtualScroller.js +92 -50
  126. package/hooks/features/virtualization/useGridVirtualization.d.ts +2 -2
  127. package/hooks/utils/useGridApiContext.d.ts +2 -2
  128. package/hooks/utils/useGridApiEventHandler.d.ts +4 -4
  129. package/hooks/utils/useGridApiMethod.d.ts +2 -2
  130. package/hooks/utils/useGridApiRef.d.ts +2 -2
  131. package/hooks/utils/useGridApiRef.js +3 -1
  132. package/hooks/utils/useGridInitializeState.d.ts +3 -3
  133. package/hooks/utils/useGridLogger.d.ts +2 -2
  134. package/hooks/utils/useGridNativeEventListener.d.ts +2 -1
  135. package/hooks/utils/useGridPrivateApiContext.d.ts +2 -1
  136. package/hooks/utils/useGridSelector.d.ts +2 -2
  137. package/hooks/utils/useGridVisibleRows.d.ts +8 -6
  138. package/hooks/utils/useGridVisibleRows.js +5 -28
  139. package/index.js +1 -1
  140. package/internals/constants.d.ts +6 -0
  141. package/internals/constants.js +8 -1
  142. package/internals/index.d.ts +1 -0
  143. package/internals/index.js +1 -0
  144. package/internals/utils/attachPinnedStyle.d.ts +2 -0
  145. package/internals/utils/attachPinnedStyle.js +9 -0
  146. package/internals/utils/getPinnedCellOffset.d.ts +3 -3
  147. package/internals/utils/getPinnedCellOffset.js +6 -7
  148. package/internals/utils/index.d.ts +1 -0
  149. package/internals/utils/index.js +2 -1
  150. package/locales/arSD.js +2 -0
  151. package/locales/beBY.js +1 -0
  152. package/locales/bgBG.js +2 -0
  153. package/locales/csCZ.js +2 -0
  154. package/locales/daDK.js +2 -0
  155. package/locales/deDE.js +2 -0
  156. package/locales/elGR.js +2 -0
  157. package/locales/esES.js +2 -0
  158. package/locales/faIR.js +7 -6
  159. package/locales/fiFI.js +2 -0
  160. package/locales/frFR.js +2 -0
  161. package/locales/heIL.js +2 -0
  162. package/locales/hrHR.js +2 -0
  163. package/locales/huHU.js +2 -0
  164. package/locales/isIS.js +2 -0
  165. package/locales/itIT.js +2 -0
  166. package/locales/jaJP.js +2 -0
  167. package/locales/koKR.js +2 -0
  168. package/locales/nbNO.js +2 -0
  169. package/locales/nlNL.js +2 -0
  170. package/locales/nnNO.js +2 -0
  171. package/locales/plPL.js +2 -0
  172. package/locales/ptBR.js +2 -0
  173. package/locales/ptPT.js +2 -0
  174. package/locales/roRO.js +2 -0
  175. package/locales/ruRU.js +2 -0
  176. package/locales/skSK.js +2 -0
  177. package/locales/svSE.js +2 -0
  178. package/locales/trTR.js +2 -0
  179. package/locales/ukUA.js +2 -0
  180. package/locales/urPK.js +11 -10
  181. package/locales/viVN.js +2 -0
  182. package/locales/zhCN.js +2 -0
  183. package/locales/zhHK.js +2 -0
  184. package/locales/zhTW.js +2 -0
  185. package/material/index.js +2 -1
  186. package/models/api/gridLocaleTextApi.d.ts +1 -0
  187. package/models/colDef/gridColDef.d.ts +9 -8
  188. package/models/events/gridEventLookup.d.ts +6 -1
  189. package/models/gridExport.d.ts +2 -2
  190. package/models/gridFilterOperator.d.ts +2 -1
  191. package/models/gridIconSlotsComponent.d.ts +5 -0
  192. package/models/gridStateCommunity.d.ts +4 -0
  193. package/models/props/DataGridProps.d.ts +2 -1
  194. package/modern/DataGrid/DataGrid.js +4 -5
  195. package/modern/DataGrid/useDataGridComponent.js +1 -1
  196. package/modern/components/GridApiContext.js +2 -0
  197. package/modern/components/GridConfigurationContext.js +2 -0
  198. package/modern/components/GridHeaders.js +2 -2
  199. package/modern/components/GridRow.js +28 -78
  200. package/modern/components/GridScrollArea.js +2 -0
  201. package/modern/components/GridSkeletonLoadingOverlay.js +18 -18
  202. package/modern/components/cell/GridCell.js +17 -35
  203. package/modern/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  204. package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +20 -6
  205. package/modern/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  206. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
  207. package/modern/components/containers/GridRoot.js +14 -6
  208. package/modern/components/containers/GridRootStyles.js +7 -0
  209. package/modern/components/panel/GridPanel.js +2 -1
  210. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +12 -16
  211. package/modern/components/panel/filterPanel/GridFilterInputDate.js +32 -29
  212. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  213. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
  214. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +13 -17
  215. package/modern/components/panel/filterPanel/GridFilterInputValue.js +34 -28
  216. package/modern/components/toolbar/GridToolbarColumnsButton.js +6 -1
  217. package/modern/components/toolbar/GridToolbarFilterButton.js +6 -1
  218. package/modern/components/virtualization/GridVirtualScrollbar.js +11 -12
  219. package/modern/components/virtualization/GridVirtualScroller.js +4 -4
  220. package/modern/constants/gridClasses.js +1 -1
  221. package/modern/constants/localeTextConstants.js +1 -0
  222. package/modern/context/GridRootPropsContext.js +2 -0
  223. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +34 -76
  224. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  225. package/modern/hooks/features/dimensions/useGridDimensions.js +1 -3
  226. package/modern/hooks/features/editing/useGridCellEditing.js +1 -1
  227. package/modern/hooks/features/editing/useGridRowEditing.js +1 -1
  228. package/modern/hooks/features/filter/gridFilterSelector.js +6 -1
  229. package/modern/hooks/features/filter/gridFilterUtils.js +3 -3
  230. package/modern/hooks/features/pagination/gridPaginationSelector.js +39 -1
  231. package/modern/hooks/features/pagination/useGridPagination.js +5 -3
  232. package/modern/hooks/features/pagination/useGridPaginationModel.js +23 -1
  233. package/modern/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
  234. package/modern/hooks/features/preferencesPanel/index.js +1 -1
  235. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  236. package/modern/hooks/features/rows/gridRowsSelector.js +1 -1
  237. package/modern/hooks/features/rows/useGridRows.js +2 -2
  238. package/modern/hooks/features/sorting/gridSortingUtils.js +2 -2
  239. package/modern/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +42 -0
  240. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +92 -50
  241. package/modern/hooks/utils/useGridApiRef.js +3 -1
  242. package/modern/hooks/utils/useGridVisibleRows.js +5 -28
  243. package/modern/index.js +1 -1
  244. package/modern/internals/constants.js +8 -1
  245. package/modern/internals/index.js +1 -0
  246. package/modern/internals/utils/attachPinnedStyle.js +9 -0
  247. package/modern/internals/utils/getPinnedCellOffset.js +6 -7
  248. package/modern/internals/utils/index.js +2 -1
  249. package/modern/locales/arSD.js +2 -0
  250. package/modern/locales/beBY.js +1 -0
  251. package/modern/locales/bgBG.js +2 -0
  252. package/modern/locales/csCZ.js +2 -0
  253. package/modern/locales/daDK.js +2 -0
  254. package/modern/locales/deDE.js +2 -0
  255. package/modern/locales/elGR.js +2 -0
  256. package/modern/locales/esES.js +2 -0
  257. package/modern/locales/faIR.js +7 -6
  258. package/modern/locales/fiFI.js +2 -0
  259. package/modern/locales/frFR.js +2 -0
  260. package/modern/locales/heIL.js +2 -0
  261. package/modern/locales/hrHR.js +2 -0
  262. package/modern/locales/huHU.js +2 -0
  263. package/modern/locales/isIS.js +2 -0
  264. package/modern/locales/itIT.js +2 -0
  265. package/modern/locales/jaJP.js +2 -0
  266. package/modern/locales/koKR.js +2 -0
  267. package/modern/locales/nbNO.js +2 -0
  268. package/modern/locales/nlNL.js +2 -0
  269. package/modern/locales/nnNO.js +2 -0
  270. package/modern/locales/plPL.js +2 -0
  271. package/modern/locales/ptBR.js +2 -0
  272. package/modern/locales/ptPT.js +2 -0
  273. package/modern/locales/roRO.js +2 -0
  274. package/modern/locales/ruRU.js +2 -0
  275. package/modern/locales/skSK.js +2 -0
  276. package/modern/locales/svSE.js +2 -0
  277. package/modern/locales/trTR.js +2 -0
  278. package/modern/locales/ukUA.js +2 -0
  279. package/modern/locales/urPK.js +11 -10
  280. package/modern/locales/viVN.js +2 -0
  281. package/modern/locales/zhCN.js +2 -0
  282. package/modern/locales/zhHK.js +2 -0
  283. package/modern/locales/zhTW.js +2 -0
  284. package/modern/material/index.js +2 -1
  285. package/modern/utils/cellBorderUtils.js +5 -5
  286. package/modern/utils/domUtils.js +7 -2
  287. package/modern/utils/isJSDOM.js +1 -0
  288. package/modern/utils/rtlFlipSide.js +22 -0
  289. package/node/DataGrid/DataGrid.js +2 -3
  290. package/node/DataGrid/useDataGridComponent.js +1 -1
  291. package/node/components/GridApiContext.js +1 -0
  292. package/node/components/GridConfigurationContext.js +1 -0
  293. package/node/components/GridHeaders.js +2 -2
  294. package/node/components/GridRow.js +26 -77
  295. package/node/components/GridScrollArea.js +1 -0
  296. package/node/components/GridSkeletonLoadingOverlay.js +17 -17
  297. package/node/components/cell/GridCell.js +18 -36
  298. package/node/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  299. package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +19 -5
  300. package/node/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  301. package/node/components/columnSelection/GridCellCheckboxRenderer.js +1 -1
  302. package/node/components/containers/GridRoot.js +14 -6
  303. package/node/components/containers/GridRootStyles.js +7 -0
  304. package/node/components/panel/GridPanel.js +2 -1
  305. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +12 -16
  306. package/node/components/panel/filterPanel/GridFilterInputDate.js +31 -28
  307. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  308. package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
  309. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +13 -17
  310. package/node/components/panel/filterPanel/GridFilterInputValue.js +33 -27
  311. package/node/components/toolbar/GridToolbarColumnsButton.js +6 -1
  312. package/node/components/toolbar/GridToolbarFilterButton.js +6 -1
  313. package/node/components/virtualization/GridVirtualScrollbar.js +11 -12
  314. package/node/components/virtualization/GridVirtualScroller.js +4 -4
  315. package/node/constants/gridClasses.js +1 -1
  316. package/node/constants/localeTextConstants.js +1 -0
  317. package/node/context/GridRootPropsContext.js +1 -0
  318. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +32 -74
  319. package/node/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  320. package/node/hooks/features/dimensions/useGridDimensions.js +3 -5
  321. package/node/hooks/features/editing/useGridCellEditing.js +1 -1
  322. package/node/hooks/features/editing/useGridRowEditing.js +1 -1
  323. package/node/hooks/features/filter/gridFilterSelector.js +6 -1
  324. package/node/hooks/features/filter/gridFilterUtils.js +3 -3
  325. package/node/hooks/features/pagination/gridPaginationSelector.js +41 -3
  326. package/node/hooks/features/pagination/useGridPagination.js +5 -3
  327. package/node/hooks/features/pagination/useGridPaginationModel.js +23 -1
  328. package/node/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +9 -2
  329. package/node/hooks/features/preferencesPanel/index.js +11 -10
  330. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  331. package/node/hooks/features/rows/gridRowsSelector.js +1 -1
  332. package/node/hooks/features/rows/useGridRows.js +1 -1
  333. package/node/hooks/features/sorting/gridSortingUtils.js +2 -2
  334. package/node/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +49 -0
  335. package/node/hooks/features/virtualization/useGridVirtualScroller.js +94 -52
  336. package/node/hooks/utils/useGridApiRef.js +3 -1
  337. package/node/hooks/utils/useGridVisibleRows.js +3 -28
  338. package/node/index.js +1 -1
  339. package/node/internals/constants.js +9 -2
  340. package/node/internals/index.js +12 -0
  341. package/node/internals/utils/attachPinnedStyle.js +15 -0
  342. package/node/internals/utils/getPinnedCellOffset.js +6 -7
  343. package/node/internals/utils/index.js +11 -0
  344. package/node/locales/arSD.js +2 -0
  345. package/node/locales/beBY.js +1 -0
  346. package/node/locales/bgBG.js +2 -0
  347. package/node/locales/csCZ.js +2 -0
  348. package/node/locales/daDK.js +2 -0
  349. package/node/locales/deDE.js +2 -0
  350. package/node/locales/elGR.js +2 -0
  351. package/node/locales/esES.js +2 -0
  352. package/node/locales/faIR.js +7 -6
  353. package/node/locales/fiFI.js +2 -0
  354. package/node/locales/frFR.js +2 -0
  355. package/node/locales/heIL.js +2 -0
  356. package/node/locales/hrHR.js +2 -0
  357. package/node/locales/huHU.js +2 -0
  358. package/node/locales/isIS.js +2 -0
  359. package/node/locales/itIT.js +2 -0
  360. package/node/locales/jaJP.js +2 -0
  361. package/node/locales/koKR.js +2 -0
  362. package/node/locales/nbNO.js +2 -0
  363. package/node/locales/nlNL.js +2 -0
  364. package/node/locales/nnNO.js +2 -0
  365. package/node/locales/plPL.js +2 -0
  366. package/node/locales/ptBR.js +2 -0
  367. package/node/locales/ptPT.js +2 -0
  368. package/node/locales/roRO.js +2 -0
  369. package/node/locales/ruRU.js +2 -0
  370. package/node/locales/skSK.js +2 -0
  371. package/node/locales/svSE.js +2 -0
  372. package/node/locales/trTR.js +2 -0
  373. package/node/locales/ukUA.js +2 -0
  374. package/node/locales/urPK.js +11 -10
  375. package/node/locales/viVN.js +2 -0
  376. package/node/locales/zhCN.js +2 -0
  377. package/node/locales/zhHK.js +2 -0
  378. package/node/locales/zhTW.js +2 -0
  379. package/node/material/index.js +2 -1
  380. package/node/utils/cellBorderUtils.js +5 -5
  381. package/node/utils/domUtils.js +7 -2
  382. package/node/utils/isJSDOM.js +7 -0
  383. package/node/utils/rtlFlipSide.js +29 -0
  384. package/package.json +2 -2
  385. package/utils/cellBorderUtils.d.ts +3 -3
  386. package/utils/cellBorderUtils.js +5 -5
  387. package/utils/createSelector.d.ts +2 -2
  388. package/utils/domUtils.js +7 -2
  389. package/utils/getPublicApiRef.d.ts +2 -1
  390. package/utils/isJSDOM.d.ts +1 -0
  391. package/utils/isJSDOM.js +1 -0
  392. package/utils/rtlFlipSide.d.ts +2 -0
  393. package/utils/rtlFlipSide.js +22 -0
@@ -2,22 +2,23 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import clsx from 'clsx';
4
4
  import { styled } from '@mui/material/styles';
5
- import { useRtl } from '@mui/system/RtlProvider';
6
5
  import { useGridSelector } from "../../utils/index.js";
7
6
  import { useGridRootProps } from "../../utils/useGridRootProps.js";
8
7
  import { useGridPrivateApiContext } from "../../utils/useGridPrivateApiContext.js";
9
8
  import { useGridApiEventHandler } from "../../utils/useGridApiEventHandler.js";
10
9
  import { GridColumnHeaderItem } from "../../../components/columnHeaders/GridColumnHeaderItem.js";
11
10
  import { gridDimensionsSelector } from "../dimensions/index.js";
12
- import { gridRenderContextColumnsSelector, gridVirtualizationColumnEnabledSelector } from "../virtualization/index.js";
11
+ import { gridRenderContextColumnsSelector } from "../virtualization/index.js";
13
12
  import { computeOffsetLeft } from "../virtualization/useGridVirtualScroller.js";
14
13
  import { GridColumnGroupHeader } from "../../../components/columnHeaders/GridColumnGroupHeader.js";
15
- import { GridPinnedColumnPosition, gridColumnPositionsSelector, gridVisiblePinnedColumnDefinitionsSelector, gridColumnLookupSelector } from "../columns/index.js";
14
+ import { gridColumnPositionsSelector, gridVisiblePinnedColumnDefinitionsSelector, gridColumnLookupSelector } from "../columns/index.js";
16
15
  import { gridColumnGroupsUnwrappedModelSelector } from "../columnGrouping/gridColumnGroupsSelector.js";
17
16
  import { GridScrollbarFillerCell as ScrollbarFiller } from "../../../components/GridScrollbarFillerCell.js";
18
17
  import { getPinnedCellOffset } from "../../../internals/utils/getPinnedCellOffset.js";
19
18
  import { GridColumnHeaderSeparatorSides } from "../../../components/columnHeaders/GridColumnHeaderSeparator.js";
20
19
  import { gridClasses } from "../../../constants/gridClasses.js";
20
+ import { shouldCellShowLeftBorder, shouldCellShowRightBorder } from "../../../utils/cellBorderUtils.js";
21
+ import { PinnedColumnPosition } from "../../../internals/constants.js";
21
22
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
22
23
  export const GridColumnHeaderRow = styled('div', {
23
24
  name: 'MuiDataGrid',
@@ -44,10 +45,8 @@ export const useGridColumnHeaders = props => {
44
45
  const [dragCol, setDragCol] = React.useState('');
45
46
  const [resizeCol, setResizeCol] = React.useState('');
46
47
  const apiRef = useGridPrivateApiContext();
47
- const isRtl = useRtl();
48
48
  const rootProps = useGridRootProps();
49
49
  const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
50
- const hasColumnVirtualization = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);
51
50
  const columnGroupsModel = useGridSelector(apiRef, gridColumnGroupsUnwrappedModelSelector);
52
51
  const columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);
53
52
  const renderContext = useGridSelector(apiRef, gridRenderContextColumnsSelector);
@@ -84,18 +83,10 @@ export const useGridColumnHeaders = props => {
84
83
  // Helper for computation common between getColumnHeaders and getColumnGroupHeaders
85
84
  const getColumnsToRender = params => {
86
85
  const {
87
- renderContext: currentContext = renderContext,
88
- maxLastColumn = visibleColumns.length
86
+ renderContext: currentContext = renderContext
89
87
  } = params || {};
90
- let firstColumnToRender;
91
- let lastColumnToRender;
92
- if (!rootProps.disableVirtualization && !hasColumnVirtualization) {
93
- firstColumnToRender = 0;
94
- lastColumnToRender = maxLastColumn;
95
- } else {
96
- firstColumnToRender = currentContext.firstColumnIndex;
97
- lastColumnToRender = currentContext.lastColumnIndex;
98
- }
88
+ const firstColumnToRender = currentContext.firstColumnIndex;
89
+ const lastColumnToRender = currentContext.lastColumnIndex;
99
90
  const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
100
91
  return {
101
92
  renderedColumns,
@@ -104,7 +95,7 @@ export const useGridColumnHeaders = props => {
104
95
  };
105
96
  };
106
97
  const getFillers = (params, children, leftOverflow, borderBottom = false) => {
107
- const isPinnedRight = params?.position === GridPinnedColumnPosition.RIGHT;
98
+ const isPinnedRight = params?.position === PinnedColumnPosition.RIGHT;
108
99
  const isNotPinned = params?.position === undefined;
109
100
  const hasScrollbarFiller = pinnedColumns.right.length > 0 && isPinnedRight || pinnedColumns.right.length === 0 && isNotPinned;
110
101
  const leftOffsetWidth = offsetLeft - leftOverflow;
@@ -125,33 +116,6 @@ export const useGridColumnHeaders = props => {
125
116
  })]
126
117
  });
127
118
  };
128
- const getCellOffsetStyle = ({
129
- pinnedPosition,
130
- columnIndex,
131
- computedWidth
132
- }) => {
133
- let style;
134
- const isLeftPinned = pinnedPosition === GridPinnedColumnPosition.LEFT;
135
- const isRightPinned = pinnedPosition === GridPinnedColumnPosition.RIGHT;
136
- if (isLeftPinned || isRightPinned) {
137
- const pinnedOffset = getPinnedCellOffset(pinnedPosition, computedWidth, columnIndex, columnPositions, dimensions);
138
- let side = isLeftPinned ? 'left' : 'right';
139
- if (isRtl) {
140
- side = isLeftPinned ? 'right' : 'left';
141
- }
142
- if (pinnedPosition === 'left') {
143
- style = {
144
- [side]: pinnedOffset
145
- };
146
- }
147
- if (pinnedPosition === 'right') {
148
- style = {
149
- [side]: pinnedOffset
150
- };
151
- }
152
- }
153
- return style;
154
- };
155
119
  const getColumnHeaders = (params, other = {}) => {
156
120
  const {
157
121
  renderedColumns,
@@ -166,14 +130,15 @@ export const useGridColumnHeaders = props => {
166
130
  const hasFocus = columnHeaderFocus !== null && columnHeaderFocus.field === colDef.field;
167
131
  const open = columnMenuState.open && columnMenuState.field === colDef.field;
168
132
  const pinnedPosition = params?.position;
169
- const style = getCellOffsetStyle({
170
- pinnedPosition,
171
- columnIndex,
172
- computedWidth: colDef.computedWidth
173
- });
174
- const siblingWithBorderingSeparator = pinnedPosition === GridPinnedColumnPosition.RIGHT ? renderedColumns[i - 1] : renderedColumns[i + 1];
133
+ const scrollbarWidth = dimensions.hasScrollY ? dimensions.scrollbarSize : 0;
134
+ const pinnedOffset = getPinnedCellOffset(pinnedPosition, colDef.computedWidth, columnIndex, columnPositions, dimensions.columnsTotalWidth, scrollbarWidth);
135
+ const siblingWithBorderingSeparator = pinnedPosition === PinnedColumnPosition.RIGHT ? renderedColumns[i - 1] : renderedColumns[i + 1];
175
136
  const isSiblingFocused = siblingWithBorderingSeparator ? columnHeaderFocus !== null && columnHeaderFocus.field === siblingWithBorderingSeparator.field : false;
176
137
  const isLastUnpinned = columnIndex + 1 === columnPositions.length - pinnedColumns.right.length;
138
+ const indexInSection = i;
139
+ const sectionLength = renderedColumns.length;
140
+ const showLeftBorder = shouldCellShowLeftBorder(pinnedPosition, indexInSection);
141
+ const showRightBorder = shouldCellShowRightBorder(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
177
142
  columns.push(/*#__PURE__*/_jsx(GridColumnHeaderItem, _extends({}, sortColumnLookup[colDef.field], {
178
143
  columnMenuOpen: open,
179
144
  filterItemsCounter: filterColumnLookup[colDef.field] && filterColumnLookup[colDef.field].length,
@@ -186,12 +151,11 @@ export const useGridColumnHeaders = props => {
186
151
  hasFocus: hasFocus,
187
152
  tabIndex: tabIndex,
188
153
  pinnedPosition: pinnedPosition,
189
- style: style,
190
- indexInSection: i,
191
- sectionLength: renderedColumns.length,
192
- gridHasFiller: gridHasFiller,
154
+ pinnedOffset: pinnedOffset,
193
155
  isLastUnpinned: isLastUnpinned,
194
- isSiblingFocused: isSiblingFocused
156
+ isSiblingFocused: isSiblingFocused,
157
+ showLeftBorder: showLeftBorder,
158
+ showRightBorder: showRightBorder
195
159
  }, other), colDef.field));
196
160
  }
197
161
  return getFillers(params, columns, 0);
@@ -203,18 +167,15 @@ export const useGridColumnHeaders = props => {
203
167
  ownerState: rootProps,
204
168
  className: gridClasses['row--borderBottom'],
205
169
  children: [leftRenderContext && getColumnHeaders({
206
- position: GridPinnedColumnPosition.LEFT,
207
- renderContext: leftRenderContext,
208
- maxLastColumn: leftRenderContext.lastColumnIndex
170
+ position: PinnedColumnPosition.LEFT,
171
+ renderContext: leftRenderContext
209
172
  }, {
210
173
  disableReorder: true
211
174
  }), getColumnHeaders({
212
- renderContext,
213
- maxLastColumn: visibleColumns.length - pinnedColumns.right.length
175
+ renderContext
214
176
  }), rightRenderContext && getColumnHeaders({
215
- position: GridPinnedColumnPosition.RIGHT,
216
- renderContext: rightRenderContext,
217
- maxLastColumn: rightRenderContext.lastColumnIndex
177
+ position: PinnedColumnPosition.RIGHT,
178
+ renderContext: rightRenderContext
218
179
  }, {
219
180
  disableReorder: true,
220
181
  separatorSide: GridColumnHeaderSeparatorSides.Left
@@ -273,14 +234,11 @@ export const useGridColumnHeaders = props => {
273
234
  tabIndex
274
235
  };
275
236
  const pinnedPosition = params.position;
276
- const style = getCellOffsetStyle({
277
- pinnedPosition,
278
- columnIndex,
279
- computedWidth: headerInfo.width
280
- });
237
+ const scrollbarWidth = dimensions.hasScrollY ? dimensions.scrollbarSize : 0;
238
+ const pinnedOffset = getPinnedCellOffset(pinnedPosition, headerInfo.width, columnIndex, columnPositions, dimensions.columnsTotalWidth, scrollbarWidth);
281
239
  columnIndex += columnFields.length;
282
240
  let indexInSection = index;
283
- if (pinnedPosition === 'left') {
241
+ if (pinnedPosition === PinnedColumnPosition.LEFT) {
284
242
  // Group headers can expand to multiple columns, we need to adjust the index
285
243
  indexInSection = columnIndex - 1;
286
244
  }
@@ -296,10 +254,9 @@ export const useGridColumnHeaders = props => {
296
254
  hasFocus: hasFocus,
297
255
  tabIndex: tabIndex,
298
256
  pinnedPosition: pinnedPosition,
299
- style: style,
300
- indexInSection: indexInSection,
301
- sectionLength: visibleColumnGroupHeader.length,
302
- gridHasFiller: gridHasFiller
257
+ pinnedOffset: pinnedOffset,
258
+ showLeftBorder: shouldCellShowLeftBorder(pinnedPosition, indexInSection),
259
+ showRightBorder: shouldCellShowRightBorder(pinnedPosition, indexInSection, visibleColumnGroupHeader.length, rootProps.showCellVerticalBorder, gridHasFiller)
303
260
  }, index);
304
261
  });
305
262
  return getFillers(params, children, leftOverflow);
@@ -317,7 +274,7 @@ export const useGridColumnHeaders = props => {
317
274
  children: [leftRenderContext && getColumnGroupHeaders({
318
275
  depth,
319
276
  params: {
320
- position: GridPinnedColumnPosition.LEFT,
277
+ position: PinnedColumnPosition.LEFT,
321
278
  renderContext: leftRenderContext,
322
279
  maxLastColumn: leftRenderContext.lastColumnIndex
323
280
  }
@@ -329,7 +286,7 @@ export const useGridColumnHeaders = props => {
329
286
  }), rightRenderContext && getColumnGroupHeaders({
330
287
  depth,
331
288
  params: {
332
- position: GridPinnedColumnPosition.RIGHT,
289
+ position: PinnedColumnPosition.RIGHT,
333
290
  renderContext: rightRenderContext,
334
291
  maxLastColumn: rightRenderContext.lastColumnIndex
335
292
  }
@@ -344,11 +301,12 @@ export const useGridColumnHeaders = props => {
344
301
  rightRenderContext,
345
302
  pinnedColumns,
346
303
  visibleColumns,
347
- getCellOffsetStyle,
304
+ columnPositions,
348
305
  getFillers,
349
306
  getColumnHeadersRow,
350
307
  getColumnsToRender,
351
308
  getColumnGroupHeadersRows,
309
+ getPinnedCellOffset,
352
310
  isDragging: !!dragCol,
353
311
  getInnerProps: () => ({
354
312
  role: 'rowgroup'
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { GridStateInitializer } from '../../utils/useGridInitializeState';
4
4
  export declare const columnMenuStateInitializer: GridStateInitializer;
@@ -6,4 +6,4 @@ export declare const columnMenuStateInitializer: GridStateInitializer;
6
6
  * @requires useGridColumnResize (event)
7
7
  * @requires useGridInfiniteLoader (event)
8
8
  */
9
- export declare const useGridColumnMenu: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>) => void;
9
+ export declare const useGridColumnMenu: (apiRef: RefObject<GridPrivateApiCommunity>) => void;
@@ -40,7 +40,6 @@ export const useGridColumnMenu = apiRef => {
40
40
  });
41
41
  });
42
42
  apiRef.current.hidePreferences();
43
- apiRef.current.forceUpdate();
44
43
  }
45
44
  }, [apiRef, logger]);
46
45
  const hideColumnMenu = React.useCallback(() => {
@@ -82,7 +81,6 @@ export const useGridColumnMenu = apiRef => {
82
81
  columnMenu: newState
83
82
  });
84
83
  });
85
- apiRef.current.forceUpdate();
86
84
  }
87
85
  }, [apiRef, logger]);
88
86
  const toggleColumnMenu = React.useCallback(field => {
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridStateInitializer } from '../../utils/useGridInitializeState';
3
3
  import type { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  import type { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
@@ -7,4 +7,4 @@ export declare const columnResizeStateInitializer: GridStateInitializer;
7
7
  * @requires useGridColumns (method, event)
8
8
  * TODO: improve experience for last column
9
9
  */
10
- export declare const useGridColumnResize: (apiRef: React.RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "autosizeOptions" | "autosizeOnMount" | "disableAutosize" | "onColumnResize" | "onColumnWidthChange" | "disableVirtualization">) => void;
10
+ export declare const useGridColumnResize: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "autosizeOptions" | "autosizeOnMount" | "disableAutosize" | "onColumnResize" | "onColumnWidthChange" | "disableVirtualization">) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridColumnsState, GridColumnsRawState, GridColumnVisibilityModel, GridColumnsInitialState } from './gridColumnsInterfaces';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  import { GridApiCommunity } from '../../../models/api/gridApiCommunity';
@@ -44,13 +44,13 @@ export declare const createColumnsState: ({ apiRef, columnsToUpsert, initialStat
44
44
  initialState: GridColumnsInitialState | undefined;
45
45
  columnVisibilityModel?: GridColumnVisibilityModel;
46
46
  keepOnlyColumnsToUpsert: boolean;
47
- apiRef: React.MutableRefObject<GridApiCommunity>;
47
+ apiRef: RefObject<GridApiCommunity>;
48
48
  }) => GridColumnsState;
49
49
  export declare function getFirstNonSpannedColumnToRender({ firstColumnToRender, apiRef, firstRowToRender, lastRowToRender, visibleRows, }: {
50
50
  firstColumnToRender: number;
51
- apiRef: React.MutableRefObject<GridApiCommon>;
51
+ apiRef: RefObject<GridApiCommon>;
52
52
  firstRowToRender: number;
53
53
  lastRowToRender: number;
54
54
  visibleRows: GridRowEntry[];
55
55
  }): number;
56
- export declare function getTotalHeaderHeight(apiRef: React.MutableRefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, 'columnHeaderHeight' | 'headerFilterHeight' | 'unstable_listView' | 'columnGroupHeaderHeight'>): number;
56
+ export declare function getTotalHeaderHeight(apiRef: RefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, 'columnHeaderHeight' | 'headerFilterHeight' | 'unstable_listView' | 'columnGroupHeaderHeight'>): number;
@@ -1,7 +1,7 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  /**
4
4
  * @requires useGridColumns (method, event)
5
5
  * @requires useGridParamsApi (method)
6
6
  */
7
- export declare const useGridColumnSpanning: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>) => void;
7
+ export declare const useGridColumnSpanning: (apiRef: RefObject<GridPrivateApiCommunity>) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  import { GridStateInitializer } from '../../utils/useGridInitializeState';
@@ -8,4 +8,4 @@ export declare const columnsStateInitializer: GridStateInitializer<Pick<DataGrid
8
8
  * @requires useGridDimensions (method, event) - can be after
9
9
  * TODO: Impossible priority - useGridParamsApi also needs to be after useGridColumns
10
10
  */
11
- export declare function useGridColumns(apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, 'initialState' | 'columns' | 'columnVisibilityModel' | 'onColumnVisibilityModelChange' | 'slots' | 'slotProps' | 'disableColumnSelector' | 'signature'>): void;
11
+ export declare function useGridColumns(apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, 'initialState' | 'columns' | 'columnVisibilityModel' | 'onColumnVisibilityModelChange' | 'slots' | 'slotProps' | 'disableColumnSelector' | 'signature'>): void;
@@ -1,6 +1,6 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  import { GridStateInitializer } from '../../utils/useGridInitializeState';
5
5
  export declare const densityStateInitializer: GridStateInitializer<Pick<DataGridProcessedProps, 'initialState' | 'density'>>;
6
- export declare const useGridDensity: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "density" | "onDensityChange" | "initialState">) => void;
6
+ export declare const useGridDensity: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "density" | "onDensityChange" | "initialState">) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  import { GridDimensions } from './gridDimensionsApi';
@@ -6,5 +6,5 @@ import { GridStateInitializer } from '../../utils/useGridInitializeState';
6
6
  type RootProps = Pick<DataGridProcessedProps, 'onResize' | 'scrollbarSize' | 'pagination' | 'paginationMode' | 'autoHeight' | 'getRowHeight' | 'rowHeight' | 'resizeThrottleMs' | 'columnHeaderHeight' | 'columnGroupHeaderHeight' | 'headerFilterHeight'>;
7
7
  export type GridDimensionsState = GridDimensions;
8
8
  export declare const dimensionsStateInitializer: GridStateInitializer<RootProps>;
9
- export declare function useGridDimensions(apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: RootProps): void;
9
+ export declare function useGridDimensions(apiRef: RefObject<GridPrivateApiCommunity>, props: RootProps): void;
10
10
  export {};
@@ -15,6 +15,7 @@ import { gridRowsMetaSelector } from "../rows/gridRowsMetaSelector.js";
15
15
  import { calculatePinnedRowsHeight, getValidRowHeight, rowHeightWarning } from "../rows/gridRowsUtils.js";
16
16
  import { getTotalHeaderHeight } from "../columns/gridColumnsUtils.js";
17
17
  import { DATA_GRID_PROPS_DEFAULT_VALUES } from "../../../constants/dataGridPropsDefaultValues.js";
18
+ import { isJSDOM } from "../../../utils/isJSDOM.js";
18
19
  const EMPTY_SIZE = {
19
20
  width: 0,
20
21
  height: 0
@@ -220,9 +221,6 @@ export function useGridDimensions(apiRef, props) {
220
221
  const isFirstSizing = React.useRef(true);
221
222
  const handleResize = React.useCallback(size => {
222
223
  rootDimensionsRef.current = size;
223
-
224
- // jsdom has no layout capabilities
225
- const isJSDOM = /jsdom|HappyDOM/.test(window.navigator.userAgent);
226
224
  if (size.height === 0 && !errorShown.current && !props.autoHeight && !isJSDOM) {
227
225
  logger.error(['The parent DOM element of the Data Grid has an empty height.', 'Please make sure that this element has an intrinsic height.', 'The grid displays with a height of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\n'));
228
226
  errorShown.current = true;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
- export declare const useGridCellEditing: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "editMode" | "processRowUpdate" | "onCellEditStart" | "onCellEditStop" | "cellModesModel" | "onCellModesModelChange" | "onProcessRowUpdateError" | "signature">) => void;
4
+ export declare const useGridCellEditing: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "editMode" | "processRowUpdate" | "onCellEditStart" | "onCellEditStop" | "cellModesModel" | "onCellModesModelChange" | "onProcessRowUpdateError" | "signature">) => void;
@@ -338,7 +338,7 @@ export const useGridCellEditing = (apiRef, props) => {
338
338
  if (onProcessRowUpdateError) {
339
339
  onProcessRowUpdateError(errorThrown);
340
340
  } else if (process.env.NODE_ENV !== 'production') {
341
- warnOnce(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
341
+ warnOnce(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/persistence/.'], 'error');
342
342
  }
343
343
  };
344
344
  try {
@@ -1,6 +1,6 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  import { GridStateInitializer } from '../../utils/useGridInitializeState';
5
5
  export declare const editingStateInitializer: GridStateInitializer;
6
- export declare const useGridEditing: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "isCellEditable" | "editMode" | "processRowUpdate">) => void;
6
+ export declare const useGridEditing: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "isCellEditable" | "editMode" | "processRowUpdate">) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
- export declare const useGridRowEditing: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "editMode" | "processRowUpdate" | "onRowEditStart" | "onRowEditStop" | "onProcessRowUpdateError" | "rowModesModel" | "onRowModesModelChange" | "signature">) => void;
4
+ export declare const useGridRowEditing: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "editMode" | "processRowUpdate" | "onRowEditStart" | "onRowEditStop" | "onProcessRowUpdateError" | "rowModesModel" | "onRowModesModelChange" | "signature">) => void;
@@ -414,7 +414,7 @@ export const useGridRowEditing = (apiRef, props) => {
414
414
  if (onProcessRowUpdateError) {
415
415
  onProcessRowUpdateError(errorThrown);
416
416
  } else if (process.env.NODE_ENV !== 'production') {
417
- warnOnce(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
417
+ warnOnce(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/persistence/.'], 'error');
418
418
  }
419
419
  };
420
420
  try {
@@ -1,8 +1,8 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  /**
5
5
  * @requires useGridFocus (event) - can be after, async only
6
6
  * @requires useGridColumns (event) - can be after, async only
7
7
  */
8
- export declare function useGridEvents(apiRef: React.MutableRefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, 'onColumnHeaderClick' | 'onColumnHeaderDoubleClick' | 'onColumnHeaderContextMenu' | 'onColumnHeaderOver' | 'onColumnHeaderOut' | 'onColumnHeaderEnter' | 'onColumnHeaderLeave' | 'onCellClick' | 'onCellDoubleClick' | 'onCellKeyDown' | 'onPreferencePanelClose' | 'onPreferencePanelOpen' | 'onRowDoubleClick' | 'onRowClick' | 'onStateChange' | 'onMenuOpen' | 'onMenuClose'>): void;
8
+ export declare function useGridEvents(apiRef: RefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, 'onColumnHeaderClick' | 'onColumnHeaderDoubleClick' | 'onColumnHeaderContextMenu' | 'onColumnHeaderOver' | 'onColumnHeaderOut' | 'onColumnHeaderEnter' | 'onColumnHeaderLeave' | 'onCellClick' | 'onCellDoubleClick' | 'onCellKeyDown' | 'onPreferencePanelClose' | 'onPreferencePanelOpen' | 'onRowDoubleClick' | 'onRowClick' | 'onStateChange' | 'onMenuOpen' | 'onMenuClose'>): void;
@@ -1,3 +1,4 @@
1
+ import { RefObject } from '@mui/x-internals/types';
1
2
  import type { GridCsvExportOptions, GridRowId } from '../../../../models';
2
3
  import type { GridCellParams } from '../../../../models/params/gridCellParams';
3
4
  import type { GridStateColDef } from '../../../../models/colDef/gridColDef';
@@ -12,7 +13,7 @@ interface BuildCSVOptions {
12
13
  rowIds: GridRowId[];
13
14
  csvOptions: Required<Pick<GridCsvExportOptions, 'delimiter' | 'includeColumnGroupsHeaders' | 'includeHeaders' | 'shouldAppendQuotes' | 'escapeFormulas'>>;
14
15
  ignoreValueFormatter: boolean;
15
- apiRef: React.MutableRefObject<GridApiCommunity>;
16
+ apiRef: RefObject<GridApiCommunity>;
16
17
  }
17
18
  export declare function buildCSV(options: BuildCSVOptions): string;
18
19
  export {};
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import type { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  /**
@@ -8,4 +8,4 @@ import type { DataGridProcessedProps } from '../../../models/props/DataGridProps
8
8
  * @requires useGridSelection (state)
9
9
  * @requires useGridParamsApi (method)
10
10
  */
11
- export declare const useGridCsvExport: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "ignoreValueFormatterDuringExport">) => void;
11
+ export declare const useGridCsvExport: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "ignoreValueFormatterDuringExport">) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  /**
@@ -7,4 +7,4 @@ import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
7
7
  * @requires useGridSorting (state)
8
8
  * @requires useGridParamsApi (method)
9
9
  */
10
- export declare const useGridPrintExport: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "pagination" | "columnHeaderHeight" | "headerFilterHeight">) => void;
10
+ export declare const useGridPrintExport: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "pagination" | "columnHeaderHeight" | "headerFilterHeight">) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { GridExportOptions, GridCsvGetRowsToExportParams } from '../../../models/gridExport';
4
4
  import { GridStateColDef } from '../../../models/colDef/gridColDef';
@@ -7,7 +7,7 @@ interface GridGetColumnsToExportParams {
7
7
  /**
8
8
  * The API of the grid.
9
9
  */
10
- apiRef: React.MutableRefObject<GridApiCommunity>;
10
+ apiRef: RefObject<GridApiCommunity>;
11
11
  options: GridExportOptions;
12
12
  }
13
13
  export declare const getColumnsToExport: ({ apiRef, options, }: GridGetColumnsToExportParams) => GridStateColDef[];
@@ -36,7 +36,7 @@ export declare const gridFilteredDescendantCountLookupSelector: import("../../..
36
36
  * Does not contain the collapsed children.
37
37
  * @category Filtering
38
38
  */
39
- export declare const gridExpandedSortedRowEntriesSelector: import("../../..").OutputSelector<GridStateCommunity, import("../../..").GridRowEntry<import("../../..").GridValidRowModel>[], import("../../..").GridRowEntry<import("../../..").GridValidRowModel>[]>;
39
+ export declare const gridExpandedSortedRowEntriesSelector: import("../../..").OutputSelector<GridStateCommunity, any[] | undefined, import("../../..").GridRowEntry<import("../../..").GridValidRowModel>[]>;
40
40
  /**
41
41
  * Get the id of the rows accessible after the filtering process.
42
42
  * Does not contain the collapsed children.
@@ -49,7 +49,12 @@ export const gridFilteredDescendantCountLookupSelector = createSelector(gridFilt
49
49
  * Does not contain the collapsed children.
50
50
  * @category Filtering
51
51
  */
52
- export const gridExpandedSortedRowEntriesSelector = createSelectorMemoized(gridVisibleRowsLookupSelector, gridSortedRowEntriesSelector, (visibleRowsLookup, sortedRows) => sortedRows.filter(row => visibleRowsLookup[row.id] !== false));
52
+ export const gridExpandedSortedRowEntriesSelector = createSelectorMemoized(gridVisibleRowsLookupSelector, gridSortedRowEntriesSelector, gridRowMaximumTreeDepthSelector, gridFilterModelSelector, gridQuickFilterValuesSelector, (visibleRowsLookup, sortedRows, maxDepth, filterModel, quickFilterValues) => {
53
+ if (maxDepth < 2 && !filterModel.items.length && !quickFilterValues?.length) {
54
+ return sortedRows;
55
+ }
56
+ return sortedRows.filter(row => visibleRowsLookup[row.id] !== false);
57
+ });
53
58
 
54
59
  /**
55
60
  * Get the id of the rows accessible after the filtering process.
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridFilterItem, GridFilterModel } from '../../../models';
3
3
  import type { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
4
4
  import { GridStateCommunity } from '../../../models/gridStateCommunity';
@@ -6,18 +6,18 @@ import { GridAggregatedFilterItemApplier, GridFilterItemResult, GridQuickFilterV
6
6
  /**
7
7
  * Adds default values to the optional fields of a filter items.
8
8
  * @param {GridFilterItem} item The raw filter item.
9
- * @param {React.MutableRefObject<GridPrivateApiCommunity>} apiRef The API of the grid.
9
+ * @param {RefObject<GridPrivateApiCommunity>} apiRef The API of the grid.
10
10
  * @return {GridFilterItem} The clean filter item with an uniq ID and an always-defined operator.
11
11
  * TODO: Make the typing reflect the different between GridFilterInputItem and GridFilterItem.
12
12
  */
13
- export declare const cleanFilterItem: (item: GridFilterItem, apiRef: React.MutableRefObject<GridPrivateApiCommunity>) => GridFilterItem;
14
- export declare const sanitizeFilterModel: (model: GridFilterModel, disableMultipleColumnsFiltering: boolean, apiRef: React.MutableRefObject<GridPrivateApiCommunity>) => GridFilterModel;
15
- export declare const mergeStateWithFilterModel: (filterModel: GridFilterModel, disableMultipleColumnsFiltering: boolean, apiRef: React.MutableRefObject<GridPrivateApiCommunity>) => (filteringState: GridStateCommunity["filter"]) => GridStateCommunity["filter"];
13
+ export declare const cleanFilterItem: (item: GridFilterItem, apiRef: RefObject<GridPrivateApiCommunity>) => GridFilterItem;
14
+ export declare const sanitizeFilterModel: (model: GridFilterModel, disableMultipleColumnsFiltering: boolean, apiRef: RefObject<GridPrivateApiCommunity>) => GridFilterModel;
15
+ export declare const mergeStateWithFilterModel: (filterModel: GridFilterModel, disableMultipleColumnsFiltering: boolean, apiRef: RefObject<GridPrivateApiCommunity>) => (filteringState: GridStateCommunity["filter"]) => GridStateCommunity["filter"];
16
16
  export declare const removeDiacritics: (value: unknown) => unknown;
17
17
  export declare const shouldQuickFilterExcludeHiddenColumns: (filterModel: GridFilterModel) => boolean;
18
- export declare const buildAggregatedFilterApplier: (filterModel: GridFilterModel, apiRef: React.MutableRefObject<GridPrivateApiCommunity>, disableEval: boolean) => GridAggregatedFilterItemApplier;
18
+ export declare const buildAggregatedFilterApplier: (filterModel: GridFilterModel, apiRef: RefObject<GridPrivateApiCommunity>, disableEval: boolean) => GridAggregatedFilterItemApplier;
19
19
  type FilterCache = {
20
20
  cleanedFilterItems?: GridFilterItem[];
21
21
  };
22
- export declare const passFilterLogic: (allFilterItemResults: (null | GridFilterItemResult)[], allQuickFilterResults: (null | GridQuickFilterValueResult)[], filterModel: GridFilterModel, apiRef: React.MutableRefObject<GridPrivateApiCommunity>, cache: FilterCache) => boolean;
22
+ export declare const passFilterLogic: (allFilterItemResults: (null | GridFilterItemResult)[], allQuickFilterResults: (null | GridQuickFilterValueResult)[], filterModel: GridFilterModel, apiRef: RefObject<GridPrivateApiCommunity>, cache: FilterCache) => boolean;
23
23
  export {};
@@ -19,7 +19,7 @@ function getHasEval() {
19
19
  /**
20
20
  * Adds default values to the optional fields of a filter items.
21
21
  * @param {GridFilterItem} item The raw filter item.
22
- * @param {React.MutableRefObject<GridPrivateApiCommunity>} apiRef The API of the grid.
22
+ * @param {RefObject<GridPrivateApiCommunity>} apiRef The API of the grid.
23
23
  * @return {GridFilterItem} The clean filter item with an uniq ID and an always-defined operator.
24
24
  * TODO: Make the typing reflect the different between GridFilterInputItem and GridFilterItem.
25
25
  */
@@ -133,7 +133,7 @@ let filterItemsApplierId = 1;
133
133
  /**
134
134
  * Generates a method to easily check if a row is matching the current filter model.
135
135
  * @param {GridFilterModel} filterModel The model with which we want to filter the rows.
136
- * @param {React.MutableRefObject<GridPrivateApiCommunity>} apiRef The API of the grid.
136
+ * @param {RefObject<GridPrivateApiCommunity>} apiRef The API of the grid.
137
137
  * @returns {GridAggregatedFilterItemApplier | null} A method that checks if a row is matching the current filter model. If `null`, we consider that all the rows are matching the filters.
138
138
  */
139
139
  const buildAggregatedFilterItemsApplier = (filterModel, apiRef, disableEval) => {
@@ -181,7 +181,7 @@ export const shouldQuickFilterExcludeHiddenColumns = filterModel => {
181
181
  /**
182
182
  * Generates a method to easily check if a row is matching the current quick filter.
183
183
  * @param {any[]} filterModel The model with which we want to filter the rows.
184
- * @param {React.MutableRefObject<GridPrivateApiCommunity>} apiRef The API of the grid.
184
+ * @param {RefObject<GridPrivateApiCommunity>} apiRef The API of the grid.
185
185
  * @returns {GridAggregatedFilterItemApplier | null} A method that checks if a row is matching the current filter model. If `null`, we consider that all the rows are matching the filters.
186
186
  */
187
187
  const buildAggregatedQuickFilterApplier = (filterModel, apiRef) => {
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
3
3
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
4
4
  import { GridStateInitializer } from '../../utils/useGridInitializeState';
@@ -8,4 +8,4 @@ export declare const filterStateInitializer: GridStateInitializer<Pick<DataGridP
8
8
  * @requires useGridParamsApi (method)
9
9
  * @requires useGridRows (event)
10
10
  */
11
- export declare const useGridFilter: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "rows" | "initialState" | "filterModel" | "getRowId" | "onFilterModelChange" | "filterMode" | "disableMultipleColumnsFiltering" | "slots" | "slotProps" | "disableColumnFilter" | "disableEval" | "ignoreDiacritics">) => void;
11
+ export declare const useGridFilter: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "rows" | "initialState" | "filterModel" | "getRowId" | "onFilterModelChange" | "filterMode" | "disableMultipleColumnsFiltering" | "slots" | "slotProps" | "disableColumnFilter" | "disableEval" | "ignoreDiacritics">) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  import { GridStateInitializer } from '../../utils/useGridInitializeState';
@@ -8,4 +8,4 @@ export declare const focusStateInitializer: GridStateInitializer;
8
8
  * @requires useGridRows (method)
9
9
  * @requires useGridEditing (event)
10
10
  */
11
- export declare const useGridFocus: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "pagination" | "paginationMode">) => void;
11
+ export declare const useGridFocus: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "pagination" | "paginationMode">) => void;
@@ -1,6 +1,6 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  import { GridStateInitializer } from '../../utils/useGridInitializeState';
5
5
  export declare const headerFilteringStateInitializer: GridStateInitializer;
6
- export declare const useGridHeaderFiltering: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "signature" | "headerFilters">) => void;
6
+ export declare const useGridHeaderFiltering: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "signature" | "headerFilters">) => void;