@mui/x-data-grid 7.27.1 → 7.27.3

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,84 @@
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.3
7
+
8
+ _Mar 7, 2025_
9
+
10
+ We'd like to offer a big thanks to the 4 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 🐞 Bugfixes
13
+
14
+ Team members who have contributed to this release:
15
+ @arminmeh, @cherniavskii, @LukasTy, @michelengelen.
16
+
17
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
18
+
19
+ ### Data Grid
20
+
21
+ #### `@mui/x-data-grid@7.27.3`
22
+
23
+ - [DataGrid] Fix `aria-hidden` console error when scrollbar is dragged (#16834) @arminmeh
24
+ - [DataGrid] Fix scroll jump with dynamic row height (#16801) @cherniavskii
25
+
26
+ #### `@mui/x-data-grid-pro@7.27.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
27
+
28
+ Same changes as in `@mui/x-data-grid@7.27.3`.
29
+
30
+ #### `@mui/x-data-grid-premium@7.27.3` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
31
+
32
+ Same changes as in `@mui/x-data-grid-pro@7.27.3`.
33
+
34
+ ### Date and Time Pickers
35
+
36
+ #### `@mui/x-date-pickers@7.27.3`
37
+
38
+ - [fields] Fix Fields aria relationship with `helperText` (#16828) @LukasTy
39
+
40
+ #### `@mui/x-date-pickers-pro@7.27.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
41
+
42
+ Same changes as in `@mui/x-date-pickers@7.27.3`.
43
+
44
+ ### Core
45
+
46
+ - [infra] Update contributor acknowledgment wording (#16753) @michelengelen
47
+
48
+ ## 7.27.2
49
+
50
+ <!-- generated comparing v7.27.1..v7.x -->
51
+
52
+ _Feb 27, 2025_
53
+
54
+ We'd like to offer a big thanks to the 5 contributors who made this release possible. Here are some highlights ✨:
55
+
56
+ - 🐞 Bugfixes
57
+ - 🌍 Improve Hungarian (hu-HU) and Russian (ru-RU) locales on the Data Grid
58
+
59
+ Special thanks go out to the community contributors who have helped make this release possible:
60
+ @pcorpet, @noherczeg, @denpiligrim.
61
+ Following are all team members who have contributed to this release:
62
+ @MBilalShafi, @KenanYusuf.
63
+
64
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
65
+
66
+ ### Data Grid
67
+
68
+ #### `@mui/x-data-grid@v7.27.2`
69
+
70
+ - [DataGrid] Fix `showColumnVerticalBorder` prop (#16726) @KenanYusuf
71
+ - [DataGrid] Make server-side data navigation consistent (#16735) @MBilalShafi
72
+ - [DataGrid] Use readonly array for `GridSortModel` (#16731) @pcorpet
73
+ - [l10n] Improve Hungarian (hu-HU) locale (#16746) @noherczeg
74
+ - [l10n] Improve Russian (ru-RU) locale (#16725) @denpiligrim
75
+
76
+ #### `@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')
77
+
78
+ Same changes as in `@mui/x-data-grid@v7.27.2`.
79
+
80
+ #### `@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')
81
+
82
+ Same changes as in `@mui/x-data-grid-pro@v7.27.2`.
83
+
6
84
  ## 7.27.1
7
85
 
8
86
  _Feb 25, 2025_
@@ -130,7 +130,13 @@ const GridVirtualScrollbar = forwardRef(function GridVirtualScrollbar(props, ref
130
130
  top: 0
131
131
  } : undefined,
132
132
  tabIndex: -1,
133
- "aria-hidden": "true",
133
+ "aria-hidden": "true"
134
+ // tabIndex does not prevent focus with a mouse click, throwing a console error
135
+ // https://github.com/mui/mui-x/issues/16706
136
+ ,
137
+ onFocus: event => {
138
+ event.target.blur();
139
+ },
134
140
  children: /*#__PURE__*/_jsx("div", {
135
141
  ref: contentRef,
136
142
  className: classes.content
@@ -135,7 +135,7 @@ export const useGridColumnHeaders = props => {
135
135
  const indexInSection = i;
136
136
  const sectionLength = renderedColumns.length;
137
137
  const showLeftBorder = shouldCellShowLeftBorder(pinnedPosition, indexInSection);
138
- const showRightBorder = shouldCellShowRightBorder(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
138
+ const showRightBorder = shouldCellShowRightBorder(pinnedPosition, indexInSection, sectionLength, rootProps.showColumnVerticalBorder, gridHasFiller);
139
139
  columns.push(/*#__PURE__*/_jsx(GridColumnHeaderItem, _extends({}, sortColumnLookup[colDef.field], {
140
140
  columnMenuOpen: open,
141
141
  filterItemsCounter: filterColumnLookup[colDef.field] && filterColumnLookup[colDef.field].length,
@@ -252,7 +252,7 @@ export const useGridColumnHeaders = props => {
252
252
  pinnedPosition: pinnedPosition,
253
253
  pinnedOffset: pinnedOffset,
254
254
  showLeftBorder: shouldCellShowLeftBorder(pinnedPosition, indexInSection),
255
- showRightBorder: shouldCellShowRightBorder(pinnedPosition, indexInSection, visibleColumnGroupHeader.length, rootProps.showCellVerticalBorder, gridHasFiller)
255
+ showRightBorder: shouldCellShowRightBorder(pinnedPosition, indexInSection, visibleColumnGroupHeader.length, rootProps.showColumnVerticalBorder, gridHasFiller)
256
256
  }, index);
257
257
  });
258
258
  return getFillers(params, children, leftOverflow);
@@ -13,6 +13,7 @@ import { useGridRegisterPipeApplier } from "../../core/pipeProcessing/index.js";
13
13
  import { gridPinnedRowsSelector, gridRowCountSelector } from "./gridRowsSelector.js";
14
14
  import { gridDimensionsSelector, gridRowHeightSelector } from "../dimensions/gridDimensionsSelectors.js";
15
15
  import { getValidRowHeight, getRowHeightWarning } from "./gridRowsUtils.js";
16
+ import { gridFocusedVirtualCellSelector } from "../virtualization/gridFocusedVirtualCellSelector.js";
16
17
  /* eslint-disable no-underscore-dangle */
17
18
 
18
19
  export const rowsMetaStateInitializer = (state, props, apiRef) => {
@@ -183,6 +184,13 @@ export const useGridRowsMeta = (apiRef, props) => {
183
184
  const entry = entries[i];
184
185
  const height = entry.borderBoxSize && entry.borderBoxSize.length > 0 ? entry.borderBoxSize[0].blockSize : entry.contentRect.height;
185
186
  const rowId = entry.target.__mui_id;
187
+ const focusedVirtualRowId = gridFocusedVirtualCellSelector(apiRef)?.id;
188
+ if (focusedVirtualRowId === rowId && height === 0) {
189
+ // Focused virtual row has 0 height.
190
+ // We don't want to store it to avoid scroll jumping.
191
+ // https://github.com/mui/mui-x/issues/14726
192
+ return;
193
+ }
186
194
  apiRef.current.unstable_storeRowHeightMeasurement(rowId, height);
187
195
  }
188
196
  if (!isHeightMetaValid.current) {
@@ -33,7 +33,6 @@ export declare const useGridVirtualScroller: () => {
33
33
  };
34
34
  getScrollbarVerticalProps: () => {
35
35
  ref: React.RefObject<HTMLDivElement | null>;
36
- role: string;
37
36
  scrollPosition: React.RefObject<{
38
37
  top: number;
39
38
  left: number;
@@ -41,7 +40,6 @@ export declare const useGridVirtualScroller: () => {
41
40
  };
42
41
  getScrollbarHorizontalProps: () => {
43
42
  ref: React.RefObject<HTMLDivElement | null>;
44
- role: string;
45
43
  scrollPosition: React.RefObject<{
46
44
  top: number;
47
45
  left: number;
@@ -524,12 +524,10 @@ export const useGridVirtualScroller = () => {
524
524
  }),
525
525
  getScrollbarVerticalProps: () => ({
526
526
  ref: scrollbarVerticalRef,
527
- role: 'presentation',
528
527
  scrollPosition
529
528
  }),
530
529
  getScrollbarHorizontalProps: () => ({
531
530
  ref: scrollbarHorizontalRef,
532
- role: 'presentation',
533
531
  scrollPosition
534
532
  }),
535
533
  getScrollAreaProps: () => ({
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.27.1
2
+ * @mui/x-data-grid v7.27.3
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
package/locales/huHU.js CHANGED
@@ -34,8 +34,7 @@ const huHUGrid = {
34
34
  columnsManagementNoColumns: 'Nincsenek oszlopok',
35
35
  columnsManagementShowHideAllText: 'Összes',
36
36
  columnsManagementReset: 'Visszavon',
37
- // columnsManagementDeleteIconLabel: 'Clear',
38
-
37
+ columnsManagementDeleteIconLabel: 'Törlés',
39
38
  // Filter panel text
40
39
  filterPanelAddFilter: 'Szűrő hozzáadása',
41
40
  filterPanelRemoveAll: 'Összes törlése',
@@ -49,9 +48,9 @@ const huHUGrid = {
49
48
  filterPanelInputPlaceholder: 'Érték szűrése',
50
49
  // Filter operators text
51
50
  filterOperatorContains: 'tartalmazza:',
52
- // filterOperatorDoesNotContain: 'does not contain',
51
+ filterOperatorDoesNotContain: 'nem tartalmazza',
53
52
  filterOperatorEquals: 'egyenlő ezzel:',
54
- // filterOperatorDoesNotEqual: 'does not equal',
53
+ filterOperatorDoesNotEqual: 'nem egyenlő',
55
54
  filterOperatorStartsWith: 'ezzel kezdődik:',
56
55
  filterOperatorEndsWith: 'ezzel végződik:',
57
56
  filterOperatorIs: 'a következő:',
@@ -71,13 +70,13 @@ const huHUGrid = {
71
70
  'filterOperator<=': '<=',
72
71
  // Header filter operators text
73
72
  headerFilterOperatorContains: 'Tartalmazza:',
74
- // headerFilterOperatorDoesNotContain: 'Does not contain',
73
+ headerFilterOperatorDoesNotContain: 'Nem tartalmazza',
75
74
  headerFilterOperatorEquals: 'Egyenlő ezzel:',
76
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
75
+ headerFilterOperatorDoesNotEqual: 'Nem egyenlő',
77
76
  headerFilterOperatorStartsWith: 'Ezzel kezdődik:',
78
77
  headerFilterOperatorEndsWith: 'Ezzel végződik:',
79
- // headerFilterOperatorIs: 'Is',
80
- // headerFilterOperatorNot: 'Is not',
78
+ headerFilterOperatorIs: 'Megegyezik',
79
+ headerFilterOperatorNot: 'Nem egyezik meg',
81
80
  headerFilterOperatorAfter: 'Ezutáni:',
82
81
  headerFilterOperatorOnOrAfter: 'Ekkori vagy ezutáni:',
83
82
  headerFilterOperatorBefore: 'Ezelőtti:',
package/locales/ruRU.js CHANGED
@@ -49,8 +49,7 @@ const ruRUGrid = {
49
49
  columnsManagementNoColumns: 'Нет столбцов',
50
50
  columnsManagementShowHideAllText: 'Показать/Скрыть Всё',
51
51
  columnsManagementReset: 'Сбросить',
52
- // columnsManagementDeleteIconLabel: 'Clear',
53
-
52
+ columnsManagementDeleteIconLabel: 'Очистить',
54
53
  // Filter panel text
55
54
  filterPanelAddFilter: 'Добавить фильтр',
56
55
  filterPanelRemoveAll: 'Очистить фильтр',
@@ -64,9 +63,9 @@ const ruRUGrid = {
64
63
  filterPanelInputPlaceholder: 'Значение фильтра',
65
64
  // Filter operators text
66
65
  filterOperatorContains: 'содержит',
67
- // filterOperatorDoesNotContain: 'does not contain',
66
+ filterOperatorDoesNotContain: 'не содержит',
68
67
  filterOperatorEquals: 'равен',
69
- // filterOperatorDoesNotEqual: 'does not equal',
68
+ filterOperatorDoesNotEqual: 'не равен',
70
69
  filterOperatorStartsWith: 'начинается с',
71
70
  filterOperatorEndsWith: 'заканчивается на',
72
71
  filterOperatorIs: 'равен',
@@ -86,9 +85,9 @@ const ruRUGrid = {
86
85
  'filterOperator<=': '<=',
87
86
  // Header filter operators text
88
87
  headerFilterOperatorContains: 'содержит',
89
- // headerFilterOperatorDoesNotContain: 'Does not contain',
88
+ headerFilterOperatorDoesNotContain: 'не содержит',
90
89
  headerFilterOperatorEquals: 'равен',
91
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
90
+ headerFilterOperatorDoesNotEqual: 'не равен',
92
91
  headerFilterOperatorStartsWith: 'начинается с',
93
92
  headerFilterOperatorEndsWith: 'заканчивается на',
94
93
  headerFilterOperatorIs: 'равен',
@@ -27,4 +27,4 @@ export interface GridSortItem {
27
27
  /**
28
28
  * The model used for sorting the grid.
29
29
  */
30
- export type GridSortModel = GridSortItem[];
30
+ export type GridSortModel = readonly GridSortItem[];
@@ -130,7 +130,13 @@ const GridVirtualScrollbar = forwardRef(function GridVirtualScrollbar(props, ref
130
130
  top: 0
131
131
  } : undefined,
132
132
  tabIndex: -1,
133
- "aria-hidden": "true",
133
+ "aria-hidden": "true"
134
+ // tabIndex does not prevent focus with a mouse click, throwing a console error
135
+ // https://github.com/mui/mui-x/issues/16706
136
+ ,
137
+ onFocus: event => {
138
+ event.target.blur();
139
+ },
134
140
  children: /*#__PURE__*/_jsx("div", {
135
141
  ref: contentRef,
136
142
  className: classes.content
@@ -135,7 +135,7 @@ export const useGridColumnHeaders = props => {
135
135
  const indexInSection = i;
136
136
  const sectionLength = renderedColumns.length;
137
137
  const showLeftBorder = shouldCellShowLeftBorder(pinnedPosition, indexInSection);
138
- const showRightBorder = shouldCellShowRightBorder(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
138
+ const showRightBorder = shouldCellShowRightBorder(pinnedPosition, indexInSection, sectionLength, rootProps.showColumnVerticalBorder, gridHasFiller);
139
139
  columns.push(/*#__PURE__*/_jsx(GridColumnHeaderItem, _extends({}, sortColumnLookup[colDef.field], {
140
140
  columnMenuOpen: open,
141
141
  filterItemsCounter: filterColumnLookup[colDef.field] && filterColumnLookup[colDef.field].length,
@@ -252,7 +252,7 @@ export const useGridColumnHeaders = props => {
252
252
  pinnedPosition: pinnedPosition,
253
253
  pinnedOffset: pinnedOffset,
254
254
  showLeftBorder: shouldCellShowLeftBorder(pinnedPosition, indexInSection),
255
- showRightBorder: shouldCellShowRightBorder(pinnedPosition, indexInSection, visibleColumnGroupHeader.length, rootProps.showCellVerticalBorder, gridHasFiller)
255
+ showRightBorder: shouldCellShowRightBorder(pinnedPosition, indexInSection, visibleColumnGroupHeader.length, rootProps.showColumnVerticalBorder, gridHasFiller)
256
256
  }, index);
257
257
  });
258
258
  return getFillers(params, children, leftOverflow);
@@ -13,6 +13,7 @@ import { useGridRegisterPipeApplier } from "../../core/pipeProcessing/index.js";
13
13
  import { gridPinnedRowsSelector, gridRowCountSelector } from "./gridRowsSelector.js";
14
14
  import { gridDimensionsSelector, gridRowHeightSelector } from "../dimensions/gridDimensionsSelectors.js";
15
15
  import { getValidRowHeight, getRowHeightWarning } from "./gridRowsUtils.js";
16
+ import { gridFocusedVirtualCellSelector } from "../virtualization/gridFocusedVirtualCellSelector.js";
16
17
  /* eslint-disable no-underscore-dangle */
17
18
 
18
19
  export const rowsMetaStateInitializer = (state, props, apiRef) => {
@@ -183,6 +184,13 @@ export const useGridRowsMeta = (apiRef, props) => {
183
184
  const entry = entries[i];
184
185
  const height = entry.borderBoxSize && entry.borderBoxSize.length > 0 ? entry.borderBoxSize[0].blockSize : entry.contentRect.height;
185
186
  const rowId = entry.target.__mui_id;
187
+ const focusedVirtualRowId = gridFocusedVirtualCellSelector(apiRef)?.id;
188
+ if (focusedVirtualRowId === rowId && height === 0) {
189
+ // Focused virtual row has 0 height.
190
+ // We don't want to store it to avoid scroll jumping.
191
+ // https://github.com/mui/mui-x/issues/14726
192
+ return;
193
+ }
186
194
  apiRef.current.unstable_storeRowHeightMeasurement(rowId, height);
187
195
  }
188
196
  if (!isHeightMetaValid.current) {
@@ -524,12 +524,10 @@ export const useGridVirtualScroller = () => {
524
524
  }),
525
525
  getScrollbarVerticalProps: () => ({
526
526
  ref: scrollbarVerticalRef,
527
- role: 'presentation',
528
527
  scrollPosition
529
528
  }),
530
529
  getScrollbarHorizontalProps: () => ({
531
530
  ref: scrollbarHorizontalRef,
532
- role: 'presentation',
533
531
  scrollPosition
534
532
  }),
535
533
  getScrollAreaProps: () => ({
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.27.1
2
+ * @mui/x-data-grid v7.27.3
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -34,8 +34,7 @@ const huHUGrid = {
34
34
  columnsManagementNoColumns: 'Nincsenek oszlopok',
35
35
  columnsManagementShowHideAllText: 'Összes',
36
36
  columnsManagementReset: 'Visszavon',
37
- // columnsManagementDeleteIconLabel: 'Clear',
38
-
37
+ columnsManagementDeleteIconLabel: 'Törlés',
39
38
  // Filter panel text
40
39
  filterPanelAddFilter: 'Szűrő hozzáadása',
41
40
  filterPanelRemoveAll: 'Összes törlése',
@@ -49,9 +48,9 @@ const huHUGrid = {
49
48
  filterPanelInputPlaceholder: 'Érték szűrése',
50
49
  // Filter operators text
51
50
  filterOperatorContains: 'tartalmazza:',
52
- // filterOperatorDoesNotContain: 'does not contain',
51
+ filterOperatorDoesNotContain: 'nem tartalmazza',
53
52
  filterOperatorEquals: 'egyenlő ezzel:',
54
- // filterOperatorDoesNotEqual: 'does not equal',
53
+ filterOperatorDoesNotEqual: 'nem egyenlő',
55
54
  filterOperatorStartsWith: 'ezzel kezdődik:',
56
55
  filterOperatorEndsWith: 'ezzel végződik:',
57
56
  filterOperatorIs: 'a következő:',
@@ -71,13 +70,13 @@ const huHUGrid = {
71
70
  'filterOperator<=': '<=',
72
71
  // Header filter operators text
73
72
  headerFilterOperatorContains: 'Tartalmazza:',
74
- // headerFilterOperatorDoesNotContain: 'Does not contain',
73
+ headerFilterOperatorDoesNotContain: 'Nem tartalmazza',
75
74
  headerFilterOperatorEquals: 'Egyenlő ezzel:',
76
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
75
+ headerFilterOperatorDoesNotEqual: 'Nem egyenlő',
77
76
  headerFilterOperatorStartsWith: 'Ezzel kezdődik:',
78
77
  headerFilterOperatorEndsWith: 'Ezzel végződik:',
79
- // headerFilterOperatorIs: 'Is',
80
- // headerFilterOperatorNot: 'Is not',
78
+ headerFilterOperatorIs: 'Megegyezik',
79
+ headerFilterOperatorNot: 'Nem egyezik meg',
81
80
  headerFilterOperatorAfter: 'Ezutáni:',
82
81
  headerFilterOperatorOnOrAfter: 'Ekkori vagy ezutáni:',
83
82
  headerFilterOperatorBefore: 'Ezelőtti:',
@@ -49,8 +49,7 @@ const ruRUGrid = {
49
49
  columnsManagementNoColumns: 'Нет столбцов',
50
50
  columnsManagementShowHideAllText: 'Показать/Скрыть Всё',
51
51
  columnsManagementReset: 'Сбросить',
52
- // columnsManagementDeleteIconLabel: 'Clear',
53
-
52
+ columnsManagementDeleteIconLabel: 'Очистить',
54
53
  // Filter panel text
55
54
  filterPanelAddFilter: 'Добавить фильтр',
56
55
  filterPanelRemoveAll: 'Очистить фильтр',
@@ -64,9 +63,9 @@ const ruRUGrid = {
64
63
  filterPanelInputPlaceholder: 'Значение фильтра',
65
64
  // Filter operators text
66
65
  filterOperatorContains: 'содержит',
67
- // filterOperatorDoesNotContain: 'does not contain',
66
+ filterOperatorDoesNotContain: 'не содержит',
68
67
  filterOperatorEquals: 'равен',
69
- // filterOperatorDoesNotEqual: 'does not equal',
68
+ filterOperatorDoesNotEqual: 'не равен',
70
69
  filterOperatorStartsWith: 'начинается с',
71
70
  filterOperatorEndsWith: 'заканчивается на',
72
71
  filterOperatorIs: 'равен',
@@ -86,9 +85,9 @@ const ruRUGrid = {
86
85
  'filterOperator<=': '<=',
87
86
  // Header filter operators text
88
87
  headerFilterOperatorContains: 'содержит',
89
- // headerFilterOperatorDoesNotContain: 'Does not contain',
88
+ headerFilterOperatorDoesNotContain: 'не содержит',
90
89
  headerFilterOperatorEquals: 'равен',
91
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
90
+ headerFilterOperatorDoesNotEqual: 'не равен',
92
91
  headerFilterOperatorStartsWith: 'начинается с',
93
92
  headerFilterOperatorEndsWith: 'заканчивается на',
94
93
  headerFilterOperatorIs: 'равен',
@@ -137,7 +137,13 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = (0, _forwardRef.forw
137
137
  top: 0
138
138
  } : undefined,
139
139
  tabIndex: -1,
140
- "aria-hidden": "true",
140
+ "aria-hidden": "true"
141
+ // tabIndex does not prevent focus with a mouse click, throwing a console error
142
+ // https://github.com/mui/mui-x/issues/16706
143
+ ,
144
+ onFocus: event => {
145
+ event.target.blur();
146
+ },
141
147
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
142
148
  ref: contentRef,
143
149
  className: classes.content
@@ -143,7 +143,7 @@ const useGridColumnHeaders = props => {
143
143
  const indexInSection = i;
144
144
  const sectionLength = renderedColumns.length;
145
145
  const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(pinnedPosition, indexInSection);
146
- const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
146
+ const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showColumnVerticalBorder, gridHasFiller);
147
147
  columns.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnHeaderItem.GridColumnHeaderItem, (0, _extends2.default)({}, sortColumnLookup[colDef.field], {
148
148
  columnMenuOpen: open,
149
149
  filterItemsCounter: filterColumnLookup[colDef.field] && filterColumnLookup[colDef.field].length,
@@ -260,7 +260,7 @@ const useGridColumnHeaders = props => {
260
260
  pinnedPosition: pinnedPosition,
261
261
  pinnedOffset: pinnedOffset,
262
262
  showLeftBorder: (0, _cellBorderUtils.shouldCellShowLeftBorder)(pinnedPosition, indexInSection),
263
- showRightBorder: (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, indexInSection, visibleColumnGroupHeader.length, rootProps.showCellVerticalBorder, gridHasFiller)
263
+ showRightBorder: (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, indexInSection, visibleColumnGroupHeader.length, rootProps.showColumnVerticalBorder, gridHasFiller)
264
264
  }, index);
265
265
  });
266
266
  return getFillers(params, children, leftOverflow);
@@ -21,6 +21,7 @@ var _pipeProcessing = require("../../core/pipeProcessing");
21
21
  var _gridRowsSelector = require("./gridRowsSelector");
22
22
  var _gridDimensionsSelectors = require("../dimensions/gridDimensionsSelectors");
23
23
  var _gridRowsUtils = require("./gridRowsUtils");
24
+ var _gridFocusedVirtualCellSelector = require("../virtualization/gridFocusedVirtualCellSelector");
24
25
  /* eslint-disable no-underscore-dangle */
25
26
 
26
27
  const rowsMetaStateInitializer = (state, props, apiRef) => {
@@ -192,6 +193,13 @@ const useGridRowsMeta = (apiRef, props) => {
192
193
  const entry = entries[i];
193
194
  const height = entry.borderBoxSize && entry.borderBoxSize.length > 0 ? entry.borderBoxSize[0].blockSize : entry.contentRect.height;
194
195
  const rowId = entry.target.__mui_id;
196
+ const focusedVirtualRowId = (0, _gridFocusedVirtualCellSelector.gridFocusedVirtualCellSelector)(apiRef)?.id;
197
+ if (focusedVirtualRowId === rowId && height === 0) {
198
+ // Focused virtual row has 0 height.
199
+ // We don't want to store it to avoid scroll jumping.
200
+ // https://github.com/mui/mui-x/issues/14726
201
+ return;
202
+ }
195
203
  apiRef.current.unstable_storeRowHeightMeasurement(rowId, height);
196
204
  }
197
205
  if (!isHeightMetaValid.current) {
@@ -535,12 +535,10 @@ const useGridVirtualScroller = () => {
535
535
  }),
536
536
  getScrollbarVerticalProps: () => ({
537
537
  ref: scrollbarVerticalRef,
538
- role: 'presentation',
539
538
  scrollPosition
540
539
  }),
541
540
  getScrollbarHorizontalProps: () => ({
542
541
  ref: scrollbarHorizontalRef,
543
- role: 'presentation',
544
542
  scrollPosition
545
543
  }),
546
544
  getScrollAreaProps: () => ({
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.27.1
2
+ * @mui/x-data-grid v7.27.3
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -40,8 +40,7 @@ const huHUGrid = {
40
40
  columnsManagementNoColumns: 'Nincsenek oszlopok',
41
41
  columnsManagementShowHideAllText: 'Összes',
42
42
  columnsManagementReset: 'Visszavon',
43
- // columnsManagementDeleteIconLabel: 'Clear',
44
-
43
+ columnsManagementDeleteIconLabel: 'Törlés',
45
44
  // Filter panel text
46
45
  filterPanelAddFilter: 'Szűrő hozzáadása',
47
46
  filterPanelRemoveAll: 'Összes törlése',
@@ -55,9 +54,9 @@ const huHUGrid = {
55
54
  filterPanelInputPlaceholder: 'Érték szűrése',
56
55
  // Filter operators text
57
56
  filterOperatorContains: 'tartalmazza:',
58
- // filterOperatorDoesNotContain: 'does not contain',
57
+ filterOperatorDoesNotContain: 'nem tartalmazza',
59
58
  filterOperatorEquals: 'egyenlő ezzel:',
60
- // filterOperatorDoesNotEqual: 'does not equal',
59
+ filterOperatorDoesNotEqual: 'nem egyenlő',
61
60
  filterOperatorStartsWith: 'ezzel kezdődik:',
62
61
  filterOperatorEndsWith: 'ezzel végződik:',
63
62
  filterOperatorIs: 'a következő:',
@@ -77,13 +76,13 @@ const huHUGrid = {
77
76
  'filterOperator<=': '<=',
78
77
  // Header filter operators text
79
78
  headerFilterOperatorContains: 'Tartalmazza:',
80
- // headerFilterOperatorDoesNotContain: 'Does not contain',
79
+ headerFilterOperatorDoesNotContain: 'Nem tartalmazza',
81
80
  headerFilterOperatorEquals: 'Egyenlő ezzel:',
82
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
81
+ headerFilterOperatorDoesNotEqual: 'Nem egyenlő',
83
82
  headerFilterOperatorStartsWith: 'Ezzel kezdődik:',
84
83
  headerFilterOperatorEndsWith: 'Ezzel végződik:',
85
- // headerFilterOperatorIs: 'Is',
86
- // headerFilterOperatorNot: 'Is not',
84
+ headerFilterOperatorIs: 'Megegyezik',
85
+ headerFilterOperatorNot: 'Nem egyezik meg',
87
86
  headerFilterOperatorAfter: 'Ezutáni:',
88
87
  headerFilterOperatorOnOrAfter: 'Ekkori vagy ezutáni:',
89
88
  headerFilterOperatorBefore: 'Ezelőtti:',
@@ -55,8 +55,7 @@ const ruRUGrid = {
55
55
  columnsManagementNoColumns: 'Нет столбцов',
56
56
  columnsManagementShowHideAllText: 'Показать/Скрыть Всё',
57
57
  columnsManagementReset: 'Сбросить',
58
- // columnsManagementDeleteIconLabel: 'Clear',
59
-
58
+ columnsManagementDeleteIconLabel: 'Очистить',
60
59
  // Filter panel text
61
60
  filterPanelAddFilter: 'Добавить фильтр',
62
61
  filterPanelRemoveAll: 'Очистить фильтр',
@@ -70,9 +69,9 @@ const ruRUGrid = {
70
69
  filterPanelInputPlaceholder: 'Значение фильтра',
71
70
  // Filter operators text
72
71
  filterOperatorContains: 'содержит',
73
- // filterOperatorDoesNotContain: 'does not contain',
72
+ filterOperatorDoesNotContain: 'не содержит',
74
73
  filterOperatorEquals: 'равен',
75
- // filterOperatorDoesNotEqual: 'does not equal',
74
+ filterOperatorDoesNotEqual: 'не равен',
76
75
  filterOperatorStartsWith: 'начинается с',
77
76
  filterOperatorEndsWith: 'заканчивается на',
78
77
  filterOperatorIs: 'равен',
@@ -92,9 +91,9 @@ const ruRUGrid = {
92
91
  'filterOperator<=': '<=',
93
92
  // Header filter operators text
94
93
  headerFilterOperatorContains: 'содержит',
95
- // headerFilterOperatorDoesNotContain: 'Does not contain',
94
+ headerFilterOperatorDoesNotContain: 'не содержит',
96
95
  headerFilterOperatorEquals: 'равен',
97
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
96
+ headerFilterOperatorDoesNotEqual: 'не равен',
98
97
  headerFilterOperatorStartsWith: 'начинается с',
99
98
  headerFilterOperatorEndsWith: 'заканчивается на',
100
99
  headerFilterOperatorIs: 'равен',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid",
3
- "version": "7.27.1",
3
+ "version": "7.27.3",
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",