@mui/x-data-grid-premium 7.29.5 → 7.29.7

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,72 @@
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
+ ## v7.29.7
7
+
8
+ <!-- generated comparing v7.29.6..v7.x -->
9
+
10
+ _Jun 26, 2025_
11
+
12
+ We'd like to extend a big thank you to the 4 contributors who made this release possible.
13
+
14
+ Special thanks go out to the community members for their valuable contributions:
15
+ @alisasanib
16
+
17
+ Following are all team members who have contributed to this release:
18
+ @mapache-salvaje, @arminmeh, @michelengelen
19
+
20
+ ### Data Grid
21
+
22
+ #### `@mui/x-data-grid@7.29.7`
23
+
24
+ Internal changes.
25
+
26
+ #### `@mui/x-data-grid-pro@7.29.7` [![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.29.7`, plus:
29
+
30
+ - [DataGridPro] Fix pinned columns order in column management (#18053) @alisasanib
31
+
32
+ #### `@mui/x-data-grid-premium@7.29.7` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
33
+
34
+ Same changes as in `@mui/x-data-grid-pro@7.29.7`.
35
+
36
+ ### Docs
37
+
38
+ - [docs] Revise the Row Grouping doc (#17494) @mapache-salvaje
39
+ - [docs] Document `GridRenderContext` (#18501) @arminmeh
40
+ - [docs] Prevent stale rows from appearing on sort and filter change in the lazy loading demo (#18463) @arminmeh
41
+
42
+ ### Miscellaneous
43
+
44
+ - [infra] Add automated release PR creation script (#18450) @michelengelen
45
+
46
+ ## 7.29.6
47
+
48
+ _Jun 6, 2025_
49
+
50
+ We'd like to extend a big thank you to @arminmeh, who made this release possible.
51
+
52
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
53
+
54
+ ### Data Grid
55
+
56
+ #### `@mui/x-data-grid@7.29.6`
57
+
58
+ - [DataGrid] Keep pipe pre-processors execution order when callback reference changes (#18217) @arminmeh
59
+
60
+ #### `@mui/x-data-grid-pro@7.29.6` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
61
+
62
+ Same changes as in `@mui/x-data-grid@7.29.6`.
63
+
64
+ #### `@mui/x-data-grid-premium@7.29.6` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
65
+
66
+ Same changes as in `@mui/x-data-grid-pro@7.29.6`.
67
+
68
+ ### Docs
69
+
70
+ - [docs] Keep `groupingColDef` reference stable in the grid demos (#17549) @arminmeh
71
+
6
72
  ## 7.29.5
7
73
 
8
74
  _May 29, 2025_
@@ -20,19 +20,23 @@ const useDataGridPremiumComponent = (inputApiRef, props) => {
20
20
 
21
21
  /**
22
22
  * Register all pre-processors called during state initialization here.
23
+ * Some pre-processors are changing the same part of the state (like the order of the columns).
24
+ * Order them in descending order of priority.
25
+ * For example, left pinned columns should always render first from the left, so the `hydrateColumns` pre-processor from `useGridColumnPinningPreProcessors` should be called last (after all other `hydrateColumns` pre-processors).
26
+ * Similarly, the `hydrateColumns` pre-processor from `useGridRowSelectionPreProcessors` should be called after `useGridRowGroupingPreProcessors` because the selection checkboxes should appear before the grouping columns.
27
+ * Desired autogenerated columns order is:
28
+ * left pinned columns -> row reordering column -> checkbox column -> tree data / row grouping column -> master detail column -> rest of the columns
23
29
  */
24
- (0, _internals.useGridRowSelectionPreProcessors)(apiRef, props);
25
- (0, _internals.useGridRowReorderPreProcessors)(apiRef, props);
30
+ (0, _internals.useGridDetailPanelPreProcessors)(apiRef, props);
26
31
  (0, _useGridRowGroupingPreProcessors.useGridRowGroupingPreProcessors)(apiRef, props);
27
32
  (0, _useGridDataSourceRowGroupingPreProcessors.useGridDataSourceRowGroupingPreProcessors)(apiRef, props);
28
33
  (0, _internals.useGridTreeDataPreProcessors)(apiRef, props);
29
34
  (0, _internals.useGridDataSourceTreeDataPreProcessors)(apiRef, props);
35
+ (0, _internals.useGridRowSelectionPreProcessors)(apiRef, props);
30
36
  (0, _internals.useGridLazyLoaderPreProcessors)(apiRef, props);
31
37
  (0, _internals.useGridRowPinningPreProcessors)(apiRef);
32
38
  (0, _useGridAggregationPreProcessors.useGridAggregationPreProcessors)(apiRef, props);
33
- (0, _internals.useGridDetailPanelPreProcessors)(apiRef, props);
34
- // The column pinning `hydrateColumns` pre-processor must be after every other `hydrateColumns` pre-processors
35
- // Because it changes the order of the columns.
39
+ (0, _internals.useGridRowReorderPreProcessors)(apiRef, props);
36
40
  (0, _internals.useGridColumnPinningPreProcessors)(apiRef, props);
37
41
  (0, _internals.useGridRowsPreProcessors)(apiRef);
38
42
 
@@ -13,19 +13,23 @@ export const useDataGridPremiumComponent = (inputApiRef, props) => {
13
13
 
14
14
  /**
15
15
  * Register all pre-processors called during state initialization here.
16
+ * Some pre-processors are changing the same part of the state (like the order of the columns).
17
+ * Order them in descending order of priority.
18
+ * For example, left pinned columns should always render first from the left, so the `hydrateColumns` pre-processor from `useGridColumnPinningPreProcessors` should be called last (after all other `hydrateColumns` pre-processors).
19
+ * Similarly, the `hydrateColumns` pre-processor from `useGridRowSelectionPreProcessors` should be called after `useGridRowGroupingPreProcessors` because the selection checkboxes should appear before the grouping columns.
20
+ * Desired autogenerated columns order is:
21
+ * left pinned columns -> row reordering column -> checkbox column -> tree data / row grouping column -> master detail column -> rest of the columns
16
22
  */
17
- useGridRowSelectionPreProcessors(apiRef, props);
18
- useGridRowReorderPreProcessors(apiRef, props);
23
+ useGridDetailPanelPreProcessors(apiRef, props);
19
24
  useGridRowGroupingPreProcessors(apiRef, props);
20
25
  useGridDataSourceRowGroupingPreProcessors(apiRef, props);
21
26
  useGridTreeDataPreProcessors(apiRef, props);
22
27
  useGridDataSourceTreeDataPreProcessors(apiRef, props);
28
+ useGridRowSelectionPreProcessors(apiRef, props);
23
29
  useGridLazyLoaderPreProcessors(apiRef, props);
24
30
  useGridRowPinningPreProcessors(apiRef);
25
31
  useGridAggregationPreProcessors(apiRef, props);
26
- useGridDetailPanelPreProcessors(apiRef, props);
27
- // The column pinning `hydrateColumns` pre-processor must be after every other `hydrateColumns` pre-processors
28
- // Because it changes the order of the columns.
32
+ useGridRowReorderPreProcessors(apiRef, props);
29
33
  useGridColumnPinningPreProcessors(apiRef, props);
30
34
  useGridRowsPreProcessors(apiRef);
31
35
 
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { gridColumnLookupSelector, gridRowTreeSelector, useFirstRender, GRID_CHECKBOX_SELECTION_FIELD } from '@mui/x-data-grid-pro';
2
+ import { gridColumnLookupSelector, gridRowTreeSelector, useFirstRender } from '@mui/x-data-grid-pro';
3
3
  import { useGridRegisterPipeProcessor, useGridRegisterStrategyProcessor, sortRowTree, createRowTree, updateRowTree, getVisibleRowsLookup } from '@mui/x-data-grid-pro/internals';
4
4
  import { gridRowGroupingModelSelector, gridRowGroupingSanitizedModelSelector } from "./gridRowGroupingSelector.js";
5
5
  import { createGroupingColDefForAllGroupingCriteria, createGroupingColDefForOneGroupingCriteria } from "./createGroupingColDef.js";
@@ -66,9 +66,7 @@ export const useGridRowGroupingPreProcessors = (apiRef, props) => {
66
66
  }
67
67
  newColumnsLookup[groupingColDef.field] = groupingColDef;
68
68
  });
69
- const checkBoxFieldIndex = newColumnFields.findIndex(field => field === GRID_CHECKBOX_SELECTION_FIELD);
70
- const checkBoxColumn = checkBoxFieldIndex !== -1 ? newColumnFields.splice(checkBoxFieldIndex, 1) : [];
71
- newColumnFields = [...checkBoxColumn, ...groupingColDefs.map(colDef => colDef.field), ...newColumnFields];
69
+ newColumnFields = [...groupingColDefs.map(colDef => colDef.field), ...newColumnFields];
72
70
  columnsState.orderedFields = newColumnFields;
73
71
  columnsState.lookup = newColumnsLookup;
74
72
  return columnsState;
@@ -1,6 +1,6 @@
1
1
  import { ponyfillGlobal } from '@mui/utils';
2
2
  export const getReleaseInfo = () => {
3
- const releaseInfo = "MTc0ODQ2OTYwMDAwMA==";
3
+ const releaseInfo = "MTc1MDg4ODgwMDAwMA==";
4
4
  if (process.env.NODE_ENV !== 'production') {
5
5
  // A simple hack to set the value in the test environment (has no build step).
6
6
  // eslint-disable-next-line no-useless-concat
@@ -73,9 +73,7 @@ const useGridRowGroupingPreProcessors = (apiRef, props) => {
73
73
  }
74
74
  newColumnsLookup[groupingColDef.field] = groupingColDef;
75
75
  });
76
- const checkBoxFieldIndex = newColumnFields.findIndex(field => field === _xDataGridPro.GRID_CHECKBOX_SELECTION_FIELD);
77
- const checkBoxColumn = checkBoxFieldIndex !== -1 ? newColumnFields.splice(checkBoxFieldIndex, 1) : [];
78
- newColumnFields = [...checkBoxColumn, ...groupingColDefs.map(colDef => colDef.field), ...newColumnFields];
76
+ newColumnFields = [...groupingColDefs.map(colDef => colDef.field), ...newColumnFields];
79
77
  columnsState.orderedFields = newColumnFields;
80
78
  columnsState.lookup = newColumnsLookup;
81
79
  return columnsState;
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid-premium v7.29.5
2
+ * @mui/x-data-grid-premium v7.29.7
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -13,19 +13,23 @@ export const useDataGridPremiumComponent = (inputApiRef, props) => {
13
13
 
14
14
  /**
15
15
  * Register all pre-processors called during state initialization here.
16
+ * Some pre-processors are changing the same part of the state (like the order of the columns).
17
+ * Order them in descending order of priority.
18
+ * For example, left pinned columns should always render first from the left, so the `hydrateColumns` pre-processor from `useGridColumnPinningPreProcessors` should be called last (after all other `hydrateColumns` pre-processors).
19
+ * Similarly, the `hydrateColumns` pre-processor from `useGridRowSelectionPreProcessors` should be called after `useGridRowGroupingPreProcessors` because the selection checkboxes should appear before the grouping columns.
20
+ * Desired autogenerated columns order is:
21
+ * left pinned columns -> row reordering column -> checkbox column -> tree data / row grouping column -> master detail column -> rest of the columns
16
22
  */
17
- useGridRowSelectionPreProcessors(apiRef, props);
18
- useGridRowReorderPreProcessors(apiRef, props);
23
+ useGridDetailPanelPreProcessors(apiRef, props);
19
24
  useGridRowGroupingPreProcessors(apiRef, props);
20
25
  useGridDataSourceRowGroupingPreProcessors(apiRef, props);
21
26
  useGridTreeDataPreProcessors(apiRef, props);
22
27
  useGridDataSourceTreeDataPreProcessors(apiRef, props);
28
+ useGridRowSelectionPreProcessors(apiRef, props);
23
29
  useGridLazyLoaderPreProcessors(apiRef, props);
24
30
  useGridRowPinningPreProcessors(apiRef);
25
31
  useGridAggregationPreProcessors(apiRef, props);
26
- useGridDetailPanelPreProcessors(apiRef, props);
27
- // The column pinning `hydrateColumns` pre-processor must be after every other `hydrateColumns` pre-processors
28
- // Because it changes the order of the columns.
32
+ useGridRowReorderPreProcessors(apiRef, props);
29
33
  useGridColumnPinningPreProcessors(apiRef, props);
30
34
  useGridRowsPreProcessors(apiRef);
31
35
 
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { gridColumnLookupSelector, gridRowTreeSelector, useFirstRender, GRID_CHECKBOX_SELECTION_FIELD } from '@mui/x-data-grid-pro';
2
+ import { gridColumnLookupSelector, gridRowTreeSelector, useFirstRender } from '@mui/x-data-grid-pro';
3
3
  import { useGridRegisterPipeProcessor, useGridRegisterStrategyProcessor, sortRowTree, createRowTree, updateRowTree, getVisibleRowsLookup } from '@mui/x-data-grid-pro/internals';
4
4
  import { gridRowGroupingModelSelector, gridRowGroupingSanitizedModelSelector } from "./gridRowGroupingSelector.js";
5
5
  import { createGroupingColDefForAllGroupingCriteria, createGroupingColDefForOneGroupingCriteria } from "./createGroupingColDef.js";
@@ -66,9 +66,7 @@ export const useGridRowGroupingPreProcessors = (apiRef, props) => {
66
66
  }
67
67
  newColumnsLookup[groupingColDef.field] = groupingColDef;
68
68
  });
69
- const checkBoxFieldIndex = newColumnFields.findIndex(field => field === GRID_CHECKBOX_SELECTION_FIELD);
70
- const checkBoxColumn = checkBoxFieldIndex !== -1 ? newColumnFields.splice(checkBoxFieldIndex, 1) : [];
71
- newColumnFields = [...checkBoxColumn, ...groupingColDefs.map(colDef => colDef.field), ...newColumnFields];
69
+ newColumnFields = [...groupingColDefs.map(colDef => colDef.field), ...newColumnFields];
72
70
  columnsState.orderedFields = newColumnFields;
73
71
  columnsState.lookup = newColumnsLookup;
74
72
  return columnsState;
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid-premium v7.29.5
2
+ * @mui/x-data-grid-premium v7.29.7
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -1,6 +1,6 @@
1
1
  import { ponyfillGlobal } from '@mui/utils';
2
2
  export const getReleaseInfo = () => {
3
- const releaseInfo = "MTc0ODQ2OTYwMDAwMA==";
3
+ const releaseInfo = "MTc1MDg4ODgwMDAwMA==";
4
4
  if (process.env.NODE_ENV !== 'production') {
5
5
  // A simple hack to set the value in the test environment (has no build step).
6
6
  // eslint-disable-next-line no-useless-concat
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid-premium",
3
- "version": "7.29.5",
3
+ "version": "7.29.7",
4
4
  "description": "The Premium plan edition of the Data Grid Components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./index.js",
@@ -40,10 +40,10 @@
40
40
  "exceljs": "^4.4.0",
41
41
  "prop-types": "^15.8.1",
42
42
  "reselect": "^5.1.1",
43
- "@mui/x-data-grid": "7.29.5",
43
+ "@mui/x-data-grid": "7.29.7",
44
+ "@mui/x-data-grid-pro": "7.29.7",
44
45
  "@mui/x-internals": "7.29.0",
45
- "@mui/x-license": "7.29.1",
46
- "@mui/x-data-grid-pro": "7.29.5"
46
+ "@mui/x-license": "7.29.1"
47
47
  },
48
48
  "peerDependencies": {
49
49
  "@emotion/react": "^11.9.0",
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getReleaseInfo = void 0;
7
7
  var _utils = require("@mui/utils");
8
8
  const getReleaseInfo = () => {
9
- const releaseInfo = "MTc0ODQ2OTYwMDAwMA==";
9
+ const releaseInfo = "MTc1MDg4ODgwMDAwMA==";
10
10
  if (process.env.NODE_ENV !== 'production') {
11
11
  // A simple hack to set the value in the test environment (has no build step).
12
12
  // eslint-disable-next-line no-useless-concat