@mui/x-data-grid 7.24.1 → 7.26.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 (188) hide show
  1. package/CHANGELOG.md +148 -0
  2. package/DataGrid/DataGrid.js +1 -7
  3. package/DataGrid/useDataGridComponent.js +2 -2
  4. package/components/GridRow.d.ts +0 -1
  5. package/components/GridRow.js +32 -20
  6. package/components/GridScrollArea.d.ts +5 -2
  7. package/components/GridScrollArea.js +32 -25
  8. package/components/GridSkeletonLoadingOverlay.js +2 -1
  9. package/components/cell/GridCell.d.ts +9 -6
  10. package/components/cell/GridCell.js +29 -52
  11. package/components/containers/GridRoot.js +11 -9
  12. package/components/containers/GridRootStyles.js +138 -40
  13. package/components/toolbar/GridToolbarColumnsButton.js +5 -4
  14. package/components/toolbar/GridToolbarDensitySelector.js +2 -2
  15. package/components/toolbar/GridToolbarExportContainer.js +2 -2
  16. package/components/toolbar/GridToolbarFilterButton.js +4 -3
  17. package/components/virtualization/GridMainContainer.d.ts +10 -0
  18. package/components/virtualization/GridMainContainer.js +10 -2
  19. package/components/virtualization/GridVirtualScrollbar.d.ts +4 -0
  20. package/components/virtualization/GridVirtualScrollbar.js +5 -5
  21. package/components/virtualization/GridVirtualScroller.js +36 -16
  22. package/components/virtualization/GridVirtualScrollerContent.js +11 -2
  23. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +1 -1
  24. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +6 -4
  25. package/hooks/core/useGridStateInitialization.js +3 -2
  26. package/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -14
  27. package/hooks/features/columnResize/useGridColumnResize.js +2 -1
  28. package/hooks/features/columns/gridColumnsSelector.d.ts +0 -5
  29. package/hooks/features/columns/gridColumnsSelector.js +0 -12
  30. package/hooks/features/columns/useGridColumns.js +7 -3
  31. package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +16 -0
  32. package/hooks/features/dimensions/gridDimensionsSelectors.js +26 -1
  33. package/hooks/features/dimensions/index.d.ts +1 -1
  34. package/hooks/features/dimensions/index.js +1 -2
  35. package/hooks/features/dimensions/useGridDimensions.js +102 -77
  36. package/hooks/features/editing/gridEditingSelectors.d.ts +10 -0
  37. package/hooks/features/editing/gridEditingSelectors.js +12 -1
  38. package/hooks/features/editing/index.d.ts +1 -1
  39. package/hooks/features/editing/index.js +1 -1
  40. package/hooks/features/editing/useGridCellEditing.js +3 -3
  41. package/hooks/features/editing/useGridRowEditing.js +8 -9
  42. package/hooks/features/filter/gridFilterState.d.ts +5 -0
  43. package/hooks/features/filter/gridFilterState.js +5 -0
  44. package/hooks/features/filter/useGridFilter.js +6 -13
  45. package/hooks/features/focus/useGridFocus.js +3 -2
  46. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -16
  47. package/hooks/features/keyboardNavigation/utils.d.ts +1 -2
  48. package/hooks/features/keyboardNavigation/utils.js +0 -5
  49. package/hooks/features/listView/useGridListView.js +2 -1
  50. package/hooks/features/pagination/useGridPagination.js +1 -1
  51. package/hooks/features/rowSelection/useGridRowSelection.js +4 -4
  52. package/hooks/features/rowSelection/utils.js +1 -1
  53. package/hooks/features/rows/gridRowsMetaState.d.ts +8 -0
  54. package/hooks/features/rows/gridRowsUtils.d.ts +0 -4
  55. package/hooks/features/rows/gridRowsUtils.js +0 -16
  56. package/hooks/features/rows/useGridParamsApi.d.ts +1 -1
  57. package/hooks/features/rows/useGridParamsApi.js +33 -14
  58. package/hooks/features/rows/useGridRowSpanning.js +94 -91
  59. package/hooks/features/rows/useGridRows.js +7 -8
  60. package/hooks/features/rows/useGridRowsMeta.js +36 -19
  61. package/hooks/features/sorting/gridSortingSelector.js +10 -9
  62. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +2 -2
  63. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +15 -1
  64. package/hooks/features/virtualization/useGridVirtualScroller.js +74 -72
  65. package/hooks/utils/useGridSelector.d.ts +8 -1
  66. package/hooks/utils/useGridSelector.js +42 -8
  67. package/hooks/utils/useIsSSR.d.ts +1 -0
  68. package/hooks/utils/useIsSSR.js +5 -0
  69. package/index.js +1 -1
  70. package/internals/index.d.ts +2 -1
  71. package/internals/index.js +2 -1
  72. package/models/api/gridApiCommon.d.ts +2 -2
  73. package/models/api/gridParamsApi.d.ts +29 -2
  74. package/models/api/gridStateApi.d.ts +1 -0
  75. package/models/api/index.d.ts +1 -1
  76. package/models/api/index.js +0 -1
  77. package/models/events/gridEventLookup.d.ts +6 -0
  78. package/modern/DataGrid/DataGrid.js +1 -7
  79. package/modern/DataGrid/useDataGridComponent.js +2 -2
  80. package/modern/components/GridRow.js +32 -20
  81. package/modern/components/GridScrollArea.js +32 -25
  82. package/modern/components/GridSkeletonLoadingOverlay.js +2 -1
  83. package/modern/components/cell/GridCell.js +29 -52
  84. package/modern/components/containers/GridRoot.js +11 -9
  85. package/modern/components/containers/GridRootStyles.js +138 -40
  86. package/modern/components/toolbar/GridToolbarColumnsButton.js +5 -4
  87. package/modern/components/toolbar/GridToolbarDensitySelector.js +2 -2
  88. package/modern/components/toolbar/GridToolbarExportContainer.js +2 -2
  89. package/modern/components/toolbar/GridToolbarFilterButton.js +4 -3
  90. package/modern/components/virtualization/GridMainContainer.js +10 -2
  91. package/modern/components/virtualization/GridVirtualScrollbar.js +5 -5
  92. package/modern/components/virtualization/GridVirtualScroller.js +36 -16
  93. package/modern/components/virtualization/GridVirtualScrollerContent.js +11 -2
  94. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +6 -4
  95. package/modern/hooks/core/useGridStateInitialization.js +3 -2
  96. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -14
  97. package/modern/hooks/features/columnResize/useGridColumnResize.js +2 -1
  98. package/modern/hooks/features/columns/gridColumnsSelector.js +0 -12
  99. package/modern/hooks/features/columns/useGridColumns.js +7 -3
  100. package/modern/hooks/features/dimensions/gridDimensionsSelectors.js +26 -1
  101. package/modern/hooks/features/dimensions/index.js +1 -2
  102. package/modern/hooks/features/dimensions/useGridDimensions.js +102 -77
  103. package/modern/hooks/features/editing/gridEditingSelectors.js +12 -1
  104. package/modern/hooks/features/editing/index.js +1 -1
  105. package/modern/hooks/features/editing/useGridCellEditing.js +3 -3
  106. package/modern/hooks/features/editing/useGridRowEditing.js +8 -9
  107. package/modern/hooks/features/filter/gridFilterState.js +5 -0
  108. package/modern/hooks/features/filter/useGridFilter.js +6 -13
  109. package/modern/hooks/features/focus/useGridFocus.js +3 -2
  110. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -16
  111. package/modern/hooks/features/keyboardNavigation/utils.js +0 -5
  112. package/modern/hooks/features/listView/useGridListView.js +2 -1
  113. package/modern/hooks/features/pagination/useGridPagination.js +1 -1
  114. package/modern/hooks/features/rowSelection/useGridRowSelection.js +4 -4
  115. package/modern/hooks/features/rowSelection/utils.js +1 -1
  116. package/modern/hooks/features/rows/gridRowsUtils.js +0 -16
  117. package/modern/hooks/features/rows/useGridParamsApi.js +33 -14
  118. package/modern/hooks/features/rows/useGridRowSpanning.js +94 -91
  119. package/modern/hooks/features/rows/useGridRows.js +7 -8
  120. package/modern/hooks/features/rows/useGridRowsMeta.js +36 -19
  121. package/modern/hooks/features/sorting/gridSortingSelector.js +10 -9
  122. package/modern/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +2 -2
  123. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +74 -72
  124. package/modern/hooks/utils/useGridSelector.js +42 -8
  125. package/modern/hooks/utils/useIsSSR.js +5 -0
  126. package/modern/index.js +1 -1
  127. package/modern/internals/index.js +2 -1
  128. package/modern/models/api/index.js +0 -1
  129. package/modern/utils/roundToDecimalPlaces.js +3 -0
  130. package/modern/utils/utils.js +6 -1
  131. package/node/DataGrid/DataGrid.js +1 -7
  132. package/node/DataGrid/useDataGridComponent.js +2 -2
  133. package/node/components/GridRow.js +28 -17
  134. package/node/components/GridScrollArea.js +31 -24
  135. package/node/components/GridSkeletonLoadingOverlay.js +2 -1
  136. package/node/components/cell/GridCell.js +27 -50
  137. package/node/components/containers/GridRoot.js +10 -8
  138. package/node/components/containers/GridRootStyles.js +138 -40
  139. package/node/components/toolbar/GridToolbarColumnsButton.js +5 -4
  140. package/node/components/toolbar/GridToolbarDensitySelector.js +2 -2
  141. package/node/components/toolbar/GridToolbarExportContainer.js +2 -2
  142. package/node/components/toolbar/GridToolbarFilterButton.js +4 -3
  143. package/node/components/virtualization/GridMainContainer.js +10 -2
  144. package/node/components/virtualization/GridVirtualScrollbar.js +5 -5
  145. package/node/components/virtualization/GridVirtualScroller.js +36 -16
  146. package/node/components/virtualization/GridVirtualScrollerContent.js +11 -2
  147. package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +6 -4
  148. package/node/hooks/core/useGridStateInitialization.js +3 -2
  149. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -14
  150. package/node/hooks/features/columnResize/useGridColumnResize.js +2 -1
  151. package/node/hooks/features/columns/gridColumnsSelector.js +1 -13
  152. package/node/hooks/features/columns/useGridColumns.js +7 -3
  153. package/node/hooks/features/dimensions/gridDimensionsSelectors.js +38 -2
  154. package/node/hooks/features/dimensions/index.js +13 -11
  155. package/node/hooks/features/dimensions/useGridDimensions.js +99 -74
  156. package/node/hooks/features/editing/gridEditingSelectors.js +12 -2
  157. package/node/hooks/features/editing/index.js +7 -11
  158. package/node/hooks/features/editing/useGridCellEditing.js +2 -2
  159. package/node/hooks/features/editing/useGridRowEditing.js +6 -7
  160. package/node/hooks/features/filter/gridFilterState.js +6 -1
  161. package/node/hooks/features/filter/useGridFilter.js +5 -12
  162. package/node/hooks/features/focus/useGridFocus.js +3 -2
  163. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -15
  164. package/node/hooks/features/keyboardNavigation/utils.js +0 -6
  165. package/node/hooks/features/listView/useGridListView.js +2 -1
  166. package/node/hooks/features/pagination/useGridPagination.js +1 -1
  167. package/node/hooks/features/rowSelection/useGridRowSelection.js +3 -3
  168. package/node/hooks/features/rowSelection/utils.js +1 -1
  169. package/node/hooks/features/rows/gridRowsUtils.js +0 -17
  170. package/node/hooks/features/rows/useGridParamsApi.js +33 -14
  171. package/node/hooks/features/rows/useGridRowSpanning.js +92 -89
  172. package/node/hooks/features/rows/useGridRows.js +7 -8
  173. package/node/hooks/features/rows/useGridRowsMeta.js +36 -19
  174. package/node/hooks/features/sorting/gridSortingSelector.js +10 -9
  175. package/node/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +2 -2
  176. package/node/hooks/features/virtualization/useGridVirtualScroller.js +73 -71
  177. package/node/hooks/utils/useGridSelector.js +42 -8
  178. package/node/hooks/utils/useIsSSR.js +12 -0
  179. package/node/index.js +1 -1
  180. package/node/internals/index.js +20 -7
  181. package/node/models/api/index.js +0 -11
  182. package/node/utils/roundToDecimalPlaces.js +9 -0
  183. package/node/utils/utils.js +8 -1
  184. package/package.json +3 -2
  185. package/utils/roundToDecimalPlaces.d.ts +1 -0
  186. package/utils/roundToDecimalPlaces.js +3 -0
  187. package/utils/utils.d.ts +1 -0
  188. package/utils/utils.js +6 -1
