@mui/x-data-grid-premium 8.0.0-alpha.2 → 8.0.0-alpha.4
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 +376 -0
- package/DataGridPremium/DataGridPremium.js +19 -15
- package/DataGridPremium/useDataGridPremiumComponent.js +1 -0
- package/README.md +1 -1
- package/esm/DataGridPremium/DataGridPremium.js +19 -15
- package/esm/DataGridPremium/useDataGridPremiumComponent.js +2 -1
- package/esm/hooks/features/cellSelection/useGridCellSelection.js +2 -3
- package/esm/hooks/features/rowGrouping/createGroupingColDef.js +5 -1
- 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/aggregation/gridAggregationSelectors.d.ts +2 -2
- package/hooks/features/cellSelection/useGridCellSelection.js +1 -2
- package/hooks/features/rowGrouping/createGroupingColDef.js +5 -1
- package/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +2 -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 +19 -15
- package/modern/DataGridPremium/useDataGridPremiumComponent.js +2 -1
- package/modern/hooks/features/cellSelection/useGridCellSelection.js +2 -3
- package/modern/hooks/features/rowGrouping/createGroupingColDef.js +5 -1
- 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.4
|
|
9
|
+
|
|
10
|
+
_Dec 13, 2024_
|
|
11
|
+
|
|
12
|
+
We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
|
|
13
|
+
|
|
14
|
+
- 🌍 Improve Romanian locale on the Data Grid and Pickers
|
|
15
|
+
- 📚 Documentation improvements
|
|
16
|
+
- 🐞 Bugfixes
|
|
17
|
+
|
|
18
|
+
Special thanks go out to the community contributors who have helped make this release possible:
|
|
19
|
+
@k-rajat19, @nusr, @rares985, @zivl.
|
|
20
|
+
Following are all team members who have contributed to this release:
|
|
21
|
+
@alexfauquette, @arminmeh, @flaviendelangle, @JCQuintas, @KenanYusuf, @LukasTy, @MBilalShafi.
|
|
22
|
+
|
|
23
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
24
|
+
|
|
25
|
+
### Data Grid
|
|
26
|
+
|
|
27
|
+
#### Breaking changes
|
|
28
|
+
|
|
29
|
+
- The selectors signature has been updated due to the support of arguments in the selectors. Pass `undefined` as `arguments` if the selector doesn't use any arguments.
|
|
30
|
+
|
|
31
|
+
```diff
|
|
32
|
+
-mySelector(state, instanceId)
|
|
33
|
+
+mySelector(state, arguments, instanceId)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
- The `useGridSelector` signature has been updated due to the introduction of arguments parameter in the selectors. Pass `undefined` as `arguments` if the selector doesn't use any arguments.
|
|
37
|
+
|
|
38
|
+
```diff
|
|
39
|
+
-const output = useGridSelector(apiRef, selector, equals)
|
|
40
|
+
+const output = useGridSelector(apiRef, selector, arguments, equals)
|
|
41
|
+
```
|
|
42
|
+
- The default variant for text fields and selects in the filter panel has been changed to `outlined`.
|
|
43
|
+
- The "row spanning" feature is now stable.
|
|
44
|
+
```diff
|
|
45
|
+
<DataGrid
|
|
46
|
+
- unstable_rowSpanning
|
|
47
|
+
+ rowSpanning
|
|
48
|
+
/>
|
|
49
|
+
```
|
|
50
|
+
- Selected row is now deselected when clicked again.
|
|
51
|
+
|
|
52
|
+
#### `@mui/x-data-grid@8.0.0-alpha.4`
|
|
53
|
+
|
|
54
|
+
- [DataGrid] Deselect selected row on click (#15509) @k-rajat19
|
|
55
|
+
- [DataGrid] Fix "No rows" displaying when all rows are pinned (#15335) @nusr
|
|
56
|
+
- [DataGrid] Make row spanning feature stable (#15742) @MBilalShafi
|
|
57
|
+
- [DataGrid] Round dimensions to avoid subpixel rendering error (#15850) @KenanYusuf
|
|
58
|
+
- [DataGrid] Toggle menu on click in `<GridActionsCell />` (#15867) @k-rajat19
|
|
59
|
+
- [DataGrid] Trigger row spanning computation on rows update (#15858) @MBilalShafi
|
|
60
|
+
- [DataGrid] Update filter panel input variant (#15807) @KenanYusuf
|
|
61
|
+
- [DataGrid] Use `columnsManagement` slot (#15817) @k-rajat19
|
|
62
|
+
- [DataGrid] Use new selector signature (#15200) @MBilalShafi
|
|
63
|
+
- [l10n] Improve Romanian (ro-RO) locale (#15745) @rares985
|
|
64
|
+
|
|
65
|
+
#### `@mui/x-data-grid-pro@8.0.0-alpha.4` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
66
|
+
|
|
67
|
+
Same changes as in `@mui/x-data-grid@8.0.0-alpha.4`, plus:
|
|
68
|
+
|
|
69
|
+
- [DataGridPro] Make row reordering work with pagination (#15355) @k-rajat19
|
|
70
|
+
|
|
71
|
+
#### `@mui/x-data-grid-premium@8.0.0-alpha.4` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
72
|
+
|
|
73
|
+
Same changes as in `@mui/x-data-grid-pro@8.0.0-alpha.4`, plus:
|
|
74
|
+
|
|
75
|
+
- [DataGridPremium] Fix group column ignoring `valueOptions` for `singleSelect` column type (#15739) @arminmeh
|
|
76
|
+
|
|
77
|
+
### Date and Time Pickers
|
|
78
|
+
|
|
79
|
+
#### `@mui/x-date-pickers@8.0.0-alpha.4`
|
|
80
|
+
|
|
81
|
+
- [l10n] Improve Romanian (ro-RO) locale (#15745) @rares985
|
|
82
|
+
- [pickers] Clean `usePicker` logic (#15763) @flaviendelangle
|
|
83
|
+
- [pickers] Rename layout `ownerState` property from `isRtl` to `layoutDirection` (#15803) @flaviendelangle
|
|
84
|
+
- [pickers] Use the new `ownerState` in `useClearableField` (#15776) @flaviendelangle
|
|
85
|
+
- [pickers] Use the new `ownerState` in the toolbar components (#15777) @flaviendelangle
|
|
86
|
+
- [pickers] Use the new `ownerState` object for the clock components and the desktop / mobile wrappers (#15669) @flaviendelangle
|
|
87
|
+
|
|
88
|
+
#### `@mui/x-date-pickers-pro@8.0.0-alpha.4` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
89
|
+
|
|
90
|
+
Same changes as in `@mui/x-date-pickers@8.0.0-alpha.4`.
|
|
91
|
+
|
|
92
|
+
### Charts
|
|
93
|
+
|
|
94
|
+
#### Breaking changes
|
|
95
|
+
|
|
96
|
+
- The default styling of the charts tooltip has been updated.
|
|
97
|
+
|
|
98
|
+
#### `@mui/x-charts@8.0.0-alpha.4`
|
|
99
|
+
|
|
100
|
+
- [charts] Fix hydration missmatch (#15647) @alexfauquette
|
|
101
|
+
- [charts] Fix internal spelling typo (#15805) @zivl
|
|
102
|
+
- [charts] Fix scatter dataset with missing data (#15802) @alexfauquette
|
|
103
|
+
- [charts] HTML Labels (#15813) @JCQuintas
|
|
104
|
+
- [charts] Only access store values by using hooks (#15764) @alexfauquette
|
|
105
|
+
- [charts] Update Tooltip style (#15630) @alexfauquette
|
|
106
|
+
|
|
107
|
+
#### `@mui/x-charts-pro@8.0.0-alpha.4` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
108
|
+
|
|
109
|
+
Same changes as in `@mui/x-charts@8.0.0-alpha.4`.
|
|
110
|
+
|
|
111
|
+
### Tree View
|
|
112
|
+
|
|
113
|
+
#### `@mui/x-tree-view@8.0.0-alpha.4`
|
|
114
|
+
|
|
115
|
+
No changes, releasing to keep the versions in sync.
|
|
116
|
+
|
|
117
|
+
#### `@mui/x-tree-view-pro@8.0.0-alpha.4` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
118
|
+
|
|
119
|
+
Releasing to benefit from license package fix (#15814).
|
|
120
|
+
|
|
121
|
+
### Docs
|
|
122
|
+
|
|
123
|
+
- [docs] Clean Joy and Browser custom field demos (#15707) @flaviendelangle
|
|
124
|
+
- [docs] Fix outdated link to handbook (#15855) @oliviertassinari
|
|
125
|
+
- [docs] Improve Pickers accessible DOM migration section description (#15596) @LukasTy
|
|
126
|
+
- [docs] Use `updateRows` method for list view demos (#15732) @KenanYusuf
|
|
127
|
+
- [docs] Use date library version from package dev dependencies for sandboxes (#15762) @LukasTy
|
|
128
|
+
|
|
129
|
+
### Core
|
|
130
|
+
|
|
131
|
+
- [code-infra] Add Charts sandbox generation (#15830) @JCQuintas
|
|
132
|
+
- [code-infra] Remove redundant `@type/react-test-renderer` dep (#15766) @LukasTy
|
|
133
|
+
- [license] Use `console.log` for the error message on Codesandbox to avoid rendering error (#15814) @arminmeh
|
|
134
|
+
|
|
135
|
+
## 8.0.0-alpha.3
|
|
136
|
+
|
|
137
|
+
_Dec 5, 2024_
|
|
138
|
+
|
|
139
|
+
We'd like to offer a big thanks to the 9 contributors who made this release possible. Here are some highlights ✨:
|
|
140
|
+
|
|
141
|
+
- 💫 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.
|
|
142
|
+
- 🎯 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.
|
|
143
|
+
|
|
144
|
+
Special thanks go out to the community contributors who have helped make this release possible:
|
|
145
|
+
@ihsanberkozcan, @k-rajat19, @perezShaked.
|
|
146
|
+
Following are all team members who have contributed to this release:
|
|
147
|
+
@arminmeh, @cherniavskii, @flaviendelangle, @JCQuintas, @MBilalShafi, @noraleonte.
|
|
148
|
+
|
|
149
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
150
|
+
|
|
151
|
+
### Data Grid
|
|
152
|
+
|
|
153
|
+
#### Breaking changes
|
|
154
|
+
|
|
155
|
+
- 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.
|
|
156
|
+
- The `rowPositionsDebounceMs` prop was removed.
|
|
157
|
+
- The `gridRowsDataRowIdToIdLookupSelector` selector was removed. Use the `gridRowsLookupSelector` selector in combination with the `getRowId()` API method instead.
|
|
158
|
+
```diff
|
|
159
|
+
-const idToIdLookup = gridRowsDataRowIdToIdLookupSelector(apiRef);
|
|
160
|
+
-const rowId = idToIdLookup[id]
|
|
161
|
+
+const rowsLookup = gridRowsLookupSelector(apiRef);
|
|
162
|
+
+const rowId = apiRef.current.getRowId(rowsLookup[id])
|
|
163
|
+
```
|
|
164
|
+
- 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.
|
|
165
|
+
|
|
166
|
+
#### `@mui/x-data-grid@8.0.0-alpha.3`
|
|
167
|
+
|
|
168
|
+
- [DataGrid] Fix deselection not working with `isRowSelectable` (#15692) @MBilalShafi
|
|
169
|
+
- [DataGrid] Make column autosizing work with flex columns (#15465) @cherniavskii
|
|
170
|
+
- [DataGrid] Remove `gridRowsDataRowIdToIdLookupSelector` selector (#15698) @arminmeh
|
|
171
|
+
- [DataGrid] Remove `rowPositionsDebounceMs` prop (#15482) @k-rajat19
|
|
172
|
+
- [l10n] Improve Hebrew (he-IL) locale (#15699) @perezShaked
|
|
173
|
+
- [l10n] Improve Turkish (tr-TR) locale (#15734) @ihsanberkozcan
|
|
174
|
+
|
|
175
|
+
#### `@mui/x-data-grid-pro@8.0.0-alpha.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
176
|
+
|
|
177
|
+
Same changes as in `@mui/x-data-grid@8.0.0-alpha.3`, plus:
|
|
178
|
+
|
|
179
|
+
- [DataGridPro] Cleanup pinned rows on removal (#15697) @cherniavskii
|
|
180
|
+
- [DataGridPro] Server-side lazy loading (#13878) @arminmeh
|
|
181
|
+
|
|
182
|
+
#### `@mui/x-data-grid-premium@8.0.0-alpha.3` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
183
|
+
|
|
184
|
+
Same changes as in `@mui/x-data-grid-pro@8.0.0-alpha.3`, plus:
|
|
185
|
+
|
|
186
|
+
- [DataGridPremium] Remove the `ariaV8` experimental flag (#15694) @arminmeh
|
|
187
|
+
|
|
188
|
+
### Date and Time Pickers
|
|
189
|
+
|
|
190
|
+
#### Breaking changes
|
|
191
|
+
|
|
192
|
+
- 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).
|
|
193
|
+
|
|
194
|
+
#### `@mui/x-date-pickers@8.0.0-alpha.3`
|
|
195
|
+
|
|
196
|
+
- [pickers] Replace the `onOpen()` and `onClose()` methods of `usePickerContext()` with a single `setOpen()` method. (#15701) @flaviendelangle
|
|
197
|
+
|
|
198
|
+
#### `@mui/x-date-pickers-pro@8.0.0-alpha.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
199
|
+
|
|
200
|
+
Same changes as in `@mui/x-date-pickers@8.0.0-alpha.3`.
|
|
201
|
+
|
|
202
|
+
### Charts
|
|
203
|
+
|
|
204
|
+
#### `@mui/x-charts@8.0.0-alpha.3`
|
|
205
|
+
|
|
206
|
+
- [charts] Improve SVG `pattern` and `gradient` support (#15720) @JCQuintas
|
|
207
|
+
|
|
208
|
+
#### `@mui/x-charts-pro@8.0.0-alpha.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
209
|
+
|
|
210
|
+
Same changes as in `@mui/x-charts@8.0.0-alpha.3`.
|
|
211
|
+
|
|
212
|
+
### Tree View
|
|
213
|
+
|
|
214
|
+
#### `@mui/x-tree-view@8.0.0-alpha.3`
|
|
215
|
+
|
|
216
|
+
No changes since `@mui/x-tree-view-pro@v8.0.0-alpha.2`.
|
|
217
|
+
|
|
218
|
+
#### `@mui/x-tree-view-pro@8.0.0-alpha.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
219
|
+
|
|
220
|
+
Same changes as in `@mui/x-tree-view@8.0.0-alpha.3`.
|
|
221
|
+
|
|
222
|
+
### Docs
|
|
223
|
+
|
|
224
|
+
- [docs] Add a customization demo for the Date and Time Pickers overview page (#15118) @noraleonte
|
|
225
|
+
- [docs] Fix typo in charts axis documentation (#15743) @JCQuintas
|
|
226
|
+
- [docs] Improve SEO titles for the Data Grid (#15695) @MBilalShafi
|
|
227
|
+
|
|
228
|
+
### Core
|
|
229
|
+
|
|
230
|
+
- [core] Add `@mui/x-tree-view-pro` to `releaseChangelog` (#15316) @flaviendelangle
|
|
231
|
+
- [code-infra] Lock file maintenance (#11894)
|
|
232
|
+
- [code-infra] Check if `preset-safe` folder exists in codemod test (#15703) @JCQuintas
|
|
233
|
+
- [code-infra] Import Pickers `preset-safe` into global codemod config (#15659) @JCQuintas
|
|
234
|
+
- [code-infra] Playwright 1.49 (#15493) @JCQuintas
|
|
235
|
+
- [test] Force hover in headless Chrome (#15710) @cherniavskii
|
|
236
|
+
|
|
8
237
|
## v8.0.0-alpha.2
|
|
9
238
|
|
|
10
239
|
_Nov 29, 2024_
|
|
@@ -465,6 +694,153 @@ Same changes as in `@mui/x-charts@8.0.0-alpha.0`.
|
|
|
465
694
|
- [release] v8 preparation (#15054) @michelengelen
|
|
466
695
|
- [test] Fix advanced list view regression test snapshot (#15260) @KenanYusuf
|
|
467
696
|
|
|
697
|
+
## 7.23.2
|
|
698
|
+
|
|
699
|
+
_Dec 12, 2024_
|
|
700
|
+
|
|
701
|
+
We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
|
|
702
|
+
|
|
703
|
+
- 🌍 Improve Romanian and Turkish locales on the Data Grid
|
|
704
|
+
- 🌍 Improve Romanian locale on the Pickers
|
|
705
|
+
- 📚 Documentation improvements
|
|
706
|
+
- 🐞 Bugfixes
|
|
707
|
+
|
|
708
|
+
Special thanks go out to the community contributors who have helped make this release possible:
|
|
709
|
+
@ihsanberkozcan, @k-rajat19, @lhilgert9, @nusr, @rares985.
|
|
710
|
+
|
|
711
|
+
Following are all team members who have contributed to this release:
|
|
712
|
+
@alexfauquette, @arminmeh, @flaviendelangle, @JCQuintas, @KenanYusuf, @LukasTy.
|
|
713
|
+
|
|
714
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
715
|
+
|
|
716
|
+
### Data Grid
|
|
717
|
+
|
|
718
|
+
#### `@mui/x-data-grid@7.23.2`
|
|
719
|
+
|
|
720
|
+
- [DataGrid] Fix "No rows" displaying when all rows are pinned (#15851) @nusr
|
|
721
|
+
- [DataGrid] Use `columnsManagement` slot (#15821) @k-rajat19
|
|
722
|
+
- [l10n] Improve Romanian (ro-RO) locale (#15751) @rares985
|
|
723
|
+
- [l10n] Improve Turkish (tr-TR) locale (#15748) @ihsanberkozcan
|
|
724
|
+
|
|
725
|
+
#### `@mui/x-data-grid-pro@7.23.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
726
|
+
|
|
727
|
+
Same changes as in `@mui/x-data-grid@7.23.2`, plus:
|
|
728
|
+
|
|
729
|
+
- [DataGridPro] Make Row reordering work with pagination (#15782) @k-rajat19
|
|
730
|
+
|
|
731
|
+
#### `@mui/x-data-grid-premium@7.23.2` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
732
|
+
|
|
733
|
+
Same changes as in `@mui/x-data-grid-pro@7.23.2`, plus:
|
|
734
|
+
|
|
735
|
+
- [DataGridPremium] Fix group column ignoring `valueOptions` for `singleSelect` column type (#15754) @arminmeh
|
|
736
|
+
|
|
737
|
+
### Date and Time Pickers
|
|
738
|
+
|
|
739
|
+
#### `@mui/x-date-pickers@7.23.2`
|
|
740
|
+
|
|
741
|
+
- [l10n] Improve Romanian (ro-RO) locale (#15751) @rares985
|
|
742
|
+
|
|
743
|
+
#### `@mui/x-date-pickers-pro@7.23.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
744
|
+
|
|
745
|
+
Same changes as in `@mui/x-date-pickers@7.23.2`.
|
|
746
|
+
|
|
747
|
+
### Charts
|
|
748
|
+
|
|
749
|
+
#### `@mui/x-charts@7.23.2`
|
|
750
|
+
|
|
751
|
+
- [charts] Fix key generation for the ChartsGrid (#15864) @alexfauquette
|
|
752
|
+
- [charts] Fix scatter dataset with missing data (#15804) @alexfauquette
|
|
753
|
+
|
|
754
|
+
#### `@mui/x-charts-pro@7.23.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
755
|
+
|
|
756
|
+
Same changes as in `@mui/x-charts@7.23.2`.
|
|
757
|
+
|
|
758
|
+
#### `@mui/x-tree-view@v7.23.2`
|
|
759
|
+
|
|
760
|
+
No changes, releasing to keep the versions in sync.
|
|
761
|
+
|
|
762
|
+
#### `@mui/x-tree-view-pro@7.23.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
763
|
+
|
|
764
|
+
Releasing to benefit from license package fix (#15818).
|
|
765
|
+
|
|
766
|
+
### Docs
|
|
767
|
+
|
|
768
|
+
- [docs] Fix typo in charts axis documentation (#15746) @JCQuintas
|
|
769
|
+
- [docs] Improve Pickers accessible DOM structure description (#15752) @LukasTy
|
|
770
|
+
- [docs] Use `updateRows` method for list view demos (#15824) @KenanYusuf
|
|
771
|
+
- [docs] Use date library version from package dev dependencies for sandboxes (#15767) @LukasTy
|
|
772
|
+
|
|
773
|
+
### Core
|
|
774
|
+
|
|
775
|
+
- [core] Add `@mui/x-tree-view-pro` to `releaseChangelog` (#15747) @flaviendelangle
|
|
776
|
+
- [license] Use `console.log` for the error message on Codesandbox to avoid rendering error (#15818) @arminmeh
|
|
777
|
+
|
|
778
|
+
## 7.23.1
|
|
779
|
+
|
|
780
|
+
_Dec 5, 2024_
|
|
781
|
+
|
|
782
|
+
We'd like to offer a big thanks to the 7 contributors who made this release possible. Here are some highlights ✨:
|
|
783
|
+
|
|
784
|
+
- 🌍 Improve German locale on the Data Grid component
|
|
785
|
+
- 🐞 Bugfixes
|
|
786
|
+
|
|
787
|
+
Special thanks go out to the community contributors who have helped make this release possible:
|
|
788
|
+
@lhilgert9.
|
|
789
|
+
|
|
790
|
+
Following are all team members who have contributed to this release:
|
|
791
|
+
@arthurbalduini, @cherniavskii, @flaviendelangle, @JCQuintas, @LukasTy and @MBilalShafi.
|
|
792
|
+
|
|
793
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
794
|
+
|
|
795
|
+
### Data Grid
|
|
796
|
+
|
|
797
|
+
#### `@mui/x-data-grid@7.23.1`
|
|
798
|
+
|
|
799
|
+
- [DataGrid] Make column autosizing work with flex columns (#15712) @cherniavskii
|
|
800
|
+
- [l10n] Improve German (de-DE) locale (#15641) @lhilgert9
|
|
801
|
+
|
|
802
|
+
#### `@mui/x-data-grid-pro@7.23.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
803
|
+
|
|
804
|
+
Same changes as in `@mui/x-data-grid@7.23.1`, plus:
|
|
805
|
+
|
|
806
|
+
- [DataGridPro] Cleanup pinned rows on removal (#15702) @cherniavskii
|
|
807
|
+
|
|
808
|
+
#### `@mui/x-data-grid-premium@7.23.1` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
809
|
+
|
|
810
|
+
Same changes as in `@mui/x-data-grid-pro@7.23.1`.
|
|
811
|
+
|
|
812
|
+
### Date and Time Pickers
|
|
813
|
+
|
|
814
|
+
#### `@mui/x-date-pickers@7.23.1`
|
|
815
|
+
|
|
816
|
+
- [TimePicker] Prevent mouse events after `touchend` event (#15430) @arthurbalduini
|
|
817
|
+
|
|
818
|
+
#### `@mui/x-date-pickers-pro@7.23.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
819
|
+
|
|
820
|
+
Same changes as in `@mui/x-date-pickers@7.23.1`.
|
|
821
|
+
|
|
822
|
+
### Charts
|
|
823
|
+
|
|
824
|
+
#### `@mui/x-charts@7.23.1`
|
|
825
|
+
|
|
826
|
+
- [charts] Improve SVG `pattern` and `gradient` support (#15724) @JCQuintas
|
|
827
|
+
|
|
828
|
+
#### `@mui/x-charts-pro@7.23.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
829
|
+
|
|
830
|
+
Same changes as in `@mui/x-charts@7.23.1`.
|
|
831
|
+
|
|
832
|
+
### Docs
|
|
833
|
+
|
|
834
|
+
- [docs] Fix Pickers theme augmentation example (#15675) @LukasTy
|
|
835
|
+
- [docs] Remove duplicated warning (#15715) @cherniavskii
|
|
836
|
+
- [test] Force hover in headless Chrome (#15711) @cherniavskii
|
|
837
|
+
- [docs-infra] Bump `@mui/internal-markdown` to support nested demo imports (#15738) @alexfauquette
|
|
838
|
+
- [docs] Improve SEO titles for the Data Grid (#15695) @MBilalShafi
|
|
839
|
+
|
|
840
|
+
### Core
|
|
841
|
+
|
|
842
|
+
- [core] Add `@mui/x-tree-view-pro` to `releaseChangelog` (#15747) @flaviendelangle
|
|
843
|
+
|
|
468
844
|
## 7.23.0
|
|
469
845
|
|
|
470
846
|
_Nov 29, 2024_
|
|
@@ -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
|
/**
|
|
@@ -926,14 +925,6 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
926
925
|
* Controls the modes of the rows.
|
|
927
926
|
*/
|
|
928
927
|
rowModesModel: _propTypes.default.object,
|
|
929
|
-
/**
|
|
930
|
-
* The milliseconds delay to wait after measuring the row height before recalculating row positions.
|
|
931
|
-
* Setting it to a lower value could be useful when using dynamic row height,
|
|
932
|
-
* but might reduce performance when displaying a large number of rows.
|
|
933
|
-
* @default 166
|
|
934
|
-
* @deprecated
|
|
935
|
-
*/
|
|
936
|
-
rowPositionsDebounceMs: _propTypes.default.number,
|
|
937
928
|
/**
|
|
938
929
|
* If `true`, the reordering of rows is enabled.
|
|
939
930
|
* @default false
|
|
@@ -973,7 +964,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
973
964
|
* Loading rows can be processed on the server or client-side.
|
|
974
965
|
* Set it to 'client' if you would like enable infnite loading.
|
|
975
966
|
* Set it to 'server' if you would like to enable lazy loading.
|
|
976
|
-
*
|
|
967
|
+
* @default "client"
|
|
977
968
|
*/
|
|
978
969
|
rowsLoadingMode: _propTypes.default.oneOf(['client', 'server']),
|
|
979
970
|
/**
|
|
@@ -981,12 +972,18 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
981
972
|
* @default "margin"
|
|
982
973
|
*/
|
|
983
974
|
rowSpacingType: _propTypes.default.oneOf(['border', 'margin']),
|
|
975
|
+
/**
|
|
976
|
+
* If `true`, the Data Grid will auto span the cells over the rows having the same value.
|
|
977
|
+
* @default false
|
|
978
|
+
*/
|
|
979
|
+
rowSpanning: _propTypes.default.bool,
|
|
984
980
|
/**
|
|
985
981
|
* Override the height/width of the Data Grid inner scrollbar.
|
|
986
982
|
*/
|
|
987
983
|
scrollbarSize: _propTypes.default.number,
|
|
988
984
|
/**
|
|
989
985
|
* Set the area in `px` at the bottom of the grid viewport where onRowsScrollEnd is called.
|
|
986
|
+
* If combined with `unstable_lazyLoading`, it defines the area where the next data request is triggered.
|
|
990
987
|
* @default 80
|
|
991
988
|
*/
|
|
992
989
|
scrollEndThreshold: _propTypes.default.number,
|
|
@@ -1060,6 +1057,18 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
1060
1057
|
get: _propTypes.default.func.isRequired,
|
|
1061
1058
|
set: _propTypes.default.func.isRequired
|
|
1062
1059
|
}),
|
|
1060
|
+
/**
|
|
1061
|
+
* Used together with `unstable_dataSource` to enable lazy loading.
|
|
1062
|
+
* If enabled, the grid stops adding `paginationModel` to the data requests (`getRows`)
|
|
1063
|
+
* and starts sending `start` and `end` values depending on the loading mode and the scroll position.
|
|
1064
|
+
* @default false
|
|
1065
|
+
*/
|
|
1066
|
+
unstable_lazyLoading: _propTypes.default.bool,
|
|
1067
|
+
/**
|
|
1068
|
+
* If positive, the Data Grid will throttle data source requests on rendered rows interval change.
|
|
1069
|
+
* @default 500
|
|
1070
|
+
*/
|
|
1071
|
+
unstable_lazyLoadingRequestThrottleMs: _propTypes.default.number,
|
|
1063
1072
|
/**
|
|
1064
1073
|
* Definition of the column rendered when the `unstable_listView` prop is enabled.
|
|
1065
1074
|
*/
|
|
@@ -1076,11 +1085,6 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
1076
1085
|
*/
|
|
1077
1086
|
unstable_listView: _propTypes.default.bool,
|
|
1078
1087
|
unstable_onDataSourceError: _propTypes.default.func,
|
|
1079
|
-
/**
|
|
1080
|
-
* If `true`, the Data Grid will auto span the cells over the rows having the same value.
|
|
1081
|
-
* @default false
|
|
1082
|
-
*/
|
|
1083
|
-
unstable_rowSpanning: _propTypes.default.bool,
|
|
1084
1088
|
/**
|
|
1085
1089
|
* If `true`, the Data Grid enables column virtualization when `getRowHeight` is set to `() => 'auto'`.
|
|
1086
1090
|
* By default, column virtualization is disabled when dynamic row height is enabled to measure the row height correctly.
|
|
@@ -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);
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# MUI X Data Grid Premium
|
|
2
2
|
|
|
3
3
|
This package is the Premium plan edition of the Data Grid components.
|
|
4
|
-
It's part of [MUI X](https://mui.com/x/), an open-core extension of
|
|
4
|
+
It's part of [MUI X](https://mui.com/x/), an open-core extension of our Core libraries, with advanced components.
|
|
5
5
|
|
|
6
6
|
## Installation
|
|
7
7
|
|
|
@@ -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
|
/**
|
|
@@ -919,14 +918,6 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
919
918
|
* Controls the modes of the rows.
|
|
920
919
|
*/
|
|
921
920
|
rowModesModel: PropTypes.object,
|
|
922
|
-
/**
|
|
923
|
-
* The milliseconds delay to wait after measuring the row height before recalculating row positions.
|
|
924
|
-
* Setting it to a lower value could be useful when using dynamic row height,
|
|
925
|
-
* but might reduce performance when displaying a large number of rows.
|
|
926
|
-
* @default 166
|
|
927
|
-
* @deprecated
|
|
928
|
-
*/
|
|
929
|
-
rowPositionsDebounceMs: PropTypes.number,
|
|
930
921
|
/**
|
|
931
922
|
* If `true`, the reordering of rows is enabled.
|
|
932
923
|
* @default false
|
|
@@ -966,7 +957,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
966
957
|
* Loading rows can be processed on the server or client-side.
|
|
967
958
|
* Set it to 'client' if you would like enable infnite loading.
|
|
968
959
|
* Set it to 'server' if you would like to enable lazy loading.
|
|
969
|
-
*
|
|
960
|
+
* @default "client"
|
|
970
961
|
*/
|
|
971
962
|
rowsLoadingMode: PropTypes.oneOf(['client', 'server']),
|
|
972
963
|
/**
|
|
@@ -974,12 +965,18 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
974
965
|
* @default "margin"
|
|
975
966
|
*/
|
|
976
967
|
rowSpacingType: PropTypes.oneOf(['border', 'margin']),
|
|
968
|
+
/**
|
|
969
|
+
* If `true`, the Data Grid will auto span the cells over the rows having the same value.
|
|
970
|
+
* @default false
|
|
971
|
+
*/
|
|
972
|
+
rowSpanning: PropTypes.bool,
|
|
977
973
|
/**
|
|
978
974
|
* Override the height/width of the Data Grid inner scrollbar.
|
|
979
975
|
*/
|
|
980
976
|
scrollbarSize: PropTypes.number,
|
|
981
977
|
/**
|
|
982
978
|
* Set the area in `px` at the bottom of the grid viewport where onRowsScrollEnd is called.
|
|
979
|
+
* If combined with `unstable_lazyLoading`, it defines the area where the next data request is triggered.
|
|
983
980
|
* @default 80
|
|
984
981
|
*/
|
|
985
982
|
scrollEndThreshold: PropTypes.number,
|
|
@@ -1053,6 +1050,18 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
1053
1050
|
get: PropTypes.func.isRequired,
|
|
1054
1051
|
set: PropTypes.func.isRequired
|
|
1055
1052
|
}),
|
|
1053
|
+
/**
|
|
1054
|
+
* Used together with `unstable_dataSource` to enable lazy loading.
|
|
1055
|
+
* If enabled, the grid stops adding `paginationModel` to the data requests (`getRows`)
|
|
1056
|
+
* and starts sending `start` and `end` values depending on the loading mode and the scroll position.
|
|
1057
|
+
* @default false
|
|
1058
|
+
*/
|
|
1059
|
+
unstable_lazyLoading: PropTypes.bool,
|
|
1060
|
+
/**
|
|
1061
|
+
* If positive, the Data Grid will throttle data source requests on rendered rows interval change.
|
|
1062
|
+
* @default 500
|
|
1063
|
+
*/
|
|
1064
|
+
unstable_lazyLoadingRequestThrottleMs: PropTypes.number,
|
|
1056
1065
|
/**
|
|
1057
1066
|
* Definition of the column rendered when the `unstable_listView` prop is enabled.
|
|
1058
1067
|
*/
|
|
@@ -1069,11 +1078,6 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
1069
1078
|
*/
|
|
1070
1079
|
unstable_listView: PropTypes.bool,
|
|
1071
1080
|
unstable_onDataSourceError: PropTypes.func,
|
|
1072
|
-
/**
|
|
1073
|
-
* If `true`, the Data Grid will auto span the cells over the rows having the same value.
|
|
1074
|
-
* @default false
|
|
1075
|
-
*/
|
|
1076
|
-
unstable_rowSpanning: PropTypes.bool,
|
|
1077
1081
|
/**
|
|
1078
1082
|
* If `true`, the Data Grid enables column virtualization when `getRowHeight` is set to `() => 'auto'`.
|
|
1079
1083
|
* By default, column virtualization is disabled when dynamic row height is enabled to measure the row height correctly.
|
|
@@ -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
|
}
|
|
@@ -32,7 +32,9 @@ const GROUPING_COL_DEF_FORCED_PROPERTIES_DATA_SOURCE = _extends({}, GROUPING_COL
|
|
|
32
32
|
* TODO: Make this index comparator depth invariant, the logic should not be inverted when sorting in the "desc" direction (but the current return format of `sortComparator` does not support this behavior).
|
|
33
33
|
*/
|
|
34
34
|
const groupingFieldIndexComparator = (v1, v2, cellParams1, cellParams2) => {
|
|
35
|
-
const model = gridRowGroupingSanitizedModelSelector(
|
|
35
|
+
const model = gridRowGroupingSanitizedModelSelector({
|
|
36
|
+
current: cellParams1.api
|
|
37
|
+
});
|
|
36
38
|
const groupingField1 = cellParams1.rowNode.groupingField ?? null;
|
|
37
39
|
const groupingField2 = cellParams2.rowNode.groupingField ?? null;
|
|
38
40
|
if (groupingField1 === groupingField2) {
|
|
@@ -63,10 +65,12 @@ const getLeafProperties = leafColDef => ({
|
|
|
63
65
|
return groupingFieldIndexComparator(v1, v2, cellParams1, cellParams2);
|
|
64
66
|
}
|
|
65
67
|
});
|
|
68
|
+
const groupedByColValueFormatter = groupedByColDef => (value, row, _, apiRef) => groupedByColDef.valueFormatter(value, row, groupedByColDef, apiRef);
|
|
66
69
|
const getGroupingCriteriaProperties = (groupedByColDef, applyHeaderName) => {
|
|
67
70
|
const properties = {
|
|
68
71
|
sortable: groupedByColDef.sortable,
|
|
69
72
|
filterable: groupedByColDef.filterable,
|
|
73
|
+
valueFormatter: groupedByColDef.valueFormatter ? groupedByColValueFormatter(groupedByColDef) : undefined,
|
|
70
74
|
valueOptions: isSingleSelectColDef(groupedByColDef) ? groupedByColDef.valueOptions : undefined,
|
|
71
75
|
sortComparator: (v1, v2, cellParams1, cellParams2) => {
|
|
72
76
|
// We only want to sort the groups of the current grouping criteria
|
|
@@ -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 = "MTczNDA0MDgwMDAwMA==";
|
|
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
|
|
@@ -5,9 +5,9 @@ export declare const gridAggregationStateSelector: (state: GridStatePremium) =>
|
|
|
5
5
|
* If a column is not in the model, it is not aggregated.
|
|
6
6
|
* @category Aggregation
|
|
7
7
|
*/
|
|
8
|
-
export declare const gridAggregationModelSelector: import("@mui/x-data-grid").OutputSelector<GridStatePremium, import("./gridAggregationInterfaces").GridAggregationModel>;
|
|
8
|
+
export declare const gridAggregationModelSelector: import("@mui/x-data-grid").OutputSelector<GridStatePremium, import("./gridAggregationInterfaces").GridAggregationState, import("./gridAggregationInterfaces").GridAggregationModel>;
|
|
9
9
|
/**
|
|
10
10
|
* Get the aggregation results as a lookup.
|
|
11
11
|
* @category Aggregation
|
|
12
12
|
*/
|
|
13
|
-
export declare const gridAggregationLookupSelector: import("@mui/x-data-grid").OutputSelector<GridStatePremium, import("./gridAggregationInterfaces").GridAggregationLookup>;
|
|
13
|
+
export declare const gridAggregationLookupSelector: import("@mui/x-data-grid").OutputSelector<GridStatePremium, import("./gridAggregationInterfaces").GridAggregationState, import("./gridAggregationInterfaces").GridAggregationLookup>;
|
|
@@ -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
|
}
|
|
@@ -40,7 +40,9 @@ const GROUPING_COL_DEF_FORCED_PROPERTIES_DATA_SOURCE = (0, _extends2.default)({}
|
|
|
40
40
|
* TODO: Make this index comparator depth invariant, the logic should not be inverted when sorting in the "desc" direction (but the current return format of `sortComparator` does not support this behavior).
|
|
41
41
|
*/
|
|
42
42
|
const groupingFieldIndexComparator = (v1, v2, cellParams1, cellParams2) => {
|
|
43
|
-
const model = (0, _gridRowGroupingSelector.gridRowGroupingSanitizedModelSelector)(
|
|
43
|
+
const model = (0, _gridRowGroupingSelector.gridRowGroupingSanitizedModelSelector)({
|
|
44
|
+
current: cellParams1.api
|
|
45
|
+
});
|
|
44
46
|
const groupingField1 = cellParams1.rowNode.groupingField ?? null;
|
|
45
47
|
const groupingField2 = cellParams2.rowNode.groupingField ?? null;
|
|
46
48
|
if (groupingField1 === groupingField2) {
|
|
@@ -71,10 +73,12 @@ const getLeafProperties = leafColDef => ({
|
|
|
71
73
|
return groupingFieldIndexComparator(v1, v2, cellParams1, cellParams2);
|
|
72
74
|
}
|
|
73
75
|
});
|
|
76
|
+
const groupedByColValueFormatter = groupedByColDef => (value, row, _, apiRef) => groupedByColDef.valueFormatter(value, row, groupedByColDef, apiRef);
|
|
74
77
|
const getGroupingCriteriaProperties = (groupedByColDef, applyHeaderName) => {
|
|
75
78
|
const properties = {
|
|
76
79
|
sortable: groupedByColDef.sortable,
|
|
77
80
|
filterable: groupedByColDef.filterable,
|
|
81
|
+
valueFormatter: groupedByColDef.valueFormatter ? groupedByColValueFormatter(groupedByColDef) : undefined,
|
|
78
82
|
valueOptions: (0, _internals.isSingleSelectColDef)(groupedByColDef) ? groupedByColDef.valueOptions : undefined,
|
|
79
83
|
sortComparator: (v1, v2, cellParams1, cellParams2) => {
|
|
80
84
|
// We only want to sort the groups of the current grouping criteria
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { GridStatePremium } from '../../../models/gridStatePremium';
|
|
2
|
-
export declare const gridRowGroupingModelSelector: import("@mui/x-data-grid").OutputSelector<GridStatePremium, import("./gridRowGroupingInterfaces").GridRowGroupingModel>;
|
|
3
|
-
export declare const gridRowGroupingSanitizedModelSelector: import("@mui/x-data-grid").OutputSelector<GridStatePremium, string[]>;
|
|
2
|
+
export declare const gridRowGroupingModelSelector: import("@mui/x-data-grid").OutputSelector<GridStatePremium, import("./gridRowGroupingInterfaces").GridRowGroupingState, import("./gridRowGroupingInterfaces").GridRowGroupingModel>;
|
|
3
|
+
export declare const gridRowGroupingSanitizedModelSelector: import("@mui/x-data-grid").OutputSelector<GridStatePremium, import("@mui/x-data-grid").GridColumnLookup, string[]>;
|
|
@@ -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
|
/**
|
|
@@ -919,14 +918,6 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
919
918
|
* Controls the modes of the rows.
|
|
920
919
|
*/
|
|
921
920
|
rowModesModel: PropTypes.object,
|
|
922
|
-
/**
|
|
923
|
-
* The milliseconds delay to wait after measuring the row height before recalculating row positions.
|
|
924
|
-
* Setting it to a lower value could be useful when using dynamic row height,
|
|
925
|
-
* but might reduce performance when displaying a large number of rows.
|
|
926
|
-
* @default 166
|
|
927
|
-
* @deprecated
|
|
928
|
-
*/
|
|
929
|
-
rowPositionsDebounceMs: PropTypes.number,
|
|
930
921
|
/**
|
|
931
922
|
* If `true`, the reordering of rows is enabled.
|
|
932
923
|
* @default false
|
|
@@ -966,7 +957,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
966
957
|
* Loading rows can be processed on the server or client-side.
|
|
967
958
|
* Set it to 'client' if you would like enable infnite loading.
|
|
968
959
|
* Set it to 'server' if you would like to enable lazy loading.
|
|
969
|
-
*
|
|
960
|
+
* @default "client"
|
|
970
961
|
*/
|
|
971
962
|
rowsLoadingMode: PropTypes.oneOf(['client', 'server']),
|
|
972
963
|
/**
|
|
@@ -974,12 +965,18 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
974
965
|
* @default "margin"
|
|
975
966
|
*/
|
|
976
967
|
rowSpacingType: PropTypes.oneOf(['border', 'margin']),
|
|
968
|
+
/**
|
|
969
|
+
* If `true`, the Data Grid will auto span the cells over the rows having the same value.
|
|
970
|
+
* @default false
|
|
971
|
+
*/
|
|
972
|
+
rowSpanning: PropTypes.bool,
|
|
977
973
|
/**
|
|
978
974
|
* Override the height/width of the Data Grid inner scrollbar.
|
|
979
975
|
*/
|
|
980
976
|
scrollbarSize: PropTypes.number,
|
|
981
977
|
/**
|
|
982
978
|
* Set the area in `px` at the bottom of the grid viewport where onRowsScrollEnd is called.
|
|
979
|
+
* If combined with `unstable_lazyLoading`, it defines the area where the next data request is triggered.
|
|
983
980
|
* @default 80
|
|
984
981
|
*/
|
|
985
982
|
scrollEndThreshold: PropTypes.number,
|
|
@@ -1053,6 +1050,18 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
1053
1050
|
get: PropTypes.func.isRequired,
|
|
1054
1051
|
set: PropTypes.func.isRequired
|
|
1055
1052
|
}),
|
|
1053
|
+
/**
|
|
1054
|
+
* Used together with `unstable_dataSource` to enable lazy loading.
|
|
1055
|
+
* If enabled, the grid stops adding `paginationModel` to the data requests (`getRows`)
|
|
1056
|
+
* and starts sending `start` and `end` values depending on the loading mode and the scroll position.
|
|
1057
|
+
* @default false
|
|
1058
|
+
*/
|
|
1059
|
+
unstable_lazyLoading: PropTypes.bool,
|
|
1060
|
+
/**
|
|
1061
|
+
* If positive, the Data Grid will throttle data source requests on rendered rows interval change.
|
|
1062
|
+
* @default 500
|
|
1063
|
+
*/
|
|
1064
|
+
unstable_lazyLoadingRequestThrottleMs: PropTypes.number,
|
|
1056
1065
|
/**
|
|
1057
1066
|
* Definition of the column rendered when the `unstable_listView` prop is enabled.
|
|
1058
1067
|
*/
|
|
@@ -1069,11 +1078,6 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
1069
1078
|
*/
|
|
1070
1079
|
unstable_listView: PropTypes.bool,
|
|
1071
1080
|
unstable_onDataSourceError: PropTypes.func,
|
|
1072
|
-
/**
|
|
1073
|
-
* If `true`, the Data Grid will auto span the cells over the rows having the same value.
|
|
1074
|
-
* @default false
|
|
1075
|
-
*/
|
|
1076
|
-
unstable_rowSpanning: PropTypes.bool,
|
|
1077
1081
|
/**
|
|
1078
1082
|
* If `true`, the Data Grid enables column virtualization when `getRowHeight` is set to `() => 'auto'`.
|
|
1079
1083
|
* By default, column virtualization is disabled when dynamic row height is enabled to measure the row height correctly.
|
|
@@ -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
|
}
|
|
@@ -32,7 +32,9 @@ const GROUPING_COL_DEF_FORCED_PROPERTIES_DATA_SOURCE = _extends({}, GROUPING_COL
|
|
|
32
32
|
* TODO: Make this index comparator depth invariant, the logic should not be inverted when sorting in the "desc" direction (but the current return format of `sortComparator` does not support this behavior).
|
|
33
33
|
*/
|
|
34
34
|
const groupingFieldIndexComparator = (v1, v2, cellParams1, cellParams2) => {
|
|
35
|
-
const model = gridRowGroupingSanitizedModelSelector(
|
|
35
|
+
const model = gridRowGroupingSanitizedModelSelector({
|
|
36
|
+
current: cellParams1.api
|
|
37
|
+
});
|
|
36
38
|
const groupingField1 = cellParams1.rowNode.groupingField ?? null;
|
|
37
39
|
const groupingField2 = cellParams2.rowNode.groupingField ?? null;
|
|
38
40
|
if (groupingField1 === groupingField2) {
|
|
@@ -63,10 +65,12 @@ const getLeafProperties = leafColDef => ({
|
|
|
63
65
|
return groupingFieldIndexComparator(v1, v2, cellParams1, cellParams2);
|
|
64
66
|
}
|
|
65
67
|
});
|
|
68
|
+
const groupedByColValueFormatter = groupedByColDef => (value, row, _, apiRef) => groupedByColDef.valueFormatter(value, row, groupedByColDef, apiRef);
|
|
66
69
|
const getGroupingCriteriaProperties = (groupedByColDef, applyHeaderName) => {
|
|
67
70
|
const properties = {
|
|
68
71
|
sortable: groupedByColDef.sortable,
|
|
69
72
|
filterable: groupedByColDef.filterable,
|
|
73
|
+
valueFormatter: groupedByColDef.valueFormatter ? groupedByColValueFormatter(groupedByColDef) : undefined,
|
|
70
74
|
valueOptions: isSingleSelectColDef(groupedByColDef) ? groupedByColDef.valueOptions : undefined,
|
|
71
75
|
sortComparator: (v1, v2, cellParams1, cellParams2) => {
|
|
72
76
|
// We only want to sort the groups of the current grouping criteria
|
|
@@ -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 = "MTczNDA0MDgwMDAwMA==";
|
|
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.4",
|
|
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-data-grid": "8.0.0-alpha.
|
|
44
|
-
"@mui/x-
|
|
45
|
-
"@mui/x-
|
|
46
|
-
"@mui/x-
|
|
43
|
+
"@mui/x-data-grid-pro": "8.0.0-alpha.4",
|
|
44
|
+
"@mui/x-data-grid": "8.0.0-alpha.4",
|
|
45
|
+
"@mui/x-license": "8.0.0-alpha.4",
|
|
46
|
+
"@mui/x-internals": "8.0.0-alpha.2"
|
|
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 = "MTczNDA0MDgwMDAwMA==";
|
|
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
|