@mui/x-data-grid 7.3.2 → 7.4.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 +67 -2
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -3
- package/hooks/features/focus/useGridFocus.js +1 -1
- package/index.js +1 -1
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -3
- package/modern/hooks/features/focus/useGridFocus.js +1 -1
- package/modern/index.js +1 -1
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -3
- package/node/hooks/features/focus/useGridFocus.js +1 -1
- package/node/index.js +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,73 @@
|
|
|
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
|
+
## 7.4.0
|
|
7
|
+
|
|
8
|
+
_May 10, 2024_
|
|
9
|
+
|
|
10
|
+
We'd like to offer a big thanks to the 9 contributors who made this release possible. Here are some highlights ✨:
|
|
11
|
+
|
|
12
|
+
- ✨ Add optional `id` attribute on shortcut items of the Date and Time Pickers
|
|
13
|
+
- 🎁 Add support for `date-fns-jalali` v3 in the Date and Time Pickers
|
|
14
|
+
- 🚀 Support rounded corners on `BarChart`
|
|
15
|
+
- 🌍 Add accessibility page to TreeView docs
|
|
16
|
+
- 🐞 Bugfixes
|
|
17
|
+
- 📚 Documentation improvements
|
|
18
|
+
|
|
19
|
+
### Data Grid
|
|
20
|
+
|
|
21
|
+
#### `@mui/x-data-grid@7.4.0`
|
|
22
|
+
|
|
23
|
+
- [DataGrid] Fix error when focus moves from column header to `svg` element (#13028) @oukunan
|
|
24
|
+
- [DataGrid] Fix error on column groups change (#12965) @romgrk
|
|
25
|
+
|
|
26
|
+
#### `@mui/x-data-grid-pro@7.4.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
27
|
+
|
|
28
|
+
Same changes as in `@mui/x-data-grid@7.4.0`.
|
|
29
|
+
|
|
30
|
+
#### `@mui/x-data-grid-premium@7.4.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
31
|
+
|
|
32
|
+
Same changes as in `@mui/x-data-grid-pro@7.4.0`.
|
|
33
|
+
|
|
34
|
+
### Date and Time Pickers
|
|
35
|
+
|
|
36
|
+
#### `@mui/x-date-pickers@7.4.0`
|
|
37
|
+
|
|
38
|
+
- [fields] Fix regression preventing form submit on "Enter" click (#13065) @LukasTy
|
|
39
|
+
- [pickers] Add `AdapterDateFnsJalaliV3` adapter (#12891) @smmoosavi
|
|
40
|
+
- [pickers] Add optional `id` attribute on shortcut items (#12976) @noraleonte
|
|
41
|
+
|
|
42
|
+
#### `@mui/x-date-pickers-pro@7.4.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
43
|
+
|
|
44
|
+
Same changes as in `@mui/x-date-pickers@7.4.0`.
|
|
45
|
+
|
|
46
|
+
### Charts
|
|
47
|
+
|
|
48
|
+
#### `@mui/x-charts@7.4.0`
|
|
49
|
+
|
|
50
|
+
- [charts] Add `ChartsGrid` to `themeAugmentation` (#13026) @noraleonte
|
|
51
|
+
- [charts] Support rounded corners on `BarChart` (#12834) @JCQuintas
|
|
52
|
+
|
|
53
|
+
### Tree View
|
|
54
|
+
|
|
55
|
+
#### `@mui/x-tree-view@7.4.0`
|
|
56
|
+
|
|
57
|
+
- [TreeView] Fix props propagation and theme entry in `TreeItem2` (#12889) @flaviendelangle
|
|
58
|
+
|
|
59
|
+
### Docs
|
|
60
|
+
|
|
61
|
+
- [docs] Add accessibility page to TreeView docs (#12845) @noraleonte
|
|
62
|
+
- [docs] Fix Charts styling typos (#13061) @oliviertassinari
|
|
63
|
+
- [docs] Fix legal link to EULA free trial (#13013) @oliviertassinari
|
|
64
|
+
- [docs] Update interface name in pinned columns docs (#13070) @cherniavskii
|
|
65
|
+
|
|
66
|
+
### Core
|
|
67
|
+
|
|
68
|
+
- [core] Improve release process docs (#12977) @JCQuintas
|
|
69
|
+
- [core] Prepare React 19 (#12991) @oliviertassinari
|
|
70
|
+
- [docs-infra] Fix Netlify PR preview path (#12993) @oliviertassinari
|
|
71
|
+
- [infra] Automation: Add release PR reviewers (#12982) @michelengelen
|
|
72
|
+
|
|
6
73
|
## 7.3.2
|
|
7
74
|
|
|
8
75
|
_May 2, 2024_
|
|
@@ -17,8 +84,6 @@ We'd like to offer a big thanks to the 11 contributors who made this release pos
|
|
|
17
84
|
- 🐞 Bugfixes
|
|
18
85
|
- 📚 Documentation improvements
|
|
19
86
|
|
|
20
|
-
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
21
|
-
|
|
22
87
|
### Data Grid
|
|
23
88
|
|
|
24
89
|
#### `@mui/x-data-grid@7.3.2`
|
|
@@ -12,6 +12,7 @@ import { gridRenderContextColumnsSelector, gridVirtualizationColumnEnabledSelect
|
|
|
12
12
|
import { computeOffsetLeft } from '../virtualization/useGridVirtualScroller';
|
|
13
13
|
import { GridColumnGroupHeader } from '../../../components/columnHeaders/GridColumnGroupHeader';
|
|
14
14
|
import { GridPinnedColumnPosition, gridColumnPositionsSelector, gridVisiblePinnedColumnDefinitionsSelector } from '../columns';
|
|
15
|
+
import { gridColumnGroupsUnwrappedModelSelector } from '../columnGrouping/gridColumnGroupsSelector';
|
|
15
16
|
import { GridScrollbarFillerCell as ScrollbarFiller } from '../../../components/GridScrollbarFillerCell';
|
|
16
17
|
import { getPinnedCellOffset } from '../../../internals/utils/getPinnedCellOffset';
|
|
17
18
|
import { GridColumnHeaderSeparatorSides } from '../../../components/columnHeaders/GridColumnHeaderSeparator';
|
|
@@ -44,8 +45,9 @@ export const useGridColumnHeaders = props => {
|
|
|
44
45
|
const apiRef = useGridPrivateApiContext();
|
|
45
46
|
const theme = useTheme();
|
|
46
47
|
const rootProps = useGridRootProps();
|
|
47
|
-
const hasVirtualization = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);
|
|
48
48
|
const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
|
|
49
|
+
const hasVirtualization = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);
|
|
50
|
+
const columnGroupsModel = useGridSelector(apiRef, gridColumnGroupsUnwrappedModelSelector);
|
|
49
51
|
const columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);
|
|
50
52
|
const renderContext = useGridSelector(apiRef, gridRenderContextColumnsSelector);
|
|
51
53
|
const pinnedColumns = useGridSelector(apiRef, gridVisiblePinnedColumnDefinitionsSelector);
|
|
@@ -214,13 +216,13 @@ export const useGridColumnHeaders = props => {
|
|
|
214
216
|
} = columnsToRender;
|
|
215
217
|
const rowStructure = columnGroupsHeaderStructure[depth];
|
|
216
218
|
const firstColumnFieldToRender = visibleColumns[firstColumnToRender].field;
|
|
217
|
-
const firstGroupToRender =
|
|
219
|
+
const firstGroupToRender = columnGroupsModel[firstColumnFieldToRender]?.[depth] ?? null;
|
|
218
220
|
const firstGroupIndex = rowStructure.findIndex(({
|
|
219
221
|
groupId,
|
|
220
222
|
columnFields
|
|
221
223
|
}) => groupId === firstGroupToRender && columnFields.includes(firstColumnFieldToRender));
|
|
222
224
|
const lastColumnFieldToRender = visibleColumns[lastColumnToRender - 1].field;
|
|
223
|
-
const lastGroupToRender =
|
|
225
|
+
const lastGroupToRender = columnGroupsModel[lastColumnFieldToRender]?.[depth] ?? null;
|
|
224
226
|
const lastGroupIndex = rowStructure.findIndex(({
|
|
225
227
|
groupId,
|
|
226
228
|
columnFields
|
|
@@ -252,7 +252,7 @@ export const useGridFocus = (apiRef, props) => {
|
|
|
252
252
|
apiRef.current.setColumnGroupHeaderFocus(fields[0], depth, event);
|
|
253
253
|
}, [apiRef]);
|
|
254
254
|
const handleBlur = React.useCallback((_, event) => {
|
|
255
|
-
if (event.relatedTarget?.
|
|
255
|
+
if (event.relatedTarget?.getAttribute('class')?.includes(gridClasses.columnHeader)) {
|
|
256
256
|
return;
|
|
257
257
|
}
|
|
258
258
|
logger.debug(`Clearing focus`);
|
package/index.js
CHANGED
|
@@ -12,6 +12,7 @@ import { gridRenderContextColumnsSelector, gridVirtualizationColumnEnabledSelect
|
|
|
12
12
|
import { computeOffsetLeft } from '../virtualization/useGridVirtualScroller';
|
|
13
13
|
import { GridColumnGroupHeader } from '../../../components/columnHeaders/GridColumnGroupHeader';
|
|
14
14
|
import { GridPinnedColumnPosition, gridColumnPositionsSelector, gridVisiblePinnedColumnDefinitionsSelector } from '../columns';
|
|
15
|
+
import { gridColumnGroupsUnwrappedModelSelector } from '../columnGrouping/gridColumnGroupsSelector';
|
|
15
16
|
import { GridScrollbarFillerCell as ScrollbarFiller } from '../../../components/GridScrollbarFillerCell';
|
|
16
17
|
import { getPinnedCellOffset } from '../../../internals/utils/getPinnedCellOffset';
|
|
17
18
|
import { GridColumnHeaderSeparatorSides } from '../../../components/columnHeaders/GridColumnHeaderSeparator';
|
|
@@ -44,8 +45,9 @@ export const useGridColumnHeaders = props => {
|
|
|
44
45
|
const apiRef = useGridPrivateApiContext();
|
|
45
46
|
const theme = useTheme();
|
|
46
47
|
const rootProps = useGridRootProps();
|
|
47
|
-
const hasVirtualization = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);
|
|
48
48
|
const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
|
|
49
|
+
const hasVirtualization = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);
|
|
50
|
+
const columnGroupsModel = useGridSelector(apiRef, gridColumnGroupsUnwrappedModelSelector);
|
|
49
51
|
const columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);
|
|
50
52
|
const renderContext = useGridSelector(apiRef, gridRenderContextColumnsSelector);
|
|
51
53
|
const pinnedColumns = useGridSelector(apiRef, gridVisiblePinnedColumnDefinitionsSelector);
|
|
@@ -214,13 +216,13 @@ export const useGridColumnHeaders = props => {
|
|
|
214
216
|
} = columnsToRender;
|
|
215
217
|
const rowStructure = columnGroupsHeaderStructure[depth];
|
|
216
218
|
const firstColumnFieldToRender = visibleColumns[firstColumnToRender].field;
|
|
217
|
-
const firstGroupToRender =
|
|
219
|
+
const firstGroupToRender = columnGroupsModel[firstColumnFieldToRender]?.[depth] ?? null;
|
|
218
220
|
const firstGroupIndex = rowStructure.findIndex(({
|
|
219
221
|
groupId,
|
|
220
222
|
columnFields
|
|
221
223
|
}) => groupId === firstGroupToRender && columnFields.includes(firstColumnFieldToRender));
|
|
222
224
|
const lastColumnFieldToRender = visibleColumns[lastColumnToRender - 1].field;
|
|
223
|
-
const lastGroupToRender =
|
|
225
|
+
const lastGroupToRender = columnGroupsModel[lastColumnFieldToRender]?.[depth] ?? null;
|
|
224
226
|
const lastGroupIndex = rowStructure.findIndex(({
|
|
225
227
|
groupId,
|
|
226
228
|
columnFields
|
|
@@ -252,7 +252,7 @@ export const useGridFocus = (apiRef, props) => {
|
|
|
252
252
|
apiRef.current.setColumnGroupHeaderFocus(fields[0], depth, event);
|
|
253
253
|
}, [apiRef]);
|
|
254
254
|
const handleBlur = React.useCallback((_, event) => {
|
|
255
|
-
if (event.relatedTarget?.
|
|
255
|
+
if (event.relatedTarget?.getAttribute('class')?.includes(gridClasses.columnHeader)) {
|
|
256
256
|
return;
|
|
257
257
|
}
|
|
258
258
|
logger.debug(`Clearing focus`);
|
package/modern/index.js
CHANGED
|
@@ -19,6 +19,7 @@ var _virtualization = require("../virtualization");
|
|
|
19
19
|
var _useGridVirtualScroller = require("../virtualization/useGridVirtualScroller");
|
|
20
20
|
var _GridColumnGroupHeader = require("../../../components/columnHeaders/GridColumnGroupHeader");
|
|
21
21
|
var _columns = require("../columns");
|
|
22
|
+
var _gridColumnGroupsSelector = require("../columnGrouping/gridColumnGroupsSelector");
|
|
22
23
|
var _GridScrollbarFillerCell = require("../../../components/GridScrollbarFillerCell");
|
|
23
24
|
var _getPinnedCellOffset = require("../../../internals/utils/getPinnedCellOffset");
|
|
24
25
|
var _GridColumnHeaderSeparator = require("../../../components/columnHeaders/GridColumnHeaderSeparator");
|
|
@@ -53,8 +54,9 @@ const useGridColumnHeaders = props => {
|
|
|
53
54
|
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
|
|
54
55
|
const theme = (0, _styles.useTheme)();
|
|
55
56
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
56
|
-
const hasVirtualization = (0, _utils.useGridSelector)(apiRef, _virtualization.gridVirtualizationColumnEnabledSelector);
|
|
57
57
|
const dimensions = (0, _utils.useGridSelector)(apiRef, _dimensions.gridDimensionsSelector);
|
|
58
|
+
const hasVirtualization = (0, _utils.useGridSelector)(apiRef, _virtualization.gridVirtualizationColumnEnabledSelector);
|
|
59
|
+
const columnGroupsModel = (0, _utils.useGridSelector)(apiRef, _gridColumnGroupsSelector.gridColumnGroupsUnwrappedModelSelector);
|
|
58
60
|
const columnPositions = (0, _utils.useGridSelector)(apiRef, _columns.gridColumnPositionsSelector);
|
|
59
61
|
const renderContext = (0, _utils.useGridSelector)(apiRef, _virtualization.gridRenderContextColumnsSelector);
|
|
60
62
|
const pinnedColumns = (0, _utils.useGridSelector)(apiRef, _columns.gridVisiblePinnedColumnDefinitionsSelector);
|
|
@@ -223,13 +225,13 @@ const useGridColumnHeaders = props => {
|
|
|
223
225
|
} = columnsToRender;
|
|
224
226
|
const rowStructure = columnGroupsHeaderStructure[depth];
|
|
225
227
|
const firstColumnFieldToRender = visibleColumns[firstColumnToRender].field;
|
|
226
|
-
const firstGroupToRender =
|
|
228
|
+
const firstGroupToRender = columnGroupsModel[firstColumnFieldToRender]?.[depth] ?? null;
|
|
227
229
|
const firstGroupIndex = rowStructure.findIndex(({
|
|
228
230
|
groupId,
|
|
229
231
|
columnFields
|
|
230
232
|
}) => groupId === firstGroupToRender && columnFields.includes(firstColumnFieldToRender));
|
|
231
233
|
const lastColumnFieldToRender = visibleColumns[lastColumnToRender - 1].field;
|
|
232
|
-
const lastGroupToRender =
|
|
234
|
+
const lastGroupToRender = columnGroupsModel[lastColumnFieldToRender]?.[depth] ?? null;
|
|
233
235
|
const lastGroupIndex = rowStructure.findIndex(({
|
|
234
236
|
groupId,
|
|
235
237
|
columnFields
|
|
@@ -262,7 +262,7 @@ const useGridFocus = (apiRef, props) => {
|
|
|
262
262
|
apiRef.current.setColumnGroupHeaderFocus(fields[0], depth, event);
|
|
263
263
|
}, [apiRef]);
|
|
264
264
|
const handleBlur = React.useCallback((_, event) => {
|
|
265
|
-
if (event.relatedTarget?.
|
|
265
|
+
if (event.relatedTarget?.getAttribute('class')?.includes(_gridClasses.gridClasses.columnHeader)) {
|
|
266
266
|
return;
|
|
267
267
|
}
|
|
268
268
|
logger.debug(`Clearing focus`);
|
package/node/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-data-grid",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.4.0",
|
|
4
4
|
"description": "The Community plan edition of the Data Grid components (MUI X).",
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"main": "./node/index.js",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"@babel/runtime": "^7.24.0",
|
|
41
41
|
"@mui/system": "^5.15.14",
|
|
42
42
|
"@mui/utils": "^5.15.14",
|
|
43
|
-
"clsx": "^2.1.
|
|
43
|
+
"clsx": "^2.1.1",
|
|
44
44
|
"prop-types": "^15.8.1",
|
|
45
45
|
"reselect": "^4.1.8"
|
|
46
46
|
},
|