@mui/x-date-pickers 8.5.2 → 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 +203 -11
- 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/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +1 -0
- package/PickersTextField/PickersInput/pickersInputClasses.d.ts +1 -0
- package/PickersTextField/PickersInputBase/pickersInputBaseClasses.d.ts +2 -0
- package/PickersTextField/PickersInputBase/pickersInputBaseClasses.js +1 -1
- package/PickersTextField/PickersOutlinedInput/pickersOutlinedInputClasses.d.ts +1 -0
- 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/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +1 -0
- package/esm/PickersTextField/PickersInput/pickersInputClasses.d.ts +1 -0
- package/esm/PickersTextField/PickersInputBase/pickersInputBaseClasses.d.ts +2 -0
- package/esm/PickersTextField/PickersInputBase/pickersInputBaseClasses.js +1 -1
- package/esm/PickersTextField/PickersOutlinedInput/pickersOutlinedInputClasses.d.ts +1 -0
- 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
|
@@ -5,12 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.resolveDateFormat = exports.replaceInvalidDateByNull = exports.mergeDateAndTime = exports.isDatePickerView = exports.getWeekdays = exports.getTodayDate = exports.getMonthsInYear = exports.formatMeridiem = exports.findClosestEnabledDate = exports.areDatesEqual = exports.applyDefaultDate = exports.DATE_VIEWS = void 0;
|
|
7
7
|
var _views = require("./views");
|
|
8
|
-
const mergeDateAndTime = (
|
|
8
|
+
const mergeDateAndTime = (adapter, dateParam, timeParam) => {
|
|
9
9
|
let mergedDate = dateParam;
|
|
10
|
-
mergedDate =
|
|
11
|
-
mergedDate =
|
|
12
|
-
mergedDate =
|
|
13
|
-
mergedDate =
|
|
10
|
+
mergedDate = adapter.setHours(mergedDate, adapter.getHours(timeParam));
|
|
11
|
+
mergedDate = adapter.setMinutes(mergedDate, adapter.getMinutes(timeParam));
|
|
12
|
+
mergedDate = adapter.setSeconds(mergedDate, adapter.getSeconds(timeParam));
|
|
13
|
+
mergedDate = adapter.setMilliseconds(mergedDate, adapter.getMilliseconds(timeParam));
|
|
14
14
|
return mergedDate;
|
|
15
15
|
};
|
|
16
16
|
exports.mergeDateAndTime = mergeDateAndTime;
|
|
@@ -21,95 +21,95 @@ const findClosestEnabledDate = ({
|
|
|
21
21
|
maxDate,
|
|
22
22
|
minDate,
|
|
23
23
|
isDateDisabled,
|
|
24
|
-
|
|
24
|
+
adapter,
|
|
25
25
|
timezone
|
|
26
26
|
}) => {
|
|
27
|
-
const today = mergeDateAndTime(
|
|
28
|
-
if (disablePast &&
|
|
27
|
+
const today = mergeDateAndTime(adapter, adapter.date(undefined, timezone), date);
|
|
28
|
+
if (disablePast && adapter.isBefore(minDate, today)) {
|
|
29
29
|
minDate = today;
|
|
30
30
|
}
|
|
31
|
-
if (disableFuture &&
|
|
31
|
+
if (disableFuture && adapter.isAfter(maxDate, today)) {
|
|
32
32
|
maxDate = today;
|
|
33
33
|
}
|
|
34
34
|
let forward = date;
|
|
35
35
|
let backward = date;
|
|
36
|
-
if (
|
|
36
|
+
if (adapter.isBefore(date, minDate)) {
|
|
37
37
|
forward = minDate;
|
|
38
38
|
backward = null;
|
|
39
39
|
}
|
|
40
|
-
if (
|
|
40
|
+
if (adapter.isAfter(date, maxDate)) {
|
|
41
41
|
if (backward) {
|
|
42
42
|
backward = maxDate;
|
|
43
43
|
}
|
|
44
44
|
forward = null;
|
|
45
45
|
}
|
|
46
46
|
while (forward || backward) {
|
|
47
|
-
if (forward &&
|
|
47
|
+
if (forward && adapter.isAfter(forward, maxDate)) {
|
|
48
48
|
forward = null;
|
|
49
49
|
}
|
|
50
|
-
if (backward &&
|
|
50
|
+
if (backward && adapter.isBefore(backward, minDate)) {
|
|
51
51
|
backward = null;
|
|
52
52
|
}
|
|
53
53
|
if (forward) {
|
|
54
54
|
if (!isDateDisabled(forward)) {
|
|
55
55
|
return forward;
|
|
56
56
|
}
|
|
57
|
-
forward =
|
|
57
|
+
forward = adapter.addDays(forward, 1);
|
|
58
58
|
}
|
|
59
59
|
if (backward) {
|
|
60
60
|
if (!isDateDisabled(backward)) {
|
|
61
61
|
return backward;
|
|
62
62
|
}
|
|
63
|
-
backward =
|
|
63
|
+
backward = adapter.addDays(backward, -1);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
return null;
|
|
67
67
|
};
|
|
68
68
|
exports.findClosestEnabledDate = findClosestEnabledDate;
|
|
69
|
-
const replaceInvalidDateByNull = (
|
|
69
|
+
const replaceInvalidDateByNull = (adapter, value) => !adapter.isValid(value) ? null : value;
|
|
70
70
|
exports.replaceInvalidDateByNull = replaceInvalidDateByNull;
|
|
71
|
-
const applyDefaultDate = (
|
|
72
|
-
if (value == null || !
|
|
71
|
+
const applyDefaultDate = (adapter, value, defaultValue) => {
|
|
72
|
+
if (value == null || !adapter.isValid(value)) {
|
|
73
73
|
return defaultValue;
|
|
74
74
|
}
|
|
75
75
|
return value;
|
|
76
76
|
};
|
|
77
77
|
exports.applyDefaultDate = applyDefaultDate;
|
|
78
|
-
const areDatesEqual = (
|
|
79
|
-
if (!
|
|
78
|
+
const areDatesEqual = (adapter, a, b) => {
|
|
79
|
+
if (!adapter.isValid(a) && a != null && !adapter.isValid(b) && b != null) {
|
|
80
80
|
return true;
|
|
81
81
|
}
|
|
82
|
-
return
|
|
82
|
+
return adapter.isEqual(a, b);
|
|
83
83
|
};
|
|
84
84
|
exports.areDatesEqual = areDatesEqual;
|
|
85
|
-
const getMonthsInYear = (
|
|
86
|
-
const firstMonth =
|
|
85
|
+
const getMonthsInYear = (adapter, year) => {
|
|
86
|
+
const firstMonth = adapter.startOfYear(year);
|
|
87
87
|
const months = [firstMonth];
|
|
88
88
|
while (months.length < 12) {
|
|
89
89
|
const prevMonth = months[months.length - 1];
|
|
90
|
-
months.push(
|
|
90
|
+
months.push(adapter.addMonths(prevMonth, 1));
|
|
91
91
|
}
|
|
92
92
|
return months;
|
|
93
93
|
};
|
|
94
94
|
exports.getMonthsInYear = getMonthsInYear;
|
|
95
|
-
const getTodayDate = (
|
|
95
|
+
const getTodayDate = (adapter, timezone, valueType) => valueType === 'date' ? adapter.startOfDay(adapter.date(undefined, timezone)) : adapter.date(undefined, timezone);
|
|
96
96
|
exports.getTodayDate = getTodayDate;
|
|
97
|
-
const formatMeridiem = (
|
|
98
|
-
const date =
|
|
99
|
-
return
|
|
97
|
+
const formatMeridiem = (adapter, meridiem) => {
|
|
98
|
+
const date = adapter.setHours(adapter.date(), meridiem === 'am' ? 2 : 14);
|
|
99
|
+
return adapter.format(date, 'meridiem');
|
|
100
100
|
};
|
|
101
101
|
exports.formatMeridiem = formatMeridiem;
|
|
102
102
|
const DATE_VIEWS = exports.DATE_VIEWS = ['year', 'month', 'day'];
|
|
103
103
|
const isDatePickerView = view => DATE_VIEWS.includes(view);
|
|
104
104
|
exports.isDatePickerView = isDatePickerView;
|
|
105
|
-
const resolveDateFormat = (
|
|
105
|
+
const resolveDateFormat = (adapter, {
|
|
106
106
|
format,
|
|
107
107
|
views
|
|
108
108
|
}, isInToolbar) => {
|
|
109
109
|
if (format != null) {
|
|
110
110
|
return format;
|
|
111
111
|
}
|
|
112
|
-
const formats =
|
|
112
|
+
const formats = adapter.formats;
|
|
113
113
|
if ((0, _views.areViewsEqual)(views, ['year'])) {
|
|
114
114
|
return formats.year;
|
|
115
115
|
}
|
|
@@ -129,13 +129,13 @@ const resolveDateFormat = (utils, {
|
|
|
129
129
|
// Little localization hack (Google is doing the same for android native pickers):
|
|
130
130
|
// For english localization it is convenient to include weekday into the date "Mon, Jun 1".
|
|
131
131
|
// For other locales using strings like "June 1", without weekday.
|
|
132
|
-
return /en/.test(
|
|
132
|
+
return /en/.test(adapter.getCurrentLocaleCode()) ? formats.normalDateWithWeekday : formats.normalDate;
|
|
133
133
|
}
|
|
134
134
|
return formats.keyboardDate;
|
|
135
135
|
};
|
|
136
136
|
exports.resolveDateFormat = resolveDateFormat;
|
|
137
|
-
const getWeekdays = (
|
|
138
|
-
const start =
|
|
139
|
-
return [0, 1, 2, 3, 4, 5, 6].map(diff =>
|
|
137
|
+
const getWeekdays = (adapter, date) => {
|
|
138
|
+
const start = adapter.startOfWeek(date);
|
|
139
|
+
return [0, 1, 2, 3, 4, 5, 6].map(diff => adapter.addDays(start, diff));
|
|
140
140
|
};
|
|
141
141
|
exports.getWeekdays = getWeekdays;
|
|
@@ -18,13 +18,13 @@ export declare const SECTION_TYPE_GRANULARITY: {
|
|
|
18
18
|
export declare const getSectionTypeGranularity: (sections: FieldSection[]) => number;
|
|
19
19
|
export declare const getDefaultReferenceDate: ({
|
|
20
20
|
props,
|
|
21
|
-
|
|
21
|
+
adapter,
|
|
22
22
|
granularity,
|
|
23
23
|
timezone,
|
|
24
24
|
getTodayDate: inGetTodayDate
|
|
25
25
|
}: {
|
|
26
26
|
props: GetDefaultReferenceDateProps;
|
|
27
|
-
|
|
27
|
+
adapter: MuiPickersAdapter;
|
|
28
28
|
granularity: number;
|
|
29
29
|
timezone: PickersTimezone;
|
|
30
30
|
getTodayDate?: () => PickerValidDate;
|
|
@@ -17,50 +17,50 @@ const SECTION_TYPE_GRANULARITY = exports.SECTION_TYPE_GRANULARITY = {
|
|
|
17
17
|
};
|
|
18
18
|
const getSectionTypeGranularity = sections => Math.max(...sections.map(section => SECTION_TYPE_GRANULARITY[section.type] ?? 1));
|
|
19
19
|
exports.getSectionTypeGranularity = getSectionTypeGranularity;
|
|
20
|
-
const roundDate = (
|
|
20
|
+
const roundDate = (adapter, granularity, date) => {
|
|
21
21
|
if (granularity === SECTION_TYPE_GRANULARITY.year) {
|
|
22
|
-
return
|
|
22
|
+
return adapter.startOfYear(date);
|
|
23
23
|
}
|
|
24
24
|
if (granularity === SECTION_TYPE_GRANULARITY.month) {
|
|
25
|
-
return
|
|
25
|
+
return adapter.startOfMonth(date);
|
|
26
26
|
}
|
|
27
27
|
if (granularity === SECTION_TYPE_GRANULARITY.day) {
|
|
28
|
-
return
|
|
28
|
+
return adapter.startOfDay(date);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
// We don't have startOfHour / startOfMinute / startOfSecond
|
|
32
32
|
let roundedDate = date;
|
|
33
33
|
if (granularity < SECTION_TYPE_GRANULARITY.minutes) {
|
|
34
|
-
roundedDate =
|
|
34
|
+
roundedDate = adapter.setMinutes(roundedDate, 0);
|
|
35
35
|
}
|
|
36
36
|
if (granularity < SECTION_TYPE_GRANULARITY.seconds) {
|
|
37
|
-
roundedDate =
|
|
37
|
+
roundedDate = adapter.setSeconds(roundedDate, 0);
|
|
38
38
|
}
|
|
39
39
|
if (granularity < SECTION_TYPE_GRANULARITY.milliseconds) {
|
|
40
|
-
roundedDate =
|
|
40
|
+
roundedDate = adapter.setMilliseconds(roundedDate, 0);
|
|
41
41
|
}
|
|
42
42
|
return roundedDate;
|
|
43
43
|
};
|
|
44
44
|
const getDefaultReferenceDate = ({
|
|
45
45
|
props,
|
|
46
|
-
|
|
46
|
+
adapter,
|
|
47
47
|
granularity,
|
|
48
48
|
timezone,
|
|
49
49
|
getTodayDate: inGetTodayDate
|
|
50
50
|
}) => {
|
|
51
|
-
let referenceDate = inGetTodayDate ? inGetTodayDate() : roundDate(
|
|
52
|
-
if (props.minDate != null &&
|
|
53
|
-
referenceDate = roundDate(
|
|
51
|
+
let referenceDate = inGetTodayDate ? inGetTodayDate() : roundDate(adapter, granularity, (0, _dateUtils.getTodayDate)(adapter, timezone));
|
|
52
|
+
if (props.minDate != null && adapter.isAfterDay(props.minDate, referenceDate)) {
|
|
53
|
+
referenceDate = roundDate(adapter, granularity, props.minDate);
|
|
54
54
|
}
|
|
55
|
-
if (props.maxDate != null &&
|
|
56
|
-
referenceDate = roundDate(
|
|
55
|
+
if (props.maxDate != null && adapter.isBeforeDay(props.maxDate, referenceDate)) {
|
|
56
|
+
referenceDate = roundDate(adapter, granularity, props.maxDate);
|
|
57
57
|
}
|
|
58
|
-
const isAfter = (0, _timeUtils.createIsAfterIgnoreDatePart)(props.disableIgnoringDatePartForTimeValidation ?? false,
|
|
58
|
+
const isAfter = (0, _timeUtils.createIsAfterIgnoreDatePart)(props.disableIgnoringDatePartForTimeValidation ?? false, adapter);
|
|
59
59
|
if (props.minTime != null && isAfter(props.minTime, referenceDate)) {
|
|
60
|
-
referenceDate = roundDate(
|
|
60
|
+
referenceDate = roundDate(adapter, granularity, props.disableIgnoringDatePartForTimeValidation ? props.minTime : (0, _dateUtils.mergeDateAndTime)(adapter, referenceDate, props.minTime));
|
|
61
61
|
}
|
|
62
62
|
if (props.maxTime != null && isAfter(referenceDate, props.maxTime)) {
|
|
63
|
-
referenceDate = roundDate(
|
|
63
|
+
referenceDate = roundDate(adapter, granularity, props.disableIgnoringDatePartForTimeValidation ? props.maxTime : (0, _dateUtils.mergeDateAndTime)(adapter, referenceDate, props.maxTime));
|
|
64
64
|
}
|
|
65
65
|
return referenceDate;
|
|
66
66
|
};
|
|
@@ -5,12 +5,12 @@ export declare const TIME_VIEWS: readonly ["hours", "minutes", "seconds", "merid
|
|
|
5
5
|
export declare const isTimeView: (view: DateOrTimeViewWithMeridiem) => boolean;
|
|
6
6
|
export declare const isInternalTimeView: (view: DateOrTimeViewWithMeridiem) => view is TimeViewWithMeridiem;
|
|
7
7
|
export type Meridiem = 'am' | 'pm';
|
|
8
|
-
export declare const getMeridiem: (date: PickerValidDate | null,
|
|
8
|
+
export declare const getMeridiem: (date: PickerValidDate | null, adapter: MuiPickersAdapter) => Meridiem | null;
|
|
9
9
|
export declare const convertValueToMeridiem: (value: number, meridiem: Meridiem | null, ampm: boolean) => number;
|
|
10
|
-
export declare const convertToMeridiem: (time: PickerValidDate, meridiem: Meridiem, ampm: boolean,
|
|
11
|
-
export declare const getSecondsInDay: (date: PickerValidDate,
|
|
12
|
-
export declare const createIsAfterIgnoreDatePart: (disableIgnoringDatePartForTimeValidation: boolean,
|
|
13
|
-
export declare const resolveTimeFormat: (
|
|
10
|
+
export declare const convertToMeridiem: (time: PickerValidDate, meridiem: Meridiem, ampm: boolean, adapter: MuiPickersAdapter) => PickerValidDate;
|
|
11
|
+
export declare const getSecondsInDay: (date: PickerValidDate, adapter: MuiPickersAdapter) => number;
|
|
12
|
+
export declare const createIsAfterIgnoreDatePart: (disableIgnoringDatePartForTimeValidation: boolean, adapter: MuiPickersAdapter) => (dateLeft: PickerValidDate, dateRight: PickerValidDate) => boolean;
|
|
13
|
+
export declare const resolveTimeFormat: (adapter: MuiPickersAdapter, {
|
|
14
14
|
format,
|
|
15
15
|
views,
|
|
16
16
|
ampm
|
|
@@ -11,11 +11,11 @@ const isTimeView = view => EXPORTED_TIME_VIEWS.includes(view);
|
|
|
11
11
|
exports.isTimeView = isTimeView;
|
|
12
12
|
const isInternalTimeView = view => TIME_VIEWS.includes(view);
|
|
13
13
|
exports.isInternalTimeView = isInternalTimeView;
|
|
14
|
-
const getMeridiem = (date,
|
|
14
|
+
const getMeridiem = (date, adapter) => {
|
|
15
15
|
if (!date) {
|
|
16
16
|
return null;
|
|
17
17
|
}
|
|
18
|
-
return
|
|
18
|
+
return adapter.getHours(date) >= 12 ? 'pm' : 'am';
|
|
19
19
|
};
|
|
20
20
|
exports.getMeridiem = getMeridiem;
|
|
21
21
|
const convertValueToMeridiem = (value, meridiem, ampm) => {
|
|
@@ -28,23 +28,23 @@ const convertValueToMeridiem = (value, meridiem, ampm) => {
|
|
|
28
28
|
return value;
|
|
29
29
|
};
|
|
30
30
|
exports.convertValueToMeridiem = convertValueToMeridiem;
|
|
31
|
-
const convertToMeridiem = (time, meridiem, ampm,
|
|
32
|
-
const newHoursAmount = convertValueToMeridiem(
|
|
33
|
-
return
|
|
31
|
+
const convertToMeridiem = (time, meridiem, ampm, adapter) => {
|
|
32
|
+
const newHoursAmount = convertValueToMeridiem(adapter.getHours(time), meridiem, ampm);
|
|
33
|
+
return adapter.setHours(time, newHoursAmount);
|
|
34
34
|
};
|
|
35
35
|
exports.convertToMeridiem = convertToMeridiem;
|
|
36
|
-
const getSecondsInDay = (date,
|
|
37
|
-
return
|
|
36
|
+
const getSecondsInDay = (date, adapter) => {
|
|
37
|
+
return adapter.getHours(date) * 3600 + adapter.getMinutes(date) * 60 + adapter.getSeconds(date);
|
|
38
38
|
};
|
|
39
39
|
exports.getSecondsInDay = getSecondsInDay;
|
|
40
|
-
const createIsAfterIgnoreDatePart = (disableIgnoringDatePartForTimeValidation,
|
|
40
|
+
const createIsAfterIgnoreDatePart = (disableIgnoringDatePartForTimeValidation, adapter) => (dateLeft, dateRight) => {
|
|
41
41
|
if (disableIgnoringDatePartForTimeValidation) {
|
|
42
|
-
return
|
|
42
|
+
return adapter.isAfter(dateLeft, dateRight);
|
|
43
43
|
}
|
|
44
|
-
return getSecondsInDay(dateLeft,
|
|
44
|
+
return getSecondsInDay(dateLeft, adapter) > getSecondsInDay(dateRight, adapter);
|
|
45
45
|
};
|
|
46
46
|
exports.createIsAfterIgnoreDatePart = createIsAfterIgnoreDatePart;
|
|
47
|
-
const resolveTimeFormat = (
|
|
47
|
+
const resolveTimeFormat = (adapter, {
|
|
48
48
|
format,
|
|
49
49
|
views,
|
|
50
50
|
ampm
|
|
@@ -52,7 +52,7 @@ const resolveTimeFormat = (utils, {
|
|
|
52
52
|
if (format != null) {
|
|
53
53
|
return format;
|
|
54
54
|
}
|
|
55
|
-
const formats =
|
|
55
|
+
const formats = adapter.formats;
|
|
56
56
|
if ((0, _views.areViewsEqual)(views, ['hours'])) {
|
|
57
57
|
return ampm ? `${formats.hours12h} ${formats.meridiem}` : formats.hours24h;
|
|
58
58
|
}
|
|
@@ -20,7 +20,7 @@ const singleItemValueManager = exports.singleItemValueManager = {
|
|
|
20
20
|
referenceDate
|
|
21
21
|
} = _ref,
|
|
22
22
|
params = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
23
|
-
if (params.
|
|
23
|
+
if (params.adapter.isValid(value)) {
|
|
24
24
|
return value;
|
|
25
25
|
}
|
|
26
26
|
if (referenceDate != null) {
|
|
@@ -33,11 +33,11 @@ const singleItemValueManager = exports.singleItemValueManager = {
|
|
|
33
33
|
isSameError: (a, b) => a === b,
|
|
34
34
|
hasError: error => error != null,
|
|
35
35
|
defaultErrorState: null,
|
|
36
|
-
getTimezone: (
|
|
37
|
-
setTimezone: (
|
|
36
|
+
getTimezone: (adapter, value) => adapter.isValid(value) ? adapter.getTimezone(value) : null,
|
|
37
|
+
setTimezone: (adapter, timezone, value) => value == null ? null : adapter.setTimezone(value, timezone)
|
|
38
38
|
};
|
|
39
39
|
const singleItemFieldValueManager = exports.singleItemFieldValueManager = {
|
|
40
|
-
updateReferenceValue: (
|
|
40
|
+
updateReferenceValue: (adapter, value, prevReferenceValue) => adapter.isValid(value) ? value : prevReferenceValue,
|
|
41
41
|
getSectionsFromValue: (date, getSectionsFromDate) => getSectionsFromDate(date),
|
|
42
42
|
getV7HiddenInputValueFromSections: _useField.createDateStrForV7HiddenInputFromSections,
|
|
43
43
|
getV6InputValueFromSections: _useField.createDateStrForV6InputFromSections,
|
|
@@ -14,7 +14,7 @@ var _dateUtils = require("../internals/utils/date-utils");
|
|
|
14
14
|
var _valueManagers = require("../internals/utils/valueManagers");
|
|
15
15
|
var _validation = require("../validation");
|
|
16
16
|
var _useUtils = require("../internals/hooks/useUtils");
|
|
17
|
-
var
|
|
17
|
+
var _hooks = require("../hooks");
|
|
18
18
|
function useDateManager(parameters = {}) {
|
|
19
19
|
const {
|
|
20
20
|
enableAccessibleFieldDOMStructure = true
|
|
@@ -30,27 +30,27 @@ function useDateManager(parameters = {}) {
|
|
|
30
30
|
}), [enableAccessibleFieldDOMStructure]);
|
|
31
31
|
}
|
|
32
32
|
function useOpenPickerButtonAriaLabel(value) {
|
|
33
|
-
const
|
|
34
|
-
const translations = (0,
|
|
33
|
+
const adapter = (0, _hooks.usePickerAdapter)();
|
|
34
|
+
const translations = (0, _hooks.usePickerTranslations)();
|
|
35
35
|
return React.useMemo(() => {
|
|
36
|
-
const formattedValue =
|
|
36
|
+
const formattedValue = adapter.isValid(value) ? adapter.format(value, 'fullDate') : null;
|
|
37
37
|
return translations.openDatePickerDialogue(formattedValue);
|
|
38
|
-
}, [value, translations,
|
|
38
|
+
}, [value, translations, adapter]);
|
|
39
39
|
}
|
|
40
40
|
function useApplyDefaultValuesToDateFieldInternalProps(internalProps) {
|
|
41
|
-
const
|
|
41
|
+
const adapter = (0, _hooks.usePickerAdapter)();
|
|
42
42
|
const validationProps = useApplyDefaultValuesToDateValidationProps(internalProps);
|
|
43
43
|
return React.useMemo(() => (0, _extends2.default)({}, internalProps, validationProps, {
|
|
44
|
-
format: internalProps.format ??
|
|
45
|
-
}), [internalProps, validationProps,
|
|
44
|
+
format: internalProps.format ?? adapter.formats.keyboardDate
|
|
45
|
+
}), [internalProps, validationProps, adapter]);
|
|
46
46
|
}
|
|
47
47
|
function useApplyDefaultValuesToDateValidationProps(props) {
|
|
48
|
-
const
|
|
48
|
+
const adapter = (0, _hooks.usePickerAdapter)();
|
|
49
49
|
const defaultDates = (0, _useUtils.useDefaultDates)();
|
|
50
50
|
return React.useMemo(() => ({
|
|
51
51
|
disablePast: props.disablePast ?? false,
|
|
52
52
|
disableFuture: props.disableFuture ?? false,
|
|
53
|
-
minDate: (0, _dateUtils.applyDefaultDate)(
|
|
54
|
-
maxDate: (0, _dateUtils.applyDefaultDate)(
|
|
55
|
-
}), [props.minDate, props.maxDate, props.disableFuture, props.disablePast,
|
|
53
|
+
minDate: (0, _dateUtils.applyDefaultDate)(adapter, props.minDate, defaultDates.minDate),
|
|
54
|
+
maxDate: (0, _dateUtils.applyDefaultDate)(adapter, props.maxDate, defaultDates.maxDate)
|
|
55
|
+
}), [props.minDate, props.maxDate, props.disableFuture, props.disablePast, adapter, defaultDates]);
|
|
56
56
|
}
|
|
@@ -14,7 +14,7 @@ var _dateUtils = require("../internals/utils/date-utils");
|
|
|
14
14
|
var _valueManagers = require("../internals/utils/valueManagers");
|
|
15
15
|
var _validation = require("../validation");
|
|
16
16
|
var _useUtils = require("../internals/hooks/useUtils");
|
|
17
|
-
var
|
|
17
|
+
var _hooks = require("../hooks");
|
|
18
18
|
function useDateTimeManager(parameters = {}) {
|
|
19
19
|
const {
|
|
20
20
|
enableAccessibleFieldDOMStructure = true
|
|
@@ -30,32 +30,32 @@ function useDateTimeManager(parameters = {}) {
|
|
|
30
30
|
}), [enableAccessibleFieldDOMStructure]);
|
|
31
31
|
}
|
|
32
32
|
function useOpenPickerButtonAriaLabel(value) {
|
|
33
|
-
const
|
|
34
|
-
const translations = (0,
|
|
33
|
+
const adapter = (0, _hooks.usePickerAdapter)();
|
|
34
|
+
const translations = (0, _hooks.usePickerTranslations)();
|
|
35
35
|
return React.useMemo(() => {
|
|
36
|
-
const formattedValue =
|
|
36
|
+
const formattedValue = adapter.isValid(value) ? adapter.format(value, 'fullDate') : null;
|
|
37
37
|
return translations.openDatePickerDialogue(formattedValue);
|
|
38
|
-
}, [value, translations,
|
|
38
|
+
}, [value, translations, adapter]);
|
|
39
39
|
}
|
|
40
40
|
function useApplyDefaultValuesToDateTimeFieldInternalProps(internalProps) {
|
|
41
|
-
const
|
|
41
|
+
const adapter = (0, _hooks.usePickerAdapter)();
|
|
42
42
|
const validationProps = useApplyDefaultValuesToDateTimeValidationProps(internalProps);
|
|
43
|
-
const ampm = React.useMemo(() => internalProps.ampm ??
|
|
43
|
+
const ampm = React.useMemo(() => internalProps.ampm ?? adapter.is12HourCycleInCurrentLocale(), [internalProps.ampm, adapter]);
|
|
44
44
|
return React.useMemo(() => (0, _extends2.default)({}, internalProps, validationProps, {
|
|
45
|
-
format: internalProps.format ?? (ampm ?
|
|
46
|
-
}), [internalProps, validationProps, ampm,
|
|
45
|
+
format: internalProps.format ?? (ampm ? adapter.formats.keyboardDateTime12h : adapter.formats.keyboardDateTime24h)
|
|
46
|
+
}), [internalProps, validationProps, ampm, adapter]);
|
|
47
47
|
}
|
|
48
48
|
function useApplyDefaultValuesToDateTimeValidationProps(props) {
|
|
49
|
-
const
|
|
49
|
+
const adapter = (0, _hooks.usePickerAdapter)();
|
|
50
50
|
const defaultDates = (0, _useUtils.useDefaultDates)();
|
|
51
51
|
return React.useMemo(() => ({
|
|
52
52
|
disablePast: props.disablePast ?? false,
|
|
53
53
|
disableFuture: props.disableFuture ?? false,
|
|
54
54
|
// TODO: Explore if we can remove it from the public API
|
|
55
55
|
disableIgnoringDatePartForTimeValidation: !!props.minDateTime || !!props.maxDateTime || !!props.disableFuture || !!props.disablePast,
|
|
56
|
-
minDate: (0, _dateUtils.applyDefaultDate)(
|
|
57
|
-
maxDate: (0, _dateUtils.applyDefaultDate)(
|
|
56
|
+
minDate: (0, _dateUtils.applyDefaultDate)(adapter, props.minDateTime ?? props.minDate, defaultDates.minDate),
|
|
57
|
+
maxDate: (0, _dateUtils.applyDefaultDate)(adapter, props.maxDateTime ?? props.maxDate, defaultDates.maxDate),
|
|
58
58
|
minTime: props.minDateTime ?? props.minTime,
|
|
59
59
|
maxTime: props.maxDateTime ?? props.maxTime
|
|
60
|
-
}), [props.minDateTime, props.maxDateTime, props.minTime, props.maxTime, props.minDate, props.maxDate, props.disableFuture, props.disablePast,
|
|
60
|
+
}), [props.minDateTime, props.maxDateTime, props.minTime, props.maxTime, props.minDate, props.maxDate, props.disableFuture, props.disablePast, adapter, defaultDates]);
|
|
61
61
|
}
|
|
@@ -12,8 +12,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
12
12
|
var React = _interopRequireWildcard(require("react"));
|
|
13
13
|
var _valueManagers = require("../internals/utils/valueManagers");
|
|
14
14
|
var _validation = require("../validation");
|
|
15
|
-
var
|
|
16
|
-
var _usePickerTranslations = require("../hooks/usePickerTranslations");
|
|
15
|
+
var _hooks = require("../hooks");
|
|
17
16
|
function useTimeManager(parameters = {}) {
|
|
18
17
|
const {
|
|
19
18
|
enableAccessibleFieldDOMStructure = true,
|
|
@@ -31,22 +30,22 @@ function useTimeManager(parameters = {}) {
|
|
|
31
30
|
}
|
|
32
31
|
function createUseOpenPickerButtonAriaLabel(ampm) {
|
|
33
32
|
return function useOpenPickerButtonAriaLabel(value) {
|
|
34
|
-
const
|
|
35
|
-
const translations = (0,
|
|
33
|
+
const adapter = (0, _hooks.usePickerAdapter)();
|
|
34
|
+
const translations = (0, _hooks.usePickerTranslations)();
|
|
36
35
|
return React.useMemo(() => {
|
|
37
|
-
const formatKey = ampm ??
|
|
38
|
-
const formattedValue =
|
|
36
|
+
const formatKey = ampm ?? adapter.is12HourCycleInCurrentLocale() ? 'fullTime12h' : 'fullTime24h';
|
|
37
|
+
const formattedValue = adapter.isValid(value) ? adapter.format(value, formatKey) : null;
|
|
39
38
|
return translations.openTimePickerDialogue(formattedValue);
|
|
40
|
-
}, [value, translations,
|
|
39
|
+
}, [value, translations, adapter]);
|
|
41
40
|
};
|
|
42
41
|
}
|
|
43
42
|
function useApplyDefaultValuesToTimeFieldInternalProps(internalProps) {
|
|
44
|
-
const
|
|
43
|
+
const adapter = (0, _hooks.usePickerAdapter)();
|
|
45
44
|
const validationProps = useApplyDefaultValuesToTimeValidationProps(internalProps);
|
|
46
|
-
const ampm = React.useMemo(() => internalProps.ampm ??
|
|
45
|
+
const ampm = React.useMemo(() => internalProps.ampm ?? adapter.is12HourCycleInCurrentLocale(), [internalProps.ampm, adapter]);
|
|
47
46
|
return React.useMemo(() => (0, _extends2.default)({}, internalProps, validationProps, {
|
|
48
|
-
format: internalProps.format ?? (ampm ?
|
|
49
|
-
}), [internalProps, validationProps, ampm,
|
|
47
|
+
format: internalProps.format ?? (ampm ? adapter.formats.fullTime12h : adapter.formats.fullTime24h)
|
|
48
|
+
}), [internalProps, validationProps, ampm, adapter]);
|
|
50
49
|
}
|
|
51
50
|
function useApplyDefaultValuesToTimeValidationProps(props) {
|
|
52
51
|
return React.useMemo(() => ({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-date-pickers",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.6.0",
|
|
4
4
|
"author": "MUI Team",
|
|
5
5
|
"description": "The community edition of the MUI X Date and Time Picker components.",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"clsx": "^2.1.1",
|
|
42
42
|
"prop-types": "^15.8.1",
|
|
43
43
|
"react-transition-group": "^4.4.5",
|
|
44
|
-
"@mui/x-internals": "8.
|
|
44
|
+
"@mui/x-internals": "8.6.0"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"@emotion/react": "^11.9.0",
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { OnErrorProps, PickersTimezone } from "../models/index.js";
|
|
1
|
+
import { MuiPickersAdapter, OnErrorProps, PickersTimezone } from "../models/index.js";
|
|
3
2
|
import type { PickerValueManager } from "../internals/models/index.js";
|
|
4
3
|
import { PickerValidValue } from "../internals/models/index.js";
|
|
5
4
|
export type Validator<TValue extends PickerValidValue, TError, TValidationProps> = {
|
|
6
5
|
(params: {
|
|
7
|
-
adapter:
|
|
6
|
+
adapter: MuiPickersAdapter;
|
|
8
7
|
value: TValue;
|
|
9
8
|
timezone: PickersTimezone;
|
|
10
9
|
props: TValidationProps;
|
|
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
exports.useValidation = useValidation;
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
12
|
-
var
|
|
12
|
+
var _hooks = require("../hooks");
|
|
13
13
|
/**
|
|
14
14
|
* Utility hook to check if a given value is valid based on the provided validation props.
|
|
15
15
|
* @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.
|
|
@@ -29,7 +29,7 @@ function useValidation(options) {
|
|
|
29
29
|
timezone,
|
|
30
30
|
onError
|
|
31
31
|
} = options;
|
|
32
|
-
const adapter = (0,
|
|
32
|
+
const adapter = (0, _hooks.usePickerAdapter)();
|
|
33
33
|
const previousValidationErrorRef = React.useRef(validator.valueManager.defaultErrorState);
|
|
34
34
|
const validationError = validator({
|
|
35
35
|
adapter,
|
|
@@ -35,9 +35,9 @@ const validateDate = ({
|
|
|
35
35
|
minDate,
|
|
36
36
|
maxDate
|
|
37
37
|
} = props;
|
|
38
|
-
const now = adapter.
|
|
38
|
+
const now = adapter.date(undefined, timezone);
|
|
39
39
|
switch (true) {
|
|
40
|
-
case !adapter.
|
|
40
|
+
case !adapter.isValid(value):
|
|
41
41
|
return 'invalidDate';
|
|
42
42
|
case Boolean(shouldDisableDate && shouldDisableDate(value)):
|
|
43
43
|
return 'shouldDisableDate';
|
|
@@ -45,13 +45,13 @@ const validateDate = ({
|
|
|
45
45
|
return 'shouldDisableMonth';
|
|
46
46
|
case Boolean(shouldDisableYear && shouldDisableYear(value)):
|
|
47
47
|
return 'shouldDisableYear';
|
|
48
|
-
case Boolean(disableFuture && adapter.
|
|
48
|
+
case Boolean(disableFuture && adapter.isAfterDay(value, now)):
|
|
49
49
|
return 'disableFuture';
|
|
50
|
-
case Boolean(disablePast && adapter.
|
|
50
|
+
case Boolean(disablePast && adapter.isBeforeDay(value, now)):
|
|
51
51
|
return 'disablePast';
|
|
52
|
-
case Boolean(minDate && adapter.
|
|
52
|
+
case Boolean(minDate && adapter.isBeforeDay(value, minDate)):
|
|
53
53
|
return 'minDate';
|
|
54
|
-
case Boolean(maxDate && adapter.
|
|
54
|
+
case Boolean(maxDate && adapter.isAfterDay(value, maxDate)):
|
|
55
55
|
return 'maxDate';
|
|
56
56
|
default:
|
|
57
57
|
return null;
|
|
@@ -36,18 +36,18 @@ const validateTime = ({
|
|
|
36
36
|
disablePast,
|
|
37
37
|
disableFuture
|
|
38
38
|
} = props;
|
|
39
|
-
const now = adapter.
|
|
40
|
-
const isAfter = (0, _timeUtils.createIsAfterIgnoreDatePart)(disableIgnoringDatePartForTimeValidation, adapter
|
|
39
|
+
const now = adapter.date(undefined, timezone);
|
|
40
|
+
const isAfter = (0, _timeUtils.createIsAfterIgnoreDatePart)(disableIgnoringDatePartForTimeValidation, adapter);
|
|
41
41
|
switch (true) {
|
|
42
|
-
case !adapter.
|
|
42
|
+
case !adapter.isValid(value):
|
|
43
43
|
return 'invalidDate';
|
|
44
44
|
case Boolean(minTime && isAfter(minTime, value)):
|
|
45
45
|
return 'minTime';
|
|
46
46
|
case Boolean(maxTime && isAfter(value, maxTime)):
|
|
47
47
|
return 'maxTime';
|
|
48
|
-
case Boolean(disableFuture && adapter.
|
|
48
|
+
case Boolean(disableFuture && adapter.isAfter(value, now)):
|
|
49
49
|
return 'disableFuture';
|
|
50
|
-
case Boolean(disablePast && adapter.
|
|
50
|
+
case Boolean(disablePast && adapter.isBefore(value, now)):
|
|
51
51
|
return 'disablePast';
|
|
52
52
|
case Boolean(shouldDisableTime && shouldDisableTime(value, 'hours')):
|
|
53
53
|
return 'shouldDisableTime-hours';
|
|
@@ -55,7 +55,7 @@ const validateTime = ({
|
|
|
55
55
|
return 'shouldDisableTime-minutes';
|
|
56
56
|
case Boolean(shouldDisableTime && shouldDisableTime(value, 'seconds')):
|
|
57
57
|
return 'shouldDisableTime-seconds';
|
|
58
|
-
case Boolean(minutesStep && adapter.
|
|
58
|
+
case Boolean(minutesStep && adapter.getMinutes(value) % minutesStep !== 0):
|
|
59
59
|
return 'minutesStep';
|
|
60
60
|
default:
|
|
61
61
|
return null;
|