@mui/x-data-grid-premium 8.20.0 → 8.22.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 +248 -0
- package/DataGridPremium/DataGridPremium.js +1 -1
- package/esm/DataGridPremium/DataGridPremium.js +1 -1
- package/esm/hooks/features/aggregation/createAggregationLookup.js +7 -1
- package/esm/hooks/features/clipboard/useGridClipboardImport.js +6 -0
- package/esm/hooks/features/pivoting/utils.js +7 -1
- package/esm/index.js +1 -1
- package/hooks/features/aggregation/createAggregationLookup.js +7 -1
- package/hooks/features/clipboard/useGridClipboardImport.js +6 -0
- package/hooks/features/pivoting/utils.js +7 -1
- package/index.js +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,254 @@
|
|
|
5
5
|
All notable changes to this project will be documented in this file.
|
|
6
6
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
7
7
|
|
|
8
|
+
## 8.22.0
|
|
9
|
+
|
|
10
|
+
_Dec 11, 2025_
|
|
11
|
+
|
|
12
|
+
We'd like to extend a big thank you to the 11 contributors who made this release possible. Here are some highlights ✨:
|
|
13
|
+
|
|
14
|
+
- Each Tree View component now exposes its own hook to initialize the `apiRef` object with accurate typing:
|
|
15
|
+
|
|
16
|
+
```diff
|
|
17
|
+
-import { useTreeViewApiRef } from '@mui/x-tree-view/hooks';
|
|
18
|
+
+import { useSimpleTreeViewApiRef } from '@mui/x-tree-view/hooks';
|
|
19
|
+
-const apiRef = useTreeViewApiRef();
|
|
20
|
+
+const apiRef = useSimpleTreeViewApiRef();
|
|
21
|
+
|
|
22
|
+
-import { useTreeViewApiRef } from '@mui/x-tree-view/hooks';
|
|
23
|
+
+import { useRichTreeViewApiRef } from '@mui/x-tree-view/hooks';
|
|
24
|
+
-const apiRef = useTreeViewApiRef();
|
|
25
|
+
+const apiRef = useRichTreeViewApiRef();
|
|
26
|
+
|
|
27
|
+
-import { useTreeViewApiRef } from '@mui/x-tree-view/hooks';
|
|
28
|
+
+import { useRichTreeViewProApiRef } from '@mui/x-tree-view-pro/hooks';
|
|
29
|
+
-const apiRef = useTreeViewApiRef();
|
|
30
|
+
+const apiRef = useRichTreeViewProApiRef();
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
- 📚 [Tutorial](https://mui.com/x/react-data-grid/tutorials/server-side-data/) on building a Data Grid with server-side data
|
|
34
|
+
- 🐞 Bugfixes
|
|
35
|
+
|
|
36
|
+
Special thanks go out to this community member for their valuable contributions:
|
|
37
|
+
@kzhgit
|
|
38
|
+
|
|
39
|
+
The following team members contributed to this release:
|
|
40
|
+
@alexfauquette, @arminmeh, @bernardobelchior, @cherniavskii, @flaviendelangle, @JCQuintas, @mapache-salvaje, @michelengelen, @noraleonte, @oliviertassinari
|
|
41
|
+
|
|
42
|
+
### Data Grid
|
|
43
|
+
|
|
44
|
+
#### `@mui/x-data-grid@8.22.0`
|
|
45
|
+
|
|
46
|
+
- [DataGrid] Sync component props with theme defaults (#20590) @michelengelen
|
|
47
|
+
- [DataGrid] Add fallback for CSS `color-mix` if it is unsupported (#20597) @cherniavskii
|
|
48
|
+
- [DataGrid] Use `baseTooltip` slot for column header sort icon (#20460) @kzhgit
|
|
49
|
+
|
|
50
|
+
#### `@mui/x-data-grid-pro@8.22.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
51
|
+
|
|
52
|
+
Same changes as in `@mui/x-data-grid@8.22.0`.
|
|
53
|
+
|
|
54
|
+
#### `@mui/x-data-grid-premium@8.22.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
55
|
+
|
|
56
|
+
Same changes as in `@mui/x-data-grid-pro@8.22.0`, plus:
|
|
57
|
+
|
|
58
|
+
- [DataGridPremium] Handle pivoting column name generation for empty strings (#20608) @arminmeh
|
|
59
|
+
- [DataGridPremium] Pass a row with aggregated value to the custom aggregation function `valueFormatter` (#20607) @arminmeh
|
|
60
|
+
|
|
61
|
+
### Date and Time Pickers
|
|
62
|
+
|
|
63
|
+
#### `@mui/x-date-pickers@8.22.0`
|
|
64
|
+
|
|
65
|
+
- [pickers] Fix invalid date tests (#20606) @michelengelen
|
|
66
|
+
|
|
67
|
+
#### `@mui/x-date-pickers-pro@8.22.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
68
|
+
|
|
69
|
+
Same changes as in `@mui/x-date-pickers@8.22.0`.
|
|
70
|
+
|
|
71
|
+
### Charts
|
|
72
|
+
|
|
73
|
+
#### `@mui/x-charts@8.22.0`
|
|
74
|
+
|
|
75
|
+
- [charts] Add consistent animation duration and timing (#20564) @JCQuintas
|
|
76
|
+
- [charts] Extract a tooltip plugin from the interaction one (#20591) @alexfauquette
|
|
77
|
+
- [charts] General type improvements (#20565) @JCQuintas
|
|
78
|
+
- [charts] Place ordinal ticks according to a continuous scale (#19808) @alexfauquette
|
|
79
|
+
- [charts] Remove layout data from the tooltip internals (#20548) @alexfauquette
|
|
80
|
+
- [charts] Remove usage of focus outline for item highlight (#19856) @alexfauquette
|
|
81
|
+
- [charts] Simplify `MarkPlot` by moving calculation to `useMarkPlotData` (#20570) @JCQuintas
|
|
82
|
+
- [charts] Use `store.state` over `store.getSnapshot()` (#20616) @bernardobelchior
|
|
83
|
+
- [charts] Vendor flatqueue (#20610) @bernardobelchior
|
|
84
|
+
- [charts] Extract pie layout computation (#20611) @alexfauquette
|
|
85
|
+
- [charts][infra] Enable `@typescript-eslint/consistent-type-imports` eslint rules (#20560) @JCQuintas
|
|
86
|
+
- [charts][infra] Enable `import/no-cycle` eslint rules (#20554) @JCQuintas
|
|
87
|
+
|
|
88
|
+
#### `@mui/x-charts-pro@8.22.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
89
|
+
|
|
90
|
+
Same changes as in `@mui/x-charts@8.22.0`, plus:
|
|
91
|
+
|
|
92
|
+
- [charts-pro] Display sankey labels on top of nodes (#20569) @alexfauquette
|
|
93
|
+
|
|
94
|
+
#### `@mui/x-charts-premium@8.22.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
95
|
+
|
|
96
|
+
Same changes as in `@mui/x-charts-pro@8.22.0`.
|
|
97
|
+
|
|
98
|
+
### Tree View
|
|
99
|
+
|
|
100
|
+
#### `@mui/x-tree-view@8.22.0`
|
|
101
|
+
|
|
102
|
+
- [tree view] Expose one hook per component to initialize the `apiRef` (#20235) @flaviendelangle
|
|
103
|
+
- [tree view] Update the typing of `updateItemChildren()` to accept `null` (#20483) @noraleonte
|
|
104
|
+
|
|
105
|
+
#### `@mui/x-tree-view-pro@8.22.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
106
|
+
|
|
107
|
+
Same changes as in `@mui/x-tree-view@8.22.0`.
|
|
108
|
+
|
|
109
|
+
### Codemod
|
|
110
|
+
|
|
111
|
+
#### `@mui/x-codemod@8.22.0`
|
|
112
|
+
|
|
113
|
+
Internal changes.
|
|
114
|
+
|
|
115
|
+
### Docs
|
|
116
|
+
|
|
117
|
+
- [docs] Add tutorial on building a Data Grid with server-side data (DX-22) (#19782) @mapache-salvaje
|
|
118
|
+
- [docs] Modify the default value for the stacking demo (#20596) @alexfauquette
|
|
119
|
+
- [docs] Revise the Charts Custom Components doc (#19793) @mapache-salvaje
|
|
120
|
+
- [docs] Remove copy-pasted `aria-label` (#20620) @alexfauquette
|
|
121
|
+
|
|
122
|
+
### Core
|
|
123
|
+
|
|
124
|
+
- [internal] Remove unsafe dependency version from range (#20574) @oliviertassinari
|
|
125
|
+
|
|
126
|
+
### Miscellaneous
|
|
127
|
+
|
|
128
|
+
- Bump `@mui/monorepo` digest to `800638d` (#20337) @renovate[bot]
|
|
129
|
+
- Bump `@next/eslint-plugin-next` to `15.5.7` (#20575) @renovate[bot]
|
|
130
|
+
- Bump GitHub Actions (#20577) @renovate[bot]
|
|
131
|
+
- Bump Tanstack query to `^5.90.12` (#20582) @renovate[bot]
|
|
132
|
+
- Bump Vite & Vitest (#20583) @renovate[bot]
|
|
133
|
+
- Bump `eslint` to `^8.48.1` (#20576) @renovate[bot]
|
|
134
|
+
- Bump `markdown-to-jsx` to `^9.3.2` (#20507) @renovate[bot]
|
|
135
|
+
- Bump `motion` to `^12.23.25` (#20579) @renovate[bot]
|
|
136
|
+
- Bump react monorepo to `19.2.1` (#20581) @renovate[bot]
|
|
137
|
+
- Bump `react-hook-form` to `^7.68.0` (#20584) @renovate[bot]
|
|
138
|
+
- Bump `react-router` to `^7.10.1` (#20341) @renovate[bot]
|
|
139
|
+
- Bump `tsx` to `^4.21.0` (#20585) @renovate[bot]
|
|
140
|
+
- Bump MUI infra packages (#20478) @renovate[bot]
|
|
141
|
+
- [infra] Automatically add teams to release PRs (#20558) @JCQuintas
|
|
142
|
+
- [infra] Fix codeowners typo (#20562) @JCQuintas
|
|
143
|
+
|
|
144
|
+
## 8.21.0
|
|
145
|
+
|
|
146
|
+
_Dec 3, 2025_
|
|
147
|
+
|
|
148
|
+
We'd like to extend a big thank you to the 8 contributors who made this release possible. Here are some highlights ✨:
|
|
149
|
+
|
|
150
|
+
- ✨ Add [tick spacing property](https://mui.com/x/react-charts/axis/#tick-spacing) to charts axis to control the distance between ticks.
|
|
151
|
+
|
|
152
|
+
The following team members contributed to this release:
|
|
153
|
+
@alexfauquette, @bernardobelchior, @ElliottMiller, @Janpot, @JCQuintas, @romgrk, @sai6855, @siriwatknp
|
|
154
|
+
|
|
155
|
+
### Data Grid
|
|
156
|
+
|
|
157
|
+
#### `@mui/x-data-grid@8.21.0`
|
|
158
|
+
|
|
159
|
+
- [DataGrid] Fix autosizing header width calculation (#20323) @siriwatknp
|
|
160
|
+
- [DataGrid] Virtualizer refactor (#19465) @romgrk
|
|
161
|
+
|
|
162
|
+
#### `@mui/x-data-grid-pro@8.21.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
163
|
+
|
|
164
|
+
Same changes as in `@mui/x-data-grid@8.21.0`.
|
|
165
|
+
|
|
166
|
+
#### `@mui/x-data-grid-premium@8.21.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
167
|
+
|
|
168
|
+
Same changes as in `@mui/x-data-grid-pro@8.21.0`, plus:
|
|
169
|
+
|
|
170
|
+
- [DataGridPremium] Prevent pasting to non-editable cells (#20333) @ElliottMiller
|
|
171
|
+
|
|
172
|
+
### Date and Time Pickers
|
|
173
|
+
|
|
174
|
+
#### `@mui/x-date-pickers@8.21.0`
|
|
175
|
+
|
|
176
|
+
Internal changes.
|
|
177
|
+
|
|
178
|
+
#### `@mui/x-date-pickers-pro@8.21.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
179
|
+
|
|
180
|
+
Same changes as in `@mui/x-date-pickers@8.21.0`.
|
|
181
|
+
|
|
182
|
+
### Charts
|
|
183
|
+
|
|
184
|
+
#### `@mui/x-charts@8.21.0`
|
|
185
|
+
|
|
186
|
+
- [charts] Fix string measuring types (#20454) @bernardobelchior
|
|
187
|
+
- [charts] Fix typo in performance note for CustomLineMarks demo (#20529) @sai6855
|
|
188
|
+
- [charts] Introduce the notion of series with positions (#20461) @alexfauquette
|
|
189
|
+
- [charts] Migrate from sinon to Vitest mocking utilities for x-charts\* packages (#20444) @Copilot
|
|
190
|
+
- [charts] Move series-level values to series computed data in bar plot (#20467) @bernardobelchior
|
|
191
|
+
- [charts] Refactor bar chart components in preparation for range bar chart (#20521) @bernardobelchior
|
|
192
|
+
- [charts] Remove unnecessary `any` types (#20527) @sai6855
|
|
193
|
+
- [charts] Remove unused `drawingArea` from `findClosestPoints` (#20471) @bernardobelchior
|
|
194
|
+
- [charts] Revert `useIsHydrated` to default=false (#20511) @JCQuintas
|
|
195
|
+
- [charts] Support tooltip anchor position for radar (#20422) @alexfauquette
|
|
196
|
+
- [charts] Add tick spacing property (#20282) @bernardobelchior
|
|
197
|
+
- [charts] Fix Vitest lint error (#20550) @bernardobelchior
|
|
198
|
+
- [charts] Fix infinite loop when highlighting pie slices or scatter points (#20549) @bernardobelchior
|
|
199
|
+
|
|
200
|
+
#### `@mui/x-charts-pro@8.21.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
201
|
+
|
|
202
|
+
Same changes as in `@mui/x-charts@8.21.0`, plus:
|
|
203
|
+
|
|
204
|
+
- [charts-pro] Add support for `anchor="node"` on Sankey tooltip (#20462) @alexfauquette
|
|
205
|
+
|
|
206
|
+
#### `@mui/x-charts-premium@8.21.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
207
|
+
|
|
208
|
+
Same changes as in `@mui/x-charts-pro@8.21.0`.
|
|
209
|
+
|
|
210
|
+
### Tree View
|
|
211
|
+
|
|
212
|
+
#### `@mui/x-tree-view@8.21.0`
|
|
213
|
+
|
|
214
|
+
Internal changes.
|
|
215
|
+
|
|
216
|
+
#### `@mui/x-tree-view-pro@8.21.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
217
|
+
|
|
218
|
+
Same changes as in `@mui/x-tree-view@8.21.0`.
|
|
219
|
+
|
|
220
|
+
### Codemod
|
|
221
|
+
|
|
222
|
+
#### `@mui/x-codemod@8.21.0`
|
|
223
|
+
|
|
224
|
+
Internal changes.
|
|
225
|
+
|
|
226
|
+
### Docs
|
|
227
|
+
|
|
228
|
+
- [docs] Migrate to `next/font` for fonts loading (#20407) @Copilot
|
|
229
|
+
|
|
230
|
+
### Core
|
|
231
|
+
|
|
232
|
+
- [code-infra] Enable vitest eslint plugin (#20530) @Janpot
|
|
233
|
+
- [code-infra] Fix missing font loading for local fonts (#20480) @Janpot
|
|
234
|
+
- [internal] Performance: use raw `useSyncExternalStore` (#20447) @romgrk
|
|
235
|
+
- [code-infra] Enable `vitest/expect-expect` and `vitest/no-standalone-expect` rules for x-charts packages (#20535) @Copilot
|
|
236
|
+
|
|
237
|
+
### Miscellaneous
|
|
238
|
+
|
|
239
|
+
- Bump @types/d3-sankey to ^0.12.5 (#20489) @renovate[bot]
|
|
240
|
+
- Bump @types/react to 19.2.7 (#20490) @renovate[bot]
|
|
241
|
+
- Bump @types/yargs to ^17.0.35 (#20491) @renovate[bot]
|
|
242
|
+
- Bump Vite & Vitest to ^4.0.14 (#20500) @renovate[bot]
|
|
243
|
+
- Bump csstype to ^3.2.3 (#20493) @renovate[bot]
|
|
244
|
+
- Bump es-toolkit to ^1.42.0 (#20494) @renovate[bot]
|
|
245
|
+
- Bump eslint to ^8.48.0 (#20495) @renovate[bot]
|
|
246
|
+
- Bump lerna to ^9.0.3 (#20496) @renovate[bot]
|
|
247
|
+
- Bump lucide-react to ^0.555.0 (#20502) @renovate[bot]
|
|
248
|
+
- Bump playwright monorepo (#20503) @renovate[bot]
|
|
249
|
+
- Bump pnpm to 10.24.0 (#20504) @renovate[bot]
|
|
250
|
+
- Bump react monorepo (#20340) @renovate[bot]
|
|
251
|
+
- Bump react-hook-form to ^7.66.1 (#20497) @renovate[bot]
|
|
252
|
+
- Bump rimraf to ^6.1.2 (#20498) @renovate[bot]
|
|
253
|
+
- Bump webpack-bundle-analyzer to ^5.0.1 (#20508) @renovate[bot]
|
|
254
|
+
- Bump next to ^15.5.7 [SECURITY] (#20555) @renovate[bot]
|
|
255
|
+
|
|
8
256
|
## 8.20.0
|
|
9
257
|
|
|
10
258
|
_Nov 26, 2025_
|
|
@@ -50,7 +50,7 @@ const configuration = {
|
|
|
50
50
|
useGridParamsOverridableMethods: _useGridParamsOverridableMethods.useGridParamsOverridableMethods
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
|
-
const releaseInfo = "
|
|
53
|
+
const releaseInfo = "MTc2NTQxMTIwMDAwMA==";
|
|
54
54
|
const watermark = /*#__PURE__*/(0, _jsxRuntime.jsx)(_xLicense.Watermark, {
|
|
55
55
|
packageName: "x-data-grid-premium",
|
|
56
56
|
releaseInfo: releaseInfo
|
|
@@ -43,7 +43,7 @@ const configuration = {
|
|
|
43
43
|
useGridParamsOverridableMethods
|
|
44
44
|
}
|
|
45
45
|
};
|
|
46
|
-
const releaseInfo = "
|
|
46
|
+
const releaseInfo = "MTc2NTQxMTIwMDAwMA==";
|
|
47
47
|
const watermark = /*#__PURE__*/_jsx(Watermark, {
|
|
48
48
|
packageName: "x-data-grid-premium",
|
|
49
49
|
releaseInfo: releaseInfo
|
|
@@ -73,7 +73,13 @@ const getGroupAggregatedValue = (groupId, apiRef, aggregationRowsScope, aggregat
|
|
|
73
73
|
groupId,
|
|
74
74
|
field: aggregatedField // Added per user request in https://github.com/mui/mui-x/issues/6995#issuecomment-1327423455
|
|
75
75
|
}, publicApi);
|
|
76
|
-
|
|
76
|
+
|
|
77
|
+
// Use the actual row from rowLookup if it exists, otherwise pass a new autogenerated row
|
|
78
|
+
const rowForFormatter = rowLookup[groupId] || {
|
|
79
|
+
id: groupId,
|
|
80
|
+
[aggregatedField]: value
|
|
81
|
+
};
|
|
82
|
+
const formattedValue = aggregationFunction.valueFormatter ? aggregationFunction.valueFormatter(value, rowForFormatter, columnsLookup[aggregatedField], apiRef) : undefined;
|
|
77
83
|
|
|
78
84
|
// Only add to groupAggregationLookup if position is not null
|
|
79
85
|
if (position !== null) {
|
|
@@ -78,6 +78,12 @@ class CellValueUpdater {
|
|
|
78
78
|
if (!row) {
|
|
79
79
|
return;
|
|
80
80
|
}
|
|
81
|
+
|
|
82
|
+
// Check if the cell is editable using the API method, which respects the isCellEditable prop
|
|
83
|
+
const cellParams = apiRef.current.getCellParams(rowId, field);
|
|
84
|
+
if (!apiRef.current.isCellEditable(cellParams)) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
81
87
|
let parsedValue = pastedCellValue;
|
|
82
88
|
if (colDef.pastedValueParser) {
|
|
83
89
|
parsedValue = colDef.pastedValueParser(pastedCellValue, row, colDef, apiRef);
|
|
@@ -167,7 +167,13 @@ export const createPivotPropsFromRows = ({
|
|
|
167
167
|
if (!column) {
|
|
168
168
|
continue;
|
|
169
169
|
}
|
|
170
|
-
|
|
170
|
+
const noValueString = '(No value)';
|
|
171
|
+
let colValue = apiRef.current.getRowValue(row, column) ?? noValueString;
|
|
172
|
+
// Handle empty strings to prevent issues with column grouping model
|
|
173
|
+
// https://github.com/mui/mui-x/issues/20552
|
|
174
|
+
if (colValue === '') {
|
|
175
|
+
colValue = noValueString;
|
|
176
|
+
}
|
|
171
177
|
if (column.type === 'singleSelect') {
|
|
172
178
|
const singleSelectColumn = column;
|
|
173
179
|
if (singleSelectColumn.getOptionLabel) {
|
package/esm/index.js
CHANGED
|
@@ -80,7 +80,13 @@ const getGroupAggregatedValue = (groupId, apiRef, aggregationRowsScope, aggregat
|
|
|
80
80
|
groupId,
|
|
81
81
|
field: aggregatedField // Added per user request in https://github.com/mui/mui-x/issues/6995#issuecomment-1327423455
|
|
82
82
|
}, publicApi);
|
|
83
|
-
|
|
83
|
+
|
|
84
|
+
// Use the actual row from rowLookup if it exists, otherwise pass a new autogenerated row
|
|
85
|
+
const rowForFormatter = rowLookup[groupId] || {
|
|
86
|
+
id: groupId,
|
|
87
|
+
[aggregatedField]: value
|
|
88
|
+
};
|
|
89
|
+
const formattedValue = aggregationFunction.valueFormatter ? aggregationFunction.valueFormatter(value, rowForFormatter, columnsLookup[aggregatedField], apiRef) : undefined;
|
|
84
90
|
|
|
85
91
|
// Only add to groupAggregationLookup if position is not null
|
|
86
92
|
if (position !== null) {
|
|
@@ -86,6 +86,12 @@ class CellValueUpdater {
|
|
|
86
86
|
if (!row) {
|
|
87
87
|
return;
|
|
88
88
|
}
|
|
89
|
+
|
|
90
|
+
// Check if the cell is editable using the API method, which respects the isCellEditable prop
|
|
91
|
+
const cellParams = apiRef.current.getCellParams(rowId, field);
|
|
92
|
+
if (!apiRef.current.isCellEditable(cellParams)) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
89
95
|
let parsedValue = pastedCellValue;
|
|
90
96
|
if (colDef.pastedValueParser) {
|
|
91
97
|
parsedValue = colDef.pastedValueParser(pastedCellValue, row, colDef, apiRef);
|
|
@@ -177,7 +177,13 @@ const createPivotPropsFromRows = ({
|
|
|
177
177
|
if (!column) {
|
|
178
178
|
continue;
|
|
179
179
|
}
|
|
180
|
-
|
|
180
|
+
const noValueString = '(No value)';
|
|
181
|
+
let colValue = apiRef.current.getRowValue(row, column) ?? noValueString;
|
|
182
|
+
// Handle empty strings to prevent issues with column grouping model
|
|
183
|
+
// https://github.com/mui/mui-x/issues/20552
|
|
184
|
+
if (colValue === '') {
|
|
185
|
+
colValue = noValueString;
|
|
186
|
+
}
|
|
181
187
|
if (column.type === 'singleSelect') {
|
|
182
188
|
const singleSelectColumn = column;
|
|
183
189
|
if (singleSelectColumn.getOptionLabel) {
|
package/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-data-grid-premium",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.22.0",
|
|
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",
|
|
@@ -38,10 +38,10 @@
|
|
|
38
38
|
"@mui/x-internal-exceljs-fork": "4.4.3",
|
|
39
39
|
"clsx": "^2.1.1",
|
|
40
40
|
"prop-types": "^15.8.1",
|
|
41
|
-
"@mui/x-data-grid": "8.
|
|
42
|
-
"@mui/x-data-grid-pro": "8.
|
|
43
|
-
"@mui/x-internals": "8.
|
|
44
|
-
"@mui/x-license": "8.
|
|
41
|
+
"@mui/x-data-grid": "8.22.0",
|
|
42
|
+
"@mui/x-data-grid-pro": "8.22.0",
|
|
43
|
+
"@mui/x-internals": "8.22.0",
|
|
44
|
+
"@mui/x-license": "8.22.0"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"@emotion/react": "^11.9.0",
|