@mui/x-data-grid 7.23.6 → 7.24.1

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 (244) hide show
  1. package/CHANGELOG.md +150 -0
  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/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/GridCell.d.ts +9 -16
  10. package/components/cell/GridCell.js +17 -35
  11. package/components/columnHeaders/GridColumnGroupHeader.d.ts +5 -5
  12. package/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  13. package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +3 -3
  14. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +21 -7
  15. package/components/columnHeaders/GridColumnHeaderItem.d.ts +5 -5
  16. package/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  17. package/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
  18. package/components/containers/GridRoot.d.ts +2 -2
  19. package/components/containers/GridRoot.js +14 -6
  20. package/components/containers/GridRootStyles.js +1 -0
  21. package/components/panel/GridPanel.js +2 -1
  22. package/components/panel/filterPanel/GridFilterInputValueProps.d.ts +2 -1
  23. package/components/toolbar/GridToolbarColumnsButton.js +6 -1
  24. package/components/toolbar/GridToolbarFilterButton.js +6 -1
  25. package/components/virtualization/GridVirtualScrollbar.js +11 -12
  26. package/components/virtualization/GridVirtualScroller.js +4 -4
  27. package/context/GridContextProvider.d.ts +2 -1
  28. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +2 -2
  29. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +2 -2
  30. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +2 -2
  31. package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.d.ts +2 -2
  32. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +2 -2
  33. package/hooks/core/useGridApiInitialization.d.ts +2 -2
  34. package/hooks/core/useGridInitialization.d.ts +2 -2
  35. package/hooks/core/useGridIsRtl.d.ts +2 -2
  36. package/hooks/core/useGridLocaleText.d.ts +2 -2
  37. package/hooks/core/useGridLoggerFactory.d.ts +2 -2
  38. package/hooks/core/useGridRefs.d.ts +2 -2
  39. package/hooks/core/useGridStateInitialization.d.ts +2 -2
  40. package/hooks/features/clipboard/useGridClipboard.d.ts +2 -2
  41. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +2 -2
  42. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +5 -7
  43. package/hooks/features/columnHeaders/useGridColumnHeaders.js +34 -76
  44. package/hooks/features/columnMenu/useGridColumnMenu.d.ts +2 -2
  45. package/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  46. package/hooks/features/columnResize/useGridColumnResize.d.ts +2 -2
  47. package/hooks/features/columnResize/useGridColumnResize.js +4 -2
  48. package/hooks/features/columns/gridColumnsUtils.d.ts +4 -4
  49. package/hooks/features/columns/useGridColumnSpanning.d.ts +2 -2
  50. package/hooks/features/columns/useGridColumns.d.ts +2 -2
  51. package/hooks/features/density/useGridDensity.d.ts +2 -2
  52. package/hooks/features/dimensions/useGridDimensions.d.ts +2 -2
  53. package/hooks/features/dimensions/useGridDimensions.js +1 -3
  54. package/hooks/features/editing/useGridCellEditing.d.ts +2 -2
  55. package/hooks/features/editing/useGridEditing.d.ts +2 -2
  56. package/hooks/features/editing/useGridRowEditing.d.ts +2 -2
  57. package/hooks/features/events/useGridEvents.d.ts +2 -2
  58. package/hooks/features/export/serializers/csvSerializer.d.ts +2 -1
  59. package/hooks/features/export/useGridCsvExport.d.ts +2 -2
  60. package/hooks/features/export/useGridPrintExport.d.ts +2 -2
  61. package/hooks/features/export/utils.d.ts +2 -2
  62. package/hooks/features/filter/gridFilterSelector.js +6 -1
  63. package/hooks/features/filter/gridFilterUtils.d.ts +7 -7
  64. package/hooks/features/filter/gridFilterUtils.js +3 -3
  65. package/hooks/features/filter/useGridFilter.d.ts +2 -2
  66. package/hooks/features/focus/useGridFocus.d.ts +2 -2
  67. package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +2 -2
  68. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +2 -2
  69. package/hooks/features/keyboardNavigation/utils.d.ts +3 -3
  70. package/hooks/features/listView/useGridListView.d.ts +2 -2
  71. package/hooks/features/pagination/gridPaginationInterfaces.d.ts +3 -0
  72. package/hooks/features/pagination/gridPaginationSelector.d.ts +20 -1
  73. package/hooks/features/pagination/gridPaginationSelector.js +39 -1
  74. package/hooks/features/pagination/useGridPagination.d.ts +3 -3
  75. package/hooks/features/pagination/useGridPagination.js +5 -3
  76. package/hooks/features/pagination/useGridPaginationMeta.d.ts +2 -2
  77. package/hooks/features/pagination/useGridPaginationModel.d.ts +2 -2
  78. package/hooks/features/pagination/useGridPaginationModel.js +23 -1
  79. package/hooks/features/pagination/useGridRowCount.d.ts +2 -2
  80. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.d.ts +1 -0
  81. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
  82. package/hooks/features/preferencesPanel/index.d.ts +1 -1
  83. package/hooks/features/preferencesPanel/index.js +1 -1
  84. package/hooks/features/preferencesPanel/useGridPreferencesPanel.d.ts +2 -2
  85. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  86. package/hooks/features/rowSelection/useGridRowSelection.d.ts +2 -2
  87. package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.d.ts +2 -2
  88. package/hooks/features/rowSelection/utils.d.ts +3 -2
  89. package/hooks/features/rows/gridRowSpanningUtils.d.ts +2 -2
  90. package/hooks/features/rows/gridRowsSelector.js +1 -1
  91. package/hooks/features/rows/gridRowsUtils.d.ts +4 -4
  92. package/hooks/features/rows/useGridParamsApi.d.ts +2 -2
  93. package/hooks/features/rows/useGridRowSpanning.d.ts +2 -2
  94. package/hooks/features/rows/useGridRows.d.ts +2 -2
  95. package/hooks/features/rows/useGridRows.js +2 -2
  96. package/hooks/features/rows/useGridRowsMeta.d.ts +2 -2
  97. package/hooks/features/rows/useGridRowsPreProcessors.d.ts +2 -2
  98. package/hooks/features/scroll/useGridScroll.d.ts +2 -2
  99. package/hooks/features/sorting/gridSortingUtils.d.ts +3 -3
  100. package/hooks/features/sorting/gridSortingUtils.js +2 -2
  101. package/hooks/features/sorting/useGridSorting.d.ts +2 -2
  102. package/hooks/features/statePersistence/useGridStatePersistence.d.ts +2 -2
  103. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +6 -0
  104. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +42 -0
  105. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +2 -1
  106. package/hooks/features/virtualization/useGridVirtualScroller.js +92 -50
  107. package/hooks/features/virtualization/useGridVirtualization.d.ts +2 -2
  108. package/hooks/utils/useGridApiContext.d.ts +2 -2
  109. package/hooks/utils/useGridApiEventHandler.d.ts +4 -4
  110. package/hooks/utils/useGridApiMethod.d.ts +2 -2
  111. package/hooks/utils/useGridApiRef.d.ts +2 -2
  112. package/hooks/utils/useGridApiRef.js +3 -1
  113. package/hooks/utils/useGridInitializeState.d.ts +3 -3
  114. package/hooks/utils/useGridLogger.d.ts +2 -2
  115. package/hooks/utils/useGridNativeEventListener.d.ts +2 -1
  116. package/hooks/utils/useGridPrivateApiContext.d.ts +2 -1
  117. package/hooks/utils/useGridSelector.d.ts +3 -3
  118. package/hooks/utils/useGridVisibleRows.d.ts +8 -6
  119. package/hooks/utils/useGridVisibleRows.js +5 -28
  120. package/index.js +1 -1
  121. package/internals/constants.d.ts +6 -0
  122. package/internals/constants.js +8 -1
  123. package/internals/index.d.ts +1 -0
  124. package/internals/index.js +1 -0
  125. package/internals/utils/attachPinnedStyle.d.ts +2 -0
  126. package/internals/utils/attachPinnedStyle.js +9 -0
  127. package/internals/utils/getPinnedCellOffset.d.ts +3 -3
  128. package/internals/utils/getPinnedCellOffset.js +6 -7
  129. package/internals/utils/index.d.ts +1 -0
  130. package/internals/utils/index.js +2 -1
  131. package/locales/faIR.js +5 -6
  132. package/locales/urPK.js +9 -10
  133. package/models/colDef/gridColDef.d.ts +9 -8
  134. package/models/events/gridEventLookup.d.ts +6 -1
  135. package/models/gridExport.d.ts +2 -2
  136. package/models/gridFilterOperator.d.ts +2 -1
  137. package/models/gridStateCommunity.d.ts +4 -0
  138. package/models/props/DataGridProps.d.ts +2 -1
  139. package/modern/DataGrid/DataGrid.js +4 -5
  140. package/modern/DataGrid/useDataGridComponent.js +1 -1
  141. package/modern/components/GridHeaders.js +2 -2
  142. package/modern/components/GridRow.js +28 -105
  143. package/modern/components/GridSkeletonLoadingOverlay.js +18 -18
  144. package/modern/components/cell/GridCell.js +17 -35
  145. package/modern/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  146. package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +21 -7
  147. package/modern/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  148. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
  149. package/modern/components/containers/GridRoot.js +14 -6
  150. package/modern/components/containers/GridRootStyles.js +1 -0
  151. package/modern/components/panel/GridPanel.js +2 -1
  152. package/modern/components/toolbar/GridToolbarColumnsButton.js +6 -1
  153. package/modern/components/toolbar/GridToolbarFilterButton.js +6 -1
  154. package/modern/components/virtualization/GridVirtualScrollbar.js +11 -12
  155. package/modern/components/virtualization/GridVirtualScroller.js +4 -4
  156. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +34 -76
  157. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  158. package/modern/hooks/features/columnResize/useGridColumnResize.js +4 -2
  159. package/modern/hooks/features/dimensions/useGridDimensions.js +1 -3
  160. package/modern/hooks/features/filter/gridFilterSelector.js +6 -1
  161. package/modern/hooks/features/filter/gridFilterUtils.js +3 -3
  162. package/modern/hooks/features/pagination/gridPaginationSelector.js +39 -1
  163. package/modern/hooks/features/pagination/useGridPagination.js +5 -3
  164. package/modern/hooks/features/pagination/useGridPaginationModel.js +23 -1
  165. package/modern/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
  166. package/modern/hooks/features/preferencesPanel/index.js +1 -1
  167. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  168. package/modern/hooks/features/rows/gridRowsSelector.js +1 -1
  169. package/modern/hooks/features/rows/useGridRows.js +2 -2
  170. package/modern/hooks/features/sorting/gridSortingUtils.js +2 -2
  171. package/modern/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +42 -0
  172. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +92 -50
  173. package/modern/hooks/utils/useGridApiRef.js +3 -1
  174. package/modern/hooks/utils/useGridVisibleRows.js +5 -28
  175. package/modern/index.js +1 -1
  176. package/modern/internals/constants.js +8 -1
  177. package/modern/internals/index.js +1 -0
  178. package/modern/internals/utils/attachPinnedStyle.js +9 -0
  179. package/modern/internals/utils/getPinnedCellOffset.js +6 -7
  180. package/modern/internals/utils/index.js +2 -1
  181. package/modern/locales/faIR.js +5 -6
  182. package/modern/locales/urPK.js +9 -10
  183. package/modern/utils/cellBorderUtils.js +5 -5
  184. package/modern/utils/domUtils.js +7 -2
  185. package/modern/utils/isJSDOM.js +1 -0
  186. package/modern/utils/rtlFlipSide.js +22 -0
  187. package/node/DataGrid/DataGrid.js +2 -3
  188. package/node/DataGrid/useDataGridComponent.js +1 -1
  189. package/node/components/GridHeaders.js +2 -2
  190. package/node/components/GridRow.js +27 -104
  191. package/node/components/GridSkeletonLoadingOverlay.js +17 -17
  192. package/node/components/cell/GridCell.js +18 -36
  193. package/node/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  194. package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +20 -6
  195. package/node/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  196. package/node/components/columnSelection/GridCellCheckboxRenderer.js +1 -1
  197. package/node/components/containers/GridRoot.js +14 -6
  198. package/node/components/containers/GridRootStyles.js +1 -0
  199. package/node/components/panel/GridPanel.js +2 -1
  200. package/node/components/toolbar/GridToolbarColumnsButton.js +6 -1
  201. package/node/components/toolbar/GridToolbarFilterButton.js +6 -1
  202. package/node/components/virtualization/GridVirtualScrollbar.js +11 -12
  203. package/node/components/virtualization/GridVirtualScroller.js +4 -4
  204. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +32 -74
  205. package/node/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  206. package/node/hooks/features/columnResize/useGridColumnResize.js +4 -2
  207. package/node/hooks/features/dimensions/useGridDimensions.js +3 -5
  208. package/node/hooks/features/filter/gridFilterSelector.js +6 -1
  209. package/node/hooks/features/filter/gridFilterUtils.js +3 -3
  210. package/node/hooks/features/pagination/gridPaginationSelector.js +41 -3
  211. package/node/hooks/features/pagination/useGridPagination.js +5 -3
  212. package/node/hooks/features/pagination/useGridPaginationModel.js +23 -1
  213. package/node/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +9 -2
  214. package/node/hooks/features/preferencesPanel/index.js +11 -10
  215. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  216. package/node/hooks/features/rows/gridRowsSelector.js +1 -1
  217. package/node/hooks/features/rows/useGridRows.js +1 -1
  218. package/node/hooks/features/sorting/gridSortingUtils.js +2 -2
  219. package/node/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +49 -0
  220. package/node/hooks/features/virtualization/useGridVirtualScroller.js +94 -52
  221. package/node/hooks/utils/useGridApiRef.js +3 -1
  222. package/node/hooks/utils/useGridVisibleRows.js +3 -28
  223. package/node/index.js +1 -1
  224. package/node/internals/constants.js +9 -2
  225. package/node/internals/index.js +12 -0
  226. package/node/internals/utils/attachPinnedStyle.js +15 -0
  227. package/node/internals/utils/getPinnedCellOffset.js +6 -7
  228. package/node/internals/utils/index.js +11 -0
  229. package/node/locales/faIR.js +5 -6
  230. package/node/locales/urPK.js +9 -10
  231. package/node/utils/cellBorderUtils.js +5 -5
  232. package/node/utils/domUtils.js +7 -2
  233. package/node/utils/isJSDOM.js +7 -0
  234. package/node/utils/rtlFlipSide.js +29 -0
  235. package/package.json +2 -2
  236. package/utils/cellBorderUtils.d.ts +3 -3
  237. package/utils/cellBorderUtils.js +5 -5
  238. package/utils/createSelector.d.ts +3 -3
  239. package/utils/domUtils.js +7 -2
  240. package/utils/getPublicApiRef.d.ts +2 -1
  241. package/utils/isJSDOM.d.ts +1 -0
  242. package/utils/isJSDOM.js +1 -0
  243. package/utils/rtlFlipSide.d.ts +2 -0
  244. package/utils/rtlFlipSide.js +22 -0
