@mui/x-data-grid 9.6.0 → 9.8.0
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 +241 -2
- package/DataGrid/DataGrid.js +2 -2
- package/DataGrid/DataGrid.mjs +2 -2
- package/colDef/gridDateOperators.d.mts +1 -1
- package/colDef/gridDateOperators.d.ts +1 -1
- package/components/GridColumnHeaders.d.mts +1 -1
- package/components/GridColumnHeaders.d.ts +1 -1
- package/components/GridFooter.d.mts +1 -1
- package/components/GridFooter.d.ts +1 -1
- package/components/GridLoadingOverlay.d.mts +1 -1
- package/components/GridLoadingOverlay.d.ts +1 -1
- package/components/GridNoColumnsOverlay.d.mts +1 -1
- package/components/GridNoColumnsOverlay.d.ts +1 -1
- package/components/GridNoResultsOverlay.d.mts +1 -1
- package/components/GridNoResultsOverlay.d.ts +1 -1
- package/components/GridNoRowsOverlay.d.mts +1 -1
- package/components/GridNoRowsOverlay.d.ts +1 -1
- package/components/GridRowCount.d.mts +1 -1
- package/components/GridRowCount.d.ts +1 -1
- package/components/GridSelectedRowCount.d.mts +1 -1
- package/components/GridSelectedRowCount.d.ts +1 -1
- package/components/cell/GridActionsCell.d.mts +1 -1
- package/components/cell/GridActionsCell.d.ts +1 -1
- package/components/cell/GridCell.d.mts +1 -1
- package/components/cell/GridCell.d.ts +1 -1
- package/components/cell/GridCell.js +2 -10
- package/components/cell/GridCell.mjs +2 -10
- package/components/cell/GridFooterCell.d.mts +1 -1
- package/components/cell/GridFooterCell.d.ts +1 -1
- package/components/columnHeaders/GridBaseColumnHeaders.d.mts +1 -1
- package/components/columnHeaders/GridBaseColumnHeaders.d.ts +1 -1
- package/components/columnHeaders/GridColumnGroupHeader.js +2 -10
- package/components/columnHeaders/GridColumnGroupHeader.mjs +2 -10
- package/components/columnHeaders/GridColumnHeaderItem.js +2 -10
- package/components/columnHeaders/GridColumnHeaderItem.mjs +2 -10
- package/components/columnHeaders/GridColumnHeaderSortIcon.d.mts +1 -1
- package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -1
- package/components/columnHeaders/GridGenericColumnHeaderItem.d.mts +1 -1
- package/components/columnHeaders/GridGenericColumnHeaderItem.d.ts +1 -1
- package/components/columnsPanel/ColumnsPanelTrigger.d.mts +1 -1
- package/components/columnsPanel/ColumnsPanelTrigger.d.ts +1 -1
- package/components/columnsPanel/ColumnsPanelTrigger.js +2 -2
- package/components/columnsPanel/ColumnsPanelTrigger.mjs +2 -2
- package/components/containers/GridFooterContainer.d.mts +1 -1
- package/components/containers/GridFooterContainer.d.ts +1 -1
- package/components/containers/GridOverlay.d.mts +1 -1
- package/components/containers/GridOverlay.d.ts +1 -1
- package/components/containers/GridToolbarContainer.d.mts +1 -1
- package/components/containers/GridToolbarContainer.d.ts +1 -1
- package/components/export/ExportCsv.d.mts +1 -1
- package/components/export/ExportCsv.d.ts +1 -1
- package/components/export/ExportPrint.d.mts +1 -1
- package/components/export/ExportPrint.d.ts +1 -1
- package/components/filterPanel/FilterPanelTrigger.d.mts +1 -1
- package/components/filterPanel/FilterPanelTrigger.d.ts +1 -1
- package/components/filterPanel/FilterPanelTrigger.js +2 -2
- package/components/filterPanel/FilterPanelTrigger.mjs +2 -2
- package/components/menu/columnMenu/GridColumnHeaderMenu.d.mts +1 -1
- package/components/menu/columnMenu/GridColumnHeaderMenu.d.ts +1 -1
- package/components/panel/GridColumnsPanel.d.mts +1 -1
- package/components/panel/GridColumnsPanel.d.ts +1 -1
- package/components/panel/GridPanelContent.d.mts +1 -1
- package/components/panel/GridPanelContent.d.ts +1 -1
- package/components/panel/GridPanelContext.d.mts +9 -3
- package/components/panel/GridPanelContext.d.ts +9 -3
- package/components/panel/GridPanelContext.js +40 -7
- package/components/panel/GridPanelContext.mjs +40 -7
- package/components/panel/GridPanelFooter.d.mts +1 -1
- package/components/panel/GridPanelFooter.d.ts +1 -1
- package/components/panel/GridPanelHeader.d.mts +1 -1
- package/components/panel/GridPanelHeader.d.ts +1 -1
- package/components/panel/GridPanelWrapper.d.mts +1 -1
- package/components/panel/GridPanelWrapper.d.ts +1 -1
- package/components/panel/GridPreferencesPanel.js +4 -6
- package/components/panel/GridPreferencesPanel.mjs +4 -6
- package/components/panel/filterPanel/GridFilterForm.d.mts +2 -1
- package/components/panel/filterPanel/GridFilterForm.d.ts +2 -1
- package/components/panel/filterPanel/GridFilterPanel.d.mts +2 -2
- package/components/panel/filterPanel/GridFilterPanel.d.ts +2 -2
- package/components/quickFilter/QuickFilter.d.mts +2 -2
- package/components/quickFilter/QuickFilter.d.ts +2 -2
- package/components/quickFilter/QuickFilterClear.d.mts +2 -2
- package/components/quickFilter/QuickFilterClear.d.ts +2 -2
- package/components/quickFilter/QuickFilterControl.d.mts +2 -2
- package/components/quickFilter/QuickFilterControl.d.ts +2 -2
- package/components/quickFilter/QuickFilterTrigger.d.mts +2 -2
- package/components/quickFilter/QuickFilterTrigger.d.ts +2 -2
- package/components/toolbar/GridToolbar.d.mts +3 -3
- package/components/toolbar/GridToolbar.d.ts +3 -3
- package/components/toolbar/GridToolbarColumnsButton.js +2 -2
- package/components/toolbar/GridToolbarColumnsButton.mjs +2 -2
- package/components/toolbar/GridToolbarFilterButton.js +2 -2
- package/components/toolbar/GridToolbarFilterButton.mjs +2 -2
- package/components/toolbarV8/Toolbar.d.mts +1 -1
- package/components/toolbarV8/Toolbar.d.ts +1 -1
- package/components/toolbarV8/ToolbarButton.d.mts +1 -1
- package/components/toolbarV8/ToolbarButton.d.ts +1 -1
- package/components/virtualization/GridVirtualScrollerContent.d.mts +1 -1
- package/components/virtualization/GridVirtualScrollerContent.d.ts +1 -1
- package/components/virtualization/GridVirtualScrollerRenderZone.d.mts +1 -1
- package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +1 -1
- package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.js +7 -1
- package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.mjs +7 -1
- package/hooks/features/columnGrouping/gridColumnGroupsUtils.d.mts +1 -1
- package/hooks/features/columnGrouping/gridColumnGroupsUtils.d.ts +1 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.mts +2 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +2 -1
- package/hooks/features/columnResize/useGridColumnResize.js +56 -2
- package/hooks/features/columnResize/useGridColumnResize.mjs +57 -3
- package/hooks/features/columns/gridColumnsSelector.d.mts +1 -1
- package/hooks/features/columns/gridColumnsSelector.d.ts +1 -1
- package/hooks/features/dimensions/useGridDimensions.js +3 -3
- package/hooks/features/dimensions/useGridDimensions.mjs +3 -3
- package/hooks/features/editing/gridEditingSelectors.d.mts +1 -1
- package/hooks/features/editing/gridEditingSelectors.d.ts +1 -1
- package/hooks/features/editing/gridEditingSelectors.mjs +0 -1
- package/hooks/features/editing/useGridCellEditing.js +14 -7
- package/hooks/features/editing/useGridCellEditing.mjs +14 -7
- package/hooks/features/editing/utils.d.mts +1 -1
- package/hooks/features/editing/utils.d.ts +1 -1
- package/hooks/features/editing/utils.js +1 -1
- package/hooks/features/editing/utils.mjs +1 -1
- package/hooks/features/filter/gridFilterState.d.mts +1 -1
- package/hooks/features/filter/gridFilterState.d.ts +1 -1
- package/hooks/features/filter/gridFilterUtils.d.mts +2 -2
- package/hooks/features/filter/gridFilterUtils.d.ts +2 -2
- package/hooks/features/focus/useGridFocus.js +2 -10
- package/hooks/features/focus/useGridFocus.mjs +2 -10
- package/hooks/features/rowSelection/useGridRowSelection.js +0 -3
- package/hooks/features/rowSelection/useGridRowSelection.mjs +0 -3
- package/hooks/features/rows/gridRowSpanningUtils.d.mts +1 -1
- package/hooks/features/rows/gridRowSpanningUtils.d.ts +1 -1
- package/hooks/features/rows/gridRowSpanningUtils.js +1 -1
- package/hooks/features/rows/gridRowSpanningUtils.mjs +1 -1
- package/hooks/features/rows/gridRowsUtils.d.mts +1 -1
- package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
- package/hooks/features/rows/gridRowsUtils.js +6 -4
- package/hooks/features/rows/gridRowsUtils.mjs +6 -4
- package/hooks/features/virtualization/useGridVirtualization.d.mts +1 -1
- package/hooks/features/virtualization/useGridVirtualization.d.ts +1 -1
- package/hooks/features/virtualization/useGridVirtualization.js +2 -2
- package/hooks/features/virtualization/useGridVirtualization.mjs +2 -2
- package/hooks/utils/useGridEvent.js +1 -1
- package/hooks/utils/useGridEvent.mjs +1 -1
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/locales/arSD.d.mts +1 -1
- package/locales/arSD.d.ts +1 -1
- package/locales/beBY.d.mts +1 -1
- package/locales/beBY.d.ts +1 -1
- package/locales/bgBG.d.mts +1 -1
- package/locales/bgBG.d.ts +1 -1
- package/locales/bnBD.d.mts +1 -1
- package/locales/bnBD.d.ts +1 -1
- package/locales/caES.d.mts +1 -1
- package/locales/caES.d.ts +1 -1
- package/locales/csCZ.d.mts +1 -1
- package/locales/csCZ.d.ts +1 -1
- package/locales/daDK.d.mts +1 -1
- package/locales/daDK.d.ts +1 -1
- package/locales/deDE.d.mts +1 -1
- package/locales/deDE.d.ts +1 -1
- package/locales/elGR.d.mts +1 -1
- package/locales/elGR.d.ts +1 -1
- package/locales/enUS.d.mts +1 -1
- package/locales/enUS.d.ts +1 -1
- package/locales/esES.d.mts +1 -1
- package/locales/esES.d.ts +1 -1
- package/locales/faIR.d.mts +1 -1
- package/locales/faIR.d.ts +1 -1
- package/locales/fiFI.d.mts +1 -1
- package/locales/fiFI.d.ts +1 -1
- package/locales/frFR.d.mts +1 -1
- package/locales/frFR.d.ts +1 -1
- package/locales/heIL.d.mts +1 -1
- package/locales/heIL.d.ts +1 -1
- package/locales/huHU.d.mts +1 -1
- package/locales/huHU.d.ts +1 -1
- package/locales/hyAM.d.mts +1 -1
- package/locales/hyAM.d.ts +1 -1
- package/locales/idID.d.mts +1 -1
- package/locales/idID.d.ts +1 -1
- package/locales/isIS.d.mts +1 -1
- package/locales/isIS.d.ts +1 -1
- package/locales/itIT.d.mts +1 -1
- package/locales/itIT.d.ts +1 -1
- package/locales/jaJP.d.mts +1 -1
- package/locales/jaJP.d.ts +1 -1
- package/locales/jaJP.js +4 -5
- package/locales/jaJP.mjs +4 -5
- package/locales/koKR.d.mts +1 -1
- package/locales/koKR.d.ts +1 -1
- package/locales/nbNO.d.mts +1 -1
- package/locales/nbNO.d.ts +1 -1
- package/locales/nlNL.d.mts +1 -1
- package/locales/nlNL.d.ts +1 -1
- package/locales/nnNO.d.mts +1 -1
- package/locales/nnNO.d.ts +1 -1
- package/locales/plPL.d.mts +1 -1
- package/locales/plPL.d.ts +1 -1
- package/locales/ptBR.d.mts +1 -1
- package/locales/ptBR.d.ts +1 -1
- package/locales/ptPT.d.mts +1 -1
- package/locales/ptPT.d.ts +1 -1
- package/locales/roRO.d.mts +1 -1
- package/locales/roRO.d.ts +1 -1
- package/locales/ruRU.d.mts +1 -1
- package/locales/ruRU.d.ts +1 -1
- package/locales/skSK.d.mts +1 -1
- package/locales/skSK.d.ts +1 -1
- package/locales/svSE.d.mts +1 -1
- package/locales/svSE.d.ts +1 -1
- package/locales/thTH.d.mts +1 -1
- package/locales/thTH.d.ts +1 -1
- package/locales/trTR.d.mts +1 -1
- package/locales/trTR.d.ts +1 -1
- package/locales/ukUA.d.mts +1 -1
- package/locales/ukUA.d.ts +1 -1
- package/locales/urPK.d.mts +1 -1
- package/locales/urPK.d.ts +1 -1
- package/locales/viVN.d.mts +1 -1
- package/locales/viVN.d.ts +1 -1
- package/locales/zhCN.d.mts +1 -1
- package/locales/zhCN.d.ts +1 -1
- package/locales/zhTW.d.mts +1 -1
- package/locales/zhTW.d.ts +1 -1
- package/material/variables.d.mts +1 -1
- package/material/variables.d.ts +1 -1
- package/package.json +5 -4
- package/utils/createSelector.d.mts +1 -1
- package/utils/createSelector.d.ts +1 -1
- package/utils/focusElement.d.mts +9 -0
- package/utils/focusElement.d.ts +9 -0
- package/utils/focusElement.js +24 -0
- package/utils/focusElement.mjs +19 -0
- package/utils/isJSDOM.d.mts +0 -1
- package/utils/isJSDOM.d.ts +0 -1
- package/utils/isJSDOM.js +0 -7
- package/utils/isJSDOM.mjs +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,245 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 9.8.0
|
|
4
|
+
|
|
5
|
+
_Jul 2, 2026_
|
|
6
|
+
|
|
7
|
+
We'd like to extend a big thank you to the 18 contributors who made this release possible. Here are some highlights ✨:
|
|
8
|
+
|
|
9
|
+
- 🗺️ New [`MapImagePlot`](https://mui.com/x/react-charts/map/) for rendering raster base maps, with `onItemClick` support on map shapes (Premium)
|
|
10
|
+
- 📊 New [`usePolarGeometry`](https://mui.com/x/react-charts/hooks/use-polar-geometry/) hook to build custom radial overlays
|
|
11
|
+
- 🐞 Bugfixes
|
|
12
|
+
- 📚 Documentation improvements
|
|
13
|
+
|
|
14
|
+
Special thanks go out to these community members for their valuable contributions:
|
|
15
|
+
@Anexus5919, @aromanio, @greymoth-jp, @mustafajw07, @timbuckley, @voidmatcha
|
|
16
|
+
|
|
17
|
+
The following team members contributed to this release:
|
|
18
|
+
@alexfauquette, @arminmeh, @cherniavskii, @flaviendelangle, @Janpot, @JCQuintas, @joserodolfofreitas, @LukasTy, @mapache-salvaje, @michelengelen, @rita-codes, @sai6855
|
|
19
|
+
|
|
20
|
+
### Data Grid
|
|
21
|
+
|
|
22
|
+
#### `@mui/x-data-grid@9.8.0`
|
|
23
|
+
|
|
24
|
+
- [DataGrid] Prevent cell editing from resurrecting a deleted row (#22958) @Anexus5919
|
|
25
|
+
- [DataGrid] Avoid reading `type` of `undefined` in `gridRowUtils` (#21808) @timbuckley
|
|
26
|
+
- [DataGrid] Improved get started tutorial (#22911) @joserodolfofreitas
|
|
27
|
+
- [l10n] Improve Japanese (ja-JP) locale (#23001) @greymoth-jp
|
|
28
|
+
|
|
29
|
+
#### `@mui/x-data-grid-pro@9.8.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
30
|
+
|
|
31
|
+
Same changes as in `@mui/x-data-grid@9.8.0`.
|
|
32
|
+
|
|
33
|
+
#### `@mui/x-data-grid-premium@9.8.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
34
|
+
|
|
35
|
+
Same changes as in `@mui/x-data-grid-pro@9.8.0`, plus:
|
|
36
|
+
|
|
37
|
+
- [DataGridPremium] Escape `singleSelect` values in Excel export with `escapeFormulas` enabled (#22851) @Anexus5919
|
|
38
|
+
|
|
39
|
+
### Date and Time Pickers
|
|
40
|
+
|
|
41
|
+
#### `@mui/x-date-pickers@9.8.0`
|
|
42
|
+
|
|
43
|
+
- [pickers] Fix localized digit crash (#22995) @alexfauquette
|
|
44
|
+
- [pickers] Flag the first and last visible day cell across year boundaries (#22981) @Anexus5919
|
|
45
|
+
- [pickers] Use calendar day tokens in `AdapterMomentHijri` and `AdapterMomentJalaali` formats (#22974) @Anexus5919
|
|
46
|
+
- [pickers] Use the Hijri day token in `AdapterMomentHijri` `normalDateWithWeekday` (#22972) @Anexus5919
|
|
47
|
+
- [l10n] Improve Romanian (ro-RO) locale (#22969) @aromanio
|
|
48
|
+
|
|
49
|
+
#### `@mui/x-date-pickers-pro@9.8.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
50
|
+
|
|
51
|
+
Same changes as in `@mui/x-date-pickers@9.8.0`, plus:
|
|
52
|
+
|
|
53
|
+
- [DateRangeCalendar] Fix auto month-switch across the year boundary (#22987) @Anexus5919
|
|
54
|
+
|
|
55
|
+
### Charts
|
|
56
|
+
|
|
57
|
+
#### `@mui/x-charts@9.8.0`
|
|
58
|
+
|
|
59
|
+
- [charts] Decouple `d3-geo` from the universal tooltip (#23011) @sai6855
|
|
60
|
+
- [charts] Deduplicate `getGroupingConfig` (#22889) @sai6855
|
|
61
|
+
- [charts] Expose `usePolarGeometry` hook for radial overlays (#22892) @mustafajw07
|
|
62
|
+
|
|
63
|
+
#### `@mui/x-charts-pro@9.8.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
64
|
+
|
|
65
|
+
Same changes as in `@mui/x-charts@9.8.0`.
|
|
66
|
+
|
|
67
|
+
#### `@mui/x-charts-premium@9.8.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
68
|
+
|
|
69
|
+
Same changes as in `@mui/x-charts-pro@9.8.0`, plus:
|
|
70
|
+
|
|
71
|
+
- [charts-premium] Add `onItemClick` support for the Map shapes (#22876) @sai6855
|
|
72
|
+
- [charts-premium] Replace `dataIndex` with `name` in map identifier (#22891) @sai6855
|
|
73
|
+
- [charts-premium] Share helper function (#23030) @alexfauquette
|
|
74
|
+
- [charts-premium] Extract shared WebGL utilities across bar/scatter/heatmap renderers (#22466) @sai6855
|
|
75
|
+
- [charts-premium] Add `MapImagePlot` for raster base maps (#22977) @JCQuintas
|
|
76
|
+
|
|
77
|
+
### Tree View
|
|
78
|
+
|
|
79
|
+
#### `@mui/x-tree-view@9.8.0`
|
|
80
|
+
|
|
81
|
+
- [TreeView] Fix extra selection event when clicking a collapsed parent item (#22249) @michelengelen
|
|
82
|
+
- [TreeView] Enforce top-level type imports (#23034) @Janpot
|
|
83
|
+
|
|
84
|
+
#### `@mui/x-tree-view-pro@9.8.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
85
|
+
|
|
86
|
+
Same changes as in `@mui/x-tree-view@9.8.0`.
|
|
87
|
+
|
|
88
|
+
### Scheduler
|
|
89
|
+
|
|
90
|
+
#### `@mui/x-scheduler@9.0.0-beta.4`
|
|
91
|
+
|
|
92
|
+
- [scheduler] Enforce top-level type imports (#22931) @Janpot
|
|
93
|
+
- [scheduler] Keep the occurrence date when editing only one recurring event (#23007) @Anexus5919
|
|
94
|
+
- [scheduler] Track bundle size of scheduler packages (#22682) @flaviendelangle
|
|
95
|
+
- [scheduler] Add `viewConfig` prop to limit displayed hours in the day and week views (#22929) @flaviendelangle
|
|
96
|
+
|
|
97
|
+
#### `@mui/x-scheduler-premium@9.0.0-beta.4` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
98
|
+
|
|
99
|
+
Same changes as in `@mui/x-scheduler@9.0.0-beta.4`, plus:
|
|
100
|
+
|
|
101
|
+
- [scheduler] Collapsible resources in the timeline (#22920) @rita-codes
|
|
102
|
+
|
|
103
|
+
### Codemod
|
|
104
|
+
|
|
105
|
+
#### `@mui/x-codemod@9.8.0`
|
|
106
|
+
|
|
107
|
+
Internal changes.
|
|
108
|
+
|
|
109
|
+
### Docs
|
|
110
|
+
|
|
111
|
+
- [docs] Add recipe for conditional master-detail panels (#22971) @michelengelen
|
|
112
|
+
- [docs] Add recipe for describing active filters in the toolbar (#22970) @michelengelen
|
|
113
|
+
- [docs] Add recipe for triggering clipboard copy from a button (#22967) @michelengelen
|
|
114
|
+
- [docs] Clarify that `fieldRef.current.focusField()` is the canonical way to focus a field (#22937) @michelengelen
|
|
115
|
+
- [docs][scheduler] Another copyediting pass across the Scheduler docs (#22619) @mapache-salvaje
|
|
116
|
+
- [docs][charts] Add map example for arbitrary GeoJSON shapes (#22976) @JCQuintas
|
|
117
|
+
- [docs][charts] Double point count in `ScatterAsyncRenderer` demo (#22906) @JCQuintas
|
|
118
|
+
|
|
119
|
+
### Core
|
|
120
|
+
|
|
121
|
+
- [code-infra] Fix tracking branch bug in release script (#22956) @michelengelen
|
|
122
|
+
- [code-infra] Remove mark-duplicate workflow (#22994) @cherniavskii
|
|
123
|
+
- [code-infra] Revert `nanoid@3.3.15` `minimumReleaseAge` exemption (#22953) @LukasTy
|
|
124
|
+
|
|
125
|
+
### Miscellaneous
|
|
126
|
+
|
|
127
|
+
- [internals] Fix `ERR_UNSUPPORTED_DIR_IMPORT` for `core-js-pure` in Node ESM (#22985) @michelengelen
|
|
128
|
+
- [internals] Harden `useDisposable` React internals read with safeReact (#22986) @rita-codes
|
|
129
|
+
- [internals] Replace core-js `DisposableStack` ponyfill with a minimal fallback (#23002) @sai6855
|
|
130
|
+
- [test] Assert the edited `dateTime` cell value in the e2e edit test (#22982) @voidmatcha
|
|
131
|
+
- [virtualizer] Remeasure scrollbars when layout changes (#22914) @arminmeh
|
|
132
|
+
|
|
133
|
+
## 9.7.0
|
|
134
|
+
|
|
135
|
+
_Jun 25, 2026_
|
|
136
|
+
|
|
137
|
+
We'd like to extend a big thank you to the 13 contributors who made this release possible. Here are some highlights ✨:
|
|
138
|
+
|
|
139
|
+
- 🐞 Bugfixes
|
|
140
|
+
- 📚 Documentation improvements
|
|
141
|
+
|
|
142
|
+
Special thanks go out to these community members for their valuable contributions:
|
|
143
|
+
@Anexus5919, @mustafajw07
|
|
144
|
+
|
|
145
|
+
The following team members contributed to this release:
|
|
146
|
+
@alexfauquette, @arminmeh, @brijeshb42, @Janpot, @JCQuintas, @LukasTy, @MBilalShafi, @michelengelen, @romgrk, @sai6855, @siriwatknp
|
|
147
|
+
|
|
148
|
+
### Data Grid
|
|
149
|
+
|
|
150
|
+
#### `@mui/x-data-grid@9.7.0`
|
|
151
|
+
|
|
152
|
+
- [DataGrid] Fix `CustomColumnMenuGrid` demo crashing (#22897) @sai6855
|
|
153
|
+
- [DataGrid] Fix crash in `getRowValue` when `colDef` is `undefined` (#22838) @LukasTy
|
|
154
|
+
- [DataGrid] Fix `longText` expand button submitting surrounding form (#22450) @siriwatknp
|
|
155
|
+
- [DataGrid] Remove filename ignore list from `removePropTypesPlugin` in Babel config (#22727) @sai6855
|
|
156
|
+
- [DataGrid] Deduplicate scroll-preserving focus logic (#22916) @sai6855
|
|
157
|
+
- [DataGrid] Fix `singleSelect` clearing to use empty string instead of `null` (#22881) @michelengelen
|
|
158
|
+
- [DataGrid] Wait for rows before reacting on `autosizeOnMount` (#22698) @MBilalShafi
|
|
159
|
+
|
|
160
|
+
#### `@mui/x-data-grid-pro@9.7.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
161
|
+
|
|
162
|
+
Same changes as in `@mui/x-data-grid@9.7.0`.
|
|
163
|
+
|
|
164
|
+
#### `@mui/x-data-grid-premium@9.7.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
165
|
+
|
|
166
|
+
Same changes as in `@mui/x-data-grid-pro@9.7.0`.
|
|
167
|
+
|
|
168
|
+
### Date and Time Pickers
|
|
169
|
+
|
|
170
|
+
#### `@mui/x-date-pickers@9.7.0`
|
|
171
|
+
|
|
172
|
+
- [fields] Announce cardinal day in the day section `aria-valuetext` (#22922) @LukasTy
|
|
173
|
+
- [fields] Avoid focusing the field on blank space clicks (#22285) @LukasTy
|
|
174
|
+
- [pickers] Commit `TimeClock` value when the drag ends outside the clock (#22877) @LukasTy
|
|
175
|
+
- [pickers] Respect explicit `notched` prop on the outlined PickersTextField (#22875) @LukasTy
|
|
176
|
+
|
|
177
|
+
#### `@mui/x-date-pickers-pro@9.7.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
178
|
+
|
|
179
|
+
Same changes as in `@mui/x-date-pickers@9.7.0`.
|
|
180
|
+
|
|
181
|
+
### Charts
|
|
182
|
+
|
|
183
|
+
#### `@mui/x-charts@9.7.0`
|
|
184
|
+
|
|
185
|
+
- [charts] Add demo for displaying the sum of all values from the stacked series on top of the stacked bars (#22879) @sai6855
|
|
186
|
+
- [charts] Add `zAxis` custom scatter component demo (#22746) @mustafajw07
|
|
187
|
+
- [charts] Apply axis `colorMap` to radial bar fill (#22800) @JCQuintas
|
|
188
|
+
- [charts] Simplify classes type (#22626) @alexfauquette
|
|
189
|
+
- [charts] Stable progressive scatter batching + responsive zoom/pan (#22862) @JCQuintas
|
|
190
|
+
- [charts] Strip dev-only console diagnostics from production (#22917) @sai6855
|
|
191
|
+
- [docs] Fix scatter renderer table blocking column (#22904) @JCQuintas
|
|
192
|
+
- [docs] Make `ScatterAsyncRenderer` button bar responsive (#22905) @JCQuintas
|
|
193
|
+
|
|
194
|
+
#### `@mui/x-charts-pro@9.7.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
195
|
+
|
|
196
|
+
Same changes as in `@mui/x-charts@9.7.0`.
|
|
197
|
+
|
|
198
|
+
#### `@mui/x-charts-premium@9.7.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
199
|
+
|
|
200
|
+
Same changes as in `@mui/x-charts-pro@9.7.0`.
|
|
201
|
+
|
|
202
|
+
### Tree View
|
|
203
|
+
|
|
204
|
+
#### `@mui/x-tree-view@9.7.0`
|
|
205
|
+
|
|
206
|
+
Internal changes.
|
|
207
|
+
|
|
208
|
+
#### `@mui/x-tree-view-pro@9.7.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
209
|
+
|
|
210
|
+
Same changes as in `@mui/x-tree-view@9.7.0`.
|
|
211
|
+
|
|
212
|
+
### Scheduler
|
|
213
|
+
|
|
214
|
+
#### `@mui/x-scheduler@9.0.0-beta.3`
|
|
215
|
+
|
|
216
|
+
- [scheduler] Highlight only the edited occurrence of a recurring event (#22873) @Anexus5919
|
|
217
|
+
|
|
218
|
+
#### `@mui/x-scheduler-premium@9.0.0-beta.3` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
219
|
+
|
|
220
|
+
Same changes as in `@mui/x-scheduler@9.0.0-beta.3`.
|
|
221
|
+
|
|
222
|
+
### Codemod
|
|
223
|
+
|
|
224
|
+
#### `@mui/x-codemod@9.7.0`
|
|
225
|
+
|
|
226
|
+
Internal changes.
|
|
227
|
+
|
|
228
|
+
### Core
|
|
229
|
+
|
|
230
|
+
- [code-infra] Fix react@^18 CI failing on nanoid trust-downgrade (#22923) @LukasTy
|
|
231
|
+
- [code-infra] Reduce Netlify build parallelism to 2 (#22925) @LukasTy
|
|
232
|
+
- [code-infra] Use Turbopack for docs in dev (#22882) @brijeshb42
|
|
233
|
+
- [docs-infra] Pre-render API page descriptions (#22919) @brijeshb42
|
|
234
|
+
- [internal] Use `@base-ui/utils/platform` for platform detection (#22710) @romgrk
|
|
235
|
+
- [internal] Enforce top-level type imports (#22679) @Janpot
|
|
236
|
+
|
|
237
|
+
### Miscellaneous
|
|
238
|
+
|
|
239
|
+
- [internal] Enable mui/no-floating-cleanup and fix leaks (#22872) @romgrk
|
|
240
|
+
- [infra] Update `.gitignore` to exclude `.claude` sub-directories (#22435) @michelengelen
|
|
241
|
+
- [virtualizer] Improve the dimensions' initial state (#22885) @arminmeh
|
|
242
|
+
|
|
3
243
|
## 9.6.0
|
|
4
244
|
|
|
5
245
|
_Jun 18, 2026_
|
|
@@ -68,7 +308,6 @@ Same changes as in `@mui/x-charts-pro@9.6.0`, plus:
|
|
|
68
308
|
- [charts-premium] Support maps tooltip positioned on items (#22648) @alexfauquette
|
|
69
309
|
- [docs] Show how to export maps (#22837) @alexfauquette
|
|
70
310
|
|
|
71
|
-
|
|
72
311
|
### Tree View
|
|
73
312
|
|
|
74
313
|
#### `@mui/x-tree-view@9.6.0`
|
|
@@ -115,7 +354,7 @@ Same changes as in `@mui/x-scheduler@9.0.0-beta.2`, plus:
|
|
|
115
354
|
|
|
116
355
|
- [scheduler-premium] Expose premium model types through public API (#22798) @mustafajw07
|
|
117
356
|
- [scheduler-premium] Remove non-functional `onPreferencesChange` prop from `EventTimelinePremium` (#22777) @rita-codes
|
|
118
|
-
- [scheduler-premium] Validate the `FREQ` value in `parseRRule`] (#22786) @rita-codes
|
|
357
|
+
- [scheduler-premium] Validate the `FREQ` value in `parseRRule`] (#22786) @rita-codes
|
|
119
358
|
|
|
120
359
|
### Codemod
|
|
121
360
|
|
package/DataGrid/DataGrid.js
CHANGED
|
@@ -66,7 +66,7 @@ if (process.env.NODE_ENV !== "production") DataGridRaw.displayName = "DataGridRa
|
|
|
66
66
|
*/
|
|
67
67
|
const DataGrid = exports.DataGrid = /*#__PURE__*/React.memo((0, _forwardRef.forwardRef)(DataGridRaw));
|
|
68
68
|
if (process.env.NODE_ENV !== "production") DataGrid.displayName = "DataGrid";
|
|
69
|
-
DataGridRaw.propTypes /* remove-proptypes */ = {
|
|
69
|
+
process.env.NODE_ENV !== "production" ? DataGridRaw.propTypes /* remove-proptypes */ = {
|
|
70
70
|
// ----------------------------- Warning --------------------------------
|
|
71
71
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
72
72
|
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
@@ -891,4 +891,4 @@ DataGridRaw.propTypes /* remove-proptypes */ = {
|
|
|
891
891
|
* @default false
|
|
892
892
|
*/
|
|
893
893
|
virtualizeColumnsWithAutoRowHeight: _propTypes.default.bool
|
|
894
|
-
};
|
|
894
|
+
} : void 0;
|
package/DataGrid/DataGrid.mjs
CHANGED
|
@@ -59,7 +59,7 @@ if (process.env.NODE_ENV !== "production") DataGridRaw.displayName = "DataGridRa
|
|
|
59
59
|
*/
|
|
60
60
|
export const DataGrid = /*#__PURE__*/React.memo(forwardRef(DataGridRaw));
|
|
61
61
|
if (process.env.NODE_ENV !== "production") DataGrid.displayName = "DataGrid";
|
|
62
|
-
DataGridRaw.propTypes /* remove-proptypes */ = {
|
|
62
|
+
process.env.NODE_ENV !== "production" ? DataGridRaw.propTypes /* remove-proptypes */ = {
|
|
63
63
|
// ----------------------------- Warning --------------------------------
|
|
64
64
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
65
65
|
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
@@ -884,4 +884,4 @@ DataGridRaw.propTypes /* remove-proptypes */ = {
|
|
|
884
884
|
* @default false
|
|
885
885
|
*/
|
|
886
886
|
virtualizeColumnsWithAutoRowHeight: PropTypes.bool
|
|
887
|
-
};
|
|
887
|
+
} : void 0;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { GridFilterInputDateProps } from "../components/panel/filterPanel/GridFilterInputDate.mjs";
|
|
2
2
|
import type { GridFilterOperator } from "../models/gridFilterOperator.mjs";
|
|
3
3
|
export declare const getGridDateOperators: (showTime?: boolean) => GridFilterOperator<any, Date, any, GridFilterInputDateProps>[];
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { GridFilterInputDateProps } from "../components/panel/filterPanel/GridFilterInputDate.js";
|
|
2
2
|
import type { GridFilterOperator } from "../models/gridFilterOperator.js";
|
|
3
3
|
export declare const getGridDateOperators: (showTime?: boolean) => GridFilterOperator<any, Date, any, GridFilterInputDateProps>[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { UseGridColumnHeadersProps } from "../hooks/features/columnHeaders/useGridColumnHeaders.mjs";
|
|
3
3
|
export interface GridColumnHeadersProps extends React.HTMLAttributes<HTMLDivElement>, UseGridColumnHeadersProps {
|
|
4
4
|
ref?: React.Ref<HTMLDivElement>;
|
|
5
5
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { UseGridColumnHeadersProps } from "../hooks/features/columnHeaders/useGridColumnHeaders.js";
|
|
3
3
|
export interface GridColumnHeadersProps extends React.HTMLAttributes<HTMLDivElement>, UseGridColumnHeadersProps {
|
|
4
4
|
ref?: React.Ref<HTMLDivElement>;
|
|
5
5
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { GridFooterContainerProps } from "./containers/GridFooterContainer.mjs";
|
|
2
2
|
declare const GridFooter: import("react").ForwardRefExoticComponent<GridFooterContainerProps> | import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & {
|
|
3
3
|
sx?: import("@mui/system").SxProps<import("@mui/system").Theme>;
|
|
4
4
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { GridFooterContainerProps } from "./containers/GridFooterContainer.js";
|
|
2
2
|
declare const GridFooter: import("react").ForwardRefExoticComponent<GridFooterContainerProps> | import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & {
|
|
3
3
|
sx?: import("@mui/system").SxProps<import("@mui/system").Theme>;
|
|
4
4
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { GridOverlayProps } from "./containers/GridOverlay.mjs";
|
|
3
3
|
import type { GridLoadingOverlayVariant } from "../hooks/features/overlays/gridOverlaysInterfaces.mjs";
|
|
4
4
|
export interface GridLoadingOverlayProps extends GridOverlayProps {
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { GridOverlayProps } from "./containers/GridOverlay.js";
|
|
3
3
|
import type { GridLoadingOverlayVariant } from "../hooks/features/overlays/gridOverlaysInterfaces.js";
|
|
4
4
|
export interface GridLoadingOverlayProps extends GridOverlayProps {
|
|
5
5
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { GridOverlayProps } from "./containers/GridOverlay.mjs";
|
|
2
2
|
declare const GridNoColumnsOverlay: import("react").ForwardRefExoticComponent<GridOverlayProps> | import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & {
|
|
3
3
|
sx?: import("@mui/system").SxProps<import("@mui/system").Theme>;
|
|
4
4
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { GridOverlayProps } from "./containers/GridOverlay.js";
|
|
2
2
|
declare const GridNoColumnsOverlay: import("react").ForwardRefExoticComponent<GridOverlayProps> | import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & {
|
|
3
3
|
sx?: import("@mui/system").SxProps<import("@mui/system").Theme>;
|
|
4
4
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { GridOverlayProps } from "./containers/GridOverlay.mjs";
|
|
2
2
|
export declare const GridNoResultsOverlay: import("react").ForwardRefExoticComponent<GridOverlayProps> | import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & {
|
|
3
3
|
sx?: import("@mui/system").SxProps<import("@mui/system").Theme>;
|
|
4
4
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { GridOverlayProps } from "./containers/GridOverlay.js";
|
|
2
2
|
export declare const GridNoResultsOverlay: import("react").ForwardRefExoticComponent<GridOverlayProps> | import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & {
|
|
3
3
|
sx?: import("@mui/system").SxProps<import("@mui/system").Theme>;
|
|
4
4
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { GridOverlayProps } from "./containers/GridOverlay.mjs";
|
|
2
2
|
declare const GridNoRowsOverlay: import("react").ForwardRefExoticComponent<GridOverlayProps> | import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & {
|
|
3
3
|
sx?: import("@mui/system").SxProps<import("@mui/system").Theme>;
|
|
4
4
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { GridOverlayProps } from "./containers/GridOverlay.js";
|
|
2
2
|
declare const GridNoRowsOverlay: import("react").ForwardRefExoticComponent<GridOverlayProps> | import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & {
|
|
3
3
|
sx?: import("@mui/system").SxProps<import("@mui/system").Theme>;
|
|
4
4
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { GridRowParams } from "../../models/params/gridRowParams.mjs";
|
|
3
3
|
import type { GridRenderCellParams } from "../../models/params/gridCellParams.mjs";
|
|
4
|
-
import {
|
|
4
|
+
import type { GridMenuProps } from "../menu/GridMenu.mjs";
|
|
5
5
|
import type { GridValidRowModel, GridTreeNodeWithRender } from "../../models/gridRows.mjs";
|
|
6
6
|
interface GridActionsCellProps<R extends GridValidRowModel = any, V = any, F = V, N extends GridTreeNodeWithRender = GridTreeNodeWithRender> extends Omit<GridRenderCellParams<R, V, F, N>, 'api'> {
|
|
7
7
|
api?: GridRenderCellParams['api'];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { GridRowParams } from "../../models/params/gridRowParams.js";
|
|
3
3
|
import type { GridRenderCellParams } from "../../models/params/gridCellParams.js";
|
|
4
|
-
import {
|
|
4
|
+
import type { GridMenuProps } from "../menu/GridMenu.js";
|
|
5
5
|
import type { GridValidRowModel, GridTreeNodeWithRender } from "../../models/gridRows.js";
|
|
6
6
|
interface GridActionsCellProps<R extends GridValidRowModel = any, V = any, F = V, N extends GridTreeNodeWithRender = GridTreeNodeWithRender> extends Omit<GridRenderCellParams<R, V, F, N>, 'api'> {
|
|
7
7
|
api?: GridRenderCellParams['api'];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { GridRowId } from "../../models/index.mjs";
|
|
3
3
|
import type { GridAlignment, GridStateColDef } from "../../models/colDef/gridColDef.mjs";
|
|
4
4
|
import type { GridRowModel, GridTreeNode } from "../../models/gridRows.mjs";
|
|
5
5
|
import { PinnedColumnPosition } from "../../internals/constants.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { GridRowId } from "../../models/index.js";
|
|
3
3
|
import type { GridAlignment, GridStateColDef } from "../../models/colDef/gridColDef.js";
|
|
4
4
|
import type { GridRowModel, GridTreeNode } from "../../models/gridRows.js";
|
|
5
5
|
import { PinnedColumnPosition } from "../../internals/constants.js";
|
|
@@ -22,7 +22,7 @@ var _forwardRef = require("@mui/x-internals/forwardRef");
|
|
|
22
22
|
var _store = require("@mui/x-internals/store");
|
|
23
23
|
var _xVirtualizer = require("@mui/x-virtualizer");
|
|
24
24
|
var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
|
|
25
|
-
var
|
|
25
|
+
var _focusElement = require("../../utils/focusElement");
|
|
26
26
|
var _gridClasses = require("../../constants/gridClasses");
|
|
27
27
|
var _models = require("../../models");
|
|
28
28
|
var _useGridSelector = require("../../hooks/utils/useGridSelector");
|
|
@@ -233,15 +233,7 @@ const GridCell = (0, _forwardRef.forwardRef)(function GridCell(props, ref) {
|
|
|
233
233
|
if (cellRef.current && !cellRef.current.contains(doc.activeElement)) {
|
|
234
234
|
const focusableElement = cellRef.current.querySelector('[tabindex="0"]');
|
|
235
235
|
const elementToFocus = focusableElement || cellRef.current;
|
|
236
|
-
|
|
237
|
-
elementToFocus.focus({
|
|
238
|
-
preventScroll: true
|
|
239
|
-
});
|
|
240
|
-
} else {
|
|
241
|
-
const scrollPosition = apiRef.current.getScrollPosition();
|
|
242
|
-
elementToFocus.focus();
|
|
243
|
-
apiRef.current.scroll(scrollPosition);
|
|
244
|
-
}
|
|
236
|
+
(0, _focusElement.focusElement)(elementToFocus, apiRef);
|
|
245
237
|
}
|
|
246
238
|
}, [hasFocus, cellMode, apiRef]);
|
|
247
239
|
if (isCellRowSpanned) {
|
|
@@ -17,7 +17,7 @@ import { forwardRef } from '@mui/x-internals/forwardRef';
|
|
|
17
17
|
import { useStore } from '@mui/x-internals/store';
|
|
18
18
|
import { Rowspan } from '@mui/x-virtualizer';
|
|
19
19
|
import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
|
|
20
|
-
import {
|
|
20
|
+
import { focusElement } from "../../utils/focusElement.mjs";
|
|
21
21
|
import { getDataGridUtilityClass, gridClasses } from "../../constants/gridClasses.mjs";
|
|
22
22
|
import { GridCellModes } from "../../models/index.mjs";
|
|
23
23
|
import { useGridSelector } from "../../hooks/utils/useGridSelector.mjs";
|
|
@@ -226,15 +226,7 @@ const GridCell = forwardRef(function GridCell(props, ref) {
|
|
|
226
226
|
if (cellRef.current && !cellRef.current.contains(doc.activeElement)) {
|
|
227
227
|
const focusableElement = cellRef.current.querySelector('[tabindex="0"]');
|
|
228
228
|
const elementToFocus = focusableElement || cellRef.current;
|
|
229
|
-
|
|
230
|
-
elementToFocus.focus({
|
|
231
|
-
preventScroll: true
|
|
232
|
-
});
|
|
233
|
-
} else {
|
|
234
|
-
const scrollPosition = apiRef.current.getScrollPosition();
|
|
235
|
-
elementToFocus.focus();
|
|
236
|
-
apiRef.current.scroll(scrollPosition);
|
|
237
|
-
}
|
|
229
|
+
focusElement(elementToFocus, apiRef);
|
|
238
230
|
}
|
|
239
231
|
}, [hasFocus, cellMode, apiRef]);
|
|
240
232
|
if (isCellRowSpanned) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { SxProps, Theme } from '@mui/material/styles';
|
|
3
3
|
import type { GridRenderCellParams } from "../../models/params/gridCellParams.mjs";
|
|
4
4
|
interface GridFooterCellProps extends GridRenderCellParams {
|
|
5
5
|
sx?: SxProps<Theme>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { SxProps, Theme } from '@mui/material/styles';
|
|
3
3
|
import type { GridRenderCellParams } from "../../models/params/gridCellParams.js";
|
|
4
4
|
interface GridFooterCellProps extends GridRenderCellParams {
|
|
5
5
|
sx?: SxProps<Theme>;
|
|
@@ -14,7 +14,7 @@ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"
|
|
|
14
14
|
var _capitalize = _interopRequireDefault(require("@mui/utils/capitalize"));
|
|
15
15
|
var _RtlProvider = require("@mui/system/RtlProvider");
|
|
16
16
|
var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiContext");
|
|
17
|
-
var
|
|
17
|
+
var _focusElement = require("../../utils/focusElement");
|
|
18
18
|
var _gridClasses = require("../../constants/gridClasses");
|
|
19
19
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
20
20
|
var _gridColumnGroupsSelector = require("../../hooks/features/columnGrouping/gridColumnGroupsSelector");
|
|
@@ -102,15 +102,7 @@ function GridColumnGroupHeader(props) {
|
|
|
102
102
|
if (!elementToFocus) {
|
|
103
103
|
return;
|
|
104
104
|
}
|
|
105
|
-
|
|
106
|
-
elementToFocus.focus({
|
|
107
|
-
preventScroll: true
|
|
108
|
-
});
|
|
109
|
-
} else {
|
|
110
|
-
const scrollPosition = apiRef.current.getScrollPosition();
|
|
111
|
-
elementToFocus.focus();
|
|
112
|
-
apiRef.current.scroll(scrollPosition);
|
|
113
|
-
}
|
|
105
|
+
(0, _focusElement.focusElement)(elementToFocus, apiRef);
|
|
114
106
|
}
|
|
115
107
|
}, [apiRef, hasFocus]);
|
|
116
108
|
const publish = React.useCallback(eventName => event => {
|
|
@@ -7,7 +7,7 @@ import composeClasses from '@mui/utils/composeClasses';
|
|
|
7
7
|
import capitalize from '@mui/utils/capitalize';
|
|
8
8
|
import { useRtl } from '@mui/system/RtlProvider';
|
|
9
9
|
import { useGridPrivateApiContext } from "../../hooks/utils/useGridPrivateApiContext.mjs";
|
|
10
|
-
import {
|
|
10
|
+
import { focusElement } from "../../utils/focusElement.mjs";
|
|
11
11
|
import { getDataGridUtilityClass } from "../../constants/gridClasses.mjs";
|
|
12
12
|
import { useGridRootProps } from "../../hooks/utils/useGridRootProps.mjs";
|
|
13
13
|
import { gridColumnGroupsLookupSelector } from "../../hooks/features/columnGrouping/gridColumnGroupsSelector.mjs";
|
|
@@ -95,15 +95,7 @@ function GridColumnGroupHeader(props) {
|
|
|
95
95
|
if (!elementToFocus) {
|
|
96
96
|
return;
|
|
97
97
|
}
|
|
98
|
-
|
|
99
|
-
elementToFocus.focus({
|
|
100
|
-
preventScroll: true
|
|
101
|
-
});
|
|
102
|
-
} else {
|
|
103
|
-
const scrollPosition = apiRef.current.getScrollPosition();
|
|
104
|
-
elementToFocus.focus();
|
|
105
|
-
apiRef.current.scroll(scrollPosition);
|
|
106
|
-
}
|
|
98
|
+
focusElement(elementToFocus, apiRef);
|
|
107
99
|
}
|
|
108
100
|
}, [apiRef, hasFocus]);
|
|
109
101
|
const publish = React.useCallback(eventName => event => {
|
|
@@ -16,7 +16,7 @@ var _capitalize = _interopRequireDefault(require("@mui/utils/capitalize"));
|
|
|
16
16
|
var _useId = _interopRequireDefault(require("@mui/utils/useId"));
|
|
17
17
|
var _fastMemo = require("@mui/x-internals/fastMemo");
|
|
18
18
|
var _RtlProvider = require("@mui/system/RtlProvider");
|
|
19
|
-
var
|
|
19
|
+
var _focusElement = require("../../utils/focusElement");
|
|
20
20
|
var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiContext");
|
|
21
21
|
var _getColumnMenuItemKeys = require("../../hooks/features/columnMenu/getColumnMenuItemKeys");
|
|
22
22
|
var _ColumnHeaderMenuIcon = require("./ColumnHeaderMenuIcon");
|
|
@@ -209,15 +209,7 @@ function GridColumnHeaderItem(props) {
|
|
|
209
209
|
if (!elementToFocus) {
|
|
210
210
|
return;
|
|
211
211
|
}
|
|
212
|
-
|
|
213
|
-
elementToFocus.focus({
|
|
214
|
-
preventScroll: true
|
|
215
|
-
});
|
|
216
|
-
} else {
|
|
217
|
-
const scrollPosition = apiRef.current.getScrollPosition();
|
|
218
|
-
elementToFocus.focus();
|
|
219
|
-
apiRef.current.scroll(scrollPosition);
|
|
220
|
-
}
|
|
212
|
+
(0, _focusElement.focusElement)(elementToFocus, apiRef);
|
|
221
213
|
}
|
|
222
214
|
}, [apiRef, hasFocus]);
|
|
223
215
|
const headerClassName = typeof colDef.headerClassName === 'function' ? colDef.headerClassName({
|