@mui/x-date-pickers 6.5.0 → 6.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/AdapterDateFns/AdapterDateFns.d.ts +6 -0
- package/AdapterDateFns/AdapterDateFns.js +18 -0
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +6 -0
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +18 -0
- package/AdapterDayjs/AdapterDayjs.d.ts +14 -1
- package/AdapterDayjs/AdapterDayjs.js +131 -14
- package/AdapterLuxon/AdapterLuxon.d.ts +7 -1
- package/AdapterLuxon/AdapterLuxon.js +58 -9
- package/AdapterMoment/AdapterMoment.d.ts +12 -1
- package/AdapterMoment/AdapterMoment.js +91 -2
- package/AdapterMomentHijri/AdapterMomentHijri.d.ts +4 -0
- package/AdapterMomentHijri/AdapterMomentHijri.js +10 -0
- package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +4 -0
- package/AdapterMomentJalaali/AdapterMomentJalaali.js +10 -0
- package/CHANGELOG.md +78 -2
- package/DateCalendar/DateCalendar.js +2 -2
- package/DateCalendar/DayCalendar.d.ts +1 -1
- package/DateCalendar/PickersCalendarHeader.d.ts +1 -1
- package/DateCalendar/PickersCalendarHeader.js +2 -2
- package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
- package/DateCalendar/PickersSlideTransition.d.ts +1 -1
- package/DateField/DateField.js +6 -0
- package/DateField/DateField.types.d.ts +1 -1
- package/DateTimeField/DateTimeField.js +6 -0
- package/DateTimeField/DateTimeField.types.d.ts +1 -1
- package/DateTimePicker/DateTimePicker.js +19 -2
- package/DateTimePicker/DateTimePicker.types.d.ts +4 -3
- package/DateTimePicker/DateTimePickerTabs.d.ts +3 -3
- package/DateTimePicker/DateTimePickerTabs.js +6 -5
- package/DateTimePicker/DateTimePickerToolbar.d.ts +5 -4
- package/DateTimePicker/DateTimePickerToolbar.js +46 -22
- package/DateTimePicker/shared.d.ts +6 -6
- package/DayCalendarSkeleton/DayCalendarSkeleton.d.ts +1 -1
- package/DesktopDatePicker/DesktopDatePicker.js +2 -2
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +53 -10
- package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +10 -3
- package/DesktopTimePicker/DesktopTimePicker.js +2 -2
- package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +8 -7
- package/MonthCalendar/MonthCalendar.js +2 -2
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -3
- package/PickersActionBar/PickersActionBar.d.ts +2 -2
- package/PickersLayout/PickersLayout.d.ts +1 -1
- package/PickersShortcuts/PickersShortcuts.d.ts +2 -2
- package/README.md +5 -5
- package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +1 -1
- package/TimeClock/Clock.d.ts +1 -1
- package/TimeClock/ClockNumber.d.ts +1 -1
- package/TimeClock/ClockNumbers.d.ts +2 -2
- package/TimeClock/ClockPointer.d.ts +1 -1
- package/TimeField/TimeField.js +6 -0
- package/TimeField/TimeField.types.d.ts +1 -1
- package/TimePicker/TimePickerToolbar.d.ts +2 -2
- package/YearCalendar/YearCalendar.js +2 -2
- package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +13 -0
- package/dateTimeViewRenderers/dateTimeViewRenderers.js +148 -0
- package/dateTimeViewRenderers/index.d.ts +2 -0
- package/dateTimeViewRenderers/index.js +1 -0
- package/dateTimeViewRenderers/package.json +6 -0
- package/dateViewRenderers/dateViewRenderers.d.ts +3 -2
- package/dateViewRenderers/dateViewRenderers.js +2 -2
- package/icons/index.d.ts +42 -0
- package/{internals/components/icons → icons}/index.js +7 -7
- package/icons/package.json +6 -0
- package/index.d.ts +1 -0
- package/index.js +3 -2
- package/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.d.ts +2 -0
- package/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js +5 -0
- package/internals/components/DateTimeViewWrapper/index.d.ts +1 -0
- package/internals/components/DateTimeViewWrapper/index.js +1 -0
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
- package/internals/components/PickersModalDialog.d.ts +1 -1
- package/internals/components/PickersPopper.d.ts +1 -1
- package/internals/components/PickersToolbarButton.d.ts +1 -0
- package/internals/components/PickersToolbarButton.js +8 -3
- package/internals/constants/dimensions.d.ts +1 -0
- package/internals/constants/dimensions.js +2 -1
- package/internals/demo/DemoContainer.d.ts +2 -2
- package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +2 -2
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +2 -2
- package/internals/hooks/useField/useField.d.ts +1 -1
- package/internals/hooks/useField/useField.js +8 -3
- package/internals/hooks/useField/useField.types.d.ts +8 -2
- package/internals/hooks/useField/useFieldState.d.ts +1 -1
- package/internals/hooks/useField/useFieldState.js +22 -2
- package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +2 -2
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +2 -2
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +32 -2
- package/internals/hooks/usePicker/usePickerViews.js +8 -10
- package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +2 -2
- package/internals/hooks/useViews.js +10 -9
- package/internals/index.d.ts +2 -1
- package/internals/index.js +2 -1
- package/internals/models/fields.d.ts +1 -1
- package/internals/utils/date-utils.d.ts +4 -1
- package/internals/utils/date-utils.js +4 -1
- package/internals/utils/fields.js +1 -1
- package/internals/utils/getDefaultReferenceDate.d.ts +15 -0
- package/internals/utils/getDefaultReferenceDate.js +62 -0
- package/internals/utils/time-utils.d.ts +2 -1
- package/internals/utils/time-utils.js +1 -0
- package/internals/utils/valueManagers.js +21 -3
- package/legacy/AdapterDateFns/AdapterDateFns.js +18 -0
- package/legacy/AdapterDateFnsJalali/AdapterDateFnsJalali.js +18 -0
- package/legacy/AdapterDayjs/AdapterDayjs.js +135 -14
- package/legacy/AdapterLuxon/AdapterLuxon.js +58 -9
- package/legacy/AdapterMoment/AdapterMoment.js +97 -6
- package/legacy/AdapterMomentHijri/AdapterMomentHijri.js +10 -0
- package/legacy/AdapterMomentJalaali/AdapterMomentJalaali.js +10 -0
- package/legacy/DateCalendar/DateCalendar.js +2 -2
- package/legacy/DateCalendar/PickersCalendarHeader.js +2 -2
- package/legacy/DateField/DateField.js +6 -0
- package/legacy/DateTimeField/DateTimeField.js +6 -0
- package/legacy/DateTimePicker/DateTimePicker.js +19 -2
- package/legacy/DateTimePicker/DateTimePickerTabs.js +6 -5
- package/legacy/DateTimePicker/DateTimePickerToolbar.js +51 -23
- package/legacy/DesktopDatePicker/DesktopDatePicker.js +2 -2
- package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +54 -10
- package/legacy/DesktopTimePicker/DesktopTimePicker.js +2 -2
- package/legacy/MonthCalendar/MonthCalendar.js +2 -2
- package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -3
- package/legacy/TimeField/TimeField.js +6 -0
- package/legacy/YearCalendar/YearCalendar.js +2 -2
- package/legacy/dateTimeViewRenderers/dateTimeViewRenderers.js +147 -0
- package/legacy/dateTimeViewRenderers/index.js +1 -0
- package/legacy/dateViewRenderers/dateViewRenderers.js +2 -4
- package/legacy/{internals/components/icons → icons}/index.js +7 -7
- package/legacy/index.js +3 -2
- package/legacy/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js +5 -0
- package/legacy/internals/components/DateTimeViewWrapper/index.js +1 -0
- package/legacy/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
- package/legacy/internals/components/PickersToolbarButton.js +7 -2
- package/legacy/internals/constants/dimensions.js +2 -1
- package/legacy/internals/hooks/useField/useField.js +8 -3
- package/legacy/internals/hooks/useField/useFieldState.js +22 -2
- package/legacy/internals/hooks/usePicker/usePickerViews.js +4 -4
- package/legacy/internals/hooks/useViews.js +10 -9
- package/legacy/internals/index.js +2 -1
- package/legacy/internals/utils/date-utils.js +7 -0
- package/legacy/internals/utils/fields.js +1 -1
- package/legacy/internals/utils/getDefaultReferenceDate.js +64 -0
- package/legacy/internals/utils/time-utils.js +3 -0
- package/legacy/internals/utils/valueManagers.js +20 -4
- package/legacy/locales/index.js +1 -0
- package/legacy/locales/viVN.js +93 -0
- package/legacy/models/index.js +1 -0
- package/legacy/models/timezone.js +1 -0
- package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.js +16 -1
- package/legacy/tests/describeGregorianAdapter/testCalculations.js +349 -79
- package/legacy/tests/describeGregorianAdapter/testLocalization.js +3 -3
- package/legacy/tests/describeValidation/testDayViewValidation.js +129 -52
- package/legacy/tests/describeValidation/testMinutesViewValidation.js +3 -10
- package/legacy/tests/describeValidation/testMonthViewValidation.js +3 -10
- package/legacy/tests/describeValidation/testYearViewValidation.js +3 -10
- package/legacy/tests/describeValue/describeValue.js +12 -5
- package/legacy/tests/describeValue/testControlledUnControlled.js +19 -4
- package/legacy/tests/describeValue/testPickerActionBar.js +12 -10
- package/legacy/tests/describeValue/testPickerOpenCloseLifeCycle.js +10 -7
- package/legacy/timeViewRenderers/timeViewRenderers.js +1 -1
- package/locales/index.d.ts +1 -0
- package/locales/index.js +1 -0
- package/locales/viVN.d.ts +53 -0
- package/locales/viVN.js +57 -0
- package/models/adapters.d.ts +50 -9
- package/models/fields.d.ts +1 -1
- package/models/index.d.ts +1 -0
- package/models/index.js +1 -0
- package/models/timezone.d.ts +1 -0
- package/models/timezone.js +1 -0
- package/modern/AdapterDateFns/AdapterDateFns.js +18 -0
- package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +18 -0
- package/modern/AdapterDayjs/AdapterDayjs.js +130 -14
- package/modern/AdapterLuxon/AdapterLuxon.js +57 -9
- package/modern/AdapterMoment/AdapterMoment.js +90 -2
- package/modern/AdapterMomentHijri/AdapterMomentHijri.js +10 -0
- package/modern/AdapterMomentJalaali/AdapterMomentJalaali.js +10 -0
- package/modern/DateCalendar/DateCalendar.js +2 -2
- package/modern/DateCalendar/PickersCalendarHeader.js +2 -2
- package/modern/DateField/DateField.js +6 -0
- package/modern/DateTimeField/DateTimeField.js +6 -0
- package/modern/DateTimePicker/DateTimePicker.js +19 -2
- package/modern/DateTimePicker/DateTimePickerTabs.js +6 -5
- package/modern/DateTimePicker/DateTimePickerToolbar.js +46 -22
- package/modern/DesktopDatePicker/DesktopDatePicker.js +2 -2
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +52 -9
- package/modern/DesktopTimePicker/DesktopTimePicker.js +2 -2
- package/modern/MonthCalendar/MonthCalendar.js +2 -2
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -3
- package/modern/TimeField/TimeField.js +6 -0
- package/modern/YearCalendar/YearCalendar.js +2 -2
- package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +147 -0
- package/modern/dateTimeViewRenderers/index.js +1 -0
- package/modern/dateViewRenderers/dateViewRenderers.js +2 -2
- package/modern/{internals/components/icons → icons}/index.js +7 -7
- package/modern/index.js +3 -2
- package/modern/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js +5 -0
- package/modern/internals/components/DateTimeViewWrapper/index.js +1 -0
- package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
- package/modern/internals/components/PickersToolbarButton.js +8 -3
- package/modern/internals/constants/dimensions.js +2 -1
- package/modern/internals/hooks/useField/useField.js +8 -3
- package/modern/internals/hooks/useField/useFieldState.js +22 -2
- package/modern/internals/hooks/usePicker/usePickerViews.js +8 -10
- package/modern/internals/hooks/useViews.js +10 -9
- package/modern/internals/index.js +2 -1
- package/modern/internals/utils/date-utils.js +4 -1
- package/modern/internals/utils/fields.js +1 -1
- package/modern/internals/utils/getDefaultReferenceDate.js +58 -0
- package/modern/internals/utils/time-utils.js +1 -0
- package/modern/internals/utils/valueManagers.js +21 -3
- package/modern/locales/index.js +1 -0
- package/modern/locales/viVN.js +57 -0
- package/modern/models/index.js +1 -0
- package/modern/models/timezone.js +1 -0
- package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.js +13 -1
- package/modern/tests/describeGregorianAdapter/testCalculations.js +347 -79
- package/modern/tests/describeGregorianAdapter/testLocalization.js +3 -3
- package/modern/tests/describeValidation/testDayViewValidation.js +129 -52
- package/modern/tests/describeValidation/testMinutesViewValidation.js +3 -10
- package/modern/tests/describeValidation/testMonthViewValidation.js +3 -10
- package/modern/tests/describeValidation/testYearViewValidation.js +3 -10
- package/modern/tests/describeValue/describeValue.js +13 -4
- package/modern/tests/describeValue/testControlledUnControlled.js +15 -4
- package/modern/tests/describeValue/testPickerActionBar.js +19 -17
- package/modern/tests/describeValue/testPickerOpenCloseLifeCycle.js +10 -7
- package/modern/timeViewRenderers/timeViewRenderers.js +1 -1
- package/node/AdapterDateFns/AdapterDateFns.js +18 -0
- package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +18 -0
- package/node/AdapterDayjs/AdapterDayjs.js +130 -14
- package/node/AdapterLuxon/AdapterLuxon.js +57 -9
- package/node/AdapterMoment/AdapterMoment.js +90 -2
- package/node/AdapterMomentHijri/AdapterMomentHijri.js +10 -0
- package/node/AdapterMomentJalaali/AdapterMomentJalaali.js +10 -0
- package/node/DateCalendar/DateCalendar.js +2 -2
- package/node/DateCalendar/PickersCalendarHeader.js +2 -2
- package/node/DateField/DateField.js +6 -0
- package/node/DateTimeField/DateTimeField.js +6 -0
- package/node/DateTimePicker/DateTimePicker.js +19 -2
- package/node/DateTimePicker/DateTimePickerTabs.js +6 -5
- package/node/DateTimePicker/DateTimePickerToolbar.js +46 -22
- package/node/DesktopDatePicker/DesktopDatePicker.js +2 -2
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +52 -9
- package/node/DesktopTimePicker/DesktopTimePicker.js +2 -2
- package/node/MonthCalendar/MonthCalendar.js +2 -2
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +3 -2
- package/node/TimeField/TimeField.js +6 -0
- package/node/YearCalendar/YearCalendar.js +2 -2
- package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +156 -0
- package/node/dateTimeViewRenderers/index.js +12 -0
- package/node/dateViewRenderers/dateViewRenderers.js +3 -3
- package/node/{internals/components/icons → icons}/index.js +15 -15
- package/node/index.js +13 -1
- package/node/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js +12 -0
- package/node/internals/components/DateTimeViewWrapper/index.js +12 -0
- package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
- package/node/internals/components/PickersToolbarButton.js +8 -3
- package/node/internals/constants/dimensions.js +4 -2
- package/node/internals/hooks/useField/useField.js +8 -3
- package/node/internals/hooks/useField/useFieldState.js +22 -2
- package/node/internals/hooks/usePicker/usePickerViews.js +8 -10
- package/node/internals/hooks/useViews.js +10 -9
- package/node/internals/index.js +13 -0
- package/node/internals/utils/date-utils.js +7 -2
- package/node/internals/utils/fields.js +1 -1
- package/node/internals/utils/getDefaultReferenceDate.js +66 -0
- package/node/internals/utils/time-utils.js +3 -1
- package/node/internals/utils/valueManagers.js +21 -2
- package/node/locales/index.js +11 -0
- package/node/locales/viVN.js +64 -0
- package/node/models/index.js +11 -0
- package/node/models/timezone.js +5 -0
- package/node/tests/describeGregorianAdapter/describeGregorianAdapter.js +13 -1
- package/node/tests/describeGregorianAdapter/testCalculations.js +347 -79
- package/node/tests/describeGregorianAdapter/testLocalization.js +3 -4
- package/node/tests/describeValidation/testDayViewValidation.js +129 -52
- package/node/tests/describeValidation/testMinutesViewValidation.js +3 -10
- package/node/tests/describeValidation/testMonthViewValidation.js +3 -10
- package/node/tests/describeValidation/testYearViewValidation.js +3 -10
- package/node/tests/describeValue/describeValue.js +13 -4
- package/node/tests/describeValue/testControlledUnControlled.js +15 -4
- package/node/tests/describeValue/testPickerActionBar.js +19 -16
- package/node/tests/describeValue/testPickerOpenCloseLifeCycle.js +9 -6
- package/node/timeViewRenderers/timeViewRenderers.js +1 -1
- package/package.json +4 -4
- package/tests/describeGregorianAdapter/describeGregorianAdapter.js +14 -1
- package/tests/describeGregorianAdapter/testCalculations.js +347 -79
- package/tests/describeGregorianAdapter/testLocalization.js +3 -3
- package/tests/describeValidation/testDayViewValidation.js +129 -52
- package/tests/describeValidation/testMinutesViewValidation.js +3 -10
- package/tests/describeValidation/testMonthViewValidation.js +3 -10
- package/tests/describeValidation/testYearViewValidation.js +3 -10
- package/tests/describeValue/describeValue.js +13 -4
- package/tests/describeValue/testControlledUnControlled.js +15 -4
- package/tests/describeValue/testPickerActionBar.js +19 -17
- package/tests/describeValue/testPickerOpenCloseLifeCycle.js +10 -7
- package/timeViewRenderers/timeViewRenderers.d.ts +4 -4
- package/timeViewRenderers/timeViewRenderers.js +1 -1
- package/internals/components/icons/index.d.ts +0 -42
|
@@ -28,6 +28,7 @@ type DateFnsLocale = typeof defaultLocale;
|
|
|
28
28
|
*/
|
|
29
29
|
export declare class AdapterDateFns implements MuiPickersAdapter<Date, DateFnsLocale> {
|
|
30
30
|
isMUIAdapter: boolean;
|
|
31
|
+
isTimezoneCompatible: boolean;
|
|
31
32
|
lib: string;
|
|
32
33
|
locale?: DateFnsLocale;
|
|
33
34
|
formats: AdapterFormats;
|
|
@@ -38,6 +39,9 @@ export declare class AdapterDateFns implements MuiPickersAdapter<Date, DateFnsLo
|
|
|
38
39
|
};
|
|
39
40
|
constructor({ locale, formats }?: AdapterOptions<DateFnsLocale, never>);
|
|
40
41
|
date: (value?: any) => Date | null;
|
|
42
|
+
dateWithTimezone: (value: string | null | undefined) => Date | null;
|
|
43
|
+
getTimezone: () => string;
|
|
44
|
+
setTimezone: (value: Date) => Date;
|
|
41
45
|
toJsDate: (value: Date) => Date;
|
|
42
46
|
parseISO: (isoString: string) => Date;
|
|
43
47
|
toISO: (value: Date) => string;
|
|
@@ -85,12 +89,14 @@ export declare class AdapterDateFns implements MuiPickersAdapter<Date, DateFnsLo
|
|
|
85
89
|
getHours: (value: Date) => number;
|
|
86
90
|
getMinutes: (value: Date) => number;
|
|
87
91
|
getSeconds: (value: Date) => number;
|
|
92
|
+
getMilliseconds: (value: Date) => number;
|
|
88
93
|
setYear: (value: Date, year: number) => Date;
|
|
89
94
|
setMonth: (value: Date, month: number) => Date;
|
|
90
95
|
setDate: (value: Date, date: number) => Date;
|
|
91
96
|
setHours: (value: Date, hours: number) => Date;
|
|
92
97
|
setMinutes: (value: Date, minutes: number) => Date;
|
|
93
98
|
setSeconds: (value: Date, seconds: number) => Date;
|
|
99
|
+
setMilliseconds: (value: Date, milliseconds: number) => Date;
|
|
94
100
|
getDaysInMonth: (value: Date) => number;
|
|
95
101
|
getNextMonth: (value: Date) => Date;
|
|
96
102
|
getPreviousMonth: (value: Date) => Date;
|
|
@@ -27,6 +27,7 @@ import getHours from 'date-fns/getHours';
|
|
|
27
27
|
import getMinutes from 'date-fns/getMinutes';
|
|
28
28
|
import getMonth from 'date-fns/getMonth';
|
|
29
29
|
import getSeconds from 'date-fns/getSeconds';
|
|
30
|
+
import getMilliseconds from 'date-fns/getMilliseconds';
|
|
30
31
|
import getWeek from 'date-fns/getWeek';
|
|
31
32
|
import getYear from 'date-fns/getYear';
|
|
32
33
|
import isAfter from 'date-fns/isAfter';
|
|
@@ -43,6 +44,7 @@ import setHours from 'date-fns/setHours';
|
|
|
43
44
|
import setMinutes from 'date-fns/setMinutes';
|
|
44
45
|
import setMonth from 'date-fns/setMonth';
|
|
45
46
|
import setSeconds from 'date-fns/setSeconds';
|
|
47
|
+
import setMilliseconds from 'date-fns/setMilliseconds';
|
|
46
48
|
import setYear from 'date-fns/setYear';
|
|
47
49
|
import startOfDay from 'date-fns/startOfDay';
|
|
48
50
|
import startOfMonth from 'date-fns/startOfMonth';
|
|
@@ -281,6 +283,7 @@ export class AdapterDateFns {
|
|
|
281
283
|
formats
|
|
282
284
|
} = {}) {
|
|
283
285
|
this.isMUIAdapter = true;
|
|
286
|
+
this.isTimezoneCompatible = false;
|
|
284
287
|
this.lib = 'date-fns';
|
|
285
288
|
this.locale = void 0;
|
|
286
289
|
this.formats = void 0;
|
|
@@ -298,6 +301,15 @@ export class AdapterDateFns {
|
|
|
298
301
|
}
|
|
299
302
|
return new Date(value);
|
|
300
303
|
};
|
|
304
|
+
this.dateWithTimezone = value => {
|
|
305
|
+
return this.date(value);
|
|
306
|
+
};
|
|
307
|
+
this.getTimezone = () => {
|
|
308
|
+
return 'default';
|
|
309
|
+
};
|
|
310
|
+
this.setTimezone = value => {
|
|
311
|
+
return value;
|
|
312
|
+
};
|
|
301
313
|
this.toJsDate = value => {
|
|
302
314
|
return value;
|
|
303
315
|
};
|
|
@@ -498,6 +510,9 @@ export class AdapterDateFns {
|
|
|
498
510
|
this.getSeconds = value => {
|
|
499
511
|
return getSeconds(value);
|
|
500
512
|
};
|
|
513
|
+
this.getMilliseconds = value => {
|
|
514
|
+
return getMilliseconds(value);
|
|
515
|
+
};
|
|
501
516
|
this.setYear = (value, year) => {
|
|
502
517
|
return setYear(value, year);
|
|
503
518
|
};
|
|
@@ -516,6 +531,9 @@ export class AdapterDateFns {
|
|
|
516
531
|
this.setSeconds = (value, seconds) => {
|
|
517
532
|
return setSeconds(value, seconds);
|
|
518
533
|
};
|
|
534
|
+
this.setMilliseconds = (value, milliseconds) => {
|
|
535
|
+
return setMilliseconds(value, milliseconds);
|
|
536
|
+
};
|
|
519
537
|
this.getDaysInMonth = value => {
|
|
520
538
|
return getDaysInMonth(value);
|
|
521
539
|
};
|
|
@@ -28,6 +28,7 @@ type DateFnsLocale = typeof defaultLocale;
|
|
|
28
28
|
*/
|
|
29
29
|
export declare class AdapterDateFnsJalali implements MuiPickersAdapter<Date, DateFnsLocale> {
|
|
30
30
|
isMUIAdapter: boolean;
|
|
31
|
+
isTimezoneCompatible: boolean;
|
|
31
32
|
lib: string;
|
|
32
33
|
locale?: DateFnsLocale;
|
|
33
34
|
formats: AdapterFormats;
|
|
@@ -38,6 +39,9 @@ export declare class AdapterDateFnsJalali implements MuiPickersAdapter<Date, Dat
|
|
|
38
39
|
};
|
|
39
40
|
constructor({ locale, formats }?: AdapterOptions<DateFnsLocale, never>);
|
|
40
41
|
date: (value?: any) => Date | null;
|
|
42
|
+
dateWithTimezone: (value: string | null | undefined) => Date | null;
|
|
43
|
+
getTimezone: () => string;
|
|
44
|
+
setTimezone: (value: Date) => Date;
|
|
41
45
|
toJsDate: (value: Date) => Date;
|
|
42
46
|
parseISO: (isoString: string) => Date;
|
|
43
47
|
toISO: (value: Date) => string;
|
|
@@ -85,12 +89,14 @@ export declare class AdapterDateFnsJalali implements MuiPickersAdapter<Date, Dat
|
|
|
85
89
|
getHours: (value: Date) => number;
|
|
86
90
|
getMinutes: (value: Date) => number;
|
|
87
91
|
getSeconds: (value: Date) => number;
|
|
92
|
+
getMilliseconds: (value: Date) => number;
|
|
88
93
|
setYear: (value: Date, year: number) => Date;
|
|
89
94
|
setMonth: (value: Date, month: number) => Date;
|
|
90
95
|
setDate: (value: Date, date: number) => Date;
|
|
91
96
|
setHours: (value: Date, hours: number) => Date;
|
|
92
97
|
setMinutes: (value: Date, minutes: number) => Date;
|
|
93
98
|
setSeconds: (value: Date, seconds: number) => Date;
|
|
99
|
+
setMilliseconds: (value: Date, milliseconds: number) => Date;
|
|
94
100
|
getDaysInMonth: (value: Date) => number;
|
|
95
101
|
getNextMonth: (value: Date) => Date;
|
|
96
102
|
getPreviousMonth: (value: Date) => Date;
|
|
@@ -24,6 +24,7 @@ import dateFnsFormat from 'date-fns-jalali/format';
|
|
|
24
24
|
import formatISO from 'date-fns-jalali/formatISO';
|
|
25
25
|
import getHours from 'date-fns-jalali/getHours';
|
|
26
26
|
import getSeconds from 'date-fns-jalali/getSeconds';
|
|
27
|
+
import getMilliseconds from 'date-fns-jalali/getMilliseconds';
|
|
27
28
|
import getWeek from 'date-fns-jalali/getWeek';
|
|
28
29
|
import getYear from 'date-fns-jalali/getYear';
|
|
29
30
|
import getMonth from 'date-fns-jalali/getMonth';
|
|
@@ -45,6 +46,7 @@ import setHours from 'date-fns-jalali/setHours';
|
|
|
45
46
|
import setMinutes from 'date-fns-jalali/setMinutes';
|
|
46
47
|
import setMonth from 'date-fns-jalali/setMonth';
|
|
47
48
|
import setSeconds from 'date-fns-jalali/setSeconds';
|
|
49
|
+
import setMilliseconds from 'date-fns-jalali/setMilliseconds';
|
|
48
50
|
import setYear from 'date-fns-jalali/setYear';
|
|
49
51
|
import startOfDay from 'date-fns-jalali/startOfDay';
|
|
50
52
|
import startOfMonth from 'date-fns-jalali/startOfMonth';
|
|
@@ -293,6 +295,7 @@ export class AdapterDateFnsJalali {
|
|
|
293
295
|
formats
|
|
294
296
|
} = {}) {
|
|
295
297
|
this.isMUIAdapter = true;
|
|
298
|
+
this.isTimezoneCompatible = false;
|
|
296
299
|
this.lib = 'date-fns-jalali';
|
|
297
300
|
this.locale = void 0;
|
|
298
301
|
this.formats = void 0;
|
|
@@ -310,6 +313,15 @@ export class AdapterDateFnsJalali {
|
|
|
310
313
|
}
|
|
311
314
|
return new Date(value);
|
|
312
315
|
};
|
|
316
|
+
this.dateWithTimezone = value => {
|
|
317
|
+
return this.date(value);
|
|
318
|
+
};
|
|
319
|
+
this.getTimezone = () => {
|
|
320
|
+
return 'default';
|
|
321
|
+
};
|
|
322
|
+
this.setTimezone = value => {
|
|
323
|
+
return value;
|
|
324
|
+
};
|
|
313
325
|
this.toJsDate = value => {
|
|
314
326
|
return value;
|
|
315
327
|
};
|
|
@@ -510,6 +522,9 @@ export class AdapterDateFnsJalali {
|
|
|
510
522
|
this.getSeconds = value => {
|
|
511
523
|
return getSeconds(value);
|
|
512
524
|
};
|
|
525
|
+
this.getMilliseconds = value => {
|
|
526
|
+
return getMilliseconds(value);
|
|
527
|
+
};
|
|
513
528
|
this.setYear = (value, year) => {
|
|
514
529
|
return setYear(value, year);
|
|
515
530
|
};
|
|
@@ -528,6 +543,9 @@ export class AdapterDateFnsJalali {
|
|
|
528
543
|
this.setSeconds = (value, seconds) => {
|
|
529
544
|
return setSeconds(value, seconds);
|
|
530
545
|
};
|
|
546
|
+
this.setMilliseconds = (value, milliseconds) => {
|
|
547
|
+
return setMilliseconds(value, milliseconds);
|
|
548
|
+
};
|
|
531
549
|
this.getDaysInMonth = value => {
|
|
532
550
|
return getDaysInMonth(value);
|
|
533
551
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import defaultDayjs, { Dayjs } from 'dayjs';
|
|
2
|
-
import { FieldFormatTokenMap, MuiPickersAdapter, AdapterFormats, AdapterUnits, AdapterOptions } from '../models';
|
|
2
|
+
import { FieldFormatTokenMap, MuiPickersAdapter, AdapterFormats, AdapterUnits, AdapterOptions, PickersTimezone } from '../models';
|
|
3
3
|
type Constructor = (...args: Parameters<typeof defaultDayjs>) => Dayjs;
|
|
4
4
|
/**
|
|
5
5
|
* Based on `@date-io/dayjs`
|
|
@@ -28,6 +28,7 @@ type Constructor = (...args: Parameters<typeof defaultDayjs>) => Dayjs;
|
|
|
28
28
|
*/
|
|
29
29
|
export declare class AdapterDayjs implements MuiPickersAdapter<Dayjs, string> {
|
|
30
30
|
isMUIAdapter: boolean;
|
|
31
|
+
isTimezoneCompatible: boolean;
|
|
31
32
|
lib: string;
|
|
32
33
|
rawDayJsInstance: typeof defaultDayjs;
|
|
33
34
|
dayjs: Constructor;
|
|
@@ -39,8 +40,18 @@ export declare class AdapterDayjs implements MuiPickersAdapter<Dayjs, string> {
|
|
|
39
40
|
};
|
|
40
41
|
formatTokenMap: FieldFormatTokenMap;
|
|
41
42
|
constructor({ locale, formats, instance }?: AdapterOptions<string, typeof defaultDayjs>);
|
|
43
|
+
private setLocaleToValue;
|
|
44
|
+
private hasUTCPlugin;
|
|
45
|
+
private hasTimezonePlugin;
|
|
46
|
+
private isSame;
|
|
47
|
+
private createSystemDate;
|
|
48
|
+
private createUTCDate;
|
|
49
|
+
private createTZDate;
|
|
42
50
|
private getLocaleFormats;
|
|
43
51
|
date: (value?: any) => defaultDayjs.Dayjs | null;
|
|
52
|
+
dateWithTimezone: (value: string | null | undefined, timezone: PickersTimezone) => Dayjs | null;
|
|
53
|
+
getTimezone: (value: Dayjs) => string;
|
|
54
|
+
setTimezone: (value: Dayjs, timezone: PickersTimezone) => Dayjs;
|
|
44
55
|
toJsDate: (value: Dayjs) => Date;
|
|
45
56
|
parseISO: (isoString: string) => defaultDayjs.Dayjs;
|
|
46
57
|
toISO: (value: Dayjs) => string;
|
|
@@ -88,12 +99,14 @@ export declare class AdapterDayjs implements MuiPickersAdapter<Dayjs, string> {
|
|
|
88
99
|
getHours: (value: Dayjs) => number;
|
|
89
100
|
getMinutes: (value: Dayjs) => number;
|
|
90
101
|
getSeconds: (value: Dayjs) => number;
|
|
102
|
+
getMilliseconds: (value: Dayjs) => number;
|
|
91
103
|
setYear: (value: Dayjs, year: number) => defaultDayjs.Dayjs;
|
|
92
104
|
setMonth: (value: Dayjs, month: number) => defaultDayjs.Dayjs;
|
|
93
105
|
setDate: (value: Dayjs, date: number) => defaultDayjs.Dayjs;
|
|
94
106
|
setHours: (value: Dayjs, hours: number) => defaultDayjs.Dayjs;
|
|
95
107
|
setMinutes: (value: Dayjs, minutes: number) => defaultDayjs.Dayjs;
|
|
96
108
|
setSeconds: (value: Dayjs, seconds: number) => defaultDayjs.Dayjs;
|
|
109
|
+
setMilliseconds: (value: Dayjs, milliseconds: number) => defaultDayjs.Dayjs;
|
|
97
110
|
getDaysInMonth: (value: Dayjs) => number;
|
|
98
111
|
getNextMonth: (value: Dayjs) => defaultDayjs.Dayjs;
|
|
99
112
|
getPreviousMonth: (value: Dayjs) => defaultDayjs.Dayjs;
|
|
@@ -122,6 +122,8 @@ const defaultFormats = {
|
|
|
122
122
|
keyboardDateTime12h: 'L hh:mm A',
|
|
123
123
|
keyboardDateTime24h: 'L HH:mm'
|
|
124
124
|
};
|
|
125
|
+
const MISSING_UTC_PLUGIN = ['Missing UTC plugin', 'To be able to use UTC or timezones, you have to enable the `utc` plugin', 'Find more information on https://mui.com/x/react-date-pickers/timezone/#day-js-and-utc'].join('\n');
|
|
126
|
+
const MISSING_TIMEZONE_PLUGIN = ['Missing timezone plugin', 'To be able to use timezones, you have to enable both the `utc` and the `timezone` plugin', 'Find more information on https://mui.com/x/react-date-pickers/timezone/#day-js-and-timezone'].join('\n');
|
|
125
127
|
const withLocale = (dayjs, locale) => !locale ? dayjs : (...args) => dayjs(...args).locale(locale);
|
|
126
128
|
|
|
127
129
|
/**
|
|
@@ -156,6 +158,7 @@ export class AdapterDayjs {
|
|
|
156
158
|
instance
|
|
157
159
|
} = {}) {
|
|
158
160
|
this.isMUIAdapter = true;
|
|
161
|
+
this.isTimezoneCompatible = true;
|
|
159
162
|
this.lib = 'dayjs';
|
|
160
163
|
this.rawDayJsInstance = void 0;
|
|
161
164
|
this.dayjs = void 0;
|
|
@@ -166,6 +169,44 @@ export class AdapterDayjs {
|
|
|
166
169
|
end: ']'
|
|
167
170
|
};
|
|
168
171
|
this.formatTokenMap = formatTokenMap;
|
|
172
|
+
this.setLocaleToValue = value => {
|
|
173
|
+
const expectedLocale = this.getCurrentLocaleCode();
|
|
174
|
+
if (expectedLocale === value.locale()) {
|
|
175
|
+
return value;
|
|
176
|
+
}
|
|
177
|
+
return value.locale(expectedLocale);
|
|
178
|
+
};
|
|
179
|
+
this.hasUTCPlugin = () => typeof defaultDayjs.utc !== 'undefined';
|
|
180
|
+
this.hasTimezonePlugin = () => typeof defaultDayjs.tz !== 'undefined';
|
|
181
|
+
this.isSame = (value, comparing, comparisonTemplate) => {
|
|
182
|
+
const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
|
|
183
|
+
return value.format(comparisonTemplate) === comparingInValueTimezone.format(comparisonTemplate);
|
|
184
|
+
};
|
|
185
|
+
this.createSystemDate = value => {
|
|
186
|
+
// TODO v7: Stop using `this.rawDayJsInstance` (drop the `instance` param on the adapters)
|
|
187
|
+
return this.rawDayJsInstance(value);
|
|
188
|
+
};
|
|
189
|
+
this.createUTCDate = value => {
|
|
190
|
+
/* istanbul ignore next */
|
|
191
|
+
if (!this.hasUTCPlugin()) {
|
|
192
|
+
throw new Error(MISSING_UTC_PLUGIN);
|
|
193
|
+
}
|
|
194
|
+
return defaultDayjs.utc(value);
|
|
195
|
+
};
|
|
196
|
+
this.createTZDate = (value, timezone) => {
|
|
197
|
+
/* istanbul ignore next */
|
|
198
|
+
if (!this.hasUTCPlugin()) {
|
|
199
|
+
throw new Error(MISSING_UTC_PLUGIN);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/* istanbul ignore next */
|
|
203
|
+
if (!this.hasTimezonePlugin()) {
|
|
204
|
+
throw new Error(MISSING_TIMEZONE_PLUGIN);
|
|
205
|
+
}
|
|
206
|
+
const cleanTimezone = timezone === 'default' ? undefined : timezone;
|
|
207
|
+
const keepLocalTime = value !== undefined && !value.endsWith('Z');
|
|
208
|
+
return defaultDayjs(value).tz(cleanTimezone, keepLocalTime);
|
|
209
|
+
};
|
|
169
210
|
this.getLocaleFormats = () => {
|
|
170
211
|
const locales = defaultDayjs.Ls;
|
|
171
212
|
const locale = this.locale || 'en';
|
|
@@ -182,6 +223,63 @@ export class AdapterDayjs {
|
|
|
182
223
|
}
|
|
183
224
|
return this.dayjs(value);
|
|
184
225
|
};
|
|
226
|
+
this.dateWithTimezone = (value, timezone) => {
|
|
227
|
+
if (value === null) {
|
|
228
|
+
return null;
|
|
229
|
+
}
|
|
230
|
+
let parsedValue;
|
|
231
|
+
if (timezone === 'UTC') {
|
|
232
|
+
parsedValue = this.createUTCDate(value);
|
|
233
|
+
} else if (timezone === 'system' || timezone === 'default' && !this.hasTimezonePlugin()) {
|
|
234
|
+
parsedValue = this.createSystemDate(value);
|
|
235
|
+
} else {
|
|
236
|
+
parsedValue = this.createTZDate(value, timezone);
|
|
237
|
+
}
|
|
238
|
+
if (this.locale === undefined) {
|
|
239
|
+
return parsedValue;
|
|
240
|
+
}
|
|
241
|
+
return parsedValue.locale(this.locale);
|
|
242
|
+
};
|
|
243
|
+
this.getTimezone = value => {
|
|
244
|
+
if (this.hasUTCPlugin() && value.isUTC()) {
|
|
245
|
+
return 'UTC';
|
|
246
|
+
}
|
|
247
|
+
if (this.hasTimezonePlugin()) {
|
|
248
|
+
var _value$$x;
|
|
249
|
+
// @ts-ignore
|
|
250
|
+
const zone = (_value$$x = value.$x) == null ? void 0 : _value$$x.$timezone;
|
|
251
|
+
return zone != null ? zone : 'system';
|
|
252
|
+
}
|
|
253
|
+
return 'system';
|
|
254
|
+
};
|
|
255
|
+
this.setTimezone = (value, timezone) => {
|
|
256
|
+
if (this.getTimezone(value) === timezone) {
|
|
257
|
+
return value;
|
|
258
|
+
}
|
|
259
|
+
if (timezone === 'UTC') {
|
|
260
|
+
/* istanbul ignore next */
|
|
261
|
+
if (!this.hasUTCPlugin()) {
|
|
262
|
+
throw new Error(MISSING_UTC_PLUGIN);
|
|
263
|
+
}
|
|
264
|
+
return value.utc();
|
|
265
|
+
}
|
|
266
|
+
if (timezone === 'system') {
|
|
267
|
+
if (this.hasUTCPlugin()) {
|
|
268
|
+
return value.local();
|
|
269
|
+
}
|
|
270
|
+
return value;
|
|
271
|
+
}
|
|
272
|
+
if (!this.hasTimezonePlugin()) {
|
|
273
|
+
if (timezone === 'default') {
|
|
274
|
+
return value;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/* istanbul ignore next */
|
|
278
|
+
throw new Error(MISSING_TIMEZONE_PLUGIN);
|
|
279
|
+
}
|
|
280
|
+
const cleanZone = timezone === 'default' ? undefined : timezone;
|
|
281
|
+
return defaultDayjs.tz(value, cleanZone);
|
|
282
|
+
};
|
|
185
283
|
this.toJsDate = value => {
|
|
186
284
|
return value.toDate();
|
|
187
285
|
};
|
|
@@ -242,37 +340,49 @@ export class AdapterDayjs {
|
|
|
242
340
|
return this.dayjs(value).isSame(comparing);
|
|
243
341
|
};
|
|
244
342
|
this.isSameYear = (value, comparing) => {
|
|
245
|
-
return
|
|
343
|
+
return this.isSame(value, comparing, 'YYYY');
|
|
246
344
|
};
|
|
247
345
|
this.isSameMonth = (value, comparing) => {
|
|
248
|
-
return
|
|
346
|
+
return this.isSame(value, comparing, 'YYYY-MM');
|
|
249
347
|
};
|
|
250
348
|
this.isSameDay = (value, comparing) => {
|
|
251
|
-
return
|
|
349
|
+
return this.isSame(value, comparing, 'YYYY-MM-DD');
|
|
252
350
|
};
|
|
253
351
|
this.isSameHour = (value, comparing) => {
|
|
254
352
|
return value.isSame(comparing, 'hour');
|
|
255
353
|
};
|
|
256
354
|
this.isAfter = (value, comparing) => {
|
|
257
|
-
return value
|
|
355
|
+
return value > comparing;
|
|
258
356
|
};
|
|
259
357
|
this.isAfterYear = (value, comparing) => {
|
|
260
|
-
|
|
358
|
+
if (!this.hasUTCPlugin()) {
|
|
359
|
+
return value.isAfter(comparing, 'year');
|
|
360
|
+
}
|
|
361
|
+
return !this.isSameYear(value, comparing) && value.utc() > comparing.utc();
|
|
261
362
|
};
|
|
262
363
|
this.isAfterDay = (value, comparing) => {
|
|
263
|
-
|
|
364
|
+
if (!this.hasUTCPlugin()) {
|
|
365
|
+
return value.isAfter(comparing, 'day');
|
|
366
|
+
}
|
|
367
|
+
return !this.isSameDay(value, comparing) && value.utc() > comparing.utc();
|
|
264
368
|
};
|
|
265
369
|
this.isBefore = (value, comparing) => {
|
|
266
|
-
return value
|
|
370
|
+
return value < comparing;
|
|
267
371
|
};
|
|
268
372
|
this.isBeforeYear = (value, comparing) => {
|
|
269
|
-
|
|
373
|
+
if (!this.hasUTCPlugin()) {
|
|
374
|
+
return value.isBefore(comparing, 'year');
|
|
375
|
+
}
|
|
376
|
+
return !this.isSameYear(value, comparing) && value.utc() < comparing.utc();
|
|
270
377
|
};
|
|
271
378
|
this.isBeforeDay = (value, comparing) => {
|
|
272
|
-
|
|
379
|
+
if (!this.hasUTCPlugin()) {
|
|
380
|
+
return value.isBefore(comparing, 'day');
|
|
381
|
+
}
|
|
382
|
+
return !this.isSameDay(value, comparing) && value.utc() < comparing.utc();
|
|
273
383
|
};
|
|
274
384
|
this.isWithinRange = (value, [start, end]) => {
|
|
275
|
-
return value
|
|
385
|
+
return value >= start && value <= end;
|
|
276
386
|
};
|
|
277
387
|
this.startOfYear = value => {
|
|
278
388
|
return value.startOf('year');
|
|
@@ -337,6 +447,9 @@ export class AdapterDayjs {
|
|
|
337
447
|
this.getSeconds = value => {
|
|
338
448
|
return value.second();
|
|
339
449
|
};
|
|
450
|
+
this.getMilliseconds = value => {
|
|
451
|
+
return value.millisecond();
|
|
452
|
+
};
|
|
340
453
|
this.setYear = (value, year) => {
|
|
341
454
|
return value.set('year', year);
|
|
342
455
|
};
|
|
@@ -355,6 +468,9 @@ export class AdapterDayjs {
|
|
|
355
468
|
this.setSeconds = (value, seconds) => {
|
|
356
469
|
return value.set('second', seconds);
|
|
357
470
|
};
|
|
471
|
+
this.setMilliseconds = (value, milliseconds) => {
|
|
472
|
+
return value.set('millisecond', milliseconds);
|
|
473
|
+
};
|
|
358
474
|
this.getDaysInMonth = value => {
|
|
359
475
|
return value.daysInMonth();
|
|
360
476
|
};
|
|
@@ -381,12 +497,13 @@ export class AdapterDayjs {
|
|
|
381
497
|
return [0, 1, 2, 3, 4, 5, 6].map(diff => this.formatByString(start.add(diff, 'day'), 'dd'));
|
|
382
498
|
};
|
|
383
499
|
this.getWeekArray = value => {
|
|
384
|
-
const
|
|
385
|
-
const
|
|
500
|
+
const cleanLocale = this.setLocaleToValue(value);
|
|
501
|
+
const start = cleanLocale.startOf('month').startOf('week');
|
|
502
|
+
const end = cleanLocale.endOf('month').endOf('week');
|
|
386
503
|
let count = 0;
|
|
387
504
|
let current = start;
|
|
388
505
|
const nestedWeeks = [];
|
|
389
|
-
while (current
|
|
506
|
+
while (current < end) {
|
|
390
507
|
const weekNumber = Math.floor(count / 7);
|
|
391
508
|
nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
|
|
392
509
|
nestedWeeks[weekNumber].push(current);
|
|
@@ -403,7 +520,7 @@ export class AdapterDayjs {
|
|
|
403
520
|
const endDate = end.endOf('year');
|
|
404
521
|
const years = [];
|
|
405
522
|
let current = startDate;
|
|
406
|
-
while (current
|
|
523
|
+
while (current < endDate) {
|
|
407
524
|
years.push(current);
|
|
408
525
|
current = current.add(1, 'year');
|
|
409
526
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DateTime } from 'luxon';
|
|
2
|
-
import { AdapterFormats, AdapterOptions, AdapterUnits, FieldFormatTokenMap, MuiPickersAdapter } from '../models';
|
|
2
|
+
import { AdapterFormats, AdapterOptions, AdapterUnits, FieldFormatTokenMap, MuiPickersAdapter, PickersTimezone } from '../models';
|
|
3
3
|
/**
|
|
4
4
|
* Based on `@date-io/luxon`
|
|
5
5
|
*
|
|
@@ -27,6 +27,7 @@ import { AdapterFormats, AdapterOptions, AdapterUnits, FieldFormatTokenMap, MuiP
|
|
|
27
27
|
*/
|
|
28
28
|
export declare class AdapterLuxon implements MuiPickersAdapter<DateTime, string> {
|
|
29
29
|
isMUIAdapter: boolean;
|
|
30
|
+
isTimezoneCompatible: boolean;
|
|
30
31
|
lib: string;
|
|
31
32
|
locale: string;
|
|
32
33
|
formats: AdapterFormats;
|
|
@@ -37,6 +38,9 @@ export declare class AdapterLuxon implements MuiPickersAdapter<DateTime, string>
|
|
|
37
38
|
formatTokenMap: FieldFormatTokenMap;
|
|
38
39
|
constructor({ locale, formats }?: AdapterOptions<string, never>);
|
|
39
40
|
date: (value?: any) => DateTime | null;
|
|
41
|
+
dateWithTimezone: (value: string | null | undefined, timezone: PickersTimezone) => DateTime | null;
|
|
42
|
+
getTimezone: (value: DateTime) => string;
|
|
43
|
+
setTimezone: (value: DateTime, timezone: PickersTimezone) => DateTime;
|
|
40
44
|
toJsDate: (value: DateTime) => Date;
|
|
41
45
|
parseISO: (isoString: string) => DateTime;
|
|
42
46
|
toISO: (value: DateTime) => string;
|
|
@@ -84,12 +88,14 @@ export declare class AdapterLuxon implements MuiPickersAdapter<DateTime, string>
|
|
|
84
88
|
getHours: (value: DateTime) => number;
|
|
85
89
|
getMinutes: (value: DateTime) => number;
|
|
86
90
|
getSeconds: (value: DateTime) => number;
|
|
91
|
+
getMilliseconds: (value: DateTime) => number;
|
|
87
92
|
setYear: (value: DateTime, year: number) => DateTime;
|
|
88
93
|
setMonth: (value: DateTime, month: number) => DateTime;
|
|
89
94
|
setDate: (value: DateTime, date: number) => DateTime;
|
|
90
95
|
setHours: (value: DateTime, hours: number) => DateTime;
|
|
91
96
|
setMinutes: (value: DateTime, minutes: number) => DateTime;
|
|
92
97
|
setSeconds: (value: DateTime, seconds: number) => DateTime;
|
|
98
|
+
setMilliseconds: (value: DateTime, milliseconds: number) => DateTime;
|
|
93
99
|
getDaysInMonth: (value: DateTime) => import("luxon").PossibleDaysInMonth;
|
|
94
100
|
getNextMonth: (value: DateTime) => DateTime;
|
|
95
101
|
getPreviousMonth: (value: DateTime) => DateTime;
|
|
@@ -168,6 +168,7 @@ export class AdapterLuxon {
|
|
|
168
168
|
formats
|
|
169
169
|
} = {}) {
|
|
170
170
|
this.isMUIAdapter = true;
|
|
171
|
+
this.isTimezoneCompatible = true;
|
|
171
172
|
this.lib = 'luxon';
|
|
172
173
|
this.locale = void 0;
|
|
173
174
|
this.formats = void 0;
|
|
@@ -198,6 +199,38 @@ export class AdapterLuxon {
|
|
|
198
199
|
locale: this.locale
|
|
199
200
|
});
|
|
200
201
|
};
|
|
202
|
+
this.dateWithTimezone = (value, timezone) => {
|
|
203
|
+
if (value === null) {
|
|
204
|
+
return null;
|
|
205
|
+
}
|
|
206
|
+
if (typeof value === 'undefined') {
|
|
207
|
+
// @ts-ignore
|
|
208
|
+
return DateTime.fromJSDate(new Date(), {
|
|
209
|
+
locale: this.locale,
|
|
210
|
+
zone: timezone
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// @ts-ignore
|
|
215
|
+
return DateTime.fromISO(value, {
|
|
216
|
+
locale: this.locale,
|
|
217
|
+
zone: timezone
|
|
218
|
+
});
|
|
219
|
+
};
|
|
220
|
+
this.getTimezone = value => {
|
|
221
|
+
var _value$zoneName;
|
|
222
|
+
// When using the system zone, we want to return "system", not something like "Europe/Paris"
|
|
223
|
+
if (value.zone.type === 'system') {
|
|
224
|
+
return 'system';
|
|
225
|
+
}
|
|
226
|
+
return (_value$zoneName = value.zoneName) != null ? _value$zoneName : 'system';
|
|
227
|
+
};
|
|
228
|
+
this.setTimezone = (value, timezone) => {
|
|
229
|
+
if (!value.zone.equals(Info.normalizeZone(timezone))) {
|
|
230
|
+
return value.setZone(timezone);
|
|
231
|
+
}
|
|
232
|
+
return value;
|
|
233
|
+
};
|
|
201
234
|
this.toJsDate = value => {
|
|
202
235
|
return value.toJSDate();
|
|
203
236
|
};
|
|
@@ -290,40 +323,48 @@ export class AdapterLuxon {
|
|
|
290
323
|
if (value === null || comparing === null) {
|
|
291
324
|
return false;
|
|
292
325
|
}
|
|
293
|
-
return this.date(value)
|
|
326
|
+
return +this.date(value) === +this.date(comparing);
|
|
294
327
|
};
|
|
295
328
|
this.isSameYear = (value, comparing) => {
|
|
296
|
-
|
|
329
|
+
const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
|
|
330
|
+
return value.hasSame(comparingInValueTimezone, 'year');
|
|
297
331
|
};
|
|
298
332
|
this.isSameMonth = (value, comparing) => {
|
|
299
|
-
|
|
333
|
+
const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
|
|
334
|
+
return value.hasSame(comparingInValueTimezone, 'month');
|
|
300
335
|
};
|
|
301
336
|
this.isSameDay = (value, comparing) => {
|
|
302
|
-
|
|
337
|
+
const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
|
|
338
|
+
return value.hasSame(comparingInValueTimezone, 'day');
|
|
303
339
|
};
|
|
304
340
|
this.isSameHour = (value, comparing) => {
|
|
305
|
-
|
|
341
|
+
const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
|
|
342
|
+
return value.hasSame(comparingInValueTimezone, 'hour');
|
|
306
343
|
};
|
|
307
344
|
this.isAfter = (value, comparing) => {
|
|
308
345
|
return value > comparing;
|
|
309
346
|
};
|
|
310
347
|
this.isAfterYear = (value, comparing) => {
|
|
311
|
-
const
|
|
348
|
+
const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
|
|
349
|
+
const diff = value.diff(comparingInValueTimezone.endOf('year'), 'years').toObject();
|
|
312
350
|
return diff.years > 0;
|
|
313
351
|
};
|
|
314
352
|
this.isAfterDay = (value, comparing) => {
|
|
315
|
-
const
|
|
353
|
+
const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
|
|
354
|
+
const diff = value.diff(comparingInValueTimezone.endOf('day'), 'days').toObject();
|
|
316
355
|
return diff.days > 0;
|
|
317
356
|
};
|
|
318
357
|
this.isBefore = (value, comparing) => {
|
|
319
358
|
return value < comparing;
|
|
320
359
|
};
|
|
321
360
|
this.isBeforeYear = (value, comparing) => {
|
|
322
|
-
const
|
|
361
|
+
const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
|
|
362
|
+
const diff = value.diff(comparingInValueTimezone.startOf('year'), 'years').toObject();
|
|
323
363
|
return diff.years < 0;
|
|
324
364
|
};
|
|
325
365
|
this.isBeforeDay = (value, comparing) => {
|
|
326
|
-
const
|
|
366
|
+
const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
|
|
367
|
+
const diff = value.diff(comparingInValueTimezone.startOf('day'), 'days').toObject();
|
|
327
368
|
return diff.days < 0;
|
|
328
369
|
};
|
|
329
370
|
this.isWithinRange = (value, [start, end]) => {
|
|
@@ -407,6 +448,9 @@ export class AdapterLuxon {
|
|
|
407
448
|
this.getSeconds = value => {
|
|
408
449
|
return value.get('second');
|
|
409
450
|
};
|
|
451
|
+
this.getMilliseconds = value => {
|
|
452
|
+
return value.get('millisecond');
|
|
453
|
+
};
|
|
410
454
|
this.setYear = (value, year) => {
|
|
411
455
|
return value.set({
|
|
412
456
|
year
|
|
@@ -437,6 +481,11 @@ export class AdapterLuxon {
|
|
|
437
481
|
second: seconds
|
|
438
482
|
});
|
|
439
483
|
};
|
|
484
|
+
this.setMilliseconds = (value, milliseconds) => {
|
|
485
|
+
return value.set({
|
|
486
|
+
millisecond: milliseconds
|
|
487
|
+
});
|
|
488
|
+
};
|
|
440
489
|
this.getDaysInMonth = value => {
|
|
441
490
|
return value.daysInMonth;
|
|
442
491
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import defaultMoment, { Moment } from 'moment';
|
|
2
|
-
import { AdapterFormats, AdapterOptions, AdapterUnits, FieldFormatTokenMap, MuiPickersAdapter } from '../models';
|
|
2
|
+
import { AdapterFormats, AdapterOptions, AdapterUnits, FieldFormatTokenMap, MuiPickersAdapter, PickersTimezone } from '../models';
|
|
3
3
|
/**
|
|
4
4
|
* Based on `@date-io/moment`
|
|
5
5
|
*
|
|
@@ -27,6 +27,7 @@ import { AdapterFormats, AdapterOptions, AdapterUnits, FieldFormatTokenMap, MuiP
|
|
|
27
27
|
*/
|
|
28
28
|
export declare class AdapterMoment implements MuiPickersAdapter<Moment, string> {
|
|
29
29
|
isMUIAdapter: boolean;
|
|
30
|
+
isTimezoneCompatible: boolean;
|
|
30
31
|
lib: string;
|
|
31
32
|
moment: typeof defaultMoment;
|
|
32
33
|
locale?: string;
|
|
@@ -37,7 +38,15 @@ export declare class AdapterMoment implements MuiPickersAdapter<Moment, string>
|
|
|
37
38
|
};
|
|
38
39
|
formatTokenMap: FieldFormatTokenMap;
|
|
39
40
|
constructor({ locale, formats, instance }?: AdapterOptions<string, typeof defaultMoment>);
|
|
41
|
+
private setLocaleToValue;
|
|
42
|
+
private hasTimezonePlugin;
|
|
43
|
+
private createSystemDate;
|
|
44
|
+
private createUTCDate;
|
|
45
|
+
private createTZDate;
|
|
40
46
|
date: (value?: any) => defaultMoment.Moment | null;
|
|
47
|
+
dateWithTimezone: (value: string | null | undefined, timezone: PickersTimezone) => Moment | null;
|
|
48
|
+
getTimezone: (value: Moment) => string;
|
|
49
|
+
setTimezone: (value: Moment, timezone: PickersTimezone) => Moment;
|
|
41
50
|
toJsDate: (value: Moment) => Date;
|
|
42
51
|
parseISO: (isoString: string) => defaultMoment.Moment;
|
|
43
52
|
toISO: (value: Moment) => string;
|
|
@@ -85,12 +94,14 @@ export declare class AdapterMoment implements MuiPickersAdapter<Moment, string>
|
|
|
85
94
|
getHours: (value: Moment) => number;
|
|
86
95
|
getMinutes: (value: Moment) => number;
|
|
87
96
|
getSeconds: (value: Moment) => number;
|
|
97
|
+
getMilliseconds: (value: Moment) => number;
|
|
88
98
|
setYear: (value: Moment, year: number) => defaultMoment.Moment;
|
|
89
99
|
setMonth: (value: Moment, month: number) => defaultMoment.Moment;
|
|
90
100
|
setDate: (value: Moment, date: number) => defaultMoment.Moment;
|
|
91
101
|
setHours: (value: Moment, hours: number) => defaultMoment.Moment;
|
|
92
102
|
setMinutes: (value: Moment, minutes: number) => defaultMoment.Moment;
|
|
93
103
|
setSeconds: (value: Moment, seconds: number) => defaultMoment.Moment;
|
|
104
|
+
setMilliseconds: (value: Moment, milliseconds: number) => defaultMoment.Moment;
|
|
94
105
|
getDaysInMonth: (value: Moment) => number;
|
|
95
106
|
getNextMonth: (value: Moment) => defaultMoment.Moment;
|
|
96
107
|
getPreviousMonth: (value: Moment) => defaultMoment.Moment;
|