@mui/x-date-pickers 8.5.3 → 8.7.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 +210 -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/PickersTextField/PickersInputBase/PickersInputBase.js +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/PickersInputBase/PickersInputBase.js +2 -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/PickerFieldUI.js +2 -0
- package/esm/internals/components/PickerPopper/PickerPopper.js +2 -0
- package/esm/internals/components/PickerProvider.js +2 -0
- 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 +5 -5
- package/esm/internals/hooks/useControlledValue.d.ts +2 -2
- 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 +4 -4
- 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 +24 -24
- package/esm/internals/hooks/useField/useFieldV6TextField.js +2 -0
- package/esm/internals/hooks/useField/useFieldV7TextField.js +2 -0
- package/esm/internals/hooks/useNullableFieldPrivateContext.js +2 -0
- package/esm/internals/hooks/usePicker/hooks/useOrientation.js +2 -0
- package/esm/internals/hooks/usePicker/hooks/useValueAndOpenStates.js +8 -6
- package/esm/internals/hooks/usePicker/usePicker.js +7 -6
- package/esm/internals/hooks/usePicker/usePicker.types.d.ts +3 -3
- package/esm/internals/hooks/useUtils.d.ts +1 -8
- package/esm/internals/hooks/useUtils.js +3 -19
- package/esm/internals/hooks/useViews.js +2 -0
- package/esm/internals/index.d.ts +2 -1
- package/esm/internals/index.js +2 -1
- package/esm/internals/models/manager.d.ts +17 -17
- 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/PickerFieldUI.js +1 -0
- package/internals/components/PickerPopper/PickerPopper.js +1 -0
- package/internals/components/PickerProvider.js +1 -0
- 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 +5 -5
- package/internals/hooks/useControlledValue.d.ts +2 -2
- 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 +4 -4
- 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 +24 -25
- package/internals/hooks/useField/useFieldV6TextField.js +1 -0
- package/internals/hooks/useField/useFieldV7TextField.js +1 -0
- package/internals/hooks/useNullableFieldPrivateContext.js +1 -0
- package/internals/hooks/usePicker/hooks/useOrientation.js +1 -0
- package/internals/hooks/usePicker/hooks/useValueAndOpenStates.js +7 -6
- package/internals/hooks/usePicker/usePicker.js +6 -6
- package/internals/hooks/usePicker/usePicker.types.d.ts +3 -3
- package/internals/hooks/useUtils.d.ts +1 -8
- package/internals/hooks/useUtils.js +5 -24
- package/internals/hooks/useViews.js +1 -0
- package/internals/index.d.ts +2 -1
- package/internals/index.js +2 -7
- package/internals/models/manager.d.ts +17 -17
- 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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { MuiPickersAdapter, PickerManager, PickersTimezone, PickerValidDate, PickerValueType } from "../../models/index.js";
|
|
2
2
|
import type { GetDefaultReferenceDateProps } from "../utils/getDefaultReferenceDate.js";
|
|
3
|
-
import { InferNonNullablePickerValue, PickerValidValue } from "./value.js";
|
|
3
|
+
import { InferNonNullablePickerValue, PickerRangeValue, PickerValidValue } from "./value.js";
|
|
4
4
|
import type { UseFieldInternalProps } from "../hooks/useField/index.js";
|
|
5
5
|
export type PickerAnyManager = PickerManager<any, any, any, any, any>;
|
|
6
6
|
type PickerManagerProperties<TManager extends PickerAnyManager> = TManager extends PickerManager<infer TValue, infer TEnableAccessibleFieldDOMStructure, infer TError, infer TValidationProps, infer TFieldInternalProps> ? {
|
|
@@ -20,12 +20,12 @@ export interface PickerValueManager<TValue extends PickerValidValue, TError> {
|
|
|
20
20
|
/**
|
|
21
21
|
* Determines if two values are equal.
|
|
22
22
|
* @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.
|
|
23
|
-
* @param {MuiPickersAdapter}
|
|
23
|
+
* @param {MuiPickersAdapter} adapter The Picker date adapter instance.
|
|
24
24
|
* @param {TValue} valueLeft The first value to compare.
|
|
25
25
|
* @param {TValue} valueRight The second value to compare.
|
|
26
26
|
* @returns {boolean} A boolean indicating if the two values are equal.
|
|
27
27
|
*/
|
|
28
|
-
areValuesEqual: (
|
|
28
|
+
areValuesEqual: (adapter: MuiPickersAdapter, valueLeft: TValue, valueRight: TValue) => boolean;
|
|
29
29
|
/**
|
|
30
30
|
* Value to set when clicking the "Clear" button.
|
|
31
31
|
*/
|
|
@@ -33,30 +33,30 @@ export interface PickerValueManager<TValue extends PickerValidValue, TError> {
|
|
|
33
33
|
/**
|
|
34
34
|
* Method returning the value to set when clicking the "Today" button.
|
|
35
35
|
* @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.
|
|
36
|
-
* @param {MuiPickersAdapter}
|
|
36
|
+
* @param {MuiPickersAdapter} adapter The Picker date adapter instance.
|
|
37
37
|
* @param {PickersTimezone} timezone The current timezone.
|
|
38
38
|
* @param {PickerValueType} valueType The type of the value being edited.
|
|
39
39
|
* @returns {TValue} The value to set when clicking the "Today" button.
|
|
40
40
|
*/
|
|
41
|
-
getTodayValue: (
|
|
41
|
+
getTodayValue: (adapter: MuiPickersAdapter, timezone: PickersTimezone, valueType: PickerValueType) => TValue;
|
|
42
42
|
/**
|
|
43
43
|
* @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.
|
|
44
44
|
* Method returning the reference value to use when mounting the component.
|
|
45
45
|
* @param {object} params The params of the method.
|
|
46
|
-
* @param {PickerValidDate | undefined} params.referenceDate The referenceDate provided by the user.
|
|
46
|
+
* @param {PickerValidDate | PickerValidDate[] | undefined} params.referenceDate The referenceDate provided by the user.
|
|
47
47
|
* @param {TValue} params.value The value provided by the user.
|
|
48
48
|
* @param {GetDefaultReferenceDateProps} params.props The validation props needed to compute the reference value.
|
|
49
|
-
* @param {MuiPickersAdapter} params.
|
|
49
|
+
* @param {MuiPickersAdapter} params.adapter The Picker date adapter instance.
|
|
50
50
|
* @param {number} params.granularity The granularity of the selection possible on this component.
|
|
51
51
|
* @param {PickersTimezone} params.timezone The current timezone.
|
|
52
52
|
* @param {() => PickerValidDate} params.getTodayDate The reference date to use if no reference date is passed to the component.
|
|
53
53
|
* @returns {TValue} The reference value to use for non-provided dates.
|
|
54
54
|
*/
|
|
55
55
|
getInitialReferenceValue: (params: {
|
|
56
|
-
referenceDate
|
|
56
|
+
referenceDate?: TValue extends PickerRangeValue ? TValue | PickerValidDate : PickerValidDate;
|
|
57
57
|
value: TValue;
|
|
58
58
|
props: GetDefaultReferenceDateProps;
|
|
59
|
-
|
|
59
|
+
adapter: MuiPickersAdapter;
|
|
60
60
|
granularity: number;
|
|
61
61
|
timezone: PickersTimezone;
|
|
62
62
|
getTodayDate?: () => PickerValidDate;
|
|
@@ -64,20 +64,20 @@ export interface PickerValueManager<TValue extends PickerValidValue, TError> {
|
|
|
64
64
|
/**
|
|
65
65
|
* Method parsing the input value to replace all invalid dates by `null`.
|
|
66
66
|
* @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.
|
|
67
|
-
* @param {MuiPickersAdapter}
|
|
67
|
+
* @param {MuiPickersAdapter} adapter The Picker date adapter instance.
|
|
68
68
|
* @param {TValue} value The value to parse.
|
|
69
69
|
* @returns {TValue} The value without invalid date.
|
|
70
70
|
*/
|
|
71
|
-
cleanValue: (
|
|
71
|
+
cleanValue: (adapter: MuiPickersAdapter, value: TValue) => TValue;
|
|
72
72
|
/**
|
|
73
73
|
* Generates the new value, given the previous value and the new proposed value.
|
|
74
74
|
* @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.
|
|
75
|
-
* @param {MuiPickersAdapter}
|
|
75
|
+
* @param {MuiPickersAdapter} adapter The Picker date adapter instance.
|
|
76
76
|
* @param {TValue} lastValidDateValue The last valid value.
|
|
77
77
|
* @param {TValue} value The proposed value.
|
|
78
78
|
* @returns {TValue} The new value.
|
|
79
79
|
*/
|
|
80
|
-
valueReducer?: (
|
|
80
|
+
valueReducer?: (adapter: MuiPickersAdapter, lastValidDateValue: TValue, value: TValue) => TValue;
|
|
81
81
|
/**
|
|
82
82
|
* Compare two errors to know if they are equal.
|
|
83
83
|
* @template TError
|
|
@@ -101,19 +101,19 @@ export interface PickerValueManager<TValue extends PickerValidValue, TError> {
|
|
|
101
101
|
* Return the timezone of the date inside a value.
|
|
102
102
|
* When used on a range Picker, throw an error if both values don't have the same timezone.
|
|
103
103
|
* @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.
|
|
104
|
-
@param {MuiPickersAdapter}
|
|
104
|
+
@param {MuiPickersAdapter} adapter The Picker date adapter instance.
|
|
105
105
|
@param {TValue} value The current value.
|
|
106
106
|
@returns {string | null} The timezone of the current value.
|
|
107
107
|
*/
|
|
108
|
-
getTimezone: (
|
|
108
|
+
getTimezone: (adapter: MuiPickersAdapter, value: TValue) => string | null;
|
|
109
109
|
/**
|
|
110
110
|
* Change the timezone of the dates inside a value.
|
|
111
111
|
* @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.
|
|
112
|
-
@param {MuiPickersAdapter}
|
|
112
|
+
@param {MuiPickersAdapter} adapter The Picker date adapter instance.
|
|
113
113
|
@param {PickersTimezone} timezone The current timezone.
|
|
114
114
|
@param {TValue} value The value to convert.
|
|
115
115
|
@returns {TValue} The value with the new dates in the new timezone.
|
|
116
116
|
*/
|
|
117
|
-
setTimezone: (
|
|
117
|
+
setTimezone: (adapter: MuiPickersAdapter, timezone: PickersTimezone, value: TValue) => TValue;
|
|
118
118
|
}
|
|
119
119
|
export {};
|
|
@@ -2,7 +2,7 @@ import { DefaultizedProps } from '@mui/x-internals/types';
|
|
|
2
2
|
import { DateOrTimeView, MuiPickersAdapter } from "../../models/index.js";
|
|
3
3
|
import { DateOrTimeViewWithMeridiem } from "../models/index.js";
|
|
4
4
|
import { DigitalTimePickerProps } from "../models/props/time.js";
|
|
5
|
-
export declare const resolveDateTimeFormat: (
|
|
5
|
+
export declare const resolveDateTimeFormat: (adapter: MuiPickersAdapter, {
|
|
6
6
|
views,
|
|
7
7
|
format,
|
|
8
8
|
...other
|
|
@@ -11,7 +11,7 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
|
|
|
11
11
|
var _timeUtils = require("./time-utils");
|
|
12
12
|
var _dateUtils = require("./date-utils");
|
|
13
13
|
const _excluded = ["views", "format"];
|
|
14
|
-
const resolveDateTimeFormat = (
|
|
14
|
+
const resolveDateTimeFormat = (adapter, _ref, ignoreDateResolving) => {
|
|
15
15
|
let {
|
|
16
16
|
views,
|
|
17
17
|
format
|
|
@@ -30,19 +30,19 @@ const resolveDateTimeFormat = (utils, _ref, ignoreDateResolving) => {
|
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
32
|
if (timeViews.length === 0) {
|
|
33
|
-
return (0, _dateUtils.resolveDateFormat)(
|
|
33
|
+
return (0, _dateUtils.resolveDateFormat)(adapter, (0, _extends2.default)({
|
|
34
34
|
views: dateViews
|
|
35
35
|
}, other), false);
|
|
36
36
|
}
|
|
37
37
|
if (dateViews.length === 0) {
|
|
38
|
-
return (0, _timeUtils.resolveTimeFormat)(
|
|
38
|
+
return (0, _timeUtils.resolveTimeFormat)(adapter, (0, _extends2.default)({
|
|
39
39
|
views: timeViews
|
|
40
40
|
}, other));
|
|
41
41
|
}
|
|
42
|
-
const timeFormat = (0, _timeUtils.resolveTimeFormat)(
|
|
42
|
+
const timeFormat = (0, _timeUtils.resolveTimeFormat)(adapter, (0, _extends2.default)({
|
|
43
43
|
views: timeViews
|
|
44
44
|
}, other));
|
|
45
|
-
const dateFormat = ignoreDateResolving ?
|
|
45
|
+
const dateFormat = ignoreDateResolving ? adapter.formats.keyboardDate : (0, _dateUtils.resolveDateFormat)(adapter, (0, _extends2.default)({
|
|
46
46
|
views: dateViews
|
|
47
47
|
}, other), false);
|
|
48
48
|
return `${dateFormat} ${timeFormat}`;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DateView, MuiPickersAdapter, PickersTimezone, PickerValidDate, PickerValueType } from "../../models/index.js";
|
|
2
2
|
import { DateOrTimeViewWithMeridiem } from "../models/index.js";
|
|
3
|
-
export declare const mergeDateAndTime: (
|
|
3
|
+
export declare const mergeDateAndTime: (adapter: MuiPickersAdapter, dateParam: PickerValidDate, timeParam: PickerValidDate) => PickerValidDate;
|
|
4
4
|
interface FindClosestDateParams {
|
|
5
5
|
date: PickerValidDate;
|
|
6
6
|
disableFuture?: boolean;
|
|
@@ -8,7 +8,7 @@ interface FindClosestDateParams {
|
|
|
8
8
|
maxDate: PickerValidDate;
|
|
9
9
|
minDate: PickerValidDate;
|
|
10
10
|
isDateDisabled: (date: PickerValidDate) => boolean;
|
|
11
|
-
|
|
11
|
+
adapter: MuiPickersAdapter;
|
|
12
12
|
timezone: PickersTimezone;
|
|
13
13
|
}
|
|
14
14
|
export declare const findClosestEnabledDate: ({
|
|
@@ -18,23 +18,23 @@ export declare const findClosestEnabledDate: ({
|
|
|
18
18
|
maxDate,
|
|
19
19
|
minDate,
|
|
20
20
|
isDateDisabled,
|
|
21
|
-
|
|
21
|
+
adapter,
|
|
22
22
|
timezone
|
|
23
23
|
}: FindClosestDateParams) => PickerValidDate | null;
|
|
24
|
-
export declare const replaceInvalidDateByNull: (
|
|
25
|
-
export declare const applyDefaultDate: (
|
|
26
|
-
export declare const areDatesEqual: (
|
|
27
|
-
export declare const getMonthsInYear: (
|
|
28
|
-
export declare const getTodayDate: (
|
|
29
|
-
export declare const formatMeridiem: (
|
|
24
|
+
export declare const replaceInvalidDateByNull: (adapter: MuiPickersAdapter, value: PickerValidDate | null) => PickerValidDate | null;
|
|
25
|
+
export declare const applyDefaultDate: (adapter: MuiPickersAdapter, value: PickerValidDate | null | undefined, defaultValue: PickerValidDate) => PickerValidDate;
|
|
26
|
+
export declare const areDatesEqual: (adapter: MuiPickersAdapter, a: PickerValidDate | null, b: PickerValidDate | null) => boolean;
|
|
27
|
+
export declare const getMonthsInYear: (adapter: MuiPickersAdapter, year: PickerValidDate) => PickerValidDate[];
|
|
28
|
+
export declare const getTodayDate: (adapter: MuiPickersAdapter, timezone: PickersTimezone, valueType?: PickerValueType) => PickerValidDate;
|
|
29
|
+
export declare const formatMeridiem: (adapter: MuiPickersAdapter, meridiem: "am" | "pm") => string;
|
|
30
30
|
export declare const DATE_VIEWS: readonly ["year", "month", "day"];
|
|
31
31
|
export declare const isDatePickerView: (view: DateOrTimeViewWithMeridiem) => view is DateView;
|
|
32
|
-
export declare const resolveDateFormat: (
|
|
32
|
+
export declare const resolveDateFormat: (adapter: MuiPickersAdapter, {
|
|
33
33
|
format,
|
|
34
34
|
views
|
|
35
35
|
}: {
|
|
36
36
|
format?: string;
|
|
37
37
|
views: readonly DateView[];
|
|
38
38
|
}, isInToolbar: boolean) => string;
|
|
39
|
-
export declare const getWeekdays: (
|
|
39
|
+
export declare const getWeekdays: (adapter: MuiPickersAdapter, date: PickerValidDate) => PickerValidDate[];
|
|
40
40
|
export {};
|
|
@@ -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
|
}
|