@mui/x-data-grid 7.23.5 → 7.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/CHANGELOG.md +159 -0
  2. package/DataGrid/DataGrid.js +4 -5
  3. package/DataGrid/useDataGridComponent.d.ts +1 -1
  4. package/DataGrid/useDataGridComponent.js +1 -1
  5. package/components/GridHeaders.js +2 -2
  6. package/components/GridRow.d.ts +5 -9
  7. package/components/GridRow.js +28 -105
  8. package/components/GridSkeletonLoadingOverlay.js +18 -18
  9. package/components/cell/GridActionsCellItem.d.ts +3 -3
  10. package/components/cell/GridCell.d.ts +9 -16
  11. package/components/cell/GridCell.js +17 -35
  12. package/components/cell/GridEditDateCell.js +1 -1
  13. package/components/cell/GridEditInputCell.js +1 -1
  14. package/components/cell/GridEditSingleSelectCell.js +2 -2
  15. package/components/columnHeaders/ColumnHeaderMenuIcon.d.ts +1 -1
  16. package/components/columnHeaders/GridColumnGroupHeader.d.ts +5 -5
  17. package/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  18. package/components/columnHeaders/GridColumnHeaderItem.d.ts +5 -5
  19. package/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  20. package/components/columnSelection/GridCellCheckboxRenderer.js +4 -3
  21. package/components/columnSelection/GridHeaderCheckbox.js +6 -2
  22. package/components/containers/GridRoot.d.ts +2 -2
  23. package/components/containers/GridRoot.js +14 -6
  24. package/components/containers/GridRootStyles.js +1 -0
  25. package/components/panel/GridPanel.d.ts +1 -1
  26. package/components/panel/filterPanel/GridFilterInputValue.js +7 -10
  27. package/components/panel/filterPanel/GridFilterInputValueProps.d.ts +1 -1
  28. package/components/virtualization/GridVirtualScrollbar.js +11 -12
  29. package/components/virtualization/GridVirtualScroller.js +4 -4
  30. package/context/GridContextProvider.d.ts +1 -1
  31. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +1 -1
  32. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +1 -1
  33. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +1 -1
  34. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  35. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +1 -1
  36. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -1
  37. package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.d.ts +1 -1
  38. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +1 -1
  39. package/hooks/core/useGridApiInitialization.d.ts +1 -1
  40. package/hooks/core/useGridApiInitialization.js +2 -2
  41. package/hooks/core/useGridInitialization.d.ts +1 -1
  42. package/hooks/core/useGridIsRtl.d.ts +1 -1
  43. package/hooks/core/useGridLocaleText.d.ts +1 -1
  44. package/hooks/core/useGridLoggerFactory.d.ts +1 -1
  45. package/hooks/core/useGridRefs.d.ts +1 -1
  46. package/hooks/core/useGridStateInitialization.d.ts +1 -1
  47. package/hooks/features/clipboard/useGridClipboard.d.ts +1 -1
  48. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -1
  49. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +5 -7
  50. package/hooks/features/columnHeaders/useGridColumnHeaders.js +34 -76
  51. package/hooks/features/columnMenu/useGridColumnMenu.d.ts +1 -1
  52. package/hooks/features/columnResize/useGridColumnResize.d.ts +1 -1
  53. package/hooks/features/columnResize/useGridColumnResize.js +8 -6
  54. package/hooks/features/columns/gridColumnsUtils.d.ts +3 -3
  55. package/hooks/features/columns/useGridColumnSpanning.d.ts +1 -1
  56. package/hooks/features/columns/useGridColumns.d.ts +1 -1
  57. package/hooks/features/density/useGridDensity.d.ts +1 -1
  58. package/hooks/features/dimensions/useGridDimensions.d.ts +1 -1
  59. package/hooks/features/dimensions/useGridDimensions.js +1 -1
  60. package/hooks/features/editing/useGridCellEditing.d.ts +1 -1
  61. package/hooks/features/editing/useGridEditing.d.ts +1 -1
  62. package/hooks/features/editing/useGridRowEditing.d.ts +1 -1
  63. package/hooks/features/editing/useGridRowEditing.js +1 -1
  64. package/hooks/features/events/useGridEvents.d.ts +1 -1
  65. package/hooks/features/export/serializers/csvSerializer.d.ts +1 -1
  66. package/hooks/features/export/useGridCsvExport.d.ts +1 -1
  67. package/hooks/features/export/useGridPrintExport.d.ts +1 -1
  68. package/hooks/features/export/useGridPrintExport.js +1 -1
  69. package/hooks/features/export/utils.d.ts +1 -1
  70. package/hooks/features/filter/gridFilterSelector.js +6 -1
  71. package/hooks/features/filter/gridFilterUtils.d.ts +6 -6
  72. package/hooks/features/filter/gridFilterUtils.js +3 -3
  73. package/hooks/features/filter/useGridFilter.d.ts +1 -1
  74. package/hooks/features/focus/useGridFocus.d.ts +1 -1
  75. package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +1 -1
  76. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
  77. package/hooks/features/keyboardNavigation/utils.d.ts +2 -2
  78. package/hooks/features/listView/useGridListView.d.ts +1 -1
  79. package/hooks/features/pagination/gridPaginationInterfaces.d.ts +3 -0
  80. package/hooks/features/pagination/gridPaginationSelector.d.ts +20 -1
  81. package/hooks/features/pagination/gridPaginationSelector.js +39 -1
  82. package/hooks/features/pagination/useGridPagination.d.ts +2 -2
  83. package/hooks/features/pagination/useGridPagination.js +5 -3
  84. package/hooks/features/pagination/useGridPaginationMeta.d.ts +1 -1
  85. package/hooks/features/pagination/useGridPaginationModel.d.ts +1 -1
  86. package/hooks/features/pagination/useGridPaginationModel.js +23 -1
  87. package/hooks/features/pagination/useGridRowCount.d.ts +1 -1
  88. package/hooks/features/preferencesPanel/useGridPreferencesPanel.d.ts +1 -1
  89. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +2 -2
  90. package/hooks/features/rowSelection/useGridRowSelection.d.ts +1 -1
  91. package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.d.ts +1 -1
  92. package/hooks/features/rowSelection/utils.d.ts +2 -2
  93. package/hooks/features/rows/gridRowSpanningUtils.d.ts +1 -1
  94. package/hooks/features/rows/gridRowsSelector.js +1 -1
  95. package/hooks/features/rows/gridRowsUtils.d.ts +3 -3
  96. package/hooks/features/rows/useGridParamsApi.d.ts +1 -1
  97. package/hooks/features/rows/useGridRowSpanning.d.ts +1 -1
  98. package/hooks/features/rows/useGridRows.d.ts +1 -1
  99. package/hooks/features/rows/useGridRows.js +2 -2
  100. package/hooks/features/rows/useGridRowsMeta.d.ts +1 -1
  101. package/hooks/features/rows/useGridRowsPreProcessors.d.ts +1 -1
  102. package/hooks/features/scroll/useGridScroll.d.ts +1 -1
  103. package/hooks/features/sorting/gridSortingUtils.d.ts +2 -2
  104. package/hooks/features/sorting/gridSortingUtils.js +2 -2
  105. package/hooks/features/sorting/useGridSorting.d.ts +1 -1
  106. package/hooks/features/statePersistence/useGridStatePersistence.d.ts +1 -1
  107. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +6 -0
  108. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +42 -0
  109. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +5 -4
  110. package/hooks/features/virtualization/useGridVirtualScroller.js +96 -43
  111. package/hooks/features/virtualization/useGridVirtualization.d.ts +1 -1
  112. package/hooks/utils/useGridApiContext.d.ts +1 -1
  113. package/hooks/utils/useGridApiEventHandler.d.ts +3 -3
  114. package/hooks/utils/useGridApiEventHandler.js +1 -1
  115. package/hooks/utils/useGridApiMethod.d.ts +1 -1
  116. package/hooks/utils/useGridApiRef.d.ts +1 -1
  117. package/hooks/utils/useGridInitializeState.d.ts +2 -2
  118. package/hooks/utils/useGridLogger.d.ts +1 -1
  119. package/hooks/utils/useGridNativeEventListener.d.ts +1 -1
  120. package/hooks/utils/useGridPrivateApiContext.d.ts +1 -1
  121. package/hooks/utils/useGridSelector.d.ts +2 -2
  122. package/hooks/utils/useGridVisibleRows.d.ts +7 -5
  123. package/hooks/utils/useGridVisibleRows.js +5 -28
  124. package/index.js +1 -1
  125. package/internals/constants.d.ts +6 -0
  126. package/internals/constants.js +8 -1
  127. package/internals/index.d.ts +1 -0
  128. package/internals/index.js +1 -0
  129. package/internals/utils/attachPinnedStyle.d.ts +2 -0
  130. package/internals/utils/attachPinnedStyle.js +9 -0
  131. package/internals/utils/getPinnedCellOffset.d.ts +3 -3
  132. package/internals/utils/getPinnedCellOffset.js +6 -7
  133. package/internals/utils/index.d.ts +1 -0
  134. package/internals/utils/index.js +2 -1
  135. package/locales/urPK.js +9 -10
  136. package/models/api/gridCoreApi.d.ts +7 -7
  137. package/models/api/gridDensityApi.d.ts +1 -1
  138. package/models/colDef/gridColDef.d.ts +8 -8
  139. package/models/events/gridEventLookup.d.ts +6 -1
  140. package/models/gridExport.d.ts +1 -1
  141. package/models/gridFilterOperator.d.ts +1 -1
  142. package/models/gridStateCommunity.d.ts +4 -0
  143. package/models/props/DataGridProps.d.ts +1 -1
  144. package/modern/DataGrid/DataGrid.js +4 -5
  145. package/modern/DataGrid/useDataGridComponent.js +1 -1
  146. package/modern/components/GridHeaders.js +2 -2
  147. package/modern/components/GridRow.js +28 -105
  148. package/modern/components/GridSkeletonLoadingOverlay.js +18 -18
  149. package/modern/components/cell/GridCell.js +17 -35
  150. package/modern/components/cell/GridEditDateCell.js +1 -1
  151. package/modern/components/cell/GridEditInputCell.js +1 -1
  152. package/modern/components/cell/GridEditSingleSelectCell.js +2 -2
  153. package/modern/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  154. package/modern/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  155. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +4 -3
  156. package/modern/components/columnSelection/GridHeaderCheckbox.js +6 -2
  157. package/modern/components/containers/GridRoot.js +14 -6
  158. package/modern/components/containers/GridRootStyles.js +1 -0
  159. package/modern/components/panel/filterPanel/GridFilterInputValue.js +7 -10
  160. package/modern/components/virtualization/GridVirtualScrollbar.js +11 -12
  161. package/modern/components/virtualization/GridVirtualScroller.js +4 -4
  162. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  163. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -1
  164. package/modern/hooks/core/useGridApiInitialization.js +2 -2
  165. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +34 -76
  166. package/modern/hooks/features/columnResize/useGridColumnResize.js +8 -6
  167. package/modern/hooks/features/dimensions/useGridDimensions.js +1 -1
  168. package/modern/hooks/features/editing/useGridRowEditing.js +1 -1
  169. package/modern/hooks/features/export/useGridPrintExport.js +1 -1
  170. package/modern/hooks/features/filter/gridFilterSelector.js +6 -1
  171. package/modern/hooks/features/filter/gridFilterUtils.js +3 -3
  172. package/modern/hooks/features/pagination/gridPaginationSelector.js +39 -1
  173. package/modern/hooks/features/pagination/useGridPagination.js +5 -3
  174. package/modern/hooks/features/pagination/useGridPaginationModel.js +23 -1
  175. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +2 -2
  176. package/modern/hooks/features/rows/gridRowsSelector.js +1 -1
  177. package/modern/hooks/features/rows/useGridRows.js +2 -2
  178. package/modern/hooks/features/sorting/gridSortingUtils.js +2 -2
  179. package/modern/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +42 -0
  180. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +96 -43
  181. package/modern/hooks/utils/useGridApiEventHandler.js +1 -1
  182. package/modern/hooks/utils/useGridVisibleRows.js +5 -28
  183. package/modern/index.js +1 -1
  184. package/modern/internals/constants.js +8 -1
  185. package/modern/internals/index.js +1 -0
  186. package/modern/internals/utils/attachPinnedStyle.js +9 -0
  187. package/modern/internals/utils/getPinnedCellOffset.js +6 -7
  188. package/modern/internals/utils/index.js +2 -1
  189. package/modern/locales/urPK.js +9 -10
  190. package/modern/utils/cellBorderUtils.js +5 -5
  191. package/modern/utils/domUtils.js +7 -2
  192. package/modern/utils/rtlFlipSide.js +22 -0
  193. package/node/DataGrid/DataGrid.js +2 -3
  194. package/node/DataGrid/useDataGridComponent.js +1 -1
  195. package/node/components/GridHeaders.js +2 -2
  196. package/node/components/GridRow.js +27 -104
  197. package/node/components/GridSkeletonLoadingOverlay.js +17 -17
  198. package/node/components/cell/GridCell.js +18 -36
  199. package/node/components/cell/GridEditDateCell.js +1 -1
  200. package/node/components/cell/GridEditInputCell.js +1 -1
  201. package/node/components/cell/GridEditSingleSelectCell.js +2 -2
  202. package/node/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  203. package/node/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  204. package/node/components/columnSelection/GridCellCheckboxRenderer.js +3 -2
  205. package/node/components/columnSelection/GridHeaderCheckbox.js +6 -2
  206. package/node/components/containers/GridRoot.js +14 -6
  207. package/node/components/containers/GridRootStyles.js +1 -0
  208. package/node/components/panel/filterPanel/GridFilterInputValue.js +7 -10
  209. package/node/components/virtualization/GridVirtualScrollbar.js +11 -12
  210. package/node/components/virtualization/GridVirtualScroller.js +4 -4
  211. package/node/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  212. package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -1
  213. package/node/hooks/core/useGridApiInitialization.js +2 -2
  214. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +32 -74
  215. package/node/hooks/features/columnResize/useGridColumnResize.js +8 -6
  216. package/node/hooks/features/dimensions/useGridDimensions.js +1 -1
  217. package/node/hooks/features/editing/useGridRowEditing.js +1 -1
  218. package/node/hooks/features/export/useGridPrintExport.js +1 -1
  219. package/node/hooks/features/filter/gridFilterSelector.js +6 -1
  220. package/node/hooks/features/filter/gridFilterUtils.js +3 -3
  221. package/node/hooks/features/pagination/gridPaginationSelector.js +41 -3
  222. package/node/hooks/features/pagination/useGridPagination.js +5 -3
  223. package/node/hooks/features/pagination/useGridPaginationModel.js +23 -1
  224. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +2 -2
  225. package/node/hooks/features/rows/gridRowsSelector.js +1 -1
  226. package/node/hooks/features/rows/useGridRows.js +1 -1
  227. package/node/hooks/features/sorting/gridSortingUtils.js +2 -2
  228. package/node/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +49 -0
  229. package/node/hooks/features/virtualization/useGridVirtualScroller.js +96 -43
  230. package/node/hooks/utils/useGridApiEventHandler.js +1 -1
  231. package/node/hooks/utils/useGridVisibleRows.js +3 -28
  232. package/node/index.js +1 -1
  233. package/node/internals/constants.js +9 -2
  234. package/node/internals/index.js +12 -0
  235. package/node/internals/utils/attachPinnedStyle.js +15 -0
  236. package/node/internals/utils/getPinnedCellOffset.js +6 -7
  237. package/node/internals/utils/index.js +11 -0
  238. package/node/locales/urPK.js +9 -10
  239. package/node/utils/cellBorderUtils.js +5 -5
  240. package/node/utils/domUtils.js +7 -2
  241. package/node/utils/rtlFlipSide.js +29 -0
  242. package/package.json +2 -2
  243. package/utils/cellBorderUtils.d.ts +3 -3
  244. package/utils/cellBorderUtils.js +5 -5
  245. package/utils/createSelector.d.ts +2 -2
  246. package/utils/domUtils.js +7 -2
  247. package/utils/getPublicApiRef.d.ts +1 -1
  248. package/utils/rtlFlipSide.d.ts +2 -0
  249. package/utils/rtlFlipSide.js +22 -0
