@mui/x-data-grid-pro 8.9.1 → 8.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +217 -8
  2. package/DataGridPro/DataGridPro.js +8 -3
  3. package/DataGridPro/useDataGridProComponent.js +2 -0
  4. package/components/GridColumnHeaders.js +1 -1
  5. package/components/GridDataSourceTreeDataGroupingCell.js +3 -1
  6. package/components/GridDetailPanels.js +4 -9
  7. package/components/GridPinnedRows.js +5 -2
  8. package/esm/DataGridPro/DataGridPro.js +10 -5
  9. package/esm/DataGridPro/useDataGridProComponent.js +4 -2
  10. package/esm/components/GridColumnHeaders.js +2 -2
  11. package/esm/components/GridDataSourceTreeDataGroupingCell.js +3 -1
  12. package/esm/components/GridDetailPanels.js +4 -9
  13. package/esm/components/GridPinnedRows.js +6 -3
  14. package/esm/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +1 -1
  15. package/esm/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -3
  16. package/esm/hooks/features/dataSource/models.d.ts +6 -0
  17. package/esm/hooks/features/dataSource/useGridDataSourceBasePro.d.ts +2 -1
  18. package/esm/hooks/features/dataSource/useGridDataSourceBasePro.js +26 -1
  19. package/esm/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +1 -0
  20. package/esm/hooks/features/rowReorder/gridRowReorderColDef.js +3 -2
  21. package/esm/hooks/features/rowReorder/useGridRowReorder.d.ts +2 -0
  22. package/esm/hooks/features/rowReorder/useGridRowReorder.js +19 -1
  23. package/esm/hooks/features/rows/useGridRowAriaAttributes.d.ts +1 -1
  24. package/esm/hooks/features/rows/useGridRowAriaAttributes.js +2 -2
  25. package/esm/hooks/utils/useGridAriaAttributes.d.ts +1 -1
  26. package/esm/hooks/utils/useGridAriaAttributes.js +1 -1
  27. package/esm/index.js +1 -1
  28. package/esm/internals/index.d.ts +9 -7
  29. package/esm/internals/index.js +10 -9
  30. package/esm/models/gridApiPro.d.ts +2 -1
  31. package/esm/models/gridRowReorderApi.d.ts +10 -0
  32. package/esm/models/gridRowReorderApi.js +1 -0
  33. package/esm/utils/tree/removeDataRowFromTree.d.ts +3 -1
  34. package/esm/utils/tree/removeDataRowFromTree.js +25 -5
  35. package/esm/utils/tree/updateRowTree.js +4 -2
  36. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +1 -1
  37. package/hooks/features/columnHeaders/useGridColumnHeaders.js +7 -5
  38. package/hooks/features/dataSource/models.d.ts +6 -0
  39. package/hooks/features/dataSource/useGridDataSourceBasePro.d.ts +2 -1
  40. package/hooks/features/dataSource/useGridDataSourceBasePro.js +26 -1
  41. package/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +1 -0
  42. package/hooks/features/rowReorder/gridRowReorderColDef.js +2 -1
  43. package/hooks/features/rowReorder/useGridRowReorder.d.ts +2 -0
  44. package/hooks/features/rowReorder/useGridRowReorder.js +21 -2
  45. package/hooks/features/rows/useGridRowAriaAttributes.d.ts +1 -1
  46. package/hooks/features/rows/useGridRowAriaAttributes.js +4 -4
  47. package/hooks/utils/useGridAriaAttributes.d.ts +1 -1
  48. package/hooks/utils/useGridAriaAttributes.js +3 -3
  49. package/index.js +1 -1
  50. package/internals/index.d.ts +9 -7
  51. package/internals/index.js +27 -10
  52. package/models/gridApiPro.d.ts +2 -1
  53. package/models/gridRowReorderApi.d.ts +10 -0
  54. package/models/gridRowReorderApi.js +5 -0
  55. package/package.json +6 -8
  56. package/utils/tree/removeDataRowFromTree.d.ts +3 -1
  57. package/utils/tree/removeDataRowFromTree.js +25 -5
  58. package/utils/tree/updateRowTree.js +4 -2