@@ -10,7 +10,6 @@ var _styles = require("@mui/material/styles");
10
10
  var _gridClasses = require("../../constants/gridClasses");
11
11
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
12
12
  var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiContext");
13
- var _gridDimensionsSelectors = require("../../hooks/features/dimensions/gridDimensionsSelectors");
14
13
  function getBorderColor(theme) {
15
14
  if (theme.vars) {
16
15
  return theme.vars.palette.TableCell.border;
@@ -42,53 +41,80 @@ const separatorIconDragStyles = {
42
41
  // Emotion thinks it knows better than us which selector we should use.
43
42
  // https://github.com/emotion-js/emotion/issues/1105#issuecomment-1722524968
44
43
  const ignoreSsrWarning = '/* emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason */';
44
+ const shouldShowBorderTopRightRadiusSelector = state => state.dimensions.hasScrollX && (!state.dimensions.hasScrollY || state.dimensions.scrollbarSize === 0);
45
45
  const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
46
46
  name: 'MuiDataGrid',
47
47
  slot: 'Root',
48
- overridesResolver: (props, styles) => [{
48
+ overridesResolver: (props, styles) => [
49
+ // Root overrides
50
+ styles.root, {
49
51
  [`&.${_gridClasses.gridClasses.autoHeight}`]: styles.autoHeight
50
52
  }, {
51
- [`&.${_gridClasses.gridClasses.aggregationColumnHeader}`]: styles.aggregationColumnHeader
53
+ [`&.${_gridClasses.gridClasses.autosizing}`]: styles.autosizing
52
54
  }, {
53
- [`&.${_gridClasses.gridClasses['aggregationColumnHeader--alignLeft']}`]: styles['aggregationColumnHeader--alignLeft']
55
+ [`&.${_gridClasses.gridClasses['root--densityStandard']}`]: styles['root--densityStandard']
54
56
  }, {
55
- [`&.${_gridClasses.gridClasses['aggregationColumnHeader--alignCenter']}`]: styles['aggregationColumnHeader--alignCenter']
57
+ [`&.${_gridClasses.gridClasses['root--densityComfortable']}`]: styles['root--densityComfortable']
56
58
  }, {
57
- [`&.${_gridClasses.gridClasses['aggregationColumnHeader--alignRight']}`]: styles['aggregationColumnHeader--alignRight']
59
+ [`&.${_gridClasses.gridClasses['root--densityCompact']}`]: styles['root--densityCompact']
58
60
  }, {
59
- [`&.${_gridClasses.gridClasses.aggregationColumnHeaderLabel}`]: styles.aggregationColumnHeaderLabel
61
+ [`&.${_gridClasses.gridClasses['root--disableUserSelection']}`]: styles['root--disableUserSelection']
60
62
  }, {
61
- [`&.${_gridClasses.gridClasses['root--disableUserSelection']} .${_gridClasses.gridClasses.cell}`]: styles['root--disableUserSelection']
63
+ [`&.${_gridClasses.gridClasses['root--noToolbar']}`]: styles['root--noToolbar']
62
64
  }, {
63
- [`&.${_gridClasses.gridClasses.autosizing}`]: styles.autosizing
65
+ [`&.${_gridClasses.gridClasses.withVerticalBorder}`]: styles.withVerticalBorder
66
+ },
67
+ // Child element overrides
68
+ // - Only declare overrides here for class names that are not applied to `styled` components.
69
+ // - For `styled` components, declare overrides in the component itself.
70
+ {
71
+ [`& .${_gridClasses.gridClasses.actionsCell}`]: styles.actionsCell
64
72
  }, {
65
- [`& .${_gridClasses.gridClasses.editBooleanCell}`]: styles.editBooleanCell
73
+ [`& .${_gridClasses.gridClasses.booleanCell}`]: styles.booleanCell
66
74
  }, {
67
75
  [`& .${_gridClasses.gridClasses.cell}`]: styles.cell
76
+ }, {
77
+ [`& .${_gridClasses.gridClasses['cell--editable']}`]: styles['cell--editable']
68
78
  }, {
69
79
  [`& .${_gridClasses.gridClasses['cell--editing']}`]: styles['cell--editing']
70
80
  }, {
71
- [`& .${_gridClasses.gridClasses['cell--textCenter']}`]: styles['cell--textCenter']
81
+ [`& .${_gridClasses.gridClasses['cell--flex']}`]: styles['cell--flex']
72
82
  }, {
73
- [`& .${_gridClasses.gridClasses['cell--textLeft']}`]: styles['cell--textLeft']
83
+ [`& .${_gridClasses.gridClasses['cell--pinnedLeft']}`]: styles['cell--pinnedLeft']
74
84
  }, {
75
- [`& .${_gridClasses.gridClasses['cell--textRight']}`]: styles['cell--textRight']
76
- }, {
77
- [`& .${_gridClasses.gridClasses['cell--rangeTop']}`]: styles['cell--rangeTop']
85
+ [`& .${_gridClasses.gridClasses['cell--pinnedRight']}`]: styles['cell--pinnedRight']
78
86
  }, {
79
87
  [`& .${_gridClasses.gridClasses['cell--rangeBottom']}`]: styles['cell--rangeBottom']
80
88
  }, {
81
89
  [`& .${_gridClasses.gridClasses['cell--rangeLeft']}`]: styles['cell--rangeLeft']
82
90
  }, {
83
91
  [`& .${_gridClasses.gridClasses['cell--rangeRight']}`]: styles['cell--rangeRight']
92
+ }, {
93
+ [`& .${_gridClasses.gridClasses['cell--rangeTop']}`]: styles['cell--rangeTop']
94
+ }, {
95
+ [`& .${_gridClasses.gridClasses['cell--selectionMode']}`]: styles['cell--selectionMode']
96
+ }, {
97
+ [`& .${_gridClasses.gridClasses['cell--textCenter']}`]: styles['cell--textCenter']
98
+ }, {
99
+ [`& .${_gridClasses.gridClasses['cell--textLeft']}`]: styles['cell--textLeft']
100
+ }, {
101
+ [`& .${_gridClasses.gridClasses['cell--textRight']}`]: styles['cell--textRight']
102
+ }, {
103
+ [`& .${_gridClasses.gridClasses['cell--withLeftBorder']}`]: styles['cell--withLeftBorder']
84
104
  }, {
85
105
  [`& .${_gridClasses.gridClasses['cell--withRightBorder']}`]: styles['cell--withRightBorder']
86
106
  }, {
87
107
  [`& .${_gridClasses.gridClasses.cellCheckbox}`]: styles.cellCheckbox
108
+ }, {
109
+ [`& .${_gridClasses.gridClasses.cellEmpty}`]: styles.cellEmpty
110
+ }, {
111
+ [`& .${_gridClasses.gridClasses.cellOffsetLeft}`]: styles.cellOffsetLeft
88
112
  }, {
89
113
  [`& .${_gridClasses.gridClasses.cellSkeleton}`]: styles.cellSkeleton
90
114
  }, {
91
115
  [`& .${_gridClasses.gridClasses.checkboxInput}`]: styles.checkboxInput
116
+ }, {
117
+ [`& .${_gridClasses.gridClasses.columnHeader}`]: styles.columnHeader
92
118
  }, {
93
119
  [`& .${_gridClasses.gridClasses['columnHeader--alignCenter']}`]: styles['columnHeader--alignCenter']
94
120
  }, {
@@ -97,80 +123,156 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
97
123
  [`& .${_gridClasses.gridClasses['columnHeader--alignRight']}`]: styles['columnHeader--alignRight']
98
124
  }, {
99
125
  [`& .${_gridClasses.gridClasses['columnHeader--dragging']}`]: styles['columnHeader--dragging']
126
+ }, {
127
+ [`& .${_gridClasses.gridClasses['columnHeader--emptyGroup']}`]: styles['columnHeader--emptyGroup']
128
+ }, {
129
+ [`& .${_gridClasses.gridClasses['columnHeader--filledGroup']}`]: styles['columnHeader--filledGroup']
130
+ }, {
131
+ [`& .${_gridClasses.gridClasses['columnHeader--filtered']}`]: styles['columnHeader--filtered']
132
+ }, {
133
+ [`& .${_gridClasses.gridClasses['columnHeader--last']}`]: styles['columnHeader--last']
134
+ }, {
135
+ [`& .${_gridClasses.gridClasses['columnHeader--lastUnpinned']}`]: styles['columnHeader--lastUnpinned']
100
136
  }, {
101
137
  [`& .${_gridClasses.gridClasses['columnHeader--moving']}`]: styles['columnHeader--moving']
102
138
  }, {
103
139
  [`& .${_gridClasses.gridClasses['columnHeader--numeric']}`]: styles['columnHeader--numeric']
140
+ }, {
141
+ [`& .${_gridClasses.gridClasses['columnHeader--pinnedLeft']}`]: styles['columnHeader--pinnedLeft']
142
+ }, {
143
+ [`& .${_gridClasses.gridClasses['columnHeader--pinnedRight']}`]: styles['columnHeader--pinnedRight']
144
+ }, {
145
+ [`& .${_gridClasses.gridClasses['columnHeader--siblingFocused']}`]: styles['columnHeader--siblingFocused']
104
146
  }, {
105
147
  [`& .${_gridClasses.gridClasses['columnHeader--sortable']}`]: styles['columnHeader--sortable']
106
148
  }, {
107
149
  [`& .${_gridClasses.gridClasses['columnHeader--sorted']}`]: styles['columnHeader--sorted']
108
150
  }, {
109
- [`& .${_gridClasses.gridClasses['columnHeader--withRightBorder']}`]: styles['columnHeader--withRightBorder']
110
- }, {
111
- [`& .${_gridClasses.gridClasses.columnHeader}`]: styles.columnHeader
151
+ [`& .${_gridClasses.gridClasses['columnHeader--withLeftBorder']}`]: styles['columnHeader--withLeftBorder']
112
152
  }, {
113
- [`& .${_gridClasses.gridClasses.headerFilterRow}`]: styles.headerFilterRow
153
+ [`& .${_gridClasses.gridClasses['columnHeader--withRightBorder']}`]: styles['columnHeader--withRightBorder']
114
154
  }, {
115
155
  [`& .${_gridClasses.gridClasses.columnHeaderCheckbox}`]: styles.columnHeaderCheckbox
116
156
  }, {
117
157
  [`& .${_gridClasses.gridClasses.columnHeaderDraggableContainer}`]: styles.columnHeaderDraggableContainer
118
158
  }, {
119
159
  [`& .${_gridClasses.gridClasses.columnHeaderTitleContainer}`]: styles.columnHeaderTitleContainer
160
+ }, {
161
+ [`& .${_gridClasses.gridClasses.columnHeaderTitleContainerContent}`]: styles.columnHeaderTitleContainerContent
162
+ }, {
163
+ [`& .${_gridClasses.gridClasses.columnSeparator}`]: styles.columnSeparator
120
164
  }, {
121
165
  [`& .${_gridClasses.gridClasses['columnSeparator--resizable']}`]: styles['columnSeparator--resizable']
122
166
  }, {
123
167
  [`& .${_gridClasses.gridClasses['columnSeparator--resizing']}`]: styles['columnSeparator--resizing']
124
168
  }, {
125
- [`& .${_gridClasses.gridClasses.columnSeparator}`]: styles.columnSeparator
169
+ [`& .${_gridClasses.gridClasses['columnSeparator--sideLeft']}`]: styles['columnSeparator--sideLeft']
170
+ }, {
171
+ [`& .${_gridClasses.gridClasses['columnSeparator--sideRight']}`]: styles['columnSeparator--sideRight']
172
+ }, {
173
+ [`& .${_gridClasses.gridClasses['container--bottom']}`]: styles['container--bottom']
174
+ }, {
175
+ [`& .${_gridClasses.gridClasses['container--top']}`]: styles['container--top']
176
+ }, {
177
+ [`& .${_gridClasses.gridClasses.detailPanelToggleCell}`]: styles.detailPanelToggleCell
178
+ }, {
179
+ [`& .${_gridClasses.gridClasses['detailPanelToggleCell--expanded']}`]: styles['detailPanelToggleCell--expanded']
180
+ }, {
181
+ [`& .${_gridClasses.gridClasses.editBooleanCell}`]: styles.editBooleanCell
126
182
  }, {
127
183
  [`& .${_gridClasses.gridClasses.filterIcon}`]: styles.filterIcon
184
+ }, {
185
+ [`& .${_gridClasses.gridClasses['filler--borderBottom']}`]: styles['filler--borderBottom']
186
+ }, {
187
+ [`& .${_gridClasses.gridClasses['filler--pinnedLeft']}`]: styles['filler--pinnedLeft']
188
+ }, {
189
+ [`& .${_gridClasses.gridClasses['filler--pinnedRight']}`]: styles['filler--pinnedRight']
190
+ }, {
191
+ [`& .${_gridClasses.gridClasses.groupingCriteriaCell}`]: styles.groupingCriteriaCell
192
+ }, {
193
+ [`& .${_gridClasses.gridClasses.groupingCriteriaCellLoadingContainer}`]: styles.groupingCriteriaCellLoadingContainer
194
+ }, {
195
+ [`& .${_gridClasses.gridClasses.groupingCriteriaCellToggle}`]: styles.groupingCriteriaCellToggle
196
+ }, {
197
+ [`& .${_gridClasses.gridClasses.headerFilterRow}`]: styles.headerFilterRow
128
198
  }, {
129
199
  [`& .${_gridClasses.gridClasses.iconSeparator}`]: styles.iconSeparator
130
200
  }, {
131
201
  [`& .${_gridClasses.gridClasses.menuIcon}`]: styles.menuIcon
132
202
  }, {
133
203
  [`& .${_gridClasses.gridClasses.menuIconButton}`]: styles.menuIconButton
204
+ }, {
205
+ [`& .${_gridClasses.gridClasses.menuList}`]: styles.menuList
134
206
  }, {
135
207
  [`& .${_gridClasses.gridClasses.menuOpen}`]: styles.menuOpen
136
208
  }, {
137
- [`& .${_gridClasses.gridClasses.menuList}`]: styles.menuList
209
+ [`& .${_gridClasses.gridClasses.overlayWrapperInner}`]: styles.overlayWrapperInner
138
210
  }, {
139
- [`& .${_gridClasses.gridClasses['row--editable']}`]: styles['row--editable']
211
+ [`& .${_gridClasses.gridClasses.pinnedRows}`]: styles.pinnedRows
140
212
  }, {
141
- [`& .${_gridClasses.gridClasses['row--editing']}`]: styles['row--editing']
213
+ [`& .${_gridClasses.gridClasses['pinnedRows--bottom']}`]: styles['pinnedRows--bottom']
142
214
  }, {
143
- [`& .${_gridClasses.gridClasses['row--dragging']}`]: styles['row--dragging']
215
+ [`& .${_gridClasses.gridClasses['pinnedRows--top']}`]: styles['pinnedRows--top']
144
216
  }, {
145
217
  [`& .${_gridClasses.gridClasses.row}`]: styles.row
146
218
  }, {
147
- [`& .${_gridClasses.gridClasses.rowReorderCellPlaceholder}`]: styles.rowReorderCellPlaceholder
219
+ [`& .${_gridClasses.gridClasses['row--borderBottom']}`]: styles['row--borderBottom']
220
+ }, {
221
+ [`& .${_gridClasses.gridClasses['row--detailPanelExpanded']}`]: styles['row--detailPanelExpanded']
222
+ }, {
223
+ [`& .${_gridClasses.gridClasses['row--dragging']}`]: styles['row--dragging']
224
+ }, {
225
+ [`& .${_gridClasses.gridClasses['row--dynamicHeight']}`]: styles['row--dynamicHeight']
226
+ }, {
227
+ [`& .${_gridClasses.gridClasses['row--editable']}`]: styles['row--editable']
228
+ }, {
229
+ [`& .${_gridClasses.gridClasses['row--editing']}`]: styles['row--editing']
230
+ }, {
231
+ [`& .${_gridClasses.gridClasses['row--firstVisible']}`]: styles['row--firstVisible']
232
+ }, {
233
+ [`& .${_gridClasses.gridClasses['row--lastVisible']}`]: styles['row--lastVisible']
148
234
  }, {
149
235
  [`& .${_gridClasses.gridClasses.rowReorderCell}`]: styles.rowReorderCell
150
236
  }, {
151
237
  [`& .${_gridClasses.gridClasses['rowReorderCell--draggable']}`]: styles['rowReorderCell--draggable']
152
238
  }, {
153
- [`& .${_gridClasses.gridClasses.sortIcon}`]: styles.sortIcon
239
+ [`& .${_gridClasses.gridClasses.rowReorderCellContainer}`]: styles.rowReorderCellContainer
154
240
  }, {
155
- [`& .${_gridClasses.gridClasses.withBorderColor}`]: styles.withBorderColor
241
+ [`& .${_gridClasses.gridClasses.rowReorderCellPlaceholder}`]: styles.rowReorderCellPlaceholder
156
242
  }, {
157
- [`& .${_gridClasses.gridClasses.treeDataGroupingCell}`]: styles.treeDataGroupingCell
243
+ [`& .${_gridClasses.gridClasses.rowSkeleton}`]: styles.rowSkeleton
158
244
  }, {
159
- [`& .${_gridClasses.gridClasses.treeDataGroupingCellToggle}`]: styles.treeDataGroupingCellToggle
245
+ [`& .${_gridClasses.gridClasses.scrollbar}`]: styles.scrollbar
160
246
  }, {
161
- [`& .${_gridClasses.gridClasses.treeDataGroupingCellLoadingContainer}`]: styles.treeDataGroupingCellLoadingContainer
247
+ [`& .${_gridClasses.gridClasses['scrollbar--horizontal']}`]: styles['scrollbar--horizontal']
162
248
  }, {
163
- [`& .${_gridClasses.gridClasses.groupingCriteriaCellLoadingContainer}`]: styles.groupingCriteriaCellLoadingContainer
249
+ [`& .${_gridClasses.gridClasses['scrollbar--vertical']}`]: styles['scrollbar--vertical']
164
250
  }, {
165
- [`& .${_gridClasses.gridClasses.detailPanelToggleCell}`]: styles.detailPanelToggleCell
251
+ [`& .${_gridClasses.gridClasses.scrollbarFiller}`]: styles.scrollbarFiller
166
252
  }, {
167
- [`& .${_gridClasses.gridClasses['detailPanelToggleCell--expanded']}`]: styles['detailPanelToggleCell--expanded']
168
- }, styles.root]
253
+ [`& .${_gridClasses.gridClasses['scrollbarFiller--borderBottom']}`]: styles['scrollbarFiller--borderBottom']
254
+ }, {
255
+ [`& .${_gridClasses.gridClasses['scrollbarFiller--borderTop']}`]: styles['scrollbarFiller--borderTop']
256
+ }, {
257
+ [`& .${_gridClasses.gridClasses['scrollbarFiller--header']}`]: styles['scrollbarFiller--header']
258
+ }, {
259
+ [`& .${_gridClasses.gridClasses['scrollbarFiller--pinnedRight']}`]: styles['scrollbarFiller--pinnedRight']
260
+ }, {
261
+ [`& .${_gridClasses.gridClasses.sortIcon}`]: styles.sortIcon
262
+ }, {
263
+ [`& .${_gridClasses.gridClasses.treeDataGroupingCell}`]: styles.treeDataGroupingCell
264
+ }, {
265
+ [`& .${_gridClasses.gridClasses.treeDataGroupingCellLoadingContainer}`]: styles.treeDataGroupingCellLoadingContainer
266
+ }, {
267
+ [`& .${_gridClasses.gridClasses.treeDataGroupingCellToggle}`]: styles.treeDataGroupingCellToggle
268
+ }, {
269
+ [`& .${_gridClasses.gridClasses.withBorderColor}`]: styles.withBorderColor
270
+ }]
169
271
  })(({
170
272
  theme: t
171
273
  }) => {
172
274
  const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
173
- const dimensions = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridDimensionsSelector);
275
+ const shouldShowBorderTopRightRadius = (0, _useGridSelector.useGridSelector)(apiRef, shouldShowBorderTopRightRadiusSelector);
174
276
  const borderColor = getBorderColor(t);
175
277
  const radius = t.shape.borderRadius;
176
278
  const containerBackground = t.vars ? t.vars.palette.background.default : t.mixins.MuiDataGrid?.containerBackground ?? t.palette.background.default;
@@ -262,10 +364,6 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
262
364
  overflow: 'visible !important'
263
365
  },
264
366
  '@media (hover: hover)': {
265
- [`& .${_gridClasses.gridClasses.iconButtonContainer}`]: {
266
- width: '0 !important',
267
- visibility: 'hidden !important'
268
- },
269
367
  [`& .${_gridClasses.gridClasses.menuIcon}`]: {
270
368
  width: '0 !important',
271
369
  visibility: 'hidden !important'
@@ -326,7 +424,7 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
326
424
  borderTopLeftRadius: 'calc(var(--unstable_DataGrid-radius) - 1px)'
327
425
  },
328
426
  [`&.${_gridClasses.gridClasses['root--noToolbar']} [aria-rowindex="1"] .${_gridClasses.gridClasses['columnHeader--last']}`]: {
329
- borderTopRightRadius: dimensions.hasScrollX && (!dimensions.hasScrollY || dimensions.scrollbarSize === 0) ? 'calc(var(--unstable_DataGrid-radius) - 1px)' : undefined
427
+ borderTopRightRadius: shouldShowBorderTopRightRadius ? 'calc(var(--unstable_DataGrid-radius) - 1px)' : undefined
330
428
  },
331
429
  [`& .${_gridClasses.gridClasses.columnHeaderCheckbox}, & .${_gridClasses.gridClasses.cellCheckbox}`]: {
332
430
  padding: 0,
@@ -53,14 +53,15 @@ const GridToolbarColumnsButton = exports.GridToolbarColumnsButton = (0, _forward
53
53
  "aria-haspopup": "menu",
54
54
  "aria-expanded": isOpen,
55
55
  "aria-controls": isOpen ? columnPanelId : undefined,
56
- startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnSelectorIcon, {}),
57
- onClick: showColumns,
56
+ startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnSelectorIcon, {})
57
+ }, rootProps.slotProps?.baseButton, buttonProps, {
58
58
  onPointerUp: event => {
59
59
  if (preferencePanel.open) {
60
60
  event.stopPropagation();
61
61
  }
62
- }
63
- }, rootProps.slotProps?.baseButton, buttonProps, {
62
+ buttonProps.onPointerUp?.(event);
63
+ },
64
+ onClick: showColumns,
64
65
  ref: ref,
65
66
  children: apiRef.current.getLocaleText('toolbarColumns')
66
67
  }))
