@mui/x-data-grid-premium 7.27.0 → 7.27.2

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,95 @@
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.27.2
7
+
8
+ <!-- generated comparing v7.27.1..v7.x -->
9
+
10
+ _Feb 27, 2025_
11
+
12
+ We'd like to offer a big thanks to the 5 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - 🐞 Bugfixes
15
+ - 🌍 Improve Hungarian (hu-HU) and Russian (ru-RU) locales on the Data Grid
16
+
17
+ Special thanks go out to the community contributors who have helped make this release possible:
18
+ @pcorpet, @noherczeg, @denpiligrim.
19
+ Following are all team members who have contributed to this release:
20
+ @MBilalShafi, @KenanYusuf.
21
+
22
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
23
+
24
+ ### Data Grid
25
+
26
+ #### `@mui/x-data-grid@v7.27.2`
27
+
28
+ - [DataGrid] Fix `showColumnVerticalBorder` prop (#16726) @KenanYusuf
29
+ - [DataGrid] Make server-side data navigation consistent (#16735) @MBilalShafi
30
+ - [DataGrid] Use readonly array for `GridSortModel` (#16731) @pcorpet
31
+ - [l10n] Improve Hungarian (hu-HU) locale (#16746) @noherczeg
32
+ - [l10n] Improve Russian (ru-RU) locale (#16725) @denpiligrim
33
+
34
+ #### `@mui/x-data-grid-pro@v7.27.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
35
+
36
+ Same changes as in `@mui/x-data-grid@v7.27.2`.
37
+
38
+ #### `@mui/x-data-grid-premium@v7.27.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
39
+
40
+ Same changes as in `@mui/x-data-grid-pro@v7.27.2`.
41
+
42
+ ## 7.27.1
43
+
44
+ _Feb 25, 2025_
45
+
46
+ We'd like to offer a big thanks to the 5 contributors who made this release possible. Here are some highlights ✨:
47
+
48
+ - 🐞 Bugfixes
49
+ - 🌍 Add Bangla (bn-BD) locale on the Data Grid and Date Pickers
50
+
51
+ Special thanks go out to the community contributors who have helped make this release possible:
52
+ @nusr, @officialkidmax.
53
+ Following are all team members who have contributed to this release:
54
+ @bernardobelchior, @MBilalShafi, @KenanYusuf.
55
+
56
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
57
+
58
+ ### Data Grid
59
+
60
+ #### `@mui/x-data-grid@7.27.1`
61
+
62
+ - [DataGrid] Fix the pagination unexpected behavior when using -1 for "All" rows per page (#16485) @nusr
63
+ - [DataGrid] Extract `getRowId()` API method as a selector (#16574) @MBilalShafi
64
+ - [DataGrid] Fix scrollbars overlapping cells on mount (#16653) @KenanYusuf
65
+ - [l10n] Add Bangla (bn-BD) locale (#16649) @officialkidmax
66
+
67
+ #### `@mui/x-data-grid-pro@7.27.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
68
+
69
+ Same changes as in `@mui/x-data-grid@7.27.1`.
70
+
71
+ #### `@mui/x-data-grid-premium@7.27.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
72
+
73
+ Same changes as in `@mui/x-data-grid-pro@7.27.1`.
74
+
75
+ ### Date and Time Pickers
76
+
77
+ #### `@mui/x-date-pickers@7.27.1`
78
+
79
+ - [l10n] Add Bangla (bn-BD) locale (#16649) @officialkidmax
80
+
81
+ #### `@mui/x-date-pickers-pro@7.27.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
82
+
83
+ Same changes as in `@mui/x-date-pickers@7.27.1`.
84
+
85
+ ### Charts
86
+
87
+ #### `@mui/x-charts@7.27.1`
88
+
89
+ - [charts] Fix empty series array in pie chart (#16657) @bernardobelchior
90
+
91
+ #### `@mui/x-charts-pro@7.27.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
92
+
93
+ Same changes as in `@mui/x-charts@7.27.1`.
94
+
6
95
  ## 7.27.0
7
96
 
8
97
  _Feb 17, 2025_
@@ -394,6 +394,8 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
394
394
  getRowHeight: _propTypes.default.func,
395
395
  /**
396
396
  * Return the id of a given [[GridRowModel]].
397
+ * Ensure the reference of this prop is stable to avoid performance implications.
398
+ * It could be done by either defining the prop outside of the component or by memoizing it.
397
399
  */
398
400
  getRowId: _propTypes.default.func,
399
401
  /**
@@ -39,6 +39,7 @@ const useDataGridPremiumComponent = (inputApiRef, props) => {
39
39
  /**
40
40
  * Register all state initializers here.
41
41
  */
42
+ (0, _internals.useGridInitializeState)(_internals.propsStateInitializer, apiRef, props);
42
43
  (0, _internals.useGridInitializeState)(_internals.headerFilteringStateInitializer, apiRef, props);
43
44
  (0, _internals.useGridInitializeState)(_useGridRowGrouping.rowGroupingStateInitializer, apiRef, props);
44
45
  (0, _internals.useGridInitializeState)(_useGridAggregation.aggregationStateInitializer, apiRef, props);
@@ -387,6 +387,8 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
387
387
  getRowHeight: PropTypes.func,
388
388
  /**
389
389
  * Return the id of a given [[GridRowModel]].
390
+ * Ensure the reference of this prop is stable to avoid performance implications.
391
+ * It could be done by either defining the prop outside of the component or by memoizing it.
390
392
  */
391
393
  getRowId: PropTypes.func,
392
394
  /**
@@ -1,4 +1,4 @@
1
- import { useGridInitialization, useGridInitializeState, useGridClipboard, useGridColumnMenu, useGridColumns, columnsStateInitializer, useGridDensity, useGridCsvExport, useGridPrintExport, useGridFilter, filterStateInitializer, useGridFocus, useGridKeyboardNavigation, useGridPagination, paginationStateInitializer, useGridPreferencesPanel, useGridEditing, editingStateInitializer, useGridRows, useGridRowsPreProcessors, rowsStateInitializer, useGridRowsMeta, 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, headerFilteringStateInitializer, useGridHeaderFiltering, virtualizationStateInitializer, useGridVirtualization, useGridDataSourceTreeDataPreProcessors, useGridDataSource, dataSourceStateInitializer, useGridRowSpanning, rowSpanningStateInitializer, useGridListView, listViewStateInitializer } from '@mui/x-data-grid-pro/internals';
1
+ import { useGridInitialization, useGridInitializeState, useGridClipboard, useGridColumnMenu, useGridColumns, columnsStateInitializer, useGridDensity, useGridCsvExport, useGridPrintExport, useGridFilter, filterStateInitializer, useGridFocus, useGridKeyboardNavigation, useGridPagination, paginationStateInitializer, useGridPreferencesPanel, useGridEditing, editingStateInitializer, useGridRows, useGridRowsPreProcessors, rowsStateInitializer, useGridRowsMeta, 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, headerFilteringStateInitializer, useGridHeaderFiltering, virtualizationStateInitializer, useGridVirtualization, useGridDataSourceTreeDataPreProcessors, useGridDataSource, dataSourceStateInitializer, useGridRowSpanning, rowSpanningStateInitializer, useGridListView, listViewStateInitializer, propsStateInitializer } from '@mui/x-data-grid-pro/internals';
2
2
  // Premium-only features
3
3
  import { useGridAggregation, aggregationStateInitializer } from "../hooks/features/aggregation/useGridAggregation.js";
4
4
  import { useGridAggregationPreProcessors } from "../hooks/features/aggregation/useGridAggregationPreProcessors.js";
@@ -32,6 +32,7 @@ export const useDataGridPremiumComponent = (inputApiRef, props) => {
32
32
  /**
33
33
  * Register all state initializers here.
34
34
  */
35
+ useGridInitializeState(propsStateInitializer, apiRef, props);
35
36
  useGridInitializeState(headerFilteringStateInitializer, apiRef, props);
36
37
  useGridInitializeState(rowGroupingStateInitializer, apiRef, props);
37
38
  useGridInitializeState(aggregationStateInitializer, apiRef, props);
@@ -26,7 +26,7 @@ const getAggregationCellValue = ({
26
26
  // A.B.A
27
27
  // A.B.B
28
28
  const rowNode = apiRef.current.getRowNode(rowId);
29
- if (rowNode.type === 'group') {
29
+ if (rowNode?.type === 'group') {
30
30
  return;
31
31
  }
32
32
  if (typeof aggregationFunction.getCellValue === 'function') {
@@ -2,6 +2,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  const _excluded = ["aggregationWrappedProperties"];
4
4
  import * as React from 'react';
5
+ import { gridRowIdSelector, gridRowTreeSelector } from '@mui/x-data-grid-pro';
5
6
  import { gridAggregationLookupSelector } from "./gridAggregationSelectors.js";
6
7
  import { GridFooterCell } from "../../../components/GridFooterCell.js";
7
8
  import { GridAggregationHeader } from "../../../components/GridAggregationHeader.js";
@@ -12,7 +13,7 @@ const getAggregationValueWrappedValueGetter = ({
12
13
  getCellAggregationResult
13
14
  }) => {
14
15
  const wrappedValueGetter = (value, row, column, apiRef) => {
15
- const rowId = apiRef.current.getRowId?.(row);
16
+ const rowId = gridRowIdSelector(apiRef.current.state, row);
16
17
  const cellAggregationResult = rowId ? getCellAggregationResult(rowId, column.field) : null;
17
18
  if (cellAggregationResult != null) {
18
19
  return cellAggregationResult?.value ?? null;
@@ -35,7 +36,7 @@ const getAggregationValueWrappedValueFormatter = ({
35
36
  return valueFormatter;
36
37
  }
37
38
  const wrappedValueFormatter = (value, row, column, apiRef) => {
38
- const rowId = apiRef.current.getRowId(row);
39
+ const rowId = gridRowIdSelector(apiRef.current.state, row);
39
40
  if (rowId != null) {
40
41
  const cellAggregationResult = getCellAggregationResult(rowId, column.field);
41
42
  if (cellAggregationResult != null) {
@@ -94,7 +95,8 @@ const getWrappedFilterOperators = ({
94
95
  return null;
95
96
  }
96
97
  return (value, row, column, api) => {
97
- if (getCellAggregationResult(apiRef.current.getRowId(row), column.field) != null) {
98
+ const rowId = gridRowIdSelector(apiRef.current.state, row);
99
+ if (getCellAggregationResult(rowId, column.field) != null) {
98
100
  return true;
99
101
  }
100
102
  return filterFn(value, row, column, api);
@@ -133,7 +135,7 @@ export const wrapColumnWithAggregationValue = ({
133
135
  }) => {
134
136
  const getCellAggregationResult = (id, field) => {
135
137
  let cellAggregationPosition = null;
136
- const rowNode = apiRef.current.getRowNode(id);
138
+ const rowNode = gridRowTreeSelector(apiRef)[id];
137
139
  if (rowNode.type === 'group') {
138
140
  cellAggregationPosition = 'inline';
139
141
  } else if (id.toString().startsWith('auto-generated-group-footer-')) {
@@ -3,7 +3,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  const _excluded = ["leafField", "mainGroupingCriteria", "hideDescendantCount"],
4
4
  _excluded2 = ["leafField", "mainGroupingCriteria", "hideDescendantCount"];
5
5
  import * as React from 'react';
6
- import { GRID_STRING_COL_DEF } from '@mui/x-data-grid-pro';
6
+ import { GRID_STRING_COL_DEF, gridRowIdSelector, gridRowTreeSelector } from '@mui/x-data-grid-pro';
7
7
  import { isSingleSelectColDef } from '@mui/x-data-grid-pro/internals';
8
8
  import { GridGroupingColumnFooterCell } from "../../../components/GridGroupingColumnFooterCell.js";
9
9
  import { GridGroupingCriteriaCell } from "../../../components/GridGroupingCriteriaCell.js";
@@ -138,8 +138,8 @@ export const createGroupingColDefForOneGroupingCriteria = ({
138
138
  return '';
139
139
  },
140
140
  valueGetter: (value, row, column, apiRef) => {
141
- const rowId = apiRef.current.getRowId(row);
142
- const rowNode = apiRef.current.getRowNode(rowId);
141
+ const rowId = gridRowIdSelector(apiRef.current.state, row);
142
+ const rowNode = gridRowTreeSelector(apiRef)[rowId];
143
143
  if (!rowNode || rowNode.type === 'footer' || rowNode.type === 'pinnedRow') {
144
144
  return undefined;
145
145
  }
@@ -230,8 +230,8 @@ export const createGroupingColDefForAllGroupingCriteria = ({
230
230
  }));
231
231
  },
232
232
  valueGetter: (value, row) => {
233
- const rowId = apiRef.current.getRowId(row);
234
- const rowNode = apiRef.current.getRowNode(rowId);
233
+ const rowId = gridRowIdSelector(apiRef.current.state, row);
234
+ const rowNode = gridRowTreeSelector(apiRef)[rowId];
235
235
  if (!rowNode || rowNode.type === 'footer' || rowNode.type === 'pinnedRow') {
236
236
  return undefined;
237
237
  }
@@ -1,6 +1,6 @@
1
1
  import { ponyfillGlobal } from '@mui/utils';
2
2
  export const getReleaseInfo = () => {
3
- const releaseInfo = "MTczOTc0NjgwMDAwMA==";
3
+ const releaseInfo = "MTc0MDYwNzIwMDAwMA==";
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
@@ -32,7 +32,7 @@ const getAggregationCellValue = ({
32
32
  // A.B.A
33
33
  // A.B.B
34
34
  const rowNode = apiRef.current.getRowNode(rowId);
35
- if (rowNode.type === 'group') {
35
+ if (rowNode?.type === 'group') {
36
36
  return;
37
37
  }
38
38
  if (typeof aggregationFunction.getCellValue === 'function') {
@@ -1,9 +1,9 @@
1
1
  import * as React from 'react';
2
2
  import { RefObject } from '@mui/x-internals/types';
3
3
  import { GridColDef, GridFilterOperator } from '@mui/x-data-grid-pro';
4
- import { GridBaseColDef } from '@mui/x-data-grid-pro/internals';
4
+ import { type GridBaseColDef } from '@mui/x-data-grid-pro/internals';
5
5
  import { GridApiPremium } from '../../../models/gridApiPremium';
6
- import { GridAggregationRule } from './gridAggregationInterfaces';
6
+ import type { GridAggregationRule } from './gridAggregationInterfaces';
7
7
  declare const AGGREGATION_WRAPPABLE_PROPERTIES: readonly ["valueGetter", "valueFormatter", "renderCell", "renderHeader", "filterOperators"];
8
8
  type WrappableColumnProperty = (typeof AGGREGATION_WRAPPABLE_PROPERTIES)[number];
9
9
  interface GridColDefWithAggregationWrappers extends GridBaseColDef {
@@ -9,6 +9,7 @@ exports.wrapColumnWithAggregationValue = exports.unwrapColumnFromAggregation = v
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
+ var _xDataGridPro = require("@mui/x-data-grid-pro");
12
13
  var _gridAggregationSelectors = require("./gridAggregationSelectors");
13
14
  var _GridFooterCell = require("../../../components/GridFooterCell");
14
15
  var _GridAggregationHeader = require("../../../components/GridAggregationHeader");
@@ -20,7 +21,7 @@ const getAggregationValueWrappedValueGetter = ({
20
21
  getCellAggregationResult
21
22
  }) => {
22
23
  const wrappedValueGetter = (value, row, column, apiRef) => {
23
- const rowId = apiRef.current.getRowId?.(row);
24
+ const rowId = (0, _xDataGridPro.gridRowIdSelector)(apiRef.current.state, row);
24
25
  const cellAggregationResult = rowId ? getCellAggregationResult(rowId, column.field) : null;
25
26
  if (cellAggregationResult != null) {
26
27
  return cellAggregationResult?.value ?? null;
@@ -43,7 +44,7 @@ const getAggregationValueWrappedValueFormatter = ({
43
44
  return valueFormatter;
44
45
  }
45
46
  const wrappedValueFormatter = (value, row, column, apiRef) => {
46
- const rowId = apiRef.current.getRowId(row);
47
+ const rowId = (0, _xDataGridPro.gridRowIdSelector)(apiRef.current.state, row);
47
48
  if (rowId != null) {
48
49
  const cellAggregationResult = getCellAggregationResult(rowId, column.field);
49
50
  if (cellAggregationResult != null) {
@@ -102,7 +103,8 @@ const getWrappedFilterOperators = ({
102
103
  return null;
103
104
  }
104
105
  return (value, row, column, api) => {
105
- if (getCellAggregationResult(apiRef.current.getRowId(row), column.field) != null) {
106
+ const rowId = (0, _xDataGridPro.gridRowIdSelector)(apiRef.current.state, row);
107
+ if (getCellAggregationResult(rowId, column.field) != null) {
106
108
  return true;
107
109
  }
108
110
  return filterFn(value, row, column, api);
@@ -141,7 +143,7 @@ const wrapColumnWithAggregationValue = ({
141
143
  }) => {
142
144
  const getCellAggregationResult = (id, field) => {
143
145
  let cellAggregationPosition = null;
144
- const rowNode = apiRef.current.getRowNode(id);
146
+ const rowNode = (0, _xDataGridPro.gridRowTreeSelector)(apiRef)[id];
145
147
  if (rowNode.type === 'group') {
146
148
  cellAggregationPosition = 'inline';
147
149
  } else if (id.toString().startsWith('auto-generated-group-footer-')) {
@@ -146,8 +146,8 @@ const createGroupingColDefForOneGroupingCriteria = ({
146
146
  return '';
147
147
  },
148
148
  valueGetter: (value, row, column, apiRef) => {
149
- const rowId = apiRef.current.getRowId(row);
150
- const rowNode = apiRef.current.getRowNode(rowId);
149
+ const rowId = (0, _xDataGridPro.gridRowIdSelector)(apiRef.current.state, row);
150
+ const rowNode = (0, _xDataGridPro.gridRowTreeSelector)(apiRef)[rowId];
151
151
  if (!rowNode || rowNode.type === 'footer' || rowNode.type === 'pinnedRow') {
152
152
  return undefined;
153
153
  }
@@ -239,8 +239,8 @@ const createGroupingColDefForAllGroupingCriteria = ({
239
239
  }));
240
240
  },
241
241
  valueGetter: (value, row) => {
242
- const rowId = apiRef.current.getRowId(row);
243
- const rowNode = apiRef.current.getRowNode(rowId);
242
+ const rowId = (0, _xDataGridPro.gridRowIdSelector)(apiRef.current.state, row);
243
+ const rowNode = (0, _xDataGridPro.gridRowTreeSelector)(apiRef)[rowId];
244
244
  if (!rowNode || rowNode.type === 'footer' || rowNode.type === 'pinnedRow') {
245
245
  return undefined;
246
246
  }
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid-premium v7.27.0
2
+ * @mui/x-data-grid-premium v7.27.2
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -387,6 +387,8 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
387
387
  getRowHeight: PropTypes.func,
388
388
  /**
389
389
  * Return the id of a given [[GridRowModel]].
390
+ * Ensure the reference of this prop is stable to avoid performance implications.
391
+ * It could be done by either defining the prop outside of the component or by memoizing it.
390
392
  */
391
393
  getRowId: PropTypes.func,
392
394
  /**
@@ -1,4 +1,4 @@
1
- import { useGridInitialization, useGridInitializeState, useGridClipboard, useGridColumnMenu, useGridColumns, columnsStateInitializer, useGridDensity, useGridCsvExport, useGridPrintExport, useGridFilter, filterStateInitializer, useGridFocus, useGridKeyboardNavigation, useGridPagination, paginationStateInitializer, useGridPreferencesPanel, useGridEditing, editingStateInitializer, useGridRows, useGridRowsPreProcessors, rowsStateInitializer, useGridRowsMeta, 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, headerFilteringStateInitializer, useGridHeaderFiltering, virtualizationStateInitializer, useGridVirtualization, useGridDataSourceTreeDataPreProcessors, useGridDataSource, dataSourceStateInitializer, useGridRowSpanning, rowSpanningStateInitializer, useGridListView, listViewStateInitializer } from '@mui/x-data-grid-pro/internals';
1
+ import { useGridInitialization, useGridInitializeState, useGridClipboard, useGridColumnMenu, useGridColumns, columnsStateInitializer, useGridDensity, useGridCsvExport, useGridPrintExport, useGridFilter, filterStateInitializer, useGridFocus, useGridKeyboardNavigation, useGridPagination, paginationStateInitializer, useGridPreferencesPanel, useGridEditing, editingStateInitializer, useGridRows, useGridRowsPreProcessors, rowsStateInitializer, useGridRowsMeta, 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, headerFilteringStateInitializer, useGridHeaderFiltering, virtualizationStateInitializer, useGridVirtualization, useGridDataSourceTreeDataPreProcessors, useGridDataSource, dataSourceStateInitializer, useGridRowSpanning, rowSpanningStateInitializer, useGridListView, listViewStateInitializer, propsStateInitializer } from '@mui/x-data-grid-pro/internals';
2
2
  // Premium-only features
3
3
  import { useGridAggregation, aggregationStateInitializer } from "../hooks/features/aggregation/useGridAggregation.js";
4
4
  import { useGridAggregationPreProcessors } from "../hooks/features/aggregation/useGridAggregationPreProcessors.js";
@@ -32,6 +32,7 @@ export const useDataGridPremiumComponent = (inputApiRef, props) => {
32
32
  /**
33
33
  * Register all state initializers here.
34
34
  */
35
+ useGridInitializeState(propsStateInitializer, apiRef, props);
35
36
  useGridInitializeState(headerFilteringStateInitializer, apiRef, props);
36
37
  useGridInitializeState(rowGroupingStateInitializer, apiRef, props);
37
38
  useGridInitializeState(aggregationStateInitializer, apiRef, props);
@@ -26,7 +26,7 @@ const getAggregationCellValue = ({
26
26
  // A.B.A
27
27
  // A.B.B
28
28
  const rowNode = apiRef.current.getRowNode(rowId);
29
- if (rowNode.type === 'group') {
29
+ if (rowNode?.type === 'group') {
30
30
  return;
31
31
  }
32
32
  if (typeof aggregationFunction.getCellValue === 'function') {
@@ -2,6 +2,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  const _excluded = ["aggregationWrappedProperties"];
4
4
  import * as React from 'react';
5
+ import { gridRowIdSelector, gridRowTreeSelector } from '@mui/x-data-grid-pro';
5
6
  import { gridAggregationLookupSelector } from "./gridAggregationSelectors.js";
6
7
  import { GridFooterCell } from "../../../components/GridFooterCell.js";
7
8
  import { GridAggregationHeader } from "../../../components/GridAggregationHeader.js";
@@ -12,7 +13,7 @@ const getAggregationValueWrappedValueGetter = ({
12
13
  getCellAggregationResult
13
14
  }) => {
14
15
  const wrappedValueGetter = (value, row, column, apiRef) => {
15
- const rowId = apiRef.current.getRowId?.(row);
16
+ const rowId = gridRowIdSelector(apiRef.current.state, row);
16
17
  const cellAggregationResult = rowId ? getCellAggregationResult(rowId, column.field) : null;
17
18
  if (cellAggregationResult != null) {
18
19
  return cellAggregationResult?.value ?? null;
@@ -35,7 +36,7 @@ const getAggregationValueWrappedValueFormatter = ({
35
36
  return valueFormatter;
36
37
  }
37
38
  const wrappedValueFormatter = (value, row, column, apiRef) => {
38
- const rowId = apiRef.current.getRowId(row);
39
+ const rowId = gridRowIdSelector(apiRef.current.state, row);
39
40
  if (rowId != null) {
40
41
  const cellAggregationResult = getCellAggregationResult(rowId, column.field);
41
42
  if (cellAggregationResult != null) {
@@ -94,7 +95,8 @@ const getWrappedFilterOperators = ({
94
95
  return null;
95
96
  }
96
97
  return (value, row, column, api) => {
97
- if (getCellAggregationResult(apiRef.current.getRowId(row), column.field) != null) {
98
+ const rowId = gridRowIdSelector(apiRef.current.state, row);
99
+ if (getCellAggregationResult(rowId, column.field) != null) {
98
100
  return true;
99
101
  }
100
102
  return filterFn(value, row, column, api);
@@ -133,7 +135,7 @@ export const wrapColumnWithAggregationValue = ({
133
135
  }) => {
134
136
  const getCellAggregationResult = (id, field) => {
135
137
  let cellAggregationPosition = null;
136
- const rowNode = apiRef.current.getRowNode(id);
138
+ const rowNode = gridRowTreeSelector(apiRef)[id];
137
139
  if (rowNode.type === 'group') {
138
140
  cellAggregationPosition = 'inline';
139
141
  } else if (id.toString().startsWith('auto-generated-group-footer-')) {
@@ -3,7 +3,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  const _excluded = ["leafField", "mainGroupingCriteria", "hideDescendantCount"],
4
4
  _excluded2 = ["leafField", "mainGroupingCriteria", "hideDescendantCount"];
5
5
  import * as React from 'react';
6
- import { GRID_STRING_COL_DEF } from '@mui/x-data-grid-pro';
6
+ import { GRID_STRING_COL_DEF, gridRowIdSelector, gridRowTreeSelector } from '@mui/x-data-grid-pro';
7
7
  import { isSingleSelectColDef } from '@mui/x-data-grid-pro/internals';
8
8
  import { GridGroupingColumnFooterCell } from "../../../components/GridGroupingColumnFooterCell.js";
9
9
  import { GridGroupingCriteriaCell } from "../../../components/GridGroupingCriteriaCell.js";
@@ -138,8 +138,8 @@ export const createGroupingColDefForOneGroupingCriteria = ({
138
138
  return '';
139
139
  },
140
140
  valueGetter: (value, row, column, apiRef) => {
141
- const rowId = apiRef.current.getRowId(row);
142
- const rowNode = apiRef.current.getRowNode(rowId);
141
+ const rowId = gridRowIdSelector(apiRef.current.state, row);
142
+ const rowNode = gridRowTreeSelector(apiRef)[rowId];
143
143
  if (!rowNode || rowNode.type === 'footer' || rowNode.type === 'pinnedRow') {
144
144
  return undefined;
145
145
  }
@@ -230,8 +230,8 @@ export const createGroupingColDefForAllGroupingCriteria = ({
230
230
  }));
231
231
  },
232
232
  valueGetter: (value, row) => {
233
- const rowId = apiRef.current.getRowId(row);
234
- const rowNode = apiRef.current.getRowNode(rowId);
233
+ const rowId = gridRowIdSelector(apiRef.current.state, row);
234
+ const rowNode = gridRowTreeSelector(apiRef)[rowId];
235
235
  if (!rowNode || rowNode.type === 'footer' || rowNode.type === 'pinnedRow') {
236
236
  return undefined;
237
237
  }
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid-premium v7.27.0
2
+ * @mui/x-data-grid-premium v7.27.2
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 = "MTczOTc0NjgwMDAwMA==";
3
+ const releaseInfo = "MTc0MDYwNzIwMDAwMA==";
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.27.0",
3
+ "version": "7.27.2",
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,9 +40,9 @@
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.27.0",
44
- "@mui/x-data-grid-pro": "7.27.0",
43
+ "@mui/x-data-grid": "7.27.2",
45
44
  "@mui/x-license": "7.26.0",
45
+ "@mui/x-data-grid-pro": "7.27.2",
46
46
  "@mui/x-internals": "7.26.0"
47
47
  },
48
48
  "peerDependencies": {
@@ -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 = "MTczOTc0NjgwMDAwMA==";
9
+ const releaseInfo = "MTc0MDYwNzIwMDAwMA==";
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