package/CHANGELOG.md CHANGED
@@ -5,6 +5,215 @@
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.10.0
9
+
10
+ _Aug 8, 2025_
11
+
12
+ We'd like to extend a big thank you to the 17 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - 📊 [`FunnelChart`](https://mui.com/x/react-charts/funnel/) marked as stable
15
+ - 📈 [Zoom slider](https://mui.com/x/react-charts/zoom-and-pan/#zoom-slider) and [Preview](https://mui.com/x/react-charts/zoom-and-pan/#preview) marked as stable
16
+ - 📈 Supporting [label groups](https://mui.com/x/react-charts/axis/#grouped-axes) in band and point axis
17
+ - 🌎 Improve Norwegian Nynorsk (nn-NO) locale on the Data Grid
18
+ - 🐞 Bugfixes
19
+ - 📚 Documentation improvements
20
+
21
+ Special thanks go out to the community members for their valuable contributions:
22
+ @AnderzL7, @aqeelat, @dwrth, @noobyogi0010, @nusr, @sai6855
23
+
24
+ The following are all team members who have contributed to this release:
25
+ @arminmeh, @bernardobelchior, @cherniavskii, @flaviendelangle, @Janpot, @JCQuintas, @mapache-salvaje, @MBilalShafi, @oliviertassinari, @rita-codes, @romgrk
26
+
27
+ ### Data Grid
28
+
29
+ #### `@mui/x-data-grid@8.10.0`
30
+
31
+ - [DataGrid] Move spread operator in `BaseSelect` to allow `variant` change (#19026) @dwrth
32
+ - [DataGrid] Use `use-sync-external-store` shim (#19063) @romgrk
33
+ - [DataGrid] Allow skipping cache in `dataSource.fetchRows()` API method (#18904) @MBilalShafi
34
+ - [DataGrid] Do not call `preProcessEditCellProps()` if cell is not editable based on `isCellEditable()` (#18405) @nusr
35
+ - [DataGrid] Fix `renderCountry` throwing an error when used in tree data (#19068) @cherniavskii
36
+ - [DataGrid] Fix performance issue for root level "select all" (#19015) @MBilalShafi
37
+ - [DataGrid] Fix pagination `slotProps` being ignored by the grid (#19095) @romgrk
38
+ - [l10n] Improve Norwegian Nynorsk (nn-NO) locale (#19076) @AnderzL7
39
+
40
+ #### `@mui/x-data-grid-pro@8.10.0` [![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-data-grid@8.10.0`, plus:
43
+
44
+ - [DataGridPro] Fix row reorder not working with column reorder disabled (#19016) @MBilalShafi
45
+ - [DataGridPro] Fix header filters cache sharing issue (#19090) @MBilalShafi
46
+
47
+ #### `@mui/x-data-grid-premium@8.10.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
48
+
49
+ Same changes as in `@mui/x-data-grid-pro@8.10.0`, plus:
50
+
51
+ - [DataGridPremium] Allow additional derived columns customization via `valueFormatter` (#18982) @arminmeh
52
+ - [DataGridPremium] Fix complex `singleSelect` columns not working in pivot model (#18971) @cherniavskii
53
+
54
+ ### Date and Time Pickers
55
+
56
+ #### `@mui/x-date-pickers@8.10.0`
57
+
58
+ - [pickers] `MuiPickersLayout-toolbar` is overlapping the Calendar in RTL `MobileDatePicker` variant (#18981) @rita-codes
59
+
60
+ #### `@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')
61
+
62
+ Same changes as in `@mui/x-date-pickers@8.10.0`.
63
+
64
+ ### Charts
65
+
66
+ #### `@mui/x-charts@8.10.0`
67
+
68
+ - [charts] Add `groups` to `band` and `point` axis config (#18766) @JCQuintas
69
+ - [charts] Animation example using `motion` library (#18993) @JCQuintas
70
+ - [charts] Deprecate `Unstable_` radar exports (#19079) @JCQuintas
71
+ - [charts] Improve grouped axis logic (#19069) @JCQuintas
72
+ - [charts] Fix type assertion in axis highlight components (#19060) @sai6855
73
+ - [charts] Remove unnecessary type assertion in tooltip `valueFormatter` in heatmap (#19047) @sai6855
74
+
75
+ #### `@mui/x-charts-pro@8.10.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
76
+
77
+ Same changes as in `@mui/x-charts@8.10.0`, plus:
78
+
79
+ - [charts-pro] Fix `slotProps.tooltip.trigger` not respected in `ScatterChartPro` and `FunnelChart` (#18902) @bernardobelchior
80
+ - [charts-pro] Fix zoom filtering adjusting axis too soon (#18992) @bernardobelchior
81
+ - [charts-pro] Mark `FunnelChart` as stable (#19048) @JCQuintas
82
+ - [charts-pro] Mark zoom slider and preview as stable (#19049) @JCQuintas
83
+ - [charts-pro] Refactor `createAxisFilterMapper` (#18998) @bernardobelchior
84
+
85
+ ### Tree View
86
+
87
+ #### `@mui/x-tree-view@8.10.0`
88
+
89
+ Internal changes.
90
+
91
+ #### `@mui/x-tree-view-pro@8.10.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
92
+
93
+ Same changes as in `@mui/x-tree-view@8.10.0`.
94
+
95
+ ### Codemod
96
+
97
+ #### `@mui/x-codemod@8.10.0`
98
+
99
+ Internal changes.
100
+
101
+ ### Docs
102
+
103
+ - [docs] Add CSS bundler breaking change to migration guide (#17436) @romgrk
104
+ - [docs] `RichTreeViewPro` demo for dragging via custom drag-handle is not working properly (#19008) @rita-codes
105
+ - [docs] Fix broken link to D3 in Charts (#19020) @oliviertassinari
106
+ - [docs] Revise the Charts Animation doc (#18990) @mapache-salvaje
107
+ - [docs] Fix incorrect code in line chart preview (#19023) @noobyogi0010
108
+ - [docs] Improve bundling instructions for the Data Grid (#19065) @romgrk
109
+ - [docs] Reduce image size in the inventory grid demo (#19004) @arminmeh
110
+
111
+ ### Core
112
+
113
+ - [core] Fix ESLint reference name @oliviertassinari
114
+
115
+ ### Miscellaneous
116
+
117
+ - [infra] Remove bundle size tracking for subpaths (#19072) @Janpot
118
+ - [infra] Accept `PORT` env on `docs:dev` script (#19014) @JCQuintas
119
+ - [infra] Skip codesandbox iframe demos in regressions tests (#18970) @cherniavskii
120
+ - [infra] Remove package.json `module` field (#18961) @Janpot
121
+ - [internal] Remove peer dependency on `@mui/system` (#19062) @aqeelat
122
+
123
+ ## 8.9.2
124
+
125
+ _Jul 31, 2025_
126
+
127
+ We'd like to extend a big thank you to the 23 contributors who made this release possible. Here are some highlights ✨:
128
+
129
+ - 🌎 Improve French (fr-FR), Hebrew (he-IL) and Polish (pl-PL) locales on the Data Grid
130
+ - 🌎 Improve Korean (ko-KR) locale on the Date and Time Pickers
131
+ - 📈 Add symlog scale to charts
132
+ - 📊 Fix bar border radius on Firefox
133
+ - 🐞 Bugfixes
134
+ - 📚 Documentation improvements
135
+
136
+ Special thanks go out to the community members for their valuable contributions:
137
+ @AmrElnaggar99, @atlanteh, @ddolcimascolo, @Jiseoup, @leonaha5, @noherczeg, @sai6855
138
+
139
+ The following are all team members who have contributed to this release:
140
+ @alexfauquette, @arminmeh, @bernardobelchior, @bharatkashyap, @brijeshb42, @cherniavskii, @flaviendelangle, @Janpot, @JCQuintas, @KenanYusuf, @LukasTy, @mapache-salvaje, @MBilalShafi, @rita-codes, @romgrk, @siriwatknp
141
+
142
+ ### Data Grid
143
+
144
+ #### `@mui/x-data-grid@8.9.2`
145
+
146
+ - [DataGrid] Add debounce for columns panel search (#18719) @noherczeg
147
+ - [DataGrid] Extract virtualization engine (#18275) @romgrk
148
+ - [DataGrid] Improve types in `<GridEditSingleSelect />` (#18184) @sai6855
149
+ - [l10n] Improve French (fr-FR) locale (#18905) @ddolcimascolo
150
+ - [l10n] Improve Hebrew (he-IL) locale (#18665) @atlanteh
151
+ - [l10n] Improve Polish (pl-PL) locale (#18068) @leonaha5
152
+
153
+ #### `@mui/x-data-grid-pro@8.9.2` [![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-data-grid@8.9.2`, plus:
156
+
157
+ - [DataGridPro] Fix duplicate nested rows for dynamically updated row IDs (#18526) @MBilalShafi
158
+
159
+ #### `@mui/x-data-grid-premium@8.9.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
160
+
161
+ Same changes as in `@mui/x-data-grid-pro@8.9.2`, plus:
162
+
163
+ - [DataGridPremium] Add `privateMode` to AI assistant prompt resolver (#18759) @bharatkashyap
164
+ - [DataGridPremium] Fix empty nested group values caused by main criterial `valueFormatter()` (#18916) @cherniavskii
165
+ - [DataGridPremium] Sidebar content and state is managed the same way as for preference panel (#18741) @arminmeh
166
+ - [DataGridPremium] Make `api` param for the aggregation function optional (#18984) @arminmeh
167
+
168
+ ### Date and Time Pickers
169
+
170
+ #### `@mui/x-date-pickers@8.9.2`
171
+
172
+ - [l10n] Improve Korean (ko-KR) locale (#18664) @Jiseoup
173
+ - [pickers] Fix popper click-away behavior (#18804) @LukasTy
174
+ - [pickers] Fix usage not in main document (#18944) @LukasTy
175
+
176
+ #### `@mui/x-date-pickers-pro@8.9.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
177
+
178
+ Same changes as in `@mui/x-date-pickers@8.9.2`.
179
+
180
+ ### Charts
181
+
182
+ #### `@mui/x-charts@8.9.2`
183
+
184
+ - [charts] Add symlog scale to charts (#18729) @bernardobelchior
185
+ - [charts] Fix bar border radius on Firefox (#18824) @bernardobelchior
186
+ - [charts] Fix crash when rendering large scatter dataset (#18845) @bernardobelchior
187
+ - [charts] Remove unnecessary type assertion in tooltip `valueFormatter()` (#18877) @sai6855
188
+ - [charts] Export `ChartsWrapper` from `'./ChartsWrapper'` rather than `'./internals'` (#18966) @JCQuintas
189
+
190
+ #### `@mui/x-charts-pro@8.9.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
191
+
192
+ Same changes as in `@mui/x-charts@8.9.2`, plus:
193
+
194
+ - [charts-pro] Fix voronoi interaction with zoom (#18950) @alexfauquette
195
+ - [charts-pro] Hide toolbar by default when exporting (#18764) @bernardobelchior
196
+
197
+ ### Codemod
198
+
199
+ #### `@mui/x-codemod@8.9.2`
200
+
201
+ Internal changes.
202
+
203
+ ### Docs
204
+
205
+ - [docs] Add Data Grid demo pages (#18180) @KenanYusuf
206
+ - [docs] Copyedit the Charts Overview page (#18840) @mapache-salvaje
207
+ - [docs] Fix incorrect parameter name in pickers "Custom components" page from `variant` to `pickerVariant` (#18919) @AmrElnaggar99
208
+
209
+ ### Miscellaneous
210
+
211
+ - [code-infra] Auto-generate deep exports to prevent asymmetric exports (#18917) @JCQuintas
212
+ - [docs-infra] Turn on "Edit in Chat" for X docs (#18869) @siriwatknp
213
+ - [infra] Add specific bundle size tracking (#18884) @Janpot
214
+ - [infra] Fix markdown formatting in llms generation (#18914) @Janpot
215
+ - [infra] Use CI action from mui-public (#18709) @brijeshb42
216
+
8
217
  ## 8.9.1
9
218
 
10
219
  _Jul 21, 2025_
@@ -23,11 +232,11 @@ The following are all team members who have contributed to this release:
23
232
  - [DataGrid] Move conditional list view column logic into `gridVisibleColumnDefinitionsSelector` (#18724) @KenanYusuf
24
233
  - [DataGrid] Fix row selection "exclude" model inconsistency (#18844) @MBilalShafi
25
234
 
26
- #### `@mui/x-data-grid-pro@8.9.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
235
+ #### `@mui/x-data-grid-pro@8.9.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
27
236
 
28
237
  Same changes as in `@mui/x-data-grid@8.9.1`.
29
238
 
30
- #### `@mui/x-data-grid-premium@8.9.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link "Premium plan")
239
+ #### `@mui/x-data-grid-premium@8.9.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
31
240
 
32
241
  Same changes as in `@mui/x-data-grid-pro@8.9.1`.
33
242
 
@@ -324,8 +533,8 @@ Same changes as in `@mui/x-tree-view@8.7.0`, plus:
324
533
 
325
534
  - [code-infra] Bump code-infra version and fix breaking changes (#18653) @brijeshb42
326
535
  - [code-infra] Ensure `material-ui/disallow-react-api-in-server-components` ESLint rule is applied (#18570) @LukasTy
327
- - [code-infra] Migrate to flat eslint config (#18562) @brijeshb42
328
- - [code-infra] Refactor eslint config (#18643) @LukasTy
536
+ - [code-infra] Migrate to flat ESLint config (#18562) @brijeshb42
537
+ - [code-infra] Refactor ESLint config (#18643) @LukasTy
329
538
  - [infra] Add renovatebot rule for latest infra packages (#18609) @Janpot
330
539
  - [infra] Move pushArgos script to code-infra (#18667) @Janpot
331
540
  - [infra] Updates release script to fetch latest major version from upstream (#18552) @michelengelen
@@ -1239,7 +1448,7 @@ Same changes as in `@mui/x-tree-view@8.2.0`.
1239
1448
  - [core] Fix all Vale errors @oliviertassinari
1240
1449
  - [core] Move `loadStyleSheets` to internals and use it in data grid and charts (#17548) @bernardobelchior
1241
1450
  - [core] Remove empty version (#17582) @oliviertassinari
1242
- - [core] Remove eslint from codemod spec files (#17443) @alexfauquette
1451
+ - [core] Remove ESLint from codemod spec files (#17443) @alexfauquette
1243
1452
  - [core] Remove unnecessary versions (#17597) @oliviertassinari
1244
1453
  - [code-infra] Allow postinstall scripts for packages requesting it (#17635) @LukasTy
1245
1454
  - [code-infra] Data Grid `vitest` changes (#17619) @JCQuintas
@@ -6733,7 +6942,7 @@ Same changes as in `@mui/x-date-pickers@7.8.0`.
6733
6942
 
6734
6943
  ### Core
6735
6944
 
6736
- - [core] Add eslint rule to restrict import from `../internals` root (#13633) @JCQuintas
6945
+ - [core] Add ESLint rule to restrict import from `../internals` root (#13633) @JCQuintas
6737
6946
  - [docs-infra] Sync `\_app` folder with monorepo (#13582) @Janpot
6738
6947
  - [license] Allow usage of Charts and Tree View Pro package for old premium licenses (#13619) @flaviendelangle
6739
6948
 
@@ -6871,7 +7080,7 @@ Same changes as in `@mui/x-date-pickers@7.7.0`.
6871
7080
 
6872
7081
  - [charts] Add watermark on the pro `ResponsiveChartContainer` (#13398) @alexfauquette
6873
7082
  - [charts] Allow to specify y-axis configuration (#13438) @alexfauquette
6874
- - [charts] Fix eslint for react compiler (#13444) @alexfauquette
7083
+ - [charts] Fix ESLint for react compiler (#13444) @alexfauquette
6875
7084
  - [charts] Improve themeAugmentation typing (#13433) @noraleonte
6876
7085
  - [charts] Move the `ZAxisContextProvider` by default in the `ChartContainer` (#13465) @alexfauquette
6877
7086
  - [charts] Use plugins to define series extremum and colors (#13397) @alexfauquette
@@ -7418,7 +7627,7 @@ Same changes as in `@mui/x-date-pickers@7.3.1`.
7418
7627
  - [core] Use `describeTreeView` for focus tests (#12698) @flaviendelangle
7419
7628
  - [core] Use `describeTreeView` for type-ahead tests (#12811) @flaviendelangle
7420
7629
  - [code-infra] Change package manager to `pnpm` (#11875) @LukasTy
7421
- - [code-infra] Closer sync with eslint config of codebase (#12864) @oliviertassinari
7630
+ - [code-infra] Closer sync with ESLint config of codebase (#12864) @oliviertassinari
7422
7631
  - [support-infra] Add release announcement to GitHub workflows (#11867) (#12843) @michelengelen
7423
7632
 
7424
7633
  ## 7.3.0
@@ -24,12 +24,12 @@ var _jsxRuntime = require("react/jsx-runtime");
24
24
  const configuration = {
25
25
  hooks: {
26
26
  useCSSVariables: _material.useMaterialCSSVariables,
27
- useGridAriaAttributes: _useGridAriaAttributes.useGridAriaAttributes,
28
- useGridRowAriaAttributes: _useGridRowAriaAttributes.useGridRowAriaAttributes,
27
+ useGridAriaAttributes: _useGridAriaAttributes.useGridAriaAttributesPro,
28
+ useGridRowAriaAttributes: _useGridRowAriaAttributes.useGridRowAriaAttributesPro,
29
29
  useCellAggregationResult: () => null
30
30
  }
31
31
  };
32
- const releaseInfo = "MTc1MzAzODAwMDAwMA==";
32
+ const releaseInfo = "MTc1NDYwNDAwMDAwMA==";
33
33
  const watermark = /*#__PURE__*/(0, _jsxRuntime.jsx)(_xLicense.Watermark, {
34
34
  packageName: "x-data-grid-pro",
35
35
  releaseInfo: releaseInfo
@@ -146,6 +146,11 @@ DataGridProRaw.propTypes = {
146
146
  * @default 150
147
147
  */
148
148
  columnBufferPx: _propTypes.default.number,
149
+ /**
150
+ * The milliseconds delay to wait after a keystroke before triggering filtering in the columns menu.
151
+ * @default 150
152
+ */
153
+ columnFilterDebounceMs: _propTypes.default.number,
149
154
  /**
150
155
  * Sets the height in pixels of the column group headers in the Data Grid.
151
156
  * Inherits the `columnHeaderHeight` value if not set.
@@ -56,6 +56,7 @@ const useDataGridProComponent = (apiRef, props) => {
56
56
  (0, _internals.useGridInitializeState)(_internals.propsStateInitializer, apiRef, props);
57
57
  (0, _internals.useGridInitializeState)(_internals.headerFilteringStateInitializer, apiRef, props);
58
58
  (0, _internals.useGridInitializeState)(_internals.rowSelectionStateInitializer, apiRef, props);
59
+ (0, _internals.useGridInitializeState)(_useGridRowReorder.rowReorderStateInitializer, apiRef, props);
59
60
  (0, _internals.useGridInitializeState)(_useGridDetailPanel.detailPanelStateInitializer, apiRef, props);
60
61
  (0, _internals.useGridInitializeState)(_useGridColumnPinning.columnPinningStateInitializer, apiRef, props);
61
62
  (0, _internals.useGridInitializeState)(_internals.columnsStateInitializer, apiRef, props);
@@ -78,6 +79,7 @@ const useDataGridProComponent = (apiRef, props) => {
78
79
  (0, _internals.useGridInitializeState)(_internals.dimensionsStateInitializer, apiRef, props);
79
80
  (0, _internals.useGridInitializeState)(_internals.rowsMetaStateInitializer, apiRef, props);
80
81
  (0, _internals.useGridInitializeState)(_internals.listViewStateInitializer, apiRef, props);
82
+ (0, _internals.useGridVirtualizer)(apiRef, props);
81
83
  (0, _internals.useGridHeaderFiltering)(apiRef, props);
82
84
  (0, _useGridTreeData.useGridTreeData)(apiRef, props);
83
85
  (0, _internals.useGridKeyboardNavigation)(apiRef, props);
@@ -42,7 +42,7 @@ const GridColumnHeaders = exports.GridColumnHeaders = (0, _forwardRef.forwardRef
42
42
  getColumnHeadersRow,
43
43
  getColumnFiltersRow,
44
44
  getColumnGroupHeadersRows
45
- } = (0, _useGridColumnHeaders.useGridColumnHeaders)({
45
+ } = (0, _useGridColumnHeaders.useGridColumnHeadersPro)({
46
46
  visibleColumns,
47
47
  sortColumnLookup,
48
48
  filterColumnLookup,
@@ -43,7 +43,9 @@ function GridTreeDataGroupingCellIcon(props) {
43
43
  // always fetch/get from cache the children when the node is expanded
44
44
  apiRef.current.dataSource.fetchRows(id);
45
45
  } else {
46
- apiRef.current.setRowChildrenExpansion(id, !rowNode.childrenExpanded);
46
+ // Collapse the node and remove child rows from the grid
47
+ apiRef.current.setRowChildrenExpansion(id, false);
48
+ apiRef.current.removeChildrenRows(id);
47
49
  }
48
50
  apiRef.current.setCellFocus(id, field);
49
51
  event.stopPropagation(); // TODO remove event.stopPropagation
@@ -10,7 +10,6 @@ exports.GridDetailPanels = GridDetailPanels;
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
12
12
  var _xDataGrid = require("@mui/x-data-grid");
13
- var _internals = require("@mui/x-data-grid/internals");
14
13
  var _useGridPrivateApiContext = require("../hooks/utils/useGridPrivateApiContext");
15
14
  var _useGridRootProps = require("../hooks/utils/useGridRootProps");
16
15
  var _detailPanel = require("../hooks/features/detailPanel");
@@ -60,15 +59,11 @@ function GridDetailPanelsImpl({
60
59
  }, `panel-${rowId}`);
61
60
  }, [apiRef, classes.detailPanel, detailPanelsHeights, detailPanelsContent]);
62
61
  React.useEffect(() => {
63
- if (expandedRowIds.size === 0) {
64
- setPanels(_internals.EMPTY_DETAIL_PANELS);
65
- } else {
66
- const map = new Map();
67
- for (const rowId of expandedRowIds) {
68
- map.set(rowId, getDetailPanel(rowId));
69
- }
70
- setPanels(map);
62
+ const map = new Map();
63
+ for (const rowId of expandedRowIds) {
64
+ map.set(rowId, getDetailPanel(rowId));
71
65
  }
66
+ setPanels(map);
72
67
  }, [expandedRowIds, setPanels, getDetailPanel]);
73
68
  return null;
74
69
  }
@@ -26,6 +26,9 @@ function GridPinnedRows({
26
26
  const apiRef = (0, _internals.useGridPrivateApiContext)();
27
27
  const pinnedRowsData = (0, _xDataGrid.useGridSelector)(apiRef, _internals.gridPinnedRowsSelector);
28
28
  const rows = pinnedRowsData[position];
29
+ const {
30
+ getRows
31
+ } = virtualScroller;
29
32
  const pinnedRenderContext = React.useMemo(() => ({
30
33
  firstRowIndex: 0,
31
34
  lastRowIndex: rows.length,
@@ -35,11 +38,11 @@ function GridPinnedRows({
35
38
  if (rows.length === 0) {
36
39
  return null;
37
40
  }
38
- const pinnedRows = virtualScroller.getRows({
41
+ const pinnedRows = getRows({
39
42
  position,
40
43
  rows,
41
44
  renderContext: pinnedRenderContext
42
- });
45
+ }, (0, _xDataGrid.gridRowTreeSelector)(apiRef));
43
46
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
44
47
  className: (0, _clsx.default)(classes.root, _xDataGrid.gridClasses[`pinnedRows--${position}`]),
45
48
  role: "presentation",
@@ -11,18 +11,18 @@ import { forwardRef } from '@mui/x-internals/forwardRef';
11
11
  import { useDataGridProComponent } from "./useDataGridProComponent.js";
12
12
  import { useDataGridProProps } from "./useDataGridProProps.js";
13
13
  import { propValidatorsDataGridPro } from "../internals/propValidation.js";
14
- import { useGridAriaAttributes } from "../hooks/utils/useGridAriaAttributes.js";
15
- import { useGridRowAriaAttributes } from "../hooks/features/rows/useGridRowAriaAttributes.js";
14
+ import { useGridAriaAttributesPro } from "../hooks/utils/useGridAriaAttributes.js";
15
+ import { useGridRowAriaAttributesPro } from "../hooks/features/rows/useGridRowAriaAttributes.js";
16
16
  import { jsx as _jsx } from "react/jsx-runtime";
17
17
  const configuration = {
18
18
  hooks: {
19
19
  useCSSVariables: useMaterialCSSVariables,
20
- useGridAriaAttributes,
21
- useGridRowAriaAttributes,
20
+ useGridAriaAttributes: useGridAriaAttributesPro,
21
+ useGridRowAriaAttributes: useGridRowAriaAttributesPro,
22
22
  useCellAggregationResult: () => null
23
23
  }
24
24
  };
25
- const releaseInfo = "MTc1MzAzODAwMDAwMA==";
25
+ const releaseInfo = "MTc1NDYwNDAwMDAwMA==";
26
26
  const watermark = /*#__PURE__*/_jsx(Watermark, {
27
27
  packageName: "x-data-grid-pro",
28
28
  releaseInfo: releaseInfo
@@ -139,6 +139,11 @@ DataGridProRaw.propTypes = {
139
139
  * @default 150
140
140
  */
141
141
  columnBufferPx: PropTypes.number,
142
+ /**
143
+ * The milliseconds delay to wait after a keystroke before triggering filtering in the columns menu.
144
+ * @default 150
145
+ */
146
+ columnFilterDebounceMs: PropTypes.number,
142
147
  /**
143
148
  * Sets the height in pixels of the column group headers in the Data Grid.
144
149
  * Inherits the `columnHeaderHeight` value if not set.
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import * as React from 'react';
4
- import { useGridInitialization, useGridInitializeState, useGridClipboard, useGridColumnMenu, useGridColumns, columnsStateInitializer, useGridDensity, useGridCsvExport, useGridPrintExport, useGridFilter, filterStateInitializer, useGridFocus, useGridKeyboardNavigation, useGridPagination, paginationStateInitializer, useGridPreferencesPanel, useGridEditing, editingStateInitializer, useGridRows, useGridRowsPreProcessors, rowsStateInitializer, useGridRowsMeta, useGridParamsApi, useGridRowSelection, useGridSorting, sortingStateInitializer, useGridScroll, useGridEvents, dimensionsStateInitializer, useGridDimensions, useGridStatePersistence, useGridRowSelectionPreProcessors, useGridColumnSpanning, columnMenuStateInitializer, densityStateInitializer, focusStateInitializer, preferencePanelStateInitializer, rowsMetaStateInitializer, rowSelectionStateInitializer, useGridColumnGrouping, columnGroupsStateInitializer, headerFilteringStateInitializer, useGridHeaderFiltering, virtualizationStateInitializer, useGridVirtualization, useGridColumnResize, columnResizeStateInitializer, useGridRowSpanning, rowSpanningStateInitializer, useGridListView, listViewStateInitializer, propsStateInitializer } from '@mui/x-data-grid/internals';
4
+ import { useGridInitialization, useGridInitializeState, useGridVirtualizer, useGridClipboard, useGridColumnMenu, useGridColumns, columnsStateInitializer, useGridDensity, useGridCsvExport, useGridPrintExport, useGridFilter, filterStateInitializer, useGridFocus, useGridKeyboardNavigation, useGridPagination, paginationStateInitializer, useGridPreferencesPanel, useGridEditing, editingStateInitializer, useGridRows, useGridRowsPreProcessors, rowsStateInitializer, useGridRowsMeta, useGridParamsApi, useGridRowSelection, useGridSorting, sortingStateInitializer, useGridScroll, useGridEvents, dimensionsStateInitializer, useGridDimensions, useGridStatePersistence, useGridRowSelectionPreProcessors, useGridColumnSpanning, columnMenuStateInitializer, densityStateInitializer, focusStateInitializer, preferencePanelStateInitializer, rowsMetaStateInitializer, rowSelectionStateInitializer, useGridColumnGrouping, columnGroupsStateInitializer, headerFilteringStateInitializer, useGridHeaderFiltering, virtualizationStateInitializer, useGridVirtualization, useGridColumnResize, columnResizeStateInitializer, useGridRowSpanning, rowSpanningStateInitializer, useGridListView, listViewStateInitializer, propsStateInitializer } from '@mui/x-data-grid/internals';
5
5
  // Pro-only features
6
6
  import { useGridInfiniteLoader } from "../hooks/features/infiniteLoader/useGridInfiniteLoader.js";
7
7
  import { useGridColumnReorder, columnReorderStateInitializer } from "../hooks/features/columnReorder/useGridColumnReorder.js";
@@ -12,7 +12,7 @@ import { useGridColumnPinning, columnPinningStateInitializer } from "../hooks/fe
12
12
  import { useGridColumnPinningPreProcessors } from "../hooks/features/columnPinning/useGridColumnPinningPreProcessors.js";
13
13
  import { useGridDetailPanel, detailPanelStateInitializer } from "../hooks/features/detailPanel/useGridDetailPanel.js";
14
14
  import { useGridDetailPanelPreProcessors } from "../hooks/features/detailPanel/useGridDetailPanelPreProcessors.js";
15
- import { useGridRowReorder } from "../hooks/features/rowReorder/useGridRowReorder.js";
15
+ import { useGridRowReorder, rowReorderStateInitializer } from "../hooks/features/rowReorder/useGridRowReorder.js";
16
16
  import { useGridRowReorderPreProcessors } from "../hooks/features/rowReorder/useGridRowReorderPreProcessors.js";
17
17
  import { useGridLazyLoader } from "../hooks/features/lazyLoader/useGridLazyLoader.js";
18
18
  import { useGridLazyLoaderPreProcessors } from "../hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js";
@@ -49,6 +49,7 @@ export const useDataGridProComponent = (apiRef, props) => {
49
49
  useGridInitializeState(propsStateInitializer, apiRef, props);
50
50
  useGridInitializeState(headerFilteringStateInitializer, apiRef, props);
51
51
  useGridInitializeState(rowSelectionStateInitializer, apiRef, props);
52
+ useGridInitializeState(rowReorderStateInitializer, apiRef, props);
52
53
  useGridInitializeState(detailPanelStateInitializer, apiRef, props);
53
54
  useGridInitializeState(columnPinningStateInitializer, apiRef, props);
54
55
  useGridInitializeState(columnsStateInitializer, apiRef, props);
@@ -71,6 +72,7 @@ export const useDataGridProComponent = (apiRef, props) => {
71
72
  useGridInitializeState(dimensionsStateInitializer, apiRef, props);
72
73
  useGridInitializeState(rowsMetaStateInitializer, apiRef, props);
73
74
  useGridInitializeState(listViewStateInitializer, apiRef, props);
75
+ useGridVirtualizer(apiRef, props);
74
76
  useGridHeaderFiltering(apiRef, props);
75
77
  useGridTreeData(apiRef, props);
76
78
  useGridKeyboardNavigation(apiRef, props);
@@ -6,7 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import { styled } from '@mui/material/styles';
7
7
  import { forwardRef } from '@mui/x-internals/forwardRef';
8
8
  import { vars, GridBaseColumnHeaders } from '@mui/x-data-grid/internals';
9
- import { useGridColumnHeaders } from "../hooks/features/columnHeaders/useGridColumnHeaders.js";
9
+ import { useGridColumnHeadersPro } from "../hooks/features/columnHeaders/useGridColumnHeaders.js";
10
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
11
  const Filler = styled('div')({
12
12
  flex: 1,
@@ -34,7 +34,7 @@ const GridColumnHeaders = forwardRef(function GridColumnHeaders(props, ref) {
34
34
  getColumnHeadersRow,
35
35
  getColumnFiltersRow,
36
36
  getColumnGroupHeadersRows
37
- } = useGridColumnHeaders({
37
+ } = useGridColumnHeadersPro({
38
38
  visibleColumns,
39
39
  sortColumnLookup,
40
40
  filterColumnLookup,
@@ -35,7 +35,9 @@ function GridTreeDataGroupingCellIcon(props) {
35
35
  // always fetch/get from cache the children when the node is expanded
36
36
  apiRef.current.dataSource.fetchRows(id);
37
37
  } else {
38
- apiRef.current.setRowChildrenExpansion(id, !rowNode.childrenExpanded);
38
+ // Collapse the node and remove child rows from the grid
39
+ apiRef.current.setRowChildrenExpansion(id, false);
40
+ apiRef.current.removeChildrenRows(id);
39
41
  }
40
42
  apiRef.current.setCellFocus(id, field);
41
43
  event.stopPropagation(); // TODO remove event.stopPropagation
@@ -3,7 +3,6 @@
3
3
  import * as React from 'react';
4
4
  import composeClasses from '@mui/utils/composeClasses';
5
5
  import { getDataGridUtilityClass, useGridSelector } from '@mui/x-data-grid';
6
- import { EMPTY_DETAIL_PANELS } from '@mui/x-data-grid/internals';
7
6
  import { useGridPrivateApiContext } from "../hooks/utils/useGridPrivateApiContext.js";
8
7
  import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
9
8
  import { gridDetailPanelExpandedRowsContentCacheSelector, gridDetailPanelExpandedRowIdsSelector } from "../hooks/features/detailPanel/index.js";
@@ -53,15 +52,11 @@ function GridDetailPanelsImpl({
53
52
  }, `panel-${rowId}`);
54
53
  }, [apiRef, classes.detailPanel, detailPanelsHeights, detailPanelsContent]);
55
54
  React.useEffect(() => {
56
- if (expandedRowIds.size === 0) {
57
- setPanels(EMPTY_DETAIL_PANELS);
58
- } else {
59
- const map = new Map();
60
- for (const rowId of expandedRowIds) {
61
- map.set(rowId, getDetailPanel(rowId));
62
- }
63
- setPanels(map);
55
+ const map = new Map();
56
+ for (const rowId of expandedRowIds) {
57
+ map.set(rowId, getDetailPanel(rowId));
64
58
  }
59
+ setPanels(map);
65
60
  }, [expandedRowIds, setPanels, getDetailPanel]);
66
61
  return null;
67
62
  }
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import clsx from 'clsx';
3
3
  import composeClasses from '@mui/utils/composeClasses';
4
- import { getDataGridUtilityClass, gridClasses, useGridSelector } from '@mui/x-data-grid';
4
+ import { getDataGridUtilityClass, gridClasses, gridRowTreeSelector, useGridSelector } from '@mui/x-data-grid';
5
5
  import { gridPinnedRowsSelector, useGridPrivateApiContext } from '@mui/x-data-grid/internals';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  const useUtilityClasses = () => {
@@ -18,6 +18,9 @@ export function GridPinnedRows({
18
18
  const apiRef = useGridPrivateApiContext();
19
19
  const pinnedRowsData = useGridSelector(apiRef, gridPinnedRowsSelector);
20
20
  const rows = pinnedRowsData[position];
21
+ const {
22
+ getRows
23
+ } = virtualScroller;
21
24
  const pinnedRenderContext = React.useMemo(() => ({
22
25
  firstRowIndex: 0,
23
26
  lastRowIndex: rows.length,
@@ -27,11 +30,11 @@ export function GridPinnedRows({
27
30
  if (rows.length === 0) {
28
31
  return null;
29
32
  }
30
- const pinnedRows = virtualScroller.getRows({
33
+ const pinnedRows = getRows({
31
34
  position,
32
35
  rows,
33
36
  renderContext: pinnedRenderContext
34
- });
37
+ }, gridRowTreeSelector(apiRef));
35
38
  return /*#__PURE__*/_jsx("div", {
36
39
  className: clsx(classes.root, gridClasses[`pinnedRows--${position}`]),
37
40
  role: "presentation",
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { UseGridColumnHeadersProps, GetHeadersParams } from '@mui/x-data-grid/internals';
3
- export declare const useGridColumnHeaders: (props: UseGridColumnHeadersProps) => {
3
+ export declare const useGridColumnHeadersPro: (props: UseGridColumnHeadersProps) => {
4
4
  getColumnFiltersRow: () => React.JSX.Element | null;
5
5
  getFillers: (params: GetHeadersParams | undefined, children: React.ReactNode, leftOverflow: number, borderBottom?: boolean) => React.JSX.Element;
6
6
  getColumnHeadersRow: () => React.JSX.Element;
@@ -18,8 +18,7 @@ const useUtilityClasses = ownerState => {
18
18
  return composeClasses(slots, getDataGridUtilityClass, classes);
19
19
  }, [classes]);
20
20
  };
21
- const filterItemsCache = Object.create(null);
22
- export const useGridColumnHeaders = props => {
21
+ export const useGridColumnHeadersPro = props => {
23
22
  const apiRef = useGridPrivateApiContext();
24
23
  const {
25
24
  headerGroupingMaxDepth,
@@ -54,6 +53,7 @@ export const useGridColumnHeaders = props => {
54
53
  const headerFilterHeight = useGridSelector(apiRef, gridHeaderFilterHeightSelector);
55
54
  const scrollbarWidth = useGridSelector(apiRef, gridVerticalScrollbarWidthSelector);
56
55
  const columnHeaderFilterFocus = useGridSelector(apiRef, gridFocusColumnHeaderFilterSelector);
56
+ const filterItemsCache = React.useRef(Object.create(null)).current;
57
57
  const getFilterItem = React.useCallback(colDef => {
58
58
  const filterModelItem = filterModel?.items.find(it => it.field === colDef.field && it.operator !== 'isAnyOf');
59
59
  if (filterModelItem != null) {
@@ -69,7 +69,9 @@ export const useGridColumnHeaders = props => {
69
69
  const defaultItem = getGridFilter(colDef);
70
70
  filterItemsCache[colDef.field] = defaultItem;
71
71
  return defaultItem;
72
- }, [filterModel]);
72
+ },
73
+ // eslint-disable-next-line react-hooks/exhaustive-deps
74
+ [filterModel]);
73
75
  const getColumnFilters = params => {
74
76
  const {
75
77
  renderedColumns,
@@ -72,4 +72,10 @@ export interface GridDataSourcePrivateApiPro {
72
72
  * Resets the data source state.
73
73
  */
74
74
  resetDataSourceState: () => void;
75
+ /**
76
+ * Removes the children rows of a parent from the grid.
77
+ * This is used when collapsing a parent row to ensure dynamic data updates work properly.
78
+ * @param {GridRowId} parentId The id of the parent node.
79
+ */
80
+ removeChildrenRows: (parentId: GridRowId) => void;
75
81
  }
@@ -1,4 +1,5 @@
1
1
  import { RefObject } from '@mui/x-internals/types';
2
+ import { GridRowId } from '@mui/x-data-grid';
2
3
  import { CacheChunkManager, DataSourceRowsUpdateStrategy, GridDataSourceBaseOptions } from '@mui/x-data-grid/internals';
3
4
  import { GridPrivateApiPro } from "../../../models/gridApiPro.js";
4
5
  import { DataGridProProcessedProps } from "../../../models/dataGridProProps.js";
@@ -12,7 +13,7 @@ export declare const useGridDataSourceBasePro: <Api extends GridPrivateApiPro>(a
12
13
  public: GridDataSourceApiPro;
13
14
  private: GridDataSourcePrivateApiPro;
14
15
  };
15
- debouncedFetchRows: ((parentId?: import("@mui/x-data-grid").GridRowId, params?: Partial<import("@mui/x-data-grid").GridGetRowsParams>) => void) & import("@mui/utils/debounce").Cancelable;
16
+ debouncedFetchRows: ((parentId?: import("@mui/x-data-grid").GridRowId, params?: import("@mui/x-data-grid/hooks/features/dataSource/models").GridDataSourceFetchRowsParams) => void) & import("@mui/utils/debounce").Cancelable;
16
17
  strategyProcessor: {
17
18
  strategyName: DataSourceRowsUpdateStrategy;
18
19
  group: "dataSourceRowsUpdate";