@mui/x-data-grid 9.0.4 → 9.2.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.
- package/CHANGELOG.md +236 -0
- package/LICENSE +2 -0
- package/components/base/GridOverlays.js +1 -2
- package/components/base/GridOverlays.mjs +1 -2
- package/components/virtualization/GridVirtualScroller.js +12 -8
- package/components/virtualization/GridVirtualScroller.mjs +12 -8
- package/hooks/features/filter/gridFilterSelector.js +2 -1
- package/hooks/features/filter/gridFilterSelector.mjs +2 -1
- package/hooks/features/rows/gridRowsUtils.js +3 -1
- package/hooks/features/rows/gridRowsUtils.mjs +3 -1
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/locales/itIT.js +18 -19
- package/locales/itIT.mjs +18 -19
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,241 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 9.2.0
|
|
4
|
+
|
|
5
|
+
_May 13, 2026_
|
|
6
|
+
|
|
7
|
+
We'd like to extend a big thank you to the 9 contributors who made this release possible. Here are some highlights ✨:
|
|
8
|
+
|
|
9
|
+
- ⚡️ Add a WebGL renderer to the [Bar chart](https://mui.com/x/react-charts/bars/#webgl-renderer)
|
|
10
|
+
- 📊 Add a radial charts with the [radial line](https://mui.com/x/react-charts/radial-lines/), [radial bar](https://mui.com/x/react-charts/radial-bars/), and the [radial grid and axes](https://mui.com/x/react-charts/radial-axes/)
|
|
11
|
+
- 🐞 Bugfixes
|
|
12
|
+
- 📚 Documentation improvements
|
|
13
|
+
|
|
14
|
+
Special thanks go out to these community members for their valuable contributions:
|
|
15
|
+
@Anexus5919, @mustafajw07
|
|
16
|
+
|
|
17
|
+
The following team members contributed to this release:
|
|
18
|
+
@aemartos, @alexfauquette, @bernardobelchior, @JCQuintas, @oliviertassinari, @sai6855, @siriwatknp
|
|
19
|
+
|
|
20
|
+
### Data Grid
|
|
21
|
+
|
|
22
|
+
#### `@mui/x-data-grid@9.2.0`
|
|
23
|
+
|
|
24
|
+
- [data grid] Add support for pinned columns in `GridVirtualScroller` (#22347) @sai6855
|
|
25
|
+
- [data grid] Remove unused CSS (#22390) @oliviertassinari
|
|
26
|
+
|
|
27
|
+
#### `@mui/x-data-grid-pro@9.2.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
28
|
+
|
|
29
|
+
Same changes as in `@mui/x-data-grid@9.2.0`.
|
|
30
|
+
|
|
31
|
+
#### `@mui/x-data-grid-premium@9.2.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
32
|
+
|
|
33
|
+
Same changes as in `@mui/x-data-grid-pro@9.2.0`.
|
|
34
|
+
|
|
35
|
+
### Date and Time Pickers
|
|
36
|
+
|
|
37
|
+
#### `@mui/x-date-pickers@9.2.0`
|
|
38
|
+
|
|
39
|
+
- [pickers] Trim test helpers' default load graph (#22421) @JCQuintas
|
|
40
|
+
|
|
41
|
+
#### `@mui/x-date-pickers-pro@9.2.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
42
|
+
|
|
43
|
+
Same changes as in `@mui/x-date-pickers@9.2.0`.
|
|
44
|
+
|
|
45
|
+
### Charts
|
|
46
|
+
|
|
47
|
+
#### `@mui/x-charts@9.2.0`
|
|
48
|
+
|
|
49
|
+
Internal changes.
|
|
50
|
+
|
|
51
|
+
#### `@mui/x-charts-pro@9.2.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
52
|
+
|
|
53
|
+
Same changes as in `@mui/x-charts@9.2.0`.
|
|
54
|
+
|
|
55
|
+
#### `@mui/x-charts-premium@9.2.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
56
|
+
|
|
57
|
+
Same changes as in `@mui/x-charts-pro@9.2.0`, plus:
|
|
58
|
+
|
|
59
|
+
- [charts-premium] Add `Highlight` support to `RadialBarChart` (#22322) @alexfauquette
|
|
60
|
+
- [charts-premium] Add `WebGL` renderer to `BarChartPremium` (#22354) @JCQuintas
|
|
61
|
+
- [charts-premium] Add mark shape support to the radial line (#22242) @alexfauquette
|
|
62
|
+
- [charts-premium] `RadialBarChart` support axis interaction with layout horizontal (#22319) @alexfauquette
|
|
63
|
+
|
|
64
|
+
### Tree View
|
|
65
|
+
|
|
66
|
+
#### `@mui/x-tree-view@9.1.0`
|
|
67
|
+
|
|
68
|
+
Internal changes.
|
|
69
|
+
|
|
70
|
+
#### `@mui/x-tree-view-pro@9.1.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
71
|
+
|
|
72
|
+
Same changes as in `@mui/x-tree-view@9.1.0`.
|
|
73
|
+
|
|
74
|
+
### Scheduler
|
|
75
|
+
|
|
76
|
+
#### `@mui/x-scheduler@9.0.0-alpha.6`
|
|
77
|
+
|
|
78
|
+
- [scheduler] Complete ARIA grid semantics on `EventTimeline` and `EventCalendar` (#22266) @Anexus5919
|
|
79
|
+
- [scheduler] Improve UX for recurrence tab (#22287) @mustafajw07
|
|
80
|
+
|
|
81
|
+
#### `@mui/x-scheduler-premium@9.0.0-alpha.6` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
82
|
+
|
|
83
|
+
Same changes as in `@mui/x-scheduler@9.0.0-alpha.6`.
|
|
84
|
+
|
|
85
|
+
### Codemod
|
|
86
|
+
|
|
87
|
+
#### `@mui/x-codemod@9.1.0`
|
|
88
|
+
|
|
89
|
+
Internal changes.
|
|
90
|
+
|
|
91
|
+
### Docs
|
|
92
|
+
|
|
93
|
+
- [docs] Document the `RadialBarChart` (#22320) @alexfauquette
|
|
94
|
+
- [docs] Add histogram demo to bar-demo page (#22373) @siriwatknp
|
|
95
|
+
- [docs] Add radial bar to the nav bar (#22429) @alexfauquette
|
|
96
|
+
- [docs] Split radial grid and radial line pages (#22238) @alexfauquette
|
|
97
|
+
|
|
98
|
+
### Miscellaneous
|
|
99
|
+
|
|
100
|
+
- [test] Disable animations in chart benchmarks (#22433) @bernardobelchior
|
|
101
|
+
- [test] Move `x-internal-gestures` vitest isolate flag to test block (#22427) @JCQuintas
|
|
102
|
+
- [test] Reduce flakiness in `MobileTimeRangePicker` multi-input `describeValue` tests (#22422) @JCQuintas
|
|
103
|
+
- [x-license] Exclude compat test pins from Renovate major bumps (#22414) @aemartos
|
|
104
|
+
- [x-license] Add cross-major license format compatibility tests (#22335) @aemartos
|
|
105
|
+
|
|
106
|
+
## 9.1.0
|
|
107
|
+
|
|
108
|
+
_May 8, 2026_
|
|
109
|
+
|
|
110
|
+
We'd like to extend a big thank you to the 14 contributors who made this release possible. Here are some highlights ✨:
|
|
111
|
+
|
|
112
|
+
- ⚡️ Add a WebGL renderer to the [Scatter chart](https://mui.com/x/react-charts/scatter/#webgl-renderer), and apply the same WebGL performance patterns to the candlestick and heatmap [Premium]
|
|
113
|
+
- 🐞 Bugfixes
|
|
114
|
+
- 📚 Documentation improvements
|
|
115
|
+
|
|
116
|
+
Special thanks go out to these community members for their valuable contributions:
|
|
117
|
+
@Anexus5919, @gaetanodanelli, @imazizbohra, @mustafajw07
|
|
118
|
+
|
|
119
|
+
The following team members contributed to this release:
|
|
120
|
+
@alexfauquette, @brijeshb42, @flaviendelangle, @JCQuintas, @LukasTy, @mapache-salvaje, @MBilalShafi, @michelengelen, @oliviertassinari, @rita-codes
|
|
121
|
+
|
|
122
|
+
### Data Grid
|
|
123
|
+
|
|
124
|
+
#### `@mui/x-data-grid@9.1.0`
|
|
125
|
+
|
|
126
|
+
- [DataGrid] Fix accessibility violation in detail panel toggle column header (#22178) @michelengelen
|
|
127
|
+
- [DataGrid] Fix active filter detection for array values (#22340) @MBilalShafi
|
|
128
|
+
- [DataGrid] Fix crash when grouping/tree-data values match `Object.prototype` property names (#22312) @LukasTy
|
|
129
|
+
- [DataGrid] Position overlays below top pinned rows (#22341) @MBilalShafi
|
|
130
|
+
- [l10n] Improve Italian (it-IT) locale (#22290) @gaetanodanelli
|
|
131
|
+
|
|
132
|
+
#### `@mui/x-data-grid-pro@9.1.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
133
|
+
|
|
134
|
+
Same changes as in `@mui/x-data-grid@9.1.0`, plus:
|
|
135
|
+
|
|
136
|
+
- [DataGridPro] Fix column unpin restoring stale position after reorder (#22250) @michelengelen
|
|
137
|
+
|
|
138
|
+
#### `@mui/x-data-grid-premium@9.1.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
139
|
+
|
|
140
|
+
Same changes as in `@mui/x-data-grid-pro@9.1.0`, plus:
|
|
141
|
+
|
|
142
|
+
- [DataGridPremium] Fix aggregation column header title truncation without ellipsis (#22248) @michelengelen
|
|
143
|
+
|
|
144
|
+
### Date and Time Pickers
|
|
145
|
+
|
|
146
|
+
#### `@mui/x-date-pickers@9.1.0`
|
|
147
|
+
|
|
148
|
+
- [pickers] Fix duplicate hour label in `MultiSectionDigitalClock` on DST day (#22110) @LukasTy
|
|
149
|
+
- [l10n] Improve Italian (it-IT) locale (#22290) @gaetanodanelli
|
|
150
|
+
|
|
151
|
+
#### `@mui/x-date-pickers-pro@9.1.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
152
|
+
|
|
153
|
+
Same changes as in `@mui/x-date-pickers@9.1.0`.
|
|
154
|
+
|
|
155
|
+
### Charts
|
|
156
|
+
|
|
157
|
+
#### `@mui/x-charts@9.1.0`
|
|
158
|
+
|
|
159
|
+
- [charts] Add `ChartsAxisHighlightValue` component (#21803) @Copilot
|
|
160
|
+
- [charts] Create `ChartsRadialAxisHighlight` (#22241) @alexfauquette
|
|
161
|
+
- [charts] Remove useless extends (#22313) @alexfauquette
|
|
162
|
+
- [charts] Use `PolarAxisConfig` in polar plugin internals (#22315) @alexfauquette
|
|
163
|
+
|
|
164
|
+
#### `@mui/x-charts-pro@9.1.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
165
|
+
|
|
166
|
+
Same changes as in `@mui/x-charts@9.1.0`.
|
|
167
|
+
|
|
168
|
+
#### `@mui/x-charts-premium@9.1.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
169
|
+
|
|
170
|
+
Same changes as in `@mui/x-charts-pro@9.1.0`, plus:
|
|
171
|
+
|
|
172
|
+
- [charts-premium] Add WebGL renderer to `ScatterChartPremium` (#22157) @JCQuintas
|
|
173
|
+
- [charts-premium] Add highlight to the `RadialLineChart` (#22156) @alexfauquette
|
|
174
|
+
- [charts-premium] Apply WebGL perf patterns to candlestick + heatmap (#22223) @JCQuintas
|
|
175
|
+
- [charts-premium] Introduce the `RadialBarChart` (#22268) @alexfauquette
|
|
176
|
+
|
|
177
|
+
### Tree View
|
|
178
|
+
|
|
179
|
+
#### `@mui/x-tree-view@9.1.0`
|
|
180
|
+
|
|
181
|
+
- [tree view] Fix stale Tree View `apiRef` after keyed remount (#22342) @MBilalShafi
|
|
182
|
+
|
|
183
|
+
#### `@mui/x-tree-view-pro@9.1.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
184
|
+
|
|
185
|
+
Same changes as in `@mui/x-tree-view@9.1.0`.
|
|
186
|
+
|
|
187
|
+
### Scheduler
|
|
188
|
+
|
|
189
|
+
#### `@mui/x-scheduler@9.0.0-alpha.5`
|
|
190
|
+
|
|
191
|
+
- [scheduler] Make `EventItem` interactive by integrating button props for keyboard accessibility (#22160) @mustafajw07
|
|
192
|
+
- [scheduler] Migrate color switch to Base UI `ToggleGroup` (#22254) @flaviendelangle
|
|
193
|
+
- [scheduler] Rename Scheduler headless packages (#22273) @rita-codes
|
|
194
|
+
- [scheduler] Use TreeView for the resource sidebar (#22261) @flaviendelangle
|
|
195
|
+
- [scheduler] Use fieldset/legend instead of headings for form sections in the event dialog (#22095) @Anexus5919
|
|
196
|
+
- [scheduler] Added `position: relative` for consistent layout (#22284) @mustafajw07
|
|
197
|
+
- [l10n] Improve Italian (it-IT) locale (#22290) @gaetanodanelli
|
|
198
|
+
|
|
199
|
+
#### `@mui/x-scheduler-premium@9.0.0-alpha.5` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
200
|
+
|
|
201
|
+
Same changes as in `@mui/x-scheduler@9.0.0-alpha.5`, plus:
|
|
202
|
+
|
|
203
|
+
- [scheduler] Replace per-view headers with a generic `EventTimelinePremiumHeader` in the `EventTimeline` (#22222) @rita-codes
|
|
204
|
+
|
|
205
|
+
### Codemod
|
|
206
|
+
|
|
207
|
+
#### `@mui/x-codemod@9.1.0`
|
|
208
|
+
|
|
209
|
+
Internal changes.
|
|
210
|
+
|
|
211
|
+
### Docs
|
|
212
|
+
|
|
213
|
+
- [docs] Migrate `FlightPicker` overview demo to v9 `slotProps` shape (#22272) @LukasTy
|
|
214
|
+
- [docs] Standardize Scheduler docs style and formatting (#22161) @mapache-salvaje
|
|
215
|
+
- [docs] Add feedback form to the scheduler docs (#22237) @rita-codes
|
|
216
|
+
- [docs] Fix `GridToolbarCustom` demo crash in DataGrid (#21950) @MBilalShafi
|
|
217
|
+
- [docs] Do not resolve axes in charts (#22307) @alexfauquette
|
|
218
|
+
- [docs] Fix no longer valid link (#22371) @LukasTy
|
|
219
|
+
- [docs] Replace broken CodeSandbox iframes in migration guides (#22352) @LukasTy
|
|
220
|
+
|
|
221
|
+
### Core
|
|
222
|
+
|
|
223
|
+
- [code-infra] Bump browser `testTimeout` to absorb React 19 slowness (#22236) @LukasTy
|
|
224
|
+
- [code-infra] Use vale rules from code-infra package (#22256) @brijeshb42
|
|
225
|
+
- [code-infra] Fix broken valelint and docs build (#22362) @LukasTy
|
|
226
|
+
- [internal] Prepare renaming LICENSE file to LICENSE.md (#22055) @imazizbohra
|
|
227
|
+
- [internal] Remove outdated .woff files (#22286) @oliviertassinari
|
|
228
|
+
- [internal] Replace Codspeed with `@mui/internal-benchmark` for charts (#22243) @JCQuintas
|
|
229
|
+
|
|
230
|
+
### Miscellaneous
|
|
231
|
+
|
|
232
|
+
- [internal-gestures] Add passive option to `TurnWheelGesture` (#22349) @JCQuintas
|
|
233
|
+
- [internal-gestures] Enforce pointer-type filter in `ShadowRoot` branch (#22327) @JCQuintas
|
|
234
|
+
- [internal-gestures] Improve passive event listener handling (#22329) @JCQuintas
|
|
235
|
+
- [internal-gestures] Inline wheel-delta clamp per axis (#22331) @JCQuintas
|
|
236
|
+
- [internal-gestures] Return read-only pointer map without copy (#22330) @JCQuintas
|
|
237
|
+
- [internal-gestures] Track multi-tap reset timeout to prevent leak (#22326) @JCQuintas
|
|
238
|
+
|
|
3
239
|
## 9.0.4
|
|
4
240
|
|
|
5
241
|
_Apr 28, 2026_
|
package/LICENSE
CHANGED
|
@@ -31,8 +31,7 @@ const GridOverlayWrapperRoot = (0, _styles.styled)('div', {
|
|
|
31
31
|
loadingOverlayVariant !== 'skeleton' ? {
|
|
32
32
|
position: 'sticky',
|
|
33
33
|
// To stay in place while scrolling
|
|
34
|
-
top: 'var(--DataGrid-
|
|
35
|
-
// TODO: take pinned rows into account
|
|
34
|
+
top: 'var(--DataGrid-topContainerHeight)',
|
|
36
35
|
left: 0,
|
|
37
36
|
right: `${right}px`,
|
|
38
37
|
width: 0,
|
|
@@ -23,8 +23,7 @@ const GridOverlayWrapperRoot = styled('div', {
|
|
|
23
23
|
loadingOverlayVariant !== 'skeleton' ? {
|
|
24
24
|
position: 'sticky',
|
|
25
25
|
// To stay in place while scrolling
|
|
26
|
-
top: 'var(--DataGrid-
|
|
27
|
-
// TODO: take pinned rows into account
|
|
26
|
+
top: 'var(--DataGrid-topContainerHeight)',
|
|
28
27
|
left: 0,
|
|
29
28
|
right: `${right}px`,
|
|
30
29
|
width: 0,
|
|
@@ -55,7 +55,9 @@ const Scroller = (0, _styles.styled)('div', {
|
|
|
55
55
|
} = props;
|
|
56
56
|
return [styles.virtualScroller, ownerState.hasScrollX && styles['virtualScroller--hasScrollX']];
|
|
57
57
|
}
|
|
58
|
-
})({
|
|
58
|
+
})(({
|
|
59
|
+
ownerState
|
|
60
|
+
}) => ({
|
|
59
61
|
position: 'relative',
|
|
60
62
|
height: '100%',
|
|
61
63
|
flexGrow: 1,
|
|
@@ -70,8 +72,10 @@ const Scroller = (0, _styles.styled)('div', {
|
|
|
70
72
|
overflow: 'hidden'
|
|
71
73
|
},
|
|
72
74
|
// See https://github.com/mui/mui-x/issues/10547
|
|
73
|
-
zIndex: 0
|
|
74
|
-
|
|
75
|
+
zIndex: 0,
|
|
76
|
+
// Prevent overscroll bounce from revealing content behind pinned column shadows on macOS.
|
|
77
|
+
overscrollBehaviorX: ownerState.hasPinnedColumns ? 'none' : undefined
|
|
78
|
+
}));
|
|
75
79
|
const Viewport = (0, _styles.styled)('div', {
|
|
76
80
|
slot: 'internal',
|
|
77
81
|
shouldForwardProp: undefined
|
|
@@ -82,30 +86,30 @@ const Viewport = (0, _styles.styled)('div', {
|
|
|
82
86
|
position: 'sticky',
|
|
83
87
|
top: 0,
|
|
84
88
|
left: 0,
|
|
85
|
-
overflow: 'hidden'
|
|
86
|
-
scrollbarWidth: 'none' /* Firefox */,
|
|
87
|
-
'&::-webkit-scrollbar': {
|
|
88
|
-
display: 'none' /* Safari and Chrome */
|
|
89
|
-
}
|
|
89
|
+
overflow: 'hidden'
|
|
90
90
|
}
|
|
91
91
|
});
|
|
92
92
|
const hasPinnedRightSelector = apiRef => apiRef.current.state.dimensions.rightPinnedWidth > 0;
|
|
93
|
+
const hasPinnedLeftSelector = apiRef => apiRef.current.state.dimensions.leftPinnedWidth > 0;
|
|
93
94
|
function GridVirtualScroller(props) {
|
|
94
95
|
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
|
|
95
96
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
96
97
|
const hasScrollY = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridHasScrollYSelector);
|
|
97
98
|
const hasScrollX = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridHasScrollXSelector);
|
|
98
99
|
const hasPinnedRight = (0, _useGridSelector.useGridSelector)(apiRef, hasPinnedRightSelector);
|
|
100
|
+
const hasPinnedLeft = (0, _useGridSelector.useGridSelector)(apiRef, hasPinnedLeftSelector);
|
|
99
101
|
const hasBottomFiller = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridHasBottomFillerSelector);
|
|
100
102
|
const {
|
|
101
103
|
overlayType,
|
|
102
104
|
loadingOverlayVariant
|
|
103
105
|
} = (0, _useGridOverlays.useGridOverlays)(apiRef, rootProps);
|
|
104
106
|
const Overlay = rootProps.slots?.[overlayType];
|
|
107
|
+
const hasPinnedColumns = hasPinnedRight || hasPinnedLeft;
|
|
105
108
|
const ownerState = {
|
|
106
109
|
classes: rootProps.classes,
|
|
107
110
|
hasScrollX,
|
|
108
111
|
hasPinnedRight,
|
|
112
|
+
hasPinnedColumns,
|
|
109
113
|
overlayType,
|
|
110
114
|
loadingOverlayVariant
|
|
111
115
|
};
|
|
@@ -47,7 +47,9 @@ const Scroller = styled('div', {
|
|
|
47
47
|
} = props;
|
|
48
48
|
return [styles.virtualScroller, ownerState.hasScrollX && styles['virtualScroller--hasScrollX']];
|
|
49
49
|
}
|
|
50
|
-
})({
|
|
50
|
+
})(({
|
|
51
|
+
ownerState
|
|
52
|
+
}) => ({
|
|
51
53
|
position: 'relative',
|
|
52
54
|
height: '100%',
|
|
53
55
|
flexGrow: 1,
|
|
@@ -62,8 +64,10 @@ const Scroller = styled('div', {
|
|
|
62
64
|
overflow: 'hidden'
|
|
63
65
|
},
|
|
64
66
|
// See https://github.com/mui/mui-x/issues/10547
|
|
65
|
-
zIndex: 0
|
|
66
|
-
|
|
67
|
+
zIndex: 0,
|
|
68
|
+
// Prevent overscroll bounce from revealing content behind pinned column shadows on macOS.
|
|
69
|
+
overscrollBehaviorX: ownerState.hasPinnedColumns ? 'none' : undefined
|
|
70
|
+
}));
|
|
67
71
|
const Viewport = styled('div', {
|
|
68
72
|
slot: 'internal',
|
|
69
73
|
shouldForwardProp: undefined
|
|
@@ -74,30 +78,30 @@ const Viewport = styled('div', {
|
|
|
74
78
|
position: 'sticky',
|
|
75
79
|
top: 0,
|
|
76
80
|
left: 0,
|
|
77
|
-
overflow: 'hidden'
|
|
78
|
-
scrollbarWidth: 'none' /* Firefox */,
|
|
79
|
-
'&::-webkit-scrollbar': {
|
|
80
|
-
display: 'none' /* Safari and Chrome */
|
|
81
|
-
}
|
|
81
|
+
overflow: 'hidden'
|
|
82
82
|
}
|
|
83
83
|
});
|
|
84
84
|
const hasPinnedRightSelector = apiRef => apiRef.current.state.dimensions.rightPinnedWidth > 0;
|
|
85
|
+
const hasPinnedLeftSelector = apiRef => apiRef.current.state.dimensions.leftPinnedWidth > 0;
|
|
85
86
|
function GridVirtualScroller(props) {
|
|
86
87
|
const apiRef = useGridPrivateApiContext();
|
|
87
88
|
const rootProps = useGridRootProps();
|
|
88
89
|
const hasScrollY = useGridSelector(apiRef, gridHasScrollYSelector);
|
|
89
90
|
const hasScrollX = useGridSelector(apiRef, gridHasScrollXSelector);
|
|
90
91
|
const hasPinnedRight = useGridSelector(apiRef, hasPinnedRightSelector);
|
|
92
|
+
const hasPinnedLeft = useGridSelector(apiRef, hasPinnedLeftSelector);
|
|
91
93
|
const hasBottomFiller = useGridSelector(apiRef, gridHasBottomFillerSelector);
|
|
92
94
|
const {
|
|
93
95
|
overlayType,
|
|
94
96
|
loadingOverlayVariant
|
|
95
97
|
} = useGridOverlays(apiRef, rootProps);
|
|
96
98
|
const Overlay = rootProps.slots?.[overlayType];
|
|
99
|
+
const hasPinnedColumns = hasPinnedRight || hasPinnedLeft;
|
|
97
100
|
const ownerState = {
|
|
98
101
|
classes: rootProps.classes,
|
|
99
102
|
hasScrollX,
|
|
100
103
|
hasPinnedRight,
|
|
104
|
+
hasPinnedColumns,
|
|
101
105
|
overlayType,
|
|
102
106
|
loadingOverlayVariant
|
|
103
107
|
};
|
|
@@ -180,7 +180,8 @@ const gridFilterActiveItemsSelector = exports.gridFilterActiveItemsSelector = (0
|
|
|
180
180
|
if (!filterOperator) {
|
|
181
181
|
return false;
|
|
182
182
|
}
|
|
183
|
-
|
|
183
|
+
const hasFilterValue = Array.isArray(item.value) ? item.value.length > 0 : item.value != null && item.value?.toString() !== '';
|
|
184
|
+
return !filterOperator.InputComponent || hasFilterValue;
|
|
184
185
|
}));
|
|
185
186
|
/**
|
|
186
187
|
* @category Filtering
|
|
@@ -175,7 +175,8 @@ export const gridFilterActiveItemsSelector = createSelectorMemoized(gridFilterMo
|
|
|
175
175
|
if (!filterOperator) {
|
|
176
176
|
return false;
|
|
177
177
|
}
|
|
178
|
-
|
|
178
|
+
const hasFilterValue = Array.isArray(item.value) ? item.value.length > 0 : item.value != null && item.value?.toString() !== '';
|
|
179
|
+
return !filterOperator.InputComponent || hasFilterValue;
|
|
179
180
|
}));
|
|
180
181
|
/**
|
|
181
182
|
* @category Filtering
|
|
@@ -21,7 +21,9 @@ const buildRootGroup = () => ({
|
|
|
21
21
|
groupingKey: null,
|
|
22
22
|
isAutoGenerated: true,
|
|
23
23
|
children: [],
|
|
24
|
-
|
|
24
|
+
// Prototype-less so user-supplied grouping values like `'constructor'`
|
|
25
|
+
// or `'__proto__'` cannot collide with `Object.prototype` properties.
|
|
26
|
+
childrenFromPath: Object.create(null),
|
|
25
27
|
childrenExpanded: true,
|
|
26
28
|
parent: null
|
|
27
29
|
});
|
|
@@ -11,7 +11,9 @@ export const buildRootGroup = () => ({
|
|
|
11
11
|
groupingKey: null,
|
|
12
12
|
isAutoGenerated: true,
|
|
13
13
|
children: [],
|
|
14
|
-
|
|
14
|
+
// Prototype-less so user-supplied grouping values like `'constructor'`
|
|
15
|
+
// or `'__proto__'` cannot collide with `Object.prototype` properties.
|
|
16
|
+
childrenFromPath: Object.create(null),
|
|
15
17
|
childrenExpanded: true,
|
|
16
18
|
parent: null
|
|
17
19
|
});
|
package/index.js
CHANGED
package/index.mjs
CHANGED
package/locales/itIT.js
CHANGED
|
@@ -52,8 +52,7 @@ const itITGrid = {
|
|
|
52
52
|
columnsManagementNoColumns: 'Nessuna colonna',
|
|
53
53
|
columnsManagementShowHideAllText: 'Mostra/Nascondi Tutto',
|
|
54
54
|
columnsManagementReset: 'Resetta',
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
columnsManagementDeleteIconLabel: 'Cancella',
|
|
57
56
|
// Filter panel text
|
|
58
57
|
filterPanelAddFilter: 'Aggiungi un filtro',
|
|
59
58
|
filterPanelRemoveAll: 'Rimuovi filtri',
|
|
@@ -209,9 +208,9 @@ const itITGrid = {
|
|
|
209
208
|
pivotColumns: 'Colonne',
|
|
210
209
|
pivotValues: 'Valori',
|
|
211
210
|
pivotCloseButton: 'Chiudi impostazioni di trasposizione',
|
|
212
|
-
pivotSearchButton: 'Cerca
|
|
213
|
-
pivotSearchControlPlaceholder: 'Cerca
|
|
214
|
-
pivotSearchControlLabel: 'Cerca
|
|
211
|
+
pivotSearchButton: 'Cerca attributi',
|
|
212
|
+
pivotSearchControlPlaceholder: 'Cerca attributi',
|
|
213
|
+
pivotSearchControlLabel: 'Cerca attributi',
|
|
215
214
|
pivotSearchControlClear: 'Annulla ricerca',
|
|
216
215
|
pivotNoFields: 'Nessun attributo',
|
|
217
216
|
pivotMenuMoveUp: 'Sposta in alto',
|
|
@@ -280,18 +279,18 @@ const itITGrid = {
|
|
|
280
279
|
promptChangeGroupDescription: column => `Raggruppa per ${column}`,
|
|
281
280
|
promptChangeAggregationLabel: (column, aggregation) => `${column} (${aggregation})`,
|
|
282
281
|
promptChangeAggregationDescription: (column, aggregation) => `Aggrega ${column} (${aggregation})`,
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
282
|
+
promptChangeFilterLabel: (column, operator, value) => {
|
|
283
|
+
if (operator === 'is any of') {
|
|
284
|
+
return `${column} è uno tra: ${value}`;
|
|
285
|
+
}
|
|
286
|
+
return `${column} ${operator} ${value}`;
|
|
287
|
+
},
|
|
288
|
+
promptChangeFilterDescription: (column, operator, value) => {
|
|
289
|
+
if (operator === 'is any of') {
|
|
290
|
+
return `Filtra dove ${column} è uno tra: ${value}`;
|
|
291
|
+
}
|
|
292
|
+
return `Filtra dove ${column} ${operator} ${value}`;
|
|
293
|
+
},
|
|
295
294
|
promptChangeSortDescription: (column, direction) => `Ordina per ${column} (${direction})`,
|
|
296
295
|
promptChangePivotEnableLabel: 'Pivota',
|
|
297
296
|
promptChangePivotEnableDescription: 'Abilita pivoting',
|
|
@@ -299,7 +298,7 @@ const itITGrid = {
|
|
|
299
298
|
promptChangePivotColumnsDescription: (column, direction) => `${column}${direction ? ` (${direction})` : ''}`,
|
|
300
299
|
promptChangePivotRowsLabel: count => `Righe (${count})`,
|
|
301
300
|
promptChangePivotValuesLabel: count => `Valori (${count})`,
|
|
302
|
-
promptChangePivotValuesDescription: (column, aggregation) => `${column} (${aggregation})
|
|
303
|
-
|
|
301
|
+
promptChangePivotValuesDescription: (column, aggregation) => `${column} (${aggregation})`,
|
|
302
|
+
promptChangeChartsLabel: (dimensionsCount, valuesCount) => `Dimensioni (${dimensionsCount}), Valori (${valuesCount})`
|
|
304
303
|
};
|
|
305
304
|
const itIT = exports.itIT = (0, _getGridLocalization.getGridLocalization)(itITGrid);
|
package/locales/itIT.mjs
CHANGED
|
@@ -46,8 +46,7 @@ const itITGrid = {
|
|
|
46
46
|
columnsManagementNoColumns: 'Nessuna colonna',
|
|
47
47
|
columnsManagementShowHideAllText: 'Mostra/Nascondi Tutto',
|
|
48
48
|
columnsManagementReset: 'Resetta',
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
columnsManagementDeleteIconLabel: 'Cancella',
|
|
51
50
|
// Filter panel text
|
|
52
51
|
filterPanelAddFilter: 'Aggiungi un filtro',
|
|
53
52
|
filterPanelRemoveAll: 'Rimuovi filtri',
|
|
@@ -203,9 +202,9 @@ const itITGrid = {
|
|
|
203
202
|
pivotColumns: 'Colonne',
|
|
204
203
|
pivotValues: 'Valori',
|
|
205
204
|
pivotCloseButton: 'Chiudi impostazioni di trasposizione',
|
|
206
|
-
pivotSearchButton: 'Cerca
|
|
207
|
-
pivotSearchControlPlaceholder: 'Cerca
|
|
208
|
-
pivotSearchControlLabel: 'Cerca
|
|
205
|
+
pivotSearchButton: 'Cerca attributi',
|
|
206
|
+
pivotSearchControlPlaceholder: 'Cerca attributi',
|
|
207
|
+
pivotSearchControlLabel: 'Cerca attributi',
|
|
209
208
|
pivotSearchControlClear: 'Annulla ricerca',
|
|
210
209
|
pivotNoFields: 'Nessun attributo',
|
|
211
210
|
pivotMenuMoveUp: 'Sposta in alto',
|
|
@@ -274,18 +273,18 @@ const itITGrid = {
|
|
|
274
273
|
promptChangeGroupDescription: column => `Raggruppa per ${column}`,
|
|
275
274
|
promptChangeAggregationLabel: (column, aggregation) => `${column} (${aggregation})`,
|
|
276
275
|
promptChangeAggregationDescription: (column, aggregation) => `Aggrega ${column} (${aggregation})`,
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
276
|
+
promptChangeFilterLabel: (column, operator, value) => {
|
|
277
|
+
if (operator === 'is any of') {
|
|
278
|
+
return `${column} è uno tra: ${value}`;
|
|
279
|
+
}
|
|
280
|
+
return `${column} ${operator} ${value}`;
|
|
281
|
+
},
|
|
282
|
+
promptChangeFilterDescription: (column, operator, value) => {
|
|
283
|
+
if (operator === 'is any of') {
|
|
284
|
+
return `Filtra dove ${column} è uno tra: ${value}`;
|
|
285
|
+
}
|
|
286
|
+
return `Filtra dove ${column} ${operator} ${value}`;
|
|
287
|
+
},
|
|
289
288
|
promptChangeSortDescription: (column, direction) => `Ordina per ${column} (${direction})`,
|
|
290
289
|
promptChangePivotEnableLabel: 'Pivota',
|
|
291
290
|
promptChangePivotEnableDescription: 'Abilita pivoting',
|
|
@@ -293,7 +292,7 @@ const itITGrid = {
|
|
|
293
292
|
promptChangePivotColumnsDescription: (column, direction) => `${column}${direction ? ` (${direction})` : ''}`,
|
|
294
293
|
promptChangePivotRowsLabel: count => `Righe (${count})`,
|
|
295
294
|
promptChangePivotValuesLabel: count => `Valori (${count})`,
|
|
296
|
-
promptChangePivotValuesDescription: (column, aggregation) => `${column} (${aggregation})
|
|
297
|
-
|
|
295
|
+
promptChangePivotValuesDescription: (column, aggregation) => `${column} (${aggregation})`,
|
|
296
|
+
promptChangeChartsLabel: (dimensionsCount, valuesCount) => `Dimensioni (${dimensionsCount}), Valori (${valuesCount})`
|
|
298
297
|
};
|
|
299
298
|
export const itIT = getGridLocalization(itITGrid);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-data-grid",
|
|
3
|
-
"version": "9.0
|
|
3
|
+
"version": "9.2.0",
|
|
4
4
|
"author": "MUI Team",
|
|
5
5
|
"description": "The Community plan edition of the MUI X Data Grid components.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,12 +38,12 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@babel/runtime": "^7.29.2",
|
|
41
|
-
"@mui/utils": "9.0.
|
|
41
|
+
"@mui/utils": "9.0.1",
|
|
42
42
|
"clsx": "^2.1.1",
|
|
43
43
|
"prop-types": "^15.8.1",
|
|
44
44
|
"use-sync-external-store": "^1.6.0",
|
|
45
|
-
"@mui/x-internals": "^9.0
|
|
46
|
-
"@mui/x-virtualizer": "9.0.0-alpha.
|
|
45
|
+
"@mui/x-internals": "^9.1.0",
|
|
46
|
+
"@mui/x-virtualizer": "9.0.0-alpha.5"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"@emotion/react": "^11.9.0",
|