@@ -18,6 +18,7 @@ var _gridEditRowModel = require("../models/gridEditRowModel");
18
18
  var _gridClasses = require("../constants/gridClasses");
19
19
  var _composeGridClasses = require("../utils/composeGridClasses");
20
20
  var _useGridRootProps = require("../hooks/utils/useGridRootProps");
21
+ var _cellBorderUtils = require("../utils/cellBorderUtils");
21
22
  var _gridColumnsSelector = require("../hooks/features/columns/gridColumnsSelector");
22
23
  var _useGridSelector = require("../hooks/utils/useGridSelector");
23
24
  var _useGridVisibleRows = require("../hooks/utils/useGridVisibleRows");
@@ -28,35 +29,12 @@ var _constants = require("../internals/constants");
28
29
  var _gridSortingSelector = require("../hooks/features/sorting/gridSortingSelector");
29
30
  var _gridRowsSelector = require("../hooks/features/rows/gridRowsSelector");
30
31
  var _gridEditingSelectors = require("../hooks/features/editing/gridEditingSelectors");
31
- var _GridCell = require("./cell/GridCell");
32
32
  var _GridScrollbarFillerCell = require("./GridScrollbarFillerCell");
33
33
  var _getPinnedCellOffset = require("../internals/utils/getPinnedCellOffset");
