@mui/x-date-pickers-pro 8.6.0 → 8.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 +202 -1
- package/DateRangeCalendar/DateRangeCalendar.js +3 -3
- package/DateRangeCalendar/DateRangeCalendar.types.d.ts +1 -1
- package/DateRangePicker/DateRangePicker.js +1 -1
- package/DateRangePickerDay/DateRangePickerDay.js +1 -1
- package/DateTimeRangePicker/DateTimeRangePicker.js +1 -1
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +5 -2
- package/DesktopDateRangePicker/DesktopDateRangePicker.js +1 -1
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +6 -1
- package/DesktopTimeRangePicker/DesktopTimeRangePicker.js +1 -1
- package/MobileDateRangePicker/MobileDateRangePicker.js +1 -1
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +1 -1
- package/MobileTimeRangePicker/MobileTimeRangePicker.js +1 -1
- package/MultiInputDateRangeField/MultiInputDateRangeField.js +1 -1
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +1 -1
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +1 -1
- package/SingleInputDateRangeField/SingleInputDateRangeField.js +1 -1
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +1 -1
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +1 -1
- package/StaticDateRangePicker/StaticDateRangePicker.js +1 -1
- package/TimeRangePicker/TimeRangePicker.js +1 -1
- package/TimeRangePicker/TimeRangePickerTimeWrapper.js +5 -2
- package/esm/DateRangeCalendar/DateRangeCalendar.js +4 -4
- package/esm/DateRangeCalendar/DateRangeCalendar.types.d.ts +1 -1
- package/esm/DateRangePicker/DateRangePicker.js +1 -1
- package/esm/DateRangePickerDay/DateRangePickerDay.js +1 -1
- package/esm/DateTimeRangePicker/DateTimeRangePicker.js +1 -1
- package/esm/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +6 -3
- package/esm/DesktopDateRangePicker/DesktopDateRangePicker.js +1 -1
- package/esm/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +6 -1
- package/esm/DesktopTimeRangePicker/DesktopTimeRangePicker.js +1 -1
- package/esm/MobileDateRangePicker/MobileDateRangePicker.js +1 -1
- package/esm/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +1 -1
- package/esm/MobileTimeRangePicker/MobileTimeRangePicker.js +1 -1
- package/esm/MultiInputDateRangeField/MultiInputDateRangeField.js +1 -1
- package/esm/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +1 -1
- package/esm/MultiInputTimeRangeField/MultiInputTimeRangeField.js +1 -1
- package/esm/SingleInputDateRangeField/SingleInputDateRangeField.js +1 -1
- package/esm/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +1 -1
- package/esm/SingleInputTimeRangeField/SingleInputTimeRangeField.js +1 -1
- package/esm/StaticDateRangePicker/StaticDateRangePicker.js +1 -1
- package/esm/TimeRangePicker/TimeRangePicker.js +1 -1
- package/esm/TimeRangePicker/TimeRangePickerTimeWrapper.js +6 -3
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +2 -0
- package/esm/hooks/useMultiInputRangeField/useTextFieldProps.js +2 -0
- package/esm/index.js +2 -1
- package/esm/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +1 -1
- package/esm/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +1 -1
- package/esm/internals/utils/date-range-manager.d.ts +2 -1
- package/esm/internals/utils/date-range-manager.js +7 -1
- package/esm/internals/utils/valueManagers.js +3 -1
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +1 -0
- package/hooks/useMultiInputRangeField/useTextFieldProps.js +1 -0
- package/index.js +1 -1
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +1 -1
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +1 -1
- package/internals/utils/date-range-manager.d.ts +2 -1
- package/internals/utils/date-range-manager.js +8 -1
- package/internals/utils/valueManagers.js +3 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,207 @@
|
|
|
5
5
|
All notable changes to this project will be documented in this file.
|
|
6
6
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
7
7
|
|
|
8
|
+
## 8.8.0
|
|
9
|
+
|
|
10
|
+
_Jul 11, 2025_
|
|
11
|
+
|
|
12
|
+
We'd like to extend a big thank you to the 13 contributors who made this release possible. Here are some highlights ✨:
|
|
13
|
+
|
|
14
|
+
- 📊 Chart zoom preview can be enabled
|
|
15
|
+
|
|
16
|
+
<img width="758" alt="chart with x-axis preview" src="https://github.com/user-attachments/assets/50ce6f61-16dc-4e9b-a727-ca65d80927d7" />
|
|
17
|
+
|
|
18
|
+
- 🌎 Add Indonesian (id-ID) locale on the Data Grid
|
|
19
|
+
|
|
20
|
+
Special thanks go out to the community members for their valuable contributions:
|
|
21
|
+
@kennarddh
|
|
22
|
+
|
|
23
|
+
The following are all team members who have contributed to this release:
|
|
24
|
+
@alexfauquette, @arminmeh, @bernardobelchior, @cherniavskii, @JCQuintas, @KenanYusuf, @LukasTy, @MBilalShafi, @noraleonte, @prakhargupta1, @rita-codes, @siriwatknp
|
|
25
|
+
|
|
26
|
+
### Data Grid
|
|
27
|
+
|
|
28
|
+
#### `@mui/x-data-grid@8.8.0`
|
|
29
|
+
|
|
30
|
+
- [DataGrid] Fix `useGridSelector` missing subscription in `React.StrictMode` (#18676) @cherniavskii
|
|
31
|
+
- [DataGrid] Fix scrollbar filler `z-index` (#18688) @KenanYusuf
|
|
32
|
+
- [DataGrid] Set correct data source cache chunk size when pagination is disabled (#18636) @arminmeh
|
|
33
|
+
- [l10n] Add Indonesian (id-ID) locale (#18710) @kennarddh
|
|
34
|
+
|
|
35
|
+
#### `@mui/x-data-grid-pro@8.8.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
36
|
+
|
|
37
|
+
Same changes as in `@mui/x-data-grid@8.8.0`, plus:
|
|
38
|
+
|
|
39
|
+
- [DataGridPro] Fix row ordering not auto-scrolling when moving beyond viewport (#18557) @MBilalShafi
|
|
40
|
+
- [DataGridPro] Set correct parent paths when tree is refreshed with data source tree data and row grouping (#18715) @arminmeh
|
|
41
|
+
|
|
42
|
+
#### `@mui/x-data-grid-premium@8.8.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
43
|
+
|
|
44
|
+
Same changes as in `@mui/x-data-grid-pro@8.8.0`.
|
|
45
|
+
|
|
46
|
+
### Date and Time Pickers
|
|
47
|
+
|
|
48
|
+
#### `@mui/x-date-pickers@8.8.0`
|
|
49
|
+
|
|
50
|
+
Internal changes.
|
|
51
|
+
|
|
52
|
+
#### `@mui/x-date-pickers-pro@8.8.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
53
|
+
|
|
54
|
+
Same changes as in `@mui/x-date-pickers@8.8.0`.
|
|
55
|
+
|
|
56
|
+
### Charts
|
|
57
|
+
|
|
58
|
+
#### `@mui/x-charts@8.8.0`
|
|
59
|
+
|
|
60
|
+
- [charts] Add control to the axis highlight (#17900) @alexfauquette
|
|
61
|
+
- [charts] Avoid processing area plot data if area isn't used in series (#18712) @bernardobelchior
|
|
62
|
+
- [charts] Make smarter default domain limit (#18506) @alexfauquette
|
|
63
|
+
|
|
64
|
+
#### `@mui/x-charts-pro@8.8.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
65
|
+
|
|
66
|
+
Same changes as in `@mui/x-charts@8.8.0`, plus:
|
|
67
|
+
|
|
68
|
+
- [charts-pro] Add `funnelDirection` to control pyramid direction (#18568) @JCQuintas
|
|
69
|
+
- [charts-pro] Add `onBeforeExport` callback (#18722) @bernardobelchior
|
|
70
|
+
- [charts-pro] Add chart zoom preview (#18267) @bernardobelchior
|
|
71
|
+
- [charts-pro] Allow customizing scatter preview marker size (#18726) @bernardobelchior
|
|
72
|
+
- [charts-pro] Allow disabling the copy of styles in charts export (#18753) @bernardobelchior
|
|
73
|
+
|
|
74
|
+
### Tree View
|
|
75
|
+
|
|
76
|
+
#### `@mui/x-tree-view@8.8.0`
|
|
77
|
+
|
|
78
|
+
- [tree view] Fix state update that caused scrolling bug when lazy loading and `checkboxSelection` are enabled (#18749) @rita-codes
|
|
79
|
+
|
|
80
|
+
#### `@mui/x-tree-view-pro@8.8.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
81
|
+
|
|
82
|
+
Same changes as in `@mui/x-tree-view@8.8.0`.
|
|
83
|
+
|
|
84
|
+
### Codemod
|
|
85
|
+
|
|
86
|
+
#### `@mui/x-codemod@8.8.0`
|
|
87
|
+
|
|
88
|
+
Internal changes.
|
|
89
|
+
|
|
90
|
+
### Docs
|
|
91
|
+
|
|
92
|
+
- [docs] Add standalone Pyramid chart page to improve SEO (#18527) @prakhargupta1
|
|
93
|
+
- [docs] Add example to customise line interaction (#18539) @alexfauquette
|
|
94
|
+
- [docs] Fix `size` column filtering in files tree demo (#17952) @cherniavskii
|
|
95
|
+
- [docs] Generate `llms.txt` for X and their products (#18595) @siriwatknp
|
|
96
|
+
- [docs] Improve bar chart demos on mobile (#18721) @alexfauquette
|
|
97
|
+
- [docs] Refine charts overview page (#17447) @noraleonte
|
|
98
|
+
|
|
99
|
+
### Miscellaneous
|
|
100
|
+
|
|
101
|
+
- [code-infra] Ensure all `@mui/*` packages are picked by `Material UI` renovate group (#18711) @LukasTy
|
|
102
|
+
- [code-infra] Fix broken CI (#18716) @LukasTy
|
|
103
|
+
- [code-infra] Refactor `prettier` config resolving (#18720) @LukasTy
|
|
104
|
+
- [test] Increase data points in chart benchmarks (#18714) @bernardobelchior
|
|
105
|
+
|
|
106
|
+
## 8.7.0
|
|
107
|
+
|
|
108
|
+
_Jul 4, 2025_
|
|
109
|
+
|
|
110
|
+
We'd like to extend a big thank you to the 15 contributors who made this release possible. Here are some highlights ✨:
|
|
111
|
+
|
|
112
|
+
- 📊 Add `useChartProApiRef` for easier access to the API
|
|
113
|
+
- 📆 Support different start and end `referenceDate` props on range components
|
|
114
|
+
- 📚 Documentation improvements
|
|
115
|
+
- 🐞 Bugfixes
|
|
116
|
+
- 🌎 Improve Greek (el-GR) translations on the Charts
|
|
117
|
+
- 🌎 Improve Danish (da-DK) locale on the Data Grid
|
|
118
|
+
|
|
119
|
+
Special thanks go out to the community members for their valuable contributions:
|
|
120
|
+
@ShahrazH, @vadimkuragkovskiy, @whythecode
|
|
121
|
+
|
|
122
|
+
The following are all team members who have contributed to this release:
|
|
123
|
+
@alexfauquette, @brijeshb42, @mapache-salvaje, @arminmeh, @bernardobelchior, @bharatkashyap, @Janpot, @JCQuintas, @KenanYusuf, @LukasTy, @michelengelen, @rita-codes
|
|
124
|
+
|
|
125
|
+
### Data Grid
|
|
126
|
+
|
|
127
|
+
#### `@mui/x-data-grid@8.7.0`
|
|
128
|
+
|
|
129
|
+
- [DataGrid] Fix column state restore with controlled column visibility model (#18567) @arminmeh
|
|
130
|
+
- [DataGrid] Fix styling virtualized column headers (#18603) @KenanYusuf
|
|
131
|
+
- [l10n] Improve Danish (da-DK) locale (#18537) @ShahrazH
|
|
132
|
+
|
|
133
|
+
#### `@mui/x-data-grid-pro@8.7.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
134
|
+
|
|
135
|
+
Same changes as in `@mui/x-data-grid@8.7.0`.
|
|
136
|
+
|
|
137
|
+
#### `@mui/x-data-grid-premium@8.7.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
138
|
+
|
|
139
|
+
Same changes as in `@mui/x-data-grid-pro@8.7.0`.
|
|
140
|
+
|
|
141
|
+
### Date and Time Pickers
|
|
142
|
+
|
|
143
|
+
#### `@mui/x-date-pickers@8.7.0`
|
|
144
|
+
|
|
145
|
+
- [pickers] Support different `start` and `end` `referenceDate` props on range components (#18549) @LukasTy
|
|
146
|
+
|
|
147
|
+
#### `@mui/x-date-pickers-pro@8.7.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
148
|
+
|
|
149
|
+
Same changes as in `@mui/x-date-pickers@8.7.0`.
|
|
150
|
+
|
|
151
|
+
### Charts
|
|
152
|
+
|
|
153
|
+
#### `@mui/x-charts@8.7.0`
|
|
154
|
+
|
|
155
|
+
- [charts] Export `ChartsReferenceLineProps` (#18598) @bernardobelchior
|
|
156
|
+
- [charts] Extract bar and line plot logic into reusable hooks (#18541) @bernardobelchior
|
|
157
|
+
- [charts] Extract plot logic into separate files for reuse (#18522) @bernardobelchior
|
|
158
|
+
- [charts] Profile charts benchmarks using chromium (#18528) @bernardobelchior
|
|
159
|
+
- [l10n] Add Greek (el-GR) locale to charts (#18548) @whythecode
|
|
160
|
+
|
|
161
|
+
#### `@mui/x-charts-pro@8.7.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
162
|
+
|
|
163
|
+
Same changes as in `@mui/x-charts@8.7.0`, plus:
|
|
164
|
+
|
|
165
|
+
- [charts-pro] Add `useChartProApiRef` for easier refs (#18013) @JCQuintas
|
|
166
|
+
- [charts-pro] Add tests and classes to zoom slider (#18660) @JCQuintas
|
|
167
|
+
- [charts-pro] Fix geometry not handling gestures in specific scenarios (#18651) @JCQuintas
|
|
168
|
+
- [charts-pro] Rename `useChartApiContext` to `useChartProApiContext` (#18565) @JCQuintas
|
|
169
|
+
- [charts-pro] Zoom pointer improvements (#17480) @JCQuintas
|
|
170
|
+
|
|
171
|
+
### Tree View
|
|
172
|
+
|
|
173
|
+
#### `@mui/x-tree-view@8.7.0`
|
|
174
|
+
|
|
175
|
+
Internal changes.
|
|
176
|
+
|
|
177
|
+
#### `@mui/x-tree-view-pro@8.7.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
178
|
+
|
|
179
|
+
Same changes as in `@mui/x-tree-view@8.7.0`, plus:
|
|
180
|
+
|
|
181
|
+
- [tree view pro] Add missing `dataSource` JSDoc (#18650) @LukasTy
|
|
182
|
+
|
|
183
|
+
### Docs
|
|
184
|
+
|
|
185
|
+
- [docs] Add MCP stub (#18204) @bharatkashyap
|
|
186
|
+
- [docs] Fix AI Assistant proxy rewrite prefix (#18661) @arminmeh
|
|
187
|
+
- [docs] Improve test README.MD (#18634) @LukasTy
|
|
188
|
+
- [docs] Provide workaround for pie chart composition (#18600) @alexfauquette
|
|
189
|
+
- [docs][charts] Add donut chart as a special case of a pie chart (#18652) @bernardobelchior
|
|
190
|
+
- [docs][charts] Centralize country and continent data (#18604) @bernardobelchior
|
|
191
|
+
- [docs][data grid] Audit and revise the Pro row docs (#17926) @mapache-salvaje
|
|
192
|
+
- [docs][pickers] Add mention of theme augmentation in relevant migration section (#18608) @LukasTy
|
|
193
|
+
|
|
194
|
+
### Core
|
|
195
|
+
|
|
196
|
+
- [core] Avoid stringifying `document` object (#18657) @vadimkuragkovskiy
|
|
197
|
+
|
|
198
|
+
### Miscellaneous
|
|
199
|
+
|
|
200
|
+
- [code-infra] Bump code-infra version and fix breaking changes (#18653) @brijeshb42
|
|
201
|
+
- [code-infra] Ensure `material-ui/disallow-react-api-in-server-components` ESLint rule is applied (#18570) @LukasTy
|
|
202
|
+
- [code-infra] Migrate to flat eslint config (#18562) @brijeshb42
|
|
203
|
+
- [code-infra] Refactor eslint config (#18643) @LukasTy
|
|
204
|
+
- [infra] Add renovatebot rule for latest infra packages (#18609) @Janpot
|
|
205
|
+
- [infra] Move pushArgos script to code-infra (#18667) @Janpot
|
|
206
|
+
- [infra] Updates release script to fetch latest major version from upstream (#18552) @michelengelen
|
|
207
|
+
- [release] Add missing contributor to changelog (#18561) @bernardobelchior
|
|
208
|
+
|
|
8
209
|
## 8.6.0
|
|
9
210
|
|
|
10
211
|
_Jun 27, 2025_
|
|
@@ -19,7 +220,7 @@ We'd like to extend a big thank you to the 12 contributors who made this release
|
|
|
19
220
|
- 🌎 Improve German (de-DE) locale
|
|
20
221
|
|
|
21
222
|
Special thanks go out to the community members for their valuable contributions:
|
|
22
|
-
@ShahrazH, @vadimka123
|
|
223
|
+
@omalyutin, @ShahrazH, @vadimka123
|
|
23
224
|
|
|
24
225
|
The following are all team members who have contributed to this release:
|
|
25
226
|
@arminmeh, @bernardobelchior, @JCQuintas, @KenanYusuf, @LukasTy, @MBilalShafi, @michelengelen, @noraleonte, @rita-codes, @sai6855
|
|
@@ -37,7 +37,7 @@ var _DateRangePickerDay2 = require("../DateRangePickerDay2");
|
|
|
37
37
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
38
38
|
const _excluded = ["value", "defaultValue", "referenceDate", "onChange", "className", "classes", "disableFuture", "disablePast", "minDate", "maxDate", "shouldDisableDate", "reduceAnimations", "onMonthChange", "rangePosition", "defaultRangePosition", "onRangePositionChange", "calendars", "currentMonthCalendarPosition", "slots", "slotProps", "loading", "renderLoading", "disableHighlightToday", "focusedView", "onFocusedViewChange", "readOnly", "disabled", "showDaysOutsideCurrentMonth", "dayOfWeekFormatter", "disableAutoMonthSwitching", "autoFocus", "fixedWeekNumber", "disableDragEditing", "displayWeekNumber", "timezone", "availableRangePositions", "views", "view", "openTo", "onViewChange"],
|
|
39
39
|
_excluded2 = ["isDragging", "rangeDragDay", "draggingDatePosition"];
|
|
40
|
-
const releaseInfo = "
|
|
40
|
+
const releaseInfo = "MTc1MjE4NDgwMDAwMA==";
|
|
41
41
|
const DateRangeCalendarRoot = (0, _styles.styled)('div', {
|
|
42
42
|
name: 'MuiDateRangeCalendar',
|
|
43
43
|
slot: 'Root'
|
|
@@ -284,7 +284,7 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
284
284
|
onMonthSwitchingAnimationEnd
|
|
285
285
|
} = (0, _internals.useCalendarState)({
|
|
286
286
|
value: value[0] || value[1],
|
|
287
|
-
referenceDate,
|
|
287
|
+
referenceDate: (0, _dateRangeManager.resolveReferenceDate)(referenceDate, rangePosition),
|
|
288
288
|
disableFuture,
|
|
289
289
|
disablePast,
|
|
290
290
|
maxDate,
|
|
@@ -687,7 +687,7 @@ process.env.NODE_ENV !== "production" ? DateRangeCalendar.propTypes = {
|
|
|
687
687
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
688
688
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`.
|
|
689
689
|
*/
|
|
690
|
-
referenceDate: _propTypes.default.object,
|
|
690
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object.isRequired), _propTypes.default.object]),
|
|
691
691
|
/**
|
|
692
692
|
* Component rendered on the "day" view when `props.loading` is true.
|
|
693
693
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -73,7 +73,7 @@ export interface DateRangeCalendarProps extends ExportedDateRangeCalendarProps,
|
|
|
73
73
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
74
74
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`.
|
|
75
75
|
*/
|
|
76
|
-
referenceDate?: PickerValidDate;
|
|
76
|
+
referenceDate?: PickerValidDate | [PickerValidDate, PickerValidDate];
|
|
77
77
|
/**
|
|
78
78
|
* The number of calendars to render.
|
|
79
79
|
* @default 2
|
|
@@ -275,7 +275,7 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
|
|
|
275
275
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
276
276
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
277
277
|
*/
|
|
278
|
-
referenceDate: _propTypes.default.object,
|
|
278
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
279
279
|
/**
|
|
280
280
|
* Component rendered on the "day" view when `props.loading` is true.
|
|
281
281
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -235,7 +235,7 @@ const DateRangePickerDayRaw = /*#__PURE__*/React.forwardRef(function DateRangePi
|
|
|
235
235
|
showDaysOutsideCurrentMonth
|
|
236
236
|
} = props,
|
|
237
237
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
238
|
-
(0, _xLicense.useLicenseVerifier)('x-date-pickers-pro', "
|
|
238
|
+
(0, _xLicense.useLicenseVerifier)('x-date-pickers-pro', "MTc1MjE4NDgwMDAwMA==");
|
|
239
239
|
const adapter = (0, _hooks.usePickerAdapter)();
|
|
240
240
|
const shouldRenderHighlight = isHighlighting && !outsideCurrentMonth;
|
|
241
241
|
const shouldRenderPreview = isPreviewing && !outsideCurrentMonth;
|
|
@@ -320,7 +320,7 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePicker.propTypes = {
|
|
|
320
320
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
321
321
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
322
322
|
*/
|
|
323
|
-
referenceDate: _propTypes.default.object,
|
|
323
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
324
324
|
/**
|
|
325
325
|
* Component rendered on the "day" view when `props.loading` is true.
|
|
326
326
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -11,7 +11,7 @@ var _hooks = require("@mui/x-date-pickers/hooks");
|
|
|
11
11
|
var _dateUtils = require("../internals/utils/date-utils");
|
|
12
12
|
var _dateRangeManager = require("../internals/utils/date-range-manager");
|
|
13
13
|
var _hooks2 = require("../hooks");
|
|
14
|
-
const _excluded = ["viewRenderer", "value", "onChange", "defaultValue", "onViewChange", "views", "className"];
|
|
14
|
+
const _excluded = ["viewRenderer", "value", "onChange", "defaultValue", "onViewChange", "views", "className", "referenceDate"];
|
|
15
15
|
/**
|
|
16
16
|
* @ignore - internal component.
|
|
17
17
|
*/
|
|
@@ -23,7 +23,8 @@ function DateTimeRangePickerTimeWrapper(props) {
|
|
|
23
23
|
onChange,
|
|
24
24
|
defaultValue,
|
|
25
25
|
onViewChange,
|
|
26
|
-
views
|
|
26
|
+
views,
|
|
27
|
+
referenceDate: referenceDateProp
|
|
27
28
|
} = props,
|
|
28
29
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
29
30
|
const {
|
|
@@ -34,6 +35,7 @@ function DateTimeRangePickerTimeWrapper(props) {
|
|
|
34
35
|
}
|
|
35
36
|
const currentValue = (rangePosition === 'start' ? value?.[0] : value?.[1]) ?? null;
|
|
36
37
|
const currentDefaultValue = (rangePosition === 'start' ? defaultValue?.[0] : defaultValue?.[1]) ?? null;
|
|
38
|
+
const referenceDate = (0, _dateRangeManager.resolveReferenceDate)(referenceDateProp, rangePosition);
|
|
37
39
|
const handleOnChange = (newDate, selectionState, selectedView) => {
|
|
38
40
|
if (!onChange || !value) {
|
|
39
41
|
return;
|
|
@@ -50,6 +52,7 @@ function DateTimeRangePickerTimeWrapper(props) {
|
|
|
50
52
|
onChange(newRange, isFullRangeSelected ? 'finish' : 'partial', selectedView);
|
|
51
53
|
};
|
|
52
54
|
return viewRenderer((0, _extends2.default)({}, other, {
|
|
55
|
+
referenceDate,
|
|
53
56
|
views,
|
|
54
57
|
onViewChange,
|
|
55
58
|
value: currentValue,
|
|
@@ -285,7 +285,7 @@ DesktopDateRangePicker.propTypes = {
|
|
|
285
285
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
286
286
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
287
287
|
*/
|
|
288
|
-
referenceDate: _propTypes.default.object,
|
|
288
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
289
289
|
/**
|
|
290
290
|
* Component rendered on the "day" view when `props.loading` is true.
|
|
291
291
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -30,6 +30,7 @@ var _SingleInputDateTimeRangeField = require("../SingleInputDateTimeRangeField")
|
|
|
30
30
|
var _DateTimeRangePickerTimeWrapper = require("../DateTimeRangePicker/DateTimeRangePickerTimeWrapper");
|
|
31
31
|
var _dimensions = require("../internals/constants/dimensions");
|
|
32
32
|
var _hooks2 = require("../hooks");
|
|
33
|
+
var _dateRangeManager = require("../internals/utils/date-range-manager");
|
|
33
34
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
34
35
|
const _excluded = ["openTo"];
|
|
35
36
|
const STEPS = [{
|
|
@@ -63,8 +64,11 @@ const rendererInterceptor = function RendererInterceptor(props) {
|
|
|
63
64
|
}]
|
|
64
65
|
});
|
|
65
66
|
const isTimeViewActive = (0, _internals.isInternalTimeView)(popperView);
|
|
67
|
+
const referenceDate = (0, _dateRangeManager.resolveReferenceDate)(rendererProps.referenceDate, rangePosition);
|
|
66
68
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
67
69
|
children: [viewRenderers.day?.((0, _extends2.default)({}, rendererProps, {
|
|
70
|
+
referenceDate,
|
|
71
|
+
rangePosition,
|
|
68
72
|
availableRangePositions: [rangePosition],
|
|
69
73
|
view: !isTimeViewActive ? popperView : 'day',
|
|
70
74
|
views: rendererProps.views.filter(_internals.isDatePickerView),
|
|
@@ -77,6 +81,7 @@ const rendererInterceptor = function RendererInterceptor(props) {
|
|
|
77
81
|
gridColumn: 2
|
|
78
82
|
}
|
|
79
83
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DateTimeRangePickerTimeWrapper.DateTimeRangePickerTimeWrapper, (0, _extends2.default)({}, finalProps, {
|
|
84
|
+
referenceDate: referenceDate,
|
|
80
85
|
view: isTimeViewActive ? popperView : 'hours',
|
|
81
86
|
views: finalProps.views.filter(_internals.isInternalTimeView),
|
|
82
87
|
openTo: (0, _internals.isInternalTimeView)(openTo) ? openTo : 'hours',
|
|
@@ -410,7 +415,7 @@ DesktopDateTimeRangePicker.propTypes = {
|
|
|
410
415
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
411
416
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
412
417
|
*/
|
|
413
|
-
referenceDate: _propTypes.default.object,
|
|
418
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
414
419
|
/**
|
|
415
420
|
* Component rendered on the "day" view when `props.loading` is true.
|
|
416
421
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -316,7 +316,7 @@ DesktopTimeRangePicker.propTypes = {
|
|
|
316
316
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
317
317
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
318
318
|
*/
|
|
319
|
-
referenceDate: _propTypes.default.object,
|
|
319
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
320
320
|
/**
|
|
321
321
|
* The currently selected sections.
|
|
322
322
|
* This prop accepts four formats:
|
|
@@ -282,7 +282,7 @@ MobileDateRangePicker.propTypes = {
|
|
|
282
282
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
283
283
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
284
284
|
*/
|
|
285
|
-
referenceDate: _propTypes.default.object,
|
|
285
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
286
286
|
/**
|
|
287
287
|
* Component rendered on the "day" view when `props.loading` is true.
|
|
288
288
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -415,7 +415,7 @@ MobileDateTimeRangePicker.propTypes = {
|
|
|
415
415
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
416
416
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
417
417
|
*/
|
|
418
|
-
referenceDate: _propTypes.default.object,
|
|
418
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
419
419
|
/**
|
|
420
420
|
* Component rendered on the "day" view when `props.loading` is true.
|
|
421
421
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -304,7 +304,7 @@ MobileTimeRangePicker.propTypes = {
|
|
|
304
304
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
305
305
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
306
306
|
*/
|
|
307
|
-
referenceDate: _propTypes.default.object,
|
|
307
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
308
308
|
/**
|
|
309
309
|
* The currently selected sections.
|
|
310
310
|
* This prop accepts four formats:
|
|
@@ -134,7 +134,7 @@ MultiInputDateRangeField.propTypes = {
|
|
|
134
134
|
* For example, on time fields it will be used to determine the date to set.
|
|
135
135
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
|
|
136
136
|
*/
|
|
137
|
-
referenceDate: _propTypes.default.object,
|
|
137
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
138
138
|
/**
|
|
139
139
|
* The currently selected sections.
|
|
140
140
|
* This prop accepts four formats:
|
|
@@ -167,7 +167,7 @@ MultiInputDateTimeRangeField.propTypes = {
|
|
|
167
167
|
* For example, on time fields it will be used to determine the date to set.
|
|
168
168
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
|
|
169
169
|
*/
|
|
170
|
-
referenceDate: _propTypes.default.object,
|
|
170
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
171
171
|
/**
|
|
172
172
|
* The currently selected sections.
|
|
173
173
|
* This prop accepts four formats:
|
|
@@ -150,7 +150,7 @@ MultiInputTimeRangeField.propTypes = {
|
|
|
150
150
|
* For example, on time fields it will be used to determine the date to set.
|
|
151
151
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
|
|
152
152
|
*/
|
|
153
|
-
referenceDate: _propTypes.default.object,
|
|
153
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
154
154
|
/**
|
|
155
155
|
* The currently selected sections.
|
|
156
156
|
* This prop accepts four formats:
|
|
@@ -237,7 +237,7 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
|
|
|
237
237
|
* For example, on time fields it will be used to determine the date to set.
|
|
238
238
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
|
|
239
239
|
*/
|
|
240
|
-
referenceDate: _propTypes.default.object,
|
|
240
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
241
241
|
/**
|
|
242
242
|
* If `true`, the label is displayed as required and the `input` element is required.
|
|
243
243
|
* @default false
|
|
@@ -270,7 +270,7 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
|
|
|
270
270
|
* For example, on time fields it will be used to determine the date to set.
|
|
271
271
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
|
|
272
272
|
*/
|
|
273
|
-
referenceDate: _propTypes.default.object,
|
|
273
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
274
274
|
/**
|
|
275
275
|
* If `true`, the label is displayed as required and the `input` element is required.
|
|
276
276
|
* @default false
|
|
@@ -252,7 +252,7 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
|
|
|
252
252
|
* For example, on time fields it will be used to determine the date to set.
|
|
253
253
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
|
|
254
254
|
*/
|
|
255
|
-
referenceDate: _propTypes.default.object,
|
|
255
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
256
256
|
/**
|
|
257
257
|
* If `true`, the label is displayed as required and the `input` element is required.
|
|
258
258
|
* @default false
|
|
@@ -227,7 +227,7 @@ StaticDateRangePicker.propTypes = {
|
|
|
227
227
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
228
228
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
229
229
|
*/
|
|
230
|
-
referenceDate: _propTypes.default.object,
|
|
230
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
231
231
|
/**
|
|
232
232
|
* Component rendered on the "day" view when `props.loading` is true.
|
|
233
233
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -250,7 +250,7 @@ process.env.NODE_ENV !== "production" ? TimeRangePicker.propTypes = {
|
|
|
250
250
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
251
251
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
252
252
|
*/
|
|
253
|
-
referenceDate: _propTypes.default.object,
|
|
253
|
+
referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
|
|
254
254
|
/**
|
|
255
255
|
* The currently selected sections.
|
|
256
256
|
* This prop accepts four formats:
|
|
@@ -11,7 +11,7 @@ var _hooks = require("@mui/x-date-pickers/hooks");
|
|
|
11
11
|
var _dateUtils = require("../internals/utils/date-utils");
|
|
12
12
|
var _dateRangeManager = require("../internals/utils/date-range-manager");
|
|
13
13
|
var _hooks2 = require("../hooks");
|
|
14
|
-
const _excluded = ["viewRenderer", "value", "onChange", "defaultValue", "onViewChange", "views", "className"];
|
|
14
|
+
const _excluded = ["viewRenderer", "value", "onChange", "defaultValue", "onViewChange", "views", "className", "referenceDate"];
|
|
15
15
|
/**
|
|
16
16
|
* @ignore - internal component.
|
|
17
17
|
*/
|
|
@@ -23,7 +23,8 @@ function TimeRangePickerTimeWrapper(props) {
|
|
|
23
23
|
onChange,
|
|
24
24
|
defaultValue,
|
|
25
25
|
onViewChange,
|
|
26
|
-
views
|
|
26
|
+
views,
|
|
27
|
+
referenceDate: referenceDateProp
|
|
27
28
|
} = props,
|
|
28
29
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
29
30
|
const {
|
|
@@ -34,6 +35,7 @@ function TimeRangePickerTimeWrapper(props) {
|
|
|
34
35
|
}
|
|
35
36
|
const currentValue = (rangePosition === 'start' ? value?.[0] : value?.[1]) ?? null;
|
|
36
37
|
const currentDefaultValue = (rangePosition === 'start' ? defaultValue?.[0] : defaultValue?.[1]) ?? null;
|
|
38
|
+
const referenceDate = (0, _dateRangeManager.resolveReferenceDate)(referenceDateProp, rangePosition);
|
|
37
39
|
const handleOnChange = (newDate, selectionState, selectedView) => {
|
|
38
40
|
if (!onChange || !value) {
|
|
39
41
|
return;
|
|
@@ -50,6 +52,7 @@ function TimeRangePickerTimeWrapper(props) {
|
|
|
50
52
|
onChange(newRange, isFullRangeSelected ? 'finish' : 'partial', selectedView);
|
|
51
53
|
};
|
|
52
54
|
return viewRenderer((0, _extends2.default)({}, other, {
|
|
55
|
+
referenceDate,
|
|
53
56
|
views,
|
|
54
57
|
onViewChange,
|
|
55
58
|
value: currentValue,
|
|
@@ -20,7 +20,7 @@ import { warnOnce } from '@mui/x-internals/warning';
|
|
|
20
20
|
import { usePickerAdapter } from '@mui/x-date-pickers/hooks';
|
|
21
21
|
import { dateRangeCalendarClasses, getDateRangeCalendarUtilityClass } from "./dateRangeCalendarClasses.js";
|
|
22
22
|
import { isEndOfRange, isRangeValid, isStartOfRange, isWithinRange } from "../internals/utils/date-utils.js";
|
|
23
|
-
import { calculateRangeChange, calculateRangePreview } from "../internals/utils/date-range-manager.js";
|
|
23
|
+
import { calculateRangeChange, calculateRangePreview, resolveReferenceDate } from "../internals/utils/date-range-manager.js";
|
|
24
24
|
import { DateRangePickerDay, dateRangePickerDayClasses as dayClasses } from "../DateRangePickerDay/index.js";
|
|
25
25
|
import { rangeValueManager } from "../internals/utils/valueManagers.js";
|
|
26
26
|
import { useDragRange } from "./useDragRange.js";
|
|
@@ -30,7 +30,7 @@ import { PickersRangeCalendarHeader } from "../PickersRangeCalendarHeader/index.
|
|
|
30
30
|
import { useNullablePickerRangePositionContext } from "../internals/hooks/useNullablePickerRangePositionContext.js";
|
|
31
31
|
import { dateRangePickerDay2Classes } from "../DateRangePickerDay2/index.js";
|
|
32
32
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
33
|
-
const releaseInfo = "
|
|
33
|
+
const releaseInfo = "MTc1MjE4NDgwMDAwMA==";
|
|
34
34
|
const DateRangeCalendarRoot = styled('div', {
|
|
35
35
|
name: 'MuiDateRangeCalendar',
|
|
36
36
|
slot: 'Root'
|
|
@@ -277,7 +277,7 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
|
|
|
277
277
|
onMonthSwitchingAnimationEnd
|
|
278
278
|
} = useCalendarState({
|
|
279
279
|
value: value[0] || value[1],
|
|
280
|
-
referenceDate,
|
|
280
|
+
referenceDate: resolveReferenceDate(referenceDate, rangePosition),
|
|
281
281
|
disableFuture,
|
|
282
282
|
disablePast,
|
|
283
283
|
maxDate,
|
|
@@ -680,7 +680,7 @@ process.env.NODE_ENV !== "production" ? DateRangeCalendar.propTypes = {
|
|
|
680
680
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
681
681
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`.
|
|
682
682
|
*/
|
|
683
|
-
referenceDate: PropTypes.object,
|
|
683
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object.isRequired), PropTypes.object]),
|
|
684
684
|
/**
|
|
685
685
|
* Component rendered on the "day" view when `props.loading` is true.
|
|
686
686
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -73,7 +73,7 @@ export interface DateRangeCalendarProps extends ExportedDateRangeCalendarProps,
|
|
|
73
73
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
74
74
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`.
|
|
75
75
|
*/
|
|
76
|
-
referenceDate?: PickerValidDate;
|
|
76
|
+
referenceDate?: PickerValidDate | [PickerValidDate, PickerValidDate];
|
|
77
77
|
/**
|
|
78
78
|
* The number of calendars to render.
|
|
79
79
|
* @default 2
|
|
@@ -268,7 +268,7 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
|
|
|
268
268
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
269
269
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
270
270
|
*/
|
|
271
|
-
referenceDate: PropTypes.object,
|
|
271
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
272
272
|
/**
|
|
273
273
|
* Component rendered on the "day" view when `props.loading` is true.
|
|
274
274
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -228,7 +228,7 @@ const DateRangePickerDayRaw = /*#__PURE__*/React.forwardRef(function DateRangePi
|
|
|
228
228
|
showDaysOutsideCurrentMonth
|
|
229
229
|
} = props,
|
|
230
230
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
231
|
-
useLicenseVerifier('x-date-pickers-pro', "
|
|
231
|
+
useLicenseVerifier('x-date-pickers-pro', "MTc1MjE4NDgwMDAwMA==");
|
|
232
232
|
const adapter = usePickerAdapter();
|
|
233
233
|
const shouldRenderHighlight = isHighlighting && !outsideCurrentMonth;
|
|
234
234
|
const shouldRenderPreview = isPreviewing && !outsideCurrentMonth;
|
|
@@ -313,7 +313,7 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePicker.propTypes = {
|
|
|
313
313
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
314
314
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
315
315
|
*/
|
|
316
|
-
referenceDate: PropTypes.object,
|
|
316
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
317
317
|
/**
|
|
318
318
|
* Component rendered on the "day" view when `props.loading` is true.
|
|
319
319
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["viewRenderer", "value", "onChange", "defaultValue", "onViewChange", "views", "className"];
|
|
3
|
+
const _excluded = ["viewRenderer", "value", "onChange", "defaultValue", "onViewChange", "views", "className", "referenceDate"];
|
|
4
4
|
import { usePickerAdapter } from '@mui/x-date-pickers/hooks';
|
|
5
5
|
import { isRangeValid } from "../internals/utils/date-utils.js";
|
|
6
|
-
import { calculateRangeChange } from "../internals/utils/date-range-manager.js";
|
|
6
|
+
import { calculateRangeChange, resolveReferenceDate } from "../internals/utils/date-range-manager.js";
|
|
7
7
|
import { usePickerRangePositionContext } from "../hooks/index.js";
|
|
8
8
|
/**
|
|
9
9
|
* @ignore - internal component.
|
|
@@ -16,7 +16,8 @@ function DateTimeRangePickerTimeWrapper(props) {
|
|
|
16
16
|
onChange,
|
|
17
17
|
defaultValue,
|
|
18
18
|
onViewChange,
|
|
19
|
-
views
|
|
19
|
+
views,
|
|
20
|
+
referenceDate: referenceDateProp
|
|
20
21
|
} = props,
|
|
21
22
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
22
23
|
const {
|
|
@@ -27,6 +28,7 @@ function DateTimeRangePickerTimeWrapper(props) {
|
|
|
27
28
|
}
|
|
28
29
|
const currentValue = (rangePosition === 'start' ? value?.[0] : value?.[1]) ?? null;
|
|
29
30
|
const currentDefaultValue = (rangePosition === 'start' ? defaultValue?.[0] : defaultValue?.[1]) ?? null;
|
|
31
|
+
const referenceDate = resolveReferenceDate(referenceDateProp, rangePosition);
|
|
30
32
|
const handleOnChange = (newDate, selectionState, selectedView) => {
|
|
31
33
|
if (!onChange || !value) {
|
|
32
34
|
return;
|
|
@@ -43,6 +45,7 @@ function DateTimeRangePickerTimeWrapper(props) {
|
|
|
43
45
|
onChange(newRange, isFullRangeSelected ? 'finish' : 'partial', selectedView);
|
|
44
46
|
};
|
|
45
47
|
return viewRenderer(_extends({}, other, {
|
|
48
|
+
referenceDate,
|
|
46
49
|
views,
|
|
47
50
|
onViewChange,
|
|
48
51
|
value: currentValue,
|
|
@@ -278,7 +278,7 @@ DesktopDateRangePicker.propTypes = {
|
|
|
278
278
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
279
279
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
280
280
|
*/
|
|
281
|
-
referenceDate: PropTypes.object,
|
|
281
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
282
282
|
/**
|
|
283
283
|
* Component rendered on the "day" view when `props.loading` is true.
|
|
284
284
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -24,6 +24,7 @@ import { SingleInputDateTimeRangeField } from "../SingleInputDateTimeRangeField/
|
|
|
24
24
|
import { DateTimeRangePickerTimeWrapper } from "../DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js";
|
|
25
25
|
import { RANGE_VIEW_HEIGHT } from "../internals/constants/dimensions.js";
|
|
26
26
|
import { usePickerRangePositionContext } from "../hooks/index.js";
|
|
27
|
+
import { resolveReferenceDate } from "../internals/utils/date-range-manager.js";
|
|
27
28
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
28
29
|
const STEPS = [{
|
|
29
30
|
views: null,
|
|
@@ -56,8 +57,11 @@ const rendererInterceptor = function RendererInterceptor(props) {
|
|
|
56
57
|
}]
|
|
57
58
|
});
|
|
58
59
|
const isTimeViewActive = isInternalTimeView(popperView);
|
|
60
|
+
const referenceDate = resolveReferenceDate(rendererProps.referenceDate, rangePosition);
|
|
59
61
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
60
62
|
children: [viewRenderers.day?.(_extends({}, rendererProps, {
|
|
63
|
+
referenceDate,
|
|
64
|
+
rangePosition,
|
|
61
65
|
availableRangePositions: [rangePosition],
|
|
62
66
|
view: !isTimeViewActive ? popperView : 'day',
|
|
63
67
|
views: rendererProps.views.filter(isDatePickerView),
|
|
@@ -70,6 +74,7 @@ const rendererInterceptor = function RendererInterceptor(props) {
|
|
|
70
74
|
gridColumn: 2
|
|
71
75
|
}
|
|
72
76
|
}), /*#__PURE__*/_jsx(DateTimeRangePickerTimeWrapper, _extends({}, finalProps, {
|
|
77
|
+
referenceDate: referenceDate,
|
|
73
78
|
view: isTimeViewActive ? popperView : 'hours',
|
|
74
79
|
views: finalProps.views.filter(isInternalTimeView),
|
|
75
80
|
openTo: isInternalTimeView(openTo) ? openTo : 'hours',
|
|
@@ -403,7 +408,7 @@ DesktopDateTimeRangePicker.propTypes = {
|
|
|
403
408
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
404
409
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
405
410
|
*/
|
|
406
|
-
referenceDate: PropTypes.object,
|
|
411
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
407
412
|
/**
|
|
408
413
|
* Component rendered on the "day" view when `props.loading` is true.
|
|
409
414
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -309,7 +309,7 @@ DesktopTimeRangePicker.propTypes = {
|
|
|
309
309
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
310
310
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
311
311
|
*/
|
|
312
|
-
referenceDate: PropTypes.object,
|
|
312
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
313
313
|
/**
|
|
314
314
|
* The currently selected sections.
|
|
315
315
|
* This prop accepts four formats:
|
|
@@ -275,7 +275,7 @@ MobileDateRangePicker.propTypes = {
|
|
|
275
275
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
276
276
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
277
277
|
*/
|
|
278
|
-
referenceDate: PropTypes.object,
|
|
278
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
279
279
|
/**
|
|
280
280
|
* Component rendered on the "day" view when `props.loading` is true.
|
|
281
281
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -408,7 +408,7 @@ MobileDateTimeRangePicker.propTypes = {
|
|
|
408
408
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
409
409
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
410
410
|
*/
|
|
411
|
-
referenceDate: PropTypes.object,
|
|
411
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
412
412
|
/**
|
|
413
413
|
* Component rendered on the "day" view when `props.loading` is true.
|
|
414
414
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -297,7 +297,7 @@ MobileTimeRangePicker.propTypes = {
|
|
|
297
297
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
298
298
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
299
299
|
*/
|
|
300
|
-
referenceDate: PropTypes.object,
|
|
300
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
301
301
|
/**
|
|
302
302
|
* The currently selected sections.
|
|
303
303
|
* This prop accepts four formats:
|
|
@@ -130,7 +130,7 @@ MultiInputDateRangeField.propTypes = {
|
|
|
130
130
|
* For example, on time fields it will be used to determine the date to set.
|
|
131
131
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
|
|
132
132
|
*/
|
|
133
|
-
referenceDate: PropTypes.object,
|
|
133
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
134
134
|
/**
|
|
135
135
|
* The currently selected sections.
|
|
136
136
|
* This prop accepts four formats:
|
|
@@ -163,7 +163,7 @@ MultiInputDateTimeRangeField.propTypes = {
|
|
|
163
163
|
* For example, on time fields it will be used to determine the date to set.
|
|
164
164
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
|
|
165
165
|
*/
|
|
166
|
-
referenceDate: PropTypes.object,
|
|
166
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
167
167
|
/**
|
|
168
168
|
* The currently selected sections.
|
|
169
169
|
* This prop accepts four formats:
|
|
@@ -146,7 +146,7 @@ MultiInputTimeRangeField.propTypes = {
|
|
|
146
146
|
* For example, on time fields it will be used to determine the date to set.
|
|
147
147
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
|
|
148
148
|
*/
|
|
149
|
-
referenceDate: PropTypes.object,
|
|
149
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
150
150
|
/**
|
|
151
151
|
* The currently selected sections.
|
|
152
152
|
* This prop accepts four formats:
|
|
@@ -230,7 +230,7 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
|
|
|
230
230
|
* For example, on time fields it will be used to determine the date to set.
|
|
231
231
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
|
|
232
232
|
*/
|
|
233
|
-
referenceDate: PropTypes.object,
|
|
233
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
234
234
|
/**
|
|
235
235
|
* If `true`, the label is displayed as required and the `input` element is required.
|
|
236
236
|
* @default false
|
|
@@ -263,7 +263,7 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
|
|
|
263
263
|
* For example, on time fields it will be used to determine the date to set.
|
|
264
264
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
|
|
265
265
|
*/
|
|
266
|
-
referenceDate: PropTypes.object,
|
|
266
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
267
267
|
/**
|
|
268
268
|
* If `true`, the label is displayed as required and the `input` element is required.
|
|
269
269
|
* @default false
|
|
@@ -245,7 +245,7 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
|
|
|
245
245
|
* For example, on time fields it will be used to determine the date to set.
|
|
246
246
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
|
|
247
247
|
*/
|
|
248
|
-
referenceDate: PropTypes.object,
|
|
248
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
249
249
|
/**
|
|
250
250
|
* If `true`, the label is displayed as required and the `input` element is required.
|
|
251
251
|
* @default false
|
|
@@ -220,7 +220,7 @@ StaticDateRangePicker.propTypes = {
|
|
|
220
220
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
221
221
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
222
222
|
*/
|
|
223
|
-
referenceDate: PropTypes.object,
|
|
223
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
224
224
|
/**
|
|
225
225
|
* Component rendered on the "day" view when `props.loading` is true.
|
|
226
226
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -243,7 +243,7 @@ process.env.NODE_ENV !== "production" ? TimeRangePicker.propTypes = {
|
|
|
243
243
|
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
244
244
|
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
245
245
|
*/
|
|
246
|
-
referenceDate: PropTypes.object,
|
|
246
|
+
referenceDate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
|
|
247
247
|
/**
|
|
248
248
|
* The currently selected sections.
|
|
249
249
|
* This prop accepts four formats:
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["viewRenderer", "value", "onChange", "defaultValue", "onViewChange", "views", "className"];
|
|
3
|
+
const _excluded = ["viewRenderer", "value", "onChange", "defaultValue", "onViewChange", "views", "className", "referenceDate"];
|
|
4
4
|
import { usePickerAdapter } from '@mui/x-date-pickers/hooks';
|
|
5
5
|
import { isRangeValid } from "../internals/utils/date-utils.js";
|
|
6
|
-
import { calculateRangeChange } from "../internals/utils/date-range-manager.js";
|
|
6
|
+
import { calculateRangeChange, resolveReferenceDate } from "../internals/utils/date-range-manager.js";
|
|
7
7
|
import { usePickerRangePositionContext } from "../hooks/index.js";
|
|
8
8
|
/**
|
|
9
9
|
* @ignore - internal component.
|
|
@@ -16,7 +16,8 @@ function TimeRangePickerTimeWrapper(props) {
|
|
|
16
16
|
onChange,
|
|
17
17
|
defaultValue,
|
|
18
18
|
onViewChange,
|
|
19
|
-
views
|
|
19
|
+
views,
|
|
20
|
+
referenceDate: referenceDateProp
|
|
20
21
|
} = props,
|
|
21
22
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
22
23
|
const {
|
|
@@ -27,6 +28,7 @@ function TimeRangePickerTimeWrapper(props) {
|
|
|
27
28
|
}
|
|
28
29
|
const currentValue = (rangePosition === 'start' ? value?.[0] : value?.[1]) ?? null;
|
|
29
30
|
const currentDefaultValue = (rangePosition === 'start' ? defaultValue?.[0] : defaultValue?.[1]) ?? null;
|
|
31
|
+
const referenceDate = resolveReferenceDate(referenceDateProp, rangePosition);
|
|
30
32
|
const handleOnChange = (newDate, selectionState, selectedView) => {
|
|
31
33
|
if (!onChange || !value) {
|
|
32
34
|
return;
|
|
@@ -43,6 +45,7 @@ function TimeRangePickerTimeWrapper(props) {
|
|
|
43
45
|
onChange(newRange, isFullRangeSelected ? 'finish' : 'partial', selectedView);
|
|
44
46
|
};
|
|
45
47
|
return viewRenderer(_extends({}, other, {
|
|
48
|
+
referenceDate,
|
|
46
49
|
views,
|
|
47
50
|
onViewChange,
|
|
48
51
|
value: currentValue,
|
package/esm/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @mui/x-date-pickers-pro v8.
|
|
2
|
+
* @mui/x-date-pickers-pro v8.8.0
|
|
3
3
|
*
|
|
4
4
|
* @license MUI X Commercial
|
|
5
5
|
* This source code is licensed under the commercial license found in the
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
|
+
// eslint-disable-next-line no-restricted-imports
|
|
8
9
|
export * from '@mui/x-date-pickers';
|
|
9
10
|
export * from "./DateRangePickerDay/index.js";
|
|
10
11
|
export * from "./DateRangePickerDay2/index.js";
|
|
@@ -19,7 +19,7 @@ export const useDesktopRangePicker = _ref => {
|
|
|
19
19
|
steps
|
|
20
20
|
} = _ref,
|
|
21
21
|
pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
22
|
-
useLicenseVerifier('x-date-pickers-pro', "
|
|
22
|
+
useLicenseVerifier('x-date-pickers-pro', "MTc1MjE4NDgwMDAwMA==");
|
|
23
23
|
const {
|
|
24
24
|
slots,
|
|
25
25
|
slotProps,
|
|
@@ -21,7 +21,7 @@ export const useMobileRangePicker = _ref => {
|
|
|
21
21
|
steps
|
|
22
22
|
} = _ref,
|
|
23
23
|
pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
24
|
-
useLicenseVerifier('x-date-pickers-pro', "
|
|
24
|
+
useLicenseVerifier('x-date-pickers-pro', "MTc1MjE4NDgwMDAwMA==");
|
|
25
25
|
const {
|
|
26
26
|
slots,
|
|
27
27
|
slotProps: innerSlotProps,
|
|
@@ -13,12 +13,13 @@ interface CalculateRangeChangeOptions {
|
|
|
13
13
|
*/
|
|
14
14
|
allowRangeFlip?: boolean;
|
|
15
15
|
shouldMergeDateAndTime?: boolean;
|
|
16
|
-
referenceDate?: PickerValidDate;
|
|
16
|
+
referenceDate?: PickerValidDate | [PickerValidDate, PickerValidDate];
|
|
17
17
|
}
|
|
18
18
|
interface CalculateRangeChangeResponse {
|
|
19
19
|
nextSelection: RangePosition;
|
|
20
20
|
newRange: PickerRangeValue;
|
|
21
21
|
}
|
|
22
|
+
export declare function resolveReferenceDate(referenceDate: PickerValidDate | [PickerValidDate, PickerValidDate] | undefined, rangePosition: RangePosition): PickerValidDate | undefined;
|
|
22
23
|
export declare function calculateRangeChange({
|
|
23
24
|
adapter,
|
|
24
25
|
range,
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { mergeDateAndTime } from '@mui/x-date-pickers/internals';
|
|
2
|
+
export function resolveReferenceDate(referenceDate, rangePosition) {
|
|
3
|
+
if (Array.isArray(referenceDate)) {
|
|
4
|
+
return rangePosition === 'start' ? referenceDate[0] : referenceDate[1];
|
|
5
|
+
}
|
|
6
|
+
return referenceDate;
|
|
7
|
+
}
|
|
2
8
|
export function calculateRangeChange({
|
|
3
9
|
adapter,
|
|
4
10
|
range,
|
|
@@ -19,7 +25,7 @@ export function calculateRangeChange({
|
|
|
19
25
|
selectedDate = mergeDateAndTime(adapter, selectedDate, end);
|
|
20
26
|
}
|
|
21
27
|
}
|
|
22
|
-
const newSelectedDate = referenceDate && selectedDate && shouldMergeDateAndTime ? mergeDateAndTime(adapter, selectedDate, referenceDate) : selectedDate;
|
|
28
|
+
const newSelectedDate = referenceDate && selectedDate && shouldMergeDateAndTime ? mergeDateAndTime(adapter, selectedDate, resolveReferenceDate(referenceDate, rangePosition)) : selectedDate;
|
|
23
29
|
if (rangePosition === 'start') {
|
|
24
30
|
const truthyResult = allowRangeFlip ? {
|
|
25
31
|
nextSelection: 'start',
|
|
@@ -18,7 +18,9 @@ export const rangeValueManager = {
|
|
|
18
18
|
return value;
|
|
19
19
|
}
|
|
20
20
|
const referenceDate = referenceDateProp ?? getDefaultReferenceDate(params);
|
|
21
|
-
|
|
21
|
+
const startReferenceDate = Array.isArray(referenceDate) ? referenceDate[0] : referenceDate;
|
|
22
|
+
const endReferenceDate = Array.isArray(referenceDate) ? referenceDate[1] : referenceDate;
|
|
23
|
+
return [shouldKeepStartDate ? value[0] : startReferenceDate, shouldKeepEndDate ? value[1] : endReferenceDate];
|
|
22
24
|
},
|
|
23
25
|
cleanValue: (utils, value) => value.map(date => replaceInvalidDateByNull(utils, date)),
|
|
24
26
|
areValuesEqual: (utils, a, b) => areDatesEqual(utils, a[0], b[0]) && areDatesEqual(utils, a[1], b[1]),
|
package/index.js
CHANGED
|
@@ -27,7 +27,7 @@ const useDesktopRangePicker = _ref => {
|
|
|
27
27
|
steps
|
|
28
28
|
} = _ref,
|
|
29
29
|
pickerParams = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
30
|
-
(0, _xLicense.useLicenseVerifier)('x-date-pickers-pro', "
|
|
30
|
+
(0, _xLicense.useLicenseVerifier)('x-date-pickers-pro', "MTc1MjE4NDgwMDAwMA==");
|
|
31
31
|
const {
|
|
32
32
|
slots,
|
|
33
33
|
slotProps,
|
|
@@ -29,7 +29,7 @@ const useMobileRangePicker = _ref => {
|
|
|
29
29
|
steps
|
|
30
30
|
} = _ref,
|
|
31
31
|
pickerParams = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
32
|
-
(0, _xLicense.useLicenseVerifier)('x-date-pickers-pro', "
|
|
32
|
+
(0, _xLicense.useLicenseVerifier)('x-date-pickers-pro', "MTc1MjE4NDgwMDAwMA==");
|
|
33
33
|
const {
|
|
34
34
|
slots,
|
|
35
35
|
slotProps: innerSlotProps,
|
|
@@ -13,12 +13,13 @@ interface CalculateRangeChangeOptions {
|
|
|
13
13
|
*/
|
|
14
14
|
allowRangeFlip?: boolean;
|
|
15
15
|
shouldMergeDateAndTime?: boolean;
|
|
16
|
-
referenceDate?: PickerValidDate;
|
|
16
|
+
referenceDate?: PickerValidDate | [PickerValidDate, PickerValidDate];
|
|
17
17
|
}
|
|
18
18
|
interface CalculateRangeChangeResponse {
|
|
19
19
|
nextSelection: RangePosition;
|
|
20
20
|
newRange: PickerRangeValue;
|
|
21
21
|
}
|
|
22
|
+
export declare function resolveReferenceDate(referenceDate: PickerValidDate | [PickerValidDate, PickerValidDate] | undefined, rangePosition: RangePosition): PickerValidDate | undefined;
|
|
22
23
|
export declare function calculateRangeChange({
|
|
23
24
|
adapter,
|
|
24
25
|
range,
|
|
@@ -5,7 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.calculateRangeChange = calculateRangeChange;
|
|
7
7
|
exports.calculateRangePreview = calculateRangePreview;
|
|
8
|
+
exports.resolveReferenceDate = resolveReferenceDate;
|
|
8
9
|
var _internals = require("@mui/x-date-pickers/internals");
|
|
10
|
+
function resolveReferenceDate(referenceDate, rangePosition) {
|
|
11
|
+
if (Array.isArray(referenceDate)) {
|
|
12
|
+
return rangePosition === 'start' ? referenceDate[0] : referenceDate[1];
|
|
13
|
+
}
|
|
14
|
+
return referenceDate;
|
|
15
|
+
}
|
|
9
16
|
function calculateRangeChange({
|
|
10
17
|
adapter,
|
|
11
18
|
range,
|
|
@@ -26,7 +33,7 @@ function calculateRangeChange({
|
|
|
26
33
|
selectedDate = (0, _internals.mergeDateAndTime)(adapter, selectedDate, end);
|
|
27
34
|
}
|
|
28
35
|
}
|
|
29
|
-
const newSelectedDate = referenceDate && selectedDate && shouldMergeDateAndTime ? (0, _internals.mergeDateAndTime)(adapter, selectedDate, referenceDate) : selectedDate;
|
|
36
|
+
const newSelectedDate = referenceDate && selectedDate && shouldMergeDateAndTime ? (0, _internals.mergeDateAndTime)(adapter, selectedDate, resolveReferenceDate(referenceDate, rangePosition)) : selectedDate;
|
|
30
37
|
if (rangePosition === 'start') {
|
|
31
38
|
const truthyResult = allowRangeFlip ? {
|
|
32
39
|
nextSelection: 'start',
|
|
@@ -25,7 +25,9 @@ const rangeValueManager = exports.rangeValueManager = {
|
|
|
25
25
|
return value;
|
|
26
26
|
}
|
|
27
27
|
const referenceDate = referenceDateProp ?? (0, _internals.getDefaultReferenceDate)(params);
|
|
28
|
-
|
|
28
|
+
const startReferenceDate = Array.isArray(referenceDate) ? referenceDate[0] : referenceDate;
|
|
29
|
+
const endReferenceDate = Array.isArray(referenceDate) ? referenceDate[1] : referenceDate;
|
|
30
|
+
return [shouldKeepStartDate ? value[0] : startReferenceDate, shouldKeepEndDate ? value[1] : endReferenceDate];
|
|
29
31
|
},
|
|
30
32
|
cleanValue: (utils, value) => value.map(date => (0, _internals.replaceInvalidDateByNull)(utils, date)),
|
|
31
33
|
areValuesEqual: (utils, a, b) => (0, _internals.areDatesEqual)(utils, a[0], b[0]) && (0, _internals.areDatesEqual)(utils, a[1], b[1]),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-date-pickers-pro",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.8.0",
|
|
4
4
|
"author": "MUI Team",
|
|
5
5
|
"description": "The Pro plan edition of the MUI X Date and Time Picker components.",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -33,13 +33,13 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@babel/runtime": "^7.27.6",
|
|
36
|
-
"@mui/utils": "^7.
|
|
36
|
+
"@mui/utils": "^7.2.0",
|
|
37
37
|
"clsx": "^2.1.1",
|
|
38
38
|
"prop-types": "^15.8.1",
|
|
39
39
|
"react-transition-group": "^4.4.5",
|
|
40
|
-
"@mui/x-
|
|
41
|
-
"@mui/x-date-pickers": "8.
|
|
42
|
-
"@mui/x-
|
|
40
|
+
"@mui/x-internals": "8.8.0",
|
|
41
|
+
"@mui/x-date-pickers": "8.8.0",
|
|
42
|
+
"@mui/x-license": "8.8.0"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"@emotion/react": "^11.9.0",
|