@mui/x-data-grid-pro 8.0.0 → 8.1.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 +106 -0
- package/DataGridPro/DataGridPro.js +1 -1
- package/components/GridDetailPanel.js +1 -2
- package/components/headerFiltering/GridHeaderFilterMenu.js +2 -2
- package/esm/DataGridPro/DataGridPro.js +1 -1
- package/esm/components/GridDetailPanel.js +1 -2
- package/esm/components/headerFiltering/GridHeaderFilterMenu.js +2 -2
- package/esm/hooks/features/detailPanel/useGridDetailPanel.js +4 -3
- package/esm/index.js +1 -1
- package/hooks/features/detailPanel/useGridDetailPanel.js +4 -3
- package/index.js +1 -1
- package/package.json +2 -2
- /package/esm/{locales.d.ts → locales/index.d.ts} +0 -0
- /package/esm/{locales.js → locales/index.js} +0 -0
- /package/{locales.d.ts → locales/index.d.ts} +0 -0
- /package/{locales.js → locales/index.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,112 @@
|
|
|
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.1.0
|
|
9
|
+
|
|
10
|
+
_Apr 24, 2025_
|
|
11
|
+
|
|
12
|
+
We'd like to offer a big thanks to the 14 contributors who made this release possible. Here are some highlights ✨:
|
|
13
|
+
|
|
14
|
+
- 📊 Add API to print a chart or export it as PDF: `apiRef.exportAsPrint`.
|
|
15
|
+
- 📚 Documentation improvements
|
|
16
|
+
- 🐞 Bugfixes
|
|
17
|
+
|
|
18
|
+
Special thanks go out to the community members for their valuable contributions:
|
|
19
|
+
@lhilgert9, @ArturAghakaryan, @sai6855.
|
|
20
|
+
Following are all team members who have contributed to this release:
|
|
21
|
+
@alexfauquette, @arminmeh, @bernardobelchior, @cherniavskii, @JCQuintas, @joserodolfofreitas, @KenanYusuf, @LukasTy, @mapache-salvaje, @oliviertassinari, @romgrk.
|
|
22
|
+
|
|
23
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
24
|
+
|
|
25
|
+
### Data Grid
|
|
26
|
+
|
|
27
|
+
#### `@mui/x-data-grid@8.1.0`
|
|
28
|
+
|
|
29
|
+
- [DataGrid] Allow row deselection with multiple rows selected (#17473) @arminmeh
|
|
30
|
+
- [DataGrid] Fix column title truncation on touch devices (#17375) @KenanYusuf
|
|
31
|
+
- [DataGrid] Remove internal usage of `material` prop (#17513) @KenanYusuf
|
|
32
|
+
- [DataGrid] Fix apiRef not being passed on onCellClick params (#17335) @sai6855
|
|
33
|
+
- [DataGrid] Add Armenian (hy-AM) locale (#17527) @ArturAghakaryan
|
|
34
|
+
|
|
35
|
+
#### `@mui/x-data-grid-pro@8.1.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
36
|
+
|
|
37
|
+
Same changes as in `@mui/x-data-grid@8.1.0`, plus:
|
|
38
|
+
|
|
39
|
+
- [DataGridPro] Fix locales.ts export (#17433) @lhilgert9
|
|
40
|
+
- [DataGridPro] Avoid proptypes warnings with header filters in React 17 (#17482) @cherniavskii
|
|
41
|
+
- [DataGridPro] Fix expandable rows detail content height updates (#17394) @arminmeh
|
|
42
|
+
|
|
43
|
+
#### `@mui/x-data-grid-premium@8.1.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
44
|
+
|
|
45
|
+
Same changes as in `@mui/x-data-grid-pro@8.1.0`.
|
|
46
|
+
|
|
47
|
+
### Date and Time Pickers
|
|
48
|
+
|
|
49
|
+
#### `@mui/x-date-pickers@8.1.0`
|
|
50
|
+
|
|
51
|
+
- [pickers] Improve `PickersInputBase` owner state typing (#17478) @LukasTy
|
|
52
|
+
|
|
53
|
+
#### `@mui/x-date-pickers-pro@8.1.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
54
|
+
|
|
55
|
+
Same changes as in `@mui/x-date-pickers@8.1.0`.
|
|
56
|
+
|
|
57
|
+
### Charts
|
|
58
|
+
|
|
59
|
+
- Add API to print a chart or export it as PDF: `apiRef.exportAsPrint`.
|
|
60
|
+
|
|
61
|
+
#### `@mui/x-charts@8.1.0`
|
|
62
|
+
|
|
63
|
+
- [charts] Add a localization provider (#17325) @alexfauquette
|
|
64
|
+
- [charts] Add codemod for replacing legend's hidden slot prop (#17392) @bernardobelchior
|
|
65
|
+
- [charts] Fix chart visual tests flakiness (#17469) @bernardobelchior
|
|
66
|
+
- [charts] Fix tooltip position (#17440) @alexfauquette
|
|
67
|
+
- [charts] Improve axis tooltip performances (#17398) @alexfauquette
|
|
68
|
+
- [charts] Move radar from under development to preview (#17418) @alexfauquette
|
|
69
|
+
- [charts] Advance time in charts regression tests (#17420) @bernardobelchior
|
|
70
|
+
- [charts] Fix charts visuals flakiness (#17472) @bernardobelchior
|
|
71
|
+
- [charts] Move `rafThrottle` on event handlers instead of setter (#17489) @bernardobelchior
|
|
72
|
+
|
|
73
|
+
#### `@mui/x-charts-pro@8.1.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
74
|
+
|
|
75
|
+
Same changes as in `@mui/x-charts@8.1.0`, plus:
|
|
76
|
+
|
|
77
|
+
- [charts-pro] Add export as PDF/print functionality (#17285) @bernardobelchior
|
|
78
|
+
- [charts-pro] Fix axis zoom being disabled when not specified in `initialZoom` (#17500) @bernardobelchior
|
|
79
|
+
|
|
80
|
+
### Tree View
|
|
81
|
+
|
|
82
|
+
#### `@mui/x-tree-view@8.1.0`
|
|
83
|
+
|
|
84
|
+
Internal changes.
|
|
85
|
+
|
|
86
|
+
#### `@mui/x-tree-view-pro@8.1.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
87
|
+
|
|
88
|
+
Same changes as in `@mui/x-tree-view@8.1.0`.
|
|
89
|
+
|
|
90
|
+
### Docs
|
|
91
|
+
|
|
92
|
+
- [docs] Fix AI Assistant Panel Trigger demo (#17426) @KenanYusuf
|
|
93
|
+
- [docs] Fix DataGrid's master-detail demo for one expanded detail panel at a time (#17471) @arminmeh
|
|
94
|
+
- [docs] Improve StackOverflow links (#17483) @oliviertassinari
|
|
95
|
+
- [docs] Refine charts demos (#17417) @alexfauquette
|
|
96
|
+
- [docs] Remove ad on paid docs pages (#17373) @oliviertassinari
|
|
97
|
+
- [docs] Serve migration guides in raw markdown format (#17210) @cherniavskii
|
|
98
|
+
- [docs] Fix heading structure (#17495) @oliviertassinari
|
|
99
|
+
- [docs] Revise the Row Grouping doc (#16217) @mapache-salvaje
|
|
100
|
+
- [docs] Fix ellipsis in the demo (#17476) @oliviertassinari
|
|
101
|
+
- [docs] Add docs information for Legend HTML (#17502) @alexfauquette
|
|
102
|
+
- [docs] Refine charts demos (#17417) @alexfauquette
|
|
103
|
+
- [tree view][docs] Copyedit the Tree View Overview page (#17498) @mapache-salvaje
|
|
104
|
+
|
|
105
|
+
### Core
|
|
106
|
+
|
|
107
|
+
- [core] Bump `@types/node` (#17444) @LukasTy
|
|
108
|
+
- [core] Remove `react-is` dependency (#17470) @LukasTy
|
|
109
|
+
- [core] Remove redundant `overridesResolver` in `styled` components (#17466) @romgrk
|
|
110
|
+
- [core] Update support table (#17425) @joserodolfofreitas
|
|
111
|
+
- [code-infra] Ditch `@babel/node` (#17446) @LukasTy
|
|
112
|
+
- [code-infra] Further remove `clock=fake` from pickers (#17253) @JCQuintas
|
|
113
|
+
|
|
8
114
|
## 8.0.0
|
|
9
115
|
|
|
10
116
|
_Apr 17, 2025_
|
|
@@ -29,7 +29,7 @@ const configuration = {
|
|
|
29
29
|
useCellAggregationResult: () => null
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
|
-
const releaseInfo = "
|
|
32
|
+
const releaseInfo = "MTc0NTQ0NTYwMDAwMA==";
|
|
33
33
|
const watermark = /*#__PURE__*/(0, _jsxRuntime.jsx)(_xLicense.Watermark, {
|
|
34
34
|
packageName: "x-data-grid-pro",
|
|
35
35
|
releaseInfo: releaseInfo
|
|
@@ -15,8 +15,7 @@ var _useGridPrivateApiContext = require("../hooks/utils/useGridPrivateApiContext
|
|
|
15
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
16
|
const DetailPanel = (0, _styles.styled)('div', {
|
|
17
17
|
name: 'MuiDataGrid',
|
|
18
|
-
slot: 'DetailPanel'
|
|
19
|
-
overridesResolver: (props, styles) => styles.detailPanel
|
|
18
|
+
slot: 'DetailPanel'
|
|
20
19
|
})({
|
|
21
20
|
width: 'calc(var(--DataGrid-rowWidth) - var(--DataGrid-hasScrollY) * var(--DataGrid-scrollbarSize))',
|
|
22
21
|
backgroundColor: _internals.vars.colors.background.base,
|
|
@@ -86,14 +86,14 @@ process.env.NODE_ENV !== "production" ? GridHeaderFilterMenu.propTypes = {
|
|
|
86
86
|
applyFilterChanges: _propTypes.default.func.isRequired,
|
|
87
87
|
clearFilterItem: _propTypes.default.func.isRequired,
|
|
88
88
|
field: _propTypes.default.string.isRequired,
|
|
89
|
-
id: _propTypes.default
|
|
89
|
+
id: _propTypes.default /* @typescript-to-proptypes-ignore */.string,
|
|
90
90
|
item: _propTypes.default.shape({
|
|
91
91
|
field: _propTypes.default.string.isRequired,
|
|
92
92
|
id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
|
|
93
93
|
operator: _propTypes.default.string.isRequired,
|
|
94
94
|
value: _propTypes.default.any
|
|
95
95
|
}).isRequired,
|
|
96
|
-
labelledBy: _propTypes.default
|
|
96
|
+
labelledBy: _propTypes.default /* @typescript-to-proptypes-ignore */.string,
|
|
97
97
|
open: _propTypes.default.bool.isRequired,
|
|
98
98
|
operators: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
99
99
|
getApplyFilterFn: _propTypes.default.func.isRequired,
|
|
@@ -22,7 +22,7 @@ const configuration = {
|
|
|
22
22
|
useCellAggregationResult: () => null
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
|
-
const releaseInfo = "
|
|
25
|
+
const releaseInfo = "MTc0NTQ0NTYwMDAwMA==";
|
|
26
26
|
const watermark = /*#__PURE__*/_jsx(Watermark, {
|
|
27
27
|
packageName: "x-data-grid-pro",
|
|
28
28
|
releaseInfo: releaseInfo
|
|
@@ -9,8 +9,7 @@ import { useGridPrivateApiContext } from "../hooks/utils/useGridPrivateApiContex
|
|
|
9
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
10
|
const DetailPanel = styled('div', {
|
|
11
11
|
name: 'MuiDataGrid',
|
|
12
|
-
slot: 'DetailPanel'
|
|
13
|
-
overridesResolver: (props, styles) => styles.detailPanel
|
|
12
|
+
slot: 'DetailPanel'
|
|
14
13
|
})({
|
|
15
14
|
width: 'calc(var(--DataGrid-rowWidth) - var(--DataGrid-hasScrollY) * var(--DataGrid-scrollbarSize))',
|
|
16
15
|
backgroundColor: vars.colors.background.base,
|
|
@@ -78,14 +78,14 @@ process.env.NODE_ENV !== "production" ? GridHeaderFilterMenu.propTypes = {
|
|
|
78
78
|
applyFilterChanges: PropTypes.func.isRequired,
|
|
79
79
|
clearFilterItem: PropTypes.func.isRequired,
|
|
80
80
|
field: PropTypes.string.isRequired,
|
|
81
|
-
id: PropTypes
|
|
81
|
+
id: PropTypes /* @typescript-to-proptypes-ignore */.string,
|
|
82
82
|
item: PropTypes.shape({
|
|
83
83
|
field: PropTypes.string.isRequired,
|
|
84
84
|
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
85
85
|
operator: PropTypes.string.isRequired,
|
|
86
86
|
value: PropTypes.any
|
|
87
87
|
}).isRequired,
|
|
88
|
-
labelledBy: PropTypes
|
|
88
|
+
labelledBy: PropTypes /* @typescript-to-proptypes-ignore */.string,
|
|
89
89
|
open: PropTypes.bool.isRequired,
|
|
90
90
|
operators: PropTypes.arrayOf(PropTypes.shape({
|
|
91
91
|
getApplyFilterFn: PropTypes.func.isRequired,
|
|
@@ -44,7 +44,6 @@ function cacheContentAndHeight(apiRef, getDetailPanelContent, getDetailPanelHeig
|
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
46
|
export const useGridDetailPanel = (apiRef, props) => {
|
|
47
|
-
const expandedRowIds = useGridSelector(apiRef, gridDetailPanelExpandedRowIdsSelector);
|
|
48
47
|
const contentCache = useGridSelector(apiRef, gridDetailPanelExpandedRowsContentCacheSelector);
|
|
49
48
|
const handleCellClick = React.useCallback((params, event) => {
|
|
50
49
|
if (params.field !== GRID_DETAIL_PANEL_TOGGLE_FIELD || props.getDetailPanelContent == null) {
|
|
@@ -104,6 +103,7 @@ export const useGridDetailPanel = (apiRef, props) => {
|
|
|
104
103
|
})
|
|
105
104
|
});
|
|
106
105
|
});
|
|
106
|
+
apiRef.current.requestPipeProcessorsApplication('rowHeight');
|
|
107
107
|
}, [apiRef]);
|
|
108
108
|
const storeDetailPanelHeight = React.useCallback((id, height) => {
|
|
109
109
|
const heightCache = gridDetailPanelRawHeightCacheSelector(apiRef);
|
|
@@ -167,7 +167,8 @@ export const useGridDetailPanel = (apiRef, props) => {
|
|
|
167
167
|
previousGetDetailPanelHeightProp.current = props.getDetailPanelHeight;
|
|
168
168
|
}, [apiRef, props.getDetailPanelContent, props.getDetailPanelHeight]);
|
|
169
169
|
const addDetailHeight = React.useCallback((initialValue, row) => {
|
|
170
|
-
|
|
170
|
+
const expandedRowIds = gridDetailPanelExpandedRowIdsSelector(apiRef);
|
|
171
|
+
if (!expandedRowIds || !expandedRowIds.has(row.id)) {
|
|
171
172
|
initialValue.detail = 0;
|
|
172
173
|
return initialValue;
|
|
173
174
|
}
|
|
@@ -175,7 +176,7 @@ export const useGridDetailPanel = (apiRef, props) => {
|
|
|
175
176
|
const heightCache = gridDetailPanelRawHeightCacheSelector(apiRef);
|
|
176
177
|
initialValue.detail = heightCache[row.id].height ?? 0; // Fallback to zero because the cache might not be ready yet (for example page was changed)
|
|
177
178
|
return initialValue;
|
|
178
|
-
}, [apiRef,
|
|
179
|
+
}, [apiRef, updateCachesIfNeeded]);
|
|
179
180
|
const enabled = props.getDetailPanelContent !== undefined;
|
|
180
181
|
useGridRegisterPipeProcessor(apiRef, 'rowHeight', addDetailHeight, enabled);
|
|
181
182
|
const isFirstRender = React.useRef(true);
|
package/esm/index.js
CHANGED
|
@@ -53,7 +53,6 @@ function cacheContentAndHeight(apiRef, getDetailPanelContent, getDetailPanelHeig
|
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
55
|
const useGridDetailPanel = (apiRef, props) => {
|
|
56
|
-
const expandedRowIds = (0, _xDataGrid.useGridSelector)(apiRef, _gridDetailPanelSelector.gridDetailPanelExpandedRowIdsSelector);
|
|
57
56
|
const contentCache = (0, _xDataGrid.useGridSelector)(apiRef, _gridDetailPanelSelector.gridDetailPanelExpandedRowsContentCacheSelector);
|
|
58
57
|
const handleCellClick = React.useCallback((params, event) => {
|
|
59
58
|
if (params.field !== _gridDetailPanelToggleColDef.GRID_DETAIL_PANEL_TOGGLE_FIELD || props.getDetailPanelContent == null) {
|
|
@@ -113,6 +112,7 @@ const useGridDetailPanel = (apiRef, props) => {
|
|
|
113
112
|
})
|
|
114
113
|
});
|
|
115
114
|
});
|
|
115
|
+
apiRef.current.requestPipeProcessorsApplication('rowHeight');
|
|
116
116
|
}, [apiRef]);
|
|
117
117
|
const storeDetailPanelHeight = React.useCallback((id, height) => {
|
|
118
118
|
const heightCache = (0, _gridDetailPanelSelector.gridDetailPanelRawHeightCacheSelector)(apiRef);
|
|
@@ -176,7 +176,8 @@ const useGridDetailPanel = (apiRef, props) => {
|
|
|
176
176
|
previousGetDetailPanelHeightProp.current = props.getDetailPanelHeight;
|
|
177
177
|
}, [apiRef, props.getDetailPanelContent, props.getDetailPanelHeight]);
|
|
178
178
|
const addDetailHeight = React.useCallback((initialValue, row) => {
|
|
179
|
-
|
|
179
|
+
const expandedRowIds = (0, _gridDetailPanelSelector.gridDetailPanelExpandedRowIdsSelector)(apiRef);
|
|
180
|
+
if (!expandedRowIds || !expandedRowIds.has(row.id)) {
|
|
180
181
|
initialValue.detail = 0;
|
|
181
182
|
return initialValue;
|
|
182
183
|
}
|
|
@@ -184,7 +185,7 @@ const useGridDetailPanel = (apiRef, props) => {
|
|
|
184
185
|
const heightCache = (0, _gridDetailPanelSelector.gridDetailPanelRawHeightCacheSelector)(apiRef);
|
|
185
186
|
initialValue.detail = heightCache[row.id].height ?? 0; // Fallback to zero because the cache might not be ready yet (for example page was changed)
|
|
186
187
|
return initialValue;
|
|
187
|
-
}, [apiRef,
|
|
188
|
+
}, [apiRef, updateCachesIfNeeded]);
|
|
188
189
|
const enabled = props.getDetailPanelContent !== undefined;
|
|
189
190
|
(0, _internals.useGridRegisterPipeProcessor)(apiRef, 'rowHeight', addDetailHeight, enabled);
|
|
190
191
|
const isFirstRender = React.useRef(true);
|
package/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-data-grid-pro",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.1.0",
|
|
4
4
|
"description": "The Pro plan edition of the Data Grid components (MUI X).",
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"reselect": "^5.1.1",
|
|
44
44
|
"@mui/x-internals": "8.0.0",
|
|
45
45
|
"@mui/x-license": "8.0.0",
|
|
46
|
-
"@mui/x-data-grid": "8.
|
|
46
|
+
"@mui/x-data-grid": "8.1.0"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"@emotion/react": "^11.9.0",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|