@@ -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,12 +5,12 @@ 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"));
12
12
  var _utils = require("@mui/utils");
13
- var _hooks = require("../../hooks");
13
+ var _useGridSelector = require("../../hooks/utils/useGridSelector");
14
14
  var _gridPreferencePanelSelector = require("../../hooks/features/preferencesPanel/gridPreferencePanelSelector");
15
15
  var _gridPreferencePanelsValue = require("../../hooks/features/preferencesPanel/gridPreferencePanelsValue");
16
16
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
@@ -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, _useGridSelector.useGridSelectorV8)(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,
@@ -70,8 +84,8 @@ function GridColumnHeaderFilterIconButton(props) {
70
84
  size: "small",
71
85
  tabIndex: -1,
72
86
  "aria-haspopup": "menu",
73
- "aria-expanded": open,
74
- "aria-controls": open ? panelId : undefined
87
+ "aria-expanded": isOpen,
88
+ "aria-controls": isOpen ? panelId : undefined
75
89
  }, rootProps.slotProps?.baseIconButton, {
76
90
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnFilteredIcon, {
77
91
  className: classes.icon,
@@ -12,6 +12,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _clsx = _interopRequireDefault(require("clsx"));
13
13
  var _utils = require("@mui/utils");
14
14
  var _fastMemo = require("@mui/x-internals/fastMemo");
15
+ var _RtlProvider = require("@mui/system/RtlProvider");
15
16
  var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiContext");
16
17
  var _ColumnHeaderMenuIcon = require("./ColumnHeaderMenuIcon");
17
18
  var _GridColumnHeaderMenu = require("../menu/columnMenu/GridColumnHeaderMenu");
@@ -19,7 +20,8 @@ var _gridClasses = require("../../constants/gridClasses");
19
20
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
20
21
  var _GridGenericColumnHeaderItem = require("./GridGenericColumnHeaderItem");
21
22
  var _domUtils = require("../../utils/domUtils");
22
- var _cellBorderUtils = require("../../utils/cellBorderUtils");
23
+ var _constants = require("../../internals/constants");
24
+ var _utils2 = require("../../internals/utils");
23
25
  var _jsxRuntime = require("react/jsx-runtime");
24
26
  const useUtilityClasses = ownerState => {
25
27
  const {
@@ -39,7 +41,7 @@ const useUtilityClasses = ownerState => {
39
41
  // todo refactor to a prop on col isNumeric or ?? ie: coltype===price wont work
40
42
  const isColumnNumeric = colDef.type === 'number';
41
43
  const slots = {
42
- root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', colDef.sortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight',
44
+ root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', colDef.sortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === _constants.PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === _constants.PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight',
43
45
  // TODO: Remove classes below and restore `:has` selectors when they are supported in jsdom
44
46
  // See https://github.com/mui/mui-x/pull/14559
45
47
  isLastUnpinned && 'columnHeader--lastUnpinned', isSiblingFocused && 'columnHeader--siblingFocused'],
@@ -64,14 +66,14 @@ function GridColumnHeaderItem(props) {
64
66
  tabIndex,
65
67
  disableReorder,
66
68
  separatorSide,
67
- style,
69
+ showLeftBorder,
70
+ showRightBorder,
68
71
  pinnedPosition,
69
- indexInSection,
70
- sectionLength,
71
- gridHasFiller
72
+ pinnedOffset
72
73
  } = props;
73
74
  const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
74
75
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
76
+ const isRtl = (0, _RtlProvider.useRtl)();
75
77
  const headerCellRef = React.useRef(null);
76
78
  const columnMenuId = (0, _utils.unstable_useId)();
77
79
  const columnMenuButtonId = (0, _utils.unstable_useId)();
@@ -82,8 +84,6 @@ function GridColumnHeaderItem(props) {
82
84
  if (colDef.renderHeader) {
83
85
  headerComponent = colDef.renderHeader(apiRef.current.getColumnHeaderParams(colDef.field));
84
86
  }
85
- const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(pinnedPosition, indexInSection);
86
- const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showColumnVerticalBorder, gridHasFiller);
87
87
  const ownerState = (0, _extends2.default)({}, props, {
88
88
  classes: rootProps.classes,
89
89
  showRightBorder,
@@ -179,6 +179,7 @@ function GridColumnHeaderItem(props) {
179
179
  colDef
180
180
  }) : colDef.headerClassName;
181
181
  const label = colDef.headerName ?? colDef.field;
182
+ const style = React.useMemo(() => (0, _utils2.attachPinnedStyle)((0, _extends2.default)({}, props.style), isRtl, pinnedPosition, pinnedOffset), [pinnedPosition, pinnedOffset, props.style, isRtl]);
182
183
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridGenericColumnHeaderItem.GridGenericColumnHeaderItem, (0, _extends2.default)({
183
184
  ref: headerCellRef,
184
185
  classes: classes,
@@ -217,18 +218,18 @@ process.env.NODE_ENV !== "production" ? GridColumnHeaderItem.propTypes = {
217
218
  columnMenuOpen: _propTypes.default.bool.isRequired,
218
219
  disableReorder: _propTypes.default.bool,
219
220
  filterItemsCounter: _propTypes.default.number,
220
- gridHasFiller: _propTypes.default.bool.isRequired,
221
221
  hasFocus: _propTypes.default.bool,
222
222
  headerHeight: _propTypes.default.number.isRequired,
223
- indexInSection: _propTypes.default.number.isRequired,
224
223
  isDragging: _propTypes.default.bool.isRequired,
225
224
  isLast: _propTypes.default.bool.isRequired,
226
225
  isLastUnpinned: _propTypes.default.bool.isRequired,
227
226
  isResizing: _propTypes.default.bool.isRequired,
228
227
  isSiblingFocused: _propTypes.default.bool.isRequired,
229
- pinnedPosition: _propTypes.default.oneOf(['left', 'right']),
230
- sectionLength: _propTypes.default.number.isRequired,
228
+ pinnedOffset: _propTypes.default.number,
229
+ pinnedPosition: _propTypes.default.oneOf([0, 1, 2, 3]),
231
230
  separatorSide: _propTypes.default.oneOf(['left', 'right']),
231
+ showLeftBorder: _propTypes.default.bool.isRequired,
232
+ showRightBorder: _propTypes.default.bool.isRequired,
232
233
  sortDirection: _propTypes.default.oneOf(['asc', 'desc']),
233
234
  sortIndex: _propTypes.default.number,
234
235
  style: _propTypes.default.object,
@@ -84,7 +84,7 @@ const GridCellCheckboxForwardRef = exports.GridCellCheckboxForwardRef = (0, _for
84
84
  const {
85
85
  isIndeterminate,
86
86
  isChecked
87
- } = (0, _useGridSelector.useGridSelector)(apiRef, checkboxPropsSelector);
87
+ } = (0, _useGridSelector.useGridSelector)(apiRef, checkboxPropsSelector, _useGridSelector.objectShallowCompare);
88
88
  if (rowNode.type === 'footer' || rowNode.type === 'pinnedRow') {
89
89
  return null;
90
90
  }
@@ -12,6 +12,7 @@ var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _clsx = _interopRequireDefault(require("clsx"));
14
14
  var _utils = require("@mui/utils");
15
+ var _fastMemo = require("@mui/x-internals/fastMemo");
15
16
  var _forwardRef = require("@mui/x-internals/forwardRef");
16
17
  var _GridRootStyles = require("./GridRootStyles");
17
18
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
@@ -19,8 +20,10 @@ var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiCont
19
20
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
20
21
  var _gridClasses = require("../../constants/gridClasses");
21
22
  var _densitySelector = require("../../hooks/features/density/densitySelector");
23
+ var _GridHeader = require("../GridHeader");
24
+ var _base = require("../base");
22
25
  var _jsxRuntime = require("react/jsx-runtime");
23
- const _excluded = ["className"];
26
+ const _excluded = ["className", "children"];
24
27
  const useUtilityClasses = (ownerState, density) => {
25
28
  const {
26
29
  autoHeight,
@@ -32,10 +35,11 @@ const useUtilityClasses = (ownerState, density) => {
32
35
  };
33
36
  return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
34
37
  };
35
- const GridRoot = exports.GridRoot = (0, _forwardRef.forwardRef)(function GridRoot(props, ref) {
38
+ const GridRoot = (0, _forwardRef.forwardRef)(function GridRoot(props, ref) {
36
39
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
37
40
  const {
38
- className
41
+ className,
42
+ children
39
43
  } = props,
40
44
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
41
45
  const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
@@ -53,11 +57,14 @@ const GridRoot = exports.GridRoot = (0, _forwardRef.forwardRef)(function GridRoo
53
57
  if (!mountedState) {
54
58
  return null;
55
59
  }
56
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridRootStyles.GridRootStyles, (0, _extends2.default)({
60
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridRootStyles.GridRootStyles, (0, _extends2.default)({
57
61
  className: (0, _clsx.default)(classes.root, className),
58
62
  ownerState: ownerState
59
63
  }, other, {
60
- ref: handleRef
64
+ ref: handleRef,
65
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridHeader.GridHeader, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_base.GridBody, {
66
+ children: children
67
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_base.GridFooterPlaceholder, {})]
61
68
  }));
62
69
  });
63
70
  process.env.NODE_ENV !== "production" ? GridRoot.propTypes = {
@@ -69,4 +76,5 @@ process.env.NODE_ENV !== "production" ? GridRoot.propTypes = {
69
76
  * The system prop that allows defining system overrides as well as additional CSS styles.
70
77
  */
71
78
  sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object])
72
- } : void 0;
79
+ } : void 0;
80
+ const MemoizedGridRoot = exports.GridRoot = (0, _fastMemo.fastMemo)(GridRoot);
@@ -551,6 +551,7 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
551
551
  lineHeight: 'inherit'
552
552
  },
553
553
  [`& .${_gridClasses.gridClasses.cellEmpty}`]: {
554
+ flex: 1,
554
555
  padding: 0,
555
556
  height: 'unset'
556
557
  },
@@ -99,7 +99,8 @@ const GridPanel = exports.GridPanel = (0, _forwardRef.forwardRef)((props, ref) =
99
99
  }, other, {
100
100
  ref: ref,
101
101
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ClickAwayListener.default, {
102
- mouseEvent: "onMouseUp",
102
+ mouseEvent: "onPointerUp",
103
+ touchEvent: false,
103
104
  onClickAway: handleClickAway,
104
105
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(GridPaperRoot, {
105
106
  className: classes.paper,
@@ -54,7 +54,12 @@ const GridToolbarColumnsButton = exports.GridToolbarColumnsButton = (0, _forward
54
54
  "aria-expanded": isOpen,
55
55
  "aria-controls": isOpen ? columnPanelId : undefined,
56
56
  startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnSelectorIcon, {}),
57
- onClick: showColumns
57
+ onClick: showColumns,
58
+ onPointerUp: event => {
59
+ if (preferencePanel.open) {
60
+ event.stopPropagation();
61
+ }
62
+ }
58
63
  }, rootProps.slotProps?.baseButton, buttonProps, {
59
64
  ref: ref,
60
65
  children: apiRef.current.getLocaleText('toolbarColumns')
@@ -118,7 +118,12 @@ const GridToolbarFilterButton = exports.GridToolbarFilterButton = (0, _forwardRe
118
118
  }, rootProps.slotProps?.baseBadge, badgeProps, {
119
119
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.openFilterButtonIcon, {})
120
120
  })),
121
- onClick: toggleFilter
121
+ onClick: toggleFilter,
122
+ onPointerUp: event => {
123
+ if (preferencePanel.open) {
124
+ event.stopPropagation();
125
+ }
126
+ }
122
127
  }, rootProps.slotProps?.baseButton, buttonProps, {
123
128
  ref: ref,
124
129
  children: apiRef.current.getLocaleText('toolbarFilters')
@@ -29,6 +29,9 @@ const Scrollbar = (0, _system.styled)('div')({
29
29
  position: 'absolute',
30
30
  display: 'inline-block',
31
31
  zIndex: 6,
32
+ '&:hover': {
33
+ zIndex: 7
34
+ },
32
35
  // In macOS Safari and Gnome Web, scrollbars are overlaid and don't affect the layout. So we consider
33
36
  // their size to be 0px throughout all the calculations, but the floating scrollbar container does need
34
37
  // to appear and have a real size. We set it to 14px because it seems like an acceptable value and we
@@ -110,19 +113,15 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = (0, _forwardRef.forw
110
113
  (0, _useOnMount.useOnMount)(() => {
111
114
  const scroller = apiRef.current.virtualScrollerRef.current;
112
115
  const scrollbar = scrollbarRef.current;
113
- scroller.addEventListener('scroll', onScrollerScroll, {
114
- capture: true
115
- });
116
- scrollbar.addEventListener('scroll', onScrollbarScroll, {
117
- capture: true
118
- });
116
+ const options = {
117
+ capture: true,
118
+ passive: true
119
+ };
120
+ scroller.addEventListener('scroll', onScrollerScroll, options);
121
+ scrollbar.addEventListener('scroll', onScrollbarScroll, options);
119
122
  return () => {
120
- scroller.removeEventListener('scroll', onScrollerScroll, {
121
- capture: true
122
- });
123
- scrollbar.removeEventListener('scroll', onScrollbarScroll, {
124
- capture: true
125
- });
123
+ scroller.removeEventListener('scroll', onScrollerScroll, options);
124
+ scrollbar.removeEventListener('scroll', onScrollbarScroll, options);
126
125
  };
127
126
  });
128
127
  React.useEffect(() => {
@@ -106,10 +106,10 @@ function GridVirtualScroller(props) {
106
106
  virtualScroller: virtualScroller
107
107
  })
108
108
  })]
109
- })), dimensions.hasScrollY && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
110
- position: "vertical"
111
- }, getScrollbarVerticalProps())), dimensions.hasScrollX && !rootProps.unstable_listView && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
109
+ })), dimensions.hasScrollX && !rootProps.unstable_listView && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
112
110
  position: "horizontal"
113
- }, getScrollbarHorizontalProps())), props.children]
111
+ }, getScrollbarHorizontalProps())), dimensions.hasScrollY && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
112
+ position: "vertical"
113
+ }, getScrollbarVerticalProps())), props.children]
114
114
  }));
115
115
  }