@mui/x-data-grid 7.10.0 → 7.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +169 -0
- package/components/panel/GridPanel.d.ts +1 -1
- package/components/panel/GridPanel.js +4 -1
- package/components/panel/GridPreferencesPanel.d.ts +1 -1
- package/components/panel/GridPreferencesPanel.js +3 -4
- package/components/panel/filterPanel/GridFilterForm.js +1 -12
- package/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +1 -1
- package/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
- package/hooks/core/useGridApiInitialization.js +2 -2
- package/hooks/features/columnResize/useGridColumnResize.js +1 -0
- package/hooks/features/editing/gridEditingSelectors.d.ts +3 -0
- package/hooks/features/editing/gridEditingSelectors.js +3 -1
- package/hooks/features/editing/index.d.ts +1 -0
- package/hooks/features/editing/index.js +1 -0
- package/hooks/features/editing/useGridCellEditing.js +2 -3
- package/hooks/features/editing/useGridRowEditing.js +2 -3
- package/hooks/features/export/serializers/csvSerializer.js +7 -8
- package/hooks/features/filter/gridFilterUtils.js +12 -9
- package/hooks/features/index.d.ts +1 -0
- package/hooks/features/index.js +1 -0
- package/hooks/features/sorting/gridSortingUtils.js +2 -3
- package/hooks/utils/useGridApiEventHandler.d.ts +3 -2
- package/hooks/utils/useGridApiEventHandler.js +1 -0
- package/hooks/utils/useGridSelector.js +2 -3
- package/index.js +1 -1
- package/internals/index.d.ts +0 -1
- package/internals/index.js +0 -1
- package/internals/utils/index.d.ts +1 -0
- package/internals/utils/index.js +2 -1
- package/internals/utils/propValidation.d.ts +0 -1
- package/internals/utils/propValidation.js +4 -13
- package/internals/utils/warning.d.ts +2 -0
- package/internals/utils/warning.js +21 -0
- package/locales/deDE.js +1 -2
- package/locales/index.d.ts +2 -0
- package/locales/index.js +3 -1
- package/locales/isIS.d.ts +2 -0
- package/locales/isIS.js +149 -0
- package/locales/nbNO.js +30 -32
- package/locales/nnNO.d.ts +2 -0
- package/locales/nnNO.js +148 -0
- package/locales/ruRU.js +4 -5
- package/models/api/gridCoreApi.d.ts +1 -1
- package/modern/components/panel/GridPanel.js +4 -1
- package/modern/components/panel/GridPreferencesPanel.js +3 -4
- package/modern/components/panel/filterPanel/GridFilterForm.js +1 -12
- package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
- package/modern/hooks/core/useGridApiInitialization.js +2 -2
- package/modern/hooks/features/columnResize/useGridColumnResize.js +1 -0
- package/modern/hooks/features/editing/gridEditingSelectors.js +3 -1
- package/modern/hooks/features/editing/index.js +1 -0
- package/modern/hooks/features/editing/useGridCellEditing.js +2 -3
- package/modern/hooks/features/editing/useGridRowEditing.js +2 -3
- package/modern/hooks/features/export/serializers/csvSerializer.js +7 -8
- package/modern/hooks/features/filter/gridFilterUtils.js +12 -9
- package/modern/hooks/features/index.js +1 -0
- package/modern/hooks/features/sorting/gridSortingUtils.js +2 -3
- package/modern/hooks/utils/useGridApiEventHandler.js +1 -0
- package/modern/hooks/utils/useGridSelector.js +2 -3
- package/modern/index.js +1 -1
- package/modern/internals/index.js +0 -1
- package/modern/internals/utils/index.js +2 -1
- package/modern/internals/utils/propValidation.js +4 -13
- package/modern/internals/utils/warning.js +21 -0
- package/modern/locales/deDE.js +1 -2
- package/modern/locales/index.js +3 -1
- package/modern/locales/isIS.js +149 -0
- package/modern/locales/nbNO.js +30 -32
- package/modern/locales/nnNO.js +148 -0
- package/modern/locales/ruRU.js +4 -5
- package/modern/utils/createSelector.js +4 -5
- package/node/components/panel/GridPanel.js +4 -1
- package/node/components/panel/GridPreferencesPanel.js +4 -5
- package/node/components/panel/filterPanel/GridFilterForm.js +1 -12
- package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
- package/node/hooks/core/useGridApiInitialization.js +2 -2
- package/node/hooks/features/columnResize/useGridColumnResize.js +1 -0
- package/node/hooks/features/editing/gridEditingSelectors.js +3 -1
- package/node/hooks/features/editing/index.js +16 -0
- package/node/hooks/features/editing/useGridCellEditing.js +2 -3
- package/node/hooks/features/editing/useGridRowEditing.js +2 -3
- package/node/hooks/features/export/serializers/csvSerializer.js +7 -8
- package/node/hooks/features/filter/gridFilterUtils.js +12 -9
- package/node/hooks/features/index.js +11 -0
- package/node/hooks/features/sorting/gridSortingUtils.js +2 -3
- package/node/hooks/utils/useGridApiEventHandler.js +1 -0
- package/node/hooks/utils/useGridSelector.js +2 -3
- package/node/index.js +1 -1
- package/node/internals/index.js +0 -8
- package/node/internals/utils/index.js +11 -0
- package/node/internals/utils/propValidation.js +4 -14
- package/node/internals/utils/warning.js +28 -0
- package/node/locales/deDE.js +1 -2
- package/node/locales/index.js +22 -0
- package/node/locales/isIS.js +155 -0
- package/node/locales/nbNO.js +30 -32
- package/node/locales/nnNO.js +154 -0
- package/node/locales/ruRU.js +4 -5
- package/node/utils/createSelector.js +4 -5
- package/package.json +5 -5
- package/utils/createSelector.d.ts +1 -1
- package/utils/createSelector.js +4 -5
- package/modern/utils/EventManager.js +0 -69
- package/modern/utils/warning.js +0 -24
- package/node/utils/EventManager.js +0 -76
- package/node/utils/warning.js +0 -32
- package/utils/EventManager.d.ts +0 -29
- package/utils/EventManager.js +0 -69
- package/utils/warning.d.ts +0 -2
- package/utils/warning.js +0 -24
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,175 @@
|
|
|
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.11.1
|
|
7
|
+
|
|
8
|
+
_Jul 25, 2024_
|
|
9
|
+
|
|
10
|
+
We'd like to offer a big thanks to the 18 contributors who made this release possible. Here are some highlights ✨:
|
|
11
|
+
|
|
12
|
+
- 🔎 Allow `Zoom` to be controllable for charts (#13858) @JCQuintas
|
|
13
|
+
- 🌍 Add Icelandic (is-IS) and Norwegian Nynorsk (nn-NO) locales on the Data Grid
|
|
14
|
+
- 🌍 Improve Norwegian Bokmål (nb-NO) and German (de-DE) locales on the Data Grid
|
|
15
|
+
- 🌍 Add Norwegian Nynorsk (nn-NO) locale on the Date and Time Pickers
|
|
16
|
+
- 🐞 Bugfixes
|
|
17
|
+
- 📚 Documentation improvements
|
|
18
|
+
|
|
19
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
20
|
+
|
|
21
|
+
### Data Grid
|
|
22
|
+
|
|
23
|
+
#### `@mui/x-data-grid@7.11.1`
|
|
24
|
+
|
|
25
|
+
- [DataGrid] Remove dead code in internal `GridPreferencesPanel` (#13934) @k-rajat19
|
|
26
|
+
- [DataGrid] Do not miss to escape formulas in CSV export (#13888) @arminmeh
|
|
27
|
+
- [l10n] Add Icelandic (is-IS) locale (#13283) @magnimarels
|
|
28
|
+
- [l10n] Add Norwegian nynorsk (nn-NO) locale and improve Norwegian bokmål (nb-NO) locale (#13588) @AnderzL7
|
|
29
|
+
- [l10n] Improve German (de-DE) locale (#13910) @lhilgert9
|
|
30
|
+
|
|
31
|
+
#### `@mui/x-data-grid-pro@7.11.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
32
|
+
|
|
33
|
+
Same changes as in `@mui/x-data-grid@7.11.1`.
|
|
34
|
+
|
|
35
|
+
#### `@mui/x-data-grid-premium@7.11.1` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
36
|
+
|
|
37
|
+
Same changes as in `@mui/x-data-grid-pro@7.11.1`, plus:
|
|
38
|
+
|
|
39
|
+
- [DataGridPremium] Pass the `api` object to events (#13893) @pcorpet
|
|
40
|
+
- [DataGridPremium] Fix paste to selected cells (#13967) @romgrk
|
|
41
|
+
|
|
42
|
+
### Date and Time Pickers
|
|
43
|
+
|
|
44
|
+
#### `@mui/x-date-pickers@7.11.1`
|
|
45
|
+
|
|
46
|
+
- [fields] Prevent keyboard editing when disabled (#13900) @arthurbalduini
|
|
47
|
+
- [l10n] Add Norwegian Nynorsk (nn-NO) locale (#13946) @AnderzL7
|
|
48
|
+
|
|
49
|
+
#### `@mui/x-date-pickers-pro@7.11.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
50
|
+
|
|
51
|
+
Same changes as in `@mui/x-date-pickers@7.11.1`.
|
|
52
|
+
|
|
53
|
+
### Charts
|
|
54
|
+
|
|
55
|
+
#### `@mui/x-charts@7.11.1`
|
|
56
|
+
|
|
57
|
+
- [charts] Add `ownerState` function to `slotProps` typing when available (#13965) @alexfauquette
|
|
58
|
+
- [charts] Allow `Zoom` to be controllable (#13858) @JCQuintas
|
|
59
|
+
- [charts] Deprecate `xAxisKey` /`zAxisKey` in favor of `xAxisId`/`zAxisId` (#13940) @alexfauquette
|
|
60
|
+
- [charts] Hide empty arcs in the PieChart (#13897) @alexfauquette
|
|
61
|
+
- [charts] Limit the trigger of exit charts (#13682) @alexfauquette
|
|
62
|
+
|
|
63
|
+
### Tree View
|
|
64
|
+
|
|
65
|
+
#### `@mui/x-tree-view@7.11.1`
|
|
66
|
+
|
|
67
|
+
- [TreeView] Allow the plugins to enrich the props passed to the item slots (#13953) @flaviendelangle
|
|
68
|
+
|
|
69
|
+
### Docs
|
|
70
|
+
|
|
71
|
+
- [docs] Bump pnpm priority as a package manager (#13894) @oliviertassinari
|
|
72
|
+
- [docs] Explicitly mark charts pro as not released (#13905) @alexfauquette
|
|
73
|
+
- [docs] Fix dot consistency a11y table @oliviertassinari
|
|
74
|
+
- [docs] Fix some typos in charts docs (#13906) @cratiu222
|
|
75
|
+
- [docs] Fix spelling (#13902) @nnsW3
|
|
76
|
+
- [docs] Improve error message when moving between plans (#13874) @oliviertassinari
|
|
77
|
+
- [docs] Update `SparkLineChart` reference not being correctly capitalised (#13960) @duckboy81
|
|
78
|
+
- [docs] Fix scroll demos disorientation (#13909) @oliviertassinari
|
|
79
|
+
|
|
80
|
+
### Core
|
|
81
|
+
|
|
82
|
+
- [core] Add `@mui/material-nextjs` to `MUI Core` renovate group (#13966) @LukasTy
|
|
83
|
+
- [core] Remove warning message in production (#13911) @oliviertassinari
|
|
84
|
+
- [code-infra] Reuse `useReactVersion` script from the monorepo (#13710) @cherniavskii
|
|
85
|
+
- [infra] Adds order id validation action (#13957) @michelengelen
|
|
86
|
+
- [infra] Fix order id validator action (#13971) @michelengelen
|
|
87
|
+
- [infra] Fix regex in order id validation (#13976) @michelengelen
|
|
88
|
+
- [infra] Issue template improvement (#13954) @michelengelen
|
|
89
|
+
|
|
90
|
+
## 7.11.0
|
|
91
|
+
|
|
92
|
+
_Jul 18, 2024_
|
|
93
|
+
|
|
94
|
+
We'd like to offer a big thanks to the 13 contributors who made this release possible. Here are some highlights ✨:
|
|
95
|
+
|
|
96
|
+
- 🎨 Add [color legend](https://mui.com/x/react-charts/legend/#color-legend) for charts (#13700) @alexfauquette
|
|
97
|
+
- 🌍 Improve Korean (ko-KR) locale on the Date and Time Pickers
|
|
98
|
+
- 🌍 Improve Russian (ru-RU) locale on the Date and Time Pickers and Data Grid
|
|
99
|
+
- 🐞 Bugfixes
|
|
100
|
+
- 📚 Documentation improvements
|
|
101
|
+
|
|
102
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
103
|
+
|
|
104
|
+
### Data Grid
|
|
105
|
+
|
|
106
|
+
#### `@mui/x-data-grid@7.11.0`
|
|
107
|
+
|
|
108
|
+
- [DataGrid] Expose `gridEditRowsStateSelector` (#13877) @romgrk
|
|
109
|
+
- [DataGrid] Fix `columnResizeStop` event not emitted when column is not resized (#13307) @mateuseap
|
|
110
|
+
- [DataGrid] Fix delete filter inconsistent behavior (#13353) @oukunan
|
|
111
|
+
- [DataGrid] Enable flip on preferences panel (#13803) @romgrk
|
|
112
|
+
- [DataGrid] Support `date` and `datetime-local` input types in `GridFilterInputMultipleValue` type (#13411) @karudedios
|
|
113
|
+
- [l10n] Improve Russian (ru-RU) locale (#13735) @diro-atk
|
|
114
|
+
|
|
115
|
+
#### `@mui/x-data-grid-pro@7.11.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
116
|
+
|
|
117
|
+
Same changes as in `@mui/x-data-grid@7.11.0`.
|
|
118
|
+
|
|
119
|
+
#### `@mui/x-data-grid-premium@7.11.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
120
|
+
|
|
121
|
+
Same changes as in `@mui/x-data-grid-pro@7.11.0`.
|
|
122
|
+
|
|
123
|
+
### Date and Time Pickers
|
|
124
|
+
|
|
125
|
+
#### `@mui/x-date-pickers@7.11.0`
|
|
126
|
+
|
|
127
|
+
- [l10n] Improve Korean (ko-KR) locale (#13651) @100pearlcent
|
|
128
|
+
- [l10n] Improve Russian (ru-RU) locale (#13871) @Inv1x
|
|
129
|
+
- [pickers] Add more conformance tests improving API docs precision (#13800) @LukasTy
|
|
130
|
+
- [TimePicker] Add `Mui-selected` class to `TimeClock` meridiem buttons (#13848) @LukasTy
|
|
131
|
+
|
|
132
|
+
#### `@mui/x-date-pickers-pro@7.11.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
133
|
+
|
|
134
|
+
Same changes as in `@mui/x-date-pickers@7.11.0`, plus:
|
|
135
|
+
|
|
136
|
+
- [DateRangePicker] Fix `name` prop propagation regression (#13821) @LukasTy
|
|
137
|
+
|
|
138
|
+
### Charts
|
|
139
|
+
|
|
140
|
+
#### `@mui/x-charts@7.11.0`
|
|
141
|
+
|
|
142
|
+
- [charts] Create color legend (#13700) @alexfauquette
|
|
143
|
+
- [charts] Defaultize axis on top level `useChartContainerProps` (#13817) @JCQuintas
|
|
144
|
+
- [charts] Fix charts not passing `className` to root element (#13647) @JCQuintas
|
|
145
|
+
- [charts] Generate API documentation for pro components (#13822) @alexfauquette
|
|
146
|
+
- [charts] Improve zoomed highlight behaviour (unreleased) (#13868) @JCQuintas
|
|
147
|
+
- [charts] Allow zoom on Y axis and add zoom options to configure zooming behaviour (unreleased) (#13726) @JCQuintas
|
|
148
|
+
- [charts] Disable animations while zooming (unreleased) (#13807) @JCQuintas
|
|
149
|
+
|
|
150
|
+
### Tree View
|
|
151
|
+
|
|
152
|
+
#### `@mui/x-tree-view@7.11.0`
|
|
153
|
+
|
|
154
|
+
- [TreeView] Extract some logic outside of the `useTreeView` hook (#13845) @flaviendelangle
|
|
155
|
+
|
|
156
|
+
### Docs
|
|
157
|
+
|
|
158
|
+
- [docs] Add warning about `process.env.NODE_ENV` in production (#13869) @cherniavskii
|
|
159
|
+
- [docs] Allow controlling the demo form from the example (#13796) @JCQuintas
|
|
160
|
+
- [docs] Clarify Pickers clearable behavior not working on mobile (#13786) @lnhrdt
|
|
161
|
+
- [docs] Improve the documentation of the picker's `onChange` and `onAccept` props (#13543) @flaviendelangle
|
|
162
|
+
- [docs] Replace company name with project name @oliviertassinari
|
|
163
|
+
- [docs] Sort Pickers & Charts API slots alphabetically (#13843) @LukasTy
|
|
164
|
+
|
|
165
|
+
### Core
|
|
166
|
+
|
|
167
|
+
- [core] Add MUI Internal `renovate` group (#13846) @LukasTy
|
|
168
|
+
- [core] Link GitHub issue for `import/prefer-default-export` rule @oliviertassinari
|
|
169
|
+
- [core] Normalize `...other` and test imports in charts (#13844) @JCQuintas
|
|
170
|
+
- [core] Normalize rest / other to match the most common used @oliviertassinari
|
|
171
|
+
- [code-infra] Follow `next` tag for `@mui/docs` package bumps (#13813) @LukasTy
|
|
172
|
+
- [code-infra] Use specific version for `@mui/docs` dependency (#13760) @LukasTy
|
|
173
|
+
- [internals] Move `EventManager` to `@mui/x-internals` package (#13815) @flaviendelangle
|
|
174
|
+
|
|
6
175
|
## 7.10.0
|
|
7
176
|
|
|
8
177
|
_Jul 11, 2024_
|
|
@@ -16,7 +16,7 @@ export interface GridPanelProps extends Partial<React.ComponentProps<typeof Grid
|
|
|
16
16
|
open: boolean;
|
|
17
17
|
}
|
|
18
18
|
export declare const gridPanelClasses: Record<keyof GridPanelClasses, string>;
|
|
19
|
-
declare const GridPanelRoot: import("@emotion/styled").StyledComponent<Pick<import("@mui/material/Popper").PopperProps & React.RefAttributes<HTMLDivElement>, "hidden" | "color" | "content" | "style" | "open" | "translate" | "container" | "transition" | "slot" | "title" | "ref" | "suppressHydrationWarning" | "className" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "accessKey" | "autoFocus" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "nonce" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "component" | "sx" | "components" | "
|
|
19
|
+
declare const GridPanelRoot: import("@emotion/styled").StyledComponent<Pick<import("@mui/material/Popper").PopperProps & React.RefAttributes<HTMLDivElement>, "hidden" | "color" | "content" | "style" | "open" | "translate" | "container" | "transition" | "slot" | "title" | "ref" | "suppressHydrationWarning" | "className" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "accessKey" | "autoFocus" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "nonce" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "component" | "sx" | "components" | "slots" | "slotProps" | "componentsProps" | "placement" | "disablePortal" | "modifiers" | "anchorEl" | "keepMounted" | "popperOptions" | "popperRef"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
|
|
20
20
|
ownerState: OwnerState;
|
|
21
21
|
}, {}, {}>;
|
|
22
22
|
declare const GridPanel: React.ForwardRefExoticComponent<Omit<GridPanelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -57,7 +57,10 @@ const GridPanel = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
57
57
|
}, [apiRef]);
|
|
58
58
|
const modifiers = React.useMemo(() => [{
|
|
59
59
|
name: 'flip',
|
|
60
|
-
enabled:
|
|
60
|
+
enabled: true,
|
|
61
|
+
options: {
|
|
62
|
+
rootBoundary: 'document'
|
|
63
|
+
}
|
|
61
64
|
}, {
|
|
62
65
|
name: 'isPlaced',
|
|
63
66
|
enabled: true,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
export declare
|
|
2
|
+
export declare function GridPreferencesPanel(): React.JSX.Element;
|
|
@@ -7,19 +7,18 @@ import { GridPreferencePanelsValue } from '../../hooks/features/preferencesPanel
|
|
|
7
7
|
import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
8
8
|
import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
|
|
9
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
-
export
|
|
10
|
+
export function GridPreferencesPanel() {
|
|
11
11
|
const apiRef = useGridApiContext();
|
|
12
12
|
const columns = useGridSelector(apiRef, gridColumnDefinitionsSelector);
|
|
13
13
|
const rootProps = useGridRootProps();
|
|
14
14
|
const preferencePanelState = useGridSelector(apiRef, gridPreferencePanelStateSelector);
|
|
15
15
|
const panelContent = apiRef.current.unstable_applyPipeProcessors('preferencePanel', null, preferencePanelState.openedPanelValue ?? GridPreferencePanelsValue.filters);
|
|
16
16
|
return /*#__PURE__*/_jsx(rootProps.slots.panel, _extends({
|
|
17
|
-
ref: ref,
|
|
18
17
|
as: rootProps.slots.basePopper,
|
|
19
18
|
open: columns.length > 0 && preferencePanelState.open,
|
|
20
19
|
id: preferencePanelState.panelId,
|
|
21
20
|
"aria-labelledby": preferencePanelState.labelId
|
|
22
|
-
}, rootProps.slotProps?.panel,
|
|
21
|
+
}, rootProps.slotProps?.panel, rootProps.slotProps?.basePopper, {
|
|
23
22
|
children: panelContent
|
|
24
23
|
}));
|
|
25
|
-
}
|
|
24
|
+
}
|
|
@@ -243,18 +243,7 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
|
|
|
243
243
|
applyMultiFilterOperatorChanges(logicOperator);
|
|
244
244
|
}, [applyMultiFilterOperatorChanges]);
|
|
245
245
|
const handleDeleteFilter = () => {
|
|
246
|
-
|
|
247
|
-
if (item.value === undefined) {
|
|
248
|
-
deleteFilter(item);
|
|
249
|
-
} else {
|
|
250
|
-
// TODO v6: simplify the behavior by always remove the filter form
|
|
251
|
-
applyFilterChanges(_extends({}, item, {
|
|
252
|
-
value: undefined
|
|
253
|
-
}));
|
|
254
|
-
}
|
|
255
|
-
} else {
|
|
256
|
-
deleteFilter(item);
|
|
257
|
-
}
|
|
246
|
+
deleteFilter(item);
|
|
258
247
|
};
|
|
259
248
|
React.useImperativeHandle(focusElementRef, () => ({
|
|
260
249
|
focus: () => {
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { AutocompleteProps } from '@mui/material/Autocomplete';
|
|
3
3
|
import { GridFilterInputValueProps } from './GridFilterInputValueProps';
|
|
4
4
|
export type GridFilterInputMultipleValueProps = {
|
|
5
|
-
type?: 'text' | 'number';
|
|
5
|
+
type?: 'text' | 'number' | 'date' | 'datetime-local';
|
|
6
6
|
} & GridFilterInputValueProps & Omit<AutocompleteProps<string, true, false, true>, 'options' | 'renderInput'>;
|
|
7
7
|
declare function GridFilterInputMultipleValue(props: GridFilterInputMultipleValueProps): React.JSX.Element;
|
|
8
8
|
declare namespace GridFilterInputMultipleValue {
|
|
@@ -88,6 +88,6 @@ process.env.NODE_ENV !== "production" ? GridFilterInputMultipleValue.propTypes =
|
|
|
88
88
|
operator: PropTypes.string.isRequired,
|
|
89
89
|
value: PropTypes.any
|
|
90
90
|
}).isRequired,
|
|
91
|
-
type: PropTypes.oneOf(['number', 'text'])
|
|
91
|
+
type: PropTypes.oneOf(['date', 'datetime-local', 'number', 'text'])
|
|
92
92
|
} : void 0;
|
|
93
93
|
export { GridFilterInputMultipleValue };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { EventManager } from '@mui/x-internals/EventManager';
|
|
2
3
|
import { Store } from '../../utils/Store';
|
|
3
4
|
import { useGridApiMethod } from '../utils/useGridApiMethod';
|
|
4
5
|
import { GridSignature } from '../utils/useGridApiEventHandler';
|
|
5
|
-
import { EventManager } from '../../utils/EventManager';
|
|
6
6
|
const SYMBOL_API_PRIVATE = Symbol('mui.api_private');
|
|
7
7
|
const isSyntheticEvent = event => {
|
|
8
8
|
return event.isPropagationStopped !== undefined;
|
|
@@ -82,7 +82,7 @@ export function useGridApiInitialization(inputApiRef, props) {
|
|
|
82
82
|
if (isSyntheticEvent(event) && event.isPropagationStopped()) {
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
85
|
-
const details = props.signature === GridSignature.DataGridPro ? {
|
|
85
|
+
const details = props.signature === GridSignature.DataGridPro || props.signature === GridSignature.DataGridPremium ? {
|
|
86
86
|
api: privateApiRef.current.getPublicApi()
|
|
87
87
|
} : {};
|
|
88
88
|
privateApiRef.current.eventManager.emit(name, params, event, details);
|
|
@@ -267,6 +267,7 @@ export const useGridColumnResize = (apiRef, props) => {
|
|
|
267
267
|
// Check if the current event is part of a double-click
|
|
268
268
|
if (nativeEvent.timeStamp - prevTimeStamp < 300 && nativeEvent.clientX === prevClientX && nativeEvent.clientY === prevClientY) {
|
|
269
269
|
refs.previousMouseClickEvent = undefined;
|
|
270
|
+
apiRef.current.publishEvent('columnResizeStop', null, nativeEvent);
|
|
270
271
|
return;
|
|
271
272
|
}
|
|
272
273
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './gridEditingSelectors';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './gridEditingSelectors';
|
|
@@ -10,11 +10,10 @@ import { GridEditModes, GridCellModes } from '../../../models/gridEditRowModel';
|
|
|
10
10
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
11
11
|
import { gridEditRowsStateSelector } from './gridEditingSelectors';
|
|
12
12
|
import { isPrintableKey, isPasteShortcut } from '../../../utils/keyboardUtils';
|
|
13
|
-
import {
|
|
13
|
+
import { warnOnce } from '../../../internals/utils/warning';
|
|
14
14
|
import { gridRowsDataRowIdToIdLookupSelector } from '../rows/gridRowsSelector';
|
|
15
15
|
import { deepClone } from '../../../utils/utils';
|
|
16
16
|
import { GridCellEditStartReasons, GridCellEditStopReasons } from '../../../models/params/gridEditCellParams';
|
|
17
|
-
const missingOnProcessRowUpdateErrorWarning = buildWarning(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
|
|
18
17
|
export const useGridCellEditing = (apiRef, props) => {
|
|
19
18
|
const [cellModesModel, setCellModesModel] = React.useState({});
|
|
20
19
|
const cellModesModelRef = React.useRef(cellModesModel);
|
|
@@ -336,7 +335,7 @@ export const useGridCellEditing = (apiRef, props) => {
|
|
|
336
335
|
if (onProcessRowUpdateError) {
|
|
337
336
|
onProcessRowUpdateError(errorThrown);
|
|
338
337
|
} else if (process.env.NODE_ENV !== 'production') {
|
|
339
|
-
|
|
338
|
+
warnOnce(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
|
|
340
339
|
}
|
|
341
340
|
};
|
|
342
341
|
try {
|
|
@@ -11,12 +11,11 @@ import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
|
11
11
|
import { gridEditRowsStateSelector } from './gridEditingSelectors';
|
|
12
12
|
import { isPrintableKey, isPasteShortcut } from '../../../utils/keyboardUtils';
|
|
13
13
|
import { gridColumnFieldsSelector, gridVisibleColumnFieldsSelector } from '../columns/gridColumnsSelector';
|
|
14
|
-
import {
|
|
14
|
+
import { warnOnce } from '../../../internals/utils/warning';
|
|
15
15
|
import { gridRowsDataRowIdToIdLookupSelector } from '../rows/gridRowsSelector';
|
|
16
16
|
import { deepClone } from '../../../utils/utils';
|
|
17
17
|
import { GridRowEditStopReasons, GridRowEditStartReasons } from '../../../models/params/gridRowParams';
|
|
18
18
|
import { GRID_ACTIONS_COLUMN_TYPE } from '../../../colDef';
|
|
19
|
-
const missingOnProcessRowUpdateErrorWarning = buildWarning(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
|
|
20
19
|
export const useGridRowEditing = (apiRef, props) => {
|
|
21
20
|
const [rowModesModel, setRowModesModel] = React.useState({});
|
|
22
21
|
const rowModesModelRef = React.useRef(rowModesModel);
|
|
@@ -389,7 +388,7 @@ export const useGridRowEditing = (apiRef, props) => {
|
|
|
389
388
|
if (onProcessRowUpdateError) {
|
|
390
389
|
onProcessRowUpdateError(errorThrown);
|
|
391
390
|
} else if (process.env.NODE_ENV !== 'production') {
|
|
392
|
-
|
|
391
|
+
warnOnce(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
|
|
393
392
|
}
|
|
394
393
|
};
|
|
395
394
|
try {
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { GRID_CHECKBOX_SELECTION_COL_DEF } from '../../../../colDef';
|
|
2
|
-
import {
|
|
2
|
+
import { warnOnce } from '../../../../internals/utils/warning';
|
|
3
3
|
function sanitizeCellValue(value, csvOptions) {
|
|
4
4
|
const valueStr = typeof value === 'string' ? value : `${value}`;
|
|
5
5
|
if (csvOptions.shouldAppendQuotes || csvOptions.escapeFormulas) {
|
|
6
6
|
const escapedValue = valueStr.replace(/"/g, '""');
|
|
7
|
-
// Make sure value containing delimiter or line break won't be split into multiple cells
|
|
8
|
-
if ([csvOptions.delimiter, '\n', '\r', '"'].some(delimiter => valueStr.includes(delimiter))) {
|
|
9
|
-
return `"${escapedValue}"`;
|
|
10
|
-
}
|
|
11
7
|
if (csvOptions.escapeFormulas) {
|
|
12
8
|
// See https://owasp.org/www-community/attacks/CSV_Injection
|
|
13
9
|
if (['=', '+', '-', '@', '\t', '\r'].includes(escapedValue[0])) {
|
|
14
|
-
return `'${escapedValue}`;
|
|
10
|
+
return `"'${escapedValue}"`;
|
|
15
11
|
}
|
|
16
12
|
}
|
|
13
|
+
// Make sure value containing delimiter or line break won't be split into multiple cells
|
|
14
|
+
if ([csvOptions.delimiter, '\n', '\r', '"'].some(delimiter => valueStr.includes(delimiter))) {
|
|
15
|
+
return `"${escapedValue}"`;
|
|
16
|
+
}
|
|
17
17
|
return escapedValue;
|
|
18
18
|
}
|
|
19
19
|
return valueStr;
|
|
@@ -40,7 +40,6 @@ export const serializeCellValue = (cellParams, options) => {
|
|
|
40
40
|
}
|
|
41
41
|
return sanitizeCellValue(value, csvOptions);
|
|
42
42
|
};
|
|
43
|
-
const objectFormattedValueWarning = buildWarning(['MUI X: When the value of a field is an object or a `renderCell` is provided, the CSV export might not display the value correctly.', 'You can provide a `valueFormatter` with a string representation to be used.']);
|
|
44
43
|
class CSVRow {
|
|
45
44
|
constructor(options) {
|
|
46
45
|
this.options = void 0;
|
|
@@ -79,7 +78,7 @@ const serializeRow = ({
|
|
|
79
78
|
const cellParams = getCellParams(id, column.field);
|
|
80
79
|
if (process.env.NODE_ENV !== 'production') {
|
|
81
80
|
if (String(cellParams.formattedValue) === '[object Object]') {
|
|
82
|
-
|
|
81
|
+
warnOnce(['MUI X: When the value of a field is an object or a `renderCell` is provided, the CSV export might not display the value correctly.', 'You can provide a `valueFormatter` with a string representation to be used.']);
|
|
83
82
|
}
|
|
84
83
|
}
|
|
85
84
|
row.addValue(serializeCellValue(cellParams, {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import { GridLogicOperator } from '../../../models';
|
|
3
3
|
import { getDefaultGridFilterModel } from './gridFilterState';
|
|
4
|
-
import {
|
|
4
|
+
import { warnOnce } from '../../../internals/utils/warning';
|
|
5
5
|
import { getPublicApiRef } from '../../../utils/getPublicApiRef';
|
|
6
6
|
import { gridColumnFieldsSelector, gridColumnLookupSelector, gridVisibleColumnFieldsSelector } from '../columns';
|
|
7
7
|
let hasEval;
|
|
@@ -36,25 +36,28 @@ export const cleanFilterItem = (item, apiRef) => {
|
|
|
36
36
|
}
|
|
37
37
|
return cleanItem;
|
|
38
38
|
};
|
|
39
|
-
const filterModelDisableMultiColumnsFilteringWarning = buildWarning(['MUI X: The `filterModel` can only contain a single item when the `disableMultipleColumnsFiltering` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
|
|
40
|
-
const filterModelMissingItemIdWarning = buildWarning('MUI X: The `id` field is required on `filterModel.items` when you use multiple filters.', 'error');
|
|
41
|
-
const filterModelMissingItemOperatorWarning = buildWarning('MUI X: The `operator` field is required on `filterModel.items`, one or more of your filtering item has no `operator` provided.', 'error');
|
|
42
39
|
export const sanitizeFilterModel = (model, disableMultipleColumnsFiltering, apiRef) => {
|
|
43
40
|
const hasSeveralItems = model.items.length > 1;
|
|
44
41
|
let items;
|
|
45
42
|
if (hasSeveralItems && disableMultipleColumnsFiltering) {
|
|
46
|
-
|
|
43
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
44
|
+
warnOnce(['MUI X: The `filterModel` can only contain a single item when the `disableMultipleColumnsFiltering` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
|
|
45
|
+
}
|
|
47
46
|
items = [model.items[0]];
|
|
48
47
|
} else {
|
|
49
48
|
items = model.items;
|
|
50
49
|
}
|
|
51
50
|
const hasItemsWithoutIds = hasSeveralItems && items.some(item => item.id == null);
|
|
52
51
|
const hasItemWithoutOperator = items.some(item => item.operator == null);
|
|
53
|
-
if (
|
|
54
|
-
|
|
52
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
53
|
+
if (hasItemsWithoutIds) {
|
|
54
|
+
warnOnce('MUI X: The `id` field is required on `filterModel.items` when you use multiple filters.', 'error');
|
|
55
|
+
}
|
|
55
56
|
}
|
|
56
|
-
if (
|
|
57
|
-
|
|
57
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
58
|
+
if (hasItemWithoutOperator) {
|
|
59
|
+
warnOnce('MUI X: The `operator` field is required on `filterModel.items`, one or more of your filtering item has no `operator` provided.', 'error');
|
|
60
|
+
}
|
|
58
61
|
}
|
|
59
62
|
if (hasItemWithoutOperator || hasItemsWithoutIds) {
|
|
60
63
|
return _extends({}, model, {
|
package/hooks/features/index.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import {
|
|
3
|
-
const sortModelDisableMultiColumnsSortingWarning = buildWarning(['MUI X: The `sortModel` can only contain a single item when the `disableMultipleColumnsSorting` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
|
|
2
|
+
import { warnOnce } from '../../../internals/utils/warning';
|
|
4
3
|
export const sanitizeSortModel = (model, disableMultipleColumnsSorting) => {
|
|
5
4
|
if (disableMultipleColumnsSorting && model.length > 1) {
|
|
6
5
|
if (process.env.NODE_ENV !== 'production') {
|
|
7
|
-
|
|
6
|
+
warnOnce(['MUI X: The `sortModel` can only contain a single item when the `disableMultipleColumnsSorting` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
|
|
8
7
|
}
|
|
9
8
|
return [model[0]];
|
|
10
9
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { EventListenerOptions } from '@mui/x-internals/EventManager';
|
|
2
3
|
import { GridEventListener, GridEvents } from '../../models/events';
|
|
3
4
|
import { CleanupTracking } from '../../utils/cleanupTracking/CleanupTracking';
|
|
4
|
-
import { EventListenerOptions } from '../../utils/EventManager';
|
|
5
5
|
import type { GridApiCommon } from '../../models';
|
|
6
6
|
/**
|
|
7
7
|
* Signal to the underlying logic what version of the public component API
|
|
@@ -9,7 +9,8 @@ import type { GridApiCommon } from '../../models';
|
|
|
9
9
|
*/
|
|
10
10
|
declare enum GridSignature {
|
|
11
11
|
DataGrid = "DataGrid",
|
|
12
|
-
DataGridPro = "DataGridPro"
|
|
12
|
+
DataGridPro = "DataGridPro",
|
|
13
|
+
DataGridPremium = "DataGridPremium"
|
|
13
14
|
}
|
|
14
15
|
interface RegistryContainer {
|
|
15
16
|
registry: CleanupTracking | null;
|
|
@@ -8,6 +8,7 @@ import { FinalizationRegistryBasedCleanupTracking } from '../../utils/cleanupTra
|
|
|
8
8
|
var GridSignature = /*#__PURE__*/function (GridSignature) {
|
|
9
9
|
GridSignature["DataGrid"] = "DataGrid";
|
|
10
10
|
GridSignature["DataGridPro"] = "DataGridPro";
|
|
11
|
+
GridSignature["DataGridPremium"] = "DataGridPremium";
|
|
11
12
|
return GridSignature;
|
|
12
13
|
}(GridSignature || {});
|
|
13
14
|
// We use class to make it easier to detect in heap snapshots by name
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { useLazyRef } from './useLazyRef';
|
|
3
3
|
import { useOnMount } from './useOnMount';
|
|
4
|
-
import {
|
|
4
|
+
import { warnOnce } from '../../internals/utils/warning';
|
|
5
5
|
import { fastObjectShallowCompare } from '../../utils/fastObjectShallowCompare';
|
|
6
|
-
const stateNotInitializedWarning = buildWarning(['MUI X: `useGridSelector` has been called before the initialization of the state.', 'This hook can only be used inside the context of the grid.']);
|
|
7
6
|
function isOutputSelector(selector) {
|
|
8
7
|
return selector.acceptsApiRef;
|
|
9
8
|
}
|
|
@@ -23,7 +22,7 @@ const createRefs = () => ({
|
|
|
23
22
|
export const useGridSelector = (apiRef, selector, equals = defaultCompare) => {
|
|
24
23
|
if (process.env.NODE_ENV !== 'production') {
|
|
25
24
|
if (!apiRef.current.state) {
|
|
26
|
-
|
|
25
|
+
warnOnce(['MUI X: `useGridSelector` has been called before the initialization of the state.', 'This hook can only be used inside the context of the grid.']);
|
|
27
26
|
}
|
|
28
27
|
}
|
|
29
28
|
const refs = useLazyRef(createRefs);
|
package/index.js
CHANGED
package/internals/index.d.ts
CHANGED
|
@@ -75,7 +75,6 @@ export { findParentElementFromClassName, getActiveElement, isEventTargetInPortal
|
|
|
75
75
|
export { isNavigationKey, isPasteShortcut } from '../utils/keyboardUtils';
|
|
76
76
|
export * from '../utils/utils';
|
|
77
77
|
export * from '../utils/fastMemo';
|
|
78
|
-
export { buildWarning } from '../utils/warning';
|
|
79
78
|
export { exportAs } from '../utils/exportAs';
|
|
80
79
|
export * from '../utils/getPublicApiRef';
|
|
81
80
|
export * from '../utils/cellBorderUtils';
|
package/internals/index.js
CHANGED
|
@@ -60,7 +60,6 @@ export { findParentElementFromClassName, getActiveElement, isEventTargetInPortal
|
|
|
60
60
|
export { isNavigationKey, isPasteShortcut } from '../utils/keyboardUtils';
|
|
61
61
|
export * from '../utils/utils';
|
|
62
62
|
export * from '../utils/fastMemo';
|
|
63
|
-
export { buildWarning } from '../utils/warning';
|
|
64
63
|
export { exportAs } from '../utils/exportAs';
|
|
65
64
|
export * from '../utils/getPublicApiRef';
|
|
66
65
|
export * from '../utils/cellBorderUtils';
|
package/internals/utils/index.js
CHANGED
|
@@ -2,4 +2,3 @@ import { DataGridProcessedProps } from '../../models/props/DataGridProps';
|
|
|
2
2
|
export type PropValidator<TProps> = (props: TProps) => string | undefined;
|
|
3
3
|
export declare const propValidatorsDataGrid: PropValidator<DataGridProcessedProps>[];
|
|
4
4
|
export declare function validateProps<TProps>(props: TProps, validators: PropValidator<TProps>[]): void;
|
|
5
|
-
export declare function clearWarningsCache(): void;
|