34
34
  var _useGridConfiguration = require("../hooks/utils/useGridConfiguration");
35
35
  var _useGridPrivateApiContext = require("../hooks/utils/useGridPrivateApiContext");
36
- var _hooks = require("../hooks");
37
36
  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"];
39
- function EmptyCell({
40
- width
41
- }) {
42
- if (!width) {
43
- return null;
44
- }
45
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
46
- role: "presentation",
47
- className: (0, _clsx.default)(_gridClasses.gridClasses.cell, _gridClasses.gridClasses.cellEmpty),
48
- style: {
49
- '--width': `${width}px`
50
- }
51
- });
52
- }
53
- process.env.NODE_ENV !== "production" ? EmptyCell.propTypes = {
54
- // ----------------------------- Warning --------------------------------
55
- // | These PropTypes are generated from the TypeScript type definitions |
56
- // | To update them edit the TypeScript types and run "pnpm proptypes" |
57
- // ----------------------------------------------------------------------
58
- width: _propTypes.default.number.isRequired
59
- } : void 0;
37
+ 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"];
60
38
  const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
61
39
  const {
62
40
  selected,
@@ -69,13 +47,16 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
69
47
  visibleColumns,
70
48
  pinnedColumns,
71
49
  offsetLeft,
72
- dimensions,
73
- renderContext,
50
+ columnsTotalWidth,
51
+ firstColumnIndex,
52
+ lastColumnIndex,
74
53
  focusedColumnIndex,
75
54
  isFirstVisible,
76
55
  isLastVisible,
77
56
  isNotVisible,
78
57
  showBottomBorder,
58
+ scrollbarWidth,
59
+ gridHasFiller,
79
60
  onClick,
80
61
  onDoubleClick,
81
62
  onMouseEnter,
@@ -95,14 +76,11 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
95
76
  const editRowsState = (0, _useGridSelector.useGridSelector)(apiRef, _gridEditingSelectors.gridEditRowsStateSelector);
96
77
  const handleRef = (0, _utils.unstable_useForkRef)(ref, refProp);
97
78
  const rowNode = apiRef.current.getRowNode(rowId);
98
- const scrollbarWidth = dimensions.hasScrollY ? dimensions.scrollbarSize : 0;
99
- const gridHasFiller = dimensions.columnsTotalWidth < dimensions.viewportOuterSize.width;
100
79
  const editing = apiRef.current.getRowMode(rowId) === _gridEditRowModel.GridRowModes.Edit;
101
80
  const editable = rootProps.editMode === _gridEditRowModel.GridEditModes.Row;
102
- const hasColumnVirtualization = (0, _useGridSelector.useGridSelector)(apiRef, _hooks.gridVirtualizationColumnEnabledSelector);
103
81
  const hasFocusCell = focusedColumnIndex !== undefined;
104
- const hasVirtualFocusCellLeft = hasFocusCell && focusedColumnIndex >= pinnedColumns.left.length && focusedColumnIndex < renderContext.firstColumnIndex;
105
- const hasVirtualFocusCellRight = hasFocusCell && focusedColumnIndex < visibleColumns.length - pinnedColumns.right.length && focusedColumnIndex >= renderContext.lastColumnIndex;
82
+ const hasVirtualFocusCellLeft = hasFocusCell && focusedColumnIndex >= pinnedColumns.left.length && focusedColumnIndex < firstColumnIndex;
83
+ const hasVirtualFocusCellRight = hasFocusCell && focusedColumnIndex < visibleColumns.length - pinnedColumns.right.length && focusedColumnIndex >= lastColumnIndex;
106
84
  const classes = (0, _composeGridClasses.composeGridClasses)(rootProps.classes, {
107
85
  root: ['row', selected && 'selected', editable && 'row--editable', editing && 'row--editing', isFirstVisible && 'row--firstVisible', isLastVisible && 'row--lastVisible', showBottomBorder && 'row--borderBottom', rowHeight === 'auto' && 'row--dynamicHeight']
108
86
  });
@@ -218,14 +196,14 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
218
196
  });
