@mui/x-date-pickers 5.0.0-alpha.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/index.d.ts +1 -0
- package/AdapterDateFns/index.js +1 -0
- package/AdapterDateFns/package.json +6 -0
- package/AdapterDayjs/index.d.ts +1 -0
- package/AdapterDayjs/index.js +1 -0
- package/AdapterDayjs/package.json +6 -0
- package/AdapterLuxon/index.d.ts +1 -0
- package/AdapterLuxon/index.js +1 -0
- package/AdapterLuxon/package.json +6 -0
- package/AdapterMoment/index.d.ts +1 -0
- package/AdapterMoment/index.js +1 -0
- package/AdapterMoment/package.json +6 -0
- package/CHANGELOG.md +3785 -0
- package/CalendarPicker/CalendarPicker.d.ts +103 -0
- package/CalendarPicker/CalendarPicker.js +390 -0
- package/CalendarPicker/DayPicker.d.ts +51 -0
- package/CalendarPicker/DayPicker.js +140 -0
- package/CalendarPicker/PickersCalendarHeader.d.ts +44 -0
- package/CalendarPicker/PickersCalendarHeader.js +162 -0
- package/CalendarPicker/PickersFadeTransitionGroup.d.ts +12 -0
- package/CalendarPicker/PickersFadeTransitionGroup.js +42 -0
- package/CalendarPicker/PickersSlideTransition.d.ts +15 -0
- package/CalendarPicker/PickersSlideTransition.js +101 -0
- package/CalendarPicker/calendarPickerClasses.d.ts +9 -0
- package/CalendarPicker/calendarPickerClasses.js +3 -0
- package/CalendarPicker/index.d.ts +5 -0
- package/CalendarPicker/index.js +2 -0
- package/CalendarPicker/package.json +6 -0
- package/CalendarPicker/useCalendarState.d.ts +33 -0
- package/CalendarPicker/useCalendarState.js +110 -0
- package/CalendarPickerSkeleton/CalendarPickerSkeleton.d.ts +31 -0
- package/CalendarPickerSkeleton/CalendarPickerSkeleton.js +119 -0
- package/CalendarPickerSkeleton/calendarPickerSkeletonClasses.d.ts +11 -0
- package/CalendarPickerSkeleton/calendarPickerSkeletonClasses.js +3 -0
- package/CalendarPickerSkeleton/index.d.ts +4 -0
- package/CalendarPickerSkeleton/index.js +2 -0
- package/CalendarPickerSkeleton/package.json +6 -0
- package/ClockPicker/Clock.d.ts +26 -0
- package/ClockPicker/Clock.js +262 -0
- package/ClockPicker/ClockNumber.d.ts +18 -0
- package/ClockPicker/ClockNumber.js +70 -0
- package/ClockPicker/ClockNumbers.d.ts +24 -0
- package/ClockPicker/ClockNumbers.js +80 -0
- package/ClockPicker/ClockPicker.d.ts +138 -0
- package/ClockPicker/ClockPicker.js +407 -0
- package/ClockPicker/ClockPointer.d.ts +23 -0
- package/ClockPicker/ClockPointer.js +102 -0
- package/ClockPicker/clockPickerClasses.d.ts +9 -0
- package/ClockPicker/clockPickerClasses.js +5 -0
- package/ClockPicker/index.d.ts +5 -0
- package/ClockPicker/index.js +2 -0
- package/ClockPicker/package.json +6 -0
- package/ClockPicker/shared.d.ts +4 -0
- package/ClockPicker/shared.js +57 -0
- package/DatePicker/DatePicker.d.ts +27 -0
- package/DatePicker/DatePicker.js +456 -0
- package/DatePicker/DatePickerToolbar.d.ts +10 -0
- package/DatePicker/DatePickerToolbar.js +81 -0
- package/DatePicker/index.d.ts +2 -0
- package/DatePicker/index.js +1 -0
- package/DatePicker/package.json +6 -0
- package/DatePicker/shared.d.ts +47 -0
- package/DatePicker/shared.js +54 -0
- package/DateTimePicker/DateTimePicker.d.ts +27 -0
- package/DateTimePicker/DateTimePicker.js +542 -0
- package/DateTimePicker/DateTimePickerTabs.d.ts +12 -0
- package/DateTimePicker/DateTimePickerTabs.js +80 -0
- package/DateTimePicker/DateTimePickerToolbar.d.ts +6 -0
- package/DateTimePicker/DateTimePickerToolbar.js +134 -0
- package/DateTimePicker/index.d.ts +2 -0
- package/DateTimePicker/index.js +1 -0
- package/DateTimePicker/package.json +6 -0
- package/DateTimePicker/shared.d.ts +70 -0
- package/DateTimePicker/shared.js +58 -0
- package/DesktopDatePicker/DesktopDatePicker.d.ts +20 -0
- package/DesktopDatePicker/DesktopDatePicker.js +431 -0
- package/DesktopDatePicker/index.d.ts +2 -0
- package/DesktopDatePicker/index.js +1 -0
- package/DesktopDatePicker/package.json +6 -0
- package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +20 -0
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +512 -0
- package/DesktopDateTimePicker/index.d.ts +2 -0
- package/DesktopDateTimePicker/index.js +1 -0
- package/DesktopDateTimePicker/package.json +6 -0
- package/DesktopTimePicker/DesktopTimePicker.d.ts +20 -0
- package/DesktopTimePicker/DesktopTimePicker.js +361 -0
- package/DesktopTimePicker/index.d.ts +2 -0
- package/DesktopTimePicker/index.js +1 -0
- package/DesktopTimePicker/package.json +6 -0
- package/LocalizationProvider/LocalizationProvider.d.ts +34 -0
- package/LocalizationProvider/LocalizationProvider.js +100 -0
- package/LocalizationProvider/index.d.ts +2 -0
- package/LocalizationProvider/index.js +1 -0
- package/LocalizationProvider/package.json +6 -0
- package/MobileDatePicker/MobileDatePicker.d.ts +20 -0
- package/MobileDatePicker/MobileDatePicker.js +436 -0
- package/MobileDatePicker/index.d.ts +2 -0
- package/MobileDatePicker/index.js +1 -0
- package/MobileDatePicker/package.json +6 -0
- package/MobileDateTimePicker/MobileDateTimePicker.d.ts +20 -0
- package/MobileDateTimePicker/MobileDateTimePicker.js +523 -0
- package/MobileDateTimePicker/index.d.ts +2 -0
- package/MobileDateTimePicker/index.js +1 -0
- package/MobileDateTimePicker/package.json +6 -0
- package/MobileTimePicker/MobileTimePicker.d.ts +20 -0
- package/MobileTimePicker/MobileTimePicker.js +372 -0
- package/MobileTimePicker/index.d.ts +2 -0
- package/MobileTimePicker/index.js +1 -0
- package/MobileTimePicker/package.json +6 -0
- package/MonthPicker/MonthPicker.d.ts +41 -0
- package/MonthPicker/MonthPicker.js +161 -0
- package/MonthPicker/PickersMonth.d.ts +15 -0
- package/MonthPicker/PickersMonth.js +70 -0
- package/MonthPicker/index.d.ts +4 -0
- package/MonthPicker/index.js +2 -0
- package/MonthPicker/monthPickerClasses.d.ts +7 -0
- package/MonthPicker/monthPickerClasses.js +5 -0
- package/MonthPicker/package.json +6 -0
- package/PickersDay/PickersDay.d.ts +79 -0
- package/PickersDay/PickersDay.js +344 -0
- package/PickersDay/index.d.ts +4 -0
- package/PickersDay/index.js +2 -0
- package/PickersDay/package.json +6 -0
- package/PickersDay/pickersDayClasses.d.ts +19 -0
- package/PickersDay/pickersDayClasses.js +5 -0
- package/README.md +29 -0
- package/StaticDatePicker/StaticDatePicker.d.ts +25 -0
- package/StaticDatePicker/StaticDatePicker.js +397 -0
- package/StaticDatePicker/index.d.ts +2 -0
- package/StaticDatePicker/index.js +1 -0
- package/StaticDatePicker/package.json +6 -0
- package/StaticDateTimePicker/StaticDateTimePicker.d.ts +25 -0
- package/StaticDateTimePicker/StaticDateTimePicker.js +484 -0
- package/StaticDateTimePicker/index.d.ts +2 -0
- package/StaticDateTimePicker/index.js +1 -0
- package/StaticDateTimePicker/package.json +6 -0
- package/StaticTimePicker/StaticTimePicker.d.ts +25 -0
- package/StaticTimePicker/StaticTimePicker.js +332 -0
- package/StaticTimePicker/index.d.ts +2 -0
- package/StaticTimePicker/index.js +1 -0
- package/StaticTimePicker/package.json +6 -0
- package/TimePicker/TimePicker.d.ts +27 -0
- package/TimePicker/TimePicker.js +395 -0
- package/TimePicker/TimePickerToolbar.d.ts +10 -0
- package/TimePicker/TimePickerToolbar.js +167 -0
- package/TimePicker/index.d.ts +2 -0
- package/TimePicker/index.js +1 -0
- package/TimePicker/package.json +6 -0
- package/TimePicker/shared.d.ts +39 -0
- package/TimePicker/shared.js +45 -0
- package/TimePicker/timePickerToolbarClasses.d.ts +13 -0
- package/TimePicker/timePickerToolbarClasses.js +5 -0
- package/YearPicker/PickersYear.d.ts +26 -0
- package/YearPicker/PickersYear.js +111 -0
- package/YearPicker/YearPicker.d.ts +37 -0
- package/YearPicker/YearPicker.js +188 -0
- package/YearPicker/index.d.ts +4 -0
- package/YearPicker/index.js +2 -0
- package/YearPicker/package.json +6 -0
- package/YearPicker/yearPickerClasses.d.ts +7 -0
- package/YearPicker/yearPickerClasses.js +5 -0
- package/index.d.ts +19 -0
- package/index.js +24 -0
- package/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.d.ts +35 -0
- package/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js +125 -0
- package/internals/components/CalendarOrClockPicker/index.d.ts +1 -0
- package/internals/components/CalendarOrClockPicker/index.js +1 -0
- package/internals/components/KeyboardDateInput.d.ts +3 -0
- package/internals/components/KeyboardDateInput.js +58 -0
- package/internals/components/PickerStaticWrapper/PickerStaticWrapper.d.ts +14 -0
- package/internals/components/PickerStaticWrapper/PickerStaticWrapper.js +57 -0
- package/internals/components/PickerStaticWrapper/index.d.ts +4 -0
- package/internals/components/PickerStaticWrapper/index.js +2 -0
- package/internals/components/PickerStaticWrapper/pickerStaticWrapperClasses.d.ts +7 -0
- package/internals/components/PickerStaticWrapper/pickerStaticWrapperClasses.js +5 -0
- package/internals/components/PickerViewRoot/PickerViewRoot.d.ts +2 -0
- package/internals/components/PickerViewRoot/PickerViewRoot.js +10 -0
- package/internals/components/PickerViewRoot/index.d.ts +1 -0
- package/internals/components/PickerViewRoot/index.js +1 -0
- package/internals/components/PickersArrowSwitcher.d.ts +41 -0
- package/internals/components/PickersArrowSwitcher.js +89 -0
- package/internals/components/PickersModalDialog.d.ts +46 -0
- package/internals/components/PickersModalDialog.js +75 -0
- package/internals/components/PickersPopper.d.ts +43 -0
- package/internals/components/PickersPopper.js +262 -0
- package/internals/components/PickersToolbar.d.ts +15 -0
- package/internals/components/PickersToolbar.js +82 -0
- package/internals/components/PickersToolbarButton.d.ts +12 -0
- package/internals/components/PickersToolbarButton.js +38 -0
- package/internals/components/PickersToolbarText.d.ts +7 -0
- package/internals/components/PickersToolbarText.js +35 -0
- package/internals/components/PureDateInput.d.ts +87 -0
- package/internals/components/PureDateInput.js +50 -0
- package/internals/components/icons/index.d.ts +48 -0
- package/internals/components/icons/index.js +68 -0
- package/internals/components/wrappers/DesktopTooltipWrapper.d.ts +3 -0
- package/internals/components/wrappers/DesktopTooltipWrapper.js +52 -0
- package/internals/components/wrappers/DesktopWrapper.d.ts +15 -0
- package/internals/components/wrappers/DesktopWrapper.js +42 -0
- package/internals/components/wrappers/MobileWrapper.d.ts +13 -0
- package/internals/components/wrappers/MobileWrapper.js +47 -0
- package/internals/components/wrappers/ResponsiveWrapper.d.ts +23 -0
- package/internals/components/wrappers/ResponsiveWrapper.js +44 -0
- package/internals/components/wrappers/WrapperProps.d.ts +13 -0
- package/internals/components/wrappers/WrapperProps.js +1 -0
- package/internals/components/wrappers/WrapperVariantContext.d.ts +11 -0
- package/internals/components/wrappers/WrapperVariantContext.js +12 -0
- package/internals/constants/dimensions.d.ts +4 -0
- package/internals/constants/dimensions.js +4 -0
- package/internals/hooks/date-helpers-hooks.d.ts +16 -0
- package/internals/hooks/date-helpers-hooks.js +37 -0
- package/internals/hooks/useIsLandscape.d.ts +4 -0
- package/internals/hooks/useIsLandscape.js +42 -0
- package/internals/hooks/useMaskedInput.d.ts +7 -0
- package/internals/hooks/useMaskedInput.js +92 -0
- package/internals/hooks/useOpenState.d.ts +9 -0
- package/internals/hooks/useOpenState.js +37 -0
- package/internals/hooks/usePickerState.d.ts +39 -0
- package/internals/hooks/usePickerState.js +117 -0
- package/internals/hooks/useUtils.d.ts +6 -0
- package/internals/hooks/useUtils.js +20 -0
- package/internals/hooks/useViews.d.ts +19 -0
- package/internals/hooks/useViews.js +50 -0
- package/internals/hooks/validation/useDateTimeValidation.d.ts +8 -0
- package/internals/hooks/validation/useDateTimeValidation.js +35 -0
- package/internals/hooks/validation/useDateValidation.d.ts +34 -0
- package/internals/hooks/validation/useDateValidation.js +42 -0
- package/internals/hooks/validation/useTimeValidation.d.ts +32 -0
- package/internals/hooks/validation/useTimeValidation.js +42 -0
- package/internals/hooks/validation/useValidation.d.ts +21 -0
- package/internals/hooks/validation/useValidation.js +19 -0
- package/internals/index.d.ts +40 -0
- package/internals/index.js +22 -0
- package/internals/models/helpers.d.ts +9 -0
- package/internals/models/helpers.js +1 -0
- package/internals/models/index.d.ts +2 -0
- package/internals/models/index.js +2 -0
- package/internals/models/muiPickersAdapter.d.ts +2 -0
- package/internals/models/muiPickersAdapter.js +1 -0
- package/internals/models/parseableDate.d.ts +1 -0
- package/internals/models/parseableDate.js +1 -0
- package/internals/models/props/basePickerProps.d.ts +79 -0
- package/internals/models/props/basePickerProps.js +1 -0
- package/internals/models/props/baseToolbarProps.d.ts +23 -0
- package/internals/models/props/baseToolbarProps.js +1 -0
- package/internals/models/views.d.ts +3 -0
- package/internals/models/views.js +1 -0
- package/internals/package.json +6 -0
- package/internals/utils/date-utils.d.ts +13 -0
- package/internals/utils/date-utils.js +67 -0
- package/internals/utils/defaultReduceAnimations.d.ts +1 -0
- package/internals/utils/defaultReduceAnimations.js +1 -0
- package/internals/utils/text-field-helper.d.ts +11 -0
- package/internals/utils/text-field-helper.js +66 -0
- package/internals/utils/time-utils.d.ts +8 -0
- package/internals/utils/time-utils.js +32 -0
- package/internals/utils/utils.d.ts +7 -0
- package/internals/utils/utils.js +36 -0
- package/legacy/AdapterDateFns/index.js +1 -0
- package/legacy/AdapterDayjs/index.js +1 -0
- package/legacy/AdapterLuxon/index.js +1 -0
- package/legacy/AdapterMoment/index.js +1 -0
- package/legacy/CalendarPicker/CalendarPicker.js +402 -0
- package/legacy/CalendarPicker/DayPicker.js +154 -0
- package/legacy/CalendarPicker/PickersCalendarHeader.js +173 -0
- package/legacy/CalendarPicker/PickersFadeTransitionGroup.js +42 -0
- package/legacy/CalendarPicker/PickersSlideTransition.js +97 -0
- package/legacy/CalendarPicker/calendarPickerClasses.js +5 -0
- package/legacy/CalendarPicker/index.js +2 -0
- package/legacy/CalendarPicker/useCalendarState.js +120 -0
- package/legacy/CalendarPickerSkeleton/CalendarPickerSkeleton.js +126 -0
- package/legacy/CalendarPickerSkeleton/calendarPickerSkeletonClasses.js +5 -0
- package/legacy/CalendarPickerSkeleton/index.js +2 -0
- package/legacy/ClockPicker/Clock.js +268 -0
- package/legacy/ClockPicker/ClockNumber.js +70 -0
- package/legacy/ClockPicker/ClockNumbers.js +83 -0
- package/legacy/ClockPicker/ClockPicker.js +454 -0
- package/legacy/ClockPicker/ClockPointer.js +130 -0
- package/legacy/ClockPicker/clockPickerClasses.js +5 -0
- package/legacy/ClockPicker/index.js +2 -0
- package/legacy/ClockPicker/shared.js +61 -0
- package/legacy/DatePicker/DatePicker.js +455 -0
- package/legacy/DatePicker/DatePickerToolbar.js +82 -0
- package/legacy/DatePicker/index.js +1 -0
- package/legacy/DatePicker/shared.js +58 -0
- package/legacy/DateTimePicker/DateTimePicker.js +541 -0
- package/legacy/DateTimePicker/DateTimePickerTabs.js +81 -0
- package/legacy/DateTimePicker/DateTimePickerToolbar.js +147 -0
- package/legacy/DateTimePicker/index.js +1 -0
- package/legacy/DateTimePicker/shared.js +59 -0
- package/legacy/DesktopDatePicker/DesktopDatePicker.js +434 -0
- package/legacy/DesktopDatePicker/index.js +1 -0
- package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +515 -0
- package/legacy/DesktopDateTimePicker/index.js +1 -0
- package/legacy/DesktopTimePicker/DesktopTimePicker.js +364 -0
- package/legacy/DesktopTimePicker/index.js +1 -0
- package/legacy/LocalizationProvider/LocalizationProvider.js +100 -0
- package/legacy/LocalizationProvider/index.js +1 -0
- package/legacy/MobileDatePicker/MobileDatePicker.js +440 -0
- package/legacy/MobileDatePicker/index.js +1 -0
- package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +527 -0
- package/legacy/MobileDateTimePicker/index.js +1 -0
- package/legacy/MobileTimePicker/MobileTimePicker.js +376 -0
- package/legacy/MobileTimePicker/index.js +1 -0
- package/legacy/MonthPicker/MonthPicker.js +159 -0
- package/legacy/MonthPicker/PickersMonth.js +69 -0
- package/legacy/MonthPicker/index.js +2 -0
- package/legacy/MonthPicker/monthPickerClasses.js +5 -0
- package/legacy/PickersDay/PickersDay.js +348 -0
- package/legacy/PickersDay/index.js +2 -0
- package/legacy/PickersDay/pickersDayClasses.js +5 -0
- package/legacy/StaticDatePicker/StaticDatePicker.js +402 -0
- package/legacy/StaticDatePicker/index.js +1 -0
- package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +489 -0
- package/legacy/StaticDateTimePicker/index.js +1 -0
- package/legacy/StaticTimePicker/StaticTimePicker.js +336 -0
- package/legacy/StaticTimePicker/index.js +1 -0
- package/legacy/TimePicker/TimePicker.js +394 -0
- package/legacy/TimePicker/TimePickerToolbar.js +175 -0
- package/legacy/TimePicker/index.js +1 -0
- package/legacy/TimePicker/shared.js +45 -0
- package/legacy/TimePicker/timePickerToolbarClasses.js +5 -0
- package/legacy/YearPicker/PickersYear.js +114 -0
- package/legacy/YearPicker/YearPicker.js +193 -0
- package/legacy/YearPicker/index.js +2 -0
- package/legacy/YearPicker/yearPickerClasses.js +5 -0
- package/legacy/index.js +24 -0
- package/legacy/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js +133 -0
- package/legacy/internals/components/CalendarOrClockPicker/index.js +1 -0
- package/legacy/internals/components/KeyboardDateInput.js +57 -0
- package/legacy/internals/components/PickerStaticWrapper/PickerStaticWrapper.js +56 -0
- package/legacy/internals/components/PickerStaticWrapper/index.js +2 -0
- package/legacy/internals/components/PickerStaticWrapper/pickerStaticWrapperClasses.js +5 -0
- package/legacy/internals/components/PickerViewRoot/PickerViewRoot.js +10 -0
- package/legacy/internals/components/PickerViewRoot/index.js +1 -0
- package/legacy/internals/components/PickersArrowSwitcher.js +91 -0
- package/legacy/internals/components/PickersModalDialog.js +82 -0
- package/legacy/internals/components/PickersPopper.js +276 -0
- package/legacy/internals/components/PickersToolbar.js +86 -0
- package/legacy/internals/components/PickersToolbarButton.js +36 -0
- package/legacy/internals/components/PickersToolbarText.js +34 -0
- package/legacy/internals/components/PureDateInput.js +52 -0
- package/legacy/internals/components/icons/index.js +68 -0
- package/legacy/internals/components/wrappers/DesktopTooltipWrapper.js +50 -0
- package/legacy/internals/components/wrappers/DesktopWrapper.js +40 -0
- package/legacy/internals/components/wrappers/MobileWrapper.js +45 -0
- package/legacy/internals/components/wrappers/ResponsiveWrapper.js +43 -0
- package/legacy/internals/components/wrappers/WrapperProps.js +1 -0
- package/legacy/internals/components/wrappers/WrapperVariantContext.js +12 -0
- package/legacy/internals/constants/dimensions.js +4 -0
- package/legacy/internals/hooks/date-helpers-hooks.js +35 -0
- package/legacy/internals/hooks/useIsLandscape.js +47 -0
- package/legacy/internals/hooks/useMaskedInput.js +107 -0
- package/legacy/internals/hooks/useOpenState.js +42 -0
- package/legacy/internals/hooks/usePickerState.js +147 -0
- package/legacy/internals/hooks/useUtils.js +24 -0
- package/legacy/internals/hooks/useViews.js +55 -0
- package/legacy/internals/hooks/validation/useDateTimeValidation.js +35 -0
- package/legacy/internals/hooks/validation/useDateValidation.js +45 -0
- package/legacy/internals/hooks/validation/useTimeValidation.js +45 -0
- package/legacy/internals/hooks/validation/useValidation.js +17 -0
- package/legacy/internals/index.js +22 -0
- package/legacy/internals/models/helpers.js +1 -0
- package/legacy/internals/models/index.js +2 -0
- package/legacy/internals/models/muiPickersAdapter.js +1 -0
- package/legacy/internals/models/parseableDate.js +1 -0
- package/legacy/internals/models/props/basePickerProps.js +1 -0
- package/legacy/internals/models/props/baseToolbarProps.js +1 -0
- package/legacy/internals/models/views.js +1 -0
- package/legacy/internals/utils/date-utils.js +66 -0
- package/legacy/internals/utils/defaultReduceAnimations.js +1 -0
- package/legacy/internals/utils/text-field-helper.js +68 -0
- package/legacy/internals/utils/time-utils.js +34 -0
- package/legacy/internals/utils/utils.js +52 -0
- package/legacy/themeAugmentation/index.js +3 -0
- package/modern/AdapterDateFns/index.js +1 -0
- package/modern/AdapterDayjs/index.js +1 -0
- package/modern/AdapterLuxon/index.js +1 -0
- package/modern/AdapterMoment/index.js +1 -0
- package/modern/CalendarPicker/CalendarPicker.js +390 -0
- package/modern/CalendarPicker/DayPicker.js +140 -0
- package/modern/CalendarPicker/PickersCalendarHeader.js +162 -0
- package/modern/CalendarPicker/PickersFadeTransitionGroup.js +42 -0
- package/modern/CalendarPicker/PickersSlideTransition.js +101 -0
- package/modern/CalendarPicker/calendarPickerClasses.js +3 -0
- package/modern/CalendarPicker/index.js +2 -0
- package/modern/CalendarPicker/useCalendarState.js +108 -0
- package/modern/CalendarPickerSkeleton/CalendarPickerSkeleton.js +119 -0
- package/modern/CalendarPickerSkeleton/calendarPickerSkeletonClasses.js +3 -0
- package/modern/CalendarPickerSkeleton/index.js +2 -0
- package/modern/ClockPicker/Clock.js +262 -0
- package/modern/ClockPicker/ClockNumber.js +70 -0
- package/modern/ClockPicker/ClockNumbers.js +80 -0
- package/modern/ClockPicker/ClockPicker.js +407 -0
- package/modern/ClockPicker/ClockPointer.js +102 -0
- package/modern/ClockPicker/clockPickerClasses.js +5 -0
- package/modern/ClockPicker/index.js +2 -0
- package/modern/ClockPicker/shared.js +57 -0
- package/modern/DatePicker/DatePicker.js +456 -0
- package/modern/DatePicker/DatePickerToolbar.js +81 -0
- package/modern/DatePicker/index.js +1 -0
- package/modern/DatePicker/shared.js +54 -0
- package/modern/DateTimePicker/DateTimePicker.js +542 -0
- package/modern/DateTimePicker/DateTimePickerTabs.js +80 -0
- package/modern/DateTimePicker/DateTimePickerToolbar.js +134 -0
- package/modern/DateTimePicker/index.js +1 -0
- package/modern/DateTimePicker/shared.js +58 -0
- package/modern/DesktopDatePicker/DesktopDatePicker.js +431 -0
- package/modern/DesktopDatePicker/index.js +1 -0
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +512 -0
- package/modern/DesktopDateTimePicker/index.js +1 -0
- package/modern/DesktopTimePicker/DesktopTimePicker.js +361 -0
- package/modern/DesktopTimePicker/index.js +1 -0
- package/modern/LocalizationProvider/LocalizationProvider.js +100 -0
- package/modern/LocalizationProvider/index.js +1 -0
- package/modern/MobileDatePicker/MobileDatePicker.js +436 -0
- package/modern/MobileDatePicker/index.js +1 -0
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +523 -0
- package/modern/MobileDateTimePicker/index.js +1 -0
- package/modern/MobileTimePicker/MobileTimePicker.js +372 -0
- package/modern/MobileTimePicker/index.js +1 -0
- package/modern/MonthPicker/MonthPicker.js +161 -0
- package/modern/MonthPicker/PickersMonth.js +70 -0
- package/modern/MonthPicker/index.js +2 -0
- package/modern/MonthPicker/monthPickerClasses.js +5 -0
- package/modern/PickersDay/PickersDay.js +344 -0
- package/modern/PickersDay/index.js +2 -0
- package/modern/PickersDay/pickersDayClasses.js +5 -0
- package/modern/StaticDatePicker/StaticDatePicker.js +397 -0
- package/modern/StaticDatePicker/index.js +1 -0
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +484 -0
- package/modern/StaticDateTimePicker/index.js +1 -0
- package/modern/StaticTimePicker/StaticTimePicker.js +332 -0
- package/modern/StaticTimePicker/index.js +1 -0
- package/modern/TimePicker/TimePicker.js +395 -0
- package/modern/TimePicker/TimePickerToolbar.js +167 -0
- package/modern/TimePicker/index.js +1 -0
- package/modern/TimePicker/shared.js +45 -0
- package/modern/TimePicker/timePickerToolbarClasses.js +5 -0
- package/modern/YearPicker/PickersYear.js +111 -0
- package/modern/YearPicker/YearPicker.js +188 -0
- package/modern/YearPicker/index.js +2 -0
- package/modern/YearPicker/yearPickerClasses.js +5 -0
- package/modern/index.js +24 -0
- package/modern/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js +125 -0
- package/modern/internals/components/CalendarOrClockPicker/index.js +1 -0
- package/modern/internals/components/KeyboardDateInput.js +58 -0
- package/modern/internals/components/PickerStaticWrapper/PickerStaticWrapper.js +57 -0
- package/modern/internals/components/PickerStaticWrapper/index.js +2 -0
- package/modern/internals/components/PickerStaticWrapper/pickerStaticWrapperClasses.js +5 -0
- package/modern/internals/components/PickerViewRoot/PickerViewRoot.js +10 -0
- package/modern/internals/components/PickerViewRoot/index.js +1 -0
- package/modern/internals/components/PickersArrowSwitcher.js +89 -0
- package/modern/internals/components/PickersModalDialog.js +75 -0
- package/modern/internals/components/PickersPopper.js +262 -0
- package/modern/internals/components/PickersToolbar.js +82 -0
- package/modern/internals/components/PickersToolbarButton.js +38 -0
- package/modern/internals/components/PickersToolbarText.js +35 -0
- package/modern/internals/components/PureDateInput.js +50 -0
- package/modern/internals/components/icons/index.js +68 -0
- package/modern/internals/components/wrappers/DesktopTooltipWrapper.js +50 -0
- package/modern/internals/components/wrappers/DesktopWrapper.js +42 -0
- package/modern/internals/components/wrappers/MobileWrapper.js +47 -0
- package/modern/internals/components/wrappers/ResponsiveWrapper.js +44 -0
- package/modern/internals/components/wrappers/WrapperProps.js +1 -0
- package/modern/internals/components/wrappers/WrapperVariantContext.js +12 -0
- package/modern/internals/constants/dimensions.js +4 -0
- package/modern/internals/hooks/date-helpers-hooks.js +37 -0
- package/modern/internals/hooks/useIsLandscape.js +42 -0
- package/modern/internals/hooks/useMaskedInput.js +92 -0
- package/modern/internals/hooks/useOpenState.js +37 -0
- package/modern/internals/hooks/usePickerState.js +117 -0
- package/modern/internals/hooks/useUtils.js +20 -0
- package/modern/internals/hooks/useViews.js +48 -0
- package/modern/internals/hooks/validation/useDateTimeValidation.js +35 -0
- package/modern/internals/hooks/validation/useDateValidation.js +42 -0
- package/modern/internals/hooks/validation/useTimeValidation.js +42 -0
- package/modern/internals/hooks/validation/useValidation.js +19 -0
- package/modern/internals/index.js +22 -0
- package/modern/internals/models/helpers.js +1 -0
- package/modern/internals/models/index.js +2 -0
- package/modern/internals/models/muiPickersAdapter.js +1 -0
- package/modern/internals/models/parseableDate.js +1 -0
- package/modern/internals/models/props/basePickerProps.js +1 -0
- package/modern/internals/models/props/baseToolbarProps.js +1 -0
- package/modern/internals/models/views.js +1 -0
- package/modern/internals/utils/date-utils.js +67 -0
- package/modern/internals/utils/defaultReduceAnimations.js +1 -0
- package/modern/internals/utils/text-field-helper.js +66 -0
- package/modern/internals/utils/time-utils.js +32 -0
- package/modern/internals/utils/utils.js +36 -0
- package/modern/themeAugmentation/index.js +3 -0
- package/node/AdapterDateFns/index.js +15 -0
- package/node/AdapterDayjs/index.js +15 -0
- package/node/AdapterLuxon/index.js +15 -0
- package/node/AdapterMoment/index.js +15 -0
- package/node/CalendarPicker/CalendarPicker.js +420 -0
- package/node/CalendarPicker/DayPicker.js +161 -0
- package/node/CalendarPicker/PickersCalendarHeader.js +185 -0
- package/node/CalendarPicker/PickersFadeTransitionGroup.js +64 -0
- package/node/CalendarPicker/PickersSlideTransition.js +126 -0
- package/node/CalendarPicker/calendarPickerClasses.js +14 -0
- package/node/CalendarPicker/index.js +27 -0
- package/node/CalendarPicker/useCalendarState.js +132 -0
- package/node/CalendarPickerSkeleton/CalendarPickerSkeleton.js +142 -0
- package/node/CalendarPickerSkeleton/calendarPickerSkeletonClasses.js +14 -0
- package/node/CalendarPickerSkeleton/index.js +27 -0
- package/node/ClockPicker/Clock.js +285 -0
- package/node/ClockPicker/ClockNumber.js +93 -0
- package/node/ClockPicker/ClockNumbers.js +98 -0
- package/node/ClockPicker/ClockPicker.js +437 -0
- package/node/ClockPicker/ClockPointer.js +123 -0
- package/node/ClockPicker/clockPickerClasses.js +16 -0
- package/node/ClockPicker/index.js +27 -0
- package/node/ClockPicker/shared.js +70 -0
- package/node/DatePicker/DatePicker.js +477 -0
- package/node/DatePicker/DatePickerToolbar.js +105 -0
- package/node/DatePicker/index.js +13 -0
- package/node/DatePicker/shared.js +73 -0
- package/node/DateTimePicker/DateTimePicker.js +562 -0
- package/node/DateTimePicker/DateTimePickerTabs.js +100 -0
- package/node/DateTimePicker/DateTimePickerToolbar.js +160 -0
- package/node/DateTimePicker/index.js +13 -0
- package/node/DateTimePicker/shared.js +72 -0
- package/node/DesktopDatePicker/DesktopDatePicker.js +456 -0
- package/node/DesktopDatePicker/index.js +13 -0
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +537 -0
- package/node/DesktopDateTimePicker/index.js +13 -0
- package/node/DesktopTimePicker/DesktopTimePicker.js +386 -0
- package/node/DesktopTimePicker/index.js +13 -0
- package/node/LocalizationProvider/LocalizationProvider.js +119 -0
- package/node/LocalizationProvider/index.js +13 -0
- package/node/MobileDatePicker/MobileDatePicker.js +462 -0
- package/node/MobileDatePicker/index.js +13 -0
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +549 -0
- package/node/MobileDateTimePicker/index.js +13 -0
- package/node/MobileTimePicker/MobileTimePicker.js +398 -0
- package/node/MobileTimePicker/index.js +13 -0
- package/node/MonthPicker/MonthPicker.js +184 -0
- package/node/MonthPicker/PickersMonth.js +95 -0
- package/node/MonthPicker/index.js +27 -0
- package/node/MonthPicker/monthPickerClasses.js +16 -0
- package/node/PickersDay/PickersDay.js +372 -0
- package/node/PickersDay/index.js +27 -0
- package/node/PickersDay/pickersDayClasses.js +16 -0
- package/node/StaticDatePicker/StaticDatePicker.js +422 -0
- package/node/StaticDatePicker/index.js +13 -0
- package/node/StaticDateTimePicker/StaticDateTimePicker.js +509 -0
- package/node/StaticDateTimePicker/index.js +13 -0
- package/node/StaticTimePicker/StaticTimePicker.js +356 -0
- package/node/StaticTimePicker/index.js +13 -0
- package/node/TimePicker/TimePicker.js +416 -0
- package/node/TimePicker/TimePickerToolbar.js +192 -0
- package/node/TimePicker/index.js +13 -0
- package/node/TimePicker/shared.js +59 -0
- package/node/TimePicker/timePickerToolbarClasses.js +16 -0
- package/node/YearPicker/PickersYear.js +135 -0
- package/node/YearPicker/YearPicker.js +212 -0
- package/node/YearPicker/index.js +27 -0
- package/node/YearPicker/yearPickerClasses.js +16 -0
- package/node/index.js +257 -0
- package/node/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js +151 -0
- package/node/internals/components/CalendarOrClockPicker/index.js +13 -0
- package/node/internals/components/KeyboardDateInput.js +83 -0
- package/node/internals/components/PickerStaticWrapper/PickerStaticWrapper.js +78 -0
- package/node/internals/components/PickerStaticWrapper/index.js +27 -0
- package/node/internals/components/PickerStaticWrapper/pickerStaticWrapperClasses.js +16 -0
- package/node/internals/components/PickerViewRoot/PickerViewRoot.js +20 -0
- package/node/internals/components/PickerViewRoot/index.js +13 -0
- package/node/internals/components/PickersArrowSwitcher.js +110 -0
- package/node/internals/components/PickersModalDialog.js +99 -0
- package/node/internals/components/PickersPopper.js +287 -0
- package/node/internals/components/PickersToolbar.js +105 -0
- package/node/internals/components/PickersToolbarButton.js +59 -0
- package/node/internals/components/PickersToolbarText.js +57 -0
- package/node/internals/components/PureDateInput.js +70 -0
- package/node/internals/components/icons/index.js +88 -0
- package/node/internals/components/wrappers/DesktopTooltipWrapper.js +71 -0
- package/node/internals/components/wrappers/DesktopWrapper.js +60 -0
- package/node/internals/components/wrappers/MobileWrapper.js +65 -0
- package/node/internals/components/wrappers/ResponsiveWrapper.js +64 -0
- package/node/internals/components/wrappers/WrapperProps.js +5 -0
- package/node/internals/components/wrappers/WrapperVariantContext.js +25 -0
- package/node/internals/constants/dimensions.js +14 -0
- package/node/internals/hooks/date-helpers-hooks.js +55 -0
- package/node/internals/hooks/useIsLandscape.js +57 -0
- package/node/internals/hooks/useMaskedInput.js +113 -0
- package/node/internals/hooks/useOpenState.js +51 -0
- package/node/internals/hooks/usePickerState.js +136 -0
- package/node/internals/hooks/useUtils.js +40 -0
- package/node/internals/hooks/useViews.js +64 -0
- package/node/internals/hooks/validation/useDateTimeValidation.js +51 -0
- package/node/internals/hooks/validation/useDateValidation.js +54 -0
- package/node/internals/hooks/validation/useTimeValidation.js +55 -0
- package/node/internals/hooks/validation/useValidation.js +32 -0
- package/node/internals/index.js +193 -0
- package/node/internals/models/helpers.js +5 -0
- package/node/internals/models/index.js +31 -0
- package/node/internals/models/muiPickersAdapter.js +5 -0
- package/node/internals/models/parseableDate.js +5 -0
- package/node/internals/models/props/basePickerProps.js +5 -0
- package/node/internals/models/props/baseToolbarProps.js +5 -0
- package/node/internals/models/views.js +5 -0
- package/node/internals/utils/date-utils.js +79 -0
- package/node/internals/utils/defaultReduceAnimations.js +8 -0
- package/node/internals/utils/text-field-helper.js +86 -0
- package/node/internals/utils/time-utils.js +53 -0
- package/node/internals/utils/utils.js +58 -0
- package/node/themeAugmentation/index.js +44 -0
- package/package.json +78 -0
- package/themeAugmentation/components.d.ts +53 -0
- package/themeAugmentation/index.d.ts +3 -0
- package/themeAugmentation/index.js +3 -0
- package/themeAugmentation/overrides.d.ts +27 -0
- package/themeAugmentation/package.json +6 -0
- package/themeAugmentation/props.d.ts +46 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { MobileWrapperProps } from './MobileWrapper';
|
|
3
|
+
import { DesktopWrapperProps } from './DesktopWrapper';
|
|
4
|
+
import { DateInputPropsLike, PrivateWrapperProps } from './WrapperProps';
|
|
5
|
+
export interface ResponsiveWrapperProps extends MobileWrapperProps, DesktopWrapperProps {
|
|
6
|
+
/**
|
|
7
|
+
* CSS media query when `Mobile` mode will be changed to `Desktop`.
|
|
8
|
+
* @default '@media (pointer: fine)'
|
|
9
|
+
* @example '@media (min-width: 720px)' or theme.breakpoints.up('sm')
|
|
10
|
+
*/
|
|
11
|
+
desktopModeMediaQuery?: string;
|
|
12
|
+
}
|
|
13
|
+
interface InternalResponsiveWrapperProps extends ResponsiveWrapperProps, PrivateWrapperProps {
|
|
14
|
+
DateInputProps: DateInputPropsLike & {
|
|
15
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
16
|
+
};
|
|
17
|
+
KeyboardDateInputComponent: React.JSXElementConstructor<DateInputPropsLike & {
|
|
18
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
19
|
+
}>;
|
|
20
|
+
PureDateInputComponent: React.JSXElementConstructor<DateInputPropsLike>;
|
|
21
|
+
}
|
|
22
|
+
export declare function ResponsiveTooltipWrapper(props: InternalResponsiveWrapperProps): JSX.Element;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["cancelText", "clearable", "clearText", "DateInputProps", "desktopModeMediaQuery", "DialogProps", "KeyboardDateInputComponent", "okText", "PopperProps", "PureDateInputComponent", "showTodayButton", "todayText", "TransitionComponent"];
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import useMediaQuery from '@mui/material/useMediaQuery';
|
|
6
|
+
import { MobileWrapper } from './MobileWrapper';
|
|
7
|
+
import { DesktopTooltipWrapper } from './DesktopTooltipWrapper';
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
export function ResponsiveTooltipWrapper(props) {
|
|
10
|
+
const {
|
|
11
|
+
cancelText,
|
|
12
|
+
clearable,
|
|
13
|
+
clearText,
|
|
14
|
+
DateInputProps,
|
|
15
|
+
desktopModeMediaQuery = '@media (pointer: fine)',
|
|
16
|
+
DialogProps,
|
|
17
|
+
KeyboardDateInputComponent,
|
|
18
|
+
okText,
|
|
19
|
+
PopperProps,
|
|
20
|
+
PureDateInputComponent,
|
|
21
|
+
showTodayButton,
|
|
22
|
+
todayText,
|
|
23
|
+
TransitionComponent
|
|
24
|
+
} = props,
|
|
25
|
+
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
26
|
+
|
|
27
|
+
const isDesktop = useMediaQuery(desktopModeMediaQuery);
|
|
28
|
+
return isDesktop ? /*#__PURE__*/_jsx(DesktopTooltipWrapper, _extends({
|
|
29
|
+
DateInputProps: DateInputProps,
|
|
30
|
+
KeyboardDateInputComponent: KeyboardDateInputComponent,
|
|
31
|
+
PopperProps: PopperProps,
|
|
32
|
+
TransitionComponent: TransitionComponent
|
|
33
|
+
}, other)) : /*#__PURE__*/_jsx(MobileWrapper, _extends({
|
|
34
|
+
cancelText: cancelText,
|
|
35
|
+
clearable: clearable,
|
|
36
|
+
clearText: clearText,
|
|
37
|
+
DateInputProps: DateInputProps,
|
|
38
|
+
DialogProps: DialogProps,
|
|
39
|
+
okText: okText,
|
|
40
|
+
PureDateInputComponent: PureDateInputComponent,
|
|
41
|
+
showTodayButton: showTodayButton,
|
|
42
|
+
todayText: todayText
|
|
43
|
+
}, other));
|
|
44
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { DateInputProps } from '../PureDateInput';
|
|
3
|
+
export interface DateInputPropsLike extends Omit<DateInputProps<any, any>, 'renderInput' | 'validationError'> {
|
|
4
|
+
renderInput: (...args: any) => JSX.Element;
|
|
5
|
+
validationError?: any;
|
|
6
|
+
}
|
|
7
|
+
export interface PrivateWrapperProps {
|
|
8
|
+
onAccept: () => void;
|
|
9
|
+
onClear: () => void;
|
|
10
|
+
onDismiss: () => void;
|
|
11
|
+
onSetToday: () => void;
|
|
12
|
+
open: boolean;
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare type WrapperVariant = 'mobile' | 'desktop' | null;
|
|
3
|
+
/**
|
|
4
|
+
* TODO consider getting rid from wrapper variant
|
|
5
|
+
* @ignore - internal component.
|
|
6
|
+
*/
|
|
7
|
+
export declare const WrapperVariantContext: React.Context<WrapperVariant>;
|
|
8
|
+
/**
|
|
9
|
+
* @ignore - internal component.
|
|
10
|
+
*/
|
|
11
|
+
export declare const IsStaticVariantContext: React.Context<boolean>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* TODO consider getting rid from wrapper variant
|
|
5
|
+
* @ignore - internal component.
|
|
6
|
+
*/
|
|
7
|
+
export const WrapperVariantContext = /*#__PURE__*/React.createContext(null);
|
|
8
|
+
/**
|
|
9
|
+
* @ignore - internal component.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
export const IsStaticVariantContext = /*#__PURE__*/React.createContext(false);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ParseableDate } from '../models/parseableDate';
|
|
2
|
+
import { PickerOnChangeFn } from './useViews';
|
|
3
|
+
export declare type OverrideParseableDateProps<TDate, TProps, TKey extends keyof TProps> = Omit<TProps, TKey> & Partial<Record<TKey, ParseableDate<TDate>>>;
|
|
4
|
+
interface MonthValidationOptions<TDate> {
|
|
5
|
+
disablePast?: boolean;
|
|
6
|
+
disableFuture?: boolean;
|
|
7
|
+
minDate: TDate;
|
|
8
|
+
maxDate: TDate;
|
|
9
|
+
}
|
|
10
|
+
export declare function useNextMonthDisabled<TDate>(month: TDate, { disableFuture, maxDate }: Pick<MonthValidationOptions<TDate>, 'disableFuture' | 'maxDate'>): boolean;
|
|
11
|
+
export declare function usePreviousMonthDisabled<TDate>(month: TDate, { disablePast, minDate }: Pick<MonthValidationOptions<TDate>, 'disablePast' | 'minDate'>): boolean;
|
|
12
|
+
export declare function useMeridiemMode<TDate>(date: TDate, ampm: boolean | undefined, onChange: PickerOnChangeFn<TDate>): {
|
|
13
|
+
meridiemMode: "am" | "pm" | null;
|
|
14
|
+
handleMeridiemChange: (mode: 'am' | 'pm') => void;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useUtils } from './useUtils';
|
|
3
|
+
import { getMeridiem, convertToMeridiem } from '../utils/time-utils';
|
|
4
|
+
export function useNextMonthDisabled(month, {
|
|
5
|
+
disableFuture,
|
|
6
|
+
maxDate
|
|
7
|
+
}) {
|
|
8
|
+
const utils = useUtils();
|
|
9
|
+
return React.useMemo(() => {
|
|
10
|
+
const now = utils.date();
|
|
11
|
+
const lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);
|
|
12
|
+
return !utils.isAfter(lastEnabledMonth, month);
|
|
13
|
+
}, [disableFuture, maxDate, month, utils]);
|
|
14
|
+
}
|
|
15
|
+
export function usePreviousMonthDisabled(month, {
|
|
16
|
+
disablePast,
|
|
17
|
+
minDate
|
|
18
|
+
}) {
|
|
19
|
+
const utils = useUtils();
|
|
20
|
+
return React.useMemo(() => {
|
|
21
|
+
const now = utils.date();
|
|
22
|
+
const firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);
|
|
23
|
+
return !utils.isBefore(firstEnabledMonth, month);
|
|
24
|
+
}, [disablePast, minDate, month, utils]);
|
|
25
|
+
}
|
|
26
|
+
export function useMeridiemMode(date, ampm, onChange) {
|
|
27
|
+
const utils = useUtils();
|
|
28
|
+
const meridiemMode = getMeridiem(date, utils);
|
|
29
|
+
const handleMeridiemChange = React.useCallback(mode => {
|
|
30
|
+
const timeWithMeridiem = convertToMeridiem(date, mode, Boolean(ampm), utils);
|
|
31
|
+
onChange(timeWithMeridiem, 'partial');
|
|
32
|
+
}, [ampm, date, onChange, utils]);
|
|
33
|
+
return {
|
|
34
|
+
meridiemMode,
|
|
35
|
+
handleMeridiemChange
|
|
36
|
+
};
|
|
37
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
|
|
3
|
+
import { arrayIncludes } from '../utils/utils';
|
|
4
|
+
|
|
5
|
+
function getOrientation() {
|
|
6
|
+
if (typeof window === 'undefined') {
|
|
7
|
+
return 'portrait';
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
if (window.screen && window.screen.orientation && window.screen.orientation.angle) {
|
|
11
|
+
return Math.abs(window.screen.orientation.angle) === 90 ? 'landscape' : 'portrait';
|
|
12
|
+
} // Support IOS safari
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
if (window.orientation) {
|
|
16
|
+
return Math.abs(Number(window.orientation)) === 90 ? 'landscape' : 'portrait';
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return 'portrait';
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const useIsLandscape = (views, customOrientation) => {
|
|
23
|
+
const [orientation, setOrientation] = React.useState(getOrientation);
|
|
24
|
+
useEnhancedEffect(() => {
|
|
25
|
+
const eventHandler = () => {
|
|
26
|
+
setOrientation(getOrientation());
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
window.addEventListener('orientationchange', eventHandler);
|
|
30
|
+
return () => {
|
|
31
|
+
window.removeEventListener('orientationchange', eventHandler);
|
|
32
|
+
};
|
|
33
|
+
}, []);
|
|
34
|
+
|
|
35
|
+
if (arrayIncludes(views, ['hours', 'minutes', 'seconds'])) {
|
|
36
|
+
// could not display 13:34:44 in landscape mode
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const orientationToUse = customOrientation || orientation;
|
|
41
|
+
return orientationToUse === 'landscape';
|
|
42
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { DateInputProps, MuiTextFieldProps } from '../components/PureDateInput';
|
|
3
|
+
declare type MaskedInputProps = Omit<DateInputProps, 'adornmentPosition' | 'disableOpenPicker' | 'getOpenDialogAriaText' | 'InputAdornmentProps' | 'InputProps' | 'open' | 'openPicker' | 'OpenPickerButtonProps' | 'renderInput'> & {
|
|
4
|
+
inputProps?: Partial<React.HTMLProps<HTMLInputElement>>;
|
|
5
|
+
};
|
|
6
|
+
export declare const useMaskedInput: ({ acceptRegex, disabled, disableMaskedInput, ignoreInvalidInputs, inputFormat, inputProps, label, mask, onChange, rawValue, readOnly, rifmFormatter, TextFieldProps, validationError, }: MaskedInputProps) => MuiTextFieldProps;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { useRifm } from 'rifm';
|
|
4
|
+
import { useUtils } from './useUtils';
|
|
5
|
+
import { createDelegatedEventHandler } from '../utils/utils';
|
|
6
|
+
import { maskedDateFormatter, getDisplayDate, checkMaskIsValidForCurrentFormat } from '../utils/text-field-helper';
|
|
7
|
+
export const useMaskedInput = ({
|
|
8
|
+
acceptRegex = /[\d]/gi,
|
|
9
|
+
disabled,
|
|
10
|
+
disableMaskedInput,
|
|
11
|
+
ignoreInvalidInputs,
|
|
12
|
+
inputFormat,
|
|
13
|
+
inputProps,
|
|
14
|
+
label,
|
|
15
|
+
mask,
|
|
16
|
+
onChange,
|
|
17
|
+
rawValue,
|
|
18
|
+
readOnly,
|
|
19
|
+
rifmFormatter,
|
|
20
|
+
TextFieldProps,
|
|
21
|
+
validationError
|
|
22
|
+
}) => {
|
|
23
|
+
const utils = useUtils();
|
|
24
|
+
const [isFocused, setIsFocused] = React.useState(false);
|
|
25
|
+
const formatHelperText = utils.getFormatHelperText(inputFormat);
|
|
26
|
+
const shouldUseMaskedInput = React.useMemo(() => {
|
|
27
|
+
// formatting of dates is a quite slow thing, so do not make useless .format calls
|
|
28
|
+
if (!mask || disableMaskedInput) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return checkMaskIsValidForCurrentFormat(mask, inputFormat, acceptRegex, utils);
|
|
33
|
+
}, [acceptRegex, disableMaskedInput, inputFormat, mask, utils]);
|
|
34
|
+
const formatter = React.useMemo(() => shouldUseMaskedInput && mask ? maskedDateFormatter(mask, acceptRegex) : st => st, [acceptRegex, mask, shouldUseMaskedInput]); // TODO: Implement with controlled vs uncontrolled `rawValue`
|
|
35
|
+
|
|
36
|
+
const currentInputValue = getDisplayDate(utils, rawValue, inputFormat);
|
|
37
|
+
const [innerInputValue, setInnerInputValue] = React.useState(currentInputValue);
|
|
38
|
+
const previousInputValueRef = React.useRef(currentInputValue);
|
|
39
|
+
React.useEffect(() => {
|
|
40
|
+
previousInputValueRef.current = currentInputValue;
|
|
41
|
+
}, [currentInputValue]);
|
|
42
|
+
const notTyping = !isFocused;
|
|
43
|
+
const valueChanged = previousInputValueRef.current !== currentInputValue; // Update the input value only if the value changed outside of typing
|
|
44
|
+
|
|
45
|
+
if (notTyping && valueChanged && (rawValue === null || utils.isValid(rawValue))) {
|
|
46
|
+
if (currentInputValue !== innerInputValue) {
|
|
47
|
+
setInnerInputValue(currentInputValue);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const handleChange = text => {
|
|
52
|
+
const finalString = text === '' || text === mask ? '' : text;
|
|
53
|
+
setInnerInputValue(finalString);
|
|
54
|
+
const date = finalString === null ? null : utils.parse(finalString, inputFormat);
|
|
55
|
+
|
|
56
|
+
if (ignoreInvalidInputs && !utils.isValid(date)) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
onChange(date, finalString || undefined);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const rifmProps = useRifm({
|
|
64
|
+
value: innerInputValue,
|
|
65
|
+
onChange: handleChange,
|
|
66
|
+
format: rifmFormatter || formatter
|
|
67
|
+
});
|
|
68
|
+
const inputStateArgs = shouldUseMaskedInput ? rifmProps : {
|
|
69
|
+
value: innerInputValue,
|
|
70
|
+
onChange: event => {
|
|
71
|
+
handleChange(event.currentTarget.value);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
return _extends({
|
|
75
|
+
label,
|
|
76
|
+
disabled,
|
|
77
|
+
error: validationError,
|
|
78
|
+
inputProps: _extends({}, inputStateArgs, {
|
|
79
|
+
disabled,
|
|
80
|
+
placeholder: formatHelperText,
|
|
81
|
+
readOnly,
|
|
82
|
+
type: shouldUseMaskedInput ? 'tel' : 'text'
|
|
83
|
+
}, inputProps, {
|
|
84
|
+
onFocus: createDelegatedEventHandler(() => {
|
|
85
|
+
setIsFocused(true);
|
|
86
|
+
}, inputProps == null ? void 0 : inputProps.onFocus),
|
|
87
|
+
onBlur: createDelegatedEventHandler(() => {
|
|
88
|
+
setIsFocused(false);
|
|
89
|
+
}, inputProps == null ? void 0 : inputProps.onBlur)
|
|
90
|
+
})
|
|
91
|
+
}, TextFieldProps);
|
|
92
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export const useOpenState = ({
|
|
3
|
+
open,
|
|
4
|
+
onOpen,
|
|
5
|
+
onClose
|
|
6
|
+
}) => {
|
|
7
|
+
const isControllingOpenProp = React.useRef(typeof open === 'boolean').current;
|
|
8
|
+
const [openState, setIsOpenState] = React.useState(false); // It is required to update inner state in useEffect in order to avoid situation when
|
|
9
|
+
// Our component is not mounted yet, but `open` state is set to `true` (e.g. initially opened)
|
|
10
|
+
|
|
11
|
+
React.useEffect(() => {
|
|
12
|
+
if (isControllingOpenProp) {
|
|
13
|
+
if (typeof open !== 'boolean') {
|
|
14
|
+
throw new Error('You must not mix controlling and uncontrolled mode for `open` prop');
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
setIsOpenState(open);
|
|
18
|
+
}
|
|
19
|
+
}, [isControllingOpenProp, open]);
|
|
20
|
+
const setIsOpen = React.useCallback(newIsOpen => {
|
|
21
|
+
if (!isControllingOpenProp) {
|
|
22
|
+
setIsOpenState(newIsOpen);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (newIsOpen && onOpen) {
|
|
26
|
+
onOpen();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (!newIsOpen && onClose) {
|
|
30
|
+
onClose();
|
|
31
|
+
}
|
|
32
|
+
}, [isControllingOpenProp, onOpen, onClose]);
|
|
33
|
+
return {
|
|
34
|
+
isOpen: openState,
|
|
35
|
+
setIsOpen
|
|
36
|
+
};
|
|
37
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { WrapperVariant } from '../components/wrappers/WrapperVariantContext';
|
|
2
|
+
import { MuiPickersAdapter } from '../models';
|
|
3
|
+
export interface PickerStateValueManager<TInputValue, TDateValue> {
|
|
4
|
+
areValuesEqual: (utils: MuiPickersAdapter<TDateValue>, valueLeft: TDateValue, valueRight: TDateValue) => boolean;
|
|
5
|
+
emptyValue: TDateValue;
|
|
6
|
+
parseInput: (utils: MuiPickersAdapter<TDateValue>, value: TInputValue) => TDateValue;
|
|
7
|
+
}
|
|
8
|
+
export declare type PickerSelectionState = 'partial' | 'shallow' | 'finish';
|
|
9
|
+
interface PickerStateProps<TInput, TDateValue> {
|
|
10
|
+
disableCloseOnSelect?: boolean;
|
|
11
|
+
open?: boolean;
|
|
12
|
+
onAccept?: (date: TDateValue) => void;
|
|
13
|
+
onChange: (date: TDateValue, keyboardInputValue?: string) => void;
|
|
14
|
+
onClose?: () => void;
|
|
15
|
+
onOpen?: () => void;
|
|
16
|
+
value: TInput;
|
|
17
|
+
}
|
|
18
|
+
export declare const usePickerState: <TInput, TDateValue>(props: PickerStateProps<TInput, TDateValue>, valueManager: PickerStateValueManager<TInput, TDateValue>) => {
|
|
19
|
+
pickerProps: {
|
|
20
|
+
date: TDateValue;
|
|
21
|
+
isMobileKeyboardViewOpen: boolean;
|
|
22
|
+
toggleMobileKeyboardView: () => void;
|
|
23
|
+
onDateChange: (newDate: TDateValue, wrapperVariant: WrapperVariant, selectionState?: PickerSelectionState) => void;
|
|
24
|
+
};
|
|
25
|
+
inputProps: {
|
|
26
|
+
onChange: (date: TDateValue, keyboardInputValue?: string | undefined) => void;
|
|
27
|
+
open: boolean;
|
|
28
|
+
rawValue: TInput;
|
|
29
|
+
openPicker: () => void;
|
|
30
|
+
};
|
|
31
|
+
wrapperProps: {
|
|
32
|
+
open: boolean;
|
|
33
|
+
onClear: () => void;
|
|
34
|
+
onAccept: () => void;
|
|
35
|
+
onDismiss: () => void;
|
|
36
|
+
onSetToday: () => void;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { useOpenState } from './useOpenState';
|
|
4
|
+
import { useUtils } from './useUtils';
|
|
5
|
+
export const usePickerState = (props, valueManager) => {
|
|
6
|
+
const {
|
|
7
|
+
disableCloseOnSelect,
|
|
8
|
+
onAccept,
|
|
9
|
+
onChange,
|
|
10
|
+
value
|
|
11
|
+
} = props;
|
|
12
|
+
const utils = useUtils();
|
|
13
|
+
const {
|
|
14
|
+
isOpen,
|
|
15
|
+
setIsOpen
|
|
16
|
+
} = useOpenState(props);
|
|
17
|
+
|
|
18
|
+
function initDraftableDate(date) {
|
|
19
|
+
return {
|
|
20
|
+
committed: date,
|
|
21
|
+
draft: date
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const parsedDateValue = valueManager.parseInput(utils, value);
|
|
26
|
+
const [draftState, dispatch] = React.useReducer((state, action) => {
|
|
27
|
+
switch (action.type) {
|
|
28
|
+
case 'reset':
|
|
29
|
+
return initDraftableDate(action.payload);
|
|
30
|
+
|
|
31
|
+
case 'update':
|
|
32
|
+
return _extends({}, state, {
|
|
33
|
+
draft: action.payload
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
default:
|
|
37
|
+
return state;
|
|
38
|
+
}
|
|
39
|
+
}, parsedDateValue, initDraftableDate);
|
|
40
|
+
|
|
41
|
+
if (!valueManager.areValuesEqual(utils, draftState.committed, parsedDateValue)) {
|
|
42
|
+
dispatch({
|
|
43
|
+
type: 'reset',
|
|
44
|
+
payload: parsedDateValue
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const [initialDate, setInitialDate] = React.useState(draftState.committed); // Mobile keyboard view is a special case.
|
|
49
|
+
// When it's open picker should work like closed, cause we are just showing text field
|
|
50
|
+
|
|
51
|
+
const [isMobileKeyboardViewOpen, setMobileKeyboardViewOpen] = React.useState(false);
|
|
52
|
+
const acceptDate = React.useCallback((acceptedDate, needClosePicker) => {
|
|
53
|
+
onChange(acceptedDate);
|
|
54
|
+
|
|
55
|
+
if (needClosePicker) {
|
|
56
|
+
setIsOpen(false);
|
|
57
|
+
setInitialDate(acceptedDate);
|
|
58
|
+
|
|
59
|
+
if (onAccept) {
|
|
60
|
+
onAccept(acceptedDate);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}, [onAccept, onChange, setIsOpen]);
|
|
64
|
+
const wrapperProps = React.useMemo(() => ({
|
|
65
|
+
open: isOpen,
|
|
66
|
+
onClear: () => acceptDate(valueManager.emptyValue, true),
|
|
67
|
+
onAccept: () => acceptDate(draftState.draft, true),
|
|
68
|
+
onDismiss: () => acceptDate(initialDate, true),
|
|
69
|
+
onSetToday: () => {
|
|
70
|
+
const now = utils.date();
|
|
71
|
+
dispatch({
|
|
72
|
+
type: 'update',
|
|
73
|
+
payload: now
|
|
74
|
+
});
|
|
75
|
+
acceptDate(now, !disableCloseOnSelect);
|
|
76
|
+
}
|
|
77
|
+
}), [acceptDate, disableCloseOnSelect, isOpen, utils, draftState.draft, valueManager.emptyValue, initialDate]);
|
|
78
|
+
const pickerProps = React.useMemo(() => ({
|
|
79
|
+
date: draftState.draft,
|
|
80
|
+
isMobileKeyboardViewOpen,
|
|
81
|
+
toggleMobileKeyboardView: () => setMobileKeyboardViewOpen(!isMobileKeyboardViewOpen),
|
|
82
|
+
onDateChange: (newDate, wrapperVariant, selectionState = 'partial') => {
|
|
83
|
+
dispatch({
|
|
84
|
+
type: 'update',
|
|
85
|
+
payload: newDate
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
if (selectionState === 'partial') {
|
|
89
|
+
acceptDate(newDate, false);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (selectionState === 'finish') {
|
|
93
|
+
const shouldCloseOnSelect = !(disableCloseOnSelect != null ? disableCloseOnSelect : wrapperVariant === 'mobile');
|
|
94
|
+
acceptDate(newDate, shouldCloseOnSelect);
|
|
95
|
+
} // if selectionState === "shallow" do nothing (we already update the draft state)
|
|
96
|
+
|
|
97
|
+
}
|
|
98
|
+
}), [acceptDate, disableCloseOnSelect, isMobileKeyboardViewOpen, draftState.draft]);
|
|
99
|
+
const inputProps = React.useMemo(() => ({
|
|
100
|
+
onChange,
|
|
101
|
+
open: isOpen,
|
|
102
|
+
rawValue: value,
|
|
103
|
+
openPicker: () => setIsOpen(true)
|
|
104
|
+
}), [onChange, isOpen, value, setIsOpen]);
|
|
105
|
+
const pickerState = {
|
|
106
|
+
pickerProps,
|
|
107
|
+
inputProps,
|
|
108
|
+
wrapperProps
|
|
109
|
+
};
|
|
110
|
+
React.useDebugValue(pickerState, () => ({
|
|
111
|
+
MuiPickerState: {
|
|
112
|
+
pickerDraft: draftState,
|
|
113
|
+
other: pickerState
|
|
114
|
+
}
|
|
115
|
+
}));
|
|
116
|
+
return pickerState;
|
|
117
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { MuiPickersAdapterContext } from '../../LocalizationProvider/LocalizationProvider';
|
|
3
|
+
|
|
4
|
+
const useLocalizationContext = () => {
|
|
5
|
+
const localization = React.useContext(MuiPickersAdapterContext);
|
|
6
|
+
|
|
7
|
+
if (localization === null) {
|
|
8
|
+
throw new Error('MUI: Can not find utils in context. It looks like you forgot to wrap your component in LocalizationProvider, or pass dateAdapter prop directly.');
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return localization;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export const useUtils = () => useLocalizationContext().utils;
|
|
15
|
+
export const useDefaultDates = () => useLocalizationContext().defaultDates;
|
|
16
|
+
export const useNow = () => {
|
|
17
|
+
const utils = useUtils();
|
|
18
|
+
const now = React.useRef(utils.date());
|
|
19
|
+
return now.current;
|
|
20
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PickerSelectionState } from './usePickerState';
|
|
2
|
+
import { CalendarOrClockPickerView } from '../models';
|
|
3
|
+
export declare type PickerOnChangeFn<TDate> = (date: TDate | null, selectionState?: PickerSelectionState) => void;
|
|
4
|
+
interface UseViewsOptions<TDate, View extends CalendarOrClockPickerView> {
|
|
5
|
+
onChange: PickerOnChangeFn<TDate>;
|
|
6
|
+
onViewChange?: (newView: View) => void;
|
|
7
|
+
openTo?: View;
|
|
8
|
+
view: View | undefined;
|
|
9
|
+
views: readonly View[];
|
|
10
|
+
}
|
|
11
|
+
export declare function useViews<TDate, View extends CalendarOrClockPickerView>({ onChange, onViewChange, openTo, view, views, }: UseViewsOptions<TDate, View>): {
|
|
12
|
+
handleChangeAndOpenNext: PickerOnChangeFn<TDate>;
|
|
13
|
+
nextView: View;
|
|
14
|
+
previousView: View;
|
|
15
|
+
openNext: () => void;
|
|
16
|
+
openView: View;
|
|
17
|
+
setOpenView: (newView: View) => void;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useControlled } from '@mui/material/utils';
|
|
3
|
+
import { arrayIncludes } from '../utils/utils';
|
|
4
|
+
export function useViews({
|
|
5
|
+
onChange,
|
|
6
|
+
onViewChange,
|
|
7
|
+
openTo,
|
|
8
|
+
view,
|
|
9
|
+
views
|
|
10
|
+
}) {
|
|
11
|
+
var _views, _views2;
|
|
12
|
+
|
|
13
|
+
const [openView, setOpenView] = useControlled({
|
|
14
|
+
name: 'Picker',
|
|
15
|
+
state: 'view',
|
|
16
|
+
controlled: view,
|
|
17
|
+
default: openTo && arrayIncludes(views, openTo) ? openTo : views[0]
|
|
18
|
+
});
|
|
19
|
+
const previousView = (_views = views[views.indexOf(openView) - 1]) != null ? _views : null;
|
|
20
|
+
const nextView = (_views2 = views[views.indexOf(openView) + 1]) != null ? _views2 : null;
|
|
21
|
+
const changeView = React.useCallback(newView => {
|
|
22
|
+
setOpenView(newView);
|
|
23
|
+
|
|
24
|
+
if (onViewChange) {
|
|
25
|
+
onViewChange(newView);
|
|
26
|
+
}
|
|
27
|
+
}, [setOpenView, onViewChange]);
|
|
28
|
+
const openNext = React.useCallback(() => {
|
|
29
|
+
if (nextView) {
|
|
30
|
+
changeView(nextView);
|
|
31
|
+
}
|
|
32
|
+
}, [nextView, changeView]);
|
|
33
|
+
const handleChangeAndOpenNext = React.useCallback((date, currentViewSelectionState) => {
|
|
34
|
+
const isSelectionFinishedOnCurrentView = currentViewSelectionState === 'finish';
|
|
35
|
+
const globalSelectionState = isSelectionFinishedOnCurrentView && Boolean(nextView) ? 'partial' : currentViewSelectionState;
|
|
36
|
+
onChange(date, globalSelectionState);
|
|
37
|
+
|
|
38
|
+
if (isSelectionFinishedOnCurrentView) {
|
|
39
|
+
openNext();
|
|
40
|
+
}
|
|
41
|
+
}, [nextView, onChange, openNext]);
|
|
42
|
+
return {
|
|
43
|
+
handleChangeAndOpenNext,
|
|
44
|
+
nextView,
|
|
45
|
+
previousView,
|
|
46
|
+
openNext,
|
|
47
|
+
openView,
|
|
48
|
+
setOpenView: changeView
|
|
49
|
+
};
|
|
50
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ValidationProps, Validator } from './useValidation';
|
|
2
|
+
import { DateValidationError, ExportedDateValidationProps } from './useDateValidation';
|
|
3
|
+
import { TimeValidationError, ExportedTimeValidationProps } from './useTimeValidation';
|
|
4
|
+
export interface DateTimeValidationProps<TDate> extends ExportedDateValidationProps<TDate>, ExportedTimeValidationProps<TDate>, ValidationProps<DateTimeValidationError, TDate> {
|
|
5
|
+
}
|
|
6
|
+
export declare const validateDateTime: Validator<any, DateTimeValidationProps<any>>;
|
|
7
|
+
export declare type DateTimeValidationError = DateValidationError | TimeValidationError;
|
|
8
|
+
export declare function useDateTimeValidation<TDate>(props: DateTimeValidationProps<TDate> & ValidationProps<DateTimeValidationError, TDate>): DateTimeValidationError;
|