@@ -102,9 +102,9 @@ const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = (0, _for
102
102
  "aria-haspopup": "menu",
103
103
  "aria-expanded": open,
104
104
  "aria-controls": open ? densityMenuId : undefined,
105
- id: densityButtonId,
106
- onClick: handleDensitySelectorOpen
105
+ id: densityButtonId
107
106
  }, rootProps.slotProps?.baseButton, buttonProps, {
107
+ onClick: handleDensitySelectorOpen,
108
108
  ref: handleRef,
109
109
  children: apiRef.current.getLocaleText('toolbarDensity')
110
110
  }))
@@ -60,9 +60,9 @@ const GridToolbarExportContainer = exports.GridToolbarExportContainer = (0, _for
60
60
  "aria-label": apiRef.current.getLocaleText('toolbarExportLabel'),
61
61
  "aria-haspopup": "menu",
62
62
  "aria-controls": open ? exportMenuId : undefined,
63
- id: exportButtonId,
64
- onClick: handleMenuOpen
63
+ id: exportButtonId
65
64
  }, rootProps.slotProps?.baseButton, buttonProps, {
65
+ onClick: handleMenuOpen,
66
66
  ref: handleRef,
67
67
  children: apiRef.current.getLocaleText('toolbarExport')
68
68
  }))