219
197
  rowClassNames.push(rootProps.getRowClassName(rowParams));
220
198
  }
221
- const getCell = (column, indexInSection, indexRelativeToAllColumns, sectionLength, pinnedPosition = _GridCell.PinnedPosition.NONE) => {
199
+ const getCell = (column, indexInSection, indexRelativeToAllColumns, sectionLength, pinnedPosition = _constants.PinnedColumnPosition.NONE) => {
222
200
  const cellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, indexRelativeToAllColumns);
223
201
  if (cellColSpanInfo?.spannedByColSpan) {
224
202
  return null;
225
203
  }
226
204
  const width = cellColSpanInfo?.cellProps.width ?? column.computedWidth;
227
205
  const colSpan = cellColSpanInfo?.cellProps.colSpan ?? 1;
228
- const pinnedOffset = (0, _getPinnedCellOffset.getPinnedCellOffset)(_GridCell.gridPinnedColumnPositionLookup[pinnedPosition], column.computedWidth, indexRelativeToAllColumns, columnPositions, dimensions);
206
+ const pinnedOffset = (0, _getPinnedCellOffset.getPinnedCellOffset)(pinnedPosition, column.computedWidth, indexRelativeToAllColumns, columnPositions, columnsTotalWidth, scrollbarWidth);
229
207
  if (rowNode?.type === 'skeletonRow') {
230
208
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(slots.skeletonCell, {
231
209
  type: column.type,
@@ -244,7 +222,9 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
244
222
  const canReorderColumn = !(disableColumnReorder || column.disableReorder);
245
223
  const canReorderRow = rowReordering && !sortModel.length && treeDepth <= 1 && !isEditingRows;
246
224
  const disableDragEvents = !(canReorderColumn || isReorderCell && canReorderRow);
247
- const cellIsNotVisible = pinnedPosition === _GridCell.PinnedPosition.VIRTUAL;
225
+ const cellIsNotVisible = pinnedPosition === _constants.PinnedColumnPosition.VIRTUAL;
226
+ const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(pinnedPosition, indexInSection);
227
+ const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
248
228
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(slots.cell, (0, _extends2.default)({
249
229
  column: column,
250
230
  width: width,
@@ -257,9 +237,8 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
257
237
  isNotVisible: cellIsNotVisible,
258
238
  pinnedOffset: pinnedOffset,
259
239
  pinnedPosition: pinnedPosition,
260
- sectionIndex: indexInSection,
261
- sectionLength: sectionLength,
262
- gridHasFiller: gridHasFiller
240
+ showLeftBorder: showLeftBorder,
241
+ showRightBorder: showRightBorder
263
242
  }, slotProps?.cell), column.field);
264
243
  };
265
244
 
@@ -270,25 +249,16 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
270
249
  }
271
250
  const leftCells = pinnedColumns.left.map((column, i) => {
272
251
  const indexRelativeToAllColumns = i;
273
- return getCell(column, i, indexRelativeToAllColumns, pinnedColumns.left.length, _GridCell.PinnedPosition.LEFT);
252
+ return getCell(column, i, indexRelativeToAllColumns, pinnedColumns.left.length, _constants.PinnedColumnPosition.LEFT);
274
253
  });
275
254
  const rightCells = pinnedColumns.right.map((column, i) => {
276
255
  const indexRelativeToAllColumns = visibleColumns.length - pinnedColumns.right.length + i;
277
- return getCell(column, i, indexRelativeToAllColumns, pinnedColumns.right.length, _GridCell.PinnedPosition.RIGHT);
256
+ return getCell(column, i, indexRelativeToAllColumns, pinnedColumns.right.length, _constants.PinnedColumnPosition.RIGHT);
278
257
  });
279
258
  const middleColumnsLength = visibleColumns.length - pinnedColumns.left.length - pinnedColumns.right.length;
280
259
  const cells = [];
281
260
  if (hasVirtualFocusCellLeft) {
282
- cells.push(getCell(visibleColumns[focusedColumnIndex], focusedColumnIndex - pinnedColumns.left.length, focusedColumnIndex, middleColumnsLength, _GridCell.PinnedPosition.VIRTUAL));
283
- }
284
- let firstColumnIndex;
285
- let lastColumnIndex;
286
- if (!rootProps.disableVirtualization && !hasColumnVirtualization) {
287
- firstColumnIndex = 0;
288
- lastColumnIndex = visibleColumns.length;
289
- } else {
290
- firstColumnIndex = renderContext.firstColumnIndex;
291
- lastColumnIndex = renderContext.lastColumnIndex;
261
+ cells.push(getCell(visibleColumns[focusedColumnIndex], focusedColumnIndex - pinnedColumns.left.length, focusedColumnIndex, middleColumnsLength, _constants.PinnedColumnPosition.VIRTUAL));
292
262
  }
293
263
  for (let i = firstColumnIndex; i < lastColumnIndex; i += 1) {
294
264
  const column = visibleColumns[i];
@@ -299,7 +269,7 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
299
269
  cells.push(getCell(column, indexInSection, i, middleColumnsLength));
300
270
  }
301
271
  if (hasVirtualFocusCellRight) {
302
- cells.push(getCell(visibleColumns[focusedColumnIndex], focusedColumnIndex - pinnedColumns.left.length, focusedColumnIndex, middleColumnsLength, _GridCell.PinnedPosition.VIRTUAL));
272
+ cells.push(getCell(visibleColumns[focusedColumnIndex], focusedColumnIndex - pinnedColumns.left.length, focusedColumnIndex, middleColumnsLength, _constants.PinnedColumnPosition.VIRTUAL));
303
273
  }
304
274
  const eventHandlers = row ? {
305
275
  onClick: publishClick,
@@ -309,8 +279,6 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
309
279
  onMouseOut: publish('rowMouseOut', onMouseOut),
310
280
  onMouseOver: publish('rowMouseOver', onMouseOver)
311
281
  } : null;
312
- const expandedWidth = dimensions.viewportOuterSize.width - dimensions.columnsTotalWidth - scrollbarWidth;
313
- const emptyCellWidth = Math.max(0, expandedWidth);
314
282
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", (0, _extends2.default)({
315
283
  "data-id": rowId,
316
284
  "data-rowindex": index,
@@ -325,11 +293,9 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
325
293
  style: {
326
294
  width: offsetLeft
327
295
  }
328
- }), cells, emptyCellWidth > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(EmptyCell, {
329
- width: emptyCellWidth
330
- }), rightCells.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
296
+ }), cells, /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
331
297
  role: "presentation",
