@mui/x-data-grid-premium 9.4.0 → 9.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +100 -0
- package/DataGridPremium/DataGridPremium.js +4 -4
- package/DataGridPremium/DataGridPremium.mjs +6 -6
- package/DataGridPremium/useDataGridPremiumComponent.js +1 -0
- package/DataGridPremium/useDataGridPremiumComponent.mjs +2 -1
- package/components/pivotPanel/GridPivotPanelBody.js +2 -1
- package/components/pivotPanel/GridPivotPanelBody.mjs +2 -1
- package/hooks/features/aggregation/createAggregationLookup.js +12 -3
- package/hooks/features/aggregation/createAggregationLookup.mjs +12 -3
- package/hooks/features/rowGrouping/createGroupingColDef.js +5 -2
- package/hooks/features/rowGrouping/createGroupingColDef.mjs +5 -2
- package/index.d.mts +1 -0
- package/index.d.ts +1 -0
- package/index.js +13 -1
- package/index.mjs +2 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,105 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 9.5.0
|
|
4
|
+
|
|
5
|
+
_Jun 11, 2026_
|
|
6
|
+
|
|
7
|
+
We'd like to extend a big thank you to the 9 contributors who made this release possible. Here are some highlights ✨:
|
|
8
|
+
|
|
9
|
+
- 🎁 New [`multiSelect` column type for Data Grid Pro](https://mui.com/x/react-data-grid/column-definition/#MultiSelectColumn)
|
|
10
|
+
- 🚀 New [renderer="svg-progressive"](https://mui.com/x/react-charts/scatter/#progressive-renderer) paints scatter points in batched frames so large datasets render smoothly without blocking the main thread.
|
|
11
|
+
- 🐞 Bugfixes
|
|
12
|
+
- 📚 Documentation improvements
|
|
13
|
+
|
|
14
|
+
Special thanks go out to community members @mustafajw07 and @Anexus5919 for their valuable contribution.
|
|
15
|
+
|
|
16
|
+
The following team members contributed to this release:
|
|
17
|
+
@alexfauquette, @JCQuintas, @rita-codes, @rluzists1, @sai6855, @siriwatknp, @arminmeh, @brijeshb42
|
|
18
|
+
|
|
19
|
+
### Data Grid
|
|
20
|
+
|
|
21
|
+
#### `@mui/x-data-grid@9.5.0`
|
|
22
|
+
|
|
23
|
+
- [DataGrid] Restrict warning messages to non-production environments in various components (#22461) @sai6855
|
|
24
|
+
- [DataGrid] Prevent React state update before mount (#22374) @arminmeh
|
|
25
|
+
|
|
26
|
+
#### `@mui/x-data-grid-pro@9.5.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
27
|
+
|
|
28
|
+
Same changes as in `@mui/x-data-grid@9.5.0`, plus:
|
|
29
|
+
|
|
30
|
+
- [DataGridPro] Add new `multiSelect` column type (#21157) @siriwatknp
|
|
31
|
+
|
|
32
|
+
#### `@mui/x-data-grid-premium@9.5.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
33
|
+
|
|
34
|
+
Same changes as in `@mui/x-data-grid-pro@9.5.0`.
|
|
35
|
+
|
|
36
|
+
### Date and Time Pickers
|
|
37
|
+
|
|
38
|
+
#### `@mui/x-date-pickers@9.5.0`
|
|
39
|
+
|
|
40
|
+
- [pickers] Fix missing export of `th-TH` (#22703) @alexfauquette
|
|
41
|
+
|
|
42
|
+
#### `@mui/x-date-pickers-pro@9.5.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
43
|
+
|
|
44
|
+
Same changes as in `@mui/x-date-pickers@9.5.0`.
|
|
45
|
+
|
|
46
|
+
### Charts
|
|
47
|
+
|
|
48
|
+
#### `@mui/x-charts@9.5.0`
|
|
49
|
+
|
|
50
|
+
- [charts] Add `FocusedBar` component to `BarScatterComposition` demo (#22704) @sai6855
|
|
51
|
+
- [charts] Add dedicated Bubble Chart documentation page (#22688) @mustafajw07
|
|
52
|
+
- [charts] Add progressive scatter renderer (#22518) @JCQuintas
|
|
53
|
+
- [charts] Avoid full axis pipeline rebuild on resize (#22695) @JCQuintas
|
|
54
|
+
- [charts] Document focus indicator in composition page (#22712) @JCQuintas
|
|
55
|
+
- [charts] Fix `ChartsTooltip` `container` and `disablePortal` props being ignored (#22690) @JCQuintas
|
|
56
|
+
- [charts] Make ordinal scales O(1) to copy and re-range (#22691) @JCQuintas
|
|
57
|
+
- [charts] Stabilize WebGL bar rendering at sub-pixel widths (#22678) @JCQuintas
|
|
58
|
+
- [charts] Use the series config to define value types (#22693) @sai6855
|
|
59
|
+
- [charts] Decouple interaction hook from the cartesian zoom (#22708) @alexfauquette
|
|
60
|
+
|
|
61
|
+
#### `@mui/x-charts-pro@9.5.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
62
|
+
|
|
63
|
+
Same changes as in `@mui/x-charts@9.5.0`, plus:
|
|
64
|
+
|
|
65
|
+
- [charts-pro] Add missing focus highlight (#22689) @alexfauquette
|
|
66
|
+
|
|
67
|
+
#### `@mui/x-charts-premium@9.5.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
68
|
+
|
|
69
|
+
Same changes as in `@mui/x-charts-pro@9.5.0`, plus:
|
|
70
|
+
|
|
71
|
+
- [charts-premium] Set `Heatmap` WebGL render as stable (#22665) @alexfauquette
|
|
72
|
+
- [charts-premium] Stabilize candlestick charts (#22666) @alexfauquette
|
|
73
|
+
- [charts-premium] Stabilize the radial charts (#22655) @alexfauquette
|
|
74
|
+
|
|
75
|
+
### Scheduler
|
|
76
|
+
|
|
77
|
+
#### `@mui/x-scheduler@9.0.0-beta.1`
|
|
78
|
+
|
|
79
|
+
Internal changes.
|
|
80
|
+
|
|
81
|
+
#### `@mui/x-scheduler-premium@9.0.0-beta.1` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
82
|
+
|
|
83
|
+
Same changes as in `@mui/x-scheduler@9.0.0-beta.1`, plus:
|
|
84
|
+
|
|
85
|
+
- [scheduler] Remove dead CSS variable writes in `EventTimelinePremiumContent` (#22720) @rita-codes
|
|
86
|
+
- [scheduler] Show scope dialog when deleting a recurring event (#22552) @Anexus5919
|
|
87
|
+
|
|
88
|
+
### Core
|
|
89
|
+
|
|
90
|
+
- [docs-infra] Fix immutable cache headers for `/\_next/static` assets (#22747) @brijeshb42
|
|
91
|
+
- [docs-infra] Prefix `/\_next/static` cache header rule with `/x` basePath (#22748) @brijeshb42
|
|
92
|
+
- [code-infra] Update dependencies to resolve Dependabot security alerts (#22714) @Janpot
|
|
93
|
+
|
|
94
|
+
### Docs
|
|
95
|
+
|
|
96
|
+
- [docs] Fix broken links checker crashing on 404 known-targets fetch (#22707) @sai6855
|
|
97
|
+
- [docs] Fix country data (#22716) @alexfauquette
|
|
98
|
+
|
|
99
|
+
### Miscellaneous
|
|
100
|
+
|
|
101
|
+
- [legal] Update EULA links in docs (#22717) @rluzists1
|
|
102
|
+
|
|
3
103
|
## 9.4.0
|
|
4
104
|
|
|
5
105
|
<!-- generated comparing v9.3.0..master -->
|
|
@@ -51,8 +51,8 @@ const configuration = {
|
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
53
|
const packageInfo = {
|
|
54
|
-
releaseDate: "
|
|
55
|
-
version: "9.
|
|
54
|
+
releaseDate: "MTc4MTEzNjAwMDAwMA==",
|
|
55
|
+
version: "9.5.0",
|
|
56
56
|
name: 'x-data-grid-premium'
|
|
57
57
|
};
|
|
58
58
|
const watermark = /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.Watermark, {
|
|
@@ -76,14 +76,14 @@ const DataGridPremiumRaw = (0, _forwardRef.forwardRef)(function DataGridPremium(
|
|
|
76
76
|
privateApiRef: privateApiRef,
|
|
77
77
|
configuration: configuration,
|
|
78
78
|
props: props,
|
|
79
|
-
children: /*#__PURE__*/(0, _jsxRuntime.
|
|
79
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_xDataGridPro.GridRoot, (0, _extends2.default)({
|
|
80
80
|
className: props.className,
|
|
81
81
|
style: props.style,
|
|
82
82
|
sx: props.sx
|
|
83
83
|
}, props.slotProps?.root, {
|
|
84
84
|
ref: ref,
|
|
85
85
|
sidePanel: sidePanel,
|
|
86
|
-
children: watermark
|
|
86
|
+
children: [watermark, /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals2.GridMultiSelectMeasurer, {})]
|
|
87
87
|
}))
|
|
88
88
|
});
|
|
89
89
|
});
|
|
@@ -5,7 +5,7 @@ import * as React from 'react';
|
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { useLicenseVerifier, Watermark } from '@mui/x-license/internals';
|
|
7
7
|
import { GridRoot, GridContextProvider, useGridSelector } from '@mui/x-data-grid-pro';
|
|
8
|
-
import { propValidatorsDataGrid, propValidatorsDataGridPro, validateProps, useGridApiInitialization, getRowValue } from '@mui/x-data-grid-pro/internals';
|
|
8
|
+
import { propValidatorsDataGrid, propValidatorsDataGridPro, validateProps, useGridApiInitialization, getRowValue, GridMultiSelectMeasurer } from '@mui/x-data-grid-pro/internals';
|
|
9
9
|
import { useMaterialCSSVariables } from '@mui/x-data-grid/material';
|
|
10
10
|
import { forwardRef } from '@mui/x-internals/forwardRef';
|
|
11
11
|
import { useDataGridPremiumComponent } from "./useDataGridPremiumComponent.mjs";
|
|
@@ -19,7 +19,7 @@ import { useGridRowsOverridableMethods } from "../hooks/features/rows/useGridRow
|
|
|
19
19
|
import { useGridParamsOverridableMethods } from "../hooks/features/rows/useGridParamsOverridableMethods.mjs";
|
|
20
20
|
import { gridSidebarOpenSelector } from "../hooks/features/sidebar/index.mjs";
|
|
21
21
|
import { useIsCellEditable } from "../hooks/features/editing/useGridCellEditable.mjs";
|
|
22
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
22
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
23
23
|
const configuration = {
|
|
24
24
|
hooks: {
|
|
25
25
|
useCSSVariables: useMaterialCSSVariables,
|
|
@@ -44,8 +44,8 @@ const configuration = {
|
|
|
44
44
|
}
|
|
45
45
|
};
|
|
46
46
|
const packageInfo = {
|
|
47
|
-
releaseDate: "
|
|
48
|
-
version: "9.
|
|
47
|
+
releaseDate: "MTc4MTEzNjAwMDAwMA==",
|
|
48
|
+
version: "9.5.0",
|
|
49
49
|
name: 'x-data-grid-premium'
|
|
50
50
|
};
|
|
51
51
|
const watermark = /*#__PURE__*/_jsx(Watermark, {
|
|
@@ -69,14 +69,14 @@ const DataGridPremiumRaw = forwardRef(function DataGridPremium(inProps, ref) {
|
|
|
69
69
|
privateApiRef: privateApiRef,
|
|
70
70
|
configuration: configuration,
|
|
71
71
|
props: props,
|
|
72
|
-
children: /*#__PURE__*/
|
|
72
|
+
children: /*#__PURE__*/_jsxs(GridRoot, _extends({
|
|
73
73
|
className: props.className,
|
|
74
74
|
style: props.style,
|
|
75
75
|
sx: props.sx
|
|
76
76
|
}, props.slotProps?.root, {
|
|
77
77
|
ref: ref,
|
|
78
78
|
sidePanel: sidePanel,
|
|
79
|
-
children: watermark
|
|
79
|
+
children: [watermark, /*#__PURE__*/_jsx(GridMultiSelectMeasurer, {})]
|
|
80
80
|
}))
|
|
81
81
|
});
|
|
82
82
|
});
|
|
@@ -28,6 +28,7 @@ var _useGridChartsIntegration = require("../hooks/features/chartsIntegration/use
|
|
|
28
28
|
var _useGridHistory = require("../hooks/features/history/useGridHistory");
|
|
29
29
|
// Premium-only features
|
|
30
30
|
|
|
31
|
+
(0, _internals.registerMultiSelectColumnType)();
|
|
31
32
|
const useDataGridPremiumComponent = (apiRef, inProps, configuration) => {
|
|
32
33
|
const pivotPropsOverrides = (0, _xDataGridPro.useGridSelector)(apiRef, _gridPivotingSelectors.gridPivotPropsOverridesSelector);
|
|
33
34
|
const props = React.useMemo(() => {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import * as React from 'react';
|
|
5
|
-
import { useGridInitialization, useGridInitializeState, useGridClipboard, useGridColumnMenu, useGridColumns, columnsStateInitializer, useGridDensity, useGridCsvExport, useGridPrintExport, useGridFilter, filterStateInitializer, useGridFocus, useGridKeyboardNavigation, useGridPagination, paginationStateInitializer, useGridPreferencesPanel, useGridEditing, editingStateInitializer, useGridRows, useGridRowsPreProcessors, rowsStateInitializer, useGridParamsApi, useGridRowSelection, useGridSorting, sortingStateInitializer, useGridScroll, useGridEvents, dimensionsStateInitializer, useGridDimensions, useGridStatePersistence, useGridRowSelectionPreProcessors, columnMenuStateInitializer, densityStateInitializer, focusStateInitializer, preferencePanelStateInitializer, rowsMetaStateInitializer, rowSelectionStateInitializer, useGridColumnReorder, columnReorderStateInitializer, useGridColumnResize, columnResizeStateInitializer, useGridTreeData, useGridTreeDataPreProcessors, useGridColumnPinning, columnPinningStateInitializer, useGridColumnPinningPreProcessors, useGridDetailPanel, detailPanelStateInitializer, useGridDetailPanelPreProcessors, useGridInfiniteLoader, useGridColumnSpanning, useGridRowReorder, useGridRowReorderPreProcessors, useGridRowPinning, useGridRowPinningPreProcessors, rowPinningStateInitializer, useGridColumnGrouping, columnGroupsStateInitializer, useGridLazyLoader, useGridLazyLoaderPreProcessors, useGridDataSourceLazyLoader, useGridDataSourceNestedLazyLoader, useGridInfiniteLoadingIntersection, headerFilteringStateInitializer, useGridHeaderFiltering, virtualizationStateInitializer, useGridVirtualization, useGridDataSourceTreeDataPreProcessors, dataSourceStateInitializer, useGridRowSpanning, rowSpanningStateInitializer, useGridListView, listViewStateInitializer, propsStateInitializer, rowReorderStateInitializer, useFirstRender } from '@mui/x-data-grid-pro/internals';
|
|
5
|
+
import { useGridInitialization, useGridInitializeState, useGridClipboard, useGridColumnMenu, useGridColumns, columnsStateInitializer, useGridDensity, useGridCsvExport, useGridPrintExport, useGridFilter, filterStateInitializer, useGridFocus, useGridKeyboardNavigation, useGridPagination, paginationStateInitializer, useGridPreferencesPanel, useGridEditing, editingStateInitializer, useGridRows, useGridRowsPreProcessors, rowsStateInitializer, useGridParamsApi, useGridRowSelection, useGridSorting, sortingStateInitializer, useGridScroll, useGridEvents, dimensionsStateInitializer, useGridDimensions, useGridStatePersistence, useGridRowSelectionPreProcessors, columnMenuStateInitializer, densityStateInitializer, focusStateInitializer, preferencePanelStateInitializer, rowsMetaStateInitializer, rowSelectionStateInitializer, useGridColumnReorder, columnReorderStateInitializer, useGridColumnResize, columnResizeStateInitializer, useGridTreeData, useGridTreeDataPreProcessors, useGridColumnPinning, columnPinningStateInitializer, useGridColumnPinningPreProcessors, useGridDetailPanel, detailPanelStateInitializer, useGridDetailPanelPreProcessors, useGridInfiniteLoader, useGridColumnSpanning, useGridRowReorder, useGridRowReorderPreProcessors, useGridRowPinning, useGridRowPinningPreProcessors, rowPinningStateInitializer, useGridColumnGrouping, columnGroupsStateInitializer, useGridLazyLoader, useGridLazyLoaderPreProcessors, useGridDataSourceLazyLoader, useGridDataSourceNestedLazyLoader, useGridInfiniteLoadingIntersection, headerFilteringStateInitializer, useGridHeaderFiltering, virtualizationStateInitializer, useGridVirtualization, useGridDataSourceTreeDataPreProcessors, dataSourceStateInitializer, useGridRowSpanning, rowSpanningStateInitializer, useGridListView, listViewStateInitializer, propsStateInitializer, rowReorderStateInitializer, useFirstRender, registerMultiSelectColumnType } from '@mui/x-data-grid-pro/internals';
|
|
6
6
|
import { useGridSelector } from '@mui/x-data-grid-pro';
|
|
7
7
|
import { useGridDataSourcePremium as useGridDataSource } from "../hooks/features/dataSource/useGridDataSourcePremium.mjs";
|
|
8
8
|
// Premium-only features
|
|
@@ -20,6 +20,7 @@ import { useGridAiAssistant, aiAssistantStateInitializer } from "../hooks/featur
|
|
|
20
20
|
import { useGridSidebar, sidebarStateInitializer } from "../hooks/features/sidebar/useGridSidebar.mjs";
|
|
21
21
|
import { chartsIntegrationStateInitializer, useGridChartsIntegration } from "../hooks/features/chartsIntegration/useGridChartsIntegration.mjs";
|
|
22
22
|
import { historyStateInitializer, useGridHistory } from "../hooks/features/history/useGridHistory.mjs";
|
|
23
|
+
registerMultiSelectColumnType();
|
|
23
24
|
export const useDataGridPremiumComponent = (apiRef, inProps, configuration) => {
|
|
24
25
|
const pivotPropsOverrides = useGridSelector(apiRef, gridPivotPropsOverridesSelector);
|
|
25
26
|
const props = React.useMemo(() => {
|
|
@@ -155,7 +155,8 @@ function GridPivotPanelBody({
|
|
|
155
155
|
if (pivotModelFields.has(field)) {
|
|
156
156
|
return false;
|
|
157
157
|
}
|
|
158
|
-
|
|
158
|
+
const column = initialColumns.get(field);
|
|
159
|
+
if (column?.pivotable === false || column?.type === 'multiSelect') {
|
|
159
160
|
return false;
|
|
160
161
|
}
|
|
161
162
|
if (searchValue) {
|
|
@@ -148,7 +148,8 @@ function GridPivotPanelBody({
|
|
|
148
148
|
if (pivotModelFields.has(field)) {
|
|
149
149
|
return false;
|
|
150
150
|
}
|
|
151
|
-
|
|
151
|
+
const column = initialColumns.get(field);
|
|
152
|
+
if (column?.pivotable === false || column?.type === 'multiSelect') {
|
|
152
153
|
return false;
|
|
153
154
|
}
|
|
154
155
|
if (searchValue) {
|
|
@@ -102,13 +102,22 @@ const getGroupAggregatedValue = (groupId, apiRef, aggregationRowsScope, aggregat
|
|
|
102
102
|
aggregatedValues
|
|
103
103
|
};
|
|
104
104
|
};
|
|
105
|
-
const getGroupAggregatedValueDataSource = (groupId, apiRef, aggregatedFields, position) => {
|
|
105
|
+
const getGroupAggregatedValueDataSource = (groupId, apiRef, aggregatedFields, position, aggregationRules, columnsLookup) => {
|
|
106
106
|
const groupAggregationLookup = {};
|
|
107
|
+
const rowLookup = (0, _xDataGridPro.gridRowsLookupSelector)(apiRef);
|
|
107
108
|
for (let j = 0; j < aggregatedFields.length; j += 1) {
|
|
108
109
|
const aggregatedField = aggregatedFields[j];
|
|
110
|
+
const value = apiRef.current.resolveGroupAggregation?.(groupId, aggregatedField) ?? '';
|
|
111
|
+
const aggregationFunction = aggregationRules[aggregatedField]?.aggregationFunction;
|
|
112
|
+
const rowForFormatter = rowLookup[groupId] || {
|
|
113
|
+
id: groupId,
|
|
114
|
+
[aggregatedField]: value
|
|
115
|
+
};
|
|
116
|
+
const formattedValue = aggregationFunction?.valueFormatter ? aggregationFunction.valueFormatter(value, rowForFormatter, columnsLookup[aggregatedField], apiRef) : undefined;
|
|
109
117
|
groupAggregationLookup[aggregatedField] = {
|
|
110
118
|
position,
|
|
111
|
-
value
|
|
119
|
+
value,
|
|
120
|
+
formattedValue
|
|
112
121
|
};
|
|
113
122
|
}
|
|
114
123
|
return groupAggregationLookup;
|
|
@@ -154,7 +163,7 @@ const createAggregationLookup = ({
|
|
|
154
163
|
const position = getAggregationPosition(groupNode);
|
|
155
164
|
if (isDataSource) {
|
|
156
165
|
if (position !== null) {
|
|
157
|
-
aggregationLookup[groupNode.id] = getGroupAggregatedValueDataSource(groupNode.id, apiRef, aggregatedFields, position);
|
|
166
|
+
aggregationLookup[groupNode.id] = getGroupAggregatedValueDataSource(groupNode.id, apiRef, aggregatedFields, position, aggregationRules, columnsLookup);
|
|
158
167
|
}
|
|
159
168
|
} else if (groupNode.children.length) {
|
|
160
169
|
const result = getGroupAggregatedValue(groupNode.id, apiRef, aggregationRowsScope, aggregatedFields, aggregationRules, position, applySorting, valueGetters, apiRef.current, groupAggregatedValuesLookup, columnsLookup);
|
|
@@ -95,13 +95,22 @@ const getGroupAggregatedValue = (groupId, apiRef, aggregationRowsScope, aggregat
|
|
|
95
95
|
aggregatedValues
|
|
96
96
|
};
|
|
97
97
|
};
|
|
98
|
-
const getGroupAggregatedValueDataSource = (groupId, apiRef, aggregatedFields, position) => {
|
|
98
|
+
const getGroupAggregatedValueDataSource = (groupId, apiRef, aggregatedFields, position, aggregationRules, columnsLookup) => {
|
|
99
99
|
const groupAggregationLookup = {};
|
|
100
|
+
const rowLookup = gridRowsLookupSelector(apiRef);
|
|
100
101
|
for (let j = 0; j < aggregatedFields.length; j += 1) {
|
|
101
102
|
const aggregatedField = aggregatedFields[j];
|
|
103
|
+
const value = apiRef.current.resolveGroupAggregation?.(groupId, aggregatedField) ?? '';
|
|
104
|
+
const aggregationFunction = aggregationRules[aggregatedField]?.aggregationFunction;
|
|
105
|
+
const rowForFormatter = rowLookup[groupId] || {
|
|
106
|
+
id: groupId,
|
|
107
|
+
[aggregatedField]: value
|
|
108
|
+
};
|
|
109
|
+
const formattedValue = aggregationFunction?.valueFormatter ? aggregationFunction.valueFormatter(value, rowForFormatter, columnsLookup[aggregatedField], apiRef) : undefined;
|
|
102
110
|
groupAggregationLookup[aggregatedField] = {
|
|
103
111
|
position,
|
|
104
|
-
value
|
|
112
|
+
value,
|
|
113
|
+
formattedValue
|
|
105
114
|
};
|
|
106
115
|
}
|
|
107
116
|
return groupAggregationLookup;
|
|
@@ -147,7 +156,7 @@ export const createAggregationLookup = ({
|
|
|
147
156
|
const position = getAggregationPosition(groupNode);
|
|
148
157
|
if (isDataSource) {
|
|
149
158
|
if (position !== null) {
|
|
150
|
-
aggregationLookup[groupNode.id] = getGroupAggregatedValueDataSource(groupNode.id, apiRef, aggregatedFields, position);
|
|
159
|
+
aggregationLookup[groupNode.id] = getGroupAggregatedValueDataSource(groupNode.id, apiRef, aggregatedFields, position, aggregationRules, columnsLookup);
|
|
151
160
|
}
|
|
152
161
|
} else if (groupNode.children.length) {
|
|
153
162
|
const result = getGroupAggregatedValue(groupNode.id, apiRef, aggregationRowsScope, aggregatedFields, aggregationRules, position, applySorting, valueGetters, apiRef.current, groupAggregatedValuesLookup, columnsLookup);
|
|
@@ -91,8 +91,8 @@ function getGroupingCriteriaProperties(groupedByColDef, rowGroupingColumnMode, r
|
|
|
91
91
|
const rowNode = (0, _xDataGridPro.gridRowNodeSelector)(apiRef, rowId);
|
|
92
92
|
if (rowNode?.type === 'group') {
|
|
93
93
|
const originalColDef = rowNode.groupingField ? columnsLookup[rowNode.groupingField] : null;
|
|
94
|
-
if (originalColDef?.type === 'singleSelect') {
|
|
95
|
-
// the default valueFormatter of
|
|
94
|
+
if (originalColDef?.type === 'singleSelect' || originalColDef?.type === 'multiSelect') {
|
|
95
|
+
// the default valueFormatter of singleSelect/multiSelect colDef won't work with the grouping column values
|
|
96
96
|
return value;
|
|
97
97
|
}
|
|
98
98
|
const columnValueFormatter = originalColDef?.valueFormatter;
|
|
@@ -102,6 +102,9 @@ function getGroupingCriteriaProperties(groupedByColDef, rowGroupingColumnMode, r
|
|
|
102
102
|
}
|
|
103
103
|
return value;
|
|
104
104
|
};
|
|
105
|
+
} else if (groupedByColDef.type === 'multiSelect') {
|
|
106
|
+
// The default valueFormatter of multiSelect expects an array; the grouping key is a string.
|
|
107
|
+
valueFormatter = undefined;
|
|
105
108
|
} else {
|
|
106
109
|
valueFormatter = groupedByColDef.valueFormatter ? groupedByColValueFormatter(groupedByColDef) : undefined;
|
|
107
110
|
}
|
|
@@ -84,8 +84,8 @@ function getGroupingCriteriaProperties(groupedByColDef, rowGroupingColumnMode, r
|
|
|
84
84
|
const rowNode = gridRowNodeSelector(apiRef, rowId);
|
|
85
85
|
if (rowNode?.type === 'group') {
|
|
86
86
|
const originalColDef = rowNode.groupingField ? columnsLookup[rowNode.groupingField] : null;
|
|
87
|
-
if (originalColDef?.type === 'singleSelect') {
|
|
88
|
-
// the default valueFormatter of
|
|
87
|
+
if (originalColDef?.type === 'singleSelect' || originalColDef?.type === 'multiSelect') {
|
|
88
|
+
// the default valueFormatter of singleSelect/multiSelect colDef won't work with the grouping column values
|
|
89
89
|
return value;
|
|
90
90
|
}
|
|
91
91
|
const columnValueFormatter = originalColDef?.valueFormatter;
|
|
@@ -95,6 +95,9 @@ function getGroupingCriteriaProperties(groupedByColDef, rowGroupingColumnMode, r
|
|
|
95
95
|
}
|
|
96
96
|
return value;
|
|
97
97
|
};
|
|
98
|
+
} else if (groupedByColDef.type === 'multiSelect') {
|
|
99
|
+
// The default valueFormatter of multiSelect expects an array; the grouping key is a string.
|
|
100
|
+
valueFormatter = undefined;
|
|
98
101
|
} else {
|
|
99
102
|
valueFormatter = groupedByColDef.valueFormatter ? groupedByColValueFormatter(groupedByColDef) : undefined;
|
|
100
103
|
}
|
package/index.d.mts
CHANGED
|
@@ -8,6 +8,7 @@ export * from '@mui/x-data-grid/models';
|
|
|
8
8
|
export * from '@mui/x-data-grid-pro/models';
|
|
9
9
|
export * from '@mui/x-data-grid/context';
|
|
10
10
|
export * from '@mui/x-data-grid/colDef';
|
|
11
|
+
export * from '@mui/x-data-grid-pro/colDef';
|
|
11
12
|
export * from '@mui/x-data-grid/utils';
|
|
12
13
|
export * from '@mui/x-data-grid-pro/utils';
|
|
13
14
|
export * from "./DataGridPremium/index.mjs";
|
package/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export * from '@mui/x-data-grid/models';
|
|
|
8
8
|
export * from '@mui/x-data-grid-pro/models';
|
|
9
9
|
export * from '@mui/x-data-grid/context';
|
|
10
10
|
export * from '@mui/x-data-grid/colDef';
|
|
11
|
+
export * from '@mui/x-data-grid-pro/colDef';
|
|
11
12
|
export * from '@mui/x-data-grid/utils';
|
|
12
13
|
export * from '@mui/x-data-grid-pro/utils';
|
|
13
14
|
export * from "./DataGridPremium/index.js";
|
package/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @mui/x-data-grid-premium v9.
|
|
2
|
+
* @mui/x-data-grid-premium v9.5.0
|
|
3
3
|
*
|
|
4
4
|
* @license SEE LICENSE IN LICENSE
|
|
5
5
|
* This source code is licensed under the SEE LICENSE IN LICENSE license found in the
|
|
@@ -184,6 +184,18 @@ Object.keys(_colDef).forEach(function (key) {
|
|
|
184
184
|
}
|
|
185
185
|
});
|
|
186
186
|
});
|
|
187
|
+
var _colDef2 = require("@mui/x-data-grid-pro/colDef");
|
|
188
|
+
Object.keys(_colDef2).forEach(function (key) {
|
|
189
|
+
if (key === "default" || key === "__esModule") return;
|
|
190
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
191
|
+
if (key in exports && exports[key] === _colDef2[key]) return;
|
|
192
|
+
Object.defineProperty(exports, key, {
|
|
193
|
+
enumerable: true,
|
|
194
|
+
get: function () {
|
|
195
|
+
return _colDef2[key];
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
});
|
|
187
199
|
var _utils = require("@mui/x-data-grid/utils");
|
|
188
200
|
Object.keys(_utils).forEach(function (key) {
|
|
189
201
|
if (key === "default" || key === "__esModule") return;
|
package/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @mui/x-data-grid-premium v9.
|
|
2
|
+
* @mui/x-data-grid-premium v9.5.0
|
|
3
3
|
*
|
|
4
4
|
* @license SEE LICENSE IN LICENSE
|
|
5
5
|
* This source code is licensed under the SEE LICENSE IN LICENSE license found in the
|
|
@@ -15,6 +15,7 @@ export * from '@mui/x-data-grid/models';
|
|
|
15
15
|
export * from '@mui/x-data-grid-pro/models';
|
|
16
16
|
export * from '@mui/x-data-grid/context';
|
|
17
17
|
export * from '@mui/x-data-grid/colDef';
|
|
18
|
+
export * from '@mui/x-data-grid-pro/colDef';
|
|
18
19
|
export * from '@mui/x-data-grid/utils';
|
|
19
20
|
export * from '@mui/x-data-grid-pro/utils';
|
|
20
21
|
export * from "./DataGridPremium/index.mjs";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-data-grid-premium",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.5.0",
|
|
4
4
|
"author": "MUI Team",
|
|
5
5
|
"description": "The Premium plan edition of the MUI X Data Grid Components.",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -38,10 +38,10 @@
|
|
|
38
38
|
"@mui/x-internal-exceljs-fork": "5.0.0",
|
|
39
39
|
"clsx": "^2.1.1",
|
|
40
40
|
"prop-types": "^15.8.1",
|
|
41
|
-
"@mui/x-data-grid-pro": "^9.4.0",
|
|
42
|
-
"@mui/x-data-grid": "^9.4.0",
|
|
43
41
|
"@mui/x-internals": "^9.1.0",
|
|
44
|
-
"@mui/x-license": "^9.4.0"
|
|
42
|
+
"@mui/x-license": "^9.4.0",
|
|
43
|
+
"@mui/x-data-grid-pro": "^9.5.0",
|
|
44
|
+
"@mui/x-data-grid": "^9.5.0"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"@emotion/react": "^11.9.0",
|