@mui/x-date-pickers 6.5.0 → 6.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/AdapterDateFns/AdapterDateFns.d.ts +6 -0
- package/AdapterDateFns/AdapterDateFns.js +38 -19
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +6 -0
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +35 -16
- package/AdapterDayjs/AdapterDayjs.d.ts +14 -1
- package/AdapterDayjs/AdapterDayjs.js +143 -25
- package/AdapterLuxon/AdapterLuxon.d.ts +7 -1
- package/AdapterLuxon/AdapterLuxon.js +78 -28
- package/AdapterMoment/AdapterMoment.d.ts +12 -1
- package/AdapterMoment/AdapterMoment.js +103 -13
- package/AdapterMomentHijri/AdapterMomentHijri.d.ts +4 -0
- package/AdapterMomentHijri/AdapterMomentHijri.js +30 -19
- package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +4 -0
- package/AdapterMomentJalaali/AdapterMomentJalaali.js +30 -19
- package/CHANGELOG.md +150 -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/DatePicker/DatePickerToolbar.js +6 -15
- package/DatePicker/shared.d.ts +1 -5
- package/DatePicker/shared.js +1 -16
- 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 +5 -4
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +58 -11
- package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +10 -3
- package/DesktopTimePicker/DesktopTimePicker.js +7 -3
- package/LocalizationProvider/LocalizationProvider.js +1 -0
- package/MobileDatePicker/MobileDatePicker.js +3 -2
- package/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
- package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +8 -7
- package/MobileTimePicker/MobileTimePicker.js +5 -1
- 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/TimePicker/shared.d.ts +1 -1
- 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-time-utils.d.ts +6 -0
- package/internals/utils/date-time-utils.js +41 -0
- package/internals/utils/date-utils.d.ts +8 -1
- package/internals/utils/date-utils.js +35 -0
- 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 +8 -2
- package/internals/utils/time-utils.js +28 -0
- package/internals/utils/validation/extractValidationProps.d.ts +1 -1
- package/internals/utils/valueManagers.js +21 -3
- package/internals/utils/views.d.ts +2 -3
- package/internals/utils/views.js +6 -2
- package/legacy/AdapterDateFns/AdapterDateFns.js +38 -19
- package/legacy/AdapterDateFnsJalali/AdapterDateFnsJalali.js +35 -16
- package/legacy/AdapterDayjs/AdapterDayjs.js +147 -25
- package/legacy/AdapterLuxon/AdapterLuxon.js +78 -28
- package/legacy/AdapterMoment/AdapterMoment.js +109 -17
- package/legacy/AdapterMomentHijri/AdapterMomentHijri.js +30 -19
- package/legacy/AdapterMomentJalaali/AdapterMomentJalaali.js +30 -19
- package/legacy/DateCalendar/DateCalendar.js +2 -2
- package/legacy/DateCalendar/PickersCalendarHeader.js +2 -2
- package/legacy/DateField/DateField.js +6 -0
- package/legacy/DatePicker/DatePickerToolbar.js +6 -15
- package/legacy/DatePicker/shared.js +1 -15
- 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 +5 -4
- package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +59 -11
- package/legacy/DesktopTimePicker/DesktopTimePicker.js +7 -3
- package/legacy/LocalizationProvider/LocalizationProvider.js +1 -0
- package/legacy/MobileDatePicker/MobileDatePicker.js +3 -2
- package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
- package/legacy/MobileTimePicker/MobileTimePicker.js +5 -1
- 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-time-utils.js +39 -0
- package/legacy/internals/utils/date-utils.js +38 -0
- package/legacy/internals/utils/fields.js +1 -1
- package/legacy/internals/utils/getDefaultReferenceDate.js +64 -0
- package/legacy/internals/utils/time-utils.js +29 -0
- package/legacy/internals/utils/valueManagers.js +20 -4
- package/legacy/internals/utils/views.js +7 -5
- package/legacy/locales/deDE.js +2 -2
- package/legacy/locales/index.js +17 -15
- package/legacy/locales/roRO.js +81 -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/deDE.js +2 -2
- package/locales/index.d.ts +17 -15
- package/locales/index.js +17 -15
- package/locales/roRO.d.ts +53 -0
- package/locales/roRO.js +63 -0
- package/locales/viVN.d.ts +53 -0
- package/locales/viVN.js +57 -0
- package/models/adapters.d.ts +187 -46
- 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 +38 -19
- package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +35 -16
- package/modern/AdapterDayjs/AdapterDayjs.js +142 -25
- package/modern/AdapterLuxon/AdapterLuxon.js +77 -28
- package/modern/AdapterMoment/AdapterMoment.js +102 -13
- package/modern/AdapterMomentHijri/AdapterMomentHijri.js +30 -19
- package/modern/AdapterMomentJalaali/AdapterMomentJalaali.js +30 -19
- package/modern/DateCalendar/DateCalendar.js +2 -2
- package/modern/DateCalendar/PickersCalendarHeader.js +2 -2
- package/modern/DateField/DateField.js +6 -0
- package/modern/DatePicker/DatePickerToolbar.js +6 -15
- package/modern/DatePicker/shared.js +1 -16
- 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 +5 -4
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +57 -10
- package/modern/DesktopTimePicker/DesktopTimePicker.js +7 -3
- package/modern/LocalizationProvider/LocalizationProvider.js +1 -0
- package/modern/MobileDatePicker/MobileDatePicker.js +3 -2
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
- package/modern/MobileTimePicker/MobileTimePicker.js +5 -1
- 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-time-utils.js +41 -0
- package/modern/internals/utils/date-utils.js +35 -0
- package/modern/internals/utils/fields.js +1 -1
- package/modern/internals/utils/getDefaultReferenceDate.js +58 -0
- package/modern/internals/utils/time-utils.js +28 -0
- package/modern/internals/utils/valueManagers.js +21 -3
- package/modern/internals/utils/views.js +6 -2
- package/modern/locales/deDE.js +2 -2
- package/modern/locales/index.js +17 -15
- package/modern/locales/roRO.js +60 -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 +38 -19
- package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +35 -16
- package/node/AdapterDayjs/AdapterDayjs.js +142 -25
- package/node/AdapterLuxon/AdapterLuxon.js +77 -28
- package/node/AdapterMoment/AdapterMoment.js +102 -13
- package/node/AdapterMomentHijri/AdapterMomentHijri.js +30 -19
- package/node/AdapterMomentJalaali/AdapterMomentJalaali.js +30 -19
- package/node/DateCalendar/DateCalendar.js +2 -2
- package/node/DateCalendar/PickersCalendarHeader.js +2 -2
- package/node/DateField/DateField.js +6 -0
- package/node/DatePicker/DatePickerToolbar.js +6 -15
- package/node/DatePicker/shared.js +0 -17
- 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 +4 -3
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +59 -12
- package/node/DesktopTimePicker/DesktopTimePicker.js +9 -5
- package/node/LocalizationProvider/LocalizationProvider.js +1 -0
- package/node/MobileDatePicker/MobileDatePicker.js +2 -1
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +7 -3
- package/node/MobileTimePicker/MobileTimePicker.js +7 -3
- 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-time-utils.js +49 -0
- package/node/internals/utils/date-utils.js +40 -2
- package/node/internals/utils/fields.js +1 -1
- package/node/internals/utils/getDefaultReferenceDate.js +66 -0
- package/node/internals/utils/time-utils.js +32 -2
- package/node/internals/utils/valueManagers.js +21 -2
- package/node/internals/utils/views.js +8 -5
- package/node/locales/deDE.js +2 -2
- package/node/locales/index.js +119 -97
- package/node/locales/roRO.js +67 -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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-date-pickers",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.7.0",
|
|
4
4
|
"description": "The community edition of the date picker components (MUI X).",
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"main": "./node/index.js",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@babel/runtime": "^7.21.0",
|
|
37
|
-
"@mui/utils": "^5.
|
|
37
|
+
"@mui/utils": "^5.13.1",
|
|
38
38
|
"@types/react-transition-group": "^4.4.6",
|
|
39
39
|
"clsx": "^1.2.1",
|
|
40
40
|
"prop-types": "^15.8.1",
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"moment": "^2.29.4",
|
|
54
54
|
"moment-hijri": "^2.1.2",
|
|
55
55
|
"moment-jalaali": "^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0",
|
|
56
|
-
"react": "^17.0.
|
|
57
|
-
"react-dom": "^17.0.
|
|
56
|
+
"react": "^17.0.0 || ^18.0.0",
|
|
57
|
+
"react-dom": "^17.0.0 || ^18.0.0"
|
|
58
58
|
},
|
|
59
59
|
"peerDependenciesMeta": {
|
|
60
60
|
"@emotion/react": {
|
|
@@ -4,10 +4,23 @@ import { testCalculations } from './testCalculations';
|
|
|
4
4
|
import { testLocalization } from './testLocalization';
|
|
5
5
|
import { testFormat } from './testFormat';
|
|
6
6
|
function innerGregorianDescribeAdapter(Adapter, params) {
|
|
7
|
+
var _params$prepareAdapte;
|
|
8
|
+
const prepareAdapter = (_params$prepareAdapte = params.prepareAdapter) != null ? _params$prepareAdapte : e => e;
|
|
7
9
|
const adapter = new Adapter();
|
|
10
|
+
const adapterTZ = params.dateLibInstanceWithTimezoneSupport ? new Adapter({
|
|
11
|
+
dateLibInstance: params.dateLibInstanceWithTimezoneSupport
|
|
12
|
+
}) : new Adapter();
|
|
13
|
+
const adapterFr = new Adapter({
|
|
14
|
+
locale: params.frenchLocale,
|
|
15
|
+
dateLibInstance: params.dateLibInstanceWithTimezoneSupport
|
|
16
|
+
});
|
|
17
|
+
prepareAdapter(adapter);
|
|
18
|
+
prepareAdapter(adapterTZ);
|
|
8
19
|
describe(adapter.lib, () => {
|
|
9
20
|
const testSuitParams = _extends({}, params, {
|
|
10
|
-
adapter
|
|
21
|
+
adapter,
|
|
22
|
+
adapterTZ,
|
|
23
|
+
adapterFr
|
|
11
24
|
});
|
|
12
25
|
testCalculations(testSuitParams);
|
|
13
26
|
testLocalization(testSuitParams);
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
2
|
import { TEST_DATE_ISO_STRING, TEST_DATE_LOCALE_STRING } from './describeGregorianAdapter.utils';
|
|
3
3
|
export const testCalculations = ({
|
|
4
|
-
adapter
|
|
4
|
+
adapter,
|
|
5
|
+
adapterTZ,
|
|
6
|
+
adapterFr,
|
|
7
|
+
setDefaultTimezone
|
|
5
8
|
}) => {
|
|
6
9
|
const testDateIso = adapter.date(TEST_DATE_ISO_STRING);
|
|
7
10
|
const testDateLocale = adapter.date(TEST_DATE_LOCALE_STRING);
|
|
8
11
|
describe('Method: date', () => {
|
|
9
12
|
it('should parse strings', () => {
|
|
10
|
-
expect(adapter.
|
|
11
|
-
expect(adapter.
|
|
13
|
+
expect(adapter.date(TEST_DATE_ISO_STRING)).toEqualDateTime(testDateIso);
|
|
14
|
+
expect(adapter.date(TEST_DATE_LOCALE_STRING)).toEqualDateTime(testDateLocale);
|
|
12
15
|
});
|
|
13
16
|
it('should parse native Date object', () => {
|
|
14
|
-
expect(adapter.
|
|
15
|
-
expect(adapter.
|
|
17
|
+
expect(adapter.date(new Date(TEST_DATE_ISO_STRING))).toEqualDateTime(testDateIso);
|
|
18
|
+
expect(adapter.date(new Date(TEST_DATE_LOCALE_STRING))).toEqualDateTime(testDateLocale);
|
|
16
19
|
});
|
|
17
20
|
it('should parse already-parsed object', () => {
|
|
18
|
-
expect(adapter.
|
|
19
|
-
expect(adapter.
|
|
21
|
+
expect(adapter.date(testDateIso)).toEqualDateTime(testDateIso);
|
|
22
|
+
expect(adapter.date(testDateLocale)).toEqualDateTime(testDateLocale);
|
|
20
23
|
});
|
|
21
24
|
it('should parse null', () => {
|
|
22
25
|
expect(adapter.date(null)).to.equal(null);
|
|
@@ -25,6 +28,111 @@ export const testCalculations = ({
|
|
|
25
28
|
expect(Math.abs(adapter.toJsDate(adapter.date(undefined)).getTime() - Date.now())).to.be.lessThan(5);
|
|
26
29
|
});
|
|
27
30
|
});
|
|
31
|
+
describe('Method: dateWithTimezone', () => {
|
|
32
|
+
it('should parse ISO strings', () => {
|
|
33
|
+
if (adapter.isTimezoneCompatible) {
|
|
34
|
+
const test = (timezone, expectedTimezones = timezone) => {
|
|
35
|
+
[adapterTZ, adapterFr].forEach(instance => {
|
|
36
|
+
const dateWithZone = instance.dateWithTimezone(TEST_DATE_ISO_STRING, timezone);
|
|
37
|
+
expect(instance.getTimezone(dateWithZone)).to.equal(expectedTimezones);
|
|
38
|
+
|
|
39
|
+
// Should keep the time of the value in the UTC timezone
|
|
40
|
+
expect(dateWithZone).toEqualDateTime(TEST_DATE_ISO_STRING);
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
test('UTC');
|
|
44
|
+
test('system');
|
|
45
|
+
test('America/New_York');
|
|
46
|
+
test('Europe/Paris');
|
|
47
|
+
setDefaultTimezone('America/New_York');
|
|
48
|
+
test('default', 'America/New_York');
|
|
49
|
+
setDefaultTimezone('Europe/Paris');
|
|
50
|
+
test('default', 'Europe/Paris');
|
|
51
|
+
|
|
52
|
+
// Reset to the default timezone
|
|
53
|
+
setDefaultTimezone(undefined);
|
|
54
|
+
} else {
|
|
55
|
+
expect(adapter.dateWithTimezone(TEST_DATE_ISO_STRING, 'system')).toEqualDateTime(TEST_DATE_ISO_STRING);
|
|
56
|
+
expect(adapter.dateWithTimezone(TEST_DATE_ISO_STRING, 'default')).toEqualDateTime(TEST_DATE_ISO_STRING);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
it('should parse locale strings', () => {
|
|
60
|
+
if (adapter.isTimezoneCompatible) {
|
|
61
|
+
const test = timezone => {
|
|
62
|
+
[adapterTZ, adapterFr].forEach(instance => {
|
|
63
|
+
const dateWithZone = instance.dateWithTimezone(TEST_DATE_LOCALE_STRING, timezone);
|
|
64
|
+
expect(instance.getTimezone(dateWithZone)).to.equal(timezone);
|
|
65
|
+
|
|
66
|
+
// Should keep the time of the date in the target timezone
|
|
67
|
+
expect(instance.format(dateWithZone, 'fullTime24h')).to.equal('00:00');
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
test('UTC');
|
|
71
|
+
test('system');
|
|
72
|
+
test('America/New_York');
|
|
73
|
+
test('Europe/Paris');
|
|
74
|
+
} else {
|
|
75
|
+
expect(adapter.dateWithTimezone(TEST_DATE_LOCALE_STRING, 'system')).toEqualDateTime(TEST_DATE_LOCALE_STRING);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
it('should parse null', () => {
|
|
79
|
+
expect(adapter.dateWithTimezone(null, 'system')).to.equal(null);
|
|
80
|
+
if (adapter.isTimezoneCompatible) {
|
|
81
|
+
expect(adapter.dateWithTimezone(null, 'UTC')).to.equal(null);
|
|
82
|
+
expect(adapter.dateWithTimezone(null, 'America/New_York')).to.equal(null);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
it('should parse undefined', () => {
|
|
86
|
+
if (adapter.isTimezoneCompatible) {
|
|
87
|
+
const testTodayZone = timezone => {
|
|
88
|
+
const dateWithZone = adapterTZ.dateWithTimezone(undefined, timezone);
|
|
89
|
+
expect(adapterTZ.getTimezone(dateWithZone)).to.equal(timezone);
|
|
90
|
+
expect(adapterTZ.getDiff(dateWithZone, adapterTZ.date(new Date()))).to.be.lessThan(5);
|
|
91
|
+
expect(Math.abs(adapterTZ.toJsDate(dateWithZone).getTime() - Date.now())).to.be.lessThan(5);
|
|
92
|
+
};
|
|
93
|
+
testTodayZone('system');
|
|
94
|
+
testTodayZone('UTC');
|
|
95
|
+
testTodayZone('America/New_York');
|
|
96
|
+
} else {
|
|
97
|
+
expect(Math.abs(adapterTZ.toJsDate(adapter.dateWithTimezone(undefined, 'system')).getTime() - Date.now())).to.be.lessThan(5);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
it('Method: getTimezone', () => {
|
|
102
|
+
if (!adapter.isTimezoneCompatible) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const testTimezone = (timezone, expectedTimezone = timezone) => {
|
|
106
|
+
expect(adapter.getTimezone(adapter.dateWithTimezone(undefined, timezone))).to.equal(expectedTimezone);
|
|
107
|
+
};
|
|
108
|
+
testTimezone('system');
|
|
109
|
+
testTimezone('Europe/Paris');
|
|
110
|
+
testTimezone('America/New_York');
|
|
111
|
+
testTimezone('UTC');
|
|
112
|
+
setDefaultTimezone('America/Chicago');
|
|
113
|
+
testTimezone('default', 'America/Chicago');
|
|
114
|
+
setDefaultTimezone(undefined);
|
|
115
|
+
});
|
|
116
|
+
describe('Method: setTimezone', () => {
|
|
117
|
+
it('should support "default"', () => {
|
|
118
|
+
if (adapter.isTimezoneCompatible) {
|
|
119
|
+
const test = timezone => {
|
|
120
|
+
setDefaultTimezone(timezone);
|
|
121
|
+
const dateWithLocaleTimezone = adapter.dateWithTimezone(undefined, 'system');
|
|
122
|
+
const dateWithDefaultTimezone = adapter.setTimezone(dateWithLocaleTimezone, 'default');
|
|
123
|
+
expect(adapter.getTimezone(dateWithDefaultTimezone)).to.equal(timezone);
|
|
124
|
+
};
|
|
125
|
+
test('America/New_York');
|
|
126
|
+
test('Europe/Paris');
|
|
127
|
+
|
|
128
|
+
// Reset to the default timezone
|
|
129
|
+
setDefaultTimezone(undefined);
|
|
130
|
+
} else {
|
|
131
|
+
const localeDate = adapter.dateWithTimezone(undefined, 'system');
|
|
132
|
+
expect(adapter.setTimezone(localeDate, 'default')).to.equal(localeDate);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
});
|
|
28
136
|
it('Method: toJsDate', () => {
|
|
29
137
|
expect(adapter.toJsDate(testDateIso)).to.be.instanceOf(Date);
|
|
30
138
|
expect(adapter.toJsDate(testDateLocale)).to.be.instanceOf(Date);
|
|
@@ -103,78 +211,238 @@ export const testCalculations = ({
|
|
|
103
211
|
expect(adapter.getDiff(testDateLocale, '2018-09-29', 'weeks')).to.equal(4);
|
|
104
212
|
});
|
|
105
213
|
});
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
214
|
+
describe('Method: isEqual', () => {
|
|
215
|
+
it('should work in the same timezone', () => {
|
|
216
|
+
expect(adapter.isEqual(adapter.date(null), null)).to.equal(true);
|
|
217
|
+
expect(adapter.isEqual(testDateIso, adapter.date(TEST_DATE_ISO_STRING))).to.equal(true);
|
|
218
|
+
expect(adapter.isEqual(null, testDateIso)).to.equal(false);
|
|
219
|
+
expect(adapter.isEqual(testDateLocale, adapter.date(TEST_DATE_LOCALE_STRING))).to.equal(true);
|
|
220
|
+
expect(adapter.isEqual(null, testDateLocale)).to.equal(false);
|
|
221
|
+
});
|
|
222
|
+
it('should work with different timezones', function test() {
|
|
223
|
+
if (!adapter.isTimezoneCompatible) {
|
|
224
|
+
this.skip();
|
|
225
|
+
}
|
|
226
|
+
const dateInLondonTZ = adapterTZ.setTimezone(testDateIso, 'Europe/London');
|
|
227
|
+
const dateInParisTZ = adapterTZ.setTimezone(testDateIso, 'Europe/Paris');
|
|
228
|
+
expect(adapterTZ.isEqual(dateInLondonTZ, dateInParisTZ)).to.equal(true);
|
|
229
|
+
});
|
|
230
|
+
});
|
|
231
|
+
describe('Method: isSameYear', () => {
|
|
232
|
+
it('should work in the same timezone', () => {
|
|
233
|
+
expect(adapter.isSameYear(testDateIso, adapter.date('2018-10-01T00:00:00.000Z'))).to.equal(true);
|
|
234
|
+
expect(adapter.isSameYear(testDateIso, adapter.date('2019-10-01T00:00:00.000Z'))).to.equal(false);
|
|
235
|
+
expect(adapter.isSameYear(testDateLocale, adapter.date('2018-10-01T00:00:00.000Z'))).to.equal(true);
|
|
236
|
+
expect(adapter.isSameYear(testDateLocale, adapter.date('2019-10-01T00:00:00.000Z'))).to.equal(false);
|
|
237
|
+
});
|
|
238
|
+
it('should work with different timezones', function test() {
|
|
239
|
+
if (!adapter.isTimezoneCompatible) {
|
|
240
|
+
this.skip();
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
// Both dates below have the same timestamp, but they are not in the same year when represented in their respective timezone.
|
|
244
|
+
// The adapter should still consider that they are in the same year.
|
|
245
|
+
const dateInLondonTZ = adapterTZ.endOfYear(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
|
|
246
|
+
const dateInParisTZ = adapterTZ.setTimezone(dateInLondonTZ, 'Europe/Paris');
|
|
247
|
+
expect(adapterTZ.isSameYear(dateInLondonTZ, dateInParisTZ)).to.equal(true);
|
|
248
|
+
expect(adapterTZ.isSameYear(dateInParisTZ, dateInLondonTZ)).to.equal(true);
|
|
249
|
+
});
|
|
250
|
+
});
|
|
251
|
+
describe('Method: isSameMonth', () => {
|
|
252
|
+
it('should work in the same timezone', () => {
|
|
253
|
+
expect(adapter.isSameMonth(testDateIso, adapter.date('2018-10-01T00:00:00.000Z'))).to.equal(true);
|
|
254
|
+
expect(adapter.isSameMonth(testDateIso, adapter.date('2019-10-01T00:00:00.000Z'))).to.equal(false);
|
|
255
|
+
expect(adapter.isSameMonth(testDateLocale, adapter.date('2018-10-01T00:00:00.000Z'))).to.equal(true);
|
|
256
|
+
expect(adapter.isSameMonth(testDateLocale, adapter.date('2019-10-01T00:00:00.000Z'))).to.equal(false);
|
|
257
|
+
});
|
|
258
|
+
it('should work with different timezones', function test() {
|
|
259
|
+
if (!adapter.isTimezoneCompatible) {
|
|
260
|
+
this.skip();
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// Both dates below have the same timestamp, but they are not in the same month when represented in their respective timezone.
|
|
264
|
+
// The adapter should still consider that they are in the same month.
|
|
265
|
+
const dateInLondonTZ = adapterTZ.endOfMonth(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
|
|
266
|
+
const dateInParisTZ = adapterTZ.setTimezone(dateInLondonTZ, 'Europe/Paris');
|
|
267
|
+
expect(adapterTZ.isSameMonth(dateInLondonTZ, dateInParisTZ)).to.equal(true);
|
|
268
|
+
expect(adapterTZ.isSameMonth(dateInParisTZ, dateInLondonTZ)).to.equal(true);
|
|
269
|
+
});
|
|
270
|
+
});
|
|
271
|
+
describe('Method: isSameDay', () => {
|
|
272
|
+
it('should work in the same timezone', () => {
|
|
273
|
+
expect(adapter.isSameDay(testDateIso, adapter.date('2018-10-30T00:00:00.000Z'))).to.equal(true);
|
|
274
|
+
expect(adapter.isSameDay(testDateIso, adapter.date('2019-10-30T00:00:00.000Z'))).to.equal(false);
|
|
275
|
+
expect(adapter.isSameDay(testDateLocale, adapter.date('2018-10-30T00:00:00.000Z'))).to.equal(true);
|
|
276
|
+
expect(adapter.isSameDay(testDateLocale, adapter.date('2019-10-30T00:00:00.000Z'))).to.equal(false);
|
|
277
|
+
});
|
|
278
|
+
it('should work with different timezones', function test() {
|
|
279
|
+
if (!adapter.isTimezoneCompatible) {
|
|
280
|
+
this.skip();
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
// Both dates below have the same timestamp, but they are not in the same day when represented in their respective timezone.
|
|
284
|
+
// The adapter should still consider that they are in the same day.
|
|
285
|
+
const dateInLondonTZ = adapterTZ.endOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
|
|
286
|
+
const dateInParisTZ = adapterTZ.setTimezone(dateInLondonTZ, 'Europe/Paris');
|
|
287
|
+
expect(adapterTZ.isSameDay(dateInLondonTZ, dateInParisTZ)).to.equal(true);
|
|
288
|
+
expect(adapterTZ.isSameDay(dateInParisTZ, dateInLondonTZ)).to.equal(true);
|
|
289
|
+
});
|
|
290
|
+
});
|
|
291
|
+
describe('Method: isSameHour', () => {
|
|
292
|
+
it('should work in the same timezone', () => {
|
|
293
|
+
expect(adapter.isSameHour(testDateIso, adapter.date('2018-10-30T11:00:00.000Z'))).to.equal(true);
|
|
294
|
+
expect(adapter.isSameHour(testDateIso, adapter.date('2018-10-30T12:00:00.000Z'))).to.equal(false);
|
|
295
|
+
});
|
|
296
|
+
it('should work with different timezones', function test() {
|
|
297
|
+
if (!adapter.isTimezoneCompatible) {
|
|
298
|
+
this.skip();
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
// Both dates below have the same timestamp, but they are not in the same day when represented in their respective timezone.
|
|
302
|
+
// The adapter should still consider that they are in the same day.
|
|
303
|
+
const dateInLondonTZ = adapterTZ.setTimezone(testDateIso, 'Europe/London');
|
|
304
|
+
const dateInParisTZ = adapterTZ.setTimezone(dateInLondonTZ, 'Europe/Paris');
|
|
305
|
+
expect(adapterTZ.isSameHour(dateInLondonTZ, dateInParisTZ)).to.equal(true);
|
|
306
|
+
expect(adapterTZ.isSameHour(dateInParisTZ, dateInLondonTZ)).to.equal(true);
|
|
307
|
+
});
|
|
308
|
+
});
|
|
309
|
+
describe('Method: isAfter', () => {
|
|
310
|
+
it('should work with the same timezone', () => {
|
|
311
|
+
expect(adapter.isAfter(adapter.date(), testDateIso)).to.equal(true);
|
|
312
|
+
expect(adapter.isAfter(testDateIso, adapter.date())).to.equal(false);
|
|
313
|
+
expect(adapter.isAfter(adapter.date(), testDateLocale)).to.equal(true);
|
|
314
|
+
expect(adapter.isAfter(testDateLocale, adapter.date())).to.equal(false);
|
|
315
|
+
});
|
|
316
|
+
it('should work with different timezones', function test() {
|
|
317
|
+
if (!adapter.isTimezoneCompatible) {
|
|
318
|
+
this.skip();
|
|
319
|
+
}
|
|
320
|
+
const dateInLondonTZ = adapterTZ.endOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
|
|
321
|
+
const dateInParisTZ = adapterTZ.addMinutes(adapterTZ.endOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/Paris')), 30);
|
|
322
|
+
expect(adapter.isAfter(dateInLondonTZ, dateInParisTZ)).to.equal(true);
|
|
323
|
+
expect(adapter.isAfter(dateInParisTZ, dateInLondonTZ)).to.equal(false);
|
|
324
|
+
});
|
|
325
|
+
});
|
|
326
|
+
describe('Method: isAfterYear', () => {
|
|
327
|
+
it('should work in the same timezone', () => {
|
|
328
|
+
const nextYearIso = adapter.addYears(testDateIso, 1);
|
|
329
|
+
expect(adapter.isAfterYear(nextYearIso, testDateIso)).to.equal(true);
|
|
330
|
+
expect(adapter.isAfterYear(testDateIso, nextYearIso)).to.equal(false);
|
|
331
|
+
const nextYearLocale = adapter.addYears(testDateLocale, 1);
|
|
332
|
+
expect(adapter.isAfterYear(nextYearLocale, testDateLocale)).to.equal(true);
|
|
333
|
+
expect(adapter.isAfterYear(testDateLocale, nextYearLocale)).to.equal(false);
|
|
334
|
+
});
|
|
335
|
+
it('should work with different timezones', function test() {
|
|
336
|
+
if (!adapter.isTimezoneCompatible) {
|
|
337
|
+
this.skip();
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
// Both dates below have the same timestamp, but they are not in the same year when represented in their respective timezone.
|
|
341
|
+
// The adapter should still consider that they are in the same year.
|
|
342
|
+
const dateInLondonTZ = adapterTZ.endOfYear(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
|
|
343
|
+
const dateInParisTZ = adapterTZ.setTimezone(dateInLondonTZ, 'Europe/Paris');
|
|
344
|
+
expect(adapterTZ.isAfterYear(dateInLondonTZ, dateInParisTZ)).to.equal(false);
|
|
345
|
+
expect(adapterTZ.isAfterYear(dateInParisTZ, dateInLondonTZ)).to.equal(false);
|
|
346
|
+
});
|
|
347
|
+
});
|
|
348
|
+
describe('Method: isAfterDay', () => {
|
|
349
|
+
it('should work with the same timezone', () => {
|
|
350
|
+
const nextDayIso = adapter.addDays(testDateIso, 1);
|
|
351
|
+
expect(adapter.isAfterDay(nextDayIso, testDateIso)).to.equal(true);
|
|
352
|
+
expect(adapter.isAfterDay(testDateIso, nextDayIso)).to.equal(false);
|
|
353
|
+
const nextDayLocale = adapter.addDays(testDateLocale, 1);
|
|
354
|
+
expect(adapter.isAfterDay(nextDayLocale, testDateLocale)).to.equal(true);
|
|
355
|
+
expect(adapter.isAfterDay(testDateLocale, nextDayLocale)).to.equal(false);
|
|
356
|
+
});
|
|
357
|
+
it('should work with different timezones', function test() {
|
|
358
|
+
if (!adapter.isTimezoneCompatible) {
|
|
359
|
+
this.skip();
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
// Both dates below have the same timestamp, but they are not in the same day when represented in their respective timezone.
|
|
363
|
+
// The adapter should still consider that they are in the same day.
|
|
364
|
+
const dateInLondonTZ = adapterTZ.endOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
|
|
365
|
+
const dateInParisTZ = adapterTZ.setTimezone(dateInLondonTZ, 'Europe/Paris');
|
|
366
|
+
expect(adapterTZ.isAfterDay(dateInLondonTZ, dateInParisTZ)).to.equal(false);
|
|
367
|
+
expect(adapterTZ.isAfterDay(dateInParisTZ, dateInLondonTZ)).to.equal(false);
|
|
368
|
+
|
|
369
|
+
// Both dates below have the same day when represented in their respective timezone,
|
|
370
|
+
// But not when represented in the same timezone
|
|
371
|
+
// The adapter should consider that they are not in the same day
|
|
372
|
+
const dateInLondonTZ2 = adapterTZ.startOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
|
|
373
|
+
const dateInParisTZ2 = adapterTZ.addHours(adapterTZ.setTimezone(dateInLondonTZ2, 'Europe/Paris'), -1);
|
|
374
|
+
expect(adapterTZ.isAfterDay(dateInLondonTZ2, dateInParisTZ2)).to.equal(true);
|
|
375
|
+
expect(adapterTZ.isAfterDay(dateInParisTZ2, dateInLondonTZ2)).to.equal(false);
|
|
376
|
+
});
|
|
377
|
+
});
|
|
378
|
+
describe('Method: isBefore', () => {
|
|
379
|
+
it('should work with the same timezone', () => {
|
|
380
|
+
expect(adapter.isBefore(testDateIso, adapter.date())).to.equal(true);
|
|
381
|
+
expect(adapter.isBefore(adapter.date(), testDateIso)).to.equal(false);
|
|
382
|
+
expect(adapter.isBefore(testDateLocale, adapter.date())).to.equal(true);
|
|
383
|
+
expect(adapter.isBefore(adapter.date(), testDateLocale)).to.equal(false);
|
|
384
|
+
});
|
|
385
|
+
it('should work with different timezones', function test() {
|
|
386
|
+
if (!adapter.isTimezoneCompatible) {
|
|
387
|
+
this.skip();
|
|
388
|
+
}
|
|
389
|
+
const dateInLondonTZ = adapterTZ.endOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
|
|
390
|
+
const dateInParisTZ = adapterTZ.addMinutes(adapterTZ.endOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/Paris')), 30);
|
|
391
|
+
expect(adapter.isBefore(dateInLondonTZ, dateInParisTZ)).to.equal(false);
|
|
392
|
+
expect(adapter.isBefore(dateInParisTZ, dateInLondonTZ)).to.equal(true);
|
|
393
|
+
});
|
|
394
|
+
});
|
|
395
|
+
describe('Method: isBeforeYear', () => {
|
|
396
|
+
it('should work in the same timezone', () => {
|
|
397
|
+
const nextYearIso = adapter.addYears(testDateIso, -1);
|
|
398
|
+
expect(adapter.isBeforeYear(nextYearIso, testDateIso)).to.equal(true);
|
|
399
|
+
expect(adapter.isBeforeYear(testDateIso, nextYearIso)).to.equal(false);
|
|
400
|
+
const nextYearLocale = adapter.addYears(testDateLocale, -1);
|
|
401
|
+
expect(adapter.isBeforeYear(nextYearLocale, testDateLocale)).to.equal(true);
|
|
402
|
+
expect(adapter.isBeforeYear(testDateLocale, nextYearLocale)).to.equal(false);
|
|
403
|
+
});
|
|
404
|
+
it('should work with different timezones', function test() {
|
|
405
|
+
if (!adapter.isTimezoneCompatible) {
|
|
406
|
+
this.skip();
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
// Both dates below have the same timestamp, but they are not in the same year when represented in their respective timezone.
|
|
410
|
+
// The adapter should still consider that they are in the same year.
|
|
411
|
+
const dateInLondonTZ = adapterTZ.endOfYear(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
|
|
412
|
+
const dateInParisTZ = adapterTZ.setTimezone(dateInLondonTZ, 'Europe/Paris');
|
|
413
|
+
expect(adapterTZ.isBeforeYear(dateInLondonTZ, dateInParisTZ)).to.equal(false);
|
|
414
|
+
expect(adapterTZ.isBeforeYear(dateInParisTZ, dateInLondonTZ)).to.equal(false);
|
|
415
|
+
});
|
|
416
|
+
});
|
|
417
|
+
describe('Method: isBeforeDay', () => {
|
|
418
|
+
it('should work with the same timezone', () => {
|
|
419
|
+
const previousDayIso = adapter.addDays(testDateIso, -1);
|
|
420
|
+
expect(adapter.isBeforeDay(previousDayIso, testDateIso)).to.equal(true);
|
|
421
|
+
expect(adapter.isBeforeDay(testDateIso, previousDayIso)).to.equal(false);
|
|
422
|
+
const previousDayLocale = adapter.addDays(testDateLocale, -1);
|
|
423
|
+
expect(adapter.isBeforeDay(previousDayLocale, testDateLocale)).to.equal(true);
|
|
424
|
+
expect(adapter.isBeforeDay(testDateLocale, previousDayLocale)).to.equal(false);
|
|
425
|
+
});
|
|
426
|
+
it('should work with different timezones', function test() {
|
|
427
|
+
if (!adapter.isTimezoneCompatible) {
|
|
428
|
+
this.skip();
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
// Both dates below have the same timestamp, but they are not in the same day when represented in their respective timezone.
|
|
432
|
+
// The adapter should still consider that they are in the same day.
|
|
433
|
+
const dateInLondonTZ = adapterTZ.endOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
|
|
434
|
+
const dateInParisTZ = adapterTZ.setTimezone(dateInLondonTZ, 'Europe/Paris');
|
|
435
|
+
expect(adapterTZ.isBeforeDay(dateInLondonTZ, dateInParisTZ)).to.equal(false);
|
|
436
|
+
expect(adapterTZ.isBeforeDay(dateInParisTZ, dateInLondonTZ)).to.equal(false);
|
|
437
|
+
|
|
438
|
+
// Both dates below have the same day when represented in their respective timezone,
|
|
439
|
+
// But not when represented in the same timezone
|
|
440
|
+
// The adapter should consider that they are not in the same day
|
|
441
|
+
const dateInLondonTZ2 = adapterTZ.endOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
|
|
442
|
+
const dateInParisTZ2 = adapterTZ.addHours(adapterTZ.setTimezone(dateInLondonTZ2, 'Europe/Paris'), -1);
|
|
443
|
+
expect(adapterTZ.isBeforeDay(dateInLondonTZ2, dateInParisTZ2)).to.equal(false);
|
|
444
|
+
expect(adapterTZ.isBeforeDay(dateInParisTZ2, dateInLondonTZ2)).to.equal(true);
|
|
445
|
+
});
|
|
178
446
|
});
|
|
179
447
|
describe('Method: isWithinRange', () => {
|
|
180
448
|
it('should work on simple examples', () => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
|
-
import
|
|
2
|
+
import { stub } from 'sinon';
|
|
3
3
|
import { cleanText } from 'test/utils/pickers-utils';
|
|
4
4
|
import { TEST_DATE_ISO_STRING } from './describeGregorianAdapter.utils';
|
|
5
5
|
export const testLocalization = ({
|
|
@@ -15,10 +15,10 @@ export const testLocalization = ({
|
|
|
15
15
|
|
|
16
16
|
// Moment only translates for 12-hour cycle.
|
|
17
17
|
if (adapter.lib === 'moment') {
|
|
18
|
-
const
|
|
18
|
+
const sinonStub = stub(adapter, 'is12HourCycleInCurrentLocale').returns(false);
|
|
19
19
|
expect(adapter.getMeridiemText('am')).to.equal('AM');
|
|
20
20
|
expect(adapter.getMeridiemText('pm')).to.equal('PM');
|
|
21
|
-
|
|
21
|
+
sinonStub.restore();
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
24
|
it('Method: expandFormat', () => {
|