332
- className: _gridClasses.gridClasses.filler
298
+ className: (0, _clsx.default)(_gridClasses.gridClasses.cell, _gridClasses.gridClasses.cellEmpty)
333
299
  }), rightCells, scrollbarWidth !== 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollbarFillerCell.GridScrollbarFillerCell, {
334
300
  pinnedRight: pinnedColumns.right.length > 0
335
301
  })]
@@ -340,48 +306,14 @@ process.env.NODE_ENV !== "production" ? GridRow.propTypes = {
340
306
  // | These PropTypes are generated from the TypeScript type definitions |
341
307
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
342
308
  // ----------------------------------------------------------------------
343
- dimensions: _propTypes.default.shape({
344
- bottomContainerHeight: _propTypes.default.number.isRequired,
345
- columnsTotalWidth: _propTypes.default.number.isRequired,
346
- contentSize: _propTypes.default.shape({
347
- height: _propTypes.default.number.isRequired,
348
- width: _propTypes.default.number.isRequired
349
- }).isRequired,
350
- groupHeaderHeight: _propTypes.default.number.isRequired,
351
- hasScrollX: _propTypes.default.bool.isRequired,
352
- hasScrollY: _propTypes.default.bool.isRequired,
353
- headerFilterHeight: _propTypes.default.number.isRequired,
354
- headerHeight: _propTypes.default.number.isRequired,
355
- headersTotalHeight: _propTypes.default.number.isRequired,
356
- isReady: _propTypes.default.bool.isRequired,
357
- leftPinnedWidth: _propTypes.default.number.isRequired,
358
- minimumSize: _propTypes.default.shape({
359
- height: _propTypes.default.number.isRequired,
360
- width: _propTypes.default.number.isRequired
361
- }).isRequired,
362
- rightPinnedWidth: _propTypes.default.number.isRequired,
363
- root: _propTypes.default.shape({
364
- height: _propTypes.default.number.isRequired,
365
- width: _propTypes.default.number.isRequired
366
- }).isRequired,
367
- rowHeight: _propTypes.default.number.isRequired,
368
- rowWidth: _propTypes.default.number.isRequired,
369
- scrollbarSize: _propTypes.default.number.isRequired,
370
- topContainerHeight: _propTypes.default.number.isRequired,
371
- viewportInnerSize: _propTypes.default.shape({
372
- height: _propTypes.default.number.isRequired,
373
- width: _propTypes.default.number.isRequired
374
- }).isRequired,
375
- viewportOuterSize: _propTypes.default.shape({
376
- height: _propTypes.default.number.isRequired,
377
- width: _propTypes.default.number.isRequired
378
- }).isRequired
379
- }).isRequired,
309
+ columnsTotalWidth: _propTypes.default.number.isRequired,
310
+ firstColumnIndex: _propTypes.default.number.isRequired,
380
311
  /**
381
312
  * Determines which cell has focus.
382
313
  * If `null`, no cell in this row has focus.
383
314
  */
384
315
  focusedColumnIndex: _propTypes.default.number,
316
+ gridHasFiller: _propTypes.default.bool.isRequired,
385
317
  /**
386
318
  * Index of the row in the whole sorted and filtered dataset.
387
319
  * If some rows above have expanded children, this index also take those children into account.
@@ -390,6 +322,7 @@ process.env.NODE_ENV !== "production" ? GridRow.propTypes = {
390
322
  isFirstVisible: _propTypes.default.bool.isRequired,
391
323
  isLastVisible: _propTypes.default.bool.isRequired,
392
324
  isNotVisible: _propTypes.default.bool.isRequired,
325
+ lastColumnIndex: _propTypes.default.number.isRequired,
393
326
  offsetLeft: _propTypes.default.number.isRequired,
394
327
  offsetTop: _propTypes.default.number,
395
328
  onClick: _propTypes.default.func,
@@ -397,22 +330,12 @@ process.env.NODE_ENV !== "production" ? GridRow.propTypes = {
397
330
  onMouseEnter: _propTypes.default.func,
398
331
  onMouseLeave: _propTypes.default.func,
399
332
  pinnedColumns: _propTypes.default.object.isRequired,
400
- renderContext: _propTypes.default.shape({
401
- firstColumnIndex: _propTypes.default.number.isRequired,
402
- firstRowIndex: _propTypes.default.number.isRequired,
403
- lastColumnIndex: _propTypes.default.number.isRequired,
404
- lastRowIndex: _propTypes.default.number.isRequired
405
- }).isRequired,
406
333
  row: _propTypes.default.object.isRequired,
407
334
  rowHeight: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]).isRequired,
408
335
  rowId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
336
+ scrollbarWidth: _propTypes.default.number.isRequired,
409
337
  selected: _propTypes.default.bool.isRequired,
410
338
  showBottomBorder: _propTypes.default.bool.isRequired,
411
- /**
412
- * Determines which cell should be tabbable by having tabIndex=0.
413
- * If `null`, no cell in this row is in the tab sequence.
414
- */
415
- tabbableCell: _propTypes.default.string,
416
339
  visibleColumns: _propTypes.default.arrayOf(_propTypes.default.object).isRequired
417
340
  } : void 0;