@@ -117,14 +117,15 @@ const GridToolbarFilterButton = exports.GridToolbarFilterButton = (0, _forwardRe
117
117
  color: "primary"
118
118
  }, rootProps.slotProps?.baseBadge, badgeProps, {
119
119
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.openFilterButtonIcon, {})
120
- })),
120
+ }))
121
+ }, rootProps.slotProps?.baseButton, buttonProps, {
121
122
  onClick: toggleFilter,
122
123
  onPointerUp: event => {
123
124
  if (preferencePanel.open) {
124
125
  event.stopPropagation();
125
126
  }
126
- }
127
- }, rootProps.slotProps?.baseButton, buttonProps, {
127
+ buttonProps.onPointerUp?.(event);
128
+ },
128
129
  ref: ref,
129
130
  children: apiRef.current.getLocaleText('toolbarFilters')
130
131
  }))
@@ -22,7 +22,12 @@ const GridPanelAnchor = (0, _system.styled)('div')({
22
22
  const Element = (0, _system.styled)('div', {
23
23
  name: 'MuiDataGrid',
24
24
  slot: 'Main',
25
- overridesResolver: (props, styles) => styles.main
25
+ overridesResolver: (props, styles) => {
26
+ const {
27
+ ownerState
28
+ } = props;
29
+ return [styles.main, ownerState.hasPinnedRight && styles['main--hasPinnedRight'], ownerState.loadingOverlayVariant === 'skeleton' && styles['main--hasSkeletonLoadingOverlay']];
30
+ }
26
31
  })({
27
32
  flexGrow: 1,
28
33
  position: 'relative',
@@ -31,11 +36,14 @@ const Element = (0, _system.styled)('div', {
31
36
  flexDirection: 'column'
32
37
  });
33
38
  const GridMainContainer = exports.GridMainContainer = (0, _forwardRef.forwardRef)((props, ref) => {
39
+ const {
40
+ ownerState
41
+ } = props;
34
42
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
35
43
  const configuration = (0, _useGridConfiguration.useGridConfiguration)();
36
44
  const ariaAttributes = configuration.hooks.useGridAriaAttributes();
37
45
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Element, (0, _extends2.default)({
38
- ownerState: rootProps,
46
+ ownerState: ownerState,
39
47
  className: props.className,
40
48
  tabIndex: -1
41
49
  }, ariaAttributes, rootProps.slotProps?.main, {
@@ -74,26 +74,27 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = (0, _forwardRef.forw
74
74
  const dimensions = (0, _hooks.useGridSelector)(apiRef, _hooks.gridDimensionsSelector);
75
75
  const propertyDimension = props.position === 'vertical' ? 'height' : 'width';
76
76
  const propertyScroll = props.position === 'vertical' ? 'scrollTop' : 'scrollLeft';
77
+ const propertyScrollPosition = props.position === 'vertical' ? 'top' : 'left';
77
78
  const hasScroll = props.position === 'vertical' ? dimensions.hasScrollX : dimensions.hasScrollY;
78
79
  const contentSize = dimensions.minimumSize[propertyDimension] + (hasScroll ? dimensions.scrollbarSize : 0);
79
80
  const scrollbarSize = props.position === 'vertical' ? dimensions.viewportInnerSize.height : dimensions.viewportOuterSize.width;
80
81
  const scrollbarInnerSize = scrollbarSize * (contentSize / dimensions.viewportOuterSize[propertyDimension]);
81
82
  const onScrollerScroll = (0, _utils.unstable_useEventCallback)(() => {
82
- const scroller = apiRef.current.virtualScrollerRef.current;
83
83
  const scrollbar = scrollbarRef.current;
84
+ const scrollPosition = props.scrollPosition.current;
84
85
  if (!scrollbar) {
85
86
  return;
86
87
  }
87
- if (scroller[propertyScroll] === lastPosition.current) {
88
+ if (scrollPosition[propertyScrollPosition] === lastPosition.current) {
88
89
  return;
89
90
  }
90
- lastPosition.current = scroller[propertyScroll];
91
+ lastPosition.current = scrollPosition[propertyScrollPosition];
91
92
  if (isLocked.current) {
92
93
  isLocked.current = false;
93
94
  return;
94
95
  }
95
96
  isLocked.current = true;
96
- const value = scroller[propertyScroll] / contentSize;
97
+ const value = scrollPosition[propertyScrollPosition] / contentSize;
97
98
  scrollbar[propertyScroll] = value * scrollbarInnerSize;
98
99
  });
99
100
  const onScrollbarScroll = (0, _utils.unstable_useEventCallback)(() => {
@@ -114,7 +115,6 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = (0, _forwardRef.forw
114
115
  const scroller = apiRef.current.virtualScrollerRef.current;
115
116
  const scrollbar = scrollbarRef.current;
116
117
  const options = {
117
- capture: true,
118
118
  passive: true
119
119
  };
120
120
  scroller.addEventListener('scroll', onScrollerScroll, options);
@@ -10,12 +10,12 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _system = require("@mui/system");
12
12
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
13
+ var _gridDimensionsSelectors = require("../../hooks/features/dimensions/gridDimensionsSelectors");
13
14
  var _GridScrollArea = require("../GridScrollArea");
14
15
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
15
16
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
16
17
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
17
18
  var _gridClasses = require("../../constants/gridClasses");
18
- var _dimensions = require("../../hooks/features/dimensions");
19
19
  var _useGridVirtualScroller = require("../../hooks/features/virtualization/useGridVirtualScroller");
20
20
  var _useGridOverlays = require("../../hooks/features/overlays/useGridOverlays");
21
21
  var _GridOverlays = require("../base/GridOverlays");
@@ -28,20 +28,28 @@ var _GridVirtualScrollerFiller = require("./GridVirtualScrollerFiller");
28
28
  var _GridVirtualScrollerRenderZone = require("./GridVirtualScrollerRenderZone");
29
29
  var _GridVirtualScrollbar = require("./GridVirtualScrollbar");
30
30
  var _jsxRuntime = require("react/jsx-runtime");
31
- const useUtilityClasses = (ownerState, dimensions, loadingOverlayVariant) => {
31
+ const useUtilityClasses = ownerState => {
32
32
  const {
33
- classes
33
+ classes,
34
+ hasScrollX,
35
+ hasPinnedRight,
36
+ loadingOverlayVariant
34
37
  } = ownerState;
35
38
  const slots = {
36
- root: ['main', dimensions.rightPinnedWidth > 0 && 'main--hasPinnedRight', loadingOverlayVariant === 'skeleton' && 'main--hasSkeletonLoadingOverlay'],
37
- scroller: ['virtualScroller', dimensions.hasScrollX && 'virtualScroller--hasScrollX']
39
+ root: ['main', hasPinnedRight && 'main--hasPinnedRight', loadingOverlayVariant === 'skeleton' && 'main--hasSkeletonLoadingOverlay'],
40
+ scroller: ['virtualScroller', hasScrollX && 'virtualScroller--hasScrollX']
38
41
  };
39
42
  return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
40
43
  };
41
44
  const Scroller = (0, _system.styled)('div', {
42
45
  name: 'MuiDataGrid',
43
46
  slot: 'VirtualScroller',
44
- overridesResolver: (props, styles) => styles.virtualScroller
47
+ overridesResolver: (props, styles) => {
48
+ const {
49
+ ownerState
50
+ } = props;
51
+ return [styles.virtualScroller, ownerState.hasScrollX && styles['virtualScroller--hasScrollX']];
52
+ }
45
53
  })({
46
54
  position: 'relative',
47
55
  height: '100%',
@@ -59,12 +67,22 @@ const Scroller = (0, _system.styled)('div', {
59
67
  // See https://github.com/mui/mui-x/issues/10547
60
68
  zIndex: 0
61
69
  });
70
+ const hasPinnedRightSelector = state => state.dimensions.rightPinnedWidth > 0;
62
71
  function GridVirtualScroller(props) {
63
72
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
64
73
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
65
- const dimensions = (0, _useGridSelector.useGridSelector)(apiRef, _dimensions.gridDimensionsSelector);
74
+ const hasScrollY = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridHasScrollYSelector);
75
+ const hasScrollX = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridHasScrollXSelector);
76
+ const hasPinnedRight = (0, _useGridSelector.useGridSelector)(apiRef, hasPinnedRightSelector);
77
+ const hasBottomFiller = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridHasBottomFillerSelector);
66
78
  const overlaysProps = (0, _useGridOverlays.useGridOverlays)();
67
- const classes = useUtilityClasses(rootProps, dimensions, overlaysProps.loadingOverlayVariant);
79
+ const ownerState = {
80
+ classes: rootProps.classes,
81
+ hasScrollX,
82
+ hasPinnedRight,
83
+ loadingOverlayVariant: overlaysProps.loadingOverlayVariant
84
+ };
85
+ const classes = useUtilityClasses(ownerState);
68
86
  const virtualScroller = (0, _useGridVirtualScroller.useGridVirtualScroller)();
69
87
  const {
70
88
  getContainerProps,
@@ -73,20 +91,22 @@ function GridVirtualScroller(props) {
73
91
  getRenderZoneProps,
74
92
  getScrollbarVerticalProps,
75
93
  getScrollbarHorizontalProps,
76
- getRows
94
+ getRows,
95
+ getScrollAreaProps
77
96
  } = virtualScroller;
78
97
  const rows = getRows();
79
98
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridMainContainer.GridMainContainer, (0, _extends2.default)({
80
99
  className: classes.root
81
100
  }, getContainerProps(), {
82
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, {
101
+ ownerState: ownerState,
102
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, (0, _extends2.default)({
83
103
  scrollDirection: "left"
84
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, {
104
+ }, getScrollAreaProps())), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, (0, _extends2.default)({
85
105
  scrollDirection: "right"
86
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Scroller, (0, _extends2.default)({
106
+ }, getScrollAreaProps())), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Scroller, (0, _extends2.default)({
87
107
  className: classes.scroller
88
108
  }, getScrollerProps(), {
89
- ownerState: rootProps,
109
+ ownerState: ownerState,
90
110
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridTopContainer.GridTopContainer, {
91
111
  children: [!rootProps.unstable_listView && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridHeaders.GridHeaders, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.pinnedRows, {
92
112
  position: "top",
@@ -98,7 +118,7 @@ function GridVirtualScroller(props) {
98
118
  virtualScroller: virtualScroller
99
119
  })]
100
120
  }))
101
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerFiller.GridVirtualScrollerFiller, {
121
+ })), hasBottomFiller && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerFiller.GridVirtualScrollerFiller, {
102
122
  rowsLength: rows.length
103
123
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridBottomContainer.GridBottomContainer, {
104
124
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.pinnedRows, {
@@ -106,9 +126,9 @@ function GridVirtualScroller(props) {
106
126
  virtualScroller: virtualScroller
107
127
  })
108
128
  })]
109
- })), dimensions.hasScrollX && !rootProps.unstable_listView && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
129
+ })), hasScrollX && !rootProps.unstable_listView && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
110
130
  position: "horizontal"
111
- }, getScrollbarHorizontalProps())), dimensions.hasScrollY && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
131
+ }, getScrollbarHorizontalProps())), hasScrollY && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
112
132
  position: "vertical"
113
133
  }, getScrollbarVerticalProps())), props.children]
