@mui/x-data-grid 7.12.1 → 7.14.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 +162 -1
- package/DataGrid/DataGrid.js +10 -1
- package/components/GridColumnHeaders.js +1 -1
- package/components/GridConfigurationContext.d.ts +2 -0
- package/components/GridConfigurationContext.js +5 -0
- package/components/GridHeaders.js +1 -1
- package/components/GridRow.js +6 -8
- package/components/GridScrollArea.js +1 -1
- package/components/GridSkeletonLoadingOverlay.js +1 -1
- package/components/cell/GridCell.js +12 -13
- package/components/cell/GridEditSingleSelectCell.js +2 -3
- package/components/cell/GridSkeletonCell.js +2 -2
- package/components/columnHeaders/GridColumnHeaderItem.js +1 -1
- package/components/containers/GridRootStyles.js +9 -2
- package/components/menu/columnMenu/GridColumnMenuContainer.js +2 -2
- package/components/panel/GridPanel.js +1 -2
- package/components/panel/filterPanel/GridFilterForm.js +9 -4
- package/components/toolbar/GridToolbarDensitySelector.js +2 -2
- package/components/toolbar/GridToolbarExportContainer.js +2 -2
- package/components/toolbar/GridToolbarQuickFilter.js +5 -3
- package/components/virtualization/GridMainContainer.js +3 -2
- package/components/virtualization/GridVirtualScrollerFiller.js +1 -1
- package/context/GridContextProvider.d.ts +3 -1
- package/context/GridContextProvider.js +12 -7
- package/hooks/core/useGridStateInitialization.js +1 -3
- package/hooks/features/dimensions/useGridDimensions.js +1 -1
- package/hooks/features/export/serializers/csvSerializer.js +4 -3
- package/hooks/features/filter/gridFilterSelector.d.ts +20 -7
- package/hooks/features/filter/gridFilterSelector.js +34 -0
- package/hooks/features/filter/gridFilterState.d.ts +6 -0
- package/hooks/features/filter/index.d.ts +2 -1
- package/hooks/features/filter/index.js +1 -1
- package/hooks/features/filter/useGridFilter.js +3 -0
- package/hooks/features/rowSelection/useGridRowSelection.js +4 -1
- package/hooks/features/rows/useGridParamsApi.js +2 -1
- package/hooks/features/rows/useGridRowAriaAttributes.d.ts +2 -0
- package/hooks/features/rows/useGridRowAriaAttributes.js +19 -0
- package/hooks/utils/useGridAriaAttributes.d.ts +2 -6
- package/hooks/utils/useGridAriaAttributes.js +5 -8
- package/hooks/utils/useGridConfiguration.d.ts +2 -0
- package/hooks/utils/useGridConfiguration.js +9 -0
- package/hooks/utils/useGridSelector.d.ts +5 -2
- package/hooks/utils/useGridSelector.js +39 -1
- package/index.js +1 -1
- package/internals/index.d.ts +5 -2
- package/internals/index.js +5 -2
- package/locales/csCZ.js +4 -5
- package/locales/heIL.js +4 -5
- package/locales/viVN.js +4 -5
- package/models/configuration/gridConfiguration.d.ts +10 -0
- package/models/configuration/gridConfiguration.js +1 -0
- package/models/configuration/gridRowConfiguration.d.ts +12 -0
- package/models/configuration/gridRowConfiguration.js +1 -0
- package/models/gridDataSource.d.ts +8 -7
- package/models/gridRows.d.ts +2 -2
- package/models/params/gridCellParams.d.ts +4 -0
- package/models/props/DataGridProps.d.ts +1 -1
- package/modern/DataGrid/DataGrid.js +10 -1
- package/modern/components/GridColumnHeaders.js +1 -1
- package/modern/components/GridConfigurationContext.js +5 -0
- package/modern/components/GridHeaders.js +1 -1
- package/modern/components/GridRow.js +6 -8
- package/modern/components/GridScrollArea.js +1 -1
- package/modern/components/GridSkeletonLoadingOverlay.js +1 -1
- package/modern/components/cell/GridCell.js +12 -13
- package/modern/components/cell/GridEditSingleSelectCell.js +2 -3
- package/modern/components/cell/GridSkeletonCell.js +2 -2
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +1 -1
- package/modern/components/containers/GridRootStyles.js +9 -2
- package/modern/components/menu/columnMenu/GridColumnMenuContainer.js +2 -2
- package/modern/components/panel/GridPanel.js +1 -2
- package/modern/components/panel/filterPanel/GridFilterForm.js +9 -4
- package/modern/components/toolbar/GridToolbarDensitySelector.js +2 -2
- package/modern/components/toolbar/GridToolbarExportContainer.js +2 -2
- package/modern/components/toolbar/GridToolbarQuickFilter.js +5 -3
- package/modern/components/virtualization/GridMainContainer.js +3 -2
- package/modern/components/virtualization/GridVirtualScrollerFiller.js +1 -1
- package/modern/context/GridContextProvider.js +12 -7
- package/modern/hooks/core/useGridStateInitialization.js +1 -3
- package/modern/hooks/features/dimensions/useGridDimensions.js +1 -1
- package/modern/hooks/features/export/serializers/csvSerializer.js +4 -3
- package/modern/hooks/features/filter/gridFilterSelector.js +34 -0
- package/modern/hooks/features/filter/index.js +1 -1
- package/modern/hooks/features/filter/useGridFilter.js +3 -0
- package/modern/hooks/features/rowSelection/useGridRowSelection.js +4 -1
- package/modern/hooks/features/rows/useGridParamsApi.js +2 -1
- package/modern/hooks/features/rows/useGridRowAriaAttributes.js +19 -0
- package/modern/hooks/utils/useGridAriaAttributes.js +5 -8
- package/modern/hooks/utils/useGridConfiguration.js +9 -0
- package/modern/hooks/utils/useGridSelector.js +39 -1
- package/modern/index.js +1 -1
- package/modern/internals/index.js +5 -2
- package/modern/locales/csCZ.js +4 -5
- package/modern/locales/heIL.js +4 -5
- package/modern/locales/viVN.js +4 -5
- package/modern/models/configuration/gridConfiguration.js +1 -0
- package/modern/models/configuration/gridRowConfiguration.js +1 -0
- package/modern/utils/createSelector.js +116 -0
- package/modern/utils/keyboardUtils.js +1 -11
- package/node/DataGrid/DataGrid.js +10 -1
- package/node/components/GridColumnHeaders.js +1 -1
- package/node/{utils/fastMemo.js → components/GridConfigurationContext.js} +4 -4
- package/node/components/GridHeaders.js +1 -1
- package/node/components/GridRow.js +6 -8
- package/node/components/GridScrollArea.js +1 -1
- package/node/components/GridSkeletonLoadingOverlay.js +1 -1
- package/node/components/cell/GridCell.js +12 -13
- package/node/components/cell/GridEditSingleSelectCell.js +2 -3
- package/node/components/cell/GridSkeletonCell.js +2 -2
- package/node/components/columnHeaders/GridColumnHeaderItem.js +1 -1
- package/node/components/containers/GridRootStyles.js +9 -2
- package/node/components/menu/columnMenu/GridColumnMenuContainer.js +1 -1
- package/node/components/panel/GridPanel.js +1 -2
- package/node/components/panel/filterPanel/GridFilterForm.js +9 -4
- package/node/components/toolbar/GridToolbarDensitySelector.js +1 -1
- package/node/components/toolbar/GridToolbarExportContainer.js +1 -1
- package/node/components/toolbar/GridToolbarQuickFilter.js +5 -3
- package/node/components/virtualization/GridMainContainer.js +3 -2
- package/node/components/virtualization/GridVirtualScrollerFiller.js +1 -1
- package/node/context/GridContextProvider.js +12 -7
- package/node/hooks/core/useGridStateInitialization.js +1 -3
- package/node/hooks/features/dimensions/useGridDimensions.js +1 -1
- package/node/hooks/features/export/serializers/csvSerializer.js +4 -3
- package/node/hooks/features/filter/gridFilterSelector.js +35 -1
- package/node/hooks/features/filter/index.js +97 -15
- package/node/hooks/features/filter/useGridFilter.js +3 -0
- package/node/hooks/features/rowSelection/useGridRowSelection.js +4 -1
- package/node/hooks/features/rows/useGridParamsApi.js +2 -1
- package/node/hooks/features/rows/useGridRowAriaAttributes.js +28 -0
- package/node/hooks/utils/useGridAriaAttributes.js +4 -7
- package/node/hooks/utils/useGridConfiguration.js +18 -0
- package/node/hooks/utils/useGridSelector.js +42 -3
- package/node/index.js +1 -1
- package/node/internals/index.js +53 -12
- package/node/locales/csCZ.js +4 -5
- package/node/locales/heIL.js +4 -5
- package/node/locales/viVN.js +4 -5
- package/node/models/configuration/gridConfiguration.js +5 -0
- package/node/models/configuration/gridRowConfiguration.js +5 -0
- package/node/utils/createSelector.js +119 -2
- package/node/utils/keyboardUtils.js +2 -15
- package/package.json +4 -4
- package/utils/createSelector.d.ts +19 -0
- package/utils/createSelector.js +116 -0
- package/utils/keyboardUtils.d.ts +1 -9
- package/utils/keyboardUtils.js +1 -11
- package/modern/utils/fastMemo.js +0 -5
- package/modern/utils/fastObjectShallowCompare.js +0 -28
- package/modern/utils/throttle.js +0 -19
- package/node/utils/fastObjectShallowCompare.js +0 -34
- package/node/utils/throttle.js +0 -25
- package/utils/fastMemo.d.ts +0 -1
- package/utils/fastMemo.js +0 -5
- package/utils/fastObjectShallowCompare.d.ts +0 -1
- package/utils/fastObjectShallowCompare.js +0 -28
- package/utils/throttle.d.ts +0 -4
- package/utils/throttle.js +0 -19
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,167 @@
|
|
|
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.14.0
|
|
7
|
+
|
|
8
|
+
_Aug 23, 2024_
|
|
9
|
+
|
|
10
|
+
We'd like to offer a big thanks to the 14 contributors who made this release possible. Here are some highlights ✨:
|
|
11
|
+
|
|
12
|
+
- 💫 Allow [filtering the axis on zoom](https://mui.com/x/react-charts/zoom-and-pan/#zoom-filtering), making the axis adapt by removing values outside the view.
|
|
13
|
+
|
|
14
|
+
<img width="600" src="https://github.com/user-attachments/assets/e65bbd00-d2a8-4136-81cd-3598f1373c16" alt="filtering the axis on zoom" />
|
|
15
|
+
|
|
16
|
+
- 📊 Improve bar chart performances
|
|
17
|
+
- 🌍 Improve Czech (cs-CZ) and Hebrew (he-IL) locales on the Data Grid
|
|
18
|
+
- 🌍 Improve Chinese (zh-HK), Hebrew (he-IL), and Vietnamese (vi-VN) locales on the Date and Time Pickers
|
|
19
|
+
- 🐞 Bugfixes
|
|
20
|
+
|
|
21
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
22
|
+
|
|
23
|
+
### Data Grid
|
|
24
|
+
|
|
25
|
+
#### `@mui/x-data-grid@7.14.0`
|
|
26
|
+
|
|
27
|
+
- [DataGrid] Use readonly array result for `getTreeDataPath` (#11743) @pcorpet
|
|
28
|
+
- [DataGrid] Use `event.key` for `Tab` and `Escape` keys (#14170) @k-rajat19
|
|
29
|
+
- [DataGrid] Introduce selectors with arguments (#14236) @MBilalShafi
|
|
30
|
+
- [DataGrid] include `api` in `gridCellParams` interface (#14201) @k-rajat19
|
|
31
|
+
- [l10n] Improve Czech (cs-CZ) locale (#14135) @chirimiri22
|
|
32
|
+
- [l10n] Improve Hebrew (he-IL) locale (#14287) @rotembarsela
|
|
33
|
+
|
|
34
|
+
#### `@mui/x-data-grid-pro@7.14.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
35
|
+
|
|
36
|
+
Same changes as in `@mui/x-data-grid@7.14.0`.
|
|
37
|
+
|
|
38
|
+
#### `@mui/x-data-grid-premium@7.14.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
39
|
+
|
|
40
|
+
Same changes as in `@mui/x-data-grid-pro@7.14.0`, plus:
|
|
41
|
+
|
|
42
|
+
- [DataGridPremium] Fix clipboard paste not working for a single cell on non-first page (#14261) @arminmeh
|
|
43
|
+
- [DataGridPremium] Fix `onCellSelectionModelChange` not triggered when additional cell range is selected (#14199) @arminmeh
|
|
44
|
+
|
|
45
|
+
### Date and Time Pickers
|
|
46
|
+
|
|
47
|
+
#### `@mui/x-date-pickers@7.14.0`
|
|
48
|
+
|
|
49
|
+
- [l10n] Improve Chinese (zh-HK) locale (#13289) @yeeharn
|
|
50
|
+
- [l10n] Improve Hebrew (he-IL) locale (#14287) @rotembarsela
|
|
51
|
+
- [l10n] Improve Vietnamese (vi-VN) locale (#14238) @locnbk2002
|
|
52
|
+
- [TimePicker] Handle `Space` and `Enter` on the `TimeClock` component @arthurbalduini
|
|
53
|
+
|
|
54
|
+
#### `@mui/x-date-pickers-pro@7.14.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
55
|
+
|
|
56
|
+
Same changes as in `@mui/x-date-pickers@7.14.0`.
|
|
57
|
+
|
|
58
|
+
### Charts
|
|
59
|
+
|
|
60
|
+
#### `@mui/x-charts@7.14.0`
|
|
61
|
+
|
|
62
|
+
- [charts] Fix grid overflow with zooming (#14280) @alexfauquette
|
|
63
|
+
- [charts] Improve bar chart performances (#14278) @alexfauquette
|
|
64
|
+
- [charts] Test pointer events (#14042) @alexfauquette
|
|
65
|
+
- [charts] Use `isPointInside` function for both graphs and axis (#14222) @JCQuintas
|
|
66
|
+
|
|
67
|
+
#### `@mui/x-charts-pro@7.0.0-alpha.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
68
|
+
|
|
69
|
+
Same changes as in `@mui/x-charts@7.14.0`, plus:
|
|
70
|
+
|
|
71
|
+
- [charts-pro] Zoom axis filtering (#14121) @JCQuintas
|
|
72
|
+
|
|
73
|
+
### Docs
|
|
74
|
+
|
|
75
|
+
- [docs] Consistent use of UTC and timezones (#14250) @oliviertassinari
|
|
76
|
+
- [docs] Fix missing leading slashes in URLs (#14249) @oliviertassinari
|
|
77
|
+
- [docs] Dash usage revision on pickers pages (#14260) @arthurbalduini
|
|
78
|
+
|
|
79
|
+
### Core
|
|
80
|
+
|
|
81
|
+
- [core] Follow JSDocs convention @oliviertassinari
|
|
82
|
+
- [core] Prepare for material v6 (#14143) @LukasTy
|
|
83
|
+
- [code-infra] Set up `eslint-plugin-testing-library` (#14232) @LukasTy
|
|
84
|
+
- [infra] Updated mui-x roadmap links with new project URL (#14271) @michelengelen
|
|
85
|
+
|
|
86
|
+
## 7.13.0
|
|
87
|
+
|
|
88
|
+
_Aug 16, 2024_
|
|
89
|
+
|
|
90
|
+
We'd like to offer a big thanks to the 12 contributors who made this release possible. Here are some highlights ✨:
|
|
91
|
+
|
|
92
|
+
- 💫 Allow to [edit the label](https://mui.com/x/react-tree-view/rich-tree-view/editing/) of Tree View's items.
|
|
93
|
+
|
|
94
|
+
<img width="344" src="https://github.com/user-attachments/assets/1a6cf765-2dc8-4906-bd93-139086eed148" alt="Item label editing" />
|
|
95
|
+
|
|
96
|
+
- 🔧 Improve rows accessibility on the Data Grid features "Tree Data" and "Row Grouping". Certain "Row Grouping" accessibility updates will only be applied if experimental feature flag is enabled. See the [documentation](https://mui.com/x/react-data-grid/row-grouping/#accessibility-changes-in-v8) for more information.
|
|
97
|
+
- 🌍 Improve Vietnamese (vi-VN) locale on the Data Grid
|
|
98
|
+
- 🐞 Bugfixes
|
|
99
|
+
|
|
100
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
101
|
+
|
|
102
|
+
### Data Grid
|
|
103
|
+
|
|
104
|
+
#### `@mui/x-data-grid@7.13.0`
|
|
105
|
+
|
|
106
|
+
- [DataGrid] Fix CSV export for `null` and `undefined` values (#14166) @k-rajat19
|
|
107
|
+
- [DataGrid] Fix error logged during skeleton loading with nested data grid (#14186) @KenanYusuf
|
|
108
|
+
- [DataGrid] Remove needless check in `useGridStateInitialization` (#14181) @k-rajat19
|
|
109
|
+
- [DataGrid] Add recipe for persisting filters in local storage (#14208) @cherniavskii
|
|
110
|
+
- [l10n] Improve Vietnamese (vi-VN) locale (#14216) @hungnd-casso
|
|
111
|
+
|
|
112
|
+
#### `@mui/x-data-grid-pro@7.13.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
113
|
+
|
|
114
|
+
Same changes as in `@mui/x-data-grid@7.13.0`, plus:
|
|
115
|
+
|
|
116
|
+
- [DataGridPro] Fix Tree Data and Row Grouping rows accessibility (#13623) @arminmeh
|
|
117
|
+
|
|
118
|
+
#### `@mui/x-data-grid-premium@7.13.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
119
|
+
|
|
120
|
+
Same changes as in `@mui/x-data-grid-pro@7.13.0`.
|
|
121
|
+
|
|
122
|
+
### Date and Time Pickers
|
|
123
|
+
|
|
124
|
+
#### `@mui/x-date-pickers@7.13.0`
|
|
125
|
+
|
|
126
|
+
- [pickers] Fix date and time merging to retain milliseconds (#14173) @LukasTy
|
|
127
|
+
|
|
128
|
+
#### `@mui/x-date-pickers-pro@7.13.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
129
|
+
|
|
130
|
+
Same changes as in `@mui/x-date-pickers@7.13.0`.
|
|
131
|
+
|
|
132
|
+
### Charts
|
|
133
|
+
|
|
134
|
+
#### `@mui/x-charts@7.13.0`
|
|
135
|
+
|
|
136
|
+
- [charts] Add `baseline` property to the `LineChart` `series` (#14153) @JCQuintas
|
|
137
|
+
- [charts] Fix issue where tooltip would disappear on mouse click (#14187) @alexfauquette
|
|
138
|
+
- [charts] Rename `CartesianContextProvider` to `CartesianProvider` (#14102) @JCQuintas
|
|
139
|
+
- [charts] Support axis with the same value for all data points (#14191) @alexfauquette
|
|
140
|
+
|
|
141
|
+
#### `@mui/x-charts-pro@7.0.0-alpha.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
142
|
+
|
|
143
|
+
Same changes as in `@mui/x-charts@7.13.0`.
|
|
144
|
+
|
|
145
|
+
### Tree View
|
|
146
|
+
|
|
147
|
+
#### `@mui/x-tree-view@7.13.0`
|
|
148
|
+
|
|
149
|
+
- [TreeView] Add label editing feature (#13388) @noraleonte
|
|
150
|
+
- [TreeView] Fix the parameters passed for the `canMoveItemToNewPosition` prop (#14176) @flaviendelangle
|
|
151
|
+
|
|
152
|
+
### Docs
|
|
153
|
+
|
|
154
|
+
- [docs] Extract dataset in the Line chart docs (#14034) @alexfauquette
|
|
155
|
+
- [docs] Remove redundant encoding in the mock data source server (#14185) @MBilalShafi
|
|
156
|
+
- [docs] Use Netflix financial results to document bar charts (#13991) @alexfauquette
|
|
157
|
+
- [docs] Remove relience of abbreviations (#14226) @oliviertassinari
|
|
158
|
+
|
|
159
|
+
### Core
|
|
160
|
+
|
|
161
|
+
- [core] Bump monorepo (#14141) @Janpot
|
|
162
|
+
- [core] Fix ESLint issue (#14207) @LukasTy
|
|
163
|
+
- [core] Fix Netlify build cache issue (#14182) @cherniavskii
|
|
164
|
+
- [code-infra] Refactor Netlify `cache-docs` plugin setup (#14105) @LukasTy
|
|
165
|
+
- [internals] Move utils needed for tree view virtualization to shared package (#14202) @flaviendelangle
|
|
166
|
+
|
|
6
167
|
## 7.12.1
|
|
7
168
|
|
|
8
169
|
_Aug 8, 2024_
|
|
@@ -51,7 +212,7 @@ Same changes as in `@mui/x-date-pickers@7.12.1`.
|
|
|
51
212
|
- [charts] Fix charts vendor publish config (#14073) @JCQuintas
|
|
52
213
|
- [charts] Move `plugins` to `PluginProvider` (#14056) @JCQuintas
|
|
53
214
|
|
|
54
|
-
#### `@mui/x-
|
|
215
|
+
#### `@mui/x-charts-pro@7.0.0-alpha.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
55
216
|
|
|
56
217
|
Same changes as in `@mui/x-charts@7.12.1`, plus:
|
|
57
218
|
|
package/DataGrid/DataGrid.js
CHANGED
|
@@ -4,11 +4,19 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { GridBody, GridFooterPlaceholder, GridHeader, GridRoot } from '../components';
|
|
7
|
+
import { useGridAriaAttributes } from '../hooks/utils/useGridAriaAttributes';
|
|
8
|
+
import { useGridRowAriaAttributes } from '../hooks/features/rows/useGridRowAriaAttributes';
|
|
7
9
|
import { GridContextProvider } from '../context/GridContextProvider';
|
|
8
10
|
import { useDataGridComponent } from './useDataGridComponent';
|
|
9
11
|
import { useDataGridProps } from './useDataGridProps';
|
|
10
12
|
import { propValidatorsDataGrid, validateProps } from '../internals/utils/propValidation';
|
|
11
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
+
const configuration = {
|
|
15
|
+
hooks: {
|
|
16
|
+
useGridAriaAttributes,
|
|
17
|
+
useGridRowAriaAttributes
|
|
18
|
+
}
|
|
19
|
+
};
|
|
12
20
|
let propValidators;
|
|
13
21
|
if (process.env.NODE_ENV !== 'production') {
|
|
14
22
|
propValidators = [...propValidatorsDataGrid,
|
|
@@ -23,6 +31,7 @@ const DataGridRaw = /*#__PURE__*/React.forwardRef(function DataGrid(inProps, ref
|
|
|
23
31
|
}
|
|
24
32
|
return /*#__PURE__*/_jsx(GridContextProvider, {
|
|
25
33
|
privateApiRef: privateApiRef,
|
|
34
|
+
configuration: configuration,
|
|
26
35
|
props: props,
|
|
27
36
|
children: /*#__PURE__*/_jsxs(GridRoot, _extends({
|
|
28
37
|
className: props.className,
|
|
@@ -321,7 +330,7 @@ DataGridRaw.propTypes = {
|
|
|
321
330
|
/**
|
|
322
331
|
* Determines if a row can be selected.
|
|
323
332
|
* @param {GridRowParams} params With all properties from [[GridRowParams]].
|
|
324
|
-
* @returns {boolean} A boolean indicating if the
|
|
333
|
+
* @returns {boolean} A boolean indicating if the row is selectable.
|
|
325
334
|
*/
|
|
326
335
|
isRowSelectable: PropTypes.func,
|
|
327
336
|
/**
|
|
@@ -3,7 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
3
3
|
const _excluded = ["className", "visibleColumns", "sortColumnLookup", "filterColumnLookup", "columnHeaderTabIndexState", "columnGroupHeaderTabIndexState", "columnHeaderFocus", "columnGroupHeaderFocus", "headerGroupingMaxDepth", "columnMenuState", "columnVisibility", "columnGroupsHeaderStructure", "hasOtherElementInTabSequence"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
|
-
import { fastMemo } from '
|
|
6
|
+
import { fastMemo } from '@mui/x-internals/fastMemo';
|
|
7
7
|
import { useGridColumnHeaders } from '../hooks/features/columnHeaders/useGridColumnHeaders';
|
|
8
8
|
import { GridBaseColumnHeaders } from './columnHeaders/GridBaseColumnHeaders';
|
|
9
9
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { fastMemo } from '
|
|
3
|
+
import { fastMemo } from '@mui/x-internals/fastMemo';
|
|
4
4
|
import { useGridPrivateApiContext } from '../hooks/utils/useGridPrivateApiContext';
|
|
5
5
|
import { useGridSelector } from '../hooks/utils/useGridSelector';
|
|
6
6
|
import { useGridRootProps } from '../hooks/utils/useGridRootProps';
|
package/components/GridRow.js
CHANGED
|
@@ -5,7 +5,7 @@ import * as React from 'react';
|
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import clsx from 'clsx';
|
|
7
7
|
import { unstable_useForkRef as useForkRef } from '@mui/utils';
|
|
8
|
-
import { fastMemo } from '
|
|
8
|
+
import { fastMemo } from '@mui/x-internals/fastMemo';
|
|
9
9
|
import { GridEditModes, GridRowModes, GridCellModes } from '../models/gridEditRowModel';
|
|
10
10
|
import { useGridApiContext } from '../hooks/utils/useGridApiContext';
|
|
11
11
|
import { gridClasses } from '../constants/gridClasses';
|
|
@@ -20,11 +20,11 @@ import { GRID_ACTIONS_COLUMN_TYPE } from '../colDef/gridActionsColDef';
|
|
|
20
20
|
import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '../constants/gridDetailPanelToggleField';
|
|
21
21
|
import { gridSortModelSelector } from '../hooks/features/sorting/gridSortingSelector';
|
|
22
22
|
import { gridRowMaximumTreeDepthSelector } from '../hooks/features/rows/gridRowsSelector';
|
|
23
|
-
import { gridColumnGroupsHeaderMaxDepthSelector } from '../hooks/features/columnGrouping/gridColumnGroupsSelector';
|
|
24
23
|
import { gridEditRowsStateSelector } from '../hooks/features/editing/gridEditingSelectors';
|
|
25
24
|
import { PinnedPosition, gridPinnedColumnPositionLookup } from './cell/GridCell';
|
|
26
25
|
import { GridScrollbarFillerCell as ScrollbarFiller } from './GridScrollbarFillerCell';
|
|
27
26
|
import { getPinnedCellOffset } from '../internals/utils/getPinnedCellOffset';
|
|
27
|
+
import { useGridConfiguration } from '../hooks/utils/useGridConfiguration';
|
|
28
28
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
29
29
|
function EmptyCell({
|
|
30
30
|
width
|
|
@@ -68,12 +68,12 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
|
68
68
|
} = props,
|
|
69
69
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
70
70
|
const apiRef = useGridApiContext();
|
|
71
|
+
const configuration = useGridConfiguration();
|
|
71
72
|
const ref = React.useRef(null);
|
|
72
73
|
const rootProps = useGridRootProps();
|
|
73
74
|
const currentPage = useGridVisibleRows(apiRef, rootProps);
|
|
74
75
|
const sortModel = useGridSelector(apiRef, gridSortModelSelector);
|
|
75
76
|
const treeDepth = useGridSelector(apiRef, gridRowMaximumTreeDepthSelector);
|
|
76
|
-
const headerGroupingMaxDepth = useGridSelector(apiRef, gridColumnGroupsHeaderMaxDepthSelector);
|
|
77
77
|
const columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);
|
|
78
78
|
const editRowsState = useGridSelector(apiRef, gridEditRowsStateSelector);
|
|
79
79
|
const handleRef = useForkRef(ref, refProp);
|
|
@@ -85,11 +85,10 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
|
85
85
|
const hasFocusCell = focusedColumnIndex !== undefined;
|
|
86
86
|
const hasVirtualFocusCellLeft = hasFocusCell && focusedColumnIndex >= pinnedColumns.left.length && focusedColumnIndex < renderContext.firstColumnIndex;
|
|
87
87
|
const hasVirtualFocusCellRight = hasFocusCell && focusedColumnIndex < visibleColumns.length - pinnedColumns.right.length && focusedColumnIndex >= renderContext.lastColumnIndex;
|
|
88
|
-
const ariaRowIndex = index + headerGroupingMaxDepth + 2; // 1 for the header row and 1 as it's 1-based
|
|
89
|
-
|
|
90
88
|
const classes = composeGridClasses(rootProps.classes, {
|
|
91
89
|
root: ['row', selected && 'selected', editable && 'row--editable', editing && 'row--editing', isFirstVisible && 'row--firstVisible', isLastVisible && 'row--lastVisible', showBottomBorder && 'row--borderBottom', rowHeight === 'auto' && 'row--dynamicHeight']
|
|
92
90
|
});
|
|
91
|
+
const getRowAriaAttributes = configuration.hooks.useGridRowAriaAttributes();
|
|
93
92
|
React.useLayoutEffect(() => {
|
|
94
93
|
if (currentPage.range) {
|
|
95
94
|
// The index prop is relative to the rows from all pages. As example, the index prop of the
|
|
@@ -212,6 +211,7 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
|
212
211
|
return rowStyle;
|
|
213
212
|
}, [isNotVisible, rowHeight, styleProp, minHeight, sizes, rootProps.rowSpacingType]);
|
|
214
213
|
const rowClassNames = apiRef.current.unstable_applyPipeProcessors('rowClassName', [], rowId);
|
|
214
|
+
const ariaAttributes = rowNode ? getRowAriaAttributes(rowNode, index) : undefined;
|
|
215
215
|
if (typeof rootProps.getRowClassName === 'function') {
|
|
216
216
|
const indexRelativeToCurrentPage = index - (currentPage.range?.firstRowIndex || 0);
|
|
217
217
|
const rowParams = _extends({}, apiRef.current.getRowParams(rowId), {
|
|
@@ -308,10 +308,8 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
|
308
308
|
"data-rowindex": index,
|
|
309
309
|
role: "row",
|
|
310
310
|
className: clsx(...rowClassNames, classes.root, className),
|
|
311
|
-
"aria-rowindex": ariaRowIndex,
|
|
312
|
-
"aria-selected": selected,
|
|
313
311
|
style: style
|
|
314
|
-
}, eventHandlers, other, {
|
|
312
|
+
}, ariaAttributes, eventHandlers, other, {
|
|
315
313
|
children: [leftCells, /*#__PURE__*/_jsx("div", {
|
|
316
314
|
role: "presentation",
|
|
317
315
|
className: gridClasses.cellOffsetLeft,
|
|
@@ -3,6 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import { unstable_composeClasses as composeClasses, unstable_useEventCallback as useEventCallback } from '@mui/utils';
|
|
5
5
|
import { styled } from '@mui/system';
|
|
6
|
+
import { fastMemo } from '@mui/x-internals/fastMemo';
|
|
6
7
|
import { useGridRootProps } from '../hooks/utils/useGridRootProps';
|
|
7
8
|
import { getDataGridUtilityClass, gridClasses } from '../constants';
|
|
8
9
|
import { useGridApiContext } from '../hooks/utils/useGridApiContext';
|
|
@@ -13,7 +14,6 @@ import { gridDensityFactorSelector } from '../hooks/features/density/densitySele
|
|
|
13
14
|
import { gridColumnsTotalWidthSelector } from '../hooks/features/columns/gridColumnsSelector';
|
|
14
15
|
import { useTimeout } from '../hooks/utils/useTimeout';
|
|
15
16
|
import { getTotalHeaderHeight } from '../hooks/features/columns/gridColumnsUtils';
|
|
16
|
-
import { fastMemo } from '../utils/fastMemo';
|
|
17
17
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
18
|
const CLIFF = 1;
|
|
19
19
|
const SLOP = 1.5;
|
|
@@ -119,7 +119,7 @@ const GridSkeletonLoadingOverlay = /*#__PURE__*/React.forwardRef(function GridSk
|
|
|
119
119
|
if (hasScrollbarFiller) {
|
|
120
120
|
rowCells.push( /*#__PURE__*/_jsx(GridScrollbarFillerCell, {
|
|
121
121
|
pinnedRight: pinnedColumns.right.length > 0
|
|
122
|
-
}));
|
|
122
|
+
}, `skeleton-scrollbar-filler-${i}`));
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
array.push( /*#__PURE__*/_jsx("div", {
|
|
@@ -6,7 +6,7 @@ import * as React from 'react';
|
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
import clsx from 'clsx';
|
|
8
8
|
import { unstable_useForkRef as useForkRef, unstable_composeClasses as composeClasses, unstable_ownerDocument as ownerDocument, unstable_capitalize as capitalize } from '@mui/utils';
|
|
9
|
-
import { fastMemo } from '
|
|
9
|
+
import { fastMemo } from '@mui/x-internals/fastMemo';
|
|
10
10
|
import { doesSupportPreventScroll } from '../../utils/doesSupportPreventScroll';
|
|
11
11
|
import { getDataGridUtilityClass, gridClasses } from '../../constants/gridClasses';
|
|
12
12
|
import { GridCellModes } from '../../models';
|
|
@@ -107,13 +107,12 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
|
|
|
107
107
|
const apiRef = useGridApiContext();
|
|
108
108
|
const rootProps = useGridRootProps();
|
|
109
109
|
const field = column.field;
|
|
110
|
-
const
|
|
110
|
+
const cellParams = useGridSelector(apiRef, () => {
|
|
111
111
|
// This is required because `.getCellParams` tries to get the `state.rows.tree` entry
|
|
112
112
|
// associated with `rowId`/`fieldId`, but this selector runs after the state has been
|
|
113
113
|
// updated, while `rowId`/`fieldId` reference an entry in the old state.
|
|
114
114
|
try {
|
|
115
|
-
const
|
|
116
|
-
const result = cellParams;
|
|
115
|
+
const result = apiRef.current.getCellParams(rowId, field);
|
|
117
116
|
result.api = apiRef.current;
|
|
118
117
|
return result;
|
|
119
118
|
} catch (e) {
|
|
@@ -132,9 +131,9 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
|
|
|
132
131
|
hasFocus,
|
|
133
132
|
isEditable = false,
|
|
134
133
|
value
|
|
135
|
-
} =
|
|
134
|
+
} = cellParams;
|
|
136
135
|
const canManageOwnFocus = column.type === 'actions' && column.getActions?.(apiRef.current.getRowParams(rowId)).some(action => !action.props.disabled);
|
|
137
|
-
const tabIndex = (cellMode === 'view' || !isEditable) && !canManageOwnFocus ?
|
|
136
|
+
const tabIndex = (cellMode === 'view' || !isEditable) && !canManageOwnFocus ? cellParams.tabIndex : -1;
|
|
138
137
|
const {
|
|
139
138
|
classes: rootClasses,
|
|
140
139
|
getCellClassName
|
|
@@ -147,15 +146,15 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
|
|
|
147
146
|
}).filter(Boolean).join(' '));
|
|
148
147
|
const classNames = [pipesClassName];
|
|
149
148
|
if (column.cellClassName) {
|
|
150
|
-
classNames.push(typeof column.cellClassName === 'function' ? column.cellClassName(
|
|
149
|
+
classNames.push(typeof column.cellClassName === 'function' ? column.cellClassName(cellParams) : column.cellClassName);
|
|
151
150
|
}
|
|
152
151
|
if (column.display === 'flex') {
|
|
153
152
|
classNames.push(gridClasses['cell--flex']);
|
|
154
153
|
}
|
|
155
154
|
if (getCellClassName) {
|
|
156
|
-
classNames.push(getCellClassName(
|
|
155
|
+
classNames.push(getCellClassName(cellParams));
|
|
157
156
|
}
|
|
158
|
-
const valueToRender =
|
|
157
|
+
const valueToRender = cellParams.formattedValue ?? value;
|
|
159
158
|
const cellRef = React.useRef(null);
|
|
160
159
|
const handleRef = useForkRef(ref, cellRef);
|
|
161
160
|
const focusElementRef = React.useRef(null);
|
|
@@ -238,7 +237,7 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
|
|
|
238
237
|
}
|
|
239
238
|
}
|
|
240
239
|
}, [hasFocus, cellMode, apiRef]);
|
|
241
|
-
if (
|
|
240
|
+
if (cellParams === EMPTY_CELL_PARAMS) {
|
|
242
241
|
return null;
|
|
243
242
|
}
|
|
244
243
|
let handleFocus = other.onFocus;
|
|
@@ -260,15 +259,15 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
|
|
|
260
259
|
let children;
|
|
261
260
|
let title;
|
|
262
261
|
if (editCellState === null && column.renderCell) {
|
|
263
|
-
children = column.renderCell(
|
|
262
|
+
children = column.renderCell(cellParams);
|
|
264
263
|
}
|
|
265
264
|
if (editCellState !== null && column.renderEditCell) {
|
|
266
265
|
const updatedRow = apiRef.current.getRowWithUpdatedValues(rowId, column.field);
|
|
267
266
|
|
|
268
267
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
269
268
|
const editCellStateRest = _objectWithoutPropertiesLoose(editCellState, _excluded2);
|
|
270
|
-
const formattedValue = column.valueFormatter ? column.valueFormatter(editCellState.value, updatedRow, column, apiRef) :
|
|
271
|
-
const params = _extends({},
|
|
269
|
+
const formattedValue = column.valueFormatter ? column.valueFormatter(editCellState.value, updatedRow, column, apiRef) : cellParams.formattedValue;
|
|
270
|
+
const params = _extends({}, cellParams, {
|
|
272
271
|
row: updatedRow,
|
|
273
272
|
formattedValue
|
|
274
273
|
}, editCellStateRest);
|
|
@@ -6,7 +6,6 @@ import * as React from 'react';
|
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
|
|
8
8
|
import { GridCellEditStopReasons } from '../../models/params/gridEditCellParams';
|
|
9
|
-
import { isEscapeKey } from '../../utils/keyboardUtils';
|
|
10
9
|
import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
|
|
11
10
|
import { GridEditModes } from '../../models/gridEditRowModel';
|
|
12
11
|
import { getValueFromValueOptions, getValueOptions, isSingleSelectColDef } from '../panel/filterPanel/filterPanelUtils';
|
|
@@ -80,10 +79,10 @@ function GridEditSingleSelectCell(props) {
|
|
|
80
79
|
setOpen(false);
|
|
81
80
|
return;
|
|
82
81
|
}
|
|
83
|
-
if (reason === 'backdropClick' ||
|
|
82
|
+
if (reason === 'backdropClick' || event.key === 'Escape') {
|
|
84
83
|
const params = apiRef.current.getCellParams(id, field);
|
|
85
84
|
apiRef.current.publishEvent('cellEditStop', _extends({}, params, {
|
|
86
|
-
reason:
|
|
85
|
+
reason: event.key === 'Escape' ? GridCellEditStopReasons.escapeKeyDown : GridCellEditStopReasons.cellFocusOut
|
|
87
86
|
}));
|
|
88
87
|
}
|
|
89
88
|
};
|
|
@@ -3,10 +3,10 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
3
3
|
const _excluded = ["field", "type", "align", "width", "height", "empty", "style", "className"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
|
+
import clsx from 'clsx';
|
|
6
7
|
import Skeleton from '@mui/material/Skeleton';
|
|
7
8
|
import { unstable_composeClasses as composeClasses, unstable_capitalize as capitalize } from '@mui/utils';
|
|
8
|
-
import
|
|
9
|
-
import { fastMemo } from '../../utils/fastMemo';
|
|
9
|
+
import { fastMemo } from '@mui/x-internals/fastMemo';
|
|
10
10
|
import { createRandomNumberGenerator } from '../../utils/utils';
|
|
11
11
|
import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
|
|
12
12
|
import { getDataGridUtilityClass } from '../../constants/gridClasses';
|
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import clsx from 'clsx';
|
|
5
5
|
import { unstable_composeClasses as composeClasses, unstable_useId as useId } from '@mui/utils';
|
|
6
|
-
import { fastMemo } from '
|
|
6
|
+
import { fastMemo } from '@mui/x-internals/fastMemo';
|
|
7
7
|
import { useGridPrivateApiContext } from '../../hooks/utils/useGridPrivateApiContext';
|
|
8
8
|
import { ColumnHeaderMenuIcon } from './ColumnHeaderMenuIcon';
|
|
9
9
|
import { GridColumnHeaderMenu } from '../menu/columnMenu/GridColumnHeaderMenu';
|
|
@@ -668,9 +668,16 @@ export const GridRootStyles = styled('div', {
|
|
|
668
668
|
[`& .${c['filler--borderTop']}`]: {
|
|
669
669
|
borderTop: '1px solid var(--DataGrid-rowBorderColor)'
|
|
670
670
|
},
|
|
671
|
-
/* Hide grid rows and vertical scrollbar when skeleton overlay is visible */
|
|
671
|
+
/* Hide grid rows, row filler, and vertical scrollbar when skeleton overlay is visible */
|
|
672
672
|
[`& .${c['main--hasSkeletonLoadingOverlay']}`]: {
|
|
673
|
-
[`& .${c.virtualScrollerContent}
|
|
673
|
+
[`& .${c.virtualScrollerContent}`]: {
|
|
674
|
+
// We use visibility hidden so that the virtual scroller content retains its height.
|
|
675
|
+
// Position fixed is used to remove the virtual scroller content from the flow.
|
|
676
|
+
// https://github.com/mui/mui-x/issues/14061
|
|
677
|
+
position: 'fixed',
|
|
678
|
+
visibility: 'hidden'
|
|
679
|
+
},
|
|
680
|
+
[`& .${c['scrollbar--vertical']}, & .${c.pinnedRows}, & .${c.virtualScroller} > .${c.filler}`]: {
|
|
674
681
|
display: 'none'
|
|
675
682
|
}
|
|
676
683
|
}
|
|
@@ -6,7 +6,7 @@ import PropTypes from 'prop-types';
|
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import MenuList from '@mui/material/MenuList';
|
|
8
8
|
import { styled } from '@mui/material/styles';
|
|
9
|
-
import { isHideMenuKey
|
|
9
|
+
import { isHideMenuKey } from '../../../utils/keyboardUtils';
|
|
10
10
|
import { gridClasses } from '../../../constants/gridClasses';
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
12
|
const StyledMenuList = styled(MenuList)(() => ({
|
|
@@ -23,7 +23,7 @@ const GridColumnMenuContainer = /*#__PURE__*/React.forwardRef(function GridColum
|
|
|
23
23
|
} = props,
|
|
24
24
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
25
25
|
const handleListKeyDown = React.useCallback(event => {
|
|
26
|
-
if (
|
|
26
|
+
if (event.key === 'Tab') {
|
|
27
27
|
event.preventDefault();
|
|
28
28
|
}
|
|
29
29
|
if (isHideMenuKey(event.key)) {
|
|
@@ -10,7 +10,6 @@ import ClickAwayListener from '@mui/material/ClickAwayListener';
|
|
|
10
10
|
import Paper from '@mui/material/Paper';
|
|
11
11
|
import Popper from '@mui/material/Popper';
|
|
12
12
|
import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
13
|
-
import { isEscapeKey } from '../../utils/keyboardUtils';
|
|
14
13
|
import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
|
|
15
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
15
|
export const gridPanelClasses = generateUtilityClasses('MuiDataGrid', ['panel', 'paper']);
|
|
@@ -51,7 +50,7 @@ const GridPanel = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
51
50
|
apiRef.current.hidePreferences();
|
|
52
51
|
}, [apiRef]);
|
|
53
52
|
const handleKeyDown = React.useCallback(event => {
|
|
54
|
-
if (
|
|
53
|
+
if (event.key === 'Escape') {
|
|
55
54
|
apiRef.current.hidePreferences();
|
|
56
55
|
}
|
|
57
56
|
}, [apiRef]);
|
|
@@ -281,10 +281,15 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
|
|
|
281
281
|
variant: "standard",
|
|
282
282
|
as: rootProps.slots.baseFormControl
|
|
283
283
|
}, baseFormControlProps, logicOperatorInputProps, {
|
|
284
|
-
sx:
|
|
285
|
-
display:
|
|
286
|
-
|
|
287
|
-
|
|
284
|
+
sx: [hasLogicOperatorColumn ? {
|
|
285
|
+
display: 'flex'
|
|
286
|
+
} : {
|
|
287
|
+
display: 'none'
|
|
288
|
+
}, showMultiFilterOperators ? {
|
|
289
|
+
visibility: 'visible'
|
|
290
|
+
} : {
|
|
291
|
+
visibility: 'hidden'
|
|
292
|
+
}, baseFormControlProps.sx, logicOperatorInputProps.sx],
|
|
288
293
|
className: clsx(classes.logicOperatorInput, baseFormControlProps.className, logicOperatorInputProps.className),
|
|
289
294
|
ownerState: rootProps,
|
|
290
295
|
children: /*#__PURE__*/_jsx(rootProps.slots.baseSelect, _extends({
|
|
@@ -6,7 +6,7 @@ import MenuList from '@mui/material/MenuList';
|
|
|
6
6
|
import MenuItem from '@mui/material/MenuItem';
|
|
7
7
|
import ListItemIcon from '@mui/material/ListItemIcon';
|
|
8
8
|
import { gridDensitySelector } from '../../hooks/features/density/densitySelector';
|
|
9
|
-
import { isHideMenuKey
|
|
9
|
+
import { isHideMenuKey } from '../../utils/keyboardUtils';
|
|
10
10
|
import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
11
11
|
import { useGridSelector } from '../../hooks/utils/useGridSelector';
|
|
12
12
|
import { GridMenu } from '../menu/GridMenu';
|
|
@@ -62,7 +62,7 @@ const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridTo
|
|
|
62
62
|
setOpen(false);
|
|
63
63
|
};
|
|
64
64
|
const handleListKeyDown = event => {
|
|
65
|
-
if (
|
|
65
|
+
if (event.key === 'Tab') {
|
|
66
66
|
event.preventDefault();
|
|
67
67
|
}
|
|
68
68
|
if (isHideMenuKey(event.key)) {
|
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import { unstable_useId as useId, unstable_useForkRef as useForkRef } from '@mui/utils';
|
|
5
5
|
import MenuList from '@mui/material/MenuList';
|
|
6
|
-
import { isHideMenuKey
|
|
6
|
+
import { isHideMenuKey } from '../../utils/keyboardUtils';
|
|
7
7
|
import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
8
8
|
import { GridMenu } from '../menu/GridMenu';
|
|
9
9
|
import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
|
|
@@ -29,7 +29,7 @@ const GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function GridTo
|
|
|
29
29
|
};
|
|
30
30
|
const handleMenuClose = () => setOpen(false);
|
|
31
31
|
const handleListKeyDown = event => {
|
|
32
|
-
if (
|
|
32
|
+
if (event.key === 'Tab') {
|
|
33
33
|
event.preventDefault();
|
|
34
34
|
}
|
|
35
35
|
if (isHideMenuKey(event.key)) {
|
|
@@ -105,9 +105,11 @@ function GridToolbarQuickFilter(props) {
|
|
|
105
105
|
endAdornment: /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
|
|
106
106
|
"aria-label": apiRef.current.getLocaleText('toolbarQuickFilterDeleteIconLabel'),
|
|
107
107
|
size: "small",
|
|
108
|
-
sx: {
|
|
109
|
-
visibility:
|
|
110
|
-
}
|
|
108
|
+
sx: [searchValue ? {
|
|
109
|
+
visibility: 'visible'
|
|
110
|
+
} : {
|
|
111
|
+
visibility: 'hidden'
|
|
112
|
+
}],
|
|
111
113
|
onClick: handleSearchReset
|
|
112
114
|
}, rootProps.slotProps?.baseIconButton, {
|
|
113
115
|
children: /*#__PURE__*/_jsx(rootProps.slots.quickFilterClearIcon, {
|
|
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { styled } from '@mui/system';
|
|
4
4
|
import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
|
|
5
|
-
import {
|
|
5
|
+
import { useGridConfiguration } from '../../hooks/utils/useGridConfiguration';
|
|
6
6
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
7
|
const GridPanelAnchor = styled('div')({
|
|
8
8
|
position: 'absolute',
|
|
@@ -19,8 +19,9 @@ const Element = styled('div', {
|
|
|
19
19
|
overflow: 'hidden'
|
|
20
20
|
});
|
|
21
21
|
export const GridMainContainer = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
22
|
-
const ariaAttributes = useGridAriaAttributes();
|
|
23
22
|
const rootProps = useGridRootProps();
|
|
23
|
+
const configuration = useGridConfiguration();
|
|
24
|
+
const ariaAttributes = configuration.hooks.useGridAriaAttributes();
|
|
24
25
|
return /*#__PURE__*/_jsxs(Element, _extends({
|
|
25
26
|
ref: ref,
|
|
26
27
|
ownerState: rootProps,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { styled } from '@mui/system';
|
|
3
|
-
import { fastMemo } from '
|
|
3
|
+
import { fastMemo } from '@mui/x-internals/fastMemo';
|
|
4
4
|
import { useGridSelector } from '../../hooks/utils/useGridSelector';
|
|
5
5
|
import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
6
6
|
import { gridDimensionsSelector } from '../../hooks/features/dimensions';
|