418
341
  const MemoizedGridRow = exports.GridRow = (0, _fastMemo.fastMemo)(GridRow);
@@ -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);
@@ -44,7 +44,7 @@ function GridEditDateCell(props) {
44
44
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
45
45
  const isDateTime = colDef.type === 'dateTime';
46
46
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
47
- const inputRef = React.useRef();
47
+ const inputRef = React.useRef(null);
48
48
  const valueTransformed = React.useMemo(() => {
49
49
  let parsedDate;
50
50
  if (valueProp == null) {
@@ -55,7 +55,7 @@ const GridEditInputCell = exports.GridEditInputCell = (0, _forwardRef.forwardRef
55
55
  } = props,
56
56
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
57
57
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
58
- const inputRef = React.useRef();
58
+ const inputRef = React.useRef(null);
59
59
  const [valueState, setValueState] = React.useState(value);
60
60
  const classes = useUtilityClasses(rootProps);
61
61
  const handleChange = React.useCallback(async event => {
@@ -39,8 +39,8 @@ function GridEditSingleSelectCell(props) {
39
39
  } = props,
40
40
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
41
41
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
42
- const ref = React.useRef();
43
- const inputRef = React.useRef();
42
+ const ref = React.useRef(null);
43
+ const inputRef = React.useRef(null);
44
44
  const [open, setOpen] = React.useState(initialOpen);
45
45
  const baseSelectProps = rootProps.slotProps?.baseSelect || {};
46
46
  const isSelectNative = baseSelectProps.native ?? false;
@@ -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,