@mui/x-data-grid-premium 8.10.2 → 8.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +214 -13
  2. package/DataGridPremium/DataGridPremium.js +6 -4
  3. package/DataGridPremium/useDataGridPremiumComponent.d.ts +2 -1
  4. package/DataGridPremium/useDataGridPremiumComponent.js +2 -2
  5. package/esm/DataGridPremium/DataGridPremium.js +6 -4
  6. package/esm/DataGridPremium/useDataGridPremiumComponent.d.ts +2 -1
  7. package/esm/DataGridPremium/useDataGridPremiumComponent.js +2 -2
  8. package/esm/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +1 -0
  9. package/esm/hooks/features/clipboard/useGridClipboardImport.js +1 -1
  10. package/esm/hooks/features/export/serializer/setupExcelExportWebWorker.js +1 -2
  11. package/esm/hooks/features/rowGrouping/createGroupingColDef.d.ts +2 -1
  12. package/esm/hooks/features/rowGrouping/createGroupingColDef.js +31 -7
  13. package/esm/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +1 -0
  14. package/esm/hooks/features/rowGrouping/gridRowGroupingUtils.js +5 -1
  15. package/esm/hooks/features/rowGrouping/useGridRowGrouping.d.ts +1 -1
  16. package/esm/hooks/features/rowGrouping/useGridRowGrouping.js +48 -2
  17. package/esm/hooks/features/rowReorder/operations.d.ts +40 -0
  18. package/esm/hooks/features/rowReorder/operations.js +535 -0
  19. package/esm/hooks/features/rowReorder/reorderExecutor.d.ts +15 -0
  20. package/esm/hooks/features/rowReorder/reorderExecutor.js +25 -0
  21. package/esm/hooks/features/rowReorder/reorderValidator.d.ts +16 -0
  22. package/esm/hooks/features/rowReorder/reorderValidator.js +116 -0
  23. package/esm/hooks/features/rowReorder/types.d.ts +42 -0
  24. package/esm/hooks/features/rowReorder/types.js +1 -0
  25. package/esm/hooks/features/rowReorder/utils.d.ts +127 -0
  26. package/esm/hooks/features/rowReorder/utils.js +343 -0
  27. package/esm/hooks/features/rows/useGridRowsOverridableMethods.d.ts +7 -0
  28. package/esm/hooks/features/rows/useGridRowsOverridableMethods.js +52 -0
  29. package/esm/index.js +1 -1
  30. package/esm/models/gridGroupingValueSetter.d.ts +14 -0
  31. package/esm/models/gridGroupingValueSetter.js +1 -0
  32. package/esm/models/index.d.ts +1 -0
  33. package/esm/models/index.js +1 -0
  34. package/esm/typeOverloads/modules.d.ts +7 -1
  35. package/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +1 -0
  36. package/hooks/features/clipboard/useGridClipboardImport.js +1 -1
  37. package/hooks/features/export/serializer/setupExcelExportWebWorker.js +1 -2
  38. package/hooks/features/rowGrouping/createGroupingColDef.d.ts +2 -1
  39. package/hooks/features/rowGrouping/createGroupingColDef.js +31 -7
  40. package/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +1 -0
  41. package/hooks/features/rowGrouping/gridRowGroupingUtils.js +5 -1
  42. package/hooks/features/rowGrouping/useGridRowGrouping.d.ts +1 -1
  43. package/hooks/features/rowGrouping/useGridRowGrouping.js +46 -0
  44. package/hooks/features/rowReorder/operations.d.ts +40 -0
  45. package/hooks/features/rowReorder/operations.js +546 -0
  46. package/hooks/features/rowReorder/reorderExecutor.d.ts +15 -0
  47. package/hooks/features/rowReorder/reorderExecutor.js +31 -0
  48. package/hooks/features/rowReorder/reorderValidator.d.ts +16 -0
  49. package/hooks/features/rowReorder/reorderValidator.js +122 -0
  50. package/hooks/features/rowReorder/types.d.ts +42 -0
  51. package/hooks/features/rowReorder/types.js +5 -0
  52. package/hooks/features/rowReorder/utils.d.ts +127 -0
  53. package/hooks/features/rowReorder/utils.js +360 -0
  54. package/hooks/features/rows/useGridRowsOverridableMethods.d.ts +7 -0
  55. package/hooks/features/rows/useGridRowsOverridableMethods.js +60 -0
  56. package/index.js +1 -1
  57. package/models/gridGroupingValueSetter.d.ts +14 -0
  58. package/models/gridGroupingValueSetter.js +5 -0
  59. package/models/index.d.ts +1 -0
  60. package/models/index.js +11 -0
  61. package/package.json +14 -14
  62. package/typeOverloads/modules.d.ts +7 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,201 @@
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.11.1
9
+
10
+ _Sep 4, 2025_
11
+
12
+ We'd like to extend a big thank you to the 6 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ Special thanks go out to the community members for their valuable contributions:
15
+ @sai6855
16
+
17
+ The following are all team members who have contributed to this release:
18
+ @brijeshb42, @flaviendelangle, @JCQuintas, @mapache-salvaje, @oliviertassinari
19
+
20
+ ### Data Grid
21
+
22
+ #### `@mui/x-data-grid@8.11.1`
23
+
24
+ - [DataGrid] Refine types in `GridCell` component (#19384) @sai6855
25
+
26
+ #### `@mui/x-data-grid-pro@8.11.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
27
+
28
+ Same changes as in `@mui/x-data-grid@8.11.1`.
29
+
30
+ #### `@mui/x-data-grid-premium@8.11.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
31
+
32
+ Same changes as in `@mui/x-data-grid-pro@8.11.1`.
33
+
34
+ ### Date and Time Pickers
35
+
36
+ #### `@mui/x-date-pickers@8.11.1`
37
+
38
+ - [pickers] Merge `slotProps` for input adornment in `PickerFieldUI` component (#19399) @sai6855
39
+
40
+ #### `@mui/x-date-pickers-pro@8.11.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
41
+
42
+ Same changes as in `@mui/x-date-pickers@8.11.1`.
43
+
44
+ ### Charts
45
+
46
+ #### `@mui/x-charts@8.11.1`
47
+
48
+ - [charts] Prevent crash and warn user on incorrect `axisId` when composing (#19397) @JCQuintas
49
+
50
+ #### `@mui/x-charts-pro@8.11.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
51
+
52
+ Same changes as in `@mui/x-charts@8.11.1`.
53
+
54
+ ### Tree View
55
+
56
+ #### `@mui/x-tree-view@8.11.1`
57
+
58
+ - [tree view] Expose the methods to manually refetch the children of an item (#19248) @flaviendelangle
59
+ - [tree view] Use the shared store implementation instead of the custom one (#19261) @flaviendelangle
60
+
61
+ #### `@mui/x-tree-view-pro@8.11.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
62
+
63
+ Same changes as in `@mui/x-tree-view@8.11.1`.
64
+
65
+ ### Codemod
66
+
67
+ #### `@mui/x-codemod@8.11.1`
68
+
69
+ Internal changes.
70
+
71
+ ### Docs
72
+
73
+ - [docs] Fix grammar and spelling mistakes on the Date and Time Pickers pages (#19300) @mapache-salvaje
74
+ - [docs] Remove wrong legend info (#19383) @JCQuintas
75
+
76
+ ### Core
77
+
78
+ - [internal] Fix action alert (#19388) @oliviertassinari
79
+ - [internal] Fix pnpm valelint to have 0 errors @oliviertassinari
80
+ - [infra] Remove "main" fields from publishable packages (#19407) @brijeshb42
81
+
82
+ ## 8.11.0
83
+
84
+ _Aug 29, 2025_
85
+
86
+ We'd like to extend a big thank you to the 19 contributors who made this release possible. Here are some highlights ✨:
87
+
88
+ - 📊 Add new `SankeyChart`
89
+
90
+ <img height="300" alt="Screenshot 2025-07-24 at 12 54 33" src="https://github.com/user-attachments/assets/d77bcec1-044b-48c6-b37d-d7b74793b91c" />
91
+
92
+ - 🚀 Data Grid row grouping now supports row reordering
93
+
94
+ See the [Drag-and-drop group reordering](https://mui.com/x/react-data-grid/row-grouping/#drag-and-drop-group-reordering) section for more details.
95
+
96
+ - 📚 Documentation improvements
97
+
98
+ Special thanks go out to the community members for their valuable contributions:
99
+ @dwrth, @lauri865, @Webini
100
+
101
+ The following are all team members who have contributed to this release:
102
+ @alexfauquette, @arminmeh, @brijeshb42, @cherniavskii, @flaviendelangle, @Janpot, @JCQuintas, @mapache-salvaje, @MBilalShafi, @michelengelen, @noraleonte, @oliviertassinari, @rita-codes, @romgrk, @sai6855, @siriwatknp
103
+
104
+ ### Data Grid
105
+
106
+ #### `@mui/x-data-grid@8.11.0`
107
+
108
+ - [DataGrid] Fix focused column header scroll jump (#19323) @lauri865
109
+ - [DataGrid] Bring `columnUnsortedIcon` slot back (#19268) @arminmeh
110
+ - [DataGrid] Do not add `menu` role to the empty actions menu (#19338) @arminmeh
111
+ - [DataGrid] Fix `columnsManagementRow` style override slot not working (#19097) @dwrth
112
+ - [DataGrid] Fix pagination state synchronization issue (#19290) @MBilalShafi
113
+ - [DataGrid] Fix scroll issue in R17 (#19265) @romgrk
114
+ - [DataGrid] Hide column separator of non-resizable pinned column (#19277) @arminmeh
115
+
116
+ #### `@mui/x-data-grid-pro@8.11.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
117
+
118
+ Same changes as in `@mui/x-data-grid@8.11.0`, plus:
119
+
120
+ - [DataGridPro] Fix column menu sort when `multipleColumnsSortingMode="always"` (#19099) @MBilalShafi
121
+ - [DataGridPro] Keep the drop effect if `keepColumnPositionIfDraggedOutside` is enabled (#19372) @arminmeh
122
+
123
+ #### `@mui/x-data-grid-premium@8.11.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
124
+
125
+ Same changes as in `@mui/x-data-grid-pro@8.11.0`, plus:
126
+
127
+ - [DataGridPremium] Fix `valueFormatter` issues when `rowGroupingColumnMode="single"` (#18967) @cherniavskii
128
+ - [DataGridPremium] Reordering support for row grouping (#18251) @MBilalShafi
129
+
130
+ ### Date and Time Pickers
131
+
132
+ #### `@mui/x-date-pickers@8.11.0`
133
+
134
+ - [pickers] Fix Firefox bug causing crash when `startContainer` is a restricted object (#18772) @Webini
135
+ - [pickers] RTL not applied correctly for Calendar Systems examples (works in v7.x but broken in latest version) (#19287) @rita-codes
136
+ - [pickers] Use the locale week day on the Luxon adapter (#19230) @flaviendelangle
137
+ - [pickers] Fix display of placeholder when label is shrunk (#19318) @sai6855
138
+
139
+ #### `@mui/x-date-pickers-pro@8.11.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
140
+
141
+ Same changes as in `@mui/x-date-pickers@8.11.0`.
142
+
143
+ ### Charts
144
+
145
+ #### `@mui/x-charts@8.11.0`
146
+
147
+ - [charts] Add `RadarAxis` component to render labels (#19240) @alexfauquette
148
+ - [charts] Handle item identifier with data (#19295) @JCQuintas
149
+ - [charts] Refactor optional chaining for props in PieChart, PieChartPro, and ScatterChartPro components (#19292) @sai6855
150
+ - [charts] Remove unused `fill` and `stroke` properties (#19316) @sai6855
151
+ - [charts] Correct `hideLegend` prop description in docs (#19371) @sai6855
152
+
153
+ #### `@mui/x-charts-pro@8.11.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
154
+
155
+ Same changes as in `@mui/x-charts@8.11.0`, plus:
156
+
157
+ - [charts-pro] Add new `SankeyChart` (#18895) @JCQuintas
158
+
159
+ ### Tree View
160
+
161
+ #### `@mui/x-tree-view@8.11.0`
162
+
163
+ - [tree view] Improve the typing of the item's checkbox `slotProps` (#19247) @flaviendelangle
164
+
165
+ #### `@mui/x-tree-view-pro@8.11.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
166
+
167
+ Same changes as in `@mui/x-tree-view@8.11.0`.
168
+
169
+ ### Codemod
170
+
171
+ #### `@mui/x-codemod@8.11.0`
172
+
173
+ Internal changes.
174
+
175
+ ### Docs
176
+
177
+ - [docs][TreeView] Fix grammar and spelling mistakes (#19299) @mapache-salvaje
178
+ - [docs][DataGrid] Add pagination number formatting doc with a demo (#19221) @siriwatknp
179
+ - [docs][Charts] Correct some small grammar mistakes (#19297) @mapache-salvaje
180
+ - [docs][DataGrid] Correct grammar mistakes (#19298) @mapache-salvaje
181
+ - [docs][DataGrid] Make it clear that the API key for AI Assistant must be private (#19244) @oliviertassinari
182
+
183
+ ### Core
184
+
185
+ - [code-infra] Remove unnecessary triggers from publish workflow (#19348) @Janpot
186
+ - [code-infra] Set up publishing from GitHub actions (#19264) @Janpot
187
+ - [code-infra] Update renovate, exclude infra packages from MUI group (#19288) @Janpot
188
+ - [internal] Add comment for Codspeed triggers (#19302) @oliviertassinari
189
+ - [internal] Fix changelog generation for infra tags (#19266) @oliviertassinari
190
+ - [internal] Remove dead repository field (#19301) @oliviertassinari
191
+ - [internal] Sentence case @oliviertassinari
192
+ - [internal] Update 8.10.1 changelog with missing changes (#19345) @cherniavskii
193
+ - [support-infra] Improve GitHub Action that check PRs labels (#19303) @oliviertassinari
194
+
195
+ ### Miscellaneous
196
+
197
+ - [infra] Add `synchronize` to workflow triggers (#19342) @michelengelen
198
+ - [infra] Add charts docs folder in codowner (#19317) @alexfauquette
199
+ - [infra] Fix publish workflow complaint (#19346) @JCQuintas
200
+ - [infra] Migrate to use eslint without airbnb config (#19269) @brijeshb42
201
+ - [infra] Simplify release preparation script (#19351) @michelengelen
202
+
8
203
  ## 8.10.2
9
204
 
10
205
  _Aug 20, 2025_
@@ -27,13 +222,13 @@ The following are all team members who have contributed to this release:
27
222
  - [DataGrid] Fix column header sortable classname when using `disableColumnSorting` (#19222) @wilcoschoneveld
28
223
  - [l10n] Improve finnish (fi-FI) locale (#19163) @lauri-heinonen-2025-04
29
224
 
30
- #### `@mui/x-data-grid-pro@8.10.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
225
+ #### `@mui/x-data-grid-pro@8.10.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
31
226
 
32
227
  Same changes as in `@mui/x-data-grid@8.10.2`, plus:
33
228
 
34
229
  - [DataGridPro] Fix quick filter not working in List View mode (#19254) @cherniavskii
35
230
 
36
- #### `@mui/x-data-grid-premium@8.10.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link "Premium plan")
231
+ #### `@mui/x-data-grid-premium@8.10.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
37
232
 
38
233
  Same changes as in `@mui/x-data-grid-pro@8.10.2`.
39
234
 
@@ -43,7 +238,7 @@ Same changes as in `@mui/x-data-grid-pro@8.10.2`.
43
238
 
44
239
  Internal changes.
45
240
 
46
- #### `@mui/x-date-pickers-pro@8.10.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
241
+ #### `@mui/x-date-pickers-pro@8.10.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
47
242
 
48
243
  Same changes as in `@mui/x-date-pickers@8.10.2`.
49
244
 
@@ -53,7 +248,7 @@ Same changes as in `@mui/x-date-pickers@8.10.2`.
53
248
 
54
249
  Internal changes.
55
250
 
56
- #### `@mui/x-charts-pro@8.10.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
251
+ #### `@mui/x-charts-pro@8.10.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
57
252
 
58
253
  Same changes as in `@mui/x-charts@8.10.2`.
59
254
 
@@ -63,7 +258,7 @@ Same changes as in `@mui/x-charts@8.10.2`.
63
258
 
64
259
  - [tree view] Add `aria-hidden` to the Tree Item Checkbox (#19246) @flaviendelangle
65
260
 
66
- #### `@mui/x-tree-view-pro@8.10.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
261
+ #### `@mui/x-tree-view-pro@8.10.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
67
262
 
68
263
  Same changes as in `@mui/x-tree-view@8.10.2`.
69
264
 
@@ -95,13 +290,13 @@ Internal changes.
95
290
 
96
291
  _Aug 15, 2025_
97
292
 
98
- We'd like to extend a big thank you to the 8 contributors who made this release possible. Here are some highlights ✨:
293
+ We'd like to extend a big thank you to the 11 contributors who made this release possible. Here are some highlights ✨:
99
294
 
100
295
  - 📊 Y-axes can now be grouped by category when using `band` and `point` scales.
101
296
  - 📚 Documentation improvements
102
297
 
103
298
  The following are all team members who have contributed to this release:
104
- @alexfauquette, @bernardobelchior, @Janpot, @JCQuintas, @mnajdova, @oliviertassinari, @prakhargupta1, @romgrk
299
+ @alexfauquette, @bernardobelchior, @Janpot, @JCQuintas, @mnajdova, @oliviertassinari, @prakhargupta1, @romgrk, @brijeshb42, @noraleonte, @rita-codes
105
300
 
106
301
  ### Data Grid
107
302
 
@@ -110,12 +305,14 @@ The following are all team members who have contributed to this release:
110
305
  - [DataGrid] Fix scroll jumping (#19156) @romgrk
111
306
  - [DataGrid] Fix scroll restoration (#19182) @romgrk
112
307
  - [DataGrid] Fix "no row with id" error (#19193) @romgrk
308
+ - [DataGrid] Fix missing rows in the print export window (#19159) @cherniavskii
309
+ - [DataGrid] Fix broken scroll (#19178) @romgrk
113
310
 
114
- #### `@mui/x-data-grid-pro@8.10.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
311
+ #### `@mui/x-data-grid-pro@8.10.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
115
312
 
116
313
  Same changes as in `@mui/x-data-grid@8.10.1`.
117
314
 
118
- #### `@mui/x-data-grid-premium@8.10.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link "Premium plan")
315
+ #### `@mui/x-data-grid-premium@8.10.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
119
316
 
120
317
  Same changes as in `@mui/x-data-grid-pro@8.10.1`.
121
318
 
@@ -125,7 +322,7 @@ Same changes as in `@mui/x-data-grid-pro@8.10.1`.
125
322
 
126
323
  Internal changes.
127
324
 
128
- #### `@mui/x-date-pickers-pro@8.10.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
325
+ #### `@mui/x-date-pickers-pro@8.10.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
129
326
 
130
327
  Same changes as in `@mui/x-date-pickers@8.10.0`.
131
328
 
@@ -141,8 +338,10 @@ Same changes as in `@mui/x-date-pickers@8.10.0`.
141
338
  - [charts] Fix default axis highlight for axes without data attribute (#18985) @alexfauquette
142
339
  - [charts] Fix tooltip mark unexpected wrapping in mobile (#19122) @bernardobelchior
143
340
  - [charts] Prevent overflow on charts tooltip (#19123) @bernardobelchior
341
+ - [charts] Add demo for log-scale ticks without labels (#19152) @bernardobelchior
342
+ - [charts] Update animation customization docs (#19185) @bernardobelchior
144
343
 
145
- #### `@mui/x-charts-pro@8.10.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
344
+ #### `@mui/x-charts-pro@8.10.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
146
345
 
147
346
  Same changes as in `@mui/x-charts@8.10.1`.
148
347
 
@@ -150,9 +349,10 @@ Same changes as in `@mui/x-charts@8.10.1`.
150
349
 
151
350
  #### `@mui/x-tree-view@8.10.1`
152
351
 
153
- Internal changes.
352
+ - [tree view] Fix root not loading from cache on remount (#19088) @noraleonte
353
+ - [tree view] Don't overwrite childrenIds when collapsed to preserve indeterminate state of the parent (#19196) @rita-codes
154
354
 
155
- #### `@mui/x-tree-view-pro@8.10.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
355
+ #### `@mui/x-tree-view-pro@8.10.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
156
356
 
157
357
  Same changes as in `@mui/x-tree-view@8.10.1`.
158
358
 
@@ -182,6 +382,7 @@ Internal changes.
182
382
  - [code-infra] Fix `fs-extra` removal from `formattedTSDemos` script (#19132) @bernardobelchior
183
383
  - [code-infra] Remove unused code and dependency (#19139) @bernardobelchior
184
384
  - [code-infra] Replace `fs-extra` with `node:fs` where possible (#19127) @bernardobelchior
385
+ - [code-infra] Migrate build command to code-infra (#19006) @brijeshb42
185
386
  - [internal] Edit, keep `lockFileMaintenance` simple @oliviertassinari
186
387
  - [internal] Fix writing style action name @oliviertassinari
187
388
  - [internal] Make it clear that `lockFileMaintenance` is enabled @oliviertassinari
@@ -22,6 +22,7 @@ var _useGridAriaAttributes = require("../hooks/utils/useGridAriaAttributes");
22
22
  var _useGridRowAriaAttributes = require("../hooks/features/rows/useGridRowAriaAttributes");
23
23
  var _gridAggregationSelectors = require("../hooks/features/aggregation/gridAggregationSelectors");
24
24
  var _useGridApiContext = require("../hooks/utils/useGridApiContext");
25
+ var _useGridRowsOverridableMethods = require("../hooks/features/rows/useGridRowsOverridableMethods");
25
26
  var _sidebar2 = require("../hooks/features/sidebar");
26
27
  var _jsxRuntime = require("react/jsx-runtime");
27
28
  const configuration = {
@@ -35,10 +36,11 @@ const configuration = {
35
36
  id,
36
37
  field
37
38
  });
38
- }
39
+ },
40
+ useGridRowsOverridableMethods: _useGridRowsOverridableMethods.useGridRowsOverridableMethods
39
41
  }
40
42
  };
41
- const releaseInfo = "MTc1NTY0MDgwMDAwMA==";
43
+ const releaseInfo = "MTc1Njk0NDAwMDAwMA==";
42
44
  const watermark = /*#__PURE__*/(0, _jsxRuntime.jsx)(_xLicense.Watermark, {
43
45
  packageName: "x-data-grid-premium",
44
46
  releaseInfo: releaseInfo
@@ -50,7 +52,7 @@ if (process.env.NODE_ENV !== 'production') {
50
52
  const DataGridPremiumRaw = (0, _forwardRef.forwardRef)(function DataGridPremium(inProps, ref) {
51
53
  const initialProps = (0, _useDataGridPremiumProps.useDataGridPremiumProps)(inProps);
52
54
  const privateApiRef = (0, _internals.useGridApiInitialization)(initialProps.apiRef, initialProps);
53
- const props = (0, _useDataGridPremiumComponent.useDataGridPremiumComponent)(privateApiRef, initialProps);
55
+ const props = (0, _useDataGridPremiumComponent.useDataGridPremiumComponent)(privateApiRef, initialProps, configuration);
54
56
  (0, _xLicense.useLicenseVerifier)('x-data-grid-premium', releaseInfo);
55
57
  if (process.env.NODE_ENV !== 'production') {
56
58
  (0, _internals.validateProps)(props, dataGridPremiumPropValidators);
@@ -914,7 +916,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
914
916
  */
915
917
  onPreferencePanelOpen: _propTypes.default.func,
916
918
  /**
917
- * Callback called when `processRowUpdate` throws an error or rejects.
919
+ * Callback called when `processRowUpdate()` throws an error or rejects.
918
920
  * @param {any} error The error thrown.
919
921
  */
920
922
  onProcessRowUpdateError: _propTypes.default.func,
@@ -1,4 +1,5 @@
1
1
  import { RefObject } from '@mui/x-internals/types';
2
+ import { type GridConfiguration } from '@mui/x-data-grid-pro/internals';
2
3
  import { GridPrivateApiPremium } from "../models/gridApiPremium.js";
3
4
  import { DataGridPremiumProcessedProps } from "../models/dataGridPremiumProps.js";
4
- export declare const useDataGridPremiumComponent: (apiRef: RefObject<GridPrivateApiPremium>, inProps: DataGridPremiumProcessedProps) => DataGridPremiumProcessedProps;
5
+ export declare const useDataGridPremiumComponent: (apiRef: RefObject<GridPrivateApiPremium>, inProps: DataGridPremiumProcessedProps, configuration: GridConfiguration<GridPrivateApiPremium>) => DataGridPremiumProcessedProps;
@@ -26,7 +26,7 @@ var _useGridAiAssistant = require("../hooks/features/aiAssistant/useGridAiAssist
26
26
  var _useGridSidebar = require("../hooks/features/sidebar/useGridSidebar");
27
27
  // Premium-only features
28
28
 
29
- const useDataGridPremiumComponent = (apiRef, inProps) => {
29
+ const useDataGridPremiumComponent = (apiRef, inProps, configuration) => {
30
30
  const pivotPropsOverrides = (0, _xDataGridPro.useGridSelector)(apiRef, _gridPivotingSelectors.gridPivotPropsOverridesSelector);
31
31
  const props = React.useMemo(() => {
32
32
  if (pivotPropsOverrides) {
@@ -111,7 +111,7 @@ const useDataGridPremiumComponent = (apiRef, inProps) => {
111
111
  (0, _internals.useGridColumnPinning)(apiRef, props);
112
112
  (0, _internals.useGridRowPinning)(apiRef, props);
113
113
  (0, _internals.useGridColumns)(apiRef, props);
114
- (0, _internals.useGridRows)(apiRef, props);
114
+ (0, _internals.useGridRows)(apiRef, props, configuration);
115
115
  (0, _internals.useGridRowSpanning)(apiRef, props);
116
116
  (0, _internals.useGridParamsApi)(apiRef, props);
117
117
  (0, _internals.useGridDetailPanel)(apiRef, props);
@@ -15,6 +15,7 @@ import { useGridAriaAttributesPremium } from "../hooks/utils/useGridAriaAttribut
15
15
  import { useGridRowAriaAttributesPremium } from "../hooks/features/rows/useGridRowAriaAttributes.js";
16
16
  import { gridCellAggregationResultSelector } from "../hooks/features/aggregation/gridAggregationSelectors.js";
17
17
  import { useGridApiContext } from "../hooks/utils/useGridApiContext.js";
18
+ import { useGridRowsOverridableMethods } from "../hooks/features/rows/useGridRowsOverridableMethods.js";
18
19
  import { gridSidebarOpenSelector } from "../hooks/features/sidebar/index.js";
19
20
  import { jsx as _jsx } from "react/jsx-runtime";
20
21
  const configuration = {
@@ -28,10 +29,11 @@ const configuration = {
28
29
  id,
29
30
  field
30
31
  });
31
- }
32
+ },
33
+ useGridRowsOverridableMethods
32
34
  }
33
35
  };
34
- const releaseInfo = "MTc1NTY0MDgwMDAwMA==";
36
+ const releaseInfo = "MTc1Njk0NDAwMDAwMA==";
35
37
  const watermark = /*#__PURE__*/_jsx(Watermark, {
36
38
  packageName: "x-data-grid-premium",
37
39
  releaseInfo: releaseInfo
@@ -43,7 +45,7 @@ if (process.env.NODE_ENV !== 'production') {
43
45
  const DataGridPremiumRaw = forwardRef(function DataGridPremium(inProps, ref) {
44
46
  const initialProps = useDataGridPremiumProps(inProps);
45
47
  const privateApiRef = useGridApiInitialization(initialProps.apiRef, initialProps);
46
- const props = useDataGridPremiumComponent(privateApiRef, initialProps);
48
+ const props = useDataGridPremiumComponent(privateApiRef, initialProps, configuration);
47
49
  useLicenseVerifier('x-data-grid-premium', releaseInfo);
48
50
  if (process.env.NODE_ENV !== 'production') {
49
51
  validateProps(props, dataGridPremiumPropValidators);
@@ -907,7 +909,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
907
909
  */
908
910
  onPreferencePanelOpen: PropTypes.func,
909
911
  /**
910
- * Callback called when `processRowUpdate` throws an error or rejects.
912
+ * Callback called when `processRowUpdate()` throws an error or rejects.
911
913
  * @param {any} error The error thrown.
912
914
  */
913
915
  onProcessRowUpdateError: PropTypes.func,
@@ -1,4 +1,5 @@
1
1
  import { RefObject } from '@mui/x-internals/types';
2
+ import { type GridConfiguration } from '@mui/x-data-grid-pro/internals';
2
3
  import { GridPrivateApiPremium } from "../models/gridApiPremium.js";
3
4
  import { DataGridPremiumProcessedProps } from "../models/dataGridPremiumProps.js";
4
- export declare const useDataGridPremiumComponent: (apiRef: RefObject<GridPrivateApiPremium>, inProps: DataGridPremiumProcessedProps) => DataGridPremiumProcessedProps;
5
+ export declare const useDataGridPremiumComponent: (apiRef: RefObject<GridPrivateApiPremium>, inProps: DataGridPremiumProcessedProps, configuration: GridConfiguration<GridPrivateApiPremium>) => DataGridPremiumProcessedProps;
@@ -18,7 +18,7 @@ import { pivotingStateInitializer, useGridPivoting, useGridPivotingExportState }
18
18
  import { gridPivotPropsOverridesSelector } from "../hooks/features/pivoting/gridPivotingSelectors.js";
19
19
  import { useGridAiAssistant, aiAssistantStateInitializer } from "../hooks/features/aiAssistant/useGridAiAssistant.js";
20
20
  import { useGridSidebar, sidebarStateInitializer } from "../hooks/features/sidebar/useGridSidebar.js";
21
- export const useDataGridPremiumComponent = (apiRef, inProps) => {
21
+ export const useDataGridPremiumComponent = (apiRef, inProps, configuration) => {
22
22
  const pivotPropsOverrides = useGridSelector(apiRef, gridPivotPropsOverridesSelector);
23
23
  const props = React.useMemo(() => {
24
24
  if (pivotPropsOverrides) {
@@ -103,7 +103,7 @@ export const useDataGridPremiumComponent = (apiRef, inProps) => {
103
103
  useGridColumnPinning(apiRef, props);
104
104
  useGridRowPinning(apiRef, props);
105
105
  useGridColumns(apiRef, props);
106
- useGridRows(apiRef, props);
106
+ useGridRows(apiRef, props, configuration);
107
107
  useGridRowSpanning(apiRef, props);
108
108
  useGridParamsApi(apiRef, props);
109
109
  useGridDetailPanel(apiRef, props);
@@ -56,6 +56,7 @@ export declare const unwrapColumnFromAggregation: (column: GridColDef) => GridBa
56
56
  aggregable?: boolean;
57
57
  availableAggregationFunctions?: string[];
58
58
  groupingValueGetter?: import("../../../index.js").GridGroupingValueGetter<import("@mui/x-data-grid").GridValidRowModel> | undefined;
59
+ groupingValueSetter?: import("../../../index.js").GridGroupingValueSetter<import("@mui/x-data-grid").GridValidRowModel> | undefined;
59
60
  pastedValueParser?: import("../../../index.js").GridPastedValueParser<import("@mui/x-data-grid").GridValidRowModel, any, any> | undefined;
60
61
  pivotable?: boolean;
61
62
  };
@@ -119,7 +119,7 @@ class CellValueUpdater {
119
119
  if (onProcessRowUpdateError) {
120
120
  onProcessRowUpdateError(errorThrown);
121
121
  } else if (process.env.NODE_ENV !== 'production') {
122
- warnOnce(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/persistence/.'], 'error');
122
+ warnOnce(['MUI X: A call to `processRowUpdate()` threw an error which was not handled because `onProcessRowUpdateError()` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError()` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/persistence/.'], 'error');
123
123
  }
124
124
  };
125
125
  try {
@@ -1,7 +1,6 @@
1
1
  import { addColumnGroupingHeaders, addSerializedRowToWorksheet, createValueOptionsSheetIfNeeded, getExcelJs } from "./utils.js";
2
2
  export function setupExcelExportWebWorker(workerOptions = {}) {
3
- // eslint-disable-next-line no-restricted-globals
4
- addEventListener('message', async event => {
3
+ globalThis.addEventListener('message', async event => {
5
4
  const {
6
5
  namespace,
7
6
  serializedColumns,
@@ -2,6 +2,7 @@ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridColDef, GridGroupingColDefOverride } from '@mui/x-data-grid-pro';
3
3
  import { GridColumnRawLookup, RowGroupingStrategy } from '@mui/x-data-grid-pro/internals';
4
4
  import { GridApiPremium } from "../../../models/gridApiPremium.js";
5
+ import type { GridRowGroupingModel } from "./gridRowGroupingInterfaces.js";
5
6
  interface CreateGroupingColDefMonoCriteriaParams {
6
7
  columnsLookup: GridColumnRawLookup;
7
8
  /**
@@ -35,7 +36,7 @@ interface CreateGroupingColDefSeveralCriteriaParams {
35
36
  /**
36
37
  * The fields from which we are grouping the rows.
37
38
  */
38
- rowGroupingModel: string[];
39
+ rowGroupingModel: GridRowGroupingModel;
39
40
  /**
40
41
  * The col def properties the user wants to override.
41
42
  * This value comes `prop.groupingColDef`.
@@ -73,11 +73,34 @@ const groupedByColValueFormatter = groupedByColDef => (value, row, _, apiRef) =>
73
73
  }
74
74
  return value;
75
75
  };
76
- const getGroupingCriteriaProperties = (groupedByColDef, applyHeaderName) => {
76
+ function getGroupingCriteriaProperties(groupedByColDef, rowGroupingColumnMode, rowGroupingModel = [], columnsLookup = {}) {
77
+ let valueFormatter;
78
+ if (rowGroupingColumnMode === 'single' && rowGroupingModel.length > 1) {
79
+ // In single column grouping mode, the `valueFormatter` of the grouping column uses
80
+ // value formatters from original columns for each of the grouping criteria
81
+ valueFormatter = (value, row, column, apiRef) => {
82
+ const rowId = gridRowIdSelector(apiRef, row);
83
+ const rowNode = gridRowNodeSelector(apiRef, rowId);
84
+ if (rowNode.type === 'group') {
85
+ const originalColDef = columnsLookup[rowNode.groupingField];
86
+ if (originalColDef.type === 'singleSelect') {
87
+ // the default valueFormatter of a singleSelect colDef won't work with the grouping column values
88
+ return value;
89
+ }
90
+ const columnValueFormatter = originalColDef.valueFormatter;
91
+ if (typeof columnValueFormatter === 'function') {
92
+ return columnValueFormatter(value, row, column, apiRef);
93
+ }
94
+ }
95
+ return value;
96
+ };
97
+ } else {
98
+ valueFormatter = groupedByColDef.valueFormatter ? groupedByColValueFormatter(groupedByColDef) : undefined;
99
+ }
77
100
  const properties = {
78
101
  sortable: groupedByColDef.sortable,
79
102
  filterable: groupedByColDef.filterable,
80
- valueFormatter: groupedByColDef.valueFormatter ? groupedByColValueFormatter(groupedByColDef) : undefined,
103
+ valueFormatter,
81
104
  valueOptions: isSingleSelectColDef(groupedByColDef) ? groupedByColDef.valueOptions : undefined,
82
105
  sortComparator: (v1, v2, cellParams1, cellParams2) => {
83
106
  // We only want to sort the groups of the current grouping criteria
@@ -89,11 +112,12 @@ const getGroupingCriteriaProperties = (groupedByColDef, applyHeaderName) => {
89
112
  },
90
113
  filterOperators: groupedByColDef.filterOperators
91
114
  };
115
+ const applyHeaderName = !(rowGroupingColumnMode === 'single' && rowGroupingModel.length > 1);
92
116
  if (applyHeaderName) {
93
117
  properties.headerName = groupedByColDef.headerName ?? groupedByColDef.field;
94
118
  }
95
119
  return properties;
96
- };
120
+ }
97
121
  /**
98
122
  * Creates the `GridColDef` for a grouping column that only takes care of a single grouping criteria
99
123
  */
@@ -175,11 +199,11 @@ export const createGroupingColDefForOneGroupingCriteria = ({
175
199
  // By default, we apply the sorting / filtering on the groups of this column's grouping criteria based on the properties of `groupedColDef`.
176
200
  let sourceProperties;
177
201
  if (mainGroupingCriteria && mainGroupingCriteria === groupingCriteria) {
178
- sourceProperties = getGroupingCriteriaProperties(groupedByColDef, true);
202
+ sourceProperties = getGroupingCriteriaProperties(groupedByColDef, 'multiple');
179
203
  } else if (leafColDef) {
180
204
  sourceProperties = getLeafProperties(leafColDef);
181
205
  } else {
182
- sourceProperties = getGroupingCriteriaProperties(groupedByColDef, true);
206
+ sourceProperties = getGroupingCriteriaProperties(groupedByColDef, 'multiple');
183
207
  }
184
208
 
185
209
  // The properties that can't be overridden with `colDefOverride`
@@ -265,11 +289,11 @@ export const createGroupingColDefForAllGroupingCriteria = ({
265
289
  if (process.env.NODE_ENV !== "production") commonProperties.renderCell.displayName = "commonProperties.renderCell";
266
290
  let sourceProperties;
267
291
  if (mainGroupingCriteria && rowGroupingModel.includes(mainGroupingCriteria)) {
268
- sourceProperties = getGroupingCriteriaProperties(columnsLookup[mainGroupingCriteria], true);
292
+ sourceProperties = getGroupingCriteriaProperties(columnsLookup[mainGroupingCriteria], 'single', rowGroupingModel, columnsLookup);
269
293
  } else if (leafColDef) {
270
294
  sourceProperties = getLeafProperties(leafColDef);
271
295
  } else {
272
- sourceProperties = getGroupingCriteriaProperties(columnsLookup[rowGroupingModel[0]], rowGroupingModel.length === 1);
296
+ sourceProperties = getGroupingCriteriaProperties(columnsLookup[rowGroupingModel[0]], 'single', rowGroupingModel, columnsLookup);
273
297
  }
274
298
 
275
299
  // The properties that can't be overridden with `colDefOverride`
@@ -40,5 +40,6 @@ export interface GridRowGroupingApi {
40
40
  export interface GridGroupingRule<R extends GridValidRowModel = GridValidRowModel, V = any> {
41
41
  field: string;
42
42
  groupingValueGetter?: GridColDef<R, V>['groupingValueGetter'];
43
+ groupingValueSetter?: GridColDef<R, V>['groupingValueSetter'];
43
44
  }
44
45
  export type GridGroupingRules<R extends GridValidRowModel = GridValidRowModel> = GridGroupingRule<R>[];
@@ -149,7 +149,8 @@ export const getGroupingRules = ({
149
149
  columnsLookup
150
150
  }) => sanitizedRowGroupingModel.map(field => ({
151
151
  field,
152
- groupingValueGetter: columnsLookup[field]?.groupingValueGetter
152
+ groupingValueGetter: columnsLookup[field]?.groupingValueGetter,
153
+ groupingValueSetter: columnsLookup[field]?.groupingValueSetter
153
154
  }));
154
155
 
155
156
  /**
@@ -164,6 +165,9 @@ export const areGroupingRulesEqual = (newValue, previousValue) => {
164
165
  if (previousRule.groupingValueGetter !== newRule.groupingValueGetter) {
165
166
  return false;
166
167
  }
168
+ if (previousRule.groupingValueSetter !== newRule.groupingValueSetter) {
169
+ return false;
170
+ }
167
171
  if (previousRule.field !== newRule.field) {
168
172
  return false;
169
173
  }
@@ -8,4 +8,4 @@ export declare const rowGroupingStateInitializer: GridStateInitializer<Pick<Data
8
8
  * @requires useGridRows (state, method) - can be after, async only
9
9
  * @requires useGridParamsApi (method) - can be after, async only
10
10
  */
11
- export declare const useGridRowGrouping: (apiRef: RefObject<GridPrivateApiPremium>, props: Pick<DataGridPremiumProcessedProps, "initialState" | "rowGroupingModel" | "onRowGroupingModelChange" | "defaultGroupingExpansionDepth" | "isGroupExpandedByDefault" | "rowGroupingColumnMode" | "disableRowGrouping" | "slotProps" | "slots" | "dataSource">) => void;
11
+ export declare const useGridRowGrouping: (apiRef: RefObject<GridPrivateApiPremium>, props: Pick<DataGridPremiumProcessedProps, "initialState" | "rowGroupingModel" | "onRowGroupingModelChange" | "defaultGroupingExpansionDepth" | "isGroupExpandedByDefault" | "rowGroupingColumnMode" | "disableRowGrouping" | "slotProps" | "slots" | "dataSource" | "treeData">) => void;