@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 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` [![pro](https://mui.com/r/x-pro-svg)](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` [![premium](https://mui.com/r/x-premium-svg)](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` [![pro](https://mui.com/r/x-pro-svg)](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 = apiRef.current.getColumnGroupPath(firstColumnFieldToRender)[depth] ?? null;
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 = apiRef.current.getColumnGroupPath(lastColumnFieldToRender)[depth] ?? null;
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?.className.includes(gridClasses.columnHeader)) {
255
+ if (event.relatedTarget?.getAttribute('class')?.includes(gridClasses.columnHeader)) {
256
256
  return;
257
257
  }
258
258
  logger.debug(`Clearing focus`);
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.3.2
2
+ * @mui/x-data-grid v7.4.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -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 = apiRef.current.getColumnGroupPath(firstColumnFieldToRender)[depth] ?? null;
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 = apiRef.current.getColumnGroupPath(lastColumnFieldToRender)[depth] ?? null;
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?.className.includes(gridClasses.columnHeader)) {
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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.3.2
2
+ * @mui/x-data-grid v7.4.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -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 = apiRef.current.getColumnGroupPath(firstColumnFieldToRender)[depth] ?? null;
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 = apiRef.current.getColumnGroupPath(lastColumnFieldToRender)[depth] ?? null;
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?.className.includes(_gridClasses.gridClasses.columnHeader)) {
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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.3.2
2
+ * @mui/x-data-grid v7.4.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid",
3
- "version": "7.3.2",
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.0",
43
+ "clsx": "^2.1.1",
44
44
  "prop-types": "^15.8.1",
45
45
  "reselect": "^4.1.8"
46
46
  },