@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.
- package/CHANGELOG.md +155 -0
- package/DataGrid/DataGrid.js +2 -1
- package/components/GridApiContext.js +2 -0
- package/components/GridConfigurationContext.js +2 -0
- package/components/GridScrollArea.js +2 -0
- package/components/cell/GridCell.js +7 -0
- package/components/containers/GridRootStyles.js +3 -0
- package/context/GridRootPropsContext.js +2 -0
- package/hooks/features/virtualization/useGridVirtualScroller.js +5 -5
- package/index.js +1 -1
- package/internals/index.d.ts +1 -0
- package/locales/heIL.js +4 -4
- package/locales/plPL.js +7 -7
- package/locales/svSE.js +3 -3
- package/models/configuration/gridConfiguration.d.ts +5 -0
- package/modern/DataGrid/DataGrid.js +2 -1
- package/modern/components/GridApiContext.js +2 -0
- package/modern/components/GridConfigurationContext.js +2 -0
- package/modern/components/GridScrollArea.js +2 -0
- package/modern/components/cell/GridCell.js +7 -0
- package/modern/components/containers/GridRootStyles.js +3 -0
- package/modern/context/GridRootPropsContext.js +2 -0
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +5 -5
- package/modern/index.js +1 -1
- package/modern/locales/heIL.js +4 -4
- package/modern/locales/plPL.js +7 -7
- package/modern/locales/svSE.js +3 -3
- package/node/DataGrid/DataGrid.js +2 -1
- package/node/components/GridApiContext.js +1 -0
- package/node/components/GridConfigurationContext.js +1 -0
- package/node/components/GridScrollArea.js +1 -0
- package/node/components/cell/GridCell.js +7 -0
- package/node/components/containers/GridRootStyles.js +3 -0
- package/node/context/GridRootPropsContext.js +1 -0
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +5 -5
- package/node/index.js +1 -1
- package/node/locales/heIL.js +4 -4
- package/node/locales/plPL.js +7 -7
- package/node/locales/svSE.js +3 -3
- 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` [](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` [](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` [](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` [](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` [](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` [](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` [](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` [](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` [](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` [](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_
|
package/DataGrid/DataGrid.js
CHANGED
|
@@ -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) {
|
|
@@ -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)'
|
|
@@ -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
package/internals/index.d.ts
CHANGED
|
@@ -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
|
-
|
|
52
|
+
filterOperatorDoesNotContain: 'לא מכיל',
|
|
53
53
|
filterOperatorEquals: 'שווה',
|
|
54
|
-
|
|
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
|
-
|
|
74
|
+
headerFilterOperatorDoesNotContain: 'לא מכיל',
|
|
75
75
|
headerFilterOperatorEquals: 'שווה',
|
|
76
|
-
|
|
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
|
-
|
|
51
|
+
filterOperatorDoesNotContain: 'nie zawiera',
|
|
52
52
|
filterOperatorEquals: 'równa się',
|
|
53
|
-
|
|
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
|
-
|
|
73
|
+
headerFilterOperatorDoesNotContain: 'Nie zawiera',
|
|
74
74
|
headerFilterOperatorEquals: 'Równa się',
|
|
75
|
-
|
|
75
|
+
headerFilterOperatorDoesNotEqual: 'Nie równa się',
|
|
76
76
|
headerFilterOperatorStartsWith: 'Zaczyna się od',
|
|
77
77
|
headerFilterOperatorEndsWith: 'Kończy się na',
|
|
78
|
-
|
|
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: '
|
|
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
|
-
|
|
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: '
|
|
131
|
-
pinToRight: '
|
|
132
|
-
unpin: '
|
|
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) {
|
|
@@ -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)'
|
|
@@ -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
package/modern/locales/heIL.js
CHANGED
|
@@ -49,9 +49,9 @@ const heILGrid = {
|
|
|
49
49
|
filterPanelInputPlaceholder: 'ערך מסנן',
|
|
50
50
|
// Filter operators text
|
|
51
51
|
filterOperatorContains: 'מכיל',
|
|
52
|
-
|
|
52
|
+
filterOperatorDoesNotContain: 'לא מכיל',
|
|
53
53
|
filterOperatorEquals: 'שווה',
|
|
54
|
-
|
|
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
|
-
|
|
74
|
+
headerFilterOperatorDoesNotContain: 'לא מכיל',
|
|
75
75
|
headerFilterOperatorEquals: 'שווה',
|
|
76
|
-
|
|
76
|
+
headerFilterOperatorDoesNotEqual: 'שונה',
|
|
77
77
|
headerFilterOperatorStartsWith: 'מתחיל ב-',
|
|
78
78
|
headerFilterOperatorEndsWith: 'נגמר ב-',
|
|
79
79
|
headerFilterOperatorIs: 'הינו',
|
package/modern/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
|
-
|
|
51
|
+
filterOperatorDoesNotContain: 'nie zawiera',
|
|
52
52
|
filterOperatorEquals: 'równa się',
|
|
53
|
-
|
|
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
|
-
|
|
73
|
+
headerFilterOperatorDoesNotContain: 'Nie zawiera',
|
|
74
74
|
headerFilterOperatorEquals: 'Równa się',
|
|
75
|
-
|
|
75
|
+
headerFilterOperatorDoesNotEqual: 'Nie równa się',
|
|
76
76
|
headerFilterOperatorStartsWith: 'Zaczyna się od',
|
|
77
77
|
headerFilterOperatorEndsWith: 'Kończy się na',
|
|
78
|
-
|
|
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: '
|
|
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
|
-
|
|
99
|
+
columnMenuAriaLabel: columnName => `Menu kolumny: ${columnName}`,
|
|
100
100
|
columnMenuShowColumns: 'Pokaż wszystkie kolumny',
|
|
101
101
|
columnMenuManageColumns: 'Zarządzaj kolumnami',
|
|
102
102
|
columnMenuFilter: 'Filtr',
|
package/modern/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: '
|
|
131
|
-
pinToRight: '
|
|
132
|
-
unpin: '
|
|
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) {
|
|
@@ -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)'
|
|
@@ -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
package/node/locales/heIL.js
CHANGED
|
@@ -55,9 +55,9 @@ const heILGrid = {
|
|
|
55
55
|
filterPanelInputPlaceholder: 'ערך מסנן',
|
|
56
56
|
// Filter operators text
|
|
57
57
|
filterOperatorContains: 'מכיל',
|
|
58
|
-
|
|
58
|
+
filterOperatorDoesNotContain: 'לא מכיל',
|
|
59
59
|
filterOperatorEquals: 'שווה',
|
|
60
|
-
|
|
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
|
-
|
|
80
|
+
headerFilterOperatorDoesNotContain: 'לא מכיל',
|
|
81
81
|
headerFilterOperatorEquals: 'שווה',
|
|
82
|
-
|
|
82
|
+
headerFilterOperatorDoesNotEqual: 'שונה',
|
|
83
83
|
headerFilterOperatorStartsWith: 'מתחיל ב-',
|
|
84
84
|
headerFilterOperatorEndsWith: 'נגמר ב-',
|
|
85
85
|
headerFilterOperatorIs: 'הינו',
|
package/node/locales/plPL.js
CHANGED
|
@@ -54,9 +54,9 @@ const plPLGrid = {
|
|
|
54
54
|
filterPanelInputPlaceholder: 'Filtrowana wartość',
|
|
55
55
|
// Filter operators text
|
|
56
56
|
filterOperatorContains: 'zawiera',
|
|
57
|
-
|
|
57
|
+
filterOperatorDoesNotContain: 'nie zawiera',
|
|
58
58
|
filterOperatorEquals: 'równa się',
|
|
59
|
-
|
|
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
|
-
|
|
79
|
+
headerFilterOperatorDoesNotContain: 'Nie zawiera',
|
|
80
80
|
headerFilterOperatorEquals: 'Równa się',
|
|
81
|
-
|
|
81
|
+
headerFilterOperatorDoesNotEqual: 'Nie równa się',
|
|
82
82
|
headerFilterOperatorStartsWith: 'Zaczyna się od',
|
|
83
83
|
headerFilterOperatorEndsWith: 'Kończy się na',
|
|
84
|
-
|
|
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: '
|
|
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
|
-
|
|
105
|
+
columnMenuAriaLabel: columnName => `Menu kolumny: ${columnName}`,
|
|
106
106
|
columnMenuShowColumns: 'Pokaż wszystkie kolumny',
|
|
107
107
|
columnMenuManageColumns: 'Zarządzaj kolumnami',
|
|
108
108
|
columnMenuFilter: 'Filtr',
|
package/node/locales/svSE.js
CHANGED
|
@@ -133,9 +133,9 @@ const svSEGrid = {
|
|
|
133
133
|
// Actions cell more text
|
|
134
134
|
actionsCellMore: 'mer',
|
|
135
135
|
// Column pinning text
|
|
136
|
-
pinToLeft: '
|
|
137
|
-
pinToRight: '
|
|
138
|
-
unpin: '
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
52
|
-
"@mui/system": "^5.15.14 || ^6.0.0 || ^7.0.0
|
|
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
|
},
|