@mui/x-data-grid-premium 9.10.0 → 9.10.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.
- package/CHANGELOG.md +106 -0
- package/DataGridPremium/DataGridPremium.js +2 -2
- package/DataGridPremium/DataGridPremium.mjs +2 -2
- package/components/GridGroupingCriteriaCell.js +1 -1
- package/components/GridGroupingCriteriaCell.mjs +1 -1
- package/components/chartsPanel/data/GridChartsPanelDataField.js +8 -5
- package/components/chartsPanel/data/GridChartsPanelDataField.mjs +8 -5
- package/hooks/features/cellSelection/useGridCellSelection.js +1 -1
- package/hooks/features/cellSelection/useGridCellSelection.mjs +1 -1
- package/hooks/features/chartsIntegration/useGridChartsIntegration.js +7 -5
- package/hooks/features/chartsIntegration/useGridChartsIntegration.mjs +7 -5
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,111 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 9.10.1
|
|
4
|
+
|
|
5
|
+
_Jul 23, 2026_
|
|
6
|
+
|
|
7
|
+
We'd like to extend a big thank you to the 11 contributors who made this release possible. Here are some highlights ✨:
|
|
8
|
+
|
|
9
|
+
- 🦮 Improve accessibility of the Charts and Pickers components.
|
|
10
|
+
- 🐞 Bugfixes
|
|
11
|
+
- 📚 Documentation improvements
|
|
12
|
+
|
|
13
|
+
Special thanks go out to these community members for their valuable contributions:
|
|
14
|
+
@kevincorizi-sbt, @mustafajw07, @SamanPandey-in
|
|
15
|
+
|
|
16
|
+
The following team members contributed to this release:
|
|
17
|
+
@brijeshb42, @hasdfa, @JCQuintas, @LukasTy, @michelengelen, @noraleonte, @rita-codes, @silviuaavram
|
|
18
|
+
|
|
19
|
+
### Data Grid
|
|
20
|
+
|
|
21
|
+
#### `@mui/x-data-grid@9.10.1`
|
|
22
|
+
|
|
23
|
+
- [data grid] Fix `getColumn` return type not reflecting that it can return undefined (#23165) @JCQuintas
|
|
24
|
+
|
|
25
|
+
#### `@mui/x-data-grid-pro@9.10.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
26
|
+
|
|
27
|
+
Same changes as in `@mui/x-data-grid@9.10.1`.
|
|
28
|
+
|
|
29
|
+
#### `@mui/x-data-grid-premium@9.10.1` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
30
|
+
|
|
31
|
+
Same changes as in `@mui/x-data-grid-pro@9.10.1`.
|
|
32
|
+
|
|
33
|
+
### Date and Time Pickers
|
|
34
|
+
|
|
35
|
+
#### `@mui/x-date-pickers@9.10.1`
|
|
36
|
+
|
|
37
|
+
- [pickers] Fix format placeholder brightness with a start adornment (#23189) @LukasTy
|
|
38
|
+
|
|
39
|
+
#### `@mui/x-date-pickers-pro@9.10.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
40
|
+
|
|
41
|
+
Same changes as in `@mui/x-date-pickers@9.10.1`, plus:
|
|
42
|
+
|
|
43
|
+
- [DateRangePicker] Fix broken active range position underline in single input range fields (#23166) @LukasTy
|
|
44
|
+
|
|
45
|
+
### Charts
|
|
46
|
+
|
|
47
|
+
#### `@mui/x-charts@9.10.1`
|
|
48
|
+
|
|
49
|
+
- [charts] Fix pie chart disappearing when an arc spans almost the full circle (#23145) @JCQuintas
|
|
50
|
+
- [charts] Set `aria-hidden` on accessibility proxy divs at initialization (#23186) @kevincorizi-sbt
|
|
51
|
+
- [charts] Fix keyboard navigation on series with different lengths (#23182) @JCQuintas
|
|
52
|
+
- [charts] Fix out of bounds keyboard navigation (#23180) @silviuaavram
|
|
53
|
+
|
|
54
|
+
#### `@mui/x-charts-pro@9.10.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
55
|
+
|
|
56
|
+
Same changes as in `@mui/x-charts@9.10.1`, plus:
|
|
57
|
+
|
|
58
|
+
- [charts-pro] Fix highlight shifting on sampled bar charts (#23190) @noraleonte
|
|
59
|
+
- [charts-pro] Sampled band highlight falls back to single-band width for Date/object values (#23024) @SamanPandey-in
|
|
60
|
+
|
|
61
|
+
#### `@mui/x-charts-premium@9.10.1` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
62
|
+
|
|
63
|
+
Same changes as in `@mui/x-charts-pro@9.10.1`.
|
|
64
|
+
|
|
65
|
+
### Tree View
|
|
66
|
+
|
|
67
|
+
#### `@mui/x-tree-view@9.10.1`
|
|
68
|
+
|
|
69
|
+
- [TreeView] Fix selection propagation to exclude disabled items (#23012) @michelengelen
|
|
70
|
+
|
|
71
|
+
#### `@mui/x-tree-view-pro@9.10.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
72
|
+
|
|
73
|
+
Same changes as in `@mui/x-tree-view@9.10.1`.
|
|
74
|
+
|
|
75
|
+
### Scheduler
|
|
76
|
+
|
|
77
|
+
#### `@mui/x-scheduler@9.0.0-beta.7`
|
|
78
|
+
|
|
79
|
+
- [scheduler] Polish `EventCalendar` rendering for multi-resource events (#23161) @mustafajw07
|
|
80
|
+
- [scheduler] Responsive header (#22954) @noraleonte
|
|
81
|
+
|
|
82
|
+
#### `@mui/x-scheduler-premium@9.0.0-beta.7` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
83
|
+
|
|
84
|
+
Same changes as in `@mui/x-scheduler@9.0.0-beta.7`, plus:
|
|
85
|
+
|
|
86
|
+
- [scheduler-premium] Add the dependencies data model (#23117) @rita-codes
|
|
87
|
+
- [scheduler-premium] Dependencies - Render the FS arrow (#23162) @rita-codes
|
|
88
|
+
|
|
89
|
+
### Codemod
|
|
90
|
+
|
|
91
|
+
#### `@mui/x-codemod@9.10.1`
|
|
92
|
+
|
|
93
|
+
Internal changes.
|
|
94
|
+
|
|
95
|
+
### Docs
|
|
96
|
+
|
|
97
|
+
- [docs] Fix clearing, layout shift, and prop leak in Pickers demos (#23191) @LukasTy
|
|
98
|
+
|
|
99
|
+
### Core
|
|
100
|
+
|
|
101
|
+
- [code-infra] Validate working of specific code-infra canary (#23207) @brijeshb42
|
|
102
|
+
|
|
103
|
+
### Miscellaneous
|
|
104
|
+
|
|
105
|
+
- [chat] Normalize message part link URLs (#23187) @hasdfa
|
|
106
|
+
- [x-chat] Fix object URL leaks for submitted attachments (#23198) @hasdfa
|
|
107
|
+
- [internals] Make disposable types self-contained without `esnext.disposable` lib (#23164) @JCQuintas
|
|
108
|
+
|
|
3
109
|
## 9.10.0
|
|
4
110
|
|
|
5
111
|
_Jul 17, 2026_
|
|
@@ -51,8 +51,8 @@ const configuration = {
|
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
53
|
const packageInfo = {
|
|
54
|
-
releaseDate: "
|
|
55
|
-
version: "9.10.
|
|
54
|
+
releaseDate: "MTc4NDc2NDgwMDAwMA==",
|
|
55
|
+
version: "9.10.1",
|
|
56
56
|
name: 'x-data-grid-premium'
|
|
57
57
|
};
|
|
58
58
|
const watermark = /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.Watermark, {
|
|
@@ -44,8 +44,8 @@ const configuration = {
|
|
|
44
44
|
}
|
|
45
45
|
};
|
|
46
46
|
const packageInfo = {
|
|
47
|
-
releaseDate: "
|
|
48
|
-
version: "9.10.
|
|
47
|
+
releaseDate: "MTc4NDc2NDgwMDAwMA==",
|
|
48
|
+
version: "9.10.1",
|
|
49
49
|
name: 'x-data-grid-premium'
|
|
50
50
|
};
|
|
51
51
|
const watermark = /*#__PURE__*/_jsx(Watermark, {
|
|
@@ -61,7 +61,7 @@ function GridGroupingCriteriaCell(props) {
|
|
|
61
61
|
};
|
|
62
62
|
let cellContent;
|
|
63
63
|
const colDef = apiRef.current.getColumn(rowNode.groupingField);
|
|
64
|
-
if (typeof colDef.renderCell === 'function') {
|
|
64
|
+
if (colDef && typeof colDef.renderCell === 'function') {
|
|
65
65
|
cellContent = colDef.renderCell(props);
|
|
66
66
|
} else if (typeof formattedValue !== 'undefined') {
|
|
67
67
|
cellContent = /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
@@ -53,7 +53,7 @@ export function GridGroupingCriteriaCell(props) {
|
|
|
53
53
|
};
|
|
54
54
|
let cellContent;
|
|
55
55
|
const colDef = apiRef.current.getColumn(rowNode.groupingField);
|
|
56
|
-
if (typeof colDef.renderCell === 'function') {
|
|
56
|
+
if (colDef && typeof colDef.renderCell === 'function') {
|
|
57
57
|
cellContent = colDef.renderCell(props);
|
|
58
58
|
} else if (typeof formattedValue !== 'undefined') {
|
|
59
59
|
cellContent = /*#__PURE__*/_jsx("span", {
|
|
@@ -141,11 +141,14 @@ function AggregationSelect({
|
|
|
141
141
|
const pivotActive = (0, _internals.gridPivotActiveSelector)(apiRef);
|
|
142
142
|
const getActualFieldName = React.useCallback(fieldName => pivotActive ? fieldName.split(_columnGroups.COLUMN_GROUP_ID_SEPARATOR).slice(-1)[0] : fieldName, [pivotActive]);
|
|
143
143
|
const colDef = React.useCallback(fieldName => apiRef.current.getColumn(getActualFieldName(fieldName)), [apiRef, getActualFieldName]);
|
|
144
|
-
const availableAggregationFunctions = React.useMemo(() =>
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
144
|
+
const availableAggregationFunctions = React.useMemo(() => {
|
|
145
|
+
const column = colDef(field);
|
|
146
|
+
return [...(pivotActive ? [] : [AGGREGATION_FUNCTION_NONE]), ...(column ? (0, _gridAggregationUtils.getAvailableAggregationFunctions)({
|
|
147
|
+
aggregationFunctions: rootProps.aggregationFunctions,
|
|
148
|
+
colDef: column,
|
|
149
|
+
isDataSource: !!rootProps.dataSource
|
|
150
|
+
}) : [])];
|
|
151
|
+
}, [colDef, field, pivotActive, rootProps.aggregationFunctions, rootProps.dataSource]);
|
|
149
152
|
const handleClick = React.useCallback(func => {
|
|
150
153
|
if (pivotActive) {
|
|
151
154
|
const fieldName = getActualFieldName(field);
|
|
@@ -133,11 +133,14 @@ export function AggregationSelect({
|
|
|
133
133
|
const pivotActive = gridPivotActiveSelector(apiRef);
|
|
134
134
|
const getActualFieldName = React.useCallback(fieldName => pivotActive ? fieldName.split(COLUMN_GROUP_ID_SEPARATOR).slice(-1)[0] : fieldName, [pivotActive]);
|
|
135
135
|
const colDef = React.useCallback(fieldName => apiRef.current.getColumn(getActualFieldName(fieldName)), [apiRef, getActualFieldName]);
|
|
136
|
-
const availableAggregationFunctions = React.useMemo(() =>
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
136
|
+
const availableAggregationFunctions = React.useMemo(() => {
|
|
137
|
+
const column = colDef(field);
|
|
138
|
+
return [...(pivotActive ? [] : [AGGREGATION_FUNCTION_NONE]), ...(column ? getAvailableAggregationFunctions({
|
|
139
|
+
aggregationFunctions: rootProps.aggregationFunctions,
|
|
140
|
+
colDef: column,
|
|
141
|
+
isDataSource: !!rootProps.dataSource
|
|
142
|
+
}) : [])];
|
|
143
|
+
}, [colDef, field, pivotActive, rootProps.aggregationFunctions, rootProps.dataSource]);
|
|
141
144
|
const handleClick = React.useCallback(func => {
|
|
142
145
|
if (pivotActive) {
|
|
143
146
|
const fieldName = getActualFieldName(field);
|
|
@@ -173,7 +173,7 @@ const useGridCellSelection = (apiRef, props) => {
|
|
|
173
173
|
return false;
|
|
174
174
|
}
|
|
175
175
|
const column = apiRef.current.getColumn(params.field);
|
|
176
|
-
if (column
|
|
176
|
+
if (column?.type === _xDataGridPro.GRID_ACTIONS_COLUMN_TYPE) {
|
|
177
177
|
return false;
|
|
178
178
|
}
|
|
179
179
|
return params.rowNode.type !== 'pinnedRow';
|
|
@@ -165,7 +165,7 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
165
165
|
return false;
|
|
166
166
|
}
|
|
167
167
|
const column = apiRef.current.getColumn(params.field);
|
|
168
|
-
if (column
|
|
168
|
+
if (column?.type === GRID_ACTIONS_COLUMN_TYPE) {
|
|
169
169
|
return false;
|
|
170
170
|
}
|
|
171
171
|
return params.rowNode.type !== 'pinnedRow';
|
|
@@ -191,12 +191,14 @@ const useGridChartsIntegration = (apiRef, props) => {
|
|
|
191
191
|
const dataColumns = [...new Set([...Object.values(visibleDimensions.current).flat(), ...Object.values(visibleValues.current).flat()])].map(column => {
|
|
192
192
|
const isColumnGrouped = rowGroupingModel.includes(column.field);
|
|
193
193
|
if (isColumnGrouped) {
|
|
194
|
-
const groupedFieldName =
|
|
194
|
+
const groupedFieldName = (0, _gridRowGroupingUtils.getRowGroupingFieldFromGroupingCriteria)(orderedFields.includes(_internals.GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD) ? null : column.field);
|
|
195
195
|
const columnDefinition = apiRef.current.getColumn(groupedFieldName);
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
196
|
+
if (columnDefinition) {
|
|
197
|
+
return (0, _extends2.default)({}, columnDefinition, {
|
|
198
|
+
dataFieldName: column.field,
|
|
199
|
+
depth: rowGroupingModel.indexOf(column.field)
|
|
200
|
+
});
|
|
201
|
+
}
|
|
200
202
|
}
|
|
201
203
|
return (0, _extends2.default)({}, column, {
|
|
202
204
|
dataFieldName: column.field,
|
|
@@ -183,12 +183,14 @@ export const useGridChartsIntegration = (apiRef, props) => {
|
|
|
183
183
|
const dataColumns = [...new Set([...Object.values(visibleDimensions.current).flat(), ...Object.values(visibleValues.current).flat()])].map(column => {
|
|
184
184
|
const isColumnGrouped = rowGroupingModel.includes(column.field);
|
|
185
185
|
if (isColumnGrouped) {
|
|
186
|
-
const groupedFieldName =
|
|
186
|
+
const groupedFieldName = getRowGroupingFieldFromGroupingCriteria(orderedFields.includes(GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD) ? null : column.field);
|
|
187
187
|
const columnDefinition = apiRef.current.getColumn(groupedFieldName);
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
188
|
+
if (columnDefinition) {
|
|
189
|
+
return _extends({}, columnDefinition, {
|
|
190
|
+
dataFieldName: column.field,
|
|
191
|
+
depth: rowGroupingModel.indexOf(column.field)
|
|
192
|
+
});
|
|
193
|
+
}
|
|
192
194
|
}
|
|
193
195
|
return _extends({}, column, {
|
|
194
196
|
dataFieldName: column.field,
|
package/index.js
CHANGED
package/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-data-grid-premium",
|
|
3
|
-
"version": "9.10.
|
|
3
|
+
"version": "9.10.1",
|
|
4
4
|
"author": "MUI Team",
|
|
5
5
|
"description": "The Premium plan edition of the MUI X Data Grid Components.",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -39,10 +39,10 @@
|
|
|
39
39
|
"@mui/x-internal-exceljs-fork": "5.0.0",
|
|
40
40
|
"clsx": "^2.1.1",
|
|
41
41
|
"prop-types": "^15.8.1",
|
|
42
|
-
"@mui/x-data-grid": "^9.10.
|
|
43
|
-
"@mui/x-
|
|
44
|
-
"@mui/x-
|
|
45
|
-
"@mui/x-license": "^9.10.
|
|
42
|
+
"@mui/x-data-grid-pro": "^9.10.1",
|
|
43
|
+
"@mui/x-internals": "^9.10.1",
|
|
44
|
+
"@mui/x-data-grid": "^9.10.1",
|
|
45
|
+
"@mui/x-license": "^9.10.1"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
48
|
"@emotion/react": "^11.9.0",
|