114
134
  }));
@@ -27,14 +27,23 @@ const useUtilityClasses = (props, overflowedContent) => {
27
27
  const VirtualScrollerContentRoot = (0, _system.styled)('div', {
28
28
  name: 'MuiDataGrid',
29
29
  slot: 'VirtualScrollerContent',
30
- overridesResolver: (props, styles) => styles.virtualScrollerContent
30
+ overridesResolver: (props, styles) => {
31
+ const {
32
+ ownerState
33
+ } = props;
34
+ return [styles.virtualScrollerContent, ownerState.overflowedContent && styles['virtualScrollerContent--overflowed']];
35
+ }
31
36
  })({});
32
37
  const GridVirtualScrollerContent = exports.GridVirtualScrollerContent = (0, _forwardRef.forwardRef)(function GridVirtualScrollerContent(props, ref) {
33
38
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
34
39
  const overflowedContent = !rootProps.autoHeight && props.style?.minHeight === 'auto';
35
40
  const classes = useUtilityClasses(rootProps, overflowedContent);
41
+ const ownerState = {
42
+ classes: rootProps.classes,
43
+ overflowedContent
44
+ };
36
45
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(VirtualScrollerContentRoot, (0, _extends2.default)({}, props, {
37
- ownerState: rootProps,
46
+ ownerState: ownerState,
38
47
  className: (0, _clsx.default)(classes.root, props.className),
39
48
  ref: ref
40
49
  }));
@@ -7,20 +7,22 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.useGridRegisterPipeProcessor = void 0;
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
  var _useFirstRender = require("../../utils/useFirstRender");
10
- const useGridRegisterPipeProcessor = (apiRef, group, callback) => {
10
+ const useGridRegisterPipeProcessor = (apiRef, group, callback, enabled = true) => {
11
11
  const cleanup = React.useRef(null);
12
12
  const id = React.useRef(`mui-${Math.round(Math.random() * 1e9)}`);
13
13
  const registerPreProcessor = React.useCallback(() => {
14
14
  cleanup.current = apiRef.current.registerPipeProcessor(group, id.current, callback);
15
15
  }, [apiRef, callback, group]);
16
16
  (0, _useFirstRender.useFirstRender)(() => {
17
- registerPreProcessor();
17
+ if (enabled) {
18
+ registerPreProcessor();
19
+ }
18
20
  });
19
21
  const isFirstRender = React.useRef(true);
20
22
  React.useEffect(() => {
21
23
  if (isFirstRender.current) {
22
24
  isFirstRender.current = false;
23
- } else {
25
+ } else if (enabled) {
24
26
  registerPreProcessor();
25
27
  }
26
28
  return () => {
@@ -29,6 +31,6 @@ const useGridRegisterPipeProcessor = (apiRef, group, callback) => {
29
31
  cleanup.current = null;
30
32
  }
31
33
  };
32
- }, [registerPreProcessor]);
34
+ }, [registerPreProcessor, enabled]);
33
35
  };
34
36
  exports.useGridRegisterPipeProcessor = useGridRegisterPipeProcessor;
@@ -12,7 +12,6 @@ var _utils = require("../utils");
12
12
  var _utils2 = require("../../utils/utils");
13
13
  const useGridStateInitialization = apiRef => {
14
14
  const controlStateMapRef = React.useRef({});
15
- const [, rawForceUpdate] = React.useState();
16
15
  const registerControlState = React.useCallback(controlStateItem => {
17
16
  controlStateMapRef.current[controlStateItem.stateId] = controlStateItem;
18
17
  }, []);
@@ -87,7 +86,9 @@ const useGridStateInitialization = apiRef => {
87
86
  });
88
87
  }, reason);
89
88
  }, [apiRef]);
90
- const forceUpdate = React.useCallback(() => rawForceUpdate(() => apiRef.current.state), [apiRef]);
89
+ const forceUpdate = React.useCallback(() => {
90
+ // @deprecated - do nothing
91
+ }, []);
91
92
  const publicStateApi = {
92
93
  setState,
93
94
  forceUpdate