@mui/x-data-grid-pro 7.0.0-beta.0 → 7.0.0-beta.2
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 +406 -1
- package/DataGridPro/DataGridPro.d.ts +1 -1
- package/DataGridPro/DataGridPro.js +4 -4
- package/DataGridPro/useDataGridProComponent.js +1 -1
- package/DataGridPro/useDataGridProProps.js +3 -1
- package/components/headerFiltering/GridHeaderFilterMenuContainer.js +4 -2
- package/esm/DataGridPro/DataGridPro.js +2 -2
- package/esm/DataGridPro/useDataGridProComponent.js +1 -1
- package/esm/DataGridPro/useDataGridProProps.js +3 -1
- package/esm/components/headerFiltering/GridHeaderFilterMenuContainer.js +4 -2
- package/esm/hooks/features/columnReorder/useGridColumnReorder.js +1 -1
- package/esm/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +4 -3
- package/esm/hooks/features/treeData/gridTreeDataGroupColDef.js +5 -1
- package/esm/index.js +6 -1
- package/esm/utils/releaseInfo.js +1 -1
- package/hooks/features/columnReorder/useGridColumnReorder.js +1 -1
- package/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +4 -3
- package/hooks/features/treeData/gridTreeDataGroupColDef.js +5 -1
- package/hooks/utils/useGridRootProps.d.ts +1 -1
- package/index.d.ts +7 -1
- package/index.js +10 -9
- package/legacy/DataGridPro/DataGridPro.js +2 -2
- package/legacy/DataGridPro/useDataGridProComponent.js +1 -1
- package/legacy/DataGridPro/useDataGridProProps.js +3 -1
- package/legacy/components/headerFiltering/GridHeaderFilterMenuContainer.js +4 -2
- package/legacy/hooks/features/columnReorder/useGridColumnReorder.js +1 -1
- package/legacy/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +4 -3
- package/legacy/hooks/features/treeData/gridTreeDataGroupColDef.js +4 -2
- package/legacy/index.js +21 -2
- package/legacy/utils/releaseInfo.js +1 -1
- package/models/dataGridProProps.d.ts +1 -1
- package/modern/DataGridPro/DataGridPro.js +2 -2
- package/modern/DataGridPro/useDataGridProComponent.js +1 -1
- package/modern/DataGridPro/useDataGridProProps.js +3 -1
- package/modern/components/headerFiltering/GridHeaderFilterMenuContainer.js +4 -2
- package/modern/hooks/features/columnReorder/useGridColumnReorder.js +1 -1
- package/modern/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +4 -3
- package/modern/hooks/features/treeData/gridTreeDataGroupColDef.js +5 -1
- package/modern/index.js +7 -2
- package/modern/utils/releaseInfo.js +1 -1
- package/package.json +7 -7
- package/utils/releaseInfo.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,271 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## v7.0.0-beta.2
|
|
7
|
+
|
|
8
|
+
_Feb 9, 2024_
|
|
9
|
+
|
|
10
|
+
We'd like to offer a big thanks to the 15 contributors who made this release possible. Here are some highlights ✨:
|
|
11
|
+
|
|
12
|
+
- 🚀 Add slot typings on the Data Grid components (#11795) @romgrk
|
|
13
|
+
- 🎁 Support UTC date formatting in Charts tooltip (#11943) @shaharyar-shamshi
|
|
14
|
+
- 🌍 Improve Danish (da-DK) locale Data Grid (#11877) @ShahrazH
|
|
15
|
+
- 🐞 Bugfixes
|
|
16
|
+
- 📚 Documentation improvements
|
|
17
|
+
|
|
18
|
+
### Data Grid
|
|
19
|
+
|
|
20
|
+
#### `@mui/x-data-grid@v7.0.0-beta.2`
|
|
21
|
+
|
|
22
|
+
- [DataGrid] Add `removeAllFilterItems` as a reason of `onFilterModelChange` callback (#11911) @shaharyar-shamshi
|
|
23
|
+
- [DataGrid] Add slot typings (#11795) @romgrk
|
|
24
|
+
- [DataGrid] Add support for dialogs in menu actions (#11909) @cherniavskii
|
|
25
|
+
- [DataGrid] Allow passing readonly arrays to `pageSizeOptions` prop (#11609) @pcorpet
|
|
26
|
+
- [DataGrid] Fix incorrect computation of `lastPage` in `GridPagination` (#11958) @MBilalShafi
|
|
27
|
+
- [DataGrid] Improve vertical scrolling performance (#11924) @romgrk
|
|
28
|
+
- [l10n] Improve Danish (da-DK) locale (#11877) @ShahrazH
|
|
29
|
+
|
|
30
|
+
#### `@mui/x-data-grid-pro@v7.0.0-beta.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
31
|
+
|
|
32
|
+
Same changes as in `@mui/x-data-grid@v7.0.0-beta.2`.
|
|
33
|
+
|
|
34
|
+
#### `@mui/x-data-grid-premium@v7.0.0-beta.2` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
35
|
+
|
|
36
|
+
Same changes as in `@mui/x-data-grid-pro@v7.0.0-beta.2`, plus:
|
|
37
|
+
|
|
38
|
+
- [DataGridPremium] Fix autosize grouping cell (#11870) @romgrk
|
|
39
|
+
- [DataGridPremium] Fix clipboard paste not working with Caps Lock enabled (#11965) @shaharyar-shamshi
|
|
40
|
+
|
|
41
|
+
### Date Pickers
|
|
42
|
+
|
|
43
|
+
#### `@mui/x-date-pickers@v7.0.0-beta.2`
|
|
44
|
+
|
|
45
|
+
- [pickers] Avoid relying on locale in Luxon `isWithinRange` method (#11936) @LukasTy
|
|
46
|
+
- [pickers] Limit the valid values of `TDate` (#11791) @flaviendelangle
|
|
47
|
+
|
|
48
|
+
#### `@mui/x-date-pickers-pro@v7.0.0-beta.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
49
|
+
|
|
50
|
+
Same changes as in `@mui/x-date-pickers@v7.0.0-beta.2`.
|
|
51
|
+
|
|
52
|
+
### Charts / `@mui/x-charts@v7.0.0-beta.2`
|
|
53
|
+
|
|
54
|
+
- [charts] Add `reverse` property to axes (#11899) @alexfauquette
|
|
55
|
+
- [charts] Allow series ids to be numbers (#11941) @alexfauquette
|
|
56
|
+
- [charts] Support UTC date formatting in tooltip (#11943) @shaharyar-shamshi
|
|
57
|
+
|
|
58
|
+
### Tree View / `@mui/x-tree-view@v7.0.0-beta.2`
|
|
59
|
+
|
|
60
|
+
- [TreeView] Correctly detect if an item is expandable (#11963) @swalker326
|
|
61
|
+
- [TreeView] Polish the default design & revise the simple version pages (#11529) @danilo-leal
|
|
62
|
+
|
|
63
|
+
### License
|
|
64
|
+
|
|
65
|
+
#### Breaking changes
|
|
66
|
+
|
|
67
|
+
- If you're using the [commercial license](https://next.mui.com/x/introduction/licensing), you need to update the import path:
|
|
68
|
+
|
|
69
|
+
```diff
|
|
70
|
+
-import { LicenseInfo } from '@mui/x-license-pro';
|
|
71
|
+
+import { LicenseInfo } from '@mui/x-license';
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
`@mui/x-license@v7.0.0-beta.2`
|
|
75
|
+
|
|
76
|
+
- [license] Rename `@mui/x-license-pro` to `@mui/x-license` (#11938) @cherniavskii
|
|
77
|
+
|
|
78
|
+
### Docs
|
|
79
|
+
|
|
80
|
+
- [docs] Add a note about `AdapterDateFnsV3` on the Getting Started page (#11985) @flaviendelangle
|
|
81
|
+
- [docs] Add missing `Charts` breaking change steps (#11971) @alexfauquette
|
|
82
|
+
- [docs] Fix `ChartsTooltip` typo (#11961) @thisisharsh7
|
|
83
|
+
- [docs] Refactor `Localization` documentation sections (#11989) @LukasTy
|
|
84
|
+
- [docs] Use "cannot" instead of "can't" or "can not" (#11986) @flaviendelangle
|
|
85
|
+
- [docs] Add quick fixes to the migration guide (#11806) @danilo-leal
|
|
86
|
+
- [docs] Avoid use of shorthand (#12000) @oliviertassinari
|
|
87
|
+
- [docs] Avoid the use of MUI Core @oliviertassinari
|
|
88
|
+
- [docs] Fix image size and dark mode @oliviertassinari
|
|
89
|
+
- [docs] Follow blank line convention with use client @oliviertassinari
|
|
90
|
+
- [docs] Stable layout between light and dark mode @oliviertassinari
|
|
91
|
+
|
|
92
|
+
### Core
|
|
93
|
+
|
|
94
|
+
- [core] Add `docs:serve` script (#11935) @cherniavskii
|
|
95
|
+
- [core] Bump monorepo (#12001) @cherniavskii
|
|
96
|
+
- [core] Deprecate `LicenseInfo` re-exports (#11956) @cherniavskii
|
|
97
|
+
- [core] Fix `test_types` failing on the `next` branch (#11944) @cherniavskii
|
|
98
|
+
- [core] Fix failing `test_static` on the next branch (#11977) @cherniavskii
|
|
99
|
+
- [core] Flatten grid packages folder (#11946) @cherniavskii
|
|
100
|
+
- [core] Improve license info deprecation message (#11974) @cherniavskii
|
|
101
|
+
- [core] Integrate changes from Core #40842 PR (#11801) @michaldudak
|
|
102
|
+
- [core] Move next config to ESM (#11882) @Janpot
|
|
103
|
+
- [core] Add auto-message on closed issues (#11805) @michelengelen
|
|
104
|
+
- [core] Simplify bug reproduction (#11849) @oliviertassinari
|
|
105
|
+
- [core] Fix npm reference @oliviertassinari
|
|
106
|
+
- [core] Normalize issue template @oliviertassinari
|
|
107
|
+
|
|
108
|
+
## 7.0.0-beta.1
|
|
109
|
+
|
|
110
|
+
_Feb 1, 2024_
|
|
111
|
+
|
|
112
|
+
We'd like to offer a big thanks to the 12 contributors who made this release possible. Here are some highlights ✨:
|
|
113
|
+
|
|
114
|
+
- 🏃 Improve the filtering performance of the Data Grid by changing the `GridColDef` methods signatures (#11573) @cherniavskii
|
|
115
|
+
- 🎁 The Line Chart component now has animation by default (#11620) @alexfauquette
|
|
116
|
+
- 🚀 All charts have click handlers (#11411) @alexfauquette
|
|
117
|
+
Test their respective documentation demonstrations to know more about the data format:
|
|
118
|
+
|
|
119
|
+
- [Scatter Chart](https://next.mui.com/x/react-charts/scatter/#click-event)
|
|
120
|
+
- [Line Chart](https://next.mui.com/x/react-charts/lines/#click-event)
|
|
121
|
+
- [Bar Chart](https://next.mui.com/x/react-charts/bars/#click-event)
|
|
122
|
+
- [Pie Chart](https://next.mui.com/x/react-charts/pie/#click-event)
|
|
123
|
+
|
|
124
|
+
Big thanks to @giladappsforce and @yaredtsy for their contribution on exploring this feature.
|
|
125
|
+
|
|
126
|
+
### Data Grid
|
|
127
|
+
|
|
128
|
+
### Breaking changes
|
|
129
|
+
|
|
130
|
+
- The signature of `GridColDef['valueGetter']` has been changed for performance reasons:
|
|
131
|
+
|
|
132
|
+
```diff
|
|
133
|
+
- valueGetter: ({ value, row }) => value,
|
|
134
|
+
+ valueGetter: (value, row, column, apiRef) => value,
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
The `GridValueGetterParams` interface has been removed:
|
|
138
|
+
|
|
139
|
+
```diff
|
|
140
|
+
- const customValueGetter = (params: GridValueGetterParams) => params.row.budget;
|
|
141
|
+
+ const customValueGetter: GridValueGetterFn = (value, row) => row.budget;
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
- The signature of `GridColDef['valueFormatter']` has been changed for performance reasons:
|
|
145
|
+
|
|
146
|
+
```diff
|
|
147
|
+
- valueFormatter: ({ value }) => value,
|
|
148
|
+
+ valueFormatter: (value, row, column, apiRef) => value,
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
The `GridValueFormatterParams` interface has been removed:
|
|
152
|
+
|
|
153
|
+
```diff
|
|
154
|
+
- const gridDateFormatter = ({ value, field, id }: GridValueFormatterParams<Date>) => value.toLocaleDateString();
|
|
155
|
+
+ const gridDateFormatter: GridValueFormatter = (value: Date) => value.toLocaleDateString();
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
- The signature of `GridColDef['valueSetter']` has been changed for performance reasons:
|
|
159
|
+
|
|
160
|
+
```diff
|
|
161
|
+
- valueSetter: (params) => {
|
|
162
|
+
- const [firstName, lastName] = params.value!.toString().split(' ');
|
|
163
|
+
- return { ...params.row, firstName, lastName };
|
|
164
|
+
- }
|
|
165
|
+
+ valueSetter: (value, row) => {
|
|
166
|
+
+ const [firstName, lastName] = value!.toString().split(' ');
|
|
167
|
+
+ return { ...row, firstName, lastName };
|
|
168
|
+
+}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
The `GridValueSetterParams` interface has been removed:
|
|
172
|
+
|
|
173
|
+
```diff
|
|
174
|
+
- const setFullName = (params: GridValueSetterParams) => {
|
|
175
|
+
- const [firstName, lastName] = params.value!.toString().split(' ');
|
|
176
|
+
- return { ...params.row, firstName, lastName };
|
|
177
|
+
- };
|
|
178
|
+
+ const setFullName: GridValueSetter<Row> = (value, row) => {
|
|
179
|
+
+ const [firstName, lastName] = value!.toString().split(' ');
|
|
180
|
+
+ return { ...row, firstName, lastName };
|
|
181
|
+
+ }
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
- The signature of `GridColDef['valueParser']` has been changed for performance reasons:
|
|
185
|
+
|
|
186
|
+
```diff
|
|
187
|
+
- valueParser: (value, params: GridCellParams) => value.toLowerCase(),
|
|
188
|
+
+ valueParser: (value, row, column, apiRef) => value.toLowerCase(),
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
- The signature of `GridColDef['colSpan']` has been changed for performance reasons:
|
|
192
|
+
|
|
193
|
+
```diff
|
|
194
|
+
- colSpan: ({ row, field, value }: GridCellParams) => (row.id === 'total' ? 2 : 1),
|
|
195
|
+
+ colSpan: (value, row, column, apiRef) => (row.id === 'total' ? 2 : 1),
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
- The signature of `GridColDef['pastedValueParser']` has been changed for performance reasons:
|
|
199
|
+
|
|
200
|
+
```diff
|
|
201
|
+
- pastedValueParser: (value, params) => new Date(value),
|
|
202
|
+
+ pastedValueParser: (value, row, column, apiRef) => new Date(value),
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
- The signature of `GridColDef['groupingValueGetter']` has been changed for performance reasons:
|
|
206
|
+
|
|
207
|
+
```diff
|
|
208
|
+
- groupingValueGetter: (params) => params.value.name,
|
|
209
|
+
+ groupingValueGetter: (value: { name: string }) => value.name,
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
#### `@mui/x-data-grid@7.0.0-beta.1`
|
|
213
|
+
|
|
214
|
+
- [DataGrid] Add `toggleAllMode` prop to the `columnsManagement` slot (#10794) @H999
|
|
215
|
+
- [DataGrid] Change `GridColDef` methods signatures (#11573) @cherniavskii
|
|
216
|
+
- [DataGrid] Fix row reorder with cell selection (#11783) @PEsteves8
|
|
217
|
+
- [DataGrid] Make columns management' casing consistent (#11858) @MBilalShafi
|
|
218
|
+
- [l10n] Improve Hebrew (he-IL) locale (#11788) @danielmishan85
|
|
219
|
+
|
|
220
|
+
#### `@mui/x-data-grid-pro@7.0.0-beta.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
221
|
+
|
|
222
|
+
Same changes as in `@mui/x-data-grid@7.0.0-beta.1`.
|
|
223
|
+
|
|
224
|
+
#### `@mui/x-data-grid-premium@7.0.0-beta.1` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
225
|
+
|
|
226
|
+
Same changes as in `@mui/x-data-grid-pro@7.0.0-beta.1`.
|
|
227
|
+
|
|
228
|
+
### Date Pickers
|
|
229
|
+
|
|
230
|
+
#### `@mui/x-date-pickers@7.0.0-beta.1`
|
|
231
|
+
|
|
232
|
+
- [TimePicker] Add missing toolbar classes descriptions (#11856) @LukasTy
|
|
233
|
+
|
|
234
|
+
#### `@mui/x-date-pickers-pro@7.0.0-beta.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
235
|
+
|
|
236
|
+
Same changes as in `@mui/x-date-pickers@7.0.0-beta.1`.
|
|
237
|
+
|
|
238
|
+
### Charts
|
|
239
|
+
|
|
240
|
+
#### Breaking changes
|
|
241
|
+
|
|
242
|
+
- The line chart now have animation by default.
|
|
243
|
+
You can disable it with `skipAnimation` prop.
|
|
244
|
+
See [animation documentation](next.mui.com/x/react-charts/lines/#animation) for more information.
|
|
245
|
+
|
|
246
|
+
- Pie charts `onClick` get renamed `onItemClick` for consistency with other charts click callback.
|
|
247
|
+
|
|
248
|
+
`@mui/x-charts@7.0.0-beta.1`
|
|
249
|
+
|
|
250
|
+
- [charts] Add `onClick` support (#11411) @alexfauquette
|
|
251
|
+
- [charts] Add line animation (#11620) @alexfauquette
|
|
252
|
+
- [charts] Document how to modify color according to values (#11824) @alexfauquette
|
|
253
|
+
- [charts] Fix Tooltip crash with out of range lines (#11898) @alexfauquette
|
|
254
|
+
|
|
255
|
+
### Docs
|
|
256
|
+
|
|
257
|
+
- [docs] Add a general uplift to the changelog page (#11396) @danilo-leal
|
|
258
|
+
- [docs] Do not reference the Tree View overview page in the API pages (#11826) @flaviendelangle
|
|
259
|
+
- [docs] Fix charts API links (#11832) @alexfauquette
|
|
260
|
+
- [docs] Improve Support page (#11556) @oliviertassinari
|
|
261
|
+
- [docs] Improve column visibility documentation (#11857) @MBilalShafi
|
|
262
|
+
- [docs] Polish header @oliviertassinari
|
|
263
|
+
- [docs] Sync support page with core @oliviertassinari
|
|
264
|
+
- [docs] Update whats new page with "v7 Beta blogpost" content (#11879) @joserodolfofreitas
|
|
265
|
+
|
|
266
|
+
### Core
|
|
267
|
+
|
|
268
|
+
- [core] Rely on immutable ref when possible (#11847) @oliviertassinari
|
|
269
|
+
- [core] Bump monorepo (#11897) @alexfauquette
|
|
270
|
+
|
|
6
271
|
## 7.0.0-beta.0
|
|
7
272
|
|
|
8
273
|
_Jan 26, 2024_
|
|
@@ -1873,6 +2138,146 @@ Here is an example of the renaming for the `<ChartsTooltip />` component.
|
|
|
1873
2138
|
- [core] Update release instructions as per v7 configuration (#10962) @MBilalShafi
|
|
1874
2139
|
- [license] Correctly throw errors (#10924) @oliviertassinari
|
|
1875
2140
|
|
|
2141
|
+
## v6.19.4
|
|
2142
|
+
|
|
2143
|
+
_Feb 9, 2024_
|
|
2144
|
+
|
|
2145
|
+
We'd like to offer a big thanks to the 10 contributors who made this release possible. Here are some highlights ✨:
|
|
2146
|
+
|
|
2147
|
+
- 🌍 Improve Danish (da-DK) locale on the Data Grid (#11972) @ShahrazH
|
|
2148
|
+
- 🐞 Bugfixes
|
|
2149
|
+
- 📚 Documentation improvements
|
|
2150
|
+
|
|
2151
|
+
### Data Grid
|
|
2152
|
+
|
|
2153
|
+
#### `@mui/x-data-grid@v6.19.4`
|
|
2154
|
+
|
|
2155
|
+
- [DataGrid] Add support for dialogs in menu actions (#11937) @cherniavskii
|
|
2156
|
+
- [DataGrid] Allow passing readonly arrays to `pageSizeOptions` prop (#11992) @pcorpet
|
|
2157
|
+
- [DataGrid] Fix row reorder with cell selection (#11878) @PEsteves8
|
|
2158
|
+
- [DataGrid] Replace `eval` with `new Function` (#11962) @cherniavskii
|
|
2159
|
+
- [l10n] Improve Danish (da-DK) locale (#11972) @ShahrazH
|
|
2160
|
+
|
|
2161
|
+
#### `@mui/x-data-grid-pro@v6.19.4` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
2162
|
+
|
|
2163
|
+
Same changes as in `@mui/x-data-grid@v6.19.4`.
|
|
2164
|
+
|
|
2165
|
+
#### `@mui/x-data-grid-premium@v6.19.4` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
2166
|
+
|
|
2167
|
+
Same changes as in `@mui/x-data-grid-pro@v6.19.4`, plus:
|
|
2168
|
+
|
|
2169
|
+
- [DataGridPremium] Fix autosize grouping cell (#11990) @romgrk
|
|
2170
|
+
- [DataGridPremium] Fix error after closing print export (#11889) @cherniavskii
|
|
2171
|
+
|
|
2172
|
+
### Date Pickers
|
|
2173
|
+
|
|
2174
|
+
#### `@mui/x-date-pickers@v6.19.4`
|
|
2175
|
+
|
|
2176
|
+
- [pickers] Avoid relying on locale in Luxon `isWithinRange` method (#11940) @LukasTy
|
|
2177
|
+
|
|
2178
|
+
#### `@mui/x-date-pickers-pro@v6.19.4` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
2179
|
+
|
|
2180
|
+
Same changes as in `@mui/x-date-pickers@v6.19.4`.
|
|
2181
|
+
|
|
2182
|
+
### Charts / `@mui/x-charts@v6.19.4`
|
|
2183
|
+
|
|
2184
|
+
- [charts] Add `reverse` property to axes (#11959) @alexfauquette
|
|
2185
|
+
- [charts] Allow series ids to be numbers (#11960) @alexfauquette
|
|
2186
|
+
- [charts] Fix Proptypes error by supporting string values for axes (#11953) @alexfauquette
|
|
2187
|
+
|
|
2188
|
+
### Docs
|
|
2189
|
+
|
|
2190
|
+
- [docs] Add a note about `AdapterDateFnsV3` on the Getting Started page (#11987) @flaviendelangle
|
|
2191
|
+
- [docs] Avoid the use of MUI Core @oliviertassinari
|
|
2192
|
+
- [docs] Fix API links (#11930) @alexfauquette
|
|
2193
|
+
- [docs] Fix `ChartsTooltip` typo (#11967) @thisisharsh7
|
|
2194
|
+
- [docs] Refactor `Localization` documentation sections (#11997) @LukasTy
|
|
2195
|
+
- [code] Simplify bug reproduction (#11932) @alexfauquette
|
|
2196
|
+
|
|
2197
|
+
## 6.19.3
|
|
2198
|
+
|
|
2199
|
+
_Feb 1, 2024_
|
|
2200
|
+
|
|
2201
|
+
We'd like to offer a big thanks to the 6 contributors who made this release possible. Here are some highlights ✨:
|
|
2202
|
+
|
|
2203
|
+
- 🌍 Improve Hebrew (he-IL) locale (#11831) @danielmishan85
|
|
2204
|
+
- 🐞 Bugfixes
|
|
2205
|
+
- 📚 Documentation improvements
|
|
2206
|
+
|
|
2207
|
+
### Data Grid
|
|
2208
|
+
|
|
2209
|
+
#### `@mui/x-data-grid@6.19.3`
|
|
2210
|
+
|
|
2211
|
+
- [l10n] Improve Hebrew (he-IL) locale (@danielmishan85) (#11831)
|
|
2212
|
+
|
|
2213
|
+
#### `@mui/x-data-grid-pro@6.19.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
2214
|
+
|
|
2215
|
+
Same changes as in `@mui/x-data-grid@6.19.3`.
|
|
2216
|
+
|
|
2217
|
+
#### `@mui/x-data-grid-premium@6.19.3` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
2218
|
+
|
|
2219
|
+
Same changes as in `@mui/x-data-grid-pro@6.19.3`.
|
|
2220
|
+
|
|
2221
|
+
### Date Pickers
|
|
2222
|
+
|
|
2223
|
+
#### `@mui/x-date-pickers@6.19.3`
|
|
2224
|
+
|
|
2225
|
+
- [TimePicker] Add missing toolbar classes descriptions (#11862) @LukasTy
|
|
2226
|
+
|
|
2227
|
+
#### `@mui/x-date-pickers-pro@6.19.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
2228
|
+
|
|
2229
|
+
Same changes as in `@mui/x-date-pickers@6.19.3`.
|
|
2230
|
+
|
|
2231
|
+
### Charts / `@mui/x-charts@6.19.3`
|
|
2232
|
+
|
|
2233
|
+
- [charts] Document how to modify color according to values (#11854) @alexfauquette
|
|
2234
|
+
|
|
2235
|
+
### Docs
|
|
2236
|
+
|
|
2237
|
+
- [docs] Add a general uplift to the whats new page (#11883) @danilo-leal
|
|
2238
|
+
- [docs] Fix 404 (#11852) @alexfauquette
|
|
2239
|
+
- [docs] Fix <title> generation (#11825) @alexfauquette
|
|
2240
|
+
- [docs] Fix docs:api when typo in slots typing (#11861) @alexfauquette
|
|
2241
|
+
- [docs] Improve Support page (#11556) @oliviertassinari
|
|
2242
|
+
- [docs] Sync support page with core @oliviertassinari
|
|
2243
|
+
- [docs] These API don't exist in MUI X v6 @oliviertassinari
|
|
2244
|
+
- [docs] Update whats new page with v7 Beta blogpost content (#11886) @joserodolfofreitas
|
|
2245
|
+
|
|
2246
|
+
## 6.19.2
|
|
2247
|
+
|
|
2248
|
+
_Jan 25, 2024_
|
|
2249
|
+
|
|
2250
|
+
We'd like to offer a big thanks to the 2 contributors who made this release possible. Here are some highlights ✨:
|
|
2251
|
+
|
|
2252
|
+
- 🚀 Apply the `layout.tabs` class to `Tabs` slot (@LukasTy) (#11782)
|
|
2253
|
+
- 🐞 Bugfixes
|
|
2254
|
+
|
|
2255
|
+
### Date Pickers
|
|
2256
|
+
|
|
2257
|
+
#### `@mui/x-date-pickers@6.19.2`
|
|
2258
|
+
|
|
2259
|
+
- [pickers] Apply the `layout.tabs` class to `Tabs` slot (@LukasTy) (#11782)
|
|
2260
|
+
|
|
2261
|
+
#### `@mui/x-date-pickers-pro@6.19.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
2262
|
+
|
|
2263
|
+
Same changes as in `@mui/x-date-pickers@6.19.2`, plus:
|
|
2264
|
+
|
|
2265
|
+
- [DateRangePicker] Remove `calendars` prop on `Mobile` (@LukasTy) (#11771)
|
|
2266
|
+
|
|
2267
|
+
### Data Grid
|
|
2268
|
+
|
|
2269
|
+
#### `@mui/x-data-grid@6.19.2`
|
|
2270
|
+
|
|
2271
|
+
- [DataGrid] Fix support for tree with more than 50,000 children (@zenazn) (#11808)
|
|
2272
|
+
|
|
2273
|
+
#### `@mui/x-data-grid-pro@6.19.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
2274
|
+
|
|
2275
|
+
Same changes as in `@mui/x-data-grid@6.19.2`.
|
|
2276
|
+
|
|
2277
|
+
#### `@mui/x-data-grid-premium@6.19.2` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
2278
|
+
|
|
2279
|
+
Same changes as in `@mui/x-data-grid-pro@6.19.2`.
|
|
2280
|
+
|
|
1876
2281
|
## 6.19.1
|
|
1877
2282
|
|
|
1878
2283
|
_Jan 19, 2024_
|
|
@@ -6876,7 +7281,7 @@ You can find more information about the new api, including how to set those tran
|
|
|
6876
7281
|
- [core] Add link to the security page on the `README` (#6073) @oliviertassinari
|
|
6877
7282
|
- [core] Fix scroll restoration in the docs (#5938) @oliviertassinari
|
|
6878
7283
|
- [core] Remove the Storybook (#6099) @flaviendelangle
|
|
6879
|
-
- [core] Tag release as `next` in
|
|
7284
|
+
- [core] Tag release as `next` in npm (#6256) @m4theushw
|
|
6880
7285
|
- [core] Update monorepo (#6180) @flaviendelangle
|
|
6881
7286
|
- [core] Use the `next` branch for Prettier (#6097) @flaviendelangle
|
|
6882
7287
|
- [core] Use the official repository for `@mui/monorepo` instead of a fork (#6189) @oliviertassinari
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { GridValidRowModel } from '@mui/x-data-grid';
|
|
3
3
|
import { DataGridProProps } from '../models/dataGridProProps';
|
|
4
|
+
export type { GridProSlotsComponent as GridSlots } from '../models';
|
|
4
5
|
interface DataGridProComponent {
|
|
5
6
|
<R extends GridValidRowModel = any>(props: DataGridProProps<R> & React.RefAttributes<HTMLDivElement>): React.JSX.Element;
|
|
6
7
|
propTypes?: any;
|
|
@@ -13,4 +14,3 @@ interface DataGridProComponent {
|
|
|
13
14
|
* - [DataGridPro API](https://mui.com/x/api/data-grid/data-grid-pro/)
|
|
14
15
|
*/
|
|
15
16
|
export declare const DataGridPro: DataGridProComponent;
|
|
16
|
-
export {};
|
|
@@ -8,7 +8,7 @@ exports.DataGridPro = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var
|
|
11
|
+
var _xLicense = require("@mui/x-license");
|
|
12
12
|
var _xDataGrid = require("@mui/x-data-grid");
|
|
13
13
|
var _internals = require("@mui/x-data-grid/internals");
|
|
14
14
|
var _useDataGridProComponent = require("./useDataGridProComponent");
|
|
@@ -22,7 +22,7 @@ const releaseInfo = (0, _releaseInfo.getReleaseInfo)();
|
|
|
22
22
|
const DataGridProRaw = /*#__PURE__*/React.forwardRef(function DataGridPro(inProps, ref) {
|
|
23
23
|
const props = (0, _useDataGridProProps.useDataGridProProps)(inProps);
|
|
24
24
|
const privateApiRef = (0, _useDataGridProComponent.useDataGridProComponent)(props.apiRef, props);
|
|
25
|
-
(0,
|
|
25
|
+
(0, _xLicense.useLicenseVerifier)('x-data-grid-pro', releaseInfo);
|
|
26
26
|
(0, _internals.validateProps)(props, _propValidation.propValidatorsDataGridPro);
|
|
27
27
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_xDataGrid.GridContextProvider, {
|
|
28
28
|
privateApiRef: privateApiRef,
|
|
@@ -34,7 +34,7 @@ const DataGridProRaw = /*#__PURE__*/React.forwardRef(function DataGridPro(inProp
|
|
|
34
34
|
ref: ref
|
|
35
35
|
}, props.forwardedProps, {
|
|
36
36
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_xDataGrid.GridHeader, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_xDataGrid.GridBody, {
|
|
37
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
37
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_xLicense.Watermark, {
|
|
38
38
|
packageName: "x-data-grid-pro",
|
|
39
39
|
releaseInfo: releaseInfo
|
|
40
40
|
})
|
|
@@ -435,7 +435,7 @@ DataGridProRaw.propTypes = {
|
|
|
435
435
|
loading: _propTypes.default.bool,
|
|
436
436
|
/**
|
|
437
437
|
* Set the locale text of the Data Grid.
|
|
438
|
-
* You can find all the translation keys supported in [the source](https://github.com/mui/mui-x/blob/HEAD/packages/
|
|
438
|
+
* You can find all the translation keys supported in [the source](https://github.com/mui/mui-x/blob/HEAD/packages/x-data-grid/src/constants/localeTextConstants.ts) in the GitHub repository.
|
|
439
439
|
*/
|
|
440
440
|
localeText: _propTypes.default.object,
|
|
441
441
|
/**
|
|
@@ -71,7 +71,7 @@ const useDataGridProComponent = (inputApiRef, props) => {
|
|
|
71
71
|
(0, _useGridRowPinning.useGridRowPinning)(apiRef, props);
|
|
72
72
|
(0, _internals.useGridColumns)(apiRef, props);
|
|
73
73
|
(0, _internals.useGridRows)(apiRef, props);
|
|
74
|
-
(0, _internals.useGridParamsApi)(apiRef
|
|
74
|
+
(0, _internals.useGridParamsApi)(apiRef);
|
|
75
75
|
(0, _useGridDetailPanel.useGridDetailPanel)(apiRef, props);
|
|
76
76
|
(0, _internals.useGridColumnSpanning)(apiRef);
|
|
77
77
|
(0, _internals.useGridColumnGrouping)(apiRef, props);
|
|
@@ -33,7 +33,9 @@ const DATA_GRID_PRO_PROPS_DEFAULT_VALUES = exports.DATA_GRID_PRO_PROPS_DEFAULT_V
|
|
|
33
33
|
});
|
|
34
34
|
const defaultSlots = _dataGridProDefaultSlotsComponents.DATA_GRID_PRO_DEFAULT_SLOTS_COMPONENTS;
|
|
35
35
|
const useDataGridProProps = inProps => {
|
|
36
|
-
const themedProps = (0, _internals.useProps)(
|
|
36
|
+
const themedProps = (0, _internals.useProps)(
|
|
37
|
+
// eslint-disable-next-line material-ui/mui-name-matches-component-name
|
|
38
|
+
(0, _styles.useThemeProps)({
|
|
37
39
|
props: inProps,
|
|
38
40
|
name: 'MuiDataGrid'
|
|
39
41
|
}));
|
|
@@ -45,12 +45,14 @@ function GridHeaderFilterMenuContainer(props) {
|
|
|
45
45
|
if (!rootProps.slots.headerFilterMenu) {
|
|
46
46
|
return null;
|
|
47
47
|
}
|
|
48
|
+
const label = apiRef.current.getLocaleText('filterPanelOperator');
|
|
49
|
+
const labelString = label ? String(label) : undefined;
|
|
48
50
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
49
51
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseIconButton, (0, _extends2.default)({
|
|
50
52
|
id: buttonId,
|
|
51
53
|
ref: buttonRef,
|
|
52
|
-
"aria-label":
|
|
53
|
-
title:
|
|
54
|
+
"aria-label": labelString,
|
|
55
|
+
title: labelString,
|
|
54
56
|
"aria-controls": menuId,
|
|
55
57
|
"aria-expanded": open ? 'true' : undefined,
|
|
56
58
|
"aria-haspopup": "true",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import { useLicenseVerifier, Watermark } from '@mui/x-license
|
|
4
|
+
import { useLicenseVerifier, Watermark } from '@mui/x-license';
|
|
5
5
|
import { GridBody, GridFooterPlaceholder, GridHeader, GridRoot, GridContextProvider } from '@mui/x-data-grid';
|
|
6
6
|
import { validateProps } from '@mui/x-data-grid/internals';
|
|
7
7
|
import { useDataGridProComponent } from './useDataGridProComponent';
|
|
@@ -427,7 +427,7 @@ DataGridProRaw.propTypes = {
|
|
|
427
427
|
loading: PropTypes.bool,
|
|
428
428
|
/**
|
|
429
429
|
* Set the locale text of the Data Grid.
|
|
430
|
-
* You can find all the translation keys supported in [the source](https://github.com/mui/mui-x/blob/HEAD/packages/
|
|
430
|
+
* You can find all the translation keys supported in [the source](https://github.com/mui/mui-x/blob/HEAD/packages/x-data-grid/src/constants/localeTextConstants.ts) in the GitHub repository.
|
|
431
431
|
*/
|
|
432
432
|
localeText: PropTypes.object,
|
|
433
433
|
/**
|
|
@@ -64,7 +64,7 @@ export const useDataGridProComponent = (inputApiRef, props) => {
|
|
|
64
64
|
useGridRowPinning(apiRef, props);
|
|
65
65
|
useGridColumns(apiRef, props);
|
|
66
66
|
useGridRows(apiRef, props);
|
|
67
|
-
useGridParamsApi(apiRef
|
|
67
|
+
useGridParamsApi(apiRef);
|
|
68
68
|
useGridDetailPanel(apiRef, props);
|
|
69
69
|
useGridColumnSpanning(apiRef);
|
|
70
70
|
useGridColumnGrouping(apiRef, props);
|
|
@@ -25,7 +25,9 @@ export const DATA_GRID_PRO_PROPS_DEFAULT_VALUES = _extends({}, DATA_GRID_PROPS_D
|
|
|
25
25
|
});
|
|
26
26
|
const defaultSlots = DATA_GRID_PRO_DEFAULT_SLOTS_COMPONENTS;
|
|
27
27
|
export const useDataGridProProps = inProps => {
|
|
28
|
-
const themedProps = useProps(
|
|
28
|
+
const themedProps = useProps(
|
|
29
|
+
// eslint-disable-next-line material-ui/mui-name-matches-component-name
|
|
30
|
+
useThemeProps({
|
|
29
31
|
props: inProps,
|
|
30
32
|
name: 'MuiDataGrid'
|
|
31
33
|
}));
|
|
@@ -38,12 +38,14 @@ function GridHeaderFilterMenuContainer(props) {
|
|
|
38
38
|
if (!rootProps.slots.headerFilterMenu) {
|
|
39
39
|
return null;
|
|
40
40
|
}
|
|
41
|
+
const label = apiRef.current.getLocaleText('filterPanelOperator');
|
|
42
|
+
const labelString = label ? String(label) : undefined;
|
|
41
43
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
42
44
|
children: [/*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
|
|
43
45
|
id: buttonId,
|
|
44
46
|
ref: buttonRef,
|
|
45
|
-
"aria-label":
|
|
46
|
-
title:
|
|
47
|
+
"aria-label": labelString,
|
|
48
|
+
title: labelString,
|
|
47
49
|
"aria-controls": menuId,
|
|
48
50
|
"aria-expanded": open ? 'true' : undefined,
|
|
49
51
|
"aria-haspopup": "true",
|
|
@@ -183,7 +183,7 @@ export const useGridColumnReorder = (apiRef, props) => {
|
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
185
|
if (forbiddenIndexes.current[indexWithOffset] || allColumns[indexWithOffset].field === nextVisibleColumnField) {
|
|
186
|
-
// If we ended up on a visible column, or a forbidden one, we
|
|
186
|
+
// If we ended up on a visible column, or a forbidden one, we cannot do the reorder
|
|
187
187
|
canBeReordered = false;
|
|
188
188
|
}
|
|
189
189
|
}
|
|
@@ -19,9 +19,10 @@ export const GRID_DETAIL_PANEL_TOGGLE_COL_DEF = _extends({}, GRID_STRING_COL_DEF
|
|
|
19
19
|
disableExport: true,
|
|
20
20
|
align: 'left',
|
|
21
21
|
width: 40,
|
|
22
|
-
valueGetter:
|
|
23
|
-
const
|
|
24
|
-
|
|
22
|
+
valueGetter: (value, row, column, apiRef) => {
|
|
23
|
+
const rowId = apiRef.current.getRowId(row);
|
|
24
|
+
const expandedRowIds = gridDetailPanelExpandedRowIdsSelector(apiRef.current.state);
|
|
25
|
+
return expandedRowIds.includes(rowId);
|
|
25
26
|
},
|
|
26
27
|
renderCell: params => /*#__PURE__*/_jsx(GridDetailPanelToggleCell, _extends({}, params)),
|
|
27
28
|
renderHeader: () => null
|
|
@@ -12,7 +12,11 @@ export const GRID_TREE_DATA_GROUPING_COL_DEF = _extends({}, GRID_STRING_COL_DEF,
|
|
|
12
12
|
disableReorder: true,
|
|
13
13
|
align: 'left',
|
|
14
14
|
width: 200,
|
|
15
|
-
valueGetter:
|
|
15
|
+
valueGetter: (value, row, column, apiRef) => {
|
|
16
|
+
const rowId = apiRef.current.getRowId(row);
|
|
17
|
+
const rowNode = apiRef.current.getRowNode(rowId);
|
|
18
|
+
return (rowNode == null ? void 0 : rowNode.type) === 'group' || (rowNode == null ? void 0 : rowNode.type) === 'leaf' ? rowNode.groupingKey : undefined;
|
|
19
|
+
}
|
|
16
20
|
});
|
|
17
21
|
export const GRID_TREE_DATA_GROUPING_FIELD = '__tree_data_group__';
|
|
18
22
|
export const GRID_TREE_DATA_GROUPING_COL_DEF_FORCED_PROPERTIES = {
|
package/esm/index.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import './typeOverloads';
|
|
2
|
-
|
|
2
|
+
import { LicenseInfo as LicenseInfoExport } from '@mui/x-license';
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Use `@mui/x-license` package instead:
|
|
5
|
+
* @example import { LicenseInfo } from '@mui/x-license';
|
|
6
|
+
*/
|
|
7
|
+
export class LicenseInfo extends LicenseInfoExport {}
|
|
3
8
|
export * from '@mui/x-data-grid/components';
|
|
4
9
|
export * from '@mui/x-data-grid/constants';
|
|
5
10
|
export * from '@mui/x-data-grid/hooks';
|
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 = "MTcwNzQyOTYwMDAwMA==";
|
|
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
|
|
@@ -191,7 +191,7 @@ const useGridColumnReorder = (apiRef, props) => {
|
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
193
|
if (forbiddenIndexes.current[indexWithOffset] || allColumns[indexWithOffset].field === nextVisibleColumnField) {
|
|
194
|
-
// If we ended up on a visible column, or a forbidden one, we
|
|
194
|
+
// If we ended up on a visible column, or a forbidden one, we cannot do the reorder
|
|
195
195
|
canBeReordered = false;
|
|
196
196
|
}
|
|
197
197
|
}
|
|
@@ -28,9 +28,10 @@ const GRID_DETAIL_PANEL_TOGGLE_COL_DEF = exports.GRID_DETAIL_PANEL_TOGGLE_COL_DE
|
|
|
28
28
|
disableExport: true,
|
|
29
29
|
align: 'left',
|
|
30
30
|
width: 40,
|
|
31
|
-
valueGetter:
|
|
32
|
-
const
|
|
33
|
-
|
|
31
|
+
valueGetter: (value, row, column, apiRef) => {
|
|
32
|
+
const rowId = apiRef.current.getRowId(row);
|
|
33
|
+
const expandedRowIds = (0, _gridDetailPanelSelector.gridDetailPanelExpandedRowIdsSelector)(apiRef.current.state);
|
|
34
|
+
return expandedRowIds.includes(rowId);
|
|
34
35
|
},
|
|
35
36
|
renderCell: params => /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridDetailPanelToggleCell.GridDetailPanelToggleCell, (0, _extends2.default)({}, params)),
|
|
36
37
|
renderHeader: () => null
|
|
@@ -18,7 +18,11 @@ const GRID_TREE_DATA_GROUPING_COL_DEF = exports.GRID_TREE_DATA_GROUPING_COL_DEF
|
|
|
18
18
|
disableReorder: true,
|
|
19
19
|
align: 'left',
|
|
20
20
|
width: 200,
|
|
21
|
-
valueGetter:
|
|
21
|
+
valueGetter: (value, row, column, apiRef) => {
|
|
22
|
+
const rowId = apiRef.current.getRowId(row);
|
|
23
|
+
const rowNode = apiRef.current.getRowNode(rowId);
|
|
24
|
+
return rowNode?.type === 'group' || rowNode?.type === 'leaf' ? rowNode.groupingKey : undefined;
|
|
25
|
+
}
|
|
22
26
|
});
|
|
23
27
|
const GRID_TREE_DATA_GROUPING_FIELD = exports.GRID_TREE_DATA_GROUPING_FIELD = '__tree_data_group__';
|
|
24
28
|
const GRID_TREE_DATA_GROUPING_COL_DEF_FORCED_PROPERTIES = exports.GRID_TREE_DATA_GROUPING_COL_DEF_FORCED_PROPERTIES = {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { DataGridProProcessedProps } from '../../models/dataGridProProps';
|
|
1
|
+
import type { DataGridProProcessedProps } from '../../models/dataGridProProps';
|
|
2
2
|
export declare const useGridRootProps: () => DataGridProProcessedProps;
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import './typeOverloads';
|
|
2
|
-
|
|
2
|
+
import { LicenseInfo as LicenseInfoExport } from '@mui/x-license';
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Use `@mui/x-license` package instead:
|
|
5
|
+
* @example import { LicenseInfo } from '@mui/x-license';
|
|
6
|
+
*/
|
|
7
|
+
export declare class LicenseInfo extends LicenseInfoExport {
|
|
8
|
+
}
|
|
3
9
|
export * from '@mui/x-data-grid/components';
|
|
4
10
|
export * from '@mui/x-data-grid/constants';
|
|
5
11
|
export * from '@mui/x-data-grid/hooks';
|
package/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @mui/x-data-grid-pro v7.0.0-beta.
|
|
2
|
+
* @mui/x-data-grid-pro v7.0.0-beta.2
|
|
3
3
|
*
|
|
4
4
|
* @license MUI X Commercial
|
|
5
5
|
* This source code is licensed under the commercial license found in the
|
|
@@ -44,12 +44,7 @@ Object.defineProperty(exports, "GridColumnMenu", {
|
|
|
44
44
|
return _reexports2.GridColumnMenu;
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
|
-
|
|
48
|
-
enumerable: true,
|
|
49
|
-
get: function () {
|
|
50
|
-
return _xLicensePro.LicenseInfo;
|
|
51
|
-
}
|
|
52
|
-
});
|
|
47
|
+
exports.LicenseInfo = void 0;
|
|
53
48
|
Object.defineProperty(exports, "useGridApiContext", {
|
|
54
49
|
enumerable: true,
|
|
55
50
|
get: function () {
|
|
@@ -69,7 +64,7 @@ Object.defineProperty(exports, "useGridRootProps", {
|
|
|
69
64
|
}
|
|
70
65
|
});
|
|
71
66
|
require("./typeOverloads");
|
|
72
|
-
var
|
|
67
|
+
var _xLicense = require("@mui/x-license");
|
|
73
68
|
var _components = require("@mui/x-data-grid/components");
|
|
74
69
|
Object.keys(_components).forEach(function (key) {
|
|
75
70
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -216,4 +211,10 @@ Object.keys(_utils2).forEach(function (key) {
|
|
|
216
211
|
});
|
|
217
212
|
var _reexports = require("./typeOverloads/reexports");
|
|
218
213
|
var _reexports2 = require("./components/reexports");
|
|
219
|
-
var _GridColumnHeaders = require("./components/GridColumnHeaders");
|
|
214
|
+
var _GridColumnHeaders = require("./components/GridColumnHeaders");
|
|
215
|
+
/**
|
|
216
|
+
* @deprecated Use `@mui/x-license` package instead:
|
|
217
|
+
* @example import { LicenseInfo } from '@mui/x-license';
|
|
218
|
+
*/
|
|
219
|
+
class LicenseInfo extends _xLicense.LicenseInfo {}
|
|
220
|
+
exports.LicenseInfo = LicenseInfo;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import { useLicenseVerifier, Watermark } from '@mui/x-license
|
|
4
|
+
import { useLicenseVerifier, Watermark } from '@mui/x-license';
|
|
5
5
|
import { GridBody, GridFooterPlaceholder, GridHeader, GridRoot, GridContextProvider } from '@mui/x-data-grid';
|
|
6
6
|
import { validateProps } from '@mui/x-data-grid/internals';
|
|
7
7
|
import { useDataGridProComponent } from './useDataGridProComponent';
|
|
@@ -427,7 +427,7 @@ DataGridProRaw.propTypes = {
|
|
|
427
427
|
loading: PropTypes.bool,
|
|
428
428
|
/**
|
|
429
429
|
* Set the locale text of the Data Grid.
|
|
430
|
-
* You can find all the translation keys supported in [the source](https://github.com/mui/mui-x/blob/HEAD/packages/
|
|
430
|
+
* You can find all the translation keys supported in [the source](https://github.com/mui/mui-x/blob/HEAD/packages/x-data-grid/src/constants/localeTextConstants.ts) in the GitHub repository.
|
|
431
431
|
*/
|
|
432
432
|
localeText: PropTypes.object,
|
|
433
433
|
/**
|
|
@@ -64,7 +64,7 @@ export var useDataGridProComponent = function useDataGridProComponent(inputApiRe
|
|
|
64
64
|
useGridRowPinning(apiRef, props);
|
|
65
65
|
useGridColumns(apiRef, props);
|
|
66
66
|
useGridRows(apiRef, props);
|
|
67
|
-
useGridParamsApi(apiRef
|
|
67
|
+
useGridParamsApi(apiRef);
|
|
68
68
|
useGridDetailPanel(apiRef, props);
|
|
69
69
|
useGridColumnSpanning(apiRef);
|
|
70
70
|
useGridColumnGrouping(apiRef, props);
|
|
@@ -27,7 +27,9 @@ export var DATA_GRID_PRO_PROPS_DEFAULT_VALUES = _extends({}, DATA_GRID_PROPS_DEF
|
|
|
27
27
|
});
|
|
28
28
|
var defaultSlots = DATA_GRID_PRO_DEFAULT_SLOTS_COMPONENTS;
|
|
29
29
|
export var useDataGridProProps = function useDataGridProProps(inProps) {
|
|
30
|
-
var themedProps = useProps(
|
|
30
|
+
var themedProps = useProps(
|
|
31
|
+
// eslint-disable-next-line material-ui/mui-name-matches-component-name
|
|
32
|
+
useThemeProps({
|
|
31
33
|
props: inProps,
|
|
32
34
|
name: 'MuiDataGrid'
|
|
33
35
|
}));
|
|
@@ -37,12 +37,14 @@ function GridHeaderFilterMenuContainer(props) {
|
|
|
37
37
|
if (!rootProps.slots.headerFilterMenu) {
|
|
38
38
|
return null;
|
|
39
39
|
}
|
|
40
|
+
var label = apiRef.current.getLocaleText('filterPanelOperator');
|
|
41
|
+
var labelString = label ? String(label) : undefined;
|
|
40
42
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
41
43
|
children: [/*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
|
|
42
44
|
id: buttonId,
|
|
43
45
|
ref: buttonRef,
|
|
44
|
-
"aria-label":
|
|
45
|
-
title:
|
|
46
|
+
"aria-label": labelString,
|
|
47
|
+
title: labelString,
|
|
46
48
|
"aria-controls": menuId,
|
|
47
49
|
"aria-expanded": open ? 'true' : undefined,
|
|
48
50
|
"aria-haspopup": "true",
|
|
@@ -190,7 +190,7 @@ export var useGridColumnReorder = function useGridColumnReorder(apiRef, props) {
|
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
if (forbiddenIndexes.current[indexWithOffset] || allColumns[indexWithOffset].field === nextVisibleColumnField) {
|
|
193
|
-
// If we ended up on a visible column, or a forbidden one, we
|
|
193
|
+
// If we ended up on a visible column, or a forbidden one, we cannot do the reorder
|
|
194
194
|
canBeReordered = false;
|
|
195
195
|
}
|
|
196
196
|
}
|
|
@@ -19,9 +19,10 @@ export var GRID_DETAIL_PANEL_TOGGLE_COL_DEF = _extends({}, GRID_STRING_COL_DEF,
|
|
|
19
19
|
disableExport: true,
|
|
20
20
|
align: 'left',
|
|
21
21
|
width: 40,
|
|
22
|
-
valueGetter: function valueGetter(
|
|
23
|
-
var
|
|
24
|
-
|
|
22
|
+
valueGetter: function valueGetter(value, row, column, apiRef) {
|
|
23
|
+
var rowId = apiRef.current.getRowId(row);
|
|
24
|
+
var expandedRowIds = gridDetailPanelExpandedRowIdsSelector(apiRef.current.state);
|
|
25
|
+
return expandedRowIds.includes(rowId);
|
|
25
26
|
},
|
|
26
27
|
renderCell: function renderCell(params) {
|
|
27
28
|
return /*#__PURE__*/_jsx(GridDetailPanelToggleCell, _extends({}, params));
|
|
@@ -12,8 +12,10 @@ export var GRID_TREE_DATA_GROUPING_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
|
|
|
12
12
|
disableReorder: true,
|
|
13
13
|
align: 'left',
|
|
14
14
|
width: 200,
|
|
15
|
-
valueGetter: function valueGetter(
|
|
16
|
-
|
|
15
|
+
valueGetter: function valueGetter(value, row, column, apiRef) {
|
|
16
|
+
var rowId = apiRef.current.getRowId(row);
|
|
17
|
+
var rowNode = apiRef.current.getRowNode(rowId);
|
|
18
|
+
return (rowNode == null ? void 0 : rowNode.type) === 'group' || (rowNode == null ? void 0 : rowNode.type) === 'leaf' ? rowNode.groupingKey : undefined;
|
|
17
19
|
}
|
|
18
20
|
});
|
|
19
21
|
export var GRID_TREE_DATA_GROUPING_FIELD = '__tree_data_group__';
|
package/legacy/index.js
CHANGED
|
@@ -1,12 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @mui/x-data-grid-pro v7.0.0-beta.
|
|
2
|
+
* @mui/x-data-grid-pro v7.0.0-beta.2
|
|
3
3
|
*
|
|
4
4
|
* @license MUI X Commercial
|
|
5
5
|
* This source code is licensed under the commercial license found in the
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
9
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
10
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
11
|
+
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
12
|
+
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
13
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
14
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
8
15
|
import './typeOverloads';
|
|
9
|
-
|
|
16
|
+
import { LicenseInfo as LicenseInfoExport } from '@mui/x-license';
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated Use `@mui/x-license` package instead:
|
|
19
|
+
* @example import { LicenseInfo } from '@mui/x-license';
|
|
20
|
+
*/
|
|
21
|
+
export var LicenseInfo = /*#__PURE__*/function (_LicenseInfoExport) {
|
|
22
|
+
_inherits(LicenseInfo, _LicenseInfoExport);
|
|
23
|
+
function LicenseInfo() {
|
|
24
|
+
_classCallCheck(this, LicenseInfo);
|
|
25
|
+
return _callSuper(this, LicenseInfo, arguments);
|
|
26
|
+
}
|
|
27
|
+
return _createClass(LicenseInfo);
|
|
28
|
+
}(LicenseInfoExport);
|
|
10
29
|
export * from '@mui/x-data-grid/components';
|
|
11
30
|
export * from '@mui/x-data-grid/constants';
|
|
12
31
|
export * from '@mui/x-data-grid/hooks';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ponyfillGlobal } from '@mui/utils';
|
|
2
2
|
export var getReleaseInfo = function getReleaseInfo() {
|
|
3
|
-
var releaseInfo = "
|
|
3
|
+
var releaseInfo = "MTcwNzQyOTYwMDAwMA==";
|
|
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
|
|
@@ -7,7 +7,7 @@ import { GridGroupingColDefOverride, GridGroupingColDefOverrideParams } from './
|
|
|
7
7
|
import { GridInitialStatePro } from './gridStatePro';
|
|
8
8
|
import { GridProSlotsComponent } from './gridProSlotsComponent';
|
|
9
9
|
import type { GridProSlotProps } from './gridProSlotProps';
|
|
10
|
-
import { GridAutosizeOptions } from '../hooks';
|
|
10
|
+
import type { GridAutosizeOptions } from '../hooks';
|
|
11
11
|
export interface GridExperimentalProFeatures extends GridExperimentalFeatures {
|
|
12
12
|
/**
|
|
13
13
|
* Enables the data grid to lazy load rows while scrolling.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import { useLicenseVerifier, Watermark } from '@mui/x-license
|
|
4
|
+
import { useLicenseVerifier, Watermark } from '@mui/x-license';
|
|
5
5
|
import { GridBody, GridFooterPlaceholder, GridHeader, GridRoot, GridContextProvider } from '@mui/x-data-grid';
|
|
6
6
|
import { validateProps } from '@mui/x-data-grid/internals';
|
|
7
7
|
import { useDataGridProComponent } from './useDataGridProComponent';
|
|
@@ -427,7 +427,7 @@ DataGridProRaw.propTypes = {
|
|
|
427
427
|
loading: PropTypes.bool,
|
|
428
428
|
/**
|
|
429
429
|
* Set the locale text of the Data Grid.
|
|
430
|
-
* You can find all the translation keys supported in [the source](https://github.com/mui/mui-x/blob/HEAD/packages/
|
|
430
|
+
* You can find all the translation keys supported in [the source](https://github.com/mui/mui-x/blob/HEAD/packages/x-data-grid/src/constants/localeTextConstants.ts) in the GitHub repository.
|
|
431
431
|
*/
|
|
432
432
|
localeText: PropTypes.object,
|
|
433
433
|
/**
|
|
@@ -64,7 +64,7 @@ export const useDataGridProComponent = (inputApiRef, props) => {
|
|
|
64
64
|
useGridRowPinning(apiRef, props);
|
|
65
65
|
useGridColumns(apiRef, props);
|
|
66
66
|
useGridRows(apiRef, props);
|
|
67
|
-
useGridParamsApi(apiRef
|
|
67
|
+
useGridParamsApi(apiRef);
|
|
68
68
|
useGridDetailPanel(apiRef, props);
|
|
69
69
|
useGridColumnSpanning(apiRef);
|
|
70
70
|
useGridColumnGrouping(apiRef, props);
|
|
@@ -25,7 +25,9 @@ export const DATA_GRID_PRO_PROPS_DEFAULT_VALUES = _extends({}, DATA_GRID_PROPS_D
|
|
|
25
25
|
});
|
|
26
26
|
const defaultSlots = DATA_GRID_PRO_DEFAULT_SLOTS_COMPONENTS;
|
|
27
27
|
export const useDataGridProProps = inProps => {
|
|
28
|
-
const themedProps = useProps(
|
|
28
|
+
const themedProps = useProps(
|
|
29
|
+
// eslint-disable-next-line material-ui/mui-name-matches-component-name
|
|
30
|
+
useThemeProps({
|
|
29
31
|
props: inProps,
|
|
30
32
|
name: 'MuiDataGrid'
|
|
31
33
|
}));
|
|
@@ -37,12 +37,14 @@ function GridHeaderFilterMenuContainer(props) {
|
|
|
37
37
|
if (!rootProps.slots.headerFilterMenu) {
|
|
38
38
|
return null;
|
|
39
39
|
}
|
|
40
|
+
const label = apiRef.current.getLocaleText('filterPanelOperator');
|
|
41
|
+
const labelString = label ? String(label) : undefined;
|
|
40
42
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
41
43
|
children: [/*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
|
|
42
44
|
id: buttonId,
|
|
43
45
|
ref: buttonRef,
|
|
44
|
-
"aria-label":
|
|
45
|
-
title:
|
|
46
|
+
"aria-label": labelString,
|
|
47
|
+
title: labelString,
|
|
46
48
|
"aria-controls": menuId,
|
|
47
49
|
"aria-expanded": open ? 'true' : undefined,
|
|
48
50
|
"aria-haspopup": "true",
|
|
@@ -181,7 +181,7 @@ export const useGridColumnReorder = (apiRef, props) => {
|
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
183
|
if (forbiddenIndexes.current[indexWithOffset] || allColumns[indexWithOffset].field === nextVisibleColumnField) {
|
|
184
|
-
// If we ended up on a visible column, or a forbidden one, we
|
|
184
|
+
// If we ended up on a visible column, or a forbidden one, we cannot do the reorder
|
|
185
185
|
canBeReordered = false;
|
|
186
186
|
}
|
|
187
187
|
}
|
|
@@ -19,9 +19,10 @@ export const GRID_DETAIL_PANEL_TOGGLE_COL_DEF = _extends({}, GRID_STRING_COL_DEF
|
|
|
19
19
|
disableExport: true,
|
|
20
20
|
align: 'left',
|
|
21
21
|
width: 40,
|
|
22
|
-
valueGetter:
|
|
23
|
-
const
|
|
24
|
-
|
|
22
|
+
valueGetter: (value, row, column, apiRef) => {
|
|
23
|
+
const rowId = apiRef.current.getRowId(row);
|
|
24
|
+
const expandedRowIds = gridDetailPanelExpandedRowIdsSelector(apiRef.current.state);
|
|
25
|
+
return expandedRowIds.includes(rowId);
|
|
25
26
|
},
|
|
26
27
|
renderCell: params => /*#__PURE__*/_jsx(GridDetailPanelToggleCell, _extends({}, params)),
|
|
27
28
|
renderHeader: () => null
|
|
@@ -12,7 +12,11 @@ export const GRID_TREE_DATA_GROUPING_COL_DEF = _extends({}, GRID_STRING_COL_DEF,
|
|
|
12
12
|
disableReorder: true,
|
|
13
13
|
align: 'left',
|
|
14
14
|
width: 200,
|
|
15
|
-
valueGetter:
|
|
15
|
+
valueGetter: (value, row, column, apiRef) => {
|
|
16
|
+
const rowId = apiRef.current.getRowId(row);
|
|
17
|
+
const rowNode = apiRef.current.getRowNode(rowId);
|
|
18
|
+
return rowNode?.type === 'group' || rowNode?.type === 'leaf' ? rowNode.groupingKey : undefined;
|
|
19
|
+
}
|
|
16
20
|
});
|
|
17
21
|
export const GRID_TREE_DATA_GROUPING_FIELD = '__tree_data_group__';
|
|
18
22
|
export const GRID_TREE_DATA_GROUPING_COL_DEF_FORCED_PROPERTIES = {
|
package/modern/index.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @mui/x-data-grid-pro v7.0.0-beta.
|
|
2
|
+
* @mui/x-data-grid-pro v7.0.0-beta.2
|
|
3
3
|
*
|
|
4
4
|
* @license MUI X Commercial
|
|
5
5
|
* This source code is licensed under the commercial license found in the
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
8
|
import './typeOverloads';
|
|
9
|
-
|
|
9
|
+
import { LicenseInfo as LicenseInfoExport } from '@mui/x-license';
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated Use `@mui/x-license` package instead:
|
|
12
|
+
* @example import { LicenseInfo } from '@mui/x-license';
|
|
13
|
+
*/
|
|
14
|
+
export class LicenseInfo extends LicenseInfoExport {}
|
|
10
15
|
export * from '@mui/x-data-grid/components';
|
|
11
16
|
export * from '@mui/x-data-grid/constants';
|
|
12
17
|
export * from '@mui/x-data-grid/hooks';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ponyfillGlobal } from '@mui/utils';
|
|
2
2
|
export const getReleaseInfo = () => {
|
|
3
|
-
const releaseInfo = "
|
|
3
|
+
const releaseInfo = "MTcwNzQyOTYwMDAwMA==";
|
|
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-pro",
|
|
3
|
-
"version": "7.0.0-beta.
|
|
3
|
+
"version": "7.0.0-beta.2",
|
|
4
4
|
"description": "The Pro plan edition of the data grid component (MUI X).",
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -29,14 +29,14 @@
|
|
|
29
29
|
"repository": {
|
|
30
30
|
"type": "git",
|
|
31
31
|
"url": "https://github.com/mui/mui-x.git",
|
|
32
|
-
"directory": "packages/
|
|
32
|
+
"directory": "packages/x-data-grid-pro"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@babel/runtime": "^7.23.
|
|
36
|
-
"@mui/system": "^5.15.
|
|
37
|
-
"@mui/utils": "^5.15.
|
|
38
|
-
"@mui/x-data-grid": "7.0.0-beta.
|
|
39
|
-
"@mui/x-license
|
|
35
|
+
"@babel/runtime": "^7.23.9",
|
|
36
|
+
"@mui/system": "^5.15.7",
|
|
37
|
+
"@mui/utils": "^5.15.7",
|
|
38
|
+
"@mui/x-data-grid": "7.0.0-beta.2",
|
|
39
|
+
"@mui/x-license": "7.0.0-beta.2",
|
|
40
40
|
"@types/format-util": "^1.0.4",
|
|
41
41
|
"clsx": "^2.1.0",
|
|
42
42
|
"prop-types": "^15.8.1",
|
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 = "MTcwNzQyOTYwMDAwMA==";
|
|
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
|