@mui/x-data-grid-premium 8.0.0-alpha.1 → 8.0.0-alpha.3
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 +330 -7
- package/DataGridPremium/DataGridPremium.js +24 -20
- package/DataGridPremium/useDataGridPremiumComponent.js +1 -0
- package/esm/DataGridPremium/DataGridPremium.js +24 -20
- package/esm/DataGridPremium/useDataGridPremiumComponent.js +2 -1
- package/esm/hooks/features/cellSelection/useGridCellSelection.js +2 -3
- package/esm/hooks/features/rowGrouping/gridRowGroupingUtils.js +2 -2
- package/esm/hooks/features/rowGrouping/useGridRowGrouping.js +2 -2
- package/esm/hooks/utils/useGridAriaAttributes.js +1 -3
- package/esm/utils/releaseInfo.js +1 -1
- package/hooks/features/cellSelection/useGridCellSelection.js +1 -2
- package/hooks/features/rowGrouping/gridRowGroupingUtils.js +1 -1
- package/hooks/features/rowGrouping/useGridRowGrouping.js +1 -1
- package/hooks/utils/useGridAriaAttributes.js +1 -3
- package/index.js +1 -1
- package/models/dataGridPremiumProps.d.ts +0 -6
- package/modern/DataGridPremium/DataGridPremium.js +24 -20
- package/modern/DataGridPremium/useDataGridPremiumComponent.js +2 -1
- package/modern/hooks/features/cellSelection/useGridCellSelection.js +2 -3
- package/modern/hooks/features/rowGrouping/gridRowGroupingUtils.js +2 -2
- package/modern/hooks/features/rowGrouping/useGridRowGrouping.js +2 -2
- package/modern/hooks/utils/useGridAriaAttributes.js +1 -3
- package/modern/index.js +1 -1
- package/modern/utils/releaseInfo.js +1 -1
- package/package.json +5 -5
- package/utils/releaseInfo.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,235 @@
|
|
|
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.0.0-alpha.3
|
|
9
|
+
|
|
10
|
+
_Dec 5, 2024_
|
|
11
|
+
|
|
12
|
+
We'd like to offer a big thanks to the 9 contributors who made this release possible. Here are some highlights ✨:
|
|
13
|
+
|
|
14
|
+
- 💫 Support [Server-side lazy loading](https://mui.com/x/react-data-grid/server-side-data/lazy-loading/) on the Data Grid. Use [data source](https://mui.com/x/react-data-grid/server-side-data/#data-source) to fetch a range of rows on demand and update the rows in the same way as described in [Infinite loading](https://mui.com/x/react-data-grid/row-updates/#infinite-loading) and [Lazy loading](https://mui.com/x/react-data-grid/row-updates/#lazy-loading) without the need to use any additional event listeners and callbacks.
|
|
15
|
+
- 🎯 Improved [data caching](https://mui.com/x/react-data-grid/server-side-data/#data-caching). Check out our [recommendations](https://mui.com/x/react-data-grid/server-side-data/#improving-the-cache-hit-rate) for improving the cache hit rate.
|
|
16
|
+
|
|
17
|
+
Special thanks go out to the community contributors who have helped make this release possible:
|
|
18
|
+
@ihsanberkozcan, @k-rajat19, @perezShaked.
|
|
19
|
+
Following are all team members who have contributed to this release:
|
|
20
|
+
@arminmeh, @cherniavskii, @flaviendelangle, @JCQuintas, @MBilalShafi, @noraleonte.
|
|
21
|
+
|
|
22
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
23
|
+
|
|
24
|
+
### Data Grid
|
|
25
|
+
|
|
26
|
+
#### Breaking changes
|
|
27
|
+
|
|
28
|
+
- The "Select all" checkbox is now checked when all the selectable rows are selected, ignoring rows that are not selectable because of the `isRowSelectable` prop.
|
|
29
|
+
- The `rowPositionsDebounceMs` prop was removed.
|
|
30
|
+
- The `gridRowsDataRowIdToIdLookupSelector` selector was removed. Use the `gridRowsLookupSelector` selector in combination with the `getRowId()` API method instead.
|
|
31
|
+
```diff
|
|
32
|
+
-const idToIdLookup = gridRowsDataRowIdToIdLookupSelector(apiRef);
|
|
33
|
+
-const rowId = idToIdLookup[id]
|
|
34
|
+
+const rowsLookup = gridRowsLookupSelector(apiRef);
|
|
35
|
+
+const rowId = apiRef.current.getRowId(rowsLookup[id])
|
|
36
|
+
```
|
|
37
|
+
- The Grid is now more aligned with the WAI-ARIA authoring practices and sets the `role` attribute to `treegrid` if the Data Grid is used with row grouping feature.
|
|
38
|
+
|
|
39
|
+
#### `@mui/x-data-grid@8.0.0-alpha.3`
|
|
40
|
+
|
|
41
|
+
- [DataGrid] Fix deselection not working with `isRowSelectable` (#15692) @MBilalShafi
|
|
42
|
+
- [DataGrid] Make column autosizing work with flex columns (#15465) @cherniavskii
|
|
43
|
+
- [DataGrid] Remove `gridRowsDataRowIdToIdLookupSelector` selector (#15698) @arminmeh
|
|
44
|
+
- [DataGrid] Remove `rowPositionsDebounceMs` prop (#15482) @k-rajat19
|
|
45
|
+
- [l10n] Improve Hebrew (he-IL) locale (#15699) @perezShaked
|
|
46
|
+
- [l10n] Improve Turkish (tr-TR) locale (#15734) @ihsanberkozcan
|
|
47
|
+
|
|
48
|
+
#### `@mui/x-data-grid-pro@8.0.0-alpha.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
49
|
+
|
|
50
|
+
Same changes as in `@mui/x-data-grid@8.0.0-alpha.3`, plus:
|
|
51
|
+
|
|
52
|
+
- [DataGridPro] Cleanup pinned rows on removal (#15697) @cherniavskii
|
|
53
|
+
- [DataGridPro] Server-side lazy loading (#13878) @arminmeh
|
|
54
|
+
|
|
55
|
+
#### `@mui/x-data-grid-premium@8.0.0-alpha.3` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
56
|
+
|
|
57
|
+
Same changes as in `@mui/x-data-grid-pro@8.0.0-alpha.3`, plus:
|
|
58
|
+
|
|
59
|
+
- [DataGridPremium] Remove the `ariaV8` experimental flag (#15694) @arminmeh
|
|
60
|
+
|
|
61
|
+
### Date and Time Pickers
|
|
62
|
+
|
|
63
|
+
#### Breaking changes
|
|
64
|
+
|
|
65
|
+
- The `onOpen()` and `onClose()` methods of the `usePickerContext()` hook have been replaced with a single `setOpen` method — [Learn more](https://next.mui.com/x/migration/migration-pickers-v7/#usepickercontext).
|
|
66
|
+
|
|
67
|
+
#### `@mui/x-date-pickers@8.0.0-alpha.3`
|
|
68
|
+
|
|
69
|
+
- [pickers] Replace the `onOpen()` and `onClose()` methods of `usePickerContext()` with a single `setOpen()` method. (#15701) @flaviendelangle
|
|
70
|
+
|
|
71
|
+
#### `@mui/x-date-pickers-pro@8.0.0-alpha.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
72
|
+
|
|
73
|
+
Same changes as in `@mui/x-date-pickers@8.0.0-alpha.3`.
|
|
74
|
+
|
|
75
|
+
### Charts
|
|
76
|
+
|
|
77
|
+
#### `@mui/x-charts@8.0.0-alpha.3`
|
|
78
|
+
|
|
79
|
+
- [charts] Improve SVG `pattern` and `gradient` support (#15720) @JCQuintas
|
|
80
|
+
|
|
81
|
+
#### `@mui/x-charts-pro@8.0.0-alpha.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
82
|
+
|
|
83
|
+
Same changes as in `@mui/x-charts@8.0.0-alpha.3`.
|
|
84
|
+
|
|
85
|
+
### Tree View
|
|
86
|
+
|
|
87
|
+
#### `@mui/x-tree-view@8.0.0-alpha.3`
|
|
88
|
+
|
|
89
|
+
No changes since `@mui/x-tree-view-pro@v8.0.0-alpha.2`.
|
|
90
|
+
|
|
91
|
+
#### `@mui/x-tree-view-pro@8.0.0-alpha.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
92
|
+
|
|
93
|
+
Same changes as in `@mui/x-tree-view@8.0.0-alpha.3`.
|
|
94
|
+
|
|
95
|
+
### Docs
|
|
96
|
+
|
|
97
|
+
- [docs] Add a customization demo for the Date and Time Pickers overview page (#15118) @noraleonte
|
|
98
|
+
- [docs] Fix typo in charts axis documentation (#15743) @JCQuintas
|
|
99
|
+
- [docs] Improve SEO titles for the Data Grid (#15695) @MBilalShafi
|
|
100
|
+
|
|
101
|
+
### Core
|
|
102
|
+
|
|
103
|
+
- [core] Add `@mui/x-tree-view-pro` to `releaseChangelog` (#15316) @flaviendelangle
|
|
104
|
+
- [code-infra] Lock file maintenance (#11894)
|
|
105
|
+
- [code-infra] Check if `preset-safe` folder exists in codemod test (#15703) @JCQuintas
|
|
106
|
+
- [code-infra] Import Pickers `preset-safe` into global codemod config (#15659) @JCQuintas
|
|
107
|
+
- [code-infra] Playwright 1.49 (#15493) @JCQuintas
|
|
108
|
+
- [test] Force hover in headless Chrome (#15710) @cherniavskii
|
|
109
|
+
|
|
110
|
+
## v8.0.0-alpha.2
|
|
111
|
+
|
|
112
|
+
_Nov 29, 2024_
|
|
113
|
+
|
|
114
|
+
We'd like to offer a big thanks to the 17 contributors who made this release possible. Here are some highlights ✨:
|
|
115
|
+
|
|
116
|
+
- 👨🏽💻 Improve resize performance on the Data Gird.
|
|
117
|
+
- `<ChartDataProvider />` and `<ChartsSurface />` components are now fully divided — [Learn more](https://next.mui.com/x/react-charts/composition/#overview).
|
|
118
|
+
- Users can create their own HTML components using chart data — [Learn more](https://next.mui.com/x/react-charts/components/#html-components).
|
|
119
|
+
- 🌍 Improve Spanish, Portuguese, Chinese locales on the Data Grid component.
|
|
120
|
+
- 🌍 Improve Dutch locale on the Date and Time Pickers components.
|
|
121
|
+
- 🐞 Bugfixes
|
|
122
|
+
- 📚 Documentation improvements
|
|
123
|
+
|
|
124
|
+
Special thanks go out to the community contributors who have helped make this release possible:
|
|
125
|
+
@dloeda, @headironc, @jedesroches, @k-rajat19, @lauri865, @mathzdev, @nphmuller, @zinoroman.
|
|
126
|
+
Following are all team members who have contributed to this release:
|
|
127
|
+
@arminmeh, @alexfauquette, @cherniavskii, @flaviendelangle, @JCQuintas, @KenanYusuf, @LukasTy, @MBilalShafi, @oliviertassinari.
|
|
128
|
+
|
|
129
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
130
|
+
|
|
131
|
+
### Data Grid
|
|
132
|
+
|
|
133
|
+
#### Breaking changes
|
|
134
|
+
|
|
135
|
+
- The `<GridOverlays />` component is not exported anymore.
|
|
136
|
+
- The `indeterminateCheckboxAction` prop has been removed. Clicking on an indeterminate checkbox "selects" the unselected descendants.
|
|
137
|
+
- The `apiRef.current.resize()` method was removed.
|
|
138
|
+
- The default value of the `rowSelectionPropagation` prop has been changed to `{ parents: true, descendants: true }` which means that the selection will be propagated to the parents and descendants by default.
|
|
139
|
+
To revert to the previous behavior, pass `rowSelectionPropagation` as `{ parents: false, descendants: false }`.
|
|
140
|
+
- If `estimatedRowCount` is used, the text provided to the [Table Pagination](/material-ui/api/table-pagination/) component from the Material UI library is updated and requires additional translations. Check the example at the end of [Index-based pagination section](/x/react-data-grid/pagination/#index-based-pagination).
|
|
141
|
+
|
|
142
|
+
#### `@mui/x-data-grid@v8.0.0-alpha.2`
|
|
143
|
+
|
|
144
|
+
- [DataGrid] Change test dom check from `/jsdom/` to `/jsdom|HappyDOM/`. (#15634) @jedesroches
|
|
145
|
+
- [DataGrid] Clear timers on unmount (#15620) @cherniavskii
|
|
146
|
+
- [DataGrid] Fix order of spread props on toolbar items (#15556) @KenanYusuf
|
|
147
|
+
- [DataGrid] Improve resize performance (#15549) @lauri865
|
|
148
|
+
- [DataGrid] Make estimation label more accurate (#15632) @arminmeh
|
|
149
|
+
- [DataGrid] Remove `<GridOverlays />` export (#15573) @k-rajat19
|
|
150
|
+
- [DataGrid] Remove `indeterminateCheckboxAction` prop (#15522) @MBilalShafi
|
|
151
|
+
- [DataGrid] Remove try/catch from `<GridCell />` due to performance issues (#15616) @lauri865
|
|
152
|
+
- [DataGrid] Remove unused `resize` method (#15599) @cherniavskii
|
|
153
|
+
- [DataGrid] Support column virtualization with dynamic row height (#15541) @cherniavskii
|
|
154
|
+
- [DataGrid] Update the default value for `rowSelectionPropagation` (#15523) @MBilalShafi
|
|
155
|
+
- [l10n] Improve Chinese (zh-CN) locale (#15570) @headironc
|
|
156
|
+
- [l10n] Improve Portuguese (pt-PT) locale (#15561) @mathzdev
|
|
157
|
+
|
|
158
|
+
#### `@mui/x-data-grid-pro@v8.0.0-alpha.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
159
|
+
|
|
160
|
+
Same changes as in `@mui/x-data-grid@v8.0.0-alpha.2`, plus:
|
|
161
|
+
|
|
162
|
+
- [DataGridPro] Fix header filtering with `boolean` column type (#15528) @k-rajat19
|
|
163
|
+
- [DataGridPro] Fix pagination state not updating if the data source response has no rows (#15622) @zinoroman
|
|
164
|
+
- [DataGridPro] Fix selection propagation issue on initialization (#15461) @MBilalShafi
|
|
165
|
+
|
|
166
|
+
#### `@mui/x-data-grid-premium@v8.0.0-alpha.2` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
167
|
+
|
|
168
|
+
Same changes as in `@mui/x-data-grid-pro@v8.0.0-alpha.2`.
|
|
169
|
+
|
|
170
|
+
### Date and Time Pickers
|
|
171
|
+
|
|
172
|
+
#### Breaking changes
|
|
173
|
+
|
|
174
|
+
- The props received by the `layout` and the `toolbar` slots have been reworked — [Learn more](https://next.mui.com/x/migration/migration-pickers-v7/#do-not-pass-the-section-type-as-a-generic).
|
|
175
|
+
|
|
176
|
+
- The `TSection` generic of the `FieldRef` type has been replaced with the `TValue` generic — [Learn more](https://next.mui.com/x/migration/migration-pickers-v7/#slots-breaking-changes).
|
|
177
|
+
|
|
178
|
+
#### `@mui/x-date-pickers@v8.0.0-alpha.2`
|
|
179
|
+
|
|
180
|
+
- [l10n] Improve Dutch (nl-NL) locale (#15564) @nphmuller
|
|
181
|
+
- [pickers] Fix DST issue with `America/Asuncion` timezone and `AdapterMoment` (#15552) @flaviendelangle
|
|
182
|
+
- [pickers] Improve validation internals (#15419) @flaviendelangle
|
|
183
|
+
- [pickers] Remove `TSection` and strictly type `TValue` (#15434) @flaviendelangle
|
|
184
|
+
- [pickers] Remove `orientation`, `isLandscape`, `isRtl`, `wrapperVariant` and `disabled` props from `PickersLayout` (#15494) @flaviendelangle
|
|
185
|
+
- [pickers] Use the new `ownerState` in `<PickersCalendarHeader />`, `<PickersArrowSwitcher />` and `<DayCalendarSkeleton />` (#15499) @flaviendelangle
|
|
186
|
+
- [pickers] Use the new `ownerState` object in all the field components (#15510) @flaviendelangle
|
|
187
|
+
|
|
188
|
+
#### `@mui/x-date-pickers-pro@v8.0.0-alpha.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
189
|
+
|
|
190
|
+
Same changes as in `@mui/x-date-pickers@v8.0.0-alpha.2`.
|
|
191
|
+
|
|
192
|
+
### Charts
|
|
193
|
+
|
|
194
|
+
#### Breaking changes
|
|
195
|
+
|
|
196
|
+
- Charts Container don't have a `<div />` wrapping them anymore. All props are now passed to the root `<svg />` instead of the `<div />`.
|
|
197
|
+
|
|
198
|
+
#### `@mui/x-charts@v8.0.0-alpha.2`
|
|
199
|
+
|
|
200
|
+
- [charts] Allow the creation of custom HTML components using charts data (#15511) @JCQuintas
|
|
201
|
+
- [charts] Flatten imports from `@mui/utils` and `@mui/system` (#15603) @alexfauquette
|
|
202
|
+
- [charts] Introduce the plugin system (#15513) @alexfauquette
|
|
203
|
+
- [charts] Prevent invalid `releasePointerCapture` (#15602) @alexfauquette
|
|
204
|
+
- [charts] Fix custom Tooltip demos (#15631) @alexfauquette
|
|
205
|
+
|
|
206
|
+
#### `@mui/x-charts-pro@v8.0.0-alpha.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
207
|
+
|
|
208
|
+
Same changes as in `@mui/x-charts@v8.0.0-alpha.2`.
|
|
209
|
+
|
|
210
|
+
### Tree View
|
|
211
|
+
|
|
212
|
+
#### `@mui/x-tree-view@v8.0.0-alpha.2`
|
|
213
|
+
|
|
214
|
+
- [TreeView] Flatten import from `@mui/utils` and `@mui/system` (#15604) @alexfauquette
|
|
215
|
+
|
|
216
|
+
#### `@mui/x-tree-view-pro@v8.0.0-alpha.2`
|
|
217
|
+
|
|
218
|
+
Same changes as in `@mui/x-tree-view@v8.0.0-alpha.2`.
|
|
219
|
+
|
|
220
|
+
### Docs
|
|
221
|
+
|
|
222
|
+
- [docs] Fix 404 links (#15575) @oliviertassinari
|
|
223
|
+
- [docs] Fix bash comments (#15571) @oliviertassinari
|
|
224
|
+
- [docs] Fix Pickers theme augmentation example (#15672) @LukasTy
|
|
225
|
+
- [docs] Replace use of "e.g." with "for example" (#15572) @oliviertassinari
|
|
226
|
+
- [docs] Update stale `new` and `preview` tags in v8 docs (#15547) @JCQuintas
|
|
227
|
+
- [docs] Fix layout shift image on Tree View docs (#15626) @oliviertassinari
|
|
228
|
+
- [docs] Fix `anchorEl` API page for charts (#15625) @oliviertassinari
|
|
229
|
+
- [docs] Add documentation for the list view feature (#15344) @KenanYusuf
|
|
230
|
+
|
|
231
|
+
### Core
|
|
232
|
+
|
|
233
|
+
- [core] Follow `()` function convention for docs @oliviertassinari
|
|
234
|
+
- [core] Remove dead translation key (#15566) @oliviertassinari
|
|
235
|
+
- [code-infra] Auto-merge `@types/node` bumps (#15591) @LukasTy
|
|
236
|
+
|
|
8
237
|
## v8.0.0-alpha.1
|
|
9
238
|
|
|
10
239
|
_Nov 22, 2024_
|
|
@@ -17,8 +246,6 @@ We'd like to offer a big thanks to the 16 contributors who made this release pos
|
|
|
17
246
|
- 🐞 Bugfixes
|
|
18
247
|
- 📚 Documentation improvements
|
|
19
248
|
|
|
20
|
-
### Breaking change
|
|
21
|
-
|
|
22
249
|
Special thanks go out to the community contributors who have helped make this release possible:
|
|
23
250
|
@CarlosLopezLg, @headironc, @hendrikpeilke, @k-rajat19, @lhilgert9, @viktormelin.
|
|
24
251
|
Following are all team members who have contributed to this release:
|
|
@@ -56,7 +283,7 @@ Same changes as in `@mui/x-data-grid-pro@v8.0.0-alpha.1`, plus:
|
|
|
56
283
|
#### Breaking change
|
|
57
284
|
|
|
58
285
|
- The `FieldValueType` type has been renamed to `PickerValueType` — [Learn more](https://next.mui.com/x/migration/migration-pickers-v7/#renamed-variables).
|
|
59
|
-
- The `toolbar` and `layout` slots no longer receive the
|
|
286
|
+
- The `toolbar` and `layout` slots no longer receive the `disabled` and `readOnly` props — [Learn more](https://next.mui.com/x/migration/migration-pickers-v7/#slots-breaking-changes).
|
|
60
287
|
|
|
61
288
|
#### `@mui/x-date-pickers@v8.0.0-alpha.1`
|
|
62
289
|
|
|
@@ -64,9 +291,9 @@ Same changes as in `@mui/x-data-grid-pro@v8.0.0-alpha.1`, plus:
|
|
|
64
291
|
- [pickers] React 19 support (#15342) @arminmeh
|
|
65
292
|
- [pickers] Add new properties to `PickerOwnerState` and `PickerContextValue` (#15415) @flaviendelangle
|
|
66
293
|
- [pickers] Always use `props.value` when it changes (#15490) @flaviendelangle
|
|
67
|
-
- [pickers] Ensure internal value timezone is updated
|
|
294
|
+
- [pickers] Ensure internal value timezone is updated (#15435) @LukasTy
|
|
68
295
|
- [pickers] Fix unused code in `<PickersToolbar />` component (#15515) @LukasTy
|
|
69
|
-
- [pickers] Remove
|
|
296
|
+
- [pickers] Remove `FieldValueType` in favor of `PickerValueType` (#15259) @arthurbalduini
|
|
70
297
|
- [pickers] Remove the form props from the layout and the toolbar slots (#15492) @flaviendelangle
|
|
71
298
|
- [pickers] Use `props.referenceDate` timezone when `props.value` and `props.defaultValue` are not defined (#15532) @flaviendelangle
|
|
72
299
|
- [TimePicker] Prevent mouse events after `touchend` event (#15346) @arthurbalduini
|
|
@@ -82,12 +309,14 @@ Same changes as in `@mui/x-date-pickers@v8.0.0-alpha.1`, plus:
|
|
|
82
309
|
#### Breaking change
|
|
83
310
|
|
|
84
311
|
- The DX of the Tooltip customization has been refactored
|
|
312
|
+
|
|
85
313
|
- The `tooltip` prop has been removed in favor of `slotProps.tooltip` for consistency.
|
|
86
|
-
- The `popper`, `axisContent`,
|
|
314
|
+
- The `popper`, `axisContent`, and `itemContent` slots have been removed in favor of the `tooltip` slot which overrides the entire tooltip.
|
|
87
315
|
- To override the tooltip content, use the `useItemTooltip` or `useAxisTooltip` hook to get the data, and wrap your component in `ChartsTooltipContainer` to follow the pointer position.
|
|
88
316
|
- To override the tooltip placement, use the `ChartsItemTooltipContent` or `ChartsItemTooltipContent` to get default data and place them in your custom tooltip.
|
|
89
317
|
|
|
90
318
|
- The library now uses the SVG `filter` attribute instead of `d3-color` for color manipulation.
|
|
319
|
+
|
|
91
320
|
- This modification impacts the `LinePlot`, `AreaPlot`, and `BarPlot` components.
|
|
92
321
|
If you've customized the `fill` of those elements, you might need to override it by using the CSS `filter`.
|
|
93
322
|
- The `theme.styleOverride` is removed for `MuiLineElement`, `MuiAreaElement`, and `MuiBarElement` to improve performance.
|
|
@@ -338,6 +567,100 @@ Same changes as in `@mui/x-charts@8.0.0-alpha.0`.
|
|
|
338
567
|
- [release] v8 preparation (#15054) @michelengelen
|
|
339
568
|
- [test] Fix advanced list view regression test snapshot (#15260) @KenanYusuf
|
|
340
569
|
|
|
570
|
+
## 7.23.0
|
|
571
|
+
|
|
572
|
+
_Nov 29, 2024_
|
|
573
|
+
|
|
574
|
+
We'd like to offer a big thanks to the 10 contributors who made this release possible. Here are some highlights ✨:
|
|
575
|
+
|
|
576
|
+
- ✨ Support for a new display mode on the Data Grid with the [List View feature](https://mui.com/x/react-data-grid/list-view/), offering an extremely flexible way to render datasets and enabling developers to adapt how data is displayed across different screen sizes.
|
|
577
|
+
|
|
578
|
+
https://github.com/user-attachments/assets/61286adc-03fc-4323-9739-8ca726fcc16c
|
|
579
|
+
|
|
580
|
+
- ⚛️ React 19 support
|
|
581
|
+
- 📚 Documentation improvements
|
|
582
|
+
- 🌍 Improve Spanish, Portuguese, Chinese locales on the Data Grid component.
|
|
583
|
+
- 🌍 Improve Dutch locale on the Date and Time Picker components.
|
|
584
|
+
- 🐞 Bugfixes
|
|
585
|
+
|
|
586
|
+
Special thanks go out to the community contributors who have helped make this release possible:
|
|
587
|
+
@dloeda, @headironc, @mathzdev, @nphmuller, @lhilgert9, @lauri865.
|
|
588
|
+
Following are all team members who have contributed to this release:
|
|
589
|
+
@oliviertassinari, @arminmeh, @KenanYusuf, @flaviendelangle, @MBilalShafi.
|
|
590
|
+
|
|
591
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
592
|
+
|
|
593
|
+
### Data Grid
|
|
594
|
+
|
|
595
|
+
#### `@mui/x-data-grid@v7.23.0`
|
|
596
|
+
|
|
597
|
+
- [DataGrid] React 19 support (#15557) @arminmeh
|
|
598
|
+
- [DataGrid] Change test dom check from `/jsdom/` to `/jsdom|HappyDOM/`. (#15642) @jedesroches
|
|
599
|
+
- [DataGrid] Fix last separator not being hidden when grid is scrollable (#15551) @KenanYusuf
|
|
600
|
+
- [DataGrid] Fix order of spread props on toolbar items (#15556) @KenanYusuf
|
|
601
|
+
- [DataGrid] Fix row-spanning in combination with column-pinning (#15460) @lhilgert9
|
|
602
|
+
- [DataGrid] Improve resize performance (#15592) @lauri865
|
|
603
|
+
- [DataGrid] Support column virtualization with dynamic row height (#15567) @cherniavskii
|
|
604
|
+
- [DataGrid] Improve `GridCell` performance (#15621) @lauri865
|
|
605
|
+
- [l10n] Improve Chinese (zh-CN) locale (#15570) @headironc
|
|
606
|
+
- [l10n] Improve Portuguese (pt-PT) locale (#15561) @mathzdev
|
|
607
|
+
|
|
608
|
+
#### `@mui/x-data-grid-pro@v7.23.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
609
|
+
|
|
610
|
+
Same changes as in `@mui/x-data-grid@v7.23.0`, plus:
|
|
611
|
+
|
|
612
|
+
- [DataGridPro] Fix header filtering with `boolean` column type (#15640) @k-rajat19
|
|
613
|
+
- [DataGridPro] Fix pagination state not updating if the data source response has no rows (#15643) @zinoroman
|
|
614
|
+
- [DataGridPro] Fix selection propagation issue on initialization (#15593) @MBilalShafi
|
|
615
|
+
|
|
616
|
+
#### `@mui/x-data-grid-premium@v7.23.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
617
|
+
|
|
618
|
+
Same changes as in `@mui/x-data-grid-pro@v7.23.0`.
|
|
619
|
+
|
|
620
|
+
### Date and Time Pickers
|
|
621
|
+
|
|
622
|
+
#### `@mui/x-date-pickers@v7.23.0`
|
|
623
|
+
|
|
624
|
+
- [pickers] React 19 support (#15557) @arminmeh
|
|
625
|
+
- [pickers] Fix DST issue with `America/Asuncion` timezone and `AdapterMoment` (#15653) @flaviendelangle
|
|
626
|
+
- [pickers] Use `props.referenceDate` timezone when `props.value` and `props.defaultValue` are not defined (#15544) @flaviendelangle
|
|
627
|
+
- [l10n] Improve Dutch (nl-NL) locale (#15564) @nphmuller
|
|
628
|
+
|
|
629
|
+
#### `@mui/x-date-pickers-pro@v7.23.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
630
|
+
|
|
631
|
+
Same changes as in `@mui/x-date-pickers@v7.23.0`.
|
|
632
|
+
|
|
633
|
+
### Charts
|
|
634
|
+
|
|
635
|
+
#### `@mui/x-charts@v7.23.0`
|
|
636
|
+
|
|
637
|
+
- [charts] React 19 support (#15557) @arminmeh
|
|
638
|
+
- [charts] Prevent invalid `releasePointerCapture` (#15609) @alexfauquette
|
|
639
|
+
|
|
640
|
+
#### `@mui/x-charts-pro@v7.23.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
641
|
+
|
|
642
|
+
Same changes as in `@mui/x-charts@v7.23.0`.
|
|
643
|
+
|
|
644
|
+
### Tree View
|
|
645
|
+
|
|
646
|
+
#### `@mui/x-tree-view@v7.23.0`
|
|
647
|
+
|
|
648
|
+
- [TreeView] React 19 support (#15557) @arminmeh
|
|
649
|
+
|
|
650
|
+
#### `@mui/x-tree-view-pro@7.23.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
651
|
+
|
|
652
|
+
Same changes as in `@mui/x-tree-view@7.23.0`.
|
|
653
|
+
|
|
654
|
+
### Docs
|
|
655
|
+
|
|
656
|
+
- [docs] Add data caching to lazy loaded detail panel demo (#15555) @cherniavskii
|
|
657
|
+
- [docs] Remove selectors section from list view docs (#15639) @KenanYusuf
|
|
658
|
+
- [docs] Add documentation for the list view feature (#15344) @KenanYusuf
|
|
659
|
+
|
|
660
|
+
### Core
|
|
661
|
+
|
|
662
|
+
- [core] Update @mui/monorepo (#15574) @oliviertassinari
|
|
663
|
+
|
|
341
664
|
## v7.22.3
|
|
342
665
|
|
|
343
666
|
_Nov 21, 2024_
|
|
@@ -4803,7 +5126,7 @@ Same changes as in `@mui/x-data-grid-pro@7.0.0-alpha.5`.
|
|
|
4803
5126
|
|
|
4804
5127
|
The `useClearableField` hook API has been simplified to now take a `props` parameter instead of a `fieldProps`, `InputProps`, `clearable`, `onClear`, `slots` and `slotProps` parameters.
|
|
4805
5128
|
|
|
4806
|
-
You should now be able to directly pass the returned value from your field hook (
|
|
5129
|
+
You should now be able to directly pass the returned value from your field hook (for example `useDateField`) to `useClearableField`
|
|
4807
5130
|
|
|
4808
5131
|
```diff
|
|
4809
5132
|
const fieldResponse = useDateField(props);
|
|
@@ -311,7 +311,6 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
311
311
|
* For each feature, if the flag is not explicitly set to `true`, then the feature is fully disabled, and neither property nor method calls will have any effect.
|
|
312
312
|
*/
|
|
313
313
|
experimentalFeatures: _propTypes.default.shape({
|
|
314
|
-
ariaV8: _propTypes.default.bool,
|
|
315
314
|
warnIfFocusStateIsNotSynced: _propTypes.default.bool
|
|
316
315
|
}),
|
|
317
316
|
/**
|
|
@@ -459,14 +458,6 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
459
458
|
clipboardExport: _propTypes.default.bool,
|
|
460
459
|
csvExport: _propTypes.default.bool
|
|
461
460
|
}), _propTypes.default.bool]),
|
|
462
|
-
/**
|
|
463
|
-
* If `select`, a group header checkbox in indeterminate state (like "Select All" checkbox)
|
|
464
|
-
* will select all the rows under it.
|
|
465
|
-
* If `deselect`, it will deselect all the rows under it.
|
|
466
|
-
* Works only if `checkboxSelection` is enabled.
|
|
467
|
-
* @default "deselect"
|
|
468
|
-
*/
|
|
469
|
-
indeterminateCheckboxAction: _propTypes.default.oneOf(['deselect', 'select']),
|
|
470
461
|
/**
|
|
471
462
|
* The initial state of the DataGridPremium.
|
|
472
463
|
* The data in it is set in the state on initialization but isn't controlled.
|
|
@@ -934,14 +925,6 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
934
925
|
* Controls the modes of the rows.
|
|
935
926
|
*/
|
|
936
927
|
rowModesModel: _propTypes.default.object,
|
|
937
|
-
/**
|
|
938
|
-
* The milliseconds delay to wait after measuring the row height before recalculating row positions.
|
|
939
|
-
* Setting it to a lower value could be useful when using dynamic row height,
|
|
940
|
-
* but might reduce performance when displaying a large number of rows.
|
|
941
|
-
* @default 166
|
|
942
|
-
* @deprecated
|
|
943
|
-
*/
|
|
944
|
-
rowPositionsDebounceMs: _propTypes.default.number,
|
|
945
928
|
/**
|
|
946
929
|
* If `true`, the reordering of rows is enabled.
|
|
947
930
|
* @default false
|
|
@@ -971,7 +954,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
971
954
|
* - Deselecting a descendant of a selected parent deselects the parent automatically.
|
|
972
955
|
*
|
|
973
956
|
* Works with tree data and row grouping on the client-side only.
|
|
974
|
-
* @default { parents:
|
|
957
|
+
* @default { parents: true, descendants: true }
|
|
975
958
|
*/
|
|
976
959
|
rowSelectionPropagation: _propTypes.default.shape({
|
|
977
960
|
descendants: _propTypes.default.bool,
|
|
@@ -981,7 +964,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
981
964
|
* Loading rows can be processed on the server or client-side.
|
|
982
965
|
* Set it to 'client' if you would like enable infnite loading.
|
|
983
966
|
* Set it to 'server' if you would like to enable lazy loading.
|
|
984
|
-
*
|
|
967
|
+
* @default "client"
|
|
985
968
|
*/
|
|
986
969
|
rowsLoadingMode: _propTypes.default.oneOf(['client', 'server']),
|
|
987
970
|
/**
|
|
@@ -995,6 +978,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
995
978
|
scrollbarSize: _propTypes.default.number,
|
|
996
979
|
/**
|
|
997
980
|
* Set the area in `px` at the bottom of the grid viewport where onRowsScrollEnd is called.
|
|
981
|
+
* If combined with `unstable_lazyLoading`, it defines the area where the next data request is triggered.
|
|
998
982
|
* @default 80
|
|
999
983
|
*/
|
|
1000
984
|
scrollEndThreshold: _propTypes.default.number,
|
|
@@ -1068,6 +1052,18 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
1068
1052
|
get: _propTypes.default.func.isRequired,
|
|
1069
1053
|
set: _propTypes.default.func.isRequired
|
|
1070
1054
|
}),
|
|
1055
|
+
/**
|
|
1056
|
+
* Used together with `unstable_dataSource` to enable lazy loading.
|
|
1057
|
+
* If enabled, the grid stops adding `paginationModel` to the data requests (`getRows`)
|
|
1058
|
+
* and starts sending `start` and `end` values depending on the loading mode and the scroll position.
|
|
1059
|
+
* @default false
|
|
1060
|
+
*/
|
|
1061
|
+
unstable_lazyLoading: _propTypes.default.bool,
|
|
1062
|
+
/**
|
|
1063
|
+
* If positive, the Data Grid will throttle data source requests on rendered rows interval change.
|
|
1064
|
+
* @default 500
|
|
1065
|
+
*/
|
|
1066
|
+
unstable_lazyLoadingRequestThrottleMs: _propTypes.default.number,
|
|
1071
1067
|
/**
|
|
1072
1068
|
* Definition of the column rendered when the `unstable_listView` prop is enabled.
|
|
1073
1069
|
*/
|
|
@@ -1088,7 +1084,15 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
1088
1084
|
* If `true`, the Data Grid will auto span the cells over the rows having the same value.
|
|
1089
1085
|
* @default false
|
|
1090
1086
|
*/
|
|
1091
|
-
unstable_rowSpanning: _propTypes.default.bool
|
|
1087
|
+
unstable_rowSpanning: _propTypes.default.bool,
|
|
1088
|
+
/**
|
|
1089
|
+
* If `true`, the Data Grid enables column virtualization when `getRowHeight` is set to `() => 'auto'`.
|
|
1090
|
+
* By default, column virtualization is disabled when dynamic row height is enabled to measure the row height correctly.
|
|
1091
|
+
* For datasets with a large number of columns, this can cause performance issues.
|
|
1092
|
+
* The downside of enabling this prop is that the row height will be estimated based the cells that are currently rendered, which can cause row height change when scrolling horizontally.
|
|
1093
|
+
* @default false
|
|
1094
|
+
*/
|
|
1095
|
+
virtualizeColumnsWithAutoRowHeight: _propTypes.default.bool
|
|
1092
1096
|
} : void 0;
|
|
1093
1097
|
/**
|
|
1094
1098
|
* Demos:
|
|
@@ -97,6 +97,7 @@ const useDataGridPremiumComponent = (inputApiRef, props) => {
|
|
|
97
97
|
(0, _internals.useGridScroll)(apiRef, props);
|
|
98
98
|
(0, _internals.useGridInfiniteLoader)(apiRef, props);
|
|
99
99
|
(0, _internals.useGridLazyLoader)(apiRef, props);
|
|
100
|
+
(0, _internals.useGridDataSourceLazyLoader)(apiRef, props);
|
|
100
101
|
(0, _internals.useGridColumnMenu)(apiRef);
|
|
101
102
|
(0, _internals.useGridCsvExport)(apiRef, props);
|
|
102
103
|
(0, _internals.useGridPrintExport)(apiRef, props);
|
|
@@ -304,7 +304,6 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
304
304
|
* For each feature, if the flag is not explicitly set to `true`, then the feature is fully disabled, and neither property nor method calls will have any effect.
|
|
305
305
|
*/
|
|
306
306
|
experimentalFeatures: PropTypes.shape({
|
|
307
|
-
ariaV8: PropTypes.bool,
|
|
308
307
|
warnIfFocusStateIsNotSynced: PropTypes.bool
|
|
309
308
|
}),
|
|
310
309
|
/**
|
|
@@ -452,14 +451,6 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
452
451
|
clipboardExport: PropTypes.bool,
|
|
453
452
|
csvExport: PropTypes.bool
|
|
454
453
|
}), PropTypes.bool]),
|
|
455
|
-
/**
|
|
456
|
-
* If `select`, a group header checkbox in indeterminate state (like "Select All" checkbox)
|
|
457
|
-
* will select all the rows under it.
|
|
458
|
-
* If `deselect`, it will deselect all the rows under it.
|
|
459
|
-
* Works only if `checkboxSelection` is enabled.
|
|
460
|
-
* @default "deselect"
|
|
461
|
-
*/
|
|
462
|
-
indeterminateCheckboxAction: PropTypes.oneOf(['deselect', 'select']),
|
|
463
454
|
/**
|
|
464
455
|
* The initial state of the DataGridPremium.
|
|
465
456
|
* The data in it is set in the state on initialization but isn't controlled.
|
|
@@ -927,14 +918,6 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
927
918
|
* Controls the modes of the rows.
|
|
928
919
|
*/
|
|
929
920
|
rowModesModel: PropTypes.object,
|
|
930
|
-
/**
|
|
931
|
-
* The milliseconds delay to wait after measuring the row height before recalculating row positions.
|
|
932
|
-
* Setting it to a lower value could be useful when using dynamic row height,
|
|
933
|
-
* but might reduce performance when displaying a large number of rows.
|
|
934
|
-
* @default 166
|
|
935
|
-
* @deprecated
|
|
936
|
-
*/
|
|
937
|
-
rowPositionsDebounceMs: PropTypes.number,
|
|
938
921
|
/**
|
|
939
922
|
* If `true`, the reordering of rows is enabled.
|
|
940
923
|
* @default false
|
|
@@ -964,7 +947,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
964
947
|
* - Deselecting a descendant of a selected parent deselects the parent automatically.
|
|
965
948
|
*
|
|
966
949
|
* Works with tree data and row grouping on the client-side only.
|
|
967
|
-
* @default { parents:
|
|
950
|
+
* @default { parents: true, descendants: true }
|
|
968
951
|
*/
|
|
969
952
|
rowSelectionPropagation: PropTypes.shape({
|
|
970
953
|
descendants: PropTypes.bool,
|
|
@@ -974,7 +957,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
974
957
|
* Loading rows can be processed on the server or client-side.
|
|
975
958
|
* Set it to 'client' if you would like enable infnite loading.
|
|
976
959
|
* Set it to 'server' if you would like to enable lazy loading.
|
|
977
|
-
*
|
|
960
|
+
* @default "client"
|
|
978
961
|
*/
|
|
979
962
|
rowsLoadingMode: PropTypes.oneOf(['client', 'server']),
|
|
980
963
|
/**
|
|
@@ -988,6 +971,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
988
971
|
scrollbarSize: PropTypes.number,
|
|
989
972
|
/**
|
|
990
973
|
* Set the area in `px` at the bottom of the grid viewport where onRowsScrollEnd is called.
|
|
974
|
+
* If combined with `unstable_lazyLoading`, it defines the area where the next data request is triggered.
|
|
991
975
|
* @default 80
|
|
992
976
|
*/
|
|
993
977
|
scrollEndThreshold: PropTypes.number,
|
|
@@ -1061,6 +1045,18 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
1061
1045
|
get: PropTypes.func.isRequired,
|
|
1062
1046
|
set: PropTypes.func.isRequired
|
|
1063
1047
|
}),
|
|
1048
|
+
/**
|
|
1049
|
+
* Used together with `unstable_dataSource` to enable lazy loading.
|
|
1050
|
+
* If enabled, the grid stops adding `paginationModel` to the data requests (`getRows`)
|
|
1051
|
+
* and starts sending `start` and `end` values depending on the loading mode and the scroll position.
|
|
1052
|
+
* @default false
|
|
1053
|
+
*/
|
|
1054
|
+
unstable_lazyLoading: PropTypes.bool,
|
|
1055
|
+
/**
|
|
1056
|
+
* If positive, the Data Grid will throttle data source requests on rendered rows interval change.
|
|
1057
|
+
* @default 500
|
|
1058
|
+
*/
|
|
1059
|
+
unstable_lazyLoadingRequestThrottleMs: PropTypes.number,
|
|
1064
1060
|
/**
|
|
1065
1061
|
* Definition of the column rendered when the `unstable_listView` prop is enabled.
|
|
1066
1062
|
*/
|
|
@@ -1081,7 +1077,15 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
1081
1077
|
* If `true`, the Data Grid will auto span the cells over the rows having the same value.
|
|
1082
1078
|
* @default false
|
|
1083
1079
|
*/
|
|
1084
|
-
unstable_rowSpanning: PropTypes.bool
|
|
1080
|
+
unstable_rowSpanning: PropTypes.bool,
|
|
1081
|
+
/**
|
|
1082
|
+
* If `true`, the Data Grid enables column virtualization when `getRowHeight` is set to `() => 'auto'`.
|
|
1083
|
+
* By default, column virtualization is disabled when dynamic row height is enabled to measure the row height correctly.
|
|
1084
|
+
* For datasets with a large number of columns, this can cause performance issues.
|
|
1085
|
+
* The downside of enabling this prop is that the row height will be estimated based the cells that are currently rendered, which can cause row height change when scrolling horizontally.
|
|
1086
|
+
* @default false
|
|
1087
|
+
*/
|
|
1088
|
+
virtualizeColumnsWithAutoRowHeight: PropTypes.bool
|
|
1085
1089
|
} : void 0;
|
|
1086
1090
|
/**
|
|
1087
1091
|
* Demos:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
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, columnMenuStateInitializer, densityStateInitializer, focusStateInitializer, preferencePanelStateInitializer, rowsMetaStateInitializer, rowSelectionStateInitializer, useGridColumnReorder, columnReorderStateInitializer, useGridColumnResize, columnResizeStateInitializer, useGridTreeData, useGridTreeDataPreProcessors, useGridColumnPinning, columnPinningStateInitializer, useGridColumnPinningPreProcessors, useGridDetailPanel, detailPanelStateInitializer, useGridDetailPanelPreProcessors, useGridInfiniteLoader, useGridColumnSpanning, useGridRowReorder, useGridRowReorderPreProcessors, useGridRowPinning, useGridRowPinningPreProcessors, rowPinningStateInitializer, useGridColumnGrouping, columnGroupsStateInitializer, useGridLazyLoader, useGridLazyLoaderPreProcessors, headerFilteringStateInitializer, useGridHeaderFiltering, virtualizationStateInitializer, useGridVirtualization, useGridDataSourceTreeDataPreProcessors, useGridDataSource, dataSourceStateInitializer, useGridRowSpanning, rowSpanningStateInitializer, useGridListView, listViewStateInitializer } from '@mui/x-data-grid-pro/internals';
|
|
1
|
+
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, columnMenuStateInitializer, densityStateInitializer, focusStateInitializer, preferencePanelStateInitializer, rowsMetaStateInitializer, rowSelectionStateInitializer, useGridColumnReorder, columnReorderStateInitializer, useGridColumnResize, columnResizeStateInitializer, useGridTreeData, useGridTreeDataPreProcessors, useGridColumnPinning, columnPinningStateInitializer, useGridColumnPinningPreProcessors, useGridDetailPanel, detailPanelStateInitializer, useGridDetailPanelPreProcessors, useGridInfiniteLoader, useGridColumnSpanning, useGridRowReorder, useGridRowReorderPreProcessors, useGridRowPinning, useGridRowPinningPreProcessors, rowPinningStateInitializer, useGridColumnGrouping, columnGroupsStateInitializer, useGridLazyLoader, useGridLazyLoaderPreProcessors, useGridDataSourceLazyLoader, headerFilteringStateInitializer, useGridHeaderFiltering, virtualizationStateInitializer, useGridVirtualization, useGridDataSourceTreeDataPreProcessors, useGridDataSource, dataSourceStateInitializer, useGridRowSpanning, rowSpanningStateInitializer, useGridListView, listViewStateInitializer } from '@mui/x-data-grid-pro/internals';
|
|
2
2
|
// Premium-only features
|
|
3
3
|
import { useGridAggregation, aggregationStateInitializer } from "../hooks/features/aggregation/useGridAggregation.js";
|
|
4
4
|
import { useGridAggregationPreProcessors } from "../hooks/features/aggregation/useGridAggregationPreProcessors.js";
|
|
@@ -90,6 +90,7 @@ export const useDataGridPremiumComponent = (inputApiRef, props) => {
|
|
|
90
90
|
useGridScroll(apiRef, props);
|
|
91
91
|
useGridInfiniteLoader(apiRef, props);
|
|
92
92
|
useGridLazyLoader(apiRef, props);
|
|
93
|
+
useGridDataSourceLazyLoader(apiRef, props);
|
|
93
94
|
useGridColumnMenu(apiRef);
|
|
94
95
|
useGridCsvExport(apiRef, props);
|
|
95
96
|
useGridPrintExport(apiRef, props);
|
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import ownerDocument from '@mui/utils/ownerDocument';
|
|
4
4
|
import useEventCallback from '@mui/utils/useEventCallback';
|
|
5
5
|
import { getTotalHeaderHeight, getVisibleRows, isNavigationKey, serializeCellValue, useGridRegisterPipeProcessor, useGridVisibleRows } from '@mui/x-data-grid-pro/internals';
|
|
6
|
-
import { useGridApiEventHandler, useGridApiMethod, GRID_ACTIONS_COLUMN_TYPE, GRID_CHECKBOX_SELECTION_COL_DEF, GRID_DETAIL_PANEL_TOGGLE_FIELD,
|
|
6
|
+
import { useGridApiEventHandler, useGridApiMethod, GRID_ACTIONS_COLUMN_TYPE, GRID_CHECKBOX_SELECTION_COL_DEF, GRID_DETAIL_PANEL_TOGGLE_FIELD, gridClasses, gridFocusCellSelector, GRID_REORDER_COL_DEF, useGridSelector, gridSortedRowIdsSelector, gridDimensionsSelector } from '@mui/x-data-grid-pro';
|
|
7
7
|
import { gridCellSelectionStateSelector } from "./gridCellSelectionSelector.js";
|
|
8
8
|
export const cellSelectionStateInitializer = (state, props) => _extends({}, state, {
|
|
9
9
|
cellSelection: _extends({}, props.cellSelectionModel ?? props.initialState?.cellSelection)
|
|
@@ -91,7 +91,6 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
91
91
|
}, [apiRef, visibleRows.rows]);
|
|
92
92
|
const getSelectedCellsAsArray = React.useCallback(() => {
|
|
93
93
|
const selectionModel = apiRef.current.getCellSelectionModel();
|
|
94
|
-
const idToIdLookup = gridRowsDataRowIdToIdLookupSelector(apiRef);
|
|
95
94
|
const currentVisibleRows = getVisibleRows(apiRef, props);
|
|
96
95
|
const sortedEntries = currentVisibleRows.rows.reduce((result, row) => {
|
|
97
96
|
if (row.id in selectionModel) {
|
|
@@ -103,7 +102,7 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
103
102
|
selectedCells.push(...Object.entries(fields).reduce((selectedFields, [field, isSelected]) => {
|
|
104
103
|
if (isSelected) {
|
|
105
104
|
selectedFields.push({
|
|
106
|
-
id
|
|
105
|
+
id,
|
|
107
106
|
field
|
|
108
107
|
});
|
|
109
108
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import { passFilterLogic, GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD, getRowGroupingCriteriaFromGroupingField, isGroupingColumn } from '@mui/x-data-grid-pro/internals';
|
|
2
|
+
import { passFilterLogic, GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD, getRowGroupingCriteriaFromGroupingField, isGroupingColumn, GridStrategyGroup } from '@mui/x-data-grid-pro/internals';
|
|
3
3
|
import { gridRowGroupingSanitizedModelSelector } from "./gridRowGroupingSelector.js";
|
|
4
4
|
export { GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD, getRowGroupingCriteriaFromGroupingField, isGroupingColumn };
|
|
5
5
|
export let RowGroupingStrategy = /*#__PURE__*/function (RowGroupingStrategy) {
|
|
@@ -124,7 +124,7 @@ export const setStrategyAvailability = (privateApiRef, disableRowGrouping, dataS
|
|
|
124
124
|
};
|
|
125
125
|
}
|
|
126
126
|
const strategy = dataSource ? RowGroupingStrategy.DataSource : RowGroupingStrategy.Default;
|
|
127
|
-
privateApiRef.current.setStrategyAvailability(
|
|
127
|
+
privateApiRef.current.setStrategyAvailability(GridStrategyGroup.RowTree, strategy, isAvailable);
|
|
128
128
|
};
|
|
129
129
|
export const getCellGroupingCriteria = ({
|
|
130
130
|
row,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useGridApiEventHandler, useGridApiMethod, gridColumnLookupSelector } from '@mui/x-data-grid-pro';
|
|
4
|
-
import { useGridRegisterPipeProcessor } from '@mui/x-data-grid-pro/internals';
|
|
4
|
+
import { useGridRegisterPipeProcessor, GridStrategyGroup } from '@mui/x-data-grid-pro/internals';
|
|
5
5
|
import { gridRowGroupingModelSelector, gridRowGroupingSanitizedModelSelector } from "./gridRowGroupingSelector.js";
|
|
6
6
|
import { getRowGroupingFieldFromGroupingCriteria, RowGroupingStrategy, isGroupingColumn, mergeStateWithRowGroupingModel, setStrategyAvailability, getGroupingRules, areGroupingRulesEqual } from "./gridRowGroupingUtils.js";
|
|
7
7
|
export const rowGroupingStateInitializer = (state, props, apiRef) => {
|
|
@@ -162,7 +162,7 @@ export const useGridRowGrouping = (apiRef, props) => {
|
|
|
162
162
|
|
|
163
163
|
// Refresh the row tree creation strategy processing
|
|
164
164
|
// TODO: Add a clean way to re-run a strategy processing without publishing a private event
|
|
165
|
-
if (apiRef.current.getActiveStrategy(
|
|
165
|
+
if (apiRef.current.getActiveStrategy(GridStrategyGroup.RowTree) === RowGroupingStrategy.Default) {
|
|
166
166
|
apiRef.current.publishEvent('activeStrategyProcessorChange', 'rowTreeCreation');
|
|
167
167
|
}
|
|
168
168
|
}
|
|
@@ -2,13 +2,11 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import { useGridAriaAttributes as useGridAriaAttributesPro, useGridSelector } from '@mui/x-data-grid-pro/internals';
|
|
3
3
|
import { gridRowGroupingSanitizedModelSelector } from "../features/rowGrouping/gridRowGroupingSelector.js";
|
|
4
4
|
import { useGridPrivateApiContext } from "./useGridPrivateApiContext.js";
|
|
5
|
-
import { useGridRootProps } from "./useGridRootProps.js";
|
|
6
5
|
export const useGridAriaAttributes = () => {
|
|
7
|
-
const rootProps = useGridRootProps();
|
|
8
6
|
const ariaAttributesPro = useGridAriaAttributesPro();
|
|
9
7
|
const apiRef = useGridPrivateApiContext();
|
|
10
8
|
const gridRowGroupingModel = useGridSelector(apiRef, gridRowGroupingSanitizedModelSelector);
|
|
11
|
-
const ariaAttributesPremium =
|
|
9
|
+
const ariaAttributesPremium = gridRowGroupingModel.length > 0 ? {
|
|
12
10
|
role: 'treegrid'
|
|
13
11
|
} : {};
|
|
14
12
|
return _extends({}, ariaAttributesPro, ariaAttributesPremium);
|
package/esm/utils/releaseInfo.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ponyfillGlobal } from '@mui/utils';
|
|
2
2
|
export const getReleaseInfo = () => {
|
|
3
|
-
const releaseInfo = "
|
|
3
|
+
const releaseInfo = "MTczMzM1MzIwMDAwMA==";
|
|
4
4
|
if (process.env.NODE_ENV !== 'production') {
|
|
5
5
|
// A simple hack to set the value in the test environment (has no build step).
|
|
6
6
|
// eslint-disable-next-line no-useless-concat
|
|
@@ -100,7 +100,6 @@ const useGridCellSelection = (apiRef, props) => {
|
|
|
100
100
|
}, [apiRef, visibleRows.rows]);
|
|
101
101
|
const getSelectedCellsAsArray = React.useCallback(() => {
|
|
102
102
|
const selectionModel = apiRef.current.getCellSelectionModel();
|
|
103
|
-
const idToIdLookup = (0, _xDataGridPro.gridRowsDataRowIdToIdLookupSelector)(apiRef);
|
|
104
103
|
const currentVisibleRows = (0, _internals.getVisibleRows)(apiRef, props);
|
|
105
104
|
const sortedEntries = currentVisibleRows.rows.reduce((result, row) => {
|
|
106
105
|
if (row.id in selectionModel) {
|
|
@@ -112,7 +111,7 @@ const useGridCellSelection = (apiRef, props) => {
|
|
|
112
111
|
selectedCells.push(...Object.entries(fields).reduce((selectedFields, [field, isSelected]) => {
|
|
113
112
|
if (isSelected) {
|
|
114
113
|
selectedFields.push({
|
|
115
|
-
id
|
|
114
|
+
id,
|
|
116
115
|
field
|
|
117
116
|
});
|
|
118
117
|
}
|
|
@@ -154,7 +154,7 @@ const setStrategyAvailability = (privateApiRef, disableRowGrouping, dataSource)
|
|
|
154
154
|
};
|
|
155
155
|
}
|
|
156
156
|
const strategy = dataSource ? RowGroupingStrategy.DataSource : RowGroupingStrategy.Default;
|
|
157
|
-
privateApiRef.current.setStrategyAvailability(
|
|
157
|
+
privateApiRef.current.setStrategyAvailability(_internals.GridStrategyGroup.RowTree, strategy, isAvailable);
|
|
158
158
|
};
|
|
159
159
|
exports.setStrategyAvailability = setStrategyAvailability;
|
|
160
160
|
const getCellGroupingCriteria = ({
|
|
@@ -171,7 +171,7 @@ const useGridRowGrouping = (apiRef, props) => {
|
|
|
171
171
|
|
|
172
172
|
// Refresh the row tree creation strategy processing
|
|
173
173
|
// TODO: Add a clean way to re-run a strategy processing without publishing a private event
|
|
174
|
-
if (apiRef.current.getActiveStrategy(
|
|
174
|
+
if (apiRef.current.getActiveStrategy(_internals.GridStrategyGroup.RowTree) === _gridRowGroupingUtils.RowGroupingStrategy.Default) {
|
|
175
175
|
apiRef.current.publishEvent('activeStrategyProcessorChange', 'rowTreeCreation');
|
|
176
176
|
}
|
|
177
177
|
}
|
|
@@ -9,13 +9,11 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
9
|
var _internals = require("@mui/x-data-grid-pro/internals");
|
|
10
10
|
var _gridRowGroupingSelector = require("../features/rowGrouping/gridRowGroupingSelector");
|
|
11
11
|
var _useGridPrivateApiContext = require("./useGridPrivateApiContext");
|
|
12
|
-
var _useGridRootProps = require("./useGridRootProps");
|
|
13
12
|
const useGridAriaAttributes = () => {
|
|
14
|
-
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
15
13
|
const ariaAttributesPro = (0, _internals.useGridAriaAttributes)();
|
|
16
14
|
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
|
|
17
15
|
const gridRowGroupingModel = (0, _internals.useGridSelector)(apiRef, _gridRowGroupingSelector.gridRowGroupingSanitizedModelSelector);
|
|
18
|
-
const ariaAttributesPremium =
|
|
16
|
+
const ariaAttributesPremium = gridRowGroupingModel.length > 0 ? {
|
|
19
17
|
role: 'treegrid'
|
|
20
18
|
} : {};
|
|
21
19
|
return (0, _extends2.default)({}, ariaAttributesPro, ariaAttributesPremium);
|
package/index.js
CHANGED
|
@@ -8,12 +8,6 @@ import { GridInitialStatePremium } from './gridStatePremium';
|
|
|
8
8
|
import { GridApiPremium } from './gridApiPremium';
|
|
9
9
|
import { GridCellSelectionModel } from '../hooks/features/cellSelection';
|
|
10
10
|
export interface GridExperimentalPremiumFeatures extends GridExperimentalProFeatures {
|
|
11
|
-
/**
|
|
12
|
-
* Enables accessibility improvements that will be enabled by default in V8.
|
|
13
|
-
* If you rely on the v7 ARIA attributes (e.g. for CSS selectors), this might be a breaking change.
|
|
14
|
-
* @default false
|
|
15
|
-
*/
|
|
16
|
-
ariaV8: boolean;
|
|
17
11
|
}
|
|
18
12
|
export interface DataGridPremiumPropsWithComplexDefaultValueBeforeProcessing extends Pick<DataGridPropsWithComplexDefaultValueBeforeProcessing, 'localeText'> {
|
|
19
13
|
/**
|
|
@@ -304,7 +304,6 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
304
304
|
* For each feature, if the flag is not explicitly set to `true`, then the feature is fully disabled, and neither property nor method calls will have any effect.
|
|
305
305
|
*/
|
|
306
306
|
experimentalFeatures: PropTypes.shape({
|
|
307
|
-
ariaV8: PropTypes.bool,
|
|
308
307
|
warnIfFocusStateIsNotSynced: PropTypes.bool
|
|
309
308
|
}),
|
|
310
309
|
/**
|
|
@@ -452,14 +451,6 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
452
451
|
clipboardExport: PropTypes.bool,
|
|
453
452
|
csvExport: PropTypes.bool
|
|
454
453
|
}), PropTypes.bool]),
|
|
455
|
-
/**
|
|
456
|
-
* If `select`, a group header checkbox in indeterminate state (like "Select All" checkbox)
|
|
457
|
-
* will select all the rows under it.
|
|
458
|
-
* If `deselect`, it will deselect all the rows under it.
|
|
459
|
-
* Works only if `checkboxSelection` is enabled.
|
|
460
|
-
* @default "deselect"
|
|
461
|
-
*/
|
|
462
|
-
indeterminateCheckboxAction: PropTypes.oneOf(['deselect', 'select']),
|
|
463
454
|
/**
|
|
464
455
|
* The initial state of the DataGridPremium.
|
|
465
456
|
* The data in it is set in the state on initialization but isn't controlled.
|
|
@@ -927,14 +918,6 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
927
918
|
* Controls the modes of the rows.
|
|
928
919
|
*/
|
|
929
920
|
rowModesModel: PropTypes.object,
|
|
930
|
-
/**
|
|
931
|
-
* The milliseconds delay to wait after measuring the row height before recalculating row positions.
|
|
932
|
-
* Setting it to a lower value could be useful when using dynamic row height,
|
|
933
|
-
* but might reduce performance when displaying a large number of rows.
|
|
934
|
-
* @default 166
|
|
935
|
-
* @deprecated
|
|
936
|
-
*/
|
|
937
|
-
rowPositionsDebounceMs: PropTypes.number,
|
|
938
921
|
/**
|
|
939
922
|
* If `true`, the reordering of rows is enabled.
|
|
940
923
|
* @default false
|
|
@@ -964,7 +947,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
964
947
|
* - Deselecting a descendant of a selected parent deselects the parent automatically.
|
|
965
948
|
*
|
|
966
949
|
* Works with tree data and row grouping on the client-side only.
|
|
967
|
-
* @default { parents:
|
|
950
|
+
* @default { parents: true, descendants: true }
|
|
968
951
|
*/
|
|
969
952
|
rowSelectionPropagation: PropTypes.shape({
|
|
970
953
|
descendants: PropTypes.bool,
|
|
@@ -974,7 +957,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
974
957
|
* Loading rows can be processed on the server or client-side.
|
|
975
958
|
* Set it to 'client' if you would like enable infnite loading.
|
|
976
959
|
* Set it to 'server' if you would like to enable lazy loading.
|
|
977
|
-
*
|
|
960
|
+
* @default "client"
|
|
978
961
|
*/
|
|
979
962
|
rowsLoadingMode: PropTypes.oneOf(['client', 'server']),
|
|
980
963
|
/**
|
|
@@ -988,6 +971,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
988
971
|
scrollbarSize: PropTypes.number,
|
|
989
972
|
/**
|
|
990
973
|
* Set the area in `px` at the bottom of the grid viewport where onRowsScrollEnd is called.
|
|
974
|
+
* If combined with `unstable_lazyLoading`, it defines the area where the next data request is triggered.
|
|
991
975
|
* @default 80
|
|
992
976
|
*/
|
|
993
977
|
scrollEndThreshold: PropTypes.number,
|
|
@@ -1061,6 +1045,18 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
1061
1045
|
get: PropTypes.func.isRequired,
|
|
1062
1046
|
set: PropTypes.func.isRequired
|
|
1063
1047
|
}),
|
|
1048
|
+
/**
|
|
1049
|
+
* Used together with `unstable_dataSource` to enable lazy loading.
|
|
1050
|
+
* If enabled, the grid stops adding `paginationModel` to the data requests (`getRows`)
|
|
1051
|
+
* and starts sending `start` and `end` values depending on the loading mode and the scroll position.
|
|
1052
|
+
* @default false
|
|
1053
|
+
*/
|
|
1054
|
+
unstable_lazyLoading: PropTypes.bool,
|
|
1055
|
+
/**
|
|
1056
|
+
* If positive, the Data Grid will throttle data source requests on rendered rows interval change.
|
|
1057
|
+
* @default 500
|
|
1058
|
+
*/
|
|
1059
|
+
unstable_lazyLoadingRequestThrottleMs: PropTypes.number,
|
|
1064
1060
|
/**
|
|
1065
1061
|
* Definition of the column rendered when the `unstable_listView` prop is enabled.
|
|
1066
1062
|
*/
|
|
@@ -1081,7 +1077,15 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
1081
1077
|
* If `true`, the Data Grid will auto span the cells over the rows having the same value.
|
|
1082
1078
|
* @default false
|
|
1083
1079
|
*/
|
|
1084
|
-
unstable_rowSpanning: PropTypes.bool
|
|
1080
|
+
unstable_rowSpanning: PropTypes.bool,
|
|
1081
|
+
/**
|
|
1082
|
+
* If `true`, the Data Grid enables column virtualization when `getRowHeight` is set to `() => 'auto'`.
|
|
1083
|
+
* By default, column virtualization is disabled when dynamic row height is enabled to measure the row height correctly.
|
|
1084
|
+
* For datasets with a large number of columns, this can cause performance issues.
|
|
1085
|
+
* The downside of enabling this prop is that the row height will be estimated based the cells that are currently rendered, which can cause row height change when scrolling horizontally.
|
|
1086
|
+
* @default false
|
|
1087
|
+
*/
|
|
1088
|
+
virtualizeColumnsWithAutoRowHeight: PropTypes.bool
|
|
1085
1089
|
} : void 0;
|
|
1086
1090
|
/**
|
|
1087
1091
|
* Demos:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
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, columnMenuStateInitializer, densityStateInitializer, focusStateInitializer, preferencePanelStateInitializer, rowsMetaStateInitializer, rowSelectionStateInitializer, useGridColumnReorder, columnReorderStateInitializer, useGridColumnResize, columnResizeStateInitializer, useGridTreeData, useGridTreeDataPreProcessors, useGridColumnPinning, columnPinningStateInitializer, useGridColumnPinningPreProcessors, useGridDetailPanel, detailPanelStateInitializer, useGridDetailPanelPreProcessors, useGridInfiniteLoader, useGridColumnSpanning, useGridRowReorder, useGridRowReorderPreProcessors, useGridRowPinning, useGridRowPinningPreProcessors, rowPinningStateInitializer, useGridColumnGrouping, columnGroupsStateInitializer, useGridLazyLoader, useGridLazyLoaderPreProcessors, headerFilteringStateInitializer, useGridHeaderFiltering, virtualizationStateInitializer, useGridVirtualization, useGridDataSourceTreeDataPreProcessors, useGridDataSource, dataSourceStateInitializer, useGridRowSpanning, rowSpanningStateInitializer, useGridListView, listViewStateInitializer } from '@mui/x-data-grid-pro/internals';
|
|
1
|
+
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, columnMenuStateInitializer, densityStateInitializer, focusStateInitializer, preferencePanelStateInitializer, rowsMetaStateInitializer, rowSelectionStateInitializer, useGridColumnReorder, columnReorderStateInitializer, useGridColumnResize, columnResizeStateInitializer, useGridTreeData, useGridTreeDataPreProcessors, useGridColumnPinning, columnPinningStateInitializer, useGridColumnPinningPreProcessors, useGridDetailPanel, detailPanelStateInitializer, useGridDetailPanelPreProcessors, useGridInfiniteLoader, useGridColumnSpanning, useGridRowReorder, useGridRowReorderPreProcessors, useGridRowPinning, useGridRowPinningPreProcessors, rowPinningStateInitializer, useGridColumnGrouping, columnGroupsStateInitializer, useGridLazyLoader, useGridLazyLoaderPreProcessors, useGridDataSourceLazyLoader, headerFilteringStateInitializer, useGridHeaderFiltering, virtualizationStateInitializer, useGridVirtualization, useGridDataSourceTreeDataPreProcessors, useGridDataSource, dataSourceStateInitializer, useGridRowSpanning, rowSpanningStateInitializer, useGridListView, listViewStateInitializer } from '@mui/x-data-grid-pro/internals';
|
|
2
2
|
// Premium-only features
|
|
3
3
|
import { useGridAggregation, aggregationStateInitializer } from "../hooks/features/aggregation/useGridAggregation.js";
|
|
4
4
|
import { useGridAggregationPreProcessors } from "../hooks/features/aggregation/useGridAggregationPreProcessors.js";
|
|
@@ -90,6 +90,7 @@ export const useDataGridPremiumComponent = (inputApiRef, props) => {
|
|
|
90
90
|
useGridScroll(apiRef, props);
|
|
91
91
|
useGridInfiniteLoader(apiRef, props);
|
|
92
92
|
useGridLazyLoader(apiRef, props);
|
|
93
|
+
useGridDataSourceLazyLoader(apiRef, props);
|
|
93
94
|
useGridColumnMenu(apiRef);
|
|
94
95
|
useGridCsvExport(apiRef, props);
|
|
95
96
|
useGridPrintExport(apiRef, props);
|
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import ownerDocument from '@mui/utils/ownerDocument';
|
|
4
4
|
import useEventCallback from '@mui/utils/useEventCallback';
|
|
5
5
|
import { getTotalHeaderHeight, getVisibleRows, isNavigationKey, serializeCellValue, useGridRegisterPipeProcessor, useGridVisibleRows } from '@mui/x-data-grid-pro/internals';
|
|
6
|
-
import { useGridApiEventHandler, useGridApiMethod, GRID_ACTIONS_COLUMN_TYPE, GRID_CHECKBOX_SELECTION_COL_DEF, GRID_DETAIL_PANEL_TOGGLE_FIELD,
|
|
6
|
+
import { useGridApiEventHandler, useGridApiMethod, GRID_ACTIONS_COLUMN_TYPE, GRID_CHECKBOX_SELECTION_COL_DEF, GRID_DETAIL_PANEL_TOGGLE_FIELD, gridClasses, gridFocusCellSelector, GRID_REORDER_COL_DEF, useGridSelector, gridSortedRowIdsSelector, gridDimensionsSelector } from '@mui/x-data-grid-pro';
|
|
7
7
|
import { gridCellSelectionStateSelector } from "./gridCellSelectionSelector.js";
|
|
8
8
|
export const cellSelectionStateInitializer = (state, props) => _extends({}, state, {
|
|
9
9
|
cellSelection: _extends({}, props.cellSelectionModel ?? props.initialState?.cellSelection)
|
|
@@ -91,7 +91,6 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
91
91
|
}, [apiRef, visibleRows.rows]);
|
|
92
92
|
const getSelectedCellsAsArray = React.useCallback(() => {
|
|
93
93
|
const selectionModel = apiRef.current.getCellSelectionModel();
|
|
94
|
-
const idToIdLookup = gridRowsDataRowIdToIdLookupSelector(apiRef);
|
|
95
94
|
const currentVisibleRows = getVisibleRows(apiRef, props);
|
|
96
95
|
const sortedEntries = currentVisibleRows.rows.reduce((result, row) => {
|
|
97
96
|
if (row.id in selectionModel) {
|
|
@@ -103,7 +102,7 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
103
102
|
selectedCells.push(...Object.entries(fields).reduce((selectedFields, [field, isSelected]) => {
|
|
104
103
|
if (isSelected) {
|
|
105
104
|
selectedFields.push({
|
|
106
|
-
id
|
|
105
|
+
id,
|
|
107
106
|
field
|
|
108
107
|
});
|
|
109
108
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import { passFilterLogic, GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD, getRowGroupingCriteriaFromGroupingField, isGroupingColumn } from '@mui/x-data-grid-pro/internals';
|
|
2
|
+
import { passFilterLogic, GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD, getRowGroupingCriteriaFromGroupingField, isGroupingColumn, GridStrategyGroup } from '@mui/x-data-grid-pro/internals';
|
|
3
3
|
import { gridRowGroupingSanitizedModelSelector } from "./gridRowGroupingSelector.js";
|
|
4
4
|
export { GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD, getRowGroupingCriteriaFromGroupingField, isGroupingColumn };
|
|
5
5
|
export let RowGroupingStrategy = /*#__PURE__*/function (RowGroupingStrategy) {
|
|
@@ -124,7 +124,7 @@ export const setStrategyAvailability = (privateApiRef, disableRowGrouping, dataS
|
|
|
124
124
|
};
|
|
125
125
|
}
|
|
126
126
|
const strategy = dataSource ? RowGroupingStrategy.DataSource : RowGroupingStrategy.Default;
|
|
127
|
-
privateApiRef.current.setStrategyAvailability(
|
|
127
|
+
privateApiRef.current.setStrategyAvailability(GridStrategyGroup.RowTree, strategy, isAvailable);
|
|
128
128
|
};
|
|
129
129
|
export const getCellGroupingCriteria = ({
|
|
130
130
|
row,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useGridApiEventHandler, useGridApiMethod, gridColumnLookupSelector } from '@mui/x-data-grid-pro';
|
|
4
|
-
import { useGridRegisterPipeProcessor } from '@mui/x-data-grid-pro/internals';
|
|
4
|
+
import { useGridRegisterPipeProcessor, GridStrategyGroup } from '@mui/x-data-grid-pro/internals';
|
|
5
5
|
import { gridRowGroupingModelSelector, gridRowGroupingSanitizedModelSelector } from "./gridRowGroupingSelector.js";
|
|
6
6
|
import { getRowGroupingFieldFromGroupingCriteria, RowGroupingStrategy, isGroupingColumn, mergeStateWithRowGroupingModel, setStrategyAvailability, getGroupingRules, areGroupingRulesEqual } from "./gridRowGroupingUtils.js";
|
|
7
7
|
export const rowGroupingStateInitializer = (state, props, apiRef) => {
|
|
@@ -162,7 +162,7 @@ export const useGridRowGrouping = (apiRef, props) => {
|
|
|
162
162
|
|
|
163
163
|
// Refresh the row tree creation strategy processing
|
|
164
164
|
// TODO: Add a clean way to re-run a strategy processing without publishing a private event
|
|
165
|
-
if (apiRef.current.getActiveStrategy(
|
|
165
|
+
if (apiRef.current.getActiveStrategy(GridStrategyGroup.RowTree) === RowGroupingStrategy.Default) {
|
|
166
166
|
apiRef.current.publishEvent('activeStrategyProcessorChange', 'rowTreeCreation');
|
|
167
167
|
}
|
|
168
168
|
}
|
|
@@ -2,13 +2,11 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import { useGridAriaAttributes as useGridAriaAttributesPro, useGridSelector } from '@mui/x-data-grid-pro/internals';
|
|
3
3
|
import { gridRowGroupingSanitizedModelSelector } from "../features/rowGrouping/gridRowGroupingSelector.js";
|
|
4
4
|
import { useGridPrivateApiContext } from "./useGridPrivateApiContext.js";
|
|
5
|
-
import { useGridRootProps } from "./useGridRootProps.js";
|
|
6
5
|
export const useGridAriaAttributes = () => {
|
|
7
|
-
const rootProps = useGridRootProps();
|
|
8
6
|
const ariaAttributesPro = useGridAriaAttributesPro();
|
|
9
7
|
const apiRef = useGridPrivateApiContext();
|
|
10
8
|
const gridRowGroupingModel = useGridSelector(apiRef, gridRowGroupingSanitizedModelSelector);
|
|
11
|
-
const ariaAttributesPremium =
|
|
9
|
+
const ariaAttributesPremium = gridRowGroupingModel.length > 0 ? {
|
|
12
10
|
role: 'treegrid'
|
|
13
11
|
} : {};
|
|
14
12
|
return _extends({}, ariaAttributesPro, ariaAttributesPremium);
|
package/modern/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ponyfillGlobal } from '@mui/utils';
|
|
2
2
|
export const getReleaseInfo = () => {
|
|
3
|
-
const releaseInfo = "
|
|
3
|
+
const releaseInfo = "MTczMzM1MzIwMDAwMA==";
|
|
4
4
|
if (process.env.NODE_ENV !== 'production') {
|
|
5
5
|
// A simple hack to set the value in the test environment (has no build step).
|
|
6
6
|
// eslint-disable-next-line no-useless-concat
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-data-grid-premium",
|
|
3
|
-
"version": "8.0.0-alpha.
|
|
3
|
+
"version": "8.0.0-alpha.3",
|
|
4
4
|
"description": "The Premium plan edition of the Data Grid Components (MUI X).",
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
"exceljs": "^4.4.0",
|
|
41
41
|
"prop-types": "^15.8.1",
|
|
42
42
|
"reselect": "^5.1.1",
|
|
43
|
-
"@mui/x-
|
|
44
|
-
"@mui/x-
|
|
45
|
-
"@mui/x-license": "8.0.0-alpha.
|
|
46
|
-
"@mui/x-data-grid-pro": "8.0.0-alpha.
|
|
43
|
+
"@mui/x-data-grid": "8.0.0-alpha.3",
|
|
44
|
+
"@mui/x-internals": "8.0.0-alpha.2",
|
|
45
|
+
"@mui/x-license": "8.0.0-alpha.2",
|
|
46
|
+
"@mui/x-data-grid-pro": "8.0.0-alpha.3"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"@emotion/react": "^11.9.0",
|
package/utils/releaseInfo.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getReleaseInfo = void 0;
|
|
7
7
|
var _utils = require("@mui/utils");
|
|
8
8
|
const getReleaseInfo = () => {
|
|
9
|
-
const releaseInfo = "
|
|
9
|
+
const releaseInfo = "MTczMzM1MzIwMDAwMA==";
|
|
10
10
|
if (process.env.NODE_ENV !== 'production') {
|
|
11
11
|
// A simple hack to set the value in the test environment (has no build step).
|
|
12
12
|
// eslint-disable-next-line no-useless-concat
|