@mui/x-data-grid 7.28.3 → 7.29.1

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.
Files changed (40) hide show
  1. package/CHANGELOG.md +155 -0
  2. package/DataGrid/DataGrid.js +2 -1
  3. package/components/GridApiContext.js +2 -0
  4. package/components/GridConfigurationContext.js +2 -0
  5. package/components/GridScrollArea.js +2 -0
  6. package/components/cell/GridCell.js +7 -0
  7. package/components/containers/GridRootStyles.js +3 -0
  8. package/context/GridRootPropsContext.js +2 -0
  9. package/hooks/features/virtualization/useGridVirtualScroller.js +5 -5
  10. package/index.js +1 -1
  11. package/internals/index.d.ts +1 -0
  12. package/locales/heIL.js +4 -4
  13. package/locales/plPL.js +7 -7
  14. package/locales/svSE.js +3 -3
  15. package/models/configuration/gridConfiguration.d.ts +5 -0
  16. package/modern/DataGrid/DataGrid.js +2 -1
  17. package/modern/components/GridApiContext.js +2 -0
  18. package/modern/components/GridConfigurationContext.js +2 -0
  19. package/modern/components/GridScrollArea.js +2 -0
  20. package/modern/components/cell/GridCell.js +7 -0
  21. package/modern/components/containers/GridRootStyles.js +3 -0
  22. package/modern/context/GridRootPropsContext.js +2 -0
  23. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +5 -5
  24. package/modern/index.js +1 -1
  25. package/modern/locales/heIL.js +4 -4
  26. package/modern/locales/plPL.js +7 -7
  27. package/modern/locales/svSE.js +3 -3
  28. package/node/DataGrid/DataGrid.js +2 -1
  29. package/node/components/GridApiContext.js +1 -0
  30. package/node/components/GridConfigurationContext.js +1 -0
  31. package/node/components/GridScrollArea.js +1 -0
  32. package/node/components/cell/GridCell.js +7 -0
  33. package/node/components/containers/GridRootStyles.js +3 -0
  34. package/node/context/GridRootPropsContext.js +1 -0
  35. package/node/hooks/features/virtualization/useGridVirtualScroller.js +5 -5
  36. package/node/index.js +1 -1
  37. package/node/locales/heIL.js +4 -4
  38. package/node/locales/plPL.js +7 -7
  39. package/node/locales/svSE.js +3 -3
  40. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -3,6 +3,161 @@
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.29.1
7
+
8
+ _Apr 23, 2025_
9
+
10
+ We'd like to offer a big thanks to the 5 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 🐞 Bugfixes
13
+
14
+ Special thanks go out to the community contributors who have helped make this release possible:
15
+ @lhilgert9
16
+
17
+ Following are all team members who have contributed to this release:
18
+ @arminmeh, @cherniavskii, @flaviendelangle, @LukasTy, @romgrk.
19
+
20
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
21
+
22
+ ### Data Grid
23
+
24
+ #### `@mui/x-data-grid@7.29.1`
25
+
26
+ - [DataGrid] Prevent scrollbars from showing on top (#17410) @romgrk
27
+
28
+ #### `@mui/x-data-grid-pro@7.29.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
29
+
30
+ Same changes as in `@mui/x-data-grid@7.29.1`, plus:
31
+
32
+ - [DataGridPro] Avoid proptypes warnings with header filters in React 17 (#17492) @cherniavskii
33
+ - [DataGridPro] Fix expandable rows detail content height updates (#17509) @arminmeh
34
+ - [DataGridPro] Fix row virtualization not working in list view (#17404) @cherniavskii
35
+ - [DataGridPro] Move locales re-export to allow proper tree shaking (#17438) @lhilgert9
36
+
37
+ #### `@mui/x-data-grid-premium@7.29.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
38
+
39
+ Same changes as in `@mui/x-data-grid-pro@7.29.1`, plus:
40
+
41
+ - [DataGridPremium] Use `groupingValueGetter` for row grouping on the server (#17423) @cherniavskii
42
+
43
+ ### Date and Time Pickers
44
+
45
+ #### `@mui/x-date-pickers@7.29.1`
46
+
47
+ Internal changes.
48
+
49
+ #### `@mui/x-date-pickers-pro@7.29.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
50
+
51
+ Same changes as in `@mui/x-date-pickers@7.29.1`.
52
+
53
+ ### Charts
54
+
55
+ #### `@mui/x-charts@7.29.1`
56
+
57
+ Internal changes.
58
+
59
+ #### `@mui/x-charts-pro@7.29.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
60
+
61
+ Same changes as in `@mui/x-charts@7.29.1`.
62
+
63
+ ### Tree View
64
+
65
+ #### `@mui/x-tree-view@7.29.1`
66
+
67
+ Internal changes.
68
+
69
+ #### `@mui/x-tree-view-pro@7.29.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
70
+
71
+ Same changes as in `@mui/x-tree-view@7.29.1`, plus:
72
+
73
+ - [RichTreeViewPro] Fix drag and drop issue with label editing (#17415) @flaviendelangle
74
+
75
+ ### Docs
76
+
77
+ - [docs] Use MUI X v7 packages in CodeSandbox and StackBlitz (#17516) @cherniavskii
78
+
79
+ ### Core
80
+
81
+ - [core] Bump monorepo (#17437) @LukasTy
82
+
83
+ ## 7.29.0
84
+
85
+ _Apr 16, 2025_
86
+
87
+ We'd like to offer a big thanks to the 8 contributors who made this release possible. Here are some highlights ✨:
88
+
89
+ - 🐞 Bugfixes
90
+ - 🌍 Improve Hebrew (he-IL), Polish (pl-PL), and Swedish (sv-SE) locales on the Data Grid
91
+ - 🌍 Improve Czech (cs-CZ) and Slovak (sk-SK) locales on the Date and Time Pickers
92
+
93
+ Special thanks go out to the community contributors who have helped make this release possible:
94
+ @lubka272, @ptuukkan, @iddan, @sofortdagmbh
95
+
96
+ Following are all team members who have contributed to this release:
97
+ @michelengelen, @oliviertassinari, @michelengelen, @LukasTy.
98
+
99
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
100
+
101
+ ### Data Grid
102
+
103
+ #### `@mui/x-data-grid@7.29.0`
104
+
105
+ - [l10n] Improve Swedish (sv-SE) locale (#17306) @ptuukkan
106
+ - [l10n] Improve Hebrew (he-IL) locale (#16516) @iddan
107
+ - [l10n] Improve Polish (pl-PL) locale (#17306) @sofortdagmbh
108
+
109
+ #### `@mui/x-data-grid-pro@7.29.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
110
+
111
+ Same changes as in `@mui/x-data-grid@7.29.0`.
112
+
113
+ #### `@mui/x-data-grid-premium@7.29.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
114
+
115
+ Same changes as in `@mui/x-data-grid-pro@7.29.0`, plus:
116
+
117
+ - [DataGridPremium] Fix stale aggregation results after filtering (#17303) @cherniavskii
118
+ - [DataGridPremium] Fix aggregated values sorting (#17382) @cherniavskii
119
+
120
+ ### Date and Time Pickers
121
+
122
+ #### `@mui/x-date-pickers@7.29.0`
123
+
124
+ - [l10n] Improve Slovak (sk-SK) locale (#17204) @lubka272
125
+ - [l10n] Improve Czech (cs-CZ) locale (#17205) @lubka272
126
+
127
+ #### `@mui/x-date-pickers-pro@7.29.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
128
+
129
+ Same changes as in `@mui/x-date-pickers@7.29.0`.
130
+
131
+ ### Charts
132
+
133
+ #### `@mui/x-charts@7.29.0`
134
+
135
+ Internal changes.
136
+
137
+ #### `@mui/x-charts-pro@7.29.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
138
+
139
+ Same changes as in `@mui/x-charts@7.29.0`.
140
+
141
+ ### Tree View
142
+
143
+ #### `@mui/x-tree-view@7.29.0`
144
+
145
+ Internal changes.
146
+
147
+ #### `@mui/x-tree-view-pro@7.29.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
148
+
149
+ Same changes as in `@mui/x-tree-view@7.29.0`.
150
+
151
+ ### Core
152
+
153
+ - [core] Cleanup `@mui` dependency versions (#17390) @LukasTy
154
+
155
+ ### Docs
156
+
157
+ - [docs] Fix 404 link on the marketing page (#17276) @oliviertassinari
158
+ - [docs] Fix country columns throwing on grouping (#17317) @cherniavskii
159
+ - [release] Changes to v7 for major release (#17320) @michelengelen
160
+
6
161
  ## 7.28.3
7
162
 
8
163
  _Apr 3, 2025_
@@ -15,7 +15,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
15
15
  const configuration = {
16
16
  hooks: {
17
17
  useGridAriaAttributes,
18
- useGridRowAriaAttributes
18
+ useGridRowAriaAttributes,
19
+ useCellAggregationResult: () => null
19
20
  }
20
21
  };
21
22
  const DataGridRaw = forwardRef(function DataGrid(inProps, ref) {
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  export const GridApiContext = /*#__PURE__*/React.createContext(undefined);
3
5
  if (process.env.NODE_ENV !== 'production') {
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  export const GridConfigurationContext = /*#__PURE__*/React.createContext(undefined);
3
5
  if (process.env.NODE_ENV !== 'production') {
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import clsx from 'clsx';
@@ -21,6 +21,7 @@ import { gridRowSpanningHiddenCellsSelector, gridRowSpanningSpannedCellsSelector
21
21
  import { useGridPrivateApiContext } from "../../hooks/utils/useGridPrivateApiContext.js";
22
22
  import { gridEditCellStateSelector } from "../../hooks/features/editing/gridEditingSelectors.js";
23
23
  import { attachPinnedStyle } from "../../internals/utils/index.js";
24
+ import { useGridConfiguration } from "../../hooks/utils/useGridConfiguration.js";
24
25
  import { jsx as _jsx } from "react/jsx-runtime";
25
26
  export const gridPinnedColumnPositionLookup = {
26
27
  [PinnedColumnPosition.LEFT]: GridPinnedColumnPosition.LEFT,
@@ -85,6 +86,8 @@ const GridCell = forwardRef(function GridCell(props, ref) {
85
86
  rowId,
86
87
  field
87
88
  });
89
+ const config = useGridConfiguration();
90
+ const cellAggregationResult = config.hooks.useCellAggregationResult(rowId, field);
88
91
  const cellMode = editCellState ? GridCellModes.Edit : GridCellModes.View;
89
92
  const cellParams = apiRef.current.getCellParamsForRow(rowId, field, row, {
90
93
  colDef: column,
@@ -100,6 +103,10 @@ const GridCell = forwardRef(function GridCell(props, ref) {
100
103
  })
101
104
  });
102
105
  cellParams.api = apiRef.current;
106
+ if (cellAggregationResult) {
107
+ cellParams.value = cellAggregationResult.value;
108
+ cellParams.formattedValue = column.valueFormatter ? column.valueFormatter(cellParams.value, row, column, apiRef) : cellParams.value;
109
+ }
103
110
  const isSelected = useGridSelector(apiRef, () => apiRef.current.unstable_applyPipeProcessors('isCellSelected', false, {
104
111
  id: rowId,
105
112
  field
@@ -345,6 +345,9 @@ export const GridRootStyles = styled('div', {
345
345
  overflow: 'hidden',
346
346
  overflowAnchor: 'none',
347
347
  // Keep the same scrolling position
348
+ transform: 'translate(0, 0)',
349
+ // Create a stacking context to keep scrollbars from showing on top
350
+
348
351
  [`.${c.main} > *:first-child${ignoreSsrWarning}`]: {
349
352
  borderTopLeftRadius: 'var(--unstable_DataGrid-radius)',
350
353
  borderTopRightRadius: 'var(--unstable_DataGrid-radius)'
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  const GridRootPropsContext = /*#__PURE__*/React.createContext(undefined);
3
5
  if (process.env.NODE_ENV !== 'production') {
@@ -588,11 +588,6 @@ function computeRenderContext(inputs, scrollPosition, scrollCache) {
588
588
  firstColumnIndex: 0,
589
589
  lastColumnIndex: inputs.visibleColumns.length
590
590
  };
591
- if (inputs.listView) {
592
- return _extends({}, renderContext, {
593
- lastColumnIndex: 1
594
- });
595
- }
596
591
  const {
597
592
  top,
598
593
  left
@@ -617,6 +612,11 @@ function computeRenderContext(inputs, scrollPosition, scrollCache) {
617
612
  renderContext.firstRowIndex = firstRowIndex;
618
613
  renderContext.lastRowIndex = lastRowIndex;
619
614
  }
615
+ if (inputs.listView) {
616
+ return _extends({}, renderContext, {
617
+ lastColumnIndex: 1
618
+ });
619
+ }
620
620
  if (inputs.enabledForColumns) {
621
621
  let firstColumnIndex = 0;
622
622
  let lastColumnIndex = inputs.columnPositions.length;
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.28.3
2
+ * @mui/x-data-grid v7.29.1
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -98,3 +98,4 @@ export { serializeCellValue } from '../hooks/features/export/serializers/csvSeri
98
98
  export * from './utils';
99
99
  export * from './constants';
100
100
  export type { Localization } from '../utils/getGridLocalization';
101
+ export type { GridConfiguration } from '../models/configuration/gridConfiguration';
package/locales/heIL.js CHANGED
@@ -49,9 +49,9 @@ const heILGrid = {
49
49
  filterPanelInputPlaceholder: 'ערך מסנן',
50
50
  // Filter operators text
51
51
  filterOperatorContains: 'מכיל',
52
- // filterOperatorDoesNotContain: 'does not contain',
52
+ filterOperatorDoesNotContain: 'לא מכיל',
53
53
  filterOperatorEquals: 'שווה',
54
- // filterOperatorDoesNotEqual: 'does not equal',
54
+ filterOperatorDoesNotEqual: 'שונה',
55
55
  filterOperatorStartsWith: 'מתחיל ב-',
56
56
  filterOperatorEndsWith: 'נגמר ב-',
57
57
  filterOperatorIs: 'הינו',
@@ -71,9 +71,9 @@ const heILGrid = {
71
71
  'filterOperator<=': '<=',
72
72
  // Header filter operators text
73
73
  headerFilterOperatorContains: 'מכיל',
74
- // headerFilterOperatorDoesNotContain: 'Does not contain',
74
+ headerFilterOperatorDoesNotContain: 'לא מכיל',
75
75
  headerFilterOperatorEquals: 'שווה',
76
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
76
+ headerFilterOperatorDoesNotEqual: 'שונה',
77
77
  headerFilterOperatorStartsWith: 'מתחיל ב-',
78
78
  headerFilterOperatorEndsWith: 'נגמר ב-',
79
79
  headerFilterOperatorIs: 'הינו',
package/locales/plPL.js CHANGED
@@ -48,9 +48,9 @@ const plPLGrid = {
48
48
  filterPanelInputPlaceholder: 'Filtrowana wartość',
49
49
  // Filter operators text
50
50
  filterOperatorContains: 'zawiera',
51
- // filterOperatorDoesNotContain: 'does not contain',
51
+ filterOperatorDoesNotContain: 'nie zawiera',
52
52
  filterOperatorEquals: 'równa się',
53
- // filterOperatorDoesNotEqual: 'does not equal',
53
+ filterOperatorDoesNotEqual: 'nie równa się',
54
54
  filterOperatorStartsWith: 'zaczyna się od',
55
55
  filterOperatorEndsWith: 'kończy się na',
56
56
  filterOperatorIs: 'równa się',
@@ -70,12 +70,12 @@ const plPLGrid = {
70
70
  'filterOperator<=': 'mniejszy lub równy',
71
71
  // Header filter operators text
72
72
  headerFilterOperatorContains: 'Zawiera',
73
- // headerFilterOperatorDoesNotContain: 'Does not contain',
73
+ headerFilterOperatorDoesNotContain: 'Nie zawiera',
74
74
  headerFilterOperatorEquals: 'Równa się',
75
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
75
+ headerFilterOperatorDoesNotEqual: 'Nie równa się',
76
76
  headerFilterOperatorStartsWith: 'Zaczyna się od',
77
77
  headerFilterOperatorEndsWith: 'Kończy się na',
78
- // headerFilterOperatorIs: 'Is',
78
+ headerFilterOperatorIs: 'Jest',
79
79
  headerFilterOperatorNot: 'Niepuste',
80
80
  headerFilterOperatorAfter: 'Jest po',
81
81
  headerFilterOperatorOnOrAfter: 'Jest w lub po',
@@ -83,7 +83,7 @@ const plPLGrid = {
83
83
  headerFilterOperatorOnOrBefore: 'Jest w lub przed',
84
84
  headerFilterOperatorIsEmpty: 'Jest pusty',
85
85
  headerFilterOperatorIsNotEmpty: 'Nie jest pusty',
86
- headerFilterOperatorIsAnyOf: 'Is any of',
86
+ headerFilterOperatorIsAnyOf: 'Jest jednym z',
87
87
  'headerFilterOperator=': 'Równa się',
88
88
  'headerFilterOperator!=': 'Nie równa się',
89
89
  'headerFilterOperator>': 'Większy niż',
@@ -96,7 +96,7 @@ const plPLGrid = {
96
96
  filterValueFalse: 'fałsz',
97
97
  // Column menu text
98
98
  columnMenuLabel: 'Menu',
99
- // columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
99
+ columnMenuAriaLabel: columnName => `Menu kolumny: ${columnName}`,
100
100
  columnMenuShowColumns: 'Pokaż wszystkie kolumny',
101
101
  columnMenuManageColumns: 'Zarządzaj kolumnami',
102
102
  columnMenuFilter: 'Filtr',
package/locales/svSE.js CHANGED
@@ -127,9 +127,9 @@ const svSEGrid = {
127
127
  // Actions cell more text
128
128
  actionsCellMore: 'mer',
129
129
  // Column pinning text
130
- pinToLeft: 'Fäst till vänster',
131
- pinToRight: 'Fäst till höger',
132
- unpin: 'Ta bort fästning',
130
+ pinToLeft: 'Lås till vänster',
131
+ pinToRight: 'Lås till höger',
132
+ unpin: 'Lås upp',
133
133
  // Tree Data
134
134
  treeDataGroupingHeaderName: 'Grupp',
135
135
  treeDataExpand: 'visa underordnade',
@@ -1,9 +1,14 @@
1
1
  import * as React from 'react';
2
2
  import { GridRowAriaAttributesInternalHook } from './gridRowConfiguration';
3
+ import type { GridRowId } from '../gridRows';
3
4
  export interface GridAriaAttributesInternalHook {
4
5
  useGridAriaAttributes: () => React.HTMLAttributes<HTMLElement>;
5
6
  }
6
7
  export interface GridInternalHook extends GridAriaAttributesInternalHook, GridRowAriaAttributesInternalHook {
8
+ useCellAggregationResult: (id: GridRowId, field: string) => {
9
+ position: 'footer' | 'inline';
10
+ value: any;
11
+ } | null;
7
12
  }
8
13
  export interface GridConfiguration {
9
14
  hooks: GridInternalHook;
@@ -15,7 +15,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
15
15
  const configuration = {
16
16
  hooks: {
17
17
  useGridAriaAttributes,
18
- useGridRowAriaAttributes
18
+ useGridRowAriaAttributes,
19
+ useCellAggregationResult: () => null
19
20
  }
20
21
  };
21
22
  const DataGridRaw = forwardRef(function DataGrid(inProps, ref) {
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  export const GridApiContext = /*#__PURE__*/React.createContext(undefined);
3
5
  if (process.env.NODE_ENV !== 'production') {
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  export const GridConfigurationContext = /*#__PURE__*/React.createContext(undefined);
3
5
  if (process.env.NODE_ENV !== 'production') {
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import clsx from 'clsx';
@@ -21,6 +21,7 @@ import { gridRowSpanningHiddenCellsSelector, gridRowSpanningSpannedCellsSelector
21
21
  import { useGridPrivateApiContext } from "../../hooks/utils/useGridPrivateApiContext.js";
22
22
  import { gridEditCellStateSelector } from "../../hooks/features/editing/gridEditingSelectors.js";
23
23
  import { attachPinnedStyle } from "../../internals/utils/index.js";
24
+ import { useGridConfiguration } from "../../hooks/utils/useGridConfiguration.js";
24
25
  import { jsx as _jsx } from "react/jsx-runtime";
25
26
  export const gridPinnedColumnPositionLookup = {
26
27
  [PinnedColumnPosition.LEFT]: GridPinnedColumnPosition.LEFT,
@@ -85,6 +86,8 @@ const GridCell = forwardRef(function GridCell(props, ref) {
85
86
  rowId,
86
87
  field
87
88
  });
89
+ const config = useGridConfiguration();
90
+ const cellAggregationResult = config.hooks.useCellAggregationResult(rowId, field);
88
91
  const cellMode = editCellState ? GridCellModes.Edit : GridCellModes.View;
89
92
  const cellParams = apiRef.current.getCellParamsForRow(rowId, field, row, {
90
93
  colDef: column,
@@ -100,6 +103,10 @@ const GridCell = forwardRef(function GridCell(props, ref) {
100
103
  })
101
104
  });
102
105
  cellParams.api = apiRef.current;
106
+ if (cellAggregationResult) {
107
+ cellParams.value = cellAggregationResult.value;
108
+ cellParams.formattedValue = column.valueFormatter ? column.valueFormatter(cellParams.value, row, column, apiRef) : cellParams.value;
109
+ }
103
110
  const isSelected = useGridSelector(apiRef, () => apiRef.current.unstable_applyPipeProcessors('isCellSelected', false, {
104
111
  id: rowId,
105
112
  field
@@ -345,6 +345,9 @@ export const GridRootStyles = styled('div', {
345
345
  overflow: 'hidden',
346
346
  overflowAnchor: 'none',
347
347
  // Keep the same scrolling position
348
+ transform: 'translate(0, 0)',
349
+ // Create a stacking context to keep scrollbars from showing on top
350
+
348
351
  [`.${c.main} > *:first-child${ignoreSsrWarning}`]: {
349
352
  borderTopLeftRadius: 'var(--unstable_DataGrid-radius)',
350
353
  borderTopRightRadius: 'var(--unstable_DataGrid-radius)'
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  const GridRootPropsContext = /*#__PURE__*/React.createContext(undefined);
3
5
  if (process.env.NODE_ENV !== 'production') {
@@ -588,11 +588,6 @@ function computeRenderContext(inputs, scrollPosition, scrollCache) {
588
588
  firstColumnIndex: 0,
589
589
  lastColumnIndex: inputs.visibleColumns.length
590
590
  };
591
- if (inputs.listView) {
592
- return _extends({}, renderContext, {
593
- lastColumnIndex: 1
594
- });
595
- }
596
591
  const {
597
592
  top,
598
593
  left
@@ -617,6 +612,11 @@ function computeRenderContext(inputs, scrollPosition, scrollCache) {
617
612
  renderContext.firstRowIndex = firstRowIndex;
618
613
  renderContext.lastRowIndex = lastRowIndex;
619
614
  }
615
+ if (inputs.listView) {
616
+ return _extends({}, renderContext, {
617
+ lastColumnIndex: 1
618
+ });
619
+ }
620
620
  if (inputs.enabledForColumns) {
621
621
  let firstColumnIndex = 0;
622
622
  let lastColumnIndex = inputs.columnPositions.length;
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.28.3
2
+ * @mui/x-data-grid v7.29.1
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -49,9 +49,9 @@ const heILGrid = {
49
49
  filterPanelInputPlaceholder: 'ערך מסנן',
50
50
  // Filter operators text
51
51
  filterOperatorContains: 'מכיל',
52
- // filterOperatorDoesNotContain: 'does not contain',
52
+ filterOperatorDoesNotContain: 'לא מכיל',
53
53
  filterOperatorEquals: 'שווה',
54
- // filterOperatorDoesNotEqual: 'does not equal',
54
+ filterOperatorDoesNotEqual: 'שונה',
55
55
  filterOperatorStartsWith: 'מתחיל ב-',
56
56
  filterOperatorEndsWith: 'נגמר ב-',
57
57
  filterOperatorIs: 'הינו',
@@ -71,9 +71,9 @@ const heILGrid = {
71
71
  'filterOperator<=': '<=',
72
72
  // Header filter operators text
73
73
  headerFilterOperatorContains: 'מכיל',
74
- // headerFilterOperatorDoesNotContain: 'Does not contain',
74
+ headerFilterOperatorDoesNotContain: 'לא מכיל',
75
75
  headerFilterOperatorEquals: 'שווה',
76
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
76
+ headerFilterOperatorDoesNotEqual: 'שונה',
77
77
  headerFilterOperatorStartsWith: 'מתחיל ב-',
78
78
  headerFilterOperatorEndsWith: 'נגמר ב-',
79
79
  headerFilterOperatorIs: 'הינו',
@@ -48,9 +48,9 @@ const plPLGrid = {
48
48
  filterPanelInputPlaceholder: 'Filtrowana wartość',
49
49
  // Filter operators text
50
50
  filterOperatorContains: 'zawiera',
51
- // filterOperatorDoesNotContain: 'does not contain',
51
+ filterOperatorDoesNotContain: 'nie zawiera',
52
52
  filterOperatorEquals: 'równa się',
53
- // filterOperatorDoesNotEqual: 'does not equal',
53
+ filterOperatorDoesNotEqual: 'nie równa się',
54
54
  filterOperatorStartsWith: 'zaczyna się od',
55
55
  filterOperatorEndsWith: 'kończy się na',
56
56
  filterOperatorIs: 'równa się',
@@ -70,12 +70,12 @@ const plPLGrid = {
70
70
  'filterOperator<=': 'mniejszy lub równy',
71
71
  // Header filter operators text
72
72
  headerFilterOperatorContains: 'Zawiera',
73
- // headerFilterOperatorDoesNotContain: 'Does not contain',
73
+ headerFilterOperatorDoesNotContain: 'Nie zawiera',
74
74
  headerFilterOperatorEquals: 'Równa się',
75
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
75
+ headerFilterOperatorDoesNotEqual: 'Nie równa się',
76
76
  headerFilterOperatorStartsWith: 'Zaczyna się od',
77
77
  headerFilterOperatorEndsWith: 'Kończy się na',
78
- // headerFilterOperatorIs: 'Is',
78
+ headerFilterOperatorIs: 'Jest',
79
79
  headerFilterOperatorNot: 'Niepuste',
80
80
  headerFilterOperatorAfter: 'Jest po',
81
81
  headerFilterOperatorOnOrAfter: 'Jest w lub po',
@@ -83,7 +83,7 @@ const plPLGrid = {
83
83
  headerFilterOperatorOnOrBefore: 'Jest w lub przed',
84
84
  headerFilterOperatorIsEmpty: 'Jest pusty',
85
85
  headerFilterOperatorIsNotEmpty: 'Nie jest pusty',
86
- headerFilterOperatorIsAnyOf: 'Is any of',
86
+ headerFilterOperatorIsAnyOf: 'Jest jednym z',
87
87
  'headerFilterOperator=': 'Równa się',
88
88
  'headerFilterOperator!=': 'Nie równa się',
89
89
  'headerFilterOperator>': 'Większy niż',
@@ -96,7 +96,7 @@ const plPLGrid = {
96
96
  filterValueFalse: 'fałsz',
97
97
  // Column menu text
98
98
  columnMenuLabel: 'Menu',
99
- // columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
99
+ columnMenuAriaLabel: columnName => `Menu kolumny: ${columnName}`,
100
100
  columnMenuShowColumns: 'Pokaż wszystkie kolumny',
101
101
  columnMenuManageColumns: 'Zarządzaj kolumnami',
102
102
  columnMenuFilter: 'Filtr',
@@ -127,9 +127,9 @@ const svSEGrid = {
127
127
  // Actions cell more text
128
128
  actionsCellMore: 'mer',
129
129
  // Column pinning text
130
- pinToLeft: 'Fäst till vänster',
131
- pinToRight: 'Fäst till höger',
132
- unpin: 'Ta bort fästning',
130
+ pinToLeft: 'Lås till vänster',
131
+ pinToRight: 'Lås till höger',
132
+ unpin: 'Lås upp',
133
133
  // Tree Data
134
134
  treeDataGroupingHeaderName: 'Grupp',
135
135
  treeDataExpand: 'visa underordnade',
@@ -22,7 +22,8 @@ var _jsxRuntime = require("react/jsx-runtime");
22
22
  const configuration = {
23
23
  hooks: {
24
24
  useGridAriaAttributes: _useGridAriaAttributes.useGridAriaAttributes,
25
- useGridRowAriaAttributes: _useGridRowAriaAttributes.useGridRowAriaAttributes
25
+ useGridRowAriaAttributes: _useGridRowAriaAttributes.useGridRowAriaAttributes,
26
+ useCellAggregationResult: () => null
26
27
  }
27
28
  };
28
29
  const DataGridRaw = (0, _forwardRef.forwardRef)(function DataGrid(inProps, ref) {
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  Object.defineProperty(exports, "__esModule", {
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  Object.defineProperty(exports, "__esModule", {
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
@@ -27,6 +27,7 @@ var _gridRowSpanningSelectors = require("../../hooks/features/rows/gridRowSpanni
27
27
  var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiContext");
28
28
  var _gridEditingSelectors = require("../../hooks/features/editing/gridEditingSelectors");
29
29
  var _utils2 = require("../../internals/utils");
30
+ var _useGridConfiguration = require("../../hooks/utils/useGridConfiguration");
30
31
  var _jsxRuntime = require("react/jsx-runtime");
31
32
  const _excluded = ["column", "row", "rowId", "rowNode", "align", "children", "colIndex", "width", "className", "style", "colSpan", "disableDragEvents", "isNotVisible", "pinnedOffset", "pinnedPosition", "showRightBorder", "showLeftBorder", "onClick", "onDoubleClick", "onMouseDown", "onMouseUp", "onMouseOver", "onKeyDown", "onKeyUp", "onDragEnter", "onDragOver"],
32
33
  _excluded2 = ["changeReason", "unstable_updateValueOnRender"];
@@ -93,6 +94,8 @@ const GridCell = (0, _forwardRef.forwardRef)(function GridCell(props, ref) {
93
94
  rowId,
94
95
  field
95
96
  });
97
+ const config = (0, _useGridConfiguration.useGridConfiguration)();
98
+ const cellAggregationResult = config.hooks.useCellAggregationResult(rowId, field);
96
99
  const cellMode = editCellState ? _models.GridCellModes.Edit : _models.GridCellModes.View;
97
100
  const cellParams = apiRef.current.getCellParamsForRow(rowId, field, row, {
98
101
  colDef: column,
@@ -108,6 +111,10 @@ const GridCell = (0, _forwardRef.forwardRef)(function GridCell(props, ref) {
108
111
  })
109
112
  });
110
113
  cellParams.api = apiRef.current;
114
+ if (cellAggregationResult) {
115
+ cellParams.value = cellAggregationResult.value;
116
+ cellParams.formattedValue = column.valueFormatter ? column.valueFormatter(cellParams.value, row, column, apiRef) : cellParams.value;
117
+ }
111
118
  const isSelected = (0, _useGridSelector.useGridSelector)(apiRef, () => apiRef.current.unstable_applyPipeProcessors('isCellSelected', false, {
112
119
  id: rowId,
113
120
  field
@@ -352,6 +352,9 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
352
352
  overflow: 'hidden',
353
353
  overflowAnchor: 'none',
354
354
  // Keep the same scrolling position
355
+ transform: 'translate(0, 0)',
356
+ // Create a stacking context to keep scrollbars from showing on top
357
+
355
358
  [`.${_gridClasses.gridClasses.main} > *:first-child${ignoreSsrWarning}`]: {
356
359
  borderTopLeftRadius: 'var(--unstable_DataGrid-radius)',
357
360
  borderTopRightRadius: 'var(--unstable_DataGrid-radius)'
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  Object.defineProperty(exports, "__esModule", {
@@ -600,11 +600,6 @@ function computeRenderContext(inputs, scrollPosition, scrollCache) {
600
600
  firstColumnIndex: 0,
601
601
  lastColumnIndex: inputs.visibleColumns.length
602
602
  };
603
- if (inputs.listView) {
604
- return (0, _extends2.default)({}, renderContext, {
605
- lastColumnIndex: 1
606
- });
607
- }
608
603
  const {
609
604
  top,
610
605
  left
@@ -629,6 +624,11 @@ function computeRenderContext(inputs, scrollPosition, scrollCache) {
629
624
  renderContext.firstRowIndex = firstRowIndex;
630
625
  renderContext.lastRowIndex = lastRowIndex;
631
626
  }
627
+ if (inputs.listView) {
628
+ return (0, _extends2.default)({}, renderContext, {
629
+ lastColumnIndex: 1
630
+ });
631
+ }
632
632
  if (inputs.enabledForColumns) {
633
633
  let firstColumnIndex = 0;
634
634
  let lastColumnIndex = inputs.columnPositions.length;
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.28.3
2
+ * @mui/x-data-grid v7.29.1
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -55,9 +55,9 @@ const heILGrid = {
55
55
  filterPanelInputPlaceholder: 'ערך מסנן',
56
56
  // Filter operators text
57
57
  filterOperatorContains: 'מכיל',
58
- // filterOperatorDoesNotContain: 'does not contain',
58
+ filterOperatorDoesNotContain: 'לא מכיל',
59
59
  filterOperatorEquals: 'שווה',
60
- // filterOperatorDoesNotEqual: 'does not equal',
60
+ filterOperatorDoesNotEqual: 'שונה',
61
61
  filterOperatorStartsWith: 'מתחיל ב-',
62
62
  filterOperatorEndsWith: 'נגמר ב-',
63
63
  filterOperatorIs: 'הינו',
@@ -77,9 +77,9 @@ const heILGrid = {
77
77
  'filterOperator<=': '<=',
78
78
  // Header filter operators text
79
79
  headerFilterOperatorContains: 'מכיל',
80
- // headerFilterOperatorDoesNotContain: 'Does not contain',
80
+ headerFilterOperatorDoesNotContain: 'לא מכיל',
81
81
  headerFilterOperatorEquals: 'שווה',
82
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
82
+ headerFilterOperatorDoesNotEqual: 'שונה',
83
83
  headerFilterOperatorStartsWith: 'מתחיל ב-',
84
84
  headerFilterOperatorEndsWith: 'נגמר ב-',
85
85
  headerFilterOperatorIs: 'הינו',
@@ -54,9 +54,9 @@ const plPLGrid = {
54
54
  filterPanelInputPlaceholder: 'Filtrowana wartość',
55
55
  // Filter operators text
56
56
  filterOperatorContains: 'zawiera',
57
- // filterOperatorDoesNotContain: 'does not contain',
57
+ filterOperatorDoesNotContain: 'nie zawiera',
58
58
  filterOperatorEquals: 'równa się',
59
- // filterOperatorDoesNotEqual: 'does not equal',
59
+ filterOperatorDoesNotEqual: 'nie równa się',
60
60
  filterOperatorStartsWith: 'zaczyna się od',
61
61
  filterOperatorEndsWith: 'kończy się na',
62
62
  filterOperatorIs: 'równa się',
@@ -76,12 +76,12 @@ const plPLGrid = {
76
76
  'filterOperator<=': 'mniejszy lub równy',
77
77
  // Header filter operators text
78
78
  headerFilterOperatorContains: 'Zawiera',
79
- // headerFilterOperatorDoesNotContain: 'Does not contain',
79
+ headerFilterOperatorDoesNotContain: 'Nie zawiera',
80
80
  headerFilterOperatorEquals: 'Równa się',
81
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
81
+ headerFilterOperatorDoesNotEqual: 'Nie równa się',
82
82
  headerFilterOperatorStartsWith: 'Zaczyna się od',
83
83
  headerFilterOperatorEndsWith: 'Kończy się na',
84
- // headerFilterOperatorIs: 'Is',
84
+ headerFilterOperatorIs: 'Jest',
85
85
  headerFilterOperatorNot: 'Niepuste',
86
86
  headerFilterOperatorAfter: 'Jest po',
87
87
  headerFilterOperatorOnOrAfter: 'Jest w lub po',
@@ -89,7 +89,7 @@ const plPLGrid = {
89
89
  headerFilterOperatorOnOrBefore: 'Jest w lub przed',
90
90
  headerFilterOperatorIsEmpty: 'Jest pusty',
91
91
  headerFilterOperatorIsNotEmpty: 'Nie jest pusty',
92
- headerFilterOperatorIsAnyOf: 'Is any of',
92
+ headerFilterOperatorIsAnyOf: 'Jest jednym z',
93
93
  'headerFilterOperator=': 'Równa się',
94
94
  'headerFilterOperator!=': 'Nie równa się',
95
95
  'headerFilterOperator>': 'Większy niż',
@@ -102,7 +102,7 @@ const plPLGrid = {
102
102
  filterValueFalse: 'fałsz',
103
103
  // Column menu text
104
104
  columnMenuLabel: 'Menu',
105
- // columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
105
+ columnMenuAriaLabel: columnName => `Menu kolumny: ${columnName}`,
106
106
  columnMenuShowColumns: 'Pokaż wszystkie kolumny',
107
107
  columnMenuManageColumns: 'Zarządzaj kolumnami',
108
108
  columnMenuFilter: 'Filtr',
@@ -133,9 +133,9 @@ const svSEGrid = {
133
133
  // Actions cell more text
134
134
  actionsCellMore: 'mer',
135
135
  // Column pinning text
136
- pinToLeft: 'Fäst till vänster',
137
- pinToRight: 'Fäst till höger',
138
- unpin: 'Ta bort fästning',
136
+ pinToLeft: 'Lås till vänster',
137
+ pinToRight: 'Lås till höger',
138
+ unpin: 'Lås upp',
139
139
  // Tree Data
140
140
  treeDataGroupingHeaderName: 'Grupp',
141
141
  treeDataExpand: 'visa underordnade',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid",
3
- "version": "7.28.3",
3
+ "version": "7.29.1",
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",
@@ -38,18 +38,18 @@
38
38
  },
39
39
  "dependencies": {
40
40
  "@babel/runtime": "^7.25.7",
41
- "@mui/utils": "^5.16.6 || ^6.0.0 || ^7.0.0 || ^7.0.0-beta",
41
+ "@mui/utils": "^5.16.6 || ^6.0.0 || ^7.0.0",
42
42
  "clsx": "^2.1.1",
43
43
  "prop-types": "^15.8.1",
44
44
  "reselect": "^5.1.1",
45
45
  "use-sync-external-store": "^1.0.0",
46
- "@mui/x-internals": "7.28.0"
46
+ "@mui/x-internals": "7.29.0"
47
47
  },
48
48
  "peerDependencies": {
49
49
  "@emotion/react": "^11.9.0",
50
50
  "@emotion/styled": "^11.8.1",
51
- "@mui/material": "^5.15.14 || ^6.0.0 || ^7.0.0 || ^7.0.0-beta",
52
- "@mui/system": "^5.15.14 || ^6.0.0 || ^7.0.0 || ^7.0.0-beta",
51
+ "@mui/material": "^5.15.14 || ^6.0.0 || ^7.0.0",
52
+ "@mui/system": "^5.15.14 || ^6.0.0 || ^7.0.0",
53
53
  "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
54
54
  "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
55
55
  },