@mui/x-data-grid-premium 8.13.1 → 8.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +204 -1
- package/DataGridPremium/DataGridPremium.js +7 -5
- package/DataGridPremium/useDataGridPremiumProps.js +3 -2
- package/components/GridDataSourceGroupingCriteriaCell.js +8 -2
- package/components/GridPremiumToolbar.js +1 -2
- package/components/pivotPanel/GridPivotPanelField.js +4 -4
- package/esm/DataGridPremium/DataGridPremium.js +7 -5
- package/esm/DataGridPremium/useDataGridPremiumProps.js +3 -2
- package/esm/components/GridDataSourceGroupingCriteriaCell.js +9 -3
- package/esm/components/GridPremiumToolbar.js +1 -2
- package/esm/components/pivotPanel/GridPivotPanelField.js +4 -4
- package/esm/hooks/features/aggregation/useGridAggregation.js +3 -2
- package/esm/hooks/features/dataSource/models.d.ts +52 -1
- package/esm/hooks/features/dataSource/useGridDataSourcePremium.js +30 -5
- package/esm/hooks/features/dataSource/utils.d.ts +6 -0
- package/esm/hooks/features/dataSource/utils.js +140 -0
- package/esm/hooks/features/index.d.ts +2 -1
- package/esm/hooks/features/index.js +2 -1
- package/esm/hooks/features/pivoting/gridPivotingInterfaces.d.ts +23 -13
- package/esm/hooks/features/pivoting/gridPivotingSelectors.d.ts +1 -1
- package/esm/hooks/features/pivoting/index.d.ts +1 -0
- package/esm/hooks/features/pivoting/index.js +1 -0
- package/esm/hooks/features/pivoting/useGridPivoting.d.ts +1 -1
- package/esm/hooks/features/pivoting/useGridPivoting.js +83 -32
- package/esm/hooks/features/pivoting/utils.d.ts +7 -9
- package/esm/hooks/features/pivoting/utils.js +39 -24
- package/esm/hooks/features/rowGrouping/createGroupingColDef.js +1 -1
- package/esm/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +7 -3
- package/esm/hooks/features/rowGrouping/useGridRowGrouping.d.ts +1 -1
- package/esm/index.js +1 -1
- package/esm/models/dataGridPremiumProps.d.ts +15 -14
- package/hooks/features/aggregation/useGridAggregation.js +2 -1
- package/hooks/features/dataSource/models.d.ts +52 -1
- package/hooks/features/dataSource/useGridDataSourcePremium.js +29 -4
- package/hooks/features/dataSource/utils.d.ts +6 -0
- package/hooks/features/dataSource/utils.js +148 -0
- package/hooks/features/index.d.ts +2 -1
- package/hooks/features/index.js +11 -0
- package/hooks/features/pivoting/gridPivotingInterfaces.d.ts +23 -13
- package/hooks/features/pivoting/gridPivotingSelectors.d.ts +1 -1
- package/hooks/features/pivoting/index.d.ts +1 -0
- package/hooks/features/pivoting/index.js +12 -0
- package/hooks/features/pivoting/useGridPivoting.d.ts +1 -1
- package/hooks/features/pivoting/useGridPivoting.js +82 -31
- package/hooks/features/pivoting/utils.d.ts +7 -9
- package/hooks/features/pivoting/utils.js +42 -27
- package/hooks/features/rowGrouping/createGroupingColDef.js +1 -1
- package/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +6 -2
- package/hooks/features/rowGrouping/useGridRowGrouping.d.ts +1 -1
- package/index.js +1 -1
- package/models/dataGridPremiumProps.d.ts +15 -14
- package/package.json +6 -7
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,209 @@
|
|
|
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.14.1
|
|
9
|
+
|
|
10
|
+
_Oct 16, 2025_
|
|
11
|
+
|
|
12
|
+
We'd like to extend a big thank you to the 14 contributors who made this release possible. Here are some highlights ✨:
|
|
13
|
+
|
|
14
|
+
- 🚀 Charts have optimized data structures for closest point calculations — initial render times reduced by ~25% for 1,000+ data points, with greater gains at larger scales (#19790) @bernardobelchior
|
|
15
|
+
- 🐞 Bugfixes
|
|
16
|
+
- 📚 Documentation improvements
|
|
17
|
+
|
|
18
|
+
Special thanks go out to the community members for their valuable contributions:
|
|
19
|
+
@djpremier, @jacknot, @justdoit1897, @mellis481, @sai6855
|
|
20
|
+
|
|
21
|
+
The following are all team members who have contributed to this release:
|
|
22
|
+
@arminmeh, @bernardobelchior, @brijeshb42, @cherniavskii, @flaviendelangle, @Janpot, @JCQuintas, @noraleonte, @siriwatknp
|
|
23
|
+
|
|
24
|
+
### Data Grid
|
|
25
|
+
|
|
26
|
+
#### `@mui/x-data-grid@8.14.1`
|
|
27
|
+
|
|
28
|
+
- [DataGrid] Fix cell not rerendering on `isCellEditable` prop change (#19898) @cherniavskii
|
|
29
|
+
- [DataGrid] Fix virtualizer memory leaks (#19886) @cherniavskii
|
|
30
|
+
- [DataGrid] Fix tree data unable to deselect row for exclude model (#19846) @siriwatknp
|
|
31
|
+
- [l10n] Improve Italian (it-IT) locale (#19322) @jacknot and (#19940) @justdoit1897
|
|
32
|
+
|
|
33
|
+
#### `@mui/x-data-grid-pro@8.14.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
34
|
+
|
|
35
|
+
Same changes as in `@mui/x-data-grid@8.14.1`, plus:
|
|
36
|
+
|
|
37
|
+
- [DataGridPro] Clear cache before new request to the nested request queue after a row has been edited (#19873) @arminmeh
|
|
38
|
+
|
|
39
|
+
#### `@mui/x-data-grid-premium@8.14.1` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
40
|
+
|
|
41
|
+
Same changes as in `@mui/x-data-grid-pro@8.14.1`.
|
|
42
|
+
|
|
43
|
+
### Date and Time Pickers
|
|
44
|
+
|
|
45
|
+
#### `@mui/x-date-pickers@8.14.1`
|
|
46
|
+
|
|
47
|
+
Internal changes.
|
|
48
|
+
|
|
49
|
+
#### `@mui/x-date-pickers-pro@8.14.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
50
|
+
|
|
51
|
+
Same changes as in `@mui/x-date-pickers@8.14.1`.
|
|
52
|
+
|
|
53
|
+
### Charts
|
|
54
|
+
|
|
55
|
+
#### `@mui/x-charts@8.14.1`
|
|
56
|
+
|
|
57
|
+
- [charts] Fix `minBarSize` when y-axis is reversed (#19932) @bernardobelchior
|
|
58
|
+
- [charts] Fix bar chart border radius when axis is reversed (#19895) @bernardobelchior
|
|
59
|
+
- [charts] Fix scatter chart `datasetKeys.id` not being optional (#19897) @bernardobelchior
|
|
60
|
+
- [charts] Use more performant data structure for closest point (#19790) @bernardobelchior
|
|
61
|
+
- [charts] Fix `GaugeValueArc` having wrong class (#19965) @bernardobelchior
|
|
62
|
+
- [charts] Fix `undefined` path when highlight empty line chart axis (#19969) @bernardobelchior
|
|
63
|
+
|
|
64
|
+
#### `@mui/x-charts-pro@8.14.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
65
|
+
|
|
66
|
+
Same changes as in `@mui/x-charts@8.14.1`, plus:
|
|
67
|
+
|
|
68
|
+
- [charts-pro] Add `highlighting` to Sankey chart (#19662) @JCQuintas
|
|
69
|
+
|
|
70
|
+
#### `@mui/x-charts-premium@8.14.1` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
71
|
+
|
|
72
|
+
Same changes as in `@mui/x-charts-pro@8.14.1`.
|
|
73
|
+
|
|
74
|
+
### Tree View
|
|
75
|
+
|
|
76
|
+
#### `@mui/x-tree-view@8.14.1`
|
|
77
|
+
|
|
78
|
+
- [tree view] Do not forward the `ownerState` to the icon (#19772) @flaviendelangle
|
|
79
|
+
|
|
80
|
+
#### `@mui/x-tree-view-pro@8.14.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
81
|
+
|
|
82
|
+
Same changes as in `@mui/x-tree-view@8.14.1`.
|
|
83
|
+
|
|
84
|
+
### Codemod
|
|
85
|
+
|
|
86
|
+
#### `@mui/x-codemod@8.14.0`
|
|
87
|
+
|
|
88
|
+
Internal changes.
|
|
89
|
+
|
|
90
|
+
### Docs
|
|
91
|
+
|
|
92
|
+
- [docs] Add `'bumpX'` and `'bumpY'` curve types to the interpolation demo (#19676) @djpremier
|
|
93
|
+
- [docs] Add scatter chart with linear regression demo (#19900) @bernardobelchior
|
|
94
|
+
- [docs] Correctly describe Data Grid's row selection behavior (#19968) @arminmeh
|
|
95
|
+
- [docs] Fix `isExpanded` type in tree view docs (#19092) @mellis481
|
|
96
|
+
|
|
97
|
+
### Core
|
|
98
|
+
|
|
99
|
+
- [code-infra] Disable Netlify cache plugin (#19950) @Janpot
|
|
100
|
+
- [code-infra] Lint json through eslint (#19890) @Janpot
|
|
101
|
+
- [docs-infra] Use published netlify cache plugin package (#19929) @brijeshb42
|
|
102
|
+
|
|
103
|
+
## 8.14.0
|
|
104
|
+
|
|
105
|
+
_Oct 9, 2025_
|
|
106
|
+
|
|
107
|
+
We'd like to extend a big thank you to the 14 contributors who made this release possible. Here are some highlights ✨:
|
|
108
|
+
|
|
109
|
+
- 📊 The [Chart zoom now supports the `pressAndDrag` gesture](https://mui.com/x/react-charts/zoom-and-pan/#zoom-interactions-configuration). Pan by pressing and dragging.
|
|
110
|
+
- 🔄 [Server-side pivoting](https://mui.com/x/react-data-grid/server-side-data/pivoting/) support for the Data Grid
|
|
111
|
+
- 🐞 Bugfixes
|
|
112
|
+
- 📚 Documentation improvements
|
|
113
|
+
|
|
114
|
+
Special thanks go out to the community members for their valuable contributions:
|
|
115
|
+
@djpremier, @Utkarsh-0304
|
|
116
|
+
|
|
117
|
+
The following are all team members who have contributed to this release:
|
|
118
|
+
@alexfauquette, @bernardobelchior, @flaviendelangle, @hasdfa, @Janpot, @JCQuintas, @prakhargupta1, @rita-codes, @noraleonte, @brijeshb42, @arminmeh, @michelengelen
|
|
119
|
+
|
|
120
|
+
### Data Grid
|
|
121
|
+
|
|
122
|
+
#### `@mui/x-data-grid@8.14.0`
|
|
123
|
+
|
|
124
|
+
- [l10n] Improve Brazilian Portuguese (pt-BR) locale (#19658) @djpremier
|
|
125
|
+
|
|
126
|
+
#### `@mui/x-data-grid-pro@8.14.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
127
|
+
|
|
128
|
+
Same changes as in `@mui/x-data-grid@8.14.0`.
|
|
129
|
+
|
|
130
|
+
#### `@mui/x-data-grid-premium@8.14.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
131
|
+
|
|
132
|
+
Same changes as in `@mui/x-data-grid-pro@8.14.0`, plus:
|
|
133
|
+
|
|
134
|
+
- [DataGridPremium] Server-side pivoting (#19575) @arminmeh
|
|
135
|
+
|
|
136
|
+
### Date and Time Pickers
|
|
137
|
+
|
|
138
|
+
#### `@mui/x-date-pickers@8.14.0`
|
|
139
|
+
|
|
140
|
+
- [pickers] Fixed the extra element for the disabled date picker (#19387) @Utkarsh-0304
|
|
141
|
+
- [pickers] Fix input `autoCapitalize` value for Firefox compatibility (#19285) @michelengelen
|
|
142
|
+
- [l10n] Improve Brazilian Portuguese (pt-BR) locale (#19658) @djpremier
|
|
143
|
+
|
|
144
|
+
#### `@mui/x-date-pickers-pro@8.14.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
145
|
+
|
|
146
|
+
Same changes as in `@mui/x-date-pickers@8.14.0`.
|
|
147
|
+
|
|
148
|
+
### Charts
|
|
149
|
+
|
|
150
|
+
#### `@mui/x-charts@8.14.0`
|
|
151
|
+
|
|
152
|
+
- [charts] Add `pressAndDrag` pan gesture (#19779) @JCQuintas
|
|
153
|
+
- [charts] Allow `minPointers` and `maxPointers` to be configured by pointer type (#19794) @JCQuintas
|
|
154
|
+
- [charts] Correct scale domain types (#19844) @bernardobelchior
|
|
155
|
+
- [charts] Fix tooltip position when scrolling (#19857) @alexfauquette
|
|
156
|
+
- [charts] Link item highlight with keyboard navigation (#19768) @alexfauquette
|
|
157
|
+
- [charts] Refactor domain/scale selectors (#19832) @bernardobelchior
|
|
158
|
+
- [charts] Remove min/max from ordinal configuration (#19789) @alexfauquette
|
|
159
|
+
- [charts] Simplify axes filters selectors (#19833) @bernardobelchior
|
|
160
|
+
- [l10n] Improve Brazilian Portuguese (pt-BR) locale (#19658) @djpremier
|
|
161
|
+
|
|
162
|
+
#### `@mui/x-charts-pro@8.14.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
163
|
+
|
|
164
|
+
Same changes as in `@mui/x-charts@8.14.0`.
|
|
165
|
+
|
|
166
|
+
#### `@mui/x-charts-premium@8.14.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
167
|
+
|
|
168
|
+
Same changes as in `@mui/x-charts-pro@8.14.0`.
|
|
169
|
+
|
|
170
|
+
### Tree View
|
|
171
|
+
|
|
172
|
+
#### `@mui/x-tree-view@8.14.0`
|
|
173
|
+
|
|
174
|
+
- [tree view] Fix Tree View tooltip anchoring on overview page (#19806) @noraleonte
|
|
175
|
+
|
|
176
|
+
#### `@mui/x-tree-view-pro@8.14.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
177
|
+
|
|
178
|
+
Same changes as in `@mui/x-tree-view@8.14.0`.
|
|
179
|
+
|
|
180
|
+
### Codemod
|
|
181
|
+
|
|
182
|
+
#### `@mui/x-codemod@8.14.0`
|
|
183
|
+
|
|
184
|
+
Internal changes.
|
|
185
|
+
|
|
186
|
+
### Docs
|
|
187
|
+
|
|
188
|
+
- [docs] Add overview section for pie chart (#19672) @prakhargupta1
|
|
189
|
+
- [docs] Fix demo title knob keys (#19843) @JCQuintas
|
|
190
|
+
- [docs] Hide UI elements of unsupported features in the data source demos (#19849) @arminmeh
|
|
191
|
+
|
|
192
|
+
### Core
|
|
193
|
+
|
|
194
|
+
- [code-infra] Cleanup unused dependencies (#19788) @brijeshb42
|
|
195
|
+
- [code-infra] Fix pnpm-lock issue (#19861) @JCQuintas
|
|
196
|
+
- [code-infra] Improve publishing docs (#19404) @Janpot
|
|
197
|
+
- [code-infra] Remove tsconfig `baseUrl` (#19837) @Janpot
|
|
198
|
+
- [code-infra] Support custom npm dist tags during release (#19803) @Janpot
|
|
199
|
+
- [code-infra] Wait longer for print dialog (#19795) @JCQuintas
|
|
200
|
+
- [code-infra] Replace `lodash` with `es-toolkit` (#19853) @bernardobelchior
|
|
201
|
+
- [code-infra] Update release script PR checklist (#19785) @bernardobelchior
|
|
202
|
+
- [code-infra] Remove remaining usages of `lodash` (#19864) @bernardobelchior
|
|
203
|
+
- [docs-infra] Add `title` knob (#19792) @JCQuintas
|
|
204
|
+
- [docs-infra] Fix missing key in title knob (#19804) @JCQuintas
|
|
205
|
+
|
|
206
|
+
### Miscellaneous
|
|
207
|
+
|
|
208
|
+
- [x-telemetry] Fix transpile issues (#19761) @hasdfa
|
|
209
|
+
- [x-telemetry] Fix ref to deleted file (#19842) @JCQuintas
|
|
210
|
+
|
|
8
211
|
## 8.13.1
|
|
9
212
|
|
|
10
213
|
_Oct 1, 2025_
|
|
@@ -222,7 +425,7 @@ We'd like to extend a big thank you to the 15 contributors who made this release
|
|
|
222
425
|
|
|
223
426
|

|
|
224
427
|
|
|
225
|
-
|
|
428
|
+
👉 [🎥 Watch the full video](https://github.com/user-attachments/assets/28f1848e-dc85-4077-8756-a3e88afd4e54)
|
|
226
429
|
|
|
227
430
|
- ⌨️ Charts keyboard navigation
|
|
228
431
|
- ⚡️ Charts: Add new `renderer="svg-batch"` prop to Scatter charts that provides improved performance for large datasets
|
|
@@ -48,7 +48,7 @@ const configuration = {
|
|
|
48
48
|
useGridParamsOverridableMethods: _useGridParamsOverridableMethods.useGridParamsOverridableMethods
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
|
-
const releaseInfo = "
|
|
51
|
+
const releaseInfo = "MTc2MDU3MjgwMDAwMA==";
|
|
52
52
|
const watermark = /*#__PURE__*/(0, _jsxRuntime.jsx)(_xLicense.Watermark, {
|
|
53
53
|
packageName: "x-data-grid-premium",
|
|
54
54
|
releaseInfo: releaseInfo
|
|
@@ -493,7 +493,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
493
493
|
* @param {GridColDef} column The column to generate derived columns for.
|
|
494
494
|
* @param {GridLocaleTextApi['getLocaleText']} getLocaleText The function to get the locale text.
|
|
495
495
|
* @returns {GridColDef[] | undefined} The derived columns.
|
|
496
|
-
* @default {defaultGetPivotDerivedColumns} Creates year and quarter columns for date columns.
|
|
496
|
+
* @default {defaultGetPivotDerivedColumns | undefined} Creates year and quarter columns for date columns if not in server side mode.
|
|
497
497
|
*/
|
|
498
498
|
getPivotDerivedColumns: _propTypes.default.func,
|
|
499
499
|
/**
|
|
@@ -1118,16 +1118,18 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
1118
1118
|
pivotActive: _propTypes.default.bool,
|
|
1119
1119
|
/**
|
|
1120
1120
|
* The column definition overrides for the columns generated by the pivoting feature.
|
|
1121
|
-
*
|
|
1122
|
-
*
|
|
1123
|
-
* @
|
|
1121
|
+
* Pass either a partial column definition to apply the same overrides to all pivot columns, or a callback to apply different overrides to each pivot column.
|
|
1122
|
+
* For server-side pivoting, only the `PivotingColDefCallback` signature is supported, and the prop is required.
|
|
1123
|
+
* @type {Partial<GridPivotingColDefOverrides> | PivotingColDefCallback}
|
|
1124
1124
|
* @default undefined
|
|
1125
|
+
* @throws {Error} If `undefined` and `dataSource` is provided.
|
|
1125
1126
|
*/
|
|
1126
1127
|
pivotingColDef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.shape({
|
|
1127
1128
|
align: _propTypes.default.oneOf(['center', 'left', 'right']),
|
|
1128
1129
|
cellClassName: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.string]),
|
|
1129
1130
|
description: _propTypes.default.string,
|
|
1130
1131
|
display: _propTypes.default.oneOf(['flex', 'text']),
|
|
1132
|
+
field: _propTypes.default.string,
|
|
1131
1133
|
flex: _propTypes.default.number,
|
|
1132
1134
|
headerAlign: _propTypes.default.oneOf(['center', 'left', 'right']),
|
|
1133
1135
|
headerClassName: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.string]),
|
|
@@ -43,7 +43,6 @@ const DATA_GRID_PREMIUM_PROPS_DEFAULT_VALUES = exports.DATA_GRID_PREMIUM_PROPS_D
|
|
|
43
43
|
return text.split(/\r\n|\n|\r/).map(row => row.split(delimiter));
|
|
44
44
|
},
|
|
45
45
|
disablePivoting: false,
|
|
46
|
-
getPivotDerivedColumns: _utils.defaultGetPivotDerivedColumns,
|
|
47
46
|
aiAssistant: false,
|
|
48
47
|
chartsIntegration: false
|
|
49
48
|
});
|
|
@@ -62,7 +61,9 @@ const useDataGridPremiumProps = inProps => {
|
|
|
62
61
|
}), [themedProps.slots]);
|
|
63
62
|
return React.useMemo(() => (0, _extends2.default)({}, DATA_GRID_PREMIUM_PROPS_DEFAULT_VALUES, themedProps.dataSource ? {
|
|
64
63
|
aggregationFunctions: {}
|
|
65
|
-
} : {
|
|
64
|
+
} : {
|
|
65
|
+
getPivotDerivedColumns: _utils.defaultGetPivotDerivedColumns
|
|
66
|
+
}, themedProps, {
|
|
66
67
|
localeText,
|
|
67
68
|
slots
|
|
68
69
|
}, getDataGridPremiumForcedProps(themedProps)), [themedProps, localeText, slots]);
|
|
@@ -13,6 +13,7 @@ var _internals = require("@mui/x-data-grid-pro/internals");
|
|
|
13
13
|
var _xDataGridPro = require("@mui/x-data-grid-pro");
|
|
14
14
|
var _useGridApiContext = require("../hooks/utils/useGridApiContext");
|
|
15
15
|
var _useGridRootProps = require("../hooks/utils/useGridRootProps");
|
|
16
|
+
var _gridRowGroupingSelector = require("../hooks/features/rowGrouping/gridRowGroupingSelector");
|
|
16
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
18
|
const useUtilityClasses = ownerState => {
|
|
18
19
|
const {
|
|
@@ -89,7 +90,12 @@ function GridDataSourceGroupingCriteriaCell(props) {
|
|
|
89
90
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
90
91
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
91
92
|
const row = (0, _xDataGridPro.useGridSelector)(apiRef, _internals.gridRowSelector, id);
|
|
93
|
+
const pivotActive = (0, _xDataGridPro.useGridSelector)(apiRef, _internals.gridPivotActiveSelector);
|
|
94
|
+
const rowGroupingModelLength = (0, _xDataGridPro.useGridSelector)(apiRef, _gridRowGroupingSelector.gridRowGroupingModelSelector).length;
|
|
92
95
|
const classes = useUtilityClasses(rootProps);
|
|
96
|
+
const shouldShowToggleContainer = !pivotActive || rowGroupingModelLength > 1;
|
|
97
|
+
// Do not allow expand/collapse the last grouping criteria cell when in pivot mode
|
|
98
|
+
const shouldShowToggleButton = !pivotActive || rowNode.depth < rowGroupingModelLength - 1;
|
|
93
99
|
let descendantCount = 0;
|
|
94
100
|
if (row) {
|
|
95
101
|
descendantCount = rootProps.dataSource?.getChildrenCount?.(row) ?? 0;
|
|
@@ -112,9 +118,9 @@ function GridDataSourceGroupingCriteriaCell(props) {
|
|
|
112
118
|
style: {
|
|
113
119
|
marginLeft: rootProps.rowGroupingColumnMode === 'multiple' ? 0 : `calc(var(--DataGrid-cellOffsetMultiplier) * ${_internals.vars.spacing(rowNode.depth)})`
|
|
114
120
|
},
|
|
115
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
121
|
+
children: [shouldShowToggleContainer && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
116
122
|
className: classes.toggle,
|
|
117
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(GridGroupingCriteriaCellIcon, {
|
|
123
|
+
children: shouldShowToggleButton && /*#__PURE__*/(0, _jsxRuntime.jsx)(GridGroupingCriteriaCellIcon, {
|
|
118
124
|
id: id,
|
|
119
125
|
field: field,
|
|
120
126
|
rowNode: rowNode,
|
|
@@ -15,7 +15,6 @@ var _export = require("./export");
|
|
|
15
15
|
var _useGridRootProps = require("../hooks/utils/useGridRootProps");
|
|
16
16
|
var _useGridApiContext = require("../hooks/utils/useGridApiContext");
|
|
17
17
|
var _PivotPanelTrigger = require("./pivotPanel/PivotPanelTrigger");
|
|
18
|
-
var _utils = require("../hooks/features/pivoting/utils");
|
|
19
18
|
var _aiAssistantPanel = require("./aiAssistantPanel");
|
|
20
19
|
var _ChartsPanelTrigger = require("./chartsPanel/ChartsPanelTrigger");
|
|
21
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -25,7 +24,7 @@ function GridPremiumToolbar(props) {
|
|
|
25
24
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
26
25
|
const other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
27
26
|
const additionalItems = /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
28
|
-
children: [
|
|
27
|
+
children: [!rootProps.disablePivoting && /*#__PURE__*/(0, _jsxRuntime.jsx)(_PivotPanelTrigger.PivotPanelTrigger, {
|
|
29
28
|
render: (triggerProps, state) => /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, {
|
|
30
29
|
title: apiRef.current.getLocaleText('toolbarPivot'),
|
|
31
30
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_xDataGridPro.ToolbarButton, (0, _extends2.default)({}, triggerProps, {
|
|
@@ -140,8 +140,8 @@ function AggregationSelect({
|
|
|
140
140
|
const availableAggregationFunctions = React.useMemo(() => (0, _gridAggregationUtils.getAvailableAggregationFunctions)({
|
|
141
141
|
aggregationFunctions: rootProps.aggregationFunctions,
|
|
142
142
|
colDef,
|
|
143
|
-
isDataSource:
|
|
144
|
-
}), [colDef, rootProps.aggregationFunctions]);
|
|
143
|
+
isDataSource: !!rootProps.dataSource
|
|
144
|
+
}), [colDef, rootProps.aggregationFunctions, rootProps.dataSource]);
|
|
145
145
|
const handleClick = func => {
|
|
146
146
|
apiRef.current.setPivotModel(prev => {
|
|
147
147
|
return (0, _extends2.default)({}, prev, {
|
|
@@ -157,7 +157,7 @@ function AggregationSelect({
|
|
|
157
157
|
});
|
|
158
158
|
setAggregationMenuOpen(false);
|
|
159
159
|
};
|
|
160
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
160
|
+
return availableAggregationFunctions.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
161
161
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseChip, {
|
|
162
162
|
label: (0, _gridAggregationUtils.getAggregationFunctionLabel)({
|
|
163
163
|
apiRef,
|
|
@@ -198,7 +198,7 @@ function AggregationSelect({
|
|
|
198
198
|
}), func))
|
|
199
199
|
}))
|
|
200
200
|
})]
|
|
201
|
-
});
|
|
201
|
+
}) : null;
|
|
202
202
|
}
|
|
203
203
|
function GridPivotPanelField(props) {
|
|
204
204
|
const {
|
|
@@ -41,7 +41,7 @@ const configuration = {
|
|
|
41
41
|
useGridParamsOverridableMethods
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
|
-
const releaseInfo = "
|
|
44
|
+
const releaseInfo = "MTc2MDU3MjgwMDAwMA==";
|
|
45
45
|
const watermark = /*#__PURE__*/_jsx(Watermark, {
|
|
46
46
|
packageName: "x-data-grid-premium",
|
|
47
47
|
releaseInfo: releaseInfo
|
|
@@ -486,7 +486,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
486
486
|
* @param {GridColDef} column The column to generate derived columns for.
|
|
487
487
|
* @param {GridLocaleTextApi['getLocaleText']} getLocaleText The function to get the locale text.
|
|
488
488
|
* @returns {GridColDef[] | undefined} The derived columns.
|
|
489
|
-
* @default {defaultGetPivotDerivedColumns} Creates year and quarter columns for date columns.
|
|
489
|
+
* @default {defaultGetPivotDerivedColumns | undefined} Creates year and quarter columns for date columns if not in server side mode.
|
|
490
490
|
*/
|
|
491
491
|
getPivotDerivedColumns: PropTypes.func,
|
|
492
492
|
/**
|
|
@@ -1111,16 +1111,18 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
|
|
|
1111
1111
|
pivotActive: PropTypes.bool,
|
|
1112
1112
|
/**
|
|
1113
1113
|
* The column definition overrides for the columns generated by the pivoting feature.
|
|
1114
|
-
*
|
|
1115
|
-
*
|
|
1116
|
-
* @
|
|
1114
|
+
* Pass either a partial column definition to apply the same overrides to all pivot columns, or a callback to apply different overrides to each pivot column.
|
|
1115
|
+
* For server-side pivoting, only the `PivotingColDefCallback` signature is supported, and the prop is required.
|
|
1116
|
+
* @type {Partial<GridPivotingColDefOverrides> | PivotingColDefCallback}
|
|
1117
1117
|
* @default undefined
|
|
1118
|
+
* @throws {Error} If `undefined` and `dataSource` is provided.
|
|
1118
1119
|
*/
|
|
1119
1120
|
pivotingColDef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
|
|
1120
1121
|
align: PropTypes.oneOf(['center', 'left', 'right']),
|
|
1121
1122
|
cellClassName: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
|
|
1122
1123
|
description: PropTypes.string,
|
|
1123
1124
|
display: PropTypes.oneOf(['flex', 'text']),
|
|
1125
|
+
field: PropTypes.string,
|
|
1124
1126
|
flex: PropTypes.number,
|
|
1125
1127
|
headerAlign: PropTypes.oneOf(['center', 'left', 'right']),
|
|
1126
1128
|
headerClassName: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
|
|
@@ -35,7 +35,6 @@ export const DATA_GRID_PREMIUM_PROPS_DEFAULT_VALUES = _extends({}, DATA_GRID_PRO
|
|
|
35
35
|
return text.split(/\r\n|\n|\r/).map(row => row.split(delimiter));
|
|
36
36
|
},
|
|
37
37
|
disablePivoting: false,
|
|
38
|
-
getPivotDerivedColumns: defaultGetPivotDerivedColumns,
|
|
39
38
|
aiAssistant: false,
|
|
40
39
|
chartsIntegration: false
|
|
41
40
|
});
|
|
@@ -54,7 +53,9 @@ export const useDataGridPremiumProps = inProps => {
|
|
|
54
53
|
}), [themedProps.slots]);
|
|
55
54
|
return React.useMemo(() => _extends({}, DATA_GRID_PREMIUM_PROPS_DEFAULT_VALUES, themedProps.dataSource ? {
|
|
56
55
|
aggregationFunctions: {}
|
|
57
|
-
} : {
|
|
56
|
+
} : {
|
|
57
|
+
getPivotDerivedColumns: defaultGetPivotDerivedColumns
|
|
58
|
+
}, themedProps, {
|
|
58
59
|
localeText,
|
|
59
60
|
slots
|
|
60
61
|
}, getDataGridPremiumForcedProps(themedProps)), [themedProps, localeText, slots]);
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import composeClasses from '@mui/utils/composeClasses';
|
|
4
|
-
import { useGridPrivateApiContext, gridDataSourceErrorSelector, gridDataSourceLoadingIdSelector, gridRowSelector, vars } from '@mui/x-data-grid-pro/internals';
|
|
4
|
+
import { useGridPrivateApiContext, gridDataSourceErrorSelector, gridDataSourceLoadingIdSelector, gridRowSelector, vars, gridPivotActiveSelector } from '@mui/x-data-grid-pro/internals';
|
|
5
5
|
import { useGridSelector, getDataGridUtilityClass } from '@mui/x-data-grid-pro';
|
|
6
6
|
import { useGridApiContext } from "../hooks/utils/useGridApiContext.js";
|
|
7
7
|
import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
|
|
8
|
+
import { gridRowGroupingModelSelector } from "../hooks/features/rowGrouping/gridRowGroupingSelector.js";
|
|
8
9
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
10
|
const useUtilityClasses = ownerState => {
|
|
10
11
|
const {
|
|
@@ -81,7 +82,12 @@ export function GridDataSourceGroupingCriteriaCell(props) {
|
|
|
81
82
|
const rootProps = useGridRootProps();
|
|
82
83
|
const apiRef = useGridApiContext();
|
|
83
84
|
const row = useGridSelector(apiRef, gridRowSelector, id);
|
|
85
|
+
const pivotActive = useGridSelector(apiRef, gridPivotActiveSelector);
|
|
86
|
+
const rowGroupingModelLength = useGridSelector(apiRef, gridRowGroupingModelSelector).length;
|
|
84
87
|
const classes = useUtilityClasses(rootProps);
|
|
88
|
+
const shouldShowToggleContainer = !pivotActive || rowGroupingModelLength > 1;
|
|
89
|
+
// Do not allow expand/collapse the last grouping criteria cell when in pivot mode
|
|
90
|
+
const shouldShowToggleButton = !pivotActive || rowNode.depth < rowGroupingModelLength - 1;
|
|
85
91
|
let descendantCount = 0;
|
|
86
92
|
if (row) {
|
|
87
93
|
descendantCount = rootProps.dataSource?.getChildrenCount?.(row) ?? 0;
|
|
@@ -104,9 +110,9 @@ export function GridDataSourceGroupingCriteriaCell(props) {
|
|
|
104
110
|
style: {
|
|
105
111
|
marginLeft: rootProps.rowGroupingColumnMode === 'multiple' ? 0 : `calc(var(--DataGrid-cellOffsetMultiplier) * ${vars.spacing(rowNode.depth)})`
|
|
106
112
|
},
|
|
107
|
-
children: [/*#__PURE__*/_jsx("div", {
|
|
113
|
+
children: [shouldShowToggleContainer && /*#__PURE__*/_jsx("div", {
|
|
108
114
|
className: classes.toggle,
|
|
109
|
-
children: /*#__PURE__*/_jsx(GridGroupingCriteriaCellIcon, {
|
|
115
|
+
children: shouldShowToggleButton && /*#__PURE__*/_jsx(GridGroupingCriteriaCellIcon, {
|
|
110
116
|
id: id,
|
|
111
117
|
field: field,
|
|
112
118
|
rowNode: rowNode,
|
|
@@ -8,7 +8,6 @@ import { ExportExcel } from "./export/index.js";
|
|
|
8
8
|
import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
|
|
9
9
|
import { useGridApiContext } from "../hooks/utils/useGridApiContext.js";
|
|
10
10
|
import { PivotPanelTrigger } from "./pivotPanel/PivotPanelTrigger.js";
|
|
11
|
-
import { isPivotingAvailable } from "../hooks/features/pivoting/utils.js";
|
|
12
11
|
import { AiAssistantPanelTrigger } from "./aiAssistantPanel/index.js";
|
|
13
12
|
import { ChartsPanelTrigger } from "./chartsPanel/ChartsPanelTrigger.js";
|
|
14
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -17,7 +16,7 @@ export function GridPremiumToolbar(props) {
|
|
|
17
16
|
const apiRef = useGridApiContext();
|
|
18
17
|
const other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
19
18
|
const additionalItems = /*#__PURE__*/_jsxs(React.Fragment, {
|
|
20
|
-
children: [
|
|
19
|
+
children: [!rootProps.disablePivoting && /*#__PURE__*/_jsx(PivotPanelTrigger, {
|
|
21
20
|
render: (triggerProps, state) => /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, {
|
|
22
21
|
title: apiRef.current.getLocaleText('toolbarPivot'),
|
|
23
22
|
children: /*#__PURE__*/_jsx(ToolbarButton, _extends({}, triggerProps, {
|
|
@@ -133,8 +133,8 @@ function AggregationSelect({
|
|
|
133
133
|
const availableAggregationFunctions = React.useMemo(() => getAvailableAggregationFunctions({
|
|
134
134
|
aggregationFunctions: rootProps.aggregationFunctions,
|
|
135
135
|
colDef,
|
|
136
|
-
isDataSource:
|
|
137
|
-
}), [colDef, rootProps.aggregationFunctions]);
|
|
136
|
+
isDataSource: !!rootProps.dataSource
|
|
137
|
+
}), [colDef, rootProps.aggregationFunctions, rootProps.dataSource]);
|
|
138
138
|
const handleClick = func => {
|
|
139
139
|
apiRef.current.setPivotModel(prev => {
|
|
140
140
|
return _extends({}, prev, {
|
|
@@ -150,7 +150,7 @@ function AggregationSelect({
|
|
|
150
150
|
});
|
|
151
151
|
setAggregationMenuOpen(false);
|
|
152
152
|
};
|
|
153
|
-
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
153
|
+
return availableAggregationFunctions.length > 0 ? /*#__PURE__*/_jsxs(React.Fragment, {
|
|
154
154
|
children: [/*#__PURE__*/_jsx(rootProps.slots.baseChip, {
|
|
155
155
|
label: getAggregationFunctionLabel({
|
|
156
156
|
apiRef,
|
|
@@ -191,7 +191,7 @@ function AggregationSelect({
|
|
|
191
191
|
}), func))
|
|
192
192
|
}))
|
|
193
193
|
})]
|
|
194
|
-
});
|
|
194
|
+
}) : null;
|
|
195
195
|
}
|
|
196
196
|
function GridPivotPanelField(props) {
|
|
197
197
|
const {
|
|
@@ -4,7 +4,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { isObjectEmpty } from '@mui/x-internals/isObjectEmpty';
|
|
6
6
|
import { gridColumnLookupSelector, useGridEvent, useGridApiMethod, useRunOncePerLoop, gridRenderContextSelector, gridVisibleColumnFieldsSelector, gridSortModelSelector } from '@mui/x-data-grid-pro';
|
|
7
|
-
import { useGridRegisterPipeProcessor } from '@mui/x-data-grid-pro/internals';
|
|
7
|
+
import { useGridRegisterPipeProcessor, gridPivotActiveSelector } from '@mui/x-data-grid-pro/internals';
|
|
8
8
|
import { gridAggregationLookupSelector, gridAggregationModelSelector } from "./gridAggregationSelectors.js";
|
|
9
9
|
import { getAggregationRules, mergeStateWithAggregationModel, areAggregationRulesEqual } from "./gridAggregationUtils.js";
|
|
10
10
|
import { createAggregationLookup, shouldApplySorting } from "./createAggregationLookup.js";
|
|
@@ -156,6 +156,7 @@ export const useGridAggregation = (apiRef, props) => {
|
|
|
156
156
|
* EVENTS
|
|
157
157
|
*/
|
|
158
158
|
const checkAggregationRulesDiff = React.useCallback(() => {
|
|
159
|
+
const pivotingActive = gridPivotActiveSelector(apiRef);
|
|
159
160
|
const {
|
|
160
161
|
rulesOnLastRowHydration,
|
|
161
162
|
rulesOnLastColumnHydration
|
|
@@ -163,7 +164,7 @@ export const useGridAggregation = (apiRef, props) => {
|
|
|
163
164
|
const aggregationRules = props.disableAggregation ? {} : getAggregationRules(gridColumnLookupSelector(apiRef), gridAggregationModelSelector(apiRef), props.aggregationFunctions, !!props.dataSource);
|
|
164
165
|
|
|
165
166
|
// Re-apply the row hydration to add / remove the aggregation footers
|
|
166
|
-
if (!props.dataSource && !areAggregationRulesEqual(rulesOnLastRowHydration, aggregationRules)) {
|
|
167
|
+
if ((!props.dataSource || pivotingActive) && !areAggregationRulesEqual(rulesOnLastRowHydration, aggregationRules)) {
|
|
167
168
|
apiRef.current.requestPipeProcessorsApplication('hydrateRows');
|
|
168
169
|
deferredApplyAggregation();
|
|
169
170
|
}
|
|
@@ -1,5 +1,22 @@
|
|
|
1
|
-
import type { GridColDef, GridRowId, GridValidRowModel, GridDataSource, GridGetRowsResponse, GridGetRowsParams, GridDataSourceApiBase, GridDataSourcePrivateApi } from '@mui/x-data-grid-pro';
|
|
1
|
+
import type { GridColDef, GridRowId, GridValidRowModel, GridDataSource, GridGetRowsResponse, GridGetRowsParams, GridDataSourceApiBase, GridDataSourcePrivateApi, GridRowModel } from '@mui/x-data-grid-pro';
|
|
2
2
|
import type { GridAggregationModel } from "../aggregation/gridAggregationInterfaces.js";
|
|
3
|
+
import type { GridPivotModel } from "../pivoting/gridPivotingInterfaces.js";
|
|
4
|
+
export interface GridGetRowsResponsePivotColumn {
|
|
5
|
+
key: string;
|
|
6
|
+
group: string | GridRowModel;
|
|
7
|
+
children?: GridGetRowsResponsePivotColumn[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Path to a pivot column group.
|
|
11
|
+
* @param {string} key Pivot column key.
|
|
12
|
+
* @param {string} field Pivot column field.
|
|
13
|
+
* @param {string | GridRowModel} value Path value that is either a string or a part of row model needed to get the formatted value of the original column.
|
|
14
|
+
*/
|
|
15
|
+
export interface GridDataSourcePivotColumnGroupPath {
|
|
16
|
+
key: string;
|
|
17
|
+
field: string;
|
|
18
|
+
value: string | GridRowModel;
|
|
19
|
+
}
|
|
3
20
|
export interface GridGetRowsResponsePremium extends GridGetRowsResponse {
|
|
4
21
|
/**
|
|
5
22
|
* Row to be used for aggregation footer row.
|
|
@@ -7,6 +24,32 @@ export interface GridGetRowsResponsePremium extends GridGetRowsResponse {
|
|
|
7
24
|
* `GridGetRowsParams.aggregationModel`.
|
|
8
25
|
*/
|
|
9
26
|
aggregateRow?: GridValidRowModel;
|
|
27
|
+
/**
|
|
28
|
+
* Defines the structure of pivot columns to be created from the pivoted data.
|
|
29
|
+
* Each node in the tree must have a `key` and `group` property.
|
|
30
|
+
* `key` is used to identify the column group and will be passed to the `pivotingColDef` callback as the column path parameter.
|
|
31
|
+
* `group` is either a string or a part of a row model needed to get the formatted value of the original column.
|
|
32
|
+
* optionally,`children` is a list of the next level nodes.
|
|
33
|
+
* Each node at the last level of the tree will be a column group containing each pivot value as a column.
|
|
34
|
+
*
|
|
35
|
+
* Structure:
|
|
36
|
+
* The `group` property can be a string or an object:
|
|
37
|
+
* - Strings are used directly as column group header names (e.g. `"2025"`, `"January"`)
|
|
38
|
+
* - Objects contain data that will be formatted into header names using the column's valueFormatter or valueGetter
|
|
39
|
+
* (e.g. `{date: "2025-01-01"}` could be formatted as `"Jan 2025"`)
|
|
40
|
+
*
|
|
41
|
+
* Examples:
|
|
42
|
+
* - `[{key: "Y", group: "Yes"}, {key: "N", group: "No"}]` - Creates column groups with values "Yes" and "No"
|
|
43
|
+
* - `[{key: "2025", group: "2025", children: [{key: "January", group: "January"}, {key: "February", group: "February"}]}]` - Creates a column group with value "2025"
|
|
44
|
+
* that has column groups "January" and "February"
|
|
45
|
+
* - `[
|
|
46
|
+
* {key: "2025-01", group: {date: "2025-01-01"}, children: [{key: "01", group: {date: "2025-01-01"}}]},
|
|
47
|
+
* {key: "2025-02", group: {date: "2025-02-01"}, children: [{key: "02", group: {date: "2025-02-01"}}]},
|
|
48
|
+
* ]` - Creates two levels of column groups with values returned from the value formatters of the columns used for pivoting.
|
|
49
|
+
* Even though the same values are passed, the header names can be different based on the valueFormatter or valueGetter.
|
|
50
|
+
* One pivoting column may format the date as a year and the other as a month.
|
|
51
|
+
*/
|
|
52
|
+
pivotColumns?: GridGetRowsResponsePivotColumn[];
|
|
10
53
|
}
|
|
11
54
|
export interface GridGetRowsParamsPremium extends GridGetRowsParams {
|
|
12
55
|
/**
|
|
@@ -17,6 +60,14 @@ export interface GridGetRowsParamsPremium extends GridGetRowsParams {
|
|
|
17
60
|
* List of grouped columns (only applicable with `rowGrouping`).
|
|
18
61
|
*/
|
|
19
62
|
groupFields?: GridColDef['field'][];
|
|
63
|
+
/**
|
|
64
|
+
* Visible rows, columns and values from the pivot model (only applicable with `pivoting`).
|
|
65
|
+
*/
|
|
66
|
+
pivotModel?: {
|
|
67
|
+
columns: Omit<GridPivotModel['columns'], 'hidden'>;
|
|
68
|
+
rows: Omit<GridPivotModel['rows'], 'hidden'>;
|
|
69
|
+
values: Omit<GridPivotModel['values'], 'hidden'>;
|
|
70
|
+
};
|
|
20
71
|
}
|
|
21
72
|
export interface GridDataSourcePremium extends Omit<GridDataSource, 'getRows'> {
|
|
22
73
|
/**
|