@mui/x-date-pickers 8.5.3 → 8.6.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 +107 -0
- package/DateCalendar/DateCalendar.js +16 -16
- package/DateCalendar/DayCalendar.js +48 -48
- package/DateCalendar/useCalendarState.js +25 -25
- package/DateCalendar/useIsDateDisabled.js +2 -2
- package/DatePicker/DatePickerToolbar.js +7 -9
- package/DateTimeField/DateTimeField.js +1 -1
- package/DateTimePicker/DateTimePicker.js +1 -1
- package/DateTimePicker/DateTimePickerToolbar.js +12 -13
- package/DateTimePicker/shared.js +3 -3
- package/DesktopDatePicker/DesktopDatePicker.js +3 -3
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +4 -4
- package/DesktopTimePicker/DesktopTimePicker.js +4 -4
- package/DigitalClock/DigitalClock.d.ts +1 -1
- package/DigitalClock/DigitalClock.js +16 -16
- package/LocalizationProvider/LocalizationProvider.d.ts +9 -3
- package/LocalizationProvider/LocalizationProvider.js +28 -19
- package/MobileDatePicker/MobileDatePicker.js +3 -3
- package/MobileDateTimePicker/MobileDateTimePicker.js +4 -4
- package/MobileTimePicker/MobileTimePicker.js +4 -4
- package/MonthCalendar/MonthCalendar.js +19 -18
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +32 -32
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +4 -4
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +7 -7
- package/PickerDay2/PickerDay2.js +3 -3
- package/PickersActionBar/PickersActionBar.d.ts +2 -2
- package/PickersActionBar/PickersActionBar.js +2 -2
- package/PickersCalendarHeader/PickersCalendarHeader.js +7 -8
- package/PickersDay/PickersDay.js +3 -3
- package/PickersDay/usePickerDayOwnerState.js +5 -5
- package/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
- package/StaticTimePicker/StaticTimePicker.js +1 -1
- package/TimeClock/Clock.js +8 -9
- package/TimeClock/ClockNumbers.d.ts +3 -3
- package/TimeClock/ClockNumbers.js +5 -5
- package/TimeClock/TimeClock.js +29 -29
- package/TimeField/TimeField.js +1 -1
- package/TimePicker/TimePicker.js +1 -1
- package/TimePicker/TimePickerToolbar.js +7 -9
- package/TimePicker/shared.js +3 -3
- package/YearCalendar/YearCalendar.js +19 -18
- package/esm/DateCalendar/DateCalendar.js +16 -16
- package/esm/DateCalendar/DayCalendar.js +48 -48
- package/esm/DateCalendar/useCalendarState.js +25 -25
- package/esm/DateCalendar/useIsDateDisabled.js +2 -2
- package/esm/DatePicker/DatePickerToolbar.js +6 -8
- package/esm/DateTimeField/DateTimeField.js +1 -1
- package/esm/DateTimePicker/DateTimePicker.js +1 -1
- package/esm/DateTimePicker/DateTimePickerToolbar.js +11 -12
- package/esm/DateTimePicker/shared.js +3 -3
- package/esm/DesktopDatePicker/DesktopDatePicker.js +3 -3
- package/esm/DesktopDateTimePicker/DesktopDateTimePicker.js +4 -4
- package/esm/DesktopTimePicker/DesktopTimePicker.js +4 -4
- package/esm/DigitalClock/DigitalClock.d.ts +1 -1
- package/esm/DigitalClock/DigitalClock.js +16 -16
- package/esm/LocalizationProvider/LocalizationProvider.d.ts +9 -3
- package/esm/LocalizationProvider/LocalizationProvider.js +27 -18
- package/esm/MobileDatePicker/MobileDatePicker.js +3 -3
- package/esm/MobileDateTimePicker/MobileDateTimePicker.js +4 -4
- package/esm/MobileTimePicker/MobileTimePicker.js +4 -4
- package/esm/MonthCalendar/MonthCalendar.js +20 -19
- package/esm/MultiSectionDigitalClock/MultiSectionDigitalClock.js +32 -32
- package/esm/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +4 -4
- package/esm/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +7 -7
- package/esm/PickerDay2/PickerDay2.js +3 -3
- package/esm/PickersActionBar/PickersActionBar.d.ts +2 -2
- package/esm/PickersActionBar/PickersActionBar.js +2 -2
- package/esm/PickersCalendarHeader/PickersCalendarHeader.js +6 -7
- package/esm/PickersDay/PickersDay.js +3 -3
- package/esm/PickersDay/usePickerDayOwnerState.js +5 -5
- package/esm/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
- package/esm/StaticTimePicker/StaticTimePicker.js +1 -1
- package/esm/TimeClock/Clock.js +7 -8
- package/esm/TimeClock/ClockNumbers.d.ts +3 -3
- package/esm/TimeClock/ClockNumbers.js +5 -5
- package/esm/TimeClock/TimeClock.js +29 -29
- package/esm/TimeField/TimeField.js +1 -1
- package/esm/TimePicker/TimePicker.js +1 -1
- package/esm/TimePicker/TimePickerToolbar.js +6 -8
- package/esm/TimePicker/shared.js +3 -3
- package/esm/YearCalendar/YearCalendar.js +20 -19
- package/esm/hooks/index.d.ts +2 -1
- package/esm/hooks/index.js +2 -1
- package/esm/hooks/useParsedFormat.js +6 -6
- package/esm/hooks/usePickerAdapter.d.ts +7 -0
- package/esm/hooks/usePickerAdapter.js +20 -0
- package/esm/hooks/usePickerTranslations.js +1 -1
- package/esm/index.js +1 -1
- package/esm/internals/components/pickersToolbarClasses.d.ts +1 -1
- package/esm/internals/demo/DemoContainer.d.ts +2 -3
- package/esm/internals/demo/DemoContainer.js +3 -2
- package/esm/internals/hooks/date-helpers-hooks.js +16 -16
- package/esm/internals/hooks/useClockReferenceDate.d.ts +2 -2
- package/esm/internals/hooks/useClockReferenceDate.js +3 -3
- package/esm/internals/hooks/useControlledValue.js +8 -7
- package/esm/internals/hooks/useField/buildSectionsFromFormat.d.ts +1 -1
- package/esm/internals/hooks/useField/buildSectionsFromFormat.js +17 -17
- package/esm/internals/hooks/useField/useField.types.d.ts +2 -2
- package/esm/internals/hooks/useField/useField.utils.d.ts +10 -10
- package/esm/internals/hooks/useField/useField.utils.js +69 -69
- package/esm/internals/hooks/useField/useFieldCharacterEditing.js +11 -11
- package/esm/internals/hooks/useField/useFieldRootHandleKeyDown.js +7 -7
- package/esm/internals/hooks/useField/useFieldSectionContentProps.js +15 -16
- package/esm/internals/hooks/useField/useFieldState.js +22 -24
- package/esm/internals/hooks/usePicker/hooks/useValueAndOpenStates.js +6 -6
- package/esm/internals/hooks/usePicker/usePicker.js +5 -6
- package/esm/internals/hooks/useUtils.d.ts +1 -8
- package/esm/internals/hooks/useUtils.js +3 -19
- package/esm/internals/index.d.ts +2 -1
- package/esm/internals/index.js +2 -1
- package/esm/internals/models/manager.d.ts +14 -14
- package/esm/internals/models/props/time.d.ts +1 -1
- package/esm/internals/utils/date-time-utils.d.ts +1 -1
- package/esm/internals/utils/date-time-utils.js +5 -5
- package/esm/internals/utils/date-utils.d.ts +11 -11
- package/esm/internals/utils/date-utils.js +34 -34
- package/esm/internals/utils/getDefaultReferenceDate.d.ts +2 -2
- package/esm/internals/utils/getDefaultReferenceDate.js +16 -16
- package/esm/internals/utils/time-utils.d.ts +5 -5
- package/esm/internals/utils/time-utils.js +12 -12
- package/esm/internals/utils/valueManagers.js +4 -4
- package/esm/managers/useDateManager.js +12 -12
- package/esm/managers/useDateTimeManager.js +13 -13
- package/esm/managers/useTimeManager.js +9 -10
- package/esm/validation/useValidation.d.ts +2 -3
- package/esm/validation/useValidation.js +2 -2
- package/esm/validation/validateDate.js +6 -6
- package/esm/validation/validateTime.js +6 -6
- package/hooks/index.d.ts +2 -1
- package/hooks/index.js +8 -1
- package/hooks/useParsedFormat.js +6 -6
- package/hooks/usePickerAdapter.d.ts +7 -0
- package/hooks/usePickerAdapter.js +29 -0
- package/hooks/usePickerTranslations.js +2 -2
- package/index.js +1 -1
- package/internals/components/pickersToolbarClasses.d.ts +1 -1
- package/internals/demo/DemoContainer.d.ts +2 -3
- package/internals/demo/DemoContainer.js +3 -2
- package/internals/hooks/date-helpers-hooks.js +16 -16
- package/internals/hooks/useClockReferenceDate.d.ts +2 -2
- package/internals/hooks/useClockReferenceDate.js +3 -3
- package/internals/hooks/useControlledValue.js +7 -7
- package/internals/hooks/useField/buildSectionsFromFormat.d.ts +1 -1
- package/internals/hooks/useField/buildSectionsFromFormat.js +17 -17
- package/internals/hooks/useField/useField.types.d.ts +2 -2
- package/internals/hooks/useField/useField.utils.d.ts +10 -10
- package/internals/hooks/useField/useField.utils.js +69 -69
- package/internals/hooks/useField/useFieldCharacterEditing.js +11 -11
- package/internals/hooks/useField/useFieldRootHandleKeyDown.js +7 -7
- package/internals/hooks/useField/useFieldSectionContentProps.js +14 -15
- package/internals/hooks/useField/useFieldState.js +23 -25
- package/internals/hooks/usePicker/hooks/useValueAndOpenStates.js +6 -6
- package/internals/hooks/usePicker/usePicker.js +5 -6
- package/internals/hooks/useUtils.d.ts +1 -8
- package/internals/hooks/useUtils.js +5 -24
- package/internals/index.d.ts +2 -1
- package/internals/index.js +2 -7
- package/internals/models/manager.d.ts +14 -14
- package/internals/models/props/time.d.ts +1 -1
- package/internals/utils/date-time-utils.d.ts +1 -1
- package/internals/utils/date-time-utils.js +5 -5
- package/internals/utils/date-utils.d.ts +11 -11
- package/internals/utils/date-utils.js +34 -34
- package/internals/utils/getDefaultReferenceDate.d.ts +2 -2
- package/internals/utils/getDefaultReferenceDate.js +16 -16
- package/internals/utils/time-utils.d.ts +5 -5
- package/internals/utils/time-utils.js +12 -12
- package/internals/utils/valueManagers.js +4 -4
- package/managers/useDateManager.js +12 -12
- package/managers/useDateTimeManager.js +13 -13
- package/managers/useTimeManager.js +10 -11
- package/package.json +2 -2
- package/validation/useValidation.d.ts +2 -3
- package/validation/useValidation.js +2 -2
- package/validation/validateDate.js +6 -6
- package/validation/validateTime.js +6 -6
package/TimeClock/TimeClock.js
CHANGED
|
@@ -15,7 +15,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
15
15
|
var _styles = require("@mui/material/styles");
|
|
16
16
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
17
17
|
var _useId = _interopRequireDefault(require("@mui/utils/useId"));
|
|
18
|
-
var
|
|
18
|
+
var _hooks = require("../hooks");
|
|
19
19
|
var _useUtils = require("../internals/hooks/useUtils");
|
|
20
20
|
var _PickersArrowSwitcher = require("../internals/components/PickersArrowSwitcher");
|
|
21
21
|
var _timeUtils = require("../internals/utils/time-utils");
|
|
@@ -67,13 +67,13 @@ const TIME_CLOCK_DEFAULT_VIEWS = ['hours', 'minutes'];
|
|
|
67
67
|
* - [TimeClock API](https://mui.com/x/api/date-pickers/time-clock/)
|
|
68
68
|
*/
|
|
69
69
|
const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProps, ref) {
|
|
70
|
-
const
|
|
70
|
+
const adapter = (0, _hooks.usePickerAdapter)();
|
|
71
71
|
const props = (0, _styles.useThemeProps)({
|
|
72
72
|
props: inProps,
|
|
73
73
|
name: 'MuiTimeClock'
|
|
74
74
|
});
|
|
75
75
|
const {
|
|
76
|
-
ampm =
|
|
76
|
+
ampm = adapter.is12HourCycleInCurrentLocale(),
|
|
77
77
|
ampmInClock = false,
|
|
78
78
|
autoFocus,
|
|
79
79
|
slots,
|
|
@@ -119,11 +119,11 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
119
119
|
const valueOrReferenceDate = (0, _useClockReferenceDate.useClockReferenceDate)({
|
|
120
120
|
value,
|
|
121
121
|
referenceDate: referenceDateProp,
|
|
122
|
-
|
|
122
|
+
adapter,
|
|
123
123
|
props,
|
|
124
124
|
timezone
|
|
125
125
|
});
|
|
126
|
-
const translations = (0,
|
|
126
|
+
const translations = (0, _hooks.usePickerTranslations)();
|
|
127
127
|
const now = (0, _useUtils.useNow)(timezone);
|
|
128
128
|
const selectedId = (0, _useId.default)();
|
|
129
129
|
const {
|
|
@@ -149,7 +149,7 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
149
149
|
handleMeridiemChange
|
|
150
150
|
} = (0, _dateHelpersHooks.useMeridiemMode)(valueOrReferenceDate, ampm, setValueAndGoToNextView);
|
|
151
151
|
const isTimeDisabled = React.useCallback((rawValue, viewType) => {
|
|
152
|
-
const isAfter = (0, _timeUtils.createIsAfterIgnoreDatePart)(disableIgnoringDatePartForTimeValidation,
|
|
152
|
+
const isAfter = (0, _timeUtils.createIsAfterIgnoreDatePart)(disableIgnoringDatePartForTimeValidation, adapter);
|
|
153
153
|
const shouldCheckPastEnd = viewType === 'hours' || viewType === 'minutes' && views.includes('seconds');
|
|
154
154
|
const containsValidTime = ({
|
|
155
155
|
start,
|
|
@@ -176,11 +176,11 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
176
176
|
if (shouldDisableTime) {
|
|
177
177
|
switch (viewType) {
|
|
178
178
|
case 'hours':
|
|
179
|
-
return !shouldDisableTime(
|
|
179
|
+
return !shouldDisableTime(adapter.setHours(valueOrReferenceDate, timeValue), 'hours');
|
|
180
180
|
case 'minutes':
|
|
181
|
-
return !shouldDisableTime(
|
|
181
|
+
return !shouldDisableTime(adapter.setMinutes(valueOrReferenceDate, timeValue), 'minutes');
|
|
182
182
|
case 'seconds':
|
|
183
|
-
return !shouldDisableTime(
|
|
183
|
+
return !shouldDisableTime(adapter.setSeconds(valueOrReferenceDate, timeValue), 'seconds');
|
|
184
184
|
default:
|
|
185
185
|
return false;
|
|
186
186
|
}
|
|
@@ -191,12 +191,12 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
191
191
|
case 'hours':
|
|
192
192
|
{
|
|
193
193
|
const valueWithMeridiem = (0, _timeUtils.convertValueToMeridiem)(rawValue, meridiemMode, ampm);
|
|
194
|
-
const dateWithNewHours =
|
|
195
|
-
if (
|
|
194
|
+
const dateWithNewHours = adapter.setHours(valueOrReferenceDate, valueWithMeridiem);
|
|
195
|
+
if (adapter.getHours(dateWithNewHours) !== valueWithMeridiem) {
|
|
196
196
|
return true;
|
|
197
197
|
}
|
|
198
|
-
const start =
|
|
199
|
-
const end =
|
|
198
|
+
const start = adapter.setSeconds(adapter.setMinutes(dateWithNewHours, 0), 0);
|
|
199
|
+
const end = adapter.setSeconds(adapter.setMinutes(dateWithNewHours, 59), 59);
|
|
200
200
|
return !containsValidTime({
|
|
201
201
|
start,
|
|
202
202
|
end
|
|
@@ -204,9 +204,9 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
204
204
|
}
|
|
205
205
|
case 'minutes':
|
|
206
206
|
{
|
|
207
|
-
const dateWithNewMinutes =
|
|
208
|
-
const start =
|
|
209
|
-
const end =
|
|
207
|
+
const dateWithNewMinutes = adapter.setMinutes(valueOrReferenceDate, rawValue);
|
|
208
|
+
const start = adapter.setSeconds(dateWithNewMinutes, 0);
|
|
209
|
+
const end = adapter.setSeconds(dateWithNewMinutes, 59);
|
|
210
210
|
return !containsValidTime({
|
|
211
211
|
start,
|
|
212
212
|
end
|
|
@@ -214,7 +214,7 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
214
214
|
}
|
|
215
215
|
case 'seconds':
|
|
216
216
|
{
|
|
217
|
-
const dateWithNewSeconds =
|
|
217
|
+
const dateWithNewSeconds = adapter.setSeconds(valueOrReferenceDate, rawValue);
|
|
218
218
|
const start = dateWithNewSeconds;
|
|
219
219
|
const end = dateWithNewSeconds;
|
|
220
220
|
return !containsValidTime({
|
|
@@ -225,16 +225,16 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
225
225
|
default:
|
|
226
226
|
throw new Error('not supported');
|
|
227
227
|
}
|
|
228
|
-
}, [ampm, valueOrReferenceDate, disableIgnoringDatePartForTimeValidation, maxTime, meridiemMode, minTime, minutesStep, shouldDisableTime,
|
|
228
|
+
}, [ampm, valueOrReferenceDate, disableIgnoringDatePartForTimeValidation, maxTime, meridiemMode, minTime, minutesStep, shouldDisableTime, adapter, disableFuture, disablePast, now, views]);
|
|
229
229
|
const viewProps = React.useMemo(() => {
|
|
230
230
|
switch (view) {
|
|
231
231
|
case 'hours':
|
|
232
232
|
{
|
|
233
233
|
const handleHoursChange = (hourValue, isFinish) => {
|
|
234
234
|
const valueWithMeridiem = (0, _timeUtils.convertValueToMeridiem)(hourValue, meridiemMode, ampm);
|
|
235
|
-
setValueAndGoToNextView(
|
|
235
|
+
setValueAndGoToNextView(adapter.setHours(valueOrReferenceDate, valueWithMeridiem), isFinish, 'hours');
|
|
236
236
|
};
|
|
237
|
-
const viewValue =
|
|
237
|
+
const viewValue = adapter.getHours(valueOrReferenceDate);
|
|
238
238
|
let viewRange;
|
|
239
239
|
if (ampm) {
|
|
240
240
|
if (viewValue > 12) {
|
|
@@ -250,7 +250,7 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
250
250
|
viewValue,
|
|
251
251
|
children: (0, _ClockNumbers.getHourNumbers)({
|
|
252
252
|
value,
|
|
253
|
-
|
|
253
|
+
adapter,
|
|
254
254
|
ampm,
|
|
255
255
|
onChange: handleHoursChange,
|
|
256
256
|
getClockNumberText: translations.hoursClockNumberText,
|
|
@@ -262,15 +262,15 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
262
262
|
}
|
|
263
263
|
case 'minutes':
|
|
264
264
|
{
|
|
265
|
-
const minutesValue =
|
|
265
|
+
const minutesValue = adapter.getMinutes(valueOrReferenceDate);
|
|
266
266
|
const handleMinutesChange = (minuteValue, isFinish) => {
|
|
267
|
-
setValueAndGoToNextView(
|
|
267
|
+
setValueAndGoToNextView(adapter.setMinutes(valueOrReferenceDate, minuteValue), isFinish, 'minutes');
|
|
268
268
|
};
|
|
269
269
|
return {
|
|
270
270
|
viewValue: minutesValue,
|
|
271
271
|
onChange: handleMinutesChange,
|
|
272
272
|
children: (0, _ClockNumbers.getMinutesNumbers)({
|
|
273
|
-
|
|
273
|
+
adapter,
|
|
274
274
|
value: minutesValue,
|
|
275
275
|
onChange: handleMinutesChange,
|
|
276
276
|
getClockNumberText: translations.minutesClockNumberText,
|
|
@@ -282,15 +282,15 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
282
282
|
}
|
|
283
283
|
case 'seconds':
|
|
284
284
|
{
|
|
285
|
-
const secondsValue =
|
|
285
|
+
const secondsValue = adapter.getSeconds(valueOrReferenceDate);
|
|
286
286
|
const handleSecondsChange = (secondValue, isFinish) => {
|
|
287
|
-
setValueAndGoToNextView(
|
|
287
|
+
setValueAndGoToNextView(adapter.setSeconds(valueOrReferenceDate, secondValue), isFinish, 'seconds');
|
|
288
288
|
};
|
|
289
289
|
return {
|
|
290
290
|
viewValue: secondsValue,
|
|
291
291
|
onChange: handleSecondsChange,
|
|
292
292
|
children: (0, _ClockNumbers.getMinutesNumbers)({
|
|
293
|
-
|
|
293
|
+
adapter,
|
|
294
294
|
value: secondsValue,
|
|
295
295
|
onChange: handleSecondsChange,
|
|
296
296
|
getClockNumberText: translations.secondsClockNumberText,
|
|
@@ -303,7 +303,7 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
|
|
|
303
303
|
default:
|
|
304
304
|
throw new Error('You must provide the type for ClockView');
|
|
305
305
|
}
|
|
306
|
-
}, [view,
|
|
306
|
+
}, [view, adapter, value, ampm, translations.hoursClockNumberText, translations.minutesClockNumberText, translations.secondsClockNumberText, meridiemMode, setValueAndGoToNextView, valueOrReferenceDate, isTimeDisabled, selectedId, disabled]);
|
|
307
307
|
const classes = useUtilityClasses(classesProp);
|
|
308
308
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(TimeClockRoot, (0, _extends2.default)({
|
|
309
309
|
ref: ref,
|
|
@@ -345,7 +345,7 @@ process.env.NODE_ENV !== "production" ? TimeClock.propTypes = {
|
|
|
345
345
|
// ----------------------------------------------------------------------
|
|
346
346
|
/**
|
|
347
347
|
* 12h/24h view for hour selection clock.
|
|
348
|
-
* @default
|
|
348
|
+
* @default adapter.is12HourCycleInCurrentLocale()
|
|
349
349
|
*/
|
|
350
350
|
ampm: _propTypes.default.bool,
|
|
351
351
|
/**
|
package/TimeField/TimeField.js
CHANGED
|
@@ -58,7 +58,7 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
|
|
|
58
58
|
// ----------------------------------------------------------------------
|
|
59
59
|
/**
|
|
60
60
|
* 12h/24h view for hour selection clock.
|
|
61
|
-
* @default
|
|
61
|
+
* @default adapter.is12HourCycleInCurrentLocale()
|
|
62
62
|
*/
|
|
63
63
|
ampm: _propTypes.default.bool,
|
|
64
64
|
/**
|
package/TimePicker/TimePicker.js
CHANGED
|
@@ -60,7 +60,7 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes = {
|
|
|
60
60
|
// ----------------------------------------------------------------------
|
|
61
61
|
/**
|
|
62
62
|
* 12h/24h view for hour selection clock.
|
|
63
|
-
* @default
|
|
63
|
+
* @default adapter.is12HourCycleInCurrentLocale()
|
|
64
64
|
*/
|
|
65
65
|
ampm: _propTypes.default.bool,
|
|
66
66
|
/**
|
|
@@ -18,12 +18,10 @@ var _PickersToolbarText = require("../internals/components/PickersToolbarText");
|
|
|
18
18
|
var _PickersToolbarButton = require("../internals/components/PickersToolbarButton");
|
|
19
19
|
var _PickersToolbar = require("../internals/components/PickersToolbar");
|
|
20
20
|
var _utils = require("../internals/utils/utils");
|
|
21
|
-
var
|
|
22
|
-
var _useUtils = require("../internals/hooks/useUtils");
|
|
21
|
+
var _hooks = require("../hooks");
|
|
23
22
|
var _dateHelpersHooks = require("../internals/hooks/date-helpers-hooks");
|
|
24
23
|
var _timePickerToolbarClasses = require("./timePickerToolbarClasses");
|
|
25
24
|
var _dateUtils = require("../internals/utils/date-utils");
|
|
26
|
-
var _hooks = require("../hooks");
|
|
27
25
|
var _useToolbarOwnerState = require("../internals/hooks/useToolbarOwnerState");
|
|
28
26
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
29
27
|
const _excluded = ["ampm", "ampmInClock", "className", "classes"];
|
|
@@ -131,8 +129,8 @@ function TimePickerToolbar(inProps) {
|
|
|
131
129
|
classes: classesProp
|
|
132
130
|
} = props,
|
|
133
131
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
134
|
-
const
|
|
135
|
-
const translations = (0,
|
|
132
|
+
const adapter = (0, _hooks.usePickerAdapter)();
|
|
133
|
+
const translations = (0, _hooks.usePickerTranslations)();
|
|
136
134
|
const ownerState = (0, _useToolbarOwnerState.useToolbarOwnerState)();
|
|
137
135
|
const classes = useUtilityClasses(classesProp, ownerState);
|
|
138
136
|
const {
|
|
@@ -152,10 +150,10 @@ function TimePickerToolbar(inProps) {
|
|
|
152
150
|
changeImportance: 'set'
|
|
153
151
|
}));
|
|
154
152
|
const formatSection = format => {
|
|
155
|
-
if (!
|
|
153
|
+
if (!adapter.isValid(value)) {
|
|
156
154
|
return '--';
|
|
157
155
|
}
|
|
158
|
-
return
|
|
156
|
+
return adapter.format(value, format);
|
|
159
157
|
};
|
|
160
158
|
const separator = /*#__PURE__*/(0, _jsxRuntime.jsx)(TimePickerToolbarSeparator, {
|
|
161
159
|
tabIndex: -1,
|
|
@@ -199,7 +197,7 @@ function TimePickerToolbar(inProps) {
|
|
|
199
197
|
variant: "subtitle2",
|
|
200
198
|
selected: meridiemMode === 'am',
|
|
201
199
|
typographyClassName: classes.ampmLabel,
|
|
202
|
-
value: (0, _dateUtils.formatMeridiem)(
|
|
200
|
+
value: (0, _dateUtils.formatMeridiem)(adapter, 'am'),
|
|
203
201
|
onClick: readOnly ? undefined : () => handleMeridiemChange('am'),
|
|
204
202
|
disabled: disabled
|
|
205
203
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersToolbarButton.PickersToolbarButton, {
|
|
@@ -207,7 +205,7 @@ function TimePickerToolbar(inProps) {
|
|
|
207
205
|
variant: "subtitle2",
|
|
208
206
|
selected: meridiemMode === 'pm',
|
|
209
207
|
typographyClassName: classes.ampmLabel,
|
|
210
|
-
value: (0, _dateUtils.formatMeridiem)(
|
|
208
|
+
value: (0, _dateUtils.formatMeridiem)(adapter, 'pm'),
|
|
211
209
|
onClick: readOnly ? undefined : () => handleMeridiemChange('pm'),
|
|
212
210
|
disabled: disabled
|
|
213
211
|
})]
|
package/TimePicker/shared.js
CHANGED
|
@@ -9,18 +9,18 @@ exports.useTimePickerDefaultizedProps = useTimePickerDefaultizedProps;
|
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _styles = require("@mui/material/styles");
|
|
12
|
-
var _useUtils = require("../internals/hooks/useUtils");
|
|
13
12
|
var _TimePickerToolbar = require("./TimePickerToolbar");
|
|
14
13
|
var _views = require("../internals/utils/views");
|
|
15
14
|
var _useTimeManager = require("../managers/useTimeManager");
|
|
15
|
+
var _usePickerAdapter = require("../hooks/usePickerAdapter");
|
|
16
16
|
function useTimePickerDefaultizedProps(props, name) {
|
|
17
|
-
const
|
|
17
|
+
const adapter = (0, _usePickerAdapter.usePickerAdapter)();
|
|
18
18
|
const themeProps = (0, _styles.useThemeProps)({
|
|
19
19
|
props,
|
|
20
20
|
name
|
|
21
21
|
});
|
|
22
22
|
const validationProps = (0, _useTimeManager.useApplyDefaultValuesToTimeValidationProps)(themeProps);
|
|
23
|
-
const ampm = themeProps.ampm ??
|
|
23
|
+
const ampm = themeProps.ampm ?? adapter.is12HourCycleInCurrentLocale();
|
|
24
24
|
const localeText = React.useMemo(() => {
|
|
25
25
|
if (themeProps.localeText?.toolbarTitle == null) {
|
|
26
26
|
return themeProps.localeText;
|
|
@@ -28,6 +28,7 @@ var _useControlledValue = require("../internals/hooks/useControlledValue");
|
|
|
28
28
|
var _dimensions = require("../internals/constants/dimensions");
|
|
29
29
|
var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
|
|
30
30
|
var _useDateManager = require("../managers/useDateManager");
|
|
31
|
+
var _usePickerAdapter = require("../hooks/usePickerAdapter");
|
|
31
32
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
32
33
|
const _excluded = ["autoFocus", "className", "classes", "value", "defaultValue", "referenceDate", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onChange", "readOnly", "shouldDisableYear", "disableHighlightToday", "onYearFocus", "hasFocus", "onFocusedViewChange", "yearsOrder", "yearsPerRow", "timezone", "gridLabelId", "slots", "slotProps"];
|
|
33
34
|
const useUtilityClasses = classes => {
|
|
@@ -140,13 +141,13 @@ const YearCalendar = exports.YearCalendar = /*#__PURE__*/React.forwardRef(functi
|
|
|
140
141
|
});
|
|
141
142
|
const now = (0, _useUtils.useNow)(timezone);
|
|
142
143
|
const isRtl = (0, _RtlProvider.useRtl)();
|
|
143
|
-
const
|
|
144
|
+
const adapter = (0, _usePickerAdapter.usePickerAdapter)();
|
|
144
145
|
const {
|
|
145
146
|
ownerState
|
|
146
147
|
} = (0, _usePickerPrivateContext.usePickerPrivateContext)();
|
|
147
148
|
const referenceDate = React.useMemo(() => _valueManagers.singleItemValueManager.getInitialReferenceValue({
|
|
148
149
|
value,
|
|
149
|
-
|
|
150
|
+
adapter,
|
|
150
151
|
props,
|
|
151
152
|
timezone,
|
|
152
153
|
referenceDate: referenceDateProp,
|
|
@@ -154,14 +155,14 @@ const YearCalendar = exports.YearCalendar = /*#__PURE__*/React.forwardRef(functi
|
|
|
154
155
|
}), [] // eslint-disable-line react-hooks/exhaustive-deps
|
|
155
156
|
);
|
|
156
157
|
const classes = useUtilityClasses(classesProp);
|
|
157
|
-
const todayYear = React.useMemo(() =>
|
|
158
|
+
const todayYear = React.useMemo(() => adapter.getYear(now), [adapter, now]);
|
|
158
159
|
const selectedYear = React.useMemo(() => {
|
|
159
160
|
if (value != null) {
|
|
160
|
-
return
|
|
161
|
+
return adapter.getYear(value);
|
|
161
162
|
}
|
|
162
163
|
return null;
|
|
163
|
-
}, [value,
|
|
164
|
-
const [focusedYear, setFocusedYear] = React.useState(() => selectedYear ||
|
|
164
|
+
}, [value, adapter]);
|
|
165
|
+
const [focusedYear, setFocusedYear] = React.useState(() => selectedYear || adapter.getYear(referenceDate));
|
|
165
166
|
const [internalHasFocus, setInternalHasFocus] = (0, _useControlled.default)({
|
|
166
167
|
name: 'YearCalendar',
|
|
167
168
|
state: 'hasFocus',
|
|
@@ -175,33 +176,33 @@ const YearCalendar = exports.YearCalendar = /*#__PURE__*/React.forwardRef(functi
|
|
|
175
176
|
}
|
|
176
177
|
});
|
|
177
178
|
const isYearDisabled = React.useCallback(dateToValidate => {
|
|
178
|
-
if (disablePast &&
|
|
179
|
+
if (disablePast && adapter.isBeforeYear(dateToValidate, now)) {
|
|
179
180
|
return true;
|
|
180
181
|
}
|
|
181
|
-
if (disableFuture &&
|
|
182
|
+
if (disableFuture && adapter.isAfterYear(dateToValidate, now)) {
|
|
182
183
|
return true;
|
|
183
184
|
}
|
|
184
|
-
if (minDate &&
|
|
185
|
+
if (minDate && adapter.isBeforeYear(dateToValidate, minDate)) {
|
|
185
186
|
return true;
|
|
186
187
|
}
|
|
187
|
-
if (maxDate &&
|
|
188
|
+
if (maxDate && adapter.isAfterYear(dateToValidate, maxDate)) {
|
|
188
189
|
return true;
|
|
189
190
|
}
|
|
190
191
|
if (!shouldDisableYear) {
|
|
191
192
|
return false;
|
|
192
193
|
}
|
|
193
|
-
const yearToValidate =
|
|
194
|
+
const yearToValidate = adapter.startOfYear(dateToValidate);
|
|
194
195
|
return shouldDisableYear(yearToValidate);
|
|
195
|
-
}, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableYear,
|
|
196
|
+
}, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableYear, adapter]);
|
|
196
197
|
const handleYearSelection = (0, _useEventCallback.default)((event, year) => {
|
|
197
198
|
if (readOnly) {
|
|
198
199
|
return;
|
|
199
200
|
}
|
|
200
|
-
const newDate =
|
|
201
|
+
const newDate = adapter.setYear(value ?? referenceDate, year);
|
|
201
202
|
handleValueChange(newDate);
|
|
202
203
|
});
|
|
203
204
|
const focusYear = (0, _useEventCallback.default)(year => {
|
|
204
|
-
if (!isYearDisabled(
|
|
205
|
+
if (!isYearDisabled(adapter.setYear(value ?? referenceDate, year))) {
|
|
205
206
|
setFocusedYear(year);
|
|
206
207
|
changeHasFocus(true);
|
|
207
208
|
onYearFocus?.(year);
|
|
@@ -265,7 +266,7 @@ const YearCalendar = exports.YearCalendar = /*#__PURE__*/React.forwardRef(functi
|
|
|
265
266
|
}
|
|
266
267
|
scrollerRef.current.scrollTop = elementBottom - clientHeight / 2 - offsetHeight / 2;
|
|
267
268
|
}, [autoFocus]);
|
|
268
|
-
const yearRange =
|
|
269
|
+
const yearRange = adapter.getYearRange([minDate, maxDate]);
|
|
269
270
|
if (yearsOrder === 'desc') {
|
|
270
271
|
yearRange.reverse();
|
|
271
272
|
}
|
|
@@ -282,7 +283,7 @@ const YearCalendar = exports.YearCalendar = /*#__PURE__*/React.forwardRef(functi
|
|
|
282
283
|
yearsPerRow: yearsPerRow
|
|
283
284
|
}, other, {
|
|
284
285
|
children: [yearRange.map(year => {
|
|
285
|
-
const yearNumber =
|
|
286
|
+
const yearNumber = adapter.getYear(year);
|
|
286
287
|
const isSelected = yearNumber === selectedYear;
|
|
287
288
|
const isDisabled = disabled || isYearDisabled(year);
|
|
288
289
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_YearCalendarButton.YearCalendarButton, {
|
|
@@ -299,8 +300,8 @@ const YearCalendar = exports.YearCalendar = /*#__PURE__*/React.forwardRef(functi
|
|
|
299
300
|
slots: slots,
|
|
300
301
|
slotProps: slotProps,
|
|
301
302
|
classes: classesProp,
|
|
302
|
-
children:
|
|
303
|
-
},
|
|
303
|
+
children: adapter.format(year, 'year')
|
|
304
|
+
}, adapter.format(year, 'year'));
|
|
304
305
|
}), Array.from({
|
|
305
306
|
length: fillerAmount
|
|
306
307
|
}, (_, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(YearCalendarButtonFiller, {}, index))]
|
|
@@ -12,7 +12,6 @@ import composeClasses from '@mui/utils/composeClasses';
|
|
|
12
12
|
import useId from '@mui/utils/useId';
|
|
13
13
|
import useEventCallback from '@mui/utils/useEventCallback';
|
|
14
14
|
import { useCalendarState } from "./useCalendarState.js";
|
|
15
|
-
import { useUtils } from "../internals/hooks/useUtils.js";
|
|
16
15
|
import { PickersFadeTransitionGroup } from "./PickersFadeTransitionGroup.js";
|
|
17
16
|
import { DayCalendar } from "./DayCalendar.js";
|
|
18
17
|
import { MonthCalendar } from "../MonthCalendar/index.js";
|
|
@@ -28,6 +27,7 @@ import { singleItemValueManager } from "../internals/utils/valueManagers.js";
|
|
|
28
27
|
import { VIEW_HEIGHT } from "../internals/constants/dimensions.js";
|
|
29
28
|
import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
|
|
30
29
|
import { useApplyDefaultValuesToDateValidationProps } from "../managers/useDateManager.js";
|
|
30
|
+
import { usePickerAdapter } from "../hooks/usePickerAdapter.js";
|
|
31
31
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
32
32
|
const useUtilityClasses = classes => {
|
|
33
33
|
const slots = {
|
|
@@ -77,7 +77,7 @@ const DateCalendarViewTransitionContainer = styled(PickersFadeTransitionGroup, {
|
|
|
77
77
|
* - [DateCalendar API](https://mui.com/x/api/date-pickers/date-calendar/)
|
|
78
78
|
*/
|
|
79
79
|
export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(inProps, ref) {
|
|
80
|
-
const
|
|
80
|
+
const adapter = usePickerAdapter();
|
|
81
81
|
const {
|
|
82
82
|
ownerState
|
|
83
83
|
} = usePickerPrivateContext();
|
|
@@ -171,10 +171,10 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
171
171
|
disableFuture,
|
|
172
172
|
timezone,
|
|
173
173
|
getCurrentMonthFromVisibleDate: (visibleDate, prevMonth) => {
|
|
174
|
-
if (
|
|
174
|
+
if (adapter.isSameMonth(visibleDate, prevMonth)) {
|
|
175
175
|
return prevMonth;
|
|
176
176
|
}
|
|
177
|
-
return
|
|
177
|
+
return adapter.startOfMonth(visibleDate);
|
|
178
178
|
}
|
|
179
179
|
});
|
|
180
180
|
|
|
@@ -208,13 +208,13 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
208
208
|
ownerState
|
|
209
209
|
});
|
|
210
210
|
const handleDateMonthChange = useEventCallback(newDate => {
|
|
211
|
-
const startOfMonth =
|
|
212
|
-
const endOfMonth =
|
|
211
|
+
const startOfMonth = adapter.startOfMonth(newDate);
|
|
212
|
+
const endOfMonth = adapter.endOfMonth(newDate);
|
|
213
213
|
const closestEnabledDate = isDateDisabled(newDate) ? findClosestEnabledDate({
|
|
214
|
-
|
|
214
|
+
adapter,
|
|
215
215
|
date: newDate,
|
|
216
|
-
minDate:
|
|
217
|
-
maxDate:
|
|
216
|
+
minDate: adapter.isBefore(minDate, startOfMonth) ? startOfMonth : minDate,
|
|
217
|
+
maxDate: adapter.isAfter(maxDate, endOfMonth) ? endOfMonth : maxDate,
|
|
218
218
|
disablePast,
|
|
219
219
|
disableFuture,
|
|
220
220
|
isDateDisabled,
|
|
@@ -235,13 +235,13 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
235
235
|
}
|
|
236
236
|
});
|
|
237
237
|
const handleDateYearChange = useEventCallback(newDate => {
|
|
238
|
-
const startOfYear =
|
|
239
|
-
const endOfYear =
|
|
238
|
+
const startOfYear = adapter.startOfYear(newDate);
|
|
239
|
+
const endOfYear = adapter.endOfYear(newDate);
|
|
240
240
|
const closestEnabledDate = isDateDisabled(newDate) ? findClosestEnabledDate({
|
|
241
|
-
|
|
241
|
+
adapter,
|
|
242
242
|
date: newDate,
|
|
243
|
-
minDate:
|
|
244
|
-
maxDate:
|
|
243
|
+
minDate: adapter.isBefore(minDate, startOfYear) ? startOfYear : minDate,
|
|
244
|
+
maxDate: adapter.isAfter(maxDate, endOfYear) ? endOfYear : maxDate,
|
|
245
245
|
disablePast,
|
|
246
246
|
disableFuture,
|
|
247
247
|
isDateDisabled,
|
|
@@ -264,12 +264,12 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
264
264
|
const handleSelectedDayChange = useEventCallback(day => {
|
|
265
265
|
if (day) {
|
|
266
266
|
// If there is a date already selected, then we want to keep its time
|
|
267
|
-
return handleValueChange(mergeDateAndTime(
|
|
267
|
+
return handleValueChange(mergeDateAndTime(adapter, day, value ?? referenceDate), 'finish', view);
|
|
268
268
|
}
|
|
269
269
|
return handleValueChange(day, 'finish', view);
|
|
270
270
|
});
|
|
271
271
|
React.useEffect(() => {
|
|
272
|
-
if (
|
|
272
|
+
if (adapter.isValid(value)) {
|
|
273
273
|
setVisibleDate({
|
|
274
274
|
target: value,
|
|
275
275
|
reason: 'controlled-value-change'
|