@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
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
5
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
@@ -18,6 +19,7 @@ var _gridEditRowModel = require("../models/gridEditRowModel");
18
19
  var _gridClasses = require("../constants/gridClasses");
19
20
  var _composeGridClasses = require("../utils/composeGridClasses");
20
21
  var _useGridRootProps = require("../hooks/utils/useGridRootProps");
22
+ var _cellBorderUtils = require("../utils/cellBorderUtils");
21
23
  var _gridColumnsSelector = require("../hooks/features/columns/gridColumnsSelector");
22
24
  var _useGridSelector = require("../hooks/utils/useGridSelector");
23
25
  var _useGridVisibleRows = require("../hooks/utils/useGridVisibleRows");
@@ -28,14 +30,12 @@ var _constants = require("../internals/constants");
28
30
  var _gridSortingSelector = require("../hooks/features/sorting/gridSortingSelector");
29
31
  var _gridRowsSelector = require("../hooks/features/rows/gridRowsSelector");
30
32
  var _gridEditingSelectors = require("../hooks/features/editing/gridEditingSelectors");
31
- var _GridCell = require("./cell/GridCell");
32
33
  var _GridScrollbarFillerCell = require("./GridScrollbarFillerCell");
33
34
  var _getPinnedCellOffset = require("../internals/utils/getPinnedCellOffset");
34
35
  var _useGridConfiguration = require("../hooks/utils/useGridConfiguration");
35
36
  var _useGridPrivateApiContext = require("../hooks/utils/useGridPrivateApiContext");
36
- var _hooks = require("../hooks");
37
37
  var _jsxRuntime = require("react/jsx-runtime");
38
- const _excluded = ["selected", "rowId", "row", "index", "style", "rowHeight", "className", "visibleColumns", "pinnedColumns", "offsetTop", "offsetLeft", "dimensions", "renderContext", "focusedColumnIndex", "isFirstVisible", "isLastVisible", "isNotVisible", "showBottomBorder", "tabbableCell", "onClick", "onDoubleClick", "onMouseEnter", "onMouseLeave", "onMouseOut", "onMouseOver"];
38
+ const _excluded = ["selected", "rowId", "row", "index", "style", "rowHeight", "className", "visibleColumns", "pinnedColumns", "offsetTop", "offsetLeft", "columnsTotalWidth", "firstColumnIndex", "lastColumnIndex", "focusedColumnIndex", "isFirstVisible", "isLastVisible", "isNotVisible", "showBottomBorder", "scrollbarWidth", "gridHasFiller", "onClick", "onDoubleClick", "onMouseEnter", "onMouseLeave", "onMouseOut", "onMouseOver"];
39
39
  const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
40
40
  const {
41
41
  selected,
@@ -48,13 +48,16 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
48
48
  visibleColumns,
49
49
  pinnedColumns,
50
50
  offsetLeft,
51
- dimensions,
52
- renderContext,
51
+ columnsTotalWidth,
52
+ firstColumnIndex,
53
+ lastColumnIndex,
53
54
  focusedColumnIndex,
54
55
  isFirstVisible,
55
56
  isLastVisible,
56
57
  isNotVisible,
57
58
  showBottomBorder,
59
+ scrollbarWidth,
60
+ gridHasFiller,
58
61
  onClick,
59
62
  onDoubleClick,
60
63
  onMouseEnter,
@@ -74,14 +77,11 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
74
77
  const editRowsState = (0, _useGridSelector.useGridSelector)(apiRef, _gridEditingSelectors.gridEditRowsStateSelector);
75
78
  const handleRef = (0, _utils.unstable_useForkRef)(ref, refProp);
76
79
  const rowNode = apiRef.current.getRowNode(rowId);
77
- const scrollbarWidth = dimensions.hasScrollY ? dimensions.scrollbarSize : 0;
78
- const gridHasFiller = dimensions.columnsTotalWidth < dimensions.viewportOuterSize.width;
79
80
  const editing = apiRef.current.getRowMode(rowId) === _gridEditRowModel.GridRowModes.Edit;
80
81
  const editable = rootProps.editMode === _gridEditRowModel.GridEditModes.Row;
81
- const hasColumnVirtualization = (0, _useGridSelector.useGridSelector)(apiRef, _hooks.gridVirtualizationColumnEnabledSelector);
82
82
  const hasFocusCell = focusedColumnIndex !== undefined;
83
- const hasVirtualFocusCellLeft = hasFocusCell && focusedColumnIndex >= pinnedColumns.left.length && focusedColumnIndex < renderContext.firstColumnIndex;
84
- const hasVirtualFocusCellRight = hasFocusCell && focusedColumnIndex < visibleColumns.length - pinnedColumns.right.length && focusedColumnIndex >= renderContext.lastColumnIndex;
83
+ const hasVirtualFocusCellLeft = hasFocusCell && focusedColumnIndex >= pinnedColumns.left.length && focusedColumnIndex < firstColumnIndex;
84
+ const hasVirtualFocusCellRight = hasFocusCell && focusedColumnIndex < visibleColumns.length - pinnedColumns.right.length && focusedColumnIndex >= lastColumnIndex;
85
85
  const classes = (0, _composeGridClasses.composeGridClasses)(rootProps.classes, {
86
86
  root: ['row', selected && 'selected', editable && 'row--editable', editing && 'row--editing', isFirstVisible && 'row--firstVisible', isLastVisible && 'row--lastVisible', showBottomBorder && 'row--borderBottom', rowHeight === 'auto' && 'row--dynamicHeight']
87
87
  });
@@ -197,14 +197,14 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
197
197
  });
198
198
  rowClassNames.push(rootProps.getRowClassName(rowParams));
199
199
  }
200
- const getCell = (column, indexInSection, indexRelativeToAllColumns, sectionLength, pinnedPosition = _GridCell.PinnedPosition.NONE) => {
200
+ const getCell = (column, indexInSection, indexRelativeToAllColumns, sectionLength, pinnedPosition = _constants.PinnedColumnPosition.NONE) => {
201
201
  const cellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, indexRelativeToAllColumns);
202
202
  if (cellColSpanInfo?.spannedByColSpan) {
203
203
  return null;
204
204
  }
205
205
  const width = cellColSpanInfo?.cellProps.width ?? column.computedWidth;
206
206
  const colSpan = cellColSpanInfo?.cellProps.colSpan ?? 1;
207
- const pinnedOffset = (0, _getPinnedCellOffset.getPinnedCellOffset)(_GridCell.gridPinnedColumnPositionLookup[pinnedPosition], column.computedWidth, indexRelativeToAllColumns, columnPositions, dimensions);
207
+ const pinnedOffset = (0, _getPinnedCellOffset.getPinnedCellOffset)(pinnedPosition, column.computedWidth, indexRelativeToAllColumns, columnPositions, columnsTotalWidth, scrollbarWidth);
208
208
  if (rowNode?.type === 'skeletonRow') {
209
209
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(slots.skeletonCell, {
210
210
  type: column.type,
@@ -223,7 +223,9 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
223
223
  const canReorderColumn = !(disableColumnReorder || column.disableReorder);
224
224
  const canReorderRow = rowReordering && !sortModel.length && treeDepth <= 1 && !isEditingRows;
225
225
  const disableDragEvents = !(canReorderColumn || isReorderCell && canReorderRow);
226
- const cellIsNotVisible = pinnedPosition === _GridCell.PinnedPosition.VIRTUAL;
226
+ const cellIsNotVisible = pinnedPosition === _constants.PinnedColumnPosition.VIRTUAL;
227
+ const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(pinnedPosition, indexInSection);
228
+ const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
227
229
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(slots.cell, (0, _extends2.default)({
228
230
  column: column,
229
231
  width: width,
@@ -236,9 +238,8 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
236
238
  isNotVisible: cellIsNotVisible,
237
239
  pinnedOffset: pinnedOffset,
238
240
  pinnedPosition: pinnedPosition,
239
- sectionIndex: indexInSection,
240
- sectionLength: sectionLength,
241
- gridHasFiller: gridHasFiller
241
+ showLeftBorder: showLeftBorder,
242
+ showRightBorder: showRightBorder
242
243
  }, slotProps?.cell), column.field);
243
244
  };
244
245
 
@@ -249,25 +250,16 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
249
250
  }
250
251
  const leftCells = pinnedColumns.left.map((column, i) => {
251
252
  const indexRelativeToAllColumns = i;
252
- return getCell(column, i, indexRelativeToAllColumns, pinnedColumns.left.length, _GridCell.PinnedPosition.LEFT);
253
+ return getCell(column, i, indexRelativeToAllColumns, pinnedColumns.left.length, _constants.PinnedColumnPosition.LEFT);
253
254
  });
254
255
  const rightCells = pinnedColumns.right.map((column, i) => {
255
256
  const indexRelativeToAllColumns = visibleColumns.length - pinnedColumns.right.length + i;
256
- return getCell(column, i, indexRelativeToAllColumns, pinnedColumns.right.length, _GridCell.PinnedPosition.RIGHT);
257
+ return getCell(column, i, indexRelativeToAllColumns, pinnedColumns.right.length, _constants.PinnedColumnPosition.RIGHT);
257
258
  });
258
259
  const middleColumnsLength = visibleColumns.length - pinnedColumns.left.length - pinnedColumns.right.length;
259
260
  const cells = [];
260
261
  if (hasVirtualFocusCellLeft) {
261
- cells.push(getCell(visibleColumns[focusedColumnIndex], focusedColumnIndex - pinnedColumns.left.length, focusedColumnIndex, middleColumnsLength, _GridCell.PinnedPosition.VIRTUAL));
262
- }
263
- let firstColumnIndex;
264
- let lastColumnIndex;
265
- if (!rootProps.disableVirtualization && !hasColumnVirtualization) {
266
- firstColumnIndex = 0;
267
- lastColumnIndex = visibleColumns.length;
268
- } else {
269
- firstColumnIndex = renderContext.firstColumnIndex;
270
- lastColumnIndex = renderContext.lastColumnIndex;
262
+ cells.push(getCell(visibleColumns[focusedColumnIndex], focusedColumnIndex - pinnedColumns.left.length, focusedColumnIndex, middleColumnsLength, _constants.PinnedColumnPosition.VIRTUAL));
271
263
  }
272
264
  for (let i = firstColumnIndex; i < lastColumnIndex; i += 1) {
273
265
  const column = visibleColumns[i];
@@ -278,7 +270,7 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
278
270
  cells.push(getCell(column, indexInSection, i, middleColumnsLength));
279
271
  }
280
272
  if (hasVirtualFocusCellRight) {
281
- cells.push(getCell(visibleColumns[focusedColumnIndex], focusedColumnIndex - pinnedColumns.left.length, focusedColumnIndex, middleColumnsLength, _GridCell.PinnedPosition.VIRTUAL));
273
+ cells.push(getCell(visibleColumns[focusedColumnIndex], focusedColumnIndex - pinnedColumns.left.length, focusedColumnIndex, middleColumnsLength, _constants.PinnedColumnPosition.VIRTUAL));
282
274
  }
283
275
  const eventHandlers = row ? {
284
276
  onClick: publishClick,
@@ -315,48 +307,14 @@ process.env.NODE_ENV !== "production" ? GridRow.propTypes = {
315
307
  // | These PropTypes are generated from the TypeScript type definitions |
316
308
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
317
309
  // ----------------------------------------------------------------------
318
- dimensions: _propTypes.default.shape({
319
- bottomContainerHeight: _propTypes.default.number.isRequired,
320
- columnsTotalWidth: _propTypes.default.number.isRequired,
321
- contentSize: _propTypes.default.shape({
322
- height: _propTypes.default.number.isRequired,
323
- width: _propTypes.default.number.isRequired
324
- }).isRequired,
325
- groupHeaderHeight: _propTypes.default.number.isRequired,
326
- hasScrollX: _propTypes.default.bool.isRequired,
327
- hasScrollY: _propTypes.default.bool.isRequired,
328
- headerFilterHeight: _propTypes.default.number.isRequired,
329
- headerHeight: _propTypes.default.number.isRequired,
330
- headersTotalHeight: _propTypes.default.number.isRequired,
331
- isReady: _propTypes.default.bool.isRequired,
332
- leftPinnedWidth: _propTypes.default.number.isRequired,
333
- minimumSize: _propTypes.default.shape({
334
- height: _propTypes.default.number.isRequired,
335
- width: _propTypes.default.number.isRequired
336
- }).isRequired,
337
- rightPinnedWidth: _propTypes.default.number.isRequired,
338
- root: _propTypes.default.shape({
339
- height: _propTypes.default.number.isRequired,
340
- width: _propTypes.default.number.isRequired
341
- }).isRequired,
342
- rowHeight: _propTypes.default.number.isRequired,
343
- rowWidth: _propTypes.default.number.isRequired,
344
- scrollbarSize: _propTypes.default.number.isRequired,
345
- topContainerHeight: _propTypes.default.number.isRequired,
346
- viewportInnerSize: _propTypes.default.shape({
347
- height: _propTypes.default.number.isRequired,
348
- width: _propTypes.default.number.isRequired
349
- }).isRequired,
350
- viewportOuterSize: _propTypes.default.shape({
351
- height: _propTypes.default.number.isRequired,
352
- width: _propTypes.default.number.isRequired
353
- }).isRequired
354
- }).isRequired,
310
+ columnsTotalWidth: _propTypes.default.number.isRequired,
311
+ firstColumnIndex: _propTypes.default.number.isRequired,
355
312
  /**
356
313
  * Determines which cell has focus.
357
314
  * If `null`, no cell in this row has focus.
358
315
  */
359
316
  focusedColumnIndex: _propTypes.default.number,
317
+ gridHasFiller: _propTypes.default.bool.isRequired,
360
318
  /**
361
319
  * Index of the row in the whole sorted and filtered dataset.
362
320
  * If some rows above have expanded children, this index also take those children into account.
@@ -365,6 +323,7 @@ process.env.NODE_ENV !== "production" ? GridRow.propTypes = {
365
323
  isFirstVisible: _propTypes.default.bool.isRequired,
366
324
  isLastVisible: _propTypes.default.bool.isRequired,
367
325
  isNotVisible: _propTypes.default.bool.isRequired,
326
+ lastColumnIndex: _propTypes.default.number.isRequired,
368
327
  offsetLeft: _propTypes.default.number.isRequired,
369
328
  offsetTop: _propTypes.default.number,
370
329
  onClick: _propTypes.default.func,
@@ -372,22 +331,12 @@ process.env.NODE_ENV !== "production" ? GridRow.propTypes = {
372
331
  onMouseEnter: _propTypes.default.func,
373
332
  onMouseLeave: _propTypes.default.func,
374
333
  pinnedColumns: _propTypes.default.object.isRequired,
375
- renderContext: _propTypes.default.shape({
376
- firstColumnIndex: _propTypes.default.number.isRequired,
377
- firstRowIndex: _propTypes.default.number.isRequired,
378
- lastColumnIndex: _propTypes.default.number.isRequired,
379
- lastRowIndex: _propTypes.default.number.isRequired
380
- }).isRequired,
381
334
  row: _propTypes.default.object.isRequired,
382
335
  rowHeight: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]).isRequired,
383
336
  rowId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
337
+ scrollbarWidth: _propTypes.default.number.isRequired,
384
338
  selected: _propTypes.default.bool.isRequired,
385
339
  showBottomBorder: _propTypes.default.bool.isRequired,
386
- /**
387
- * Determines which cell should be tabbable by having tabIndex=0.
388
- * If `null`, no cell in this row is in the tab sequence.
389
- */
390
- tabbableCell: _propTypes.default.string,
391
340
  visibleColumns: _propTypes.default.arrayOf(_propTypes.default.object).isRequired
392
341
  } : void 0;
393
342
  const MemoizedGridRow = exports.GridRow = (0, _fastMemo.fastMemo)(GridRow);
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
@@ -12,15 +12,19 @@ var _clsx = _interopRequireDefault(require("clsx"));
12
12
  var _system = require("@mui/system");
13
13
  var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
14
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
+ var _RtlProvider = require("@mui/system/RtlProvider");
15
16
  var _forwardRef = require("@mui/x-internals/forwardRef");
16
17
  var _useGridApiContext = require("../hooks/utils/useGridApiContext");
17
18
  var _useGridRootProps = require("../hooks/utils/useGridRootProps");
18
19
  var _hooks = require("../hooks");
20
+ var _constants = require("../internals/constants");
19
21
  var _gridClasses = require("../constants/gridClasses");
20
22
  var _getPinnedCellOffset = require("../internals/utils/getPinnedCellOffset");
21
23
  var _cellBorderUtils = require("../utils/cellBorderUtils");
22
24
  var _domUtils = require("../utils/domUtils");
23
25
  var _GridScrollbarFillerCell = require("./GridScrollbarFillerCell");
26
+ var _rtlFlipSide = require("../utils/rtlFlipSide");
27
+ var _utils = require("../internals/utils");
24
28
  var _jsxRuntime = require("react/jsx-runtime");
25
29
  const SkeletonOverlay = (0, _system.styled)('div', {
26
30
  name: 'MuiDataGrid',
@@ -48,6 +52,7 @@ const GridSkeletonLoadingOverlay = exports.GridSkeletonLoadingOverlay = (0, _for
48
52
  const {
49
53
  slots
50
54
  } = rootProps;
55
+ const isRtl = (0, _RtlProvider.useRtl)();
51
56
  const classes = useUtilityClasses({
52
57
  classes: rootProps.classes
53
58
  });
@@ -63,18 +68,12 @@ const GridSkeletonLoadingOverlay = exports.GridSkeletonLoadingOverlay = (0, _for
63
68
  const allVisibleColumns = (0, _hooks.useGridSelector)(apiRef, _hooks.gridVisibleColumnDefinitionsSelector);
64
69
  const columns = React.useMemo(() => allVisibleColumns.slice(0, inViewportCount), [allVisibleColumns, inViewportCount]);
65
70
  const pinnedColumns = (0, _hooks.useGridSelector)(apiRef, _hooks.gridVisiblePinnedColumnDefinitionsSelector);
66
- const getPinnedStyle = React.useCallback((computedWidth, index, position) => {
67
- const pinnedOffset = (0, _getPinnedCellOffset.getPinnedCellOffset)(position, computedWidth, index, positions, dimensions);
68
- return {
69
- [position]: pinnedOffset
70
- };
71
- }, [dimensions, positions]);
72
71
  const getPinnedPosition = React.useCallback(field => {
73
72
  if (pinnedColumns.left.findIndex(col => col.field === field) !== -1) {
74
- return _hooks.GridPinnedColumnPosition.LEFT;
73
+ return _constants.PinnedColumnPosition.LEFT;
75
74
  }
76
75
  if (pinnedColumns.right.findIndex(col => col.field === field) !== -1) {
77
- return _hooks.GridPinnedColumnPosition.RIGHT;
76
+ return _constants.PinnedColumnPosition.RIGHT;
78
77
  }
79
78
  return undefined;
80
79
  }, [pinnedColumns.left, pinnedColumns.right]);
@@ -85,13 +84,15 @@ const GridSkeletonLoadingOverlay = exports.GridSkeletonLoadingOverlay = (0, _for
85
84
  for (let colIndex = 0; colIndex < columns.length; colIndex += 1) {
86
85
  const column = columns[colIndex];
87
86
  const pinnedPosition = getPinnedPosition(column.field);
88
- const isPinnedLeft = pinnedPosition === _hooks.GridPinnedColumnPosition.LEFT;
89
- const isPinnedRight = pinnedPosition === _hooks.GridPinnedColumnPosition.RIGHT;
90
- const sectionLength = pinnedPosition ? pinnedColumns[pinnedPosition].length // pinned section
87
+ const isPinnedLeft = pinnedPosition === _constants.PinnedColumnPosition.LEFT;
88
+ const isPinnedRight = pinnedPosition === _constants.PinnedColumnPosition.RIGHT;
89
+ const pinnedSide = (0, _rtlFlipSide.rtlFlipSide)(pinnedPosition, isRtl);
90
+ const sectionLength = pinnedSide ? pinnedColumns[pinnedSide].length // pinned section
91
91
  : columns.length - pinnedColumns.left.length - pinnedColumns.right.length; // middle section
92
- const sectionIndex = pinnedPosition ? pinnedColumns[pinnedPosition].findIndex(col => col.field === column.field) // pinned section
92
+ const sectionIndex = pinnedSide ? pinnedColumns[pinnedSide].findIndex(col => col.field === column.field) // pinned section
93
93
  : colIndex - pinnedColumns.left.length; // middle section
94
- const pinnedStyle = pinnedPosition && getPinnedStyle(column.computedWidth, colIndex, pinnedPosition);
94
+ const scrollbarWidth = dimensions.hasScrollY ? dimensions.scrollbarSize : 0;
95
+ const pinnedStyle = (0, _utils.attachPinnedStyle)({}, isRtl, pinnedPosition, (0, _getPinnedCellOffset.getPinnedCellOffset)(pinnedPosition, column.computedWidth, colIndex, positions, dimensions.columnsTotalWidth, scrollbarWidth));
95
96
  const gridHasFiller = dimensions.columnsTotalWidth < dimensions.viewportOuterSize.width;
96
97
  const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, sectionIndex, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
97
98
  const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(pinnedPosition, sectionIndex);
@@ -105,7 +106,6 @@ const GridSkeletonLoadingOverlay = exports.GridSkeletonLoadingOverlay = (0, _for
105
106
  width: emptyCellWidth,
106
107
  empty: true
107
108
  }, `skeleton-filler-column-${i}`);
108
- const scrollbarWidth = dimensions.hasScrollY ? dimensions.scrollbarSize : 0;
109
109
  const hasScrollbarFiller = isLastColumn && scrollbarWidth !== 0;
110
110
  if (hasFillerBefore) {
111
111
  rowCells.push(emptyCell);
@@ -137,7 +137,7 @@ const GridSkeletonLoadingOverlay = exports.GridSkeletonLoadingOverlay = (0, _for
137
137
  }, `skeleton-row-${i}`));
138
138
  }
139
139
  return array;
140
- }, [slots, columns, pinnedColumns, skeletonRowsCount, rootProps.showCellVerticalBorder, dimensions.columnsTotalWidth, dimensions.viewportOuterSize.width, dimensions.rowHeight, dimensions.hasScrollY, dimensions.scrollbarSize, getPinnedPosition, getPinnedStyle]);
140
+ }, [slots, columns, pinnedColumns, skeletonRowsCount, rootProps.showCellVerticalBorder, dimensions, positions, getPinnedPosition, isRtl]);
141
141
 
142
142
  // Sync the column resize of the overlay columns with the grid
143
143
  const handleColumnResize = params => {
@@ -151,8 +151,8 @@ const GridSkeletonLoadingOverlay = exports.GridSkeletonLoadingOverlay = (0, _for
151
151
  }
152
152
  const resizedColIndex = columns.findIndex(col => col.field === colDef.field);
153
153
  const pinnedPosition = getPinnedPosition(colDef.field);
154
- const isPinnedLeft = pinnedPosition === _hooks.GridPinnedColumnPosition.LEFT;
155
- const isPinnedRight = pinnedPosition === _hooks.GridPinnedColumnPosition.RIGHT;
154
+ const isPinnedLeft = pinnedPosition === _constants.PinnedColumnPosition.LEFT;
155
+ const isPinnedRight = pinnedPosition === _constants.PinnedColumnPosition.RIGHT;
156
156
  const currentWidth = getComputedStyle(cells[0]).getPropertyValue('--width');
157
157
  const delta = parseInt(currentWidth, 10) - width;
158
158
  if (cells) {
@@ -5,7 +5,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.gridPinnedColumnPositionLookup = exports.PinnedPosition = exports.GridCell = void 0;
8
+ exports.gridPinnedColumnPositionLookup = exports.GridCell = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
@@ -22,24 +22,18 @@ var _useGridSelector = require("../../hooks/utils/useGridSelector");
22
22
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
23
23
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
24
24
  var _gridFocusStateSelector = require("../../hooks/features/focus/gridFocusStateSelector");
25
- var _cellBorderUtils = require("../../utils/cellBorderUtils");
26
25
  var _gridColumnsInterfaces = require("../../hooks/features/columns/gridColumnsInterfaces");
26
+ var _constants = require("../../internals/constants");
27
27
  var _gridRowSpanningSelectors = require("../../hooks/features/rows/gridRowSpanningSelectors");
28
+ var _utils2 = require("../../internals/utils");
28
29
  var _jsxRuntime = require("react/jsx-runtime");
29
- const _excluded = ["column", "rowId", "editCellState", "align", "children", "colIndex", "width", "className", "style", "colSpan", "disableDragEvents", "isNotVisible", "pinnedOffset", "pinnedPosition", "sectionIndex", "sectionLength", "gridHasFiller", "onClick", "onDoubleClick", "onMouseDown", "onMouseUp", "onMouseOver", "onKeyDown", "onKeyUp", "onDragEnter", "onDragOver"],
30
+ const _excluded = ["column", "rowId", "editCellState", "align", "children", "colIndex", "width", "className", "style", "colSpan", "disableDragEvents", "isNotVisible", "pinnedOffset", "pinnedPosition", "showRightBorder", "showLeftBorder", "onClick", "onDoubleClick", "onMouseDown", "onMouseUp", "onMouseOver", "onKeyDown", "onKeyUp", "onDragEnter", "onDragOver"],
30
31
  _excluded2 = ["changeReason", "unstable_updateValueOnRender"];
31
- let PinnedPosition = exports.PinnedPosition = /*#__PURE__*/function (PinnedPosition) {
32
- PinnedPosition[PinnedPosition["NONE"] = 0] = "NONE";
33
- PinnedPosition[PinnedPosition["LEFT"] = 1] = "LEFT";
34
- PinnedPosition[PinnedPosition["RIGHT"] = 2] = "RIGHT";
35
- PinnedPosition[PinnedPosition["VIRTUAL"] = 3] = "VIRTUAL";
36
- return PinnedPosition;
37
- }({});
38
32
  const gridPinnedColumnPositionLookup = exports.gridPinnedColumnPositionLookup = {
39
- [PinnedPosition.LEFT]: _gridColumnsInterfaces.GridPinnedColumnPosition.LEFT,
40
- [PinnedPosition.RIGHT]: _gridColumnsInterfaces.GridPinnedColumnPosition.RIGHT,
41
- [PinnedPosition.NONE]: undefined,
42
- [PinnedPosition.VIRTUAL]: undefined
33
+ [_constants.PinnedColumnPosition.LEFT]: _gridColumnsInterfaces.GridPinnedColumnPosition.LEFT,
34
+ [_constants.PinnedColumnPosition.RIGHT]: _gridColumnsInterfaces.GridPinnedColumnPosition.RIGHT,
35
+ [_constants.PinnedColumnPosition.NONE]: undefined,
36
+ [_constants.PinnedColumnPosition.VIRTUAL]: undefined
43
37
  };
44
38
  const EMPTY_CELL_PARAMS = {
45
39
  id: -1,
@@ -77,7 +71,7 @@ const useUtilityClasses = ownerState => {
77
71
  classes
78
72
  } = ownerState;
79
73
  const slots = {
80
- 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']
74
+ root: ['cell', `cell--text${(0, _utils.unstable_capitalize)(align)}`, isSelected && 'selected', isEditable && 'cell--editable', showLeftBorder && 'cell--withLeftBorder', showRightBorder && 'cell--withRightBorder', pinnedPosition === _constants.PinnedColumnPosition.LEFT && 'cell--pinnedLeft', pinnedPosition === _constants.PinnedColumnPosition.RIGHT && 'cell--pinnedRight', isSelectionMode && !isEditable && 'cell--selectionMode']
81
75
  };
82
76
  return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
83
77
  };
@@ -100,9 +94,8 @@ const GridCell = (0, _forwardRef.forwardRef)(function GridCell(props, ref) {
100
94
  isNotVisible,
101
95
  pinnedOffset,
102
96
  pinnedPosition,
103
- sectionIndex,
104
- sectionLength,
105
- gridHasFiller,
97
+ showRightBorder,
98
+ showLeftBorder,
106
99
  onClick,
107
100
  onDoubleClick,
108
101
  onMouseDown,
@@ -169,9 +162,6 @@ const GridCell = (0, _forwardRef.forwardRef)(function GridCell(props, ref) {
169
162
  const handleRef = (0, _utils.unstable_useForkRef)(ref, cellRef);
170
163
  const focusElementRef = React.useRef(null);
171
164
  const isSelectionMode = rootProps.cellSelection ?? false;
172
- const position = gridPinnedColumnPositionLookup[pinnedPosition];
173
- const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(position, sectionIndex);
174
- const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(position, sectionIndex, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
175
165
  const ownerState = {
176
166
  align,
177
167
  showLeftBorder,
@@ -220,18 +210,11 @@ const GridCell = (0, _forwardRef.forwardRef)(function GridCell(props, ref) {
220
210
  border: 0
221
211
  };
222
212
  }
223
- const cellStyle = (0, _extends2.default)({
213
+ const cellStyle = (0, _utils2.attachPinnedStyle)((0, _extends2.default)({
224
214
  '--width': `${width}px`
225
- }, styleProp);
226
- const isLeftPinned = pinnedPosition === PinnedPosition.LEFT;
227
- const isRightPinned = pinnedPosition === PinnedPosition.RIGHT;
228
- if (isLeftPinned || isRightPinned) {
229
- let side = isLeftPinned ? 'left' : 'right';
230
- if (isRtl) {
231
- side = isLeftPinned ? 'right' : 'left';
232
- }
233
- cellStyle[side] = pinnedOffset;
234
- }
215
+ }, styleProp), isRtl, pinnedPosition, pinnedOffset);
216
+ const isLeftPinned = pinnedPosition === _constants.PinnedColumnPosition.LEFT;
217
+ const isRightPinned = pinnedPosition === _constants.PinnedColumnPosition.RIGHT;
235
218
  if (rowSpan > 1) {
236
219
  cellStyle.height = `calc(var(--height) * ${rowSpan})`;
237
220
  cellStyle.zIndex = 5;
@@ -361,13 +344,12 @@ process.env.NODE_ENV !== "production" ? GridCell.propTypes = {
361
344
  isValidating: _propTypes.default.bool,
362
345
  value: _propTypes.default.any
363
346
  }),
364
- gridHasFiller: _propTypes.default.bool.isRequired,
365
347
  isNotVisible: _propTypes.default.bool.isRequired,
366
- pinnedOffset: _propTypes.default.number.isRequired,
348
+ pinnedOffset: _propTypes.default.number,
367
349
  pinnedPosition: _propTypes.default.oneOf([0, 1, 2, 3]).isRequired,
368
350
  rowId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
369
- sectionIndex: _propTypes.default.number.isRequired,
370
- sectionLength: _propTypes.default.number.isRequired,
351
+ showLeftBorder: _propTypes.default.bool.isRequired,
352
+ showRightBorder: _propTypes.default.bool.isRequired,
371
353
  width: _propTypes.default.number.isRequired
372
354
  } : void 0;
373
355
  const MemoizedGridCell = exports.GridCell = (0, _fastMemo.fastMemo)(GridCell);
@@ -9,6 +9,7 @@ exports.GridColumnGroupHeader = GridColumnGroupHeader;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _utils = require("@mui/utils");
12
+ var _RtlProvider = require("@mui/system/RtlProvider");
12
13
  var _gridClasses = require("../../constants/gridClasses");
13
14
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
14
15
  var _gridColumnGroupsSelector = require("../../hooks/features/columnGrouping/gridColumnGroupsSelector");
@@ -16,7 +17,8 @@ var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
16
17
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
17
18
  var _GridGenericColumnHeaderItem = require("./GridGenericColumnHeaderItem");
18
19
  var _domUtils = require("../../utils/domUtils");
19
- var _cellBorderUtils = require("../../utils/cellBorderUtils");
20
+ var _constants = require("../../internals/constants");
21
+ var _utils2 = require("../../internals/utils");
20
22
  var _jsxRuntime = require("react/jsx-runtime");
21
23
  const useUtilityClasses = ownerState => {
22
24
  const {
@@ -30,7 +32,7 @@ const useUtilityClasses = ownerState => {
30
32
  pinnedPosition
31
33
  } = ownerState;
32
34
  const slots = {
33
- root: ['columnHeader', headerAlign === 'left' && 'columnHeader--alignLeft', headerAlign === 'center' && 'columnHeader--alignCenter', headerAlign === 'right' && 'columnHeader--alignRight', isDragging && 'columnHeader--moving', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', 'withBorderColor', groupId === null ? 'columnHeader--emptyGroup' : 'columnHeader--filledGroup', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight', isLastColumn && 'columnHeader--last'],
35
+ root: ['columnHeader', headerAlign === 'left' && 'columnHeader--alignLeft', headerAlign === 'center' && 'columnHeader--alignCenter', headerAlign === 'right' && 'columnHeader--alignRight', isDragging && 'columnHeader--moving', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', 'withBorderColor', groupId === null ? 'columnHeader--emptyGroup' : 'columnHeader--filledGroup', pinnedPosition === _constants.PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === _constants.PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight', isLastColumn && 'columnHeader--last'],
34
36
  draggableContainer: ['columnHeaderDraggableContainer'],
35
37
  titleContainer: ['columnHeaderTitleContainer', 'withBorderColor'],
36
38
  titleContainerContent: ['columnHeaderTitleContainerContent']
@@ -50,12 +52,10 @@ function GridColumnGroupHeader(props) {
50
52
  tabIndex,
51
53
  isLastColumn,
52
54
  pinnedPosition,
53
- style,
54
- indexInSection,
55
- sectionLength,
56
- gridHasFiller
55
+ pinnedOffset
57
56
  } = props;
58
57
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
58
+ const isRtl = (0, _RtlProvider.useRtl)();
59
59
  const headerCellRef = React.useRef(null);
60
60
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
61
61
  const columnGroupsLookup = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnGroupsSelector.gridColumnGroupsLookupSelector);
@@ -80,12 +80,8 @@ function GridColumnGroupHeader(props) {
80
80
  if (groupId && render) {
81
81
  headerComponent = render(renderParams);
82
82
  }
83
- const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(pinnedPosition, indexInSection);
84
- const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showColumnVerticalBorder, gridHasFiller);
85
83
  const ownerState = (0, _extends2.default)({}, props, {
86
84
  classes: rootProps.classes,
87
- showLeftBorder,
88
- showRightBorder,
89
85
  headerAlign,
90
86
  depth,
91
87
  isDragging: false
@@ -118,6 +114,7 @@ function GridColumnGroupHeader(props) {
118
114
  onBlur: publish('columnGroupHeaderBlur')
119
115
  }), [publish]);
120
116
  const headerClassName = typeof group.headerClassName === 'function' ? group.headerClassName(renderParams) : group.headerClassName;
117
+ const style = React.useMemo(() => (0, _utils2.attachPinnedStyle)((0, _extends2.default)({}, props.style), isRtl, pinnedPosition, pinnedOffset), [pinnedPosition, pinnedOffset, props.style, isRtl]);
121
118
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridGenericColumnHeaderItem.GridGenericColumnHeaderItem, (0, _extends2.default)({
122
119
  ref: headerCellRef,
123
120
  classes: classes,
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.GridColumnHeaderFilterIconButton = GridColumnHeaderFilterIconButton;
8
+ exports.GridColumnHeaderFilterIconButton = GridColumnHeaderFilterIconButtonWrapped;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -27,6 +27,21 @@ const useUtilityClasses = ownerState => {
27
27
  };
28
28
  return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
29
29
  };
30
+ function GridColumnHeaderFilterIconButtonWrapped(props) {
31
+ if (!props.counter) {
32
+ return null;
33
+ }
34
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridColumnHeaderFilterIconButton, (0, _extends2.default)({}, props));
35
+ }
36
+ process.env.NODE_ENV !== "production" ? GridColumnHeaderFilterIconButtonWrapped.propTypes = {
37
+ // ----------------------------- Warning --------------------------------
38
+ // | These PropTypes are generated from the TypeScript type definitions |
39
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
40
+ // ----------------------------------------------------------------------
41
+ counter: _propTypes.default.number,
42
+ field: _propTypes.default.string.isRequired,
43
+ onClick: _propTypes.default.func
44
+ } : void 0;
30
45
  function GridColumnHeaderFilterIconButton(props) {
31
46
  const {
32
47
  counter,
@@ -39,8 +54,8 @@ function GridColumnHeaderFilterIconButton(props) {
39
54
  classes: rootProps.classes
40
55
  });
41
56
  const classes = useUtilityClasses(ownerState);
42
- const preferencePanel = (0, _hooks.useGridSelector)(apiRef, _gridPreferencePanelSelector.gridPreferencePanelStateSelector);
43
57
  const labelId = (0, _utils.unstable_useId)();
58
+ const isOpen = (0, _hooks.useGridSelector)(apiRef, _gridPreferencePanelSelector.gridPreferencePanelSelectorWithLabel, labelId);
44
59
  const panelId = (0, _utils.unstable_useId)();
45
60
  const toggleFilter = React.useCallback(event => {
46
61
  event.preventDefault();
@@ -61,7 +76,6 @@ function GridColumnHeaderFilterIconButton(props) {
61
76
  if (!counter) {
62
77
  return null;
63
78
  }
64
- const open = preferencePanel.open && preferencePanel.labelId === labelId;
65
79
  const iconButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseIconButton, (0, _extends2.default)({
66
80
  id: labelId,
67
81
  onClick: toggleFilter,
@@ -69,8 +83,8 @@ function GridColumnHeaderFilterIconButton(props) {
69
83
  size: "small",
70
84
  tabIndex: -1,
71
85
  "aria-haspopup": "menu",
72
- "aria-expanded": open,
73
- "aria-controls": open ? panelId : undefined
86
+ "aria-expanded": isOpen,
87
+ "aria-controls": isOpen ? panelId : undefined
74
88
  }, rootProps.slotProps?.baseIconButton, {
75
89
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnFilteredIcon, {
76
90
  className: classes.icon,