@mui/x-date-pickers 8.0.0-alpha.0 → 8.0.0-alpha.10
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 +2 -4
- package/AdapterDateFns/AdapterDateFns.js +49 -47
- package/AdapterDateFnsBase/AdapterDateFnsBase.d.ts +1 -1
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +2 -4
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
- package/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.d.ts → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.d.ts} +2 -2
- package/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
- package/AdapterDateFnsJalaliV2/index.d.ts +1 -0
- package/AdapterDateFnsJalaliV2/index.js +1 -0
- package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/package.json +1 -1
- package/{AdapterDateFnsV3/AdapterDateFnsV3.d.ts → AdapterDateFnsV2/AdapterDateFnsV2.d.ts} +2 -2
- package/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
- package/AdapterDateFnsV2/index.d.ts +1 -0
- package/AdapterDateFnsV2/index.js +1 -0
- package/{AdapterDateFnsV3 → AdapterDateFnsV2}/package.json +1 -1
- package/AdapterDayjs/AdapterDayjs.d.ts +1 -1
- package/AdapterLuxon/AdapterLuxon.d.ts +1 -1
- package/AdapterMoment/AdapterMoment.d.ts +1 -1
- package/AdapterMoment/AdapterMoment.js +10 -0
- package/CHANGELOG.md +2215 -119
- package/DateCalendar/DateCalendar.js +5 -4
- package/DateCalendar/DateCalendar.types.d.ts +2 -1
- package/DateCalendar/DayCalendar.js +2 -0
- package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
- package/DateCalendar/PickersFadeTransitionGroup.js +4 -6
- package/DateCalendar/PickersSlideTransition.d.ts +1 -1
- package/DateCalendar/PickersSlideTransition.js +12 -5
- package/DateCalendar/useCalendarState.d.ts +6 -4
- package/DateField/DateField.js +29 -33
- package/DateField/DateField.types.d.ts +7 -15
- package/DateField/useDateField.d.ts +1 -1
- package/DateField/useDateField.js +14 -11
- package/DatePicker/DatePicker.js +1 -1
- package/DatePicker/DatePicker.types.d.ts +7 -3
- package/DatePicker/DatePickerToolbar.d.ts +1 -2
- package/DatePicker/DatePickerToolbar.js +17 -45
- package/DatePicker/shared.d.ts +6 -5
- package/DateTimeField/DateTimeField.js +29 -33
- package/DateTimeField/DateTimeField.types.d.ts +7 -16
- package/DateTimeField/useDateTimeField.d.ts +1 -1
- package/DateTimeField/useDateTimeField.js +14 -11
- package/DateTimePicker/DateTimePicker.js +2 -2
- package/DateTimePicker/DateTimePicker.types.d.ts +4 -5
- package/DateTimePicker/DateTimePickerTabs.d.ts +2 -5
- package/DateTimePicker/DateTimePickerTabs.js +15 -20
- package/DateTimePicker/DateTimePickerToolbar.d.ts +16 -5
- package/DateTimePicker/DateTimePickerToolbar.js +92 -93
- package/DateTimePicker/shared.d.ts +8 -8
- package/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
- package/DesktopDatePicker/DesktopDatePicker.js +11 -17
- package/DesktopDatePicker/DesktopDatePicker.types.d.ts +7 -3
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
- package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +2 -2
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +2 -2
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +9 -46
- package/DesktopTimePicker/DesktopTimePicker.js +6 -22
- package/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -2
- package/DigitalClock/DigitalClock.js +14 -11
- package/DigitalClock/DigitalClock.types.d.ts +8 -2
- package/MobileDatePicker/MobileDatePicker.js +4 -14
- package/MobileDatePicker/MobileDatePicker.types.d.ts +2 -3
- package/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
- package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +4 -4
- package/MobileTimePicker/MobileTimePicker.js +4 -14
- package/MobileTimePicker/MobileTimePicker.types.d.ts +4 -4
- package/MonthCalendar/MonthCalendar.d.ts +1 -1
- package/MonthCalendar/MonthCalendar.js +32 -11
- package/MonthCalendar/MonthCalendar.types.d.ts +2 -2
- package/MonthCalendar/MonthCalendarButton.d.ts +24 -0
- package/{modern/MonthCalendar/PickersMonth.js → MonthCalendar/MonthCalendarButton.js} +20 -61
- package/MonthCalendar/index.d.ts +0 -3
- package/MonthCalendar/index.js +1 -2
- package/MonthCalendar/monthCalendarClasses.d.ts +7 -1
- package/MonthCalendar/monthCalendarClasses.js +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +12 -7
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +6 -6
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +4 -4
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +14 -10
- package/PickersActionBar/PickersActionBar.d.ts +6 -7
- package/PickersActionBar/PickersActionBar.js +26 -17
- package/PickersCalendarHeader/PickersCalendarHeader.js +10 -7
- package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +3 -4
- package/PickersLayout/PickersLayout.d.ts +7 -5
- package/PickersLayout/PickersLayout.js +23 -54
- package/PickersLayout/PickersLayout.types.d.ts +20 -22
- package/PickersLayout/usePickerLayout.d.ts +5 -4
- package/PickersLayout/usePickerLayout.js +26 -57
- package/PickersSectionList/PickersSectionList.js +21 -16
- package/PickersSectionList/PickersSectionList.types.d.ts +13 -6
- package/PickersShortcuts/PickersShortcuts.d.ts +9 -11
- package/PickersShortcuts/PickersShortcuts.js +21 -11
- package/PickersShortcuts/index.d.ts +1 -1
- package/PickersTextField/PickersFilledInput/PickersFilledInput.d.ts +7 -0
- package/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
- package/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +1 -1
- package/PickersTextField/PickersInput/PickersInput.js +20 -14
- package/PickersTextField/PickersInput/pickersInputClasses.d.ts +3 -2
- package/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
- package/PickersTextField/PickersInputBase/PickersInputBase.d.ts +3 -6
- package/PickersTextField/PickersInputBase/PickersInputBase.js +51 -44
- package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +1 -0
- package/PickersTextField/PickersOutlinedInput/Outline.d.ts +0 -1
- package/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
- package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
- package/PickersTextField/PickersTextField.js +75 -62
- package/PickersTextField/PickersTextField.types.d.ts +43 -4
- package/PickersTextField/usePickerTextFieldOwnerState.d.ts +4 -0
- package/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
- package/README.md +10 -7
- package/StaticDatePicker/StaticDatePicker.js +2 -2
- package/StaticDatePicker/StaticDatePicker.types.d.ts +2 -3
- package/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
- package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +2 -2
- package/StaticTimePicker/StaticTimePicker.js +2 -2
- package/StaticTimePicker/StaticTimePicker.types.d.ts +2 -2
- package/TimeClock/Clock.d.ts +4 -0
- package/TimeClock/Clock.js +28 -27
- package/TimeClock/ClockNumber.js +15 -11
- package/TimeClock/ClockPointer.d.ts +6 -1
- package/TimeClock/ClockPointer.js +16 -10
- package/TimeClock/TimeClock.js +31 -12
- package/TimeField/TimeField.js +28 -32
- package/TimeField/TimeField.types.d.ts +7 -16
- package/TimeField/useTimeField.d.ts +1 -1
- package/TimeField/useTimeField.js +14 -11
- package/TimePicker/TimePicker.js +2 -2
- package/TimePicker/TimePicker.types.d.ts +4 -5
- package/TimePicker/TimePickerToolbar.d.ts +1 -3
- package/TimePicker/TimePickerToolbar.js +40 -64
- package/TimePicker/shared.d.ts +6 -6
- package/YearCalendar/YearCalendar.js +47 -13
- package/YearCalendar/YearCalendar.types.d.ts +2 -2
- package/YearCalendar/YearCalendarButton.d.ts +23 -0
- package/{modern/YearCalendar/PickersYear.js → YearCalendar/YearCalendarButton.js} +20 -59
- package/YearCalendar/index.d.ts +0 -3
- package/YearCalendar/index.js +1 -2
- package/YearCalendar/yearCalendarClasses.d.ts +7 -1
- package/YearCalendar/yearCalendarClasses.js +1 -1
- package/hooks/index.d.ts +2 -0
- package/hooks/index.js +3 -1
- package/hooks/useClearableField.d.ts +5 -3
- package/hooks/useClearableField.js +4 -2
- package/hooks/useIsValidValue.d.ts +7 -0
- package/hooks/useIsValidValue.js +11 -0
- package/hooks/useParsedFormat.d.ts +9 -7
- package/hooks/useParsedFormat.js +11 -13
- package/hooks/usePickerActionsContext.d.ts +7 -0
- package/hooks/usePickerActionsContext.js +15 -0
- package/hooks/usePickerContext.d.ts +5 -1
- package/hooks/usePickerContext.js +2 -2
- package/hooks/useSplitFieldProps.d.ts +15 -6
- package/hooks/useSplitFieldProps.js +8 -3
- package/index.d.ts +1 -0
- package/index.js +3 -2
- package/internals/components/PickerFieldUI.d.ts +133 -0
- package/internals/components/PickerFieldUI.js +317 -0
- package/internals/components/{PickersPopper.d.ts → PickerPopper/PickerPopper.d.ts} +26 -25
- package/{modern/internals/components/PickersPopper.js → internals/components/PickerPopper/PickerPopper.js} +47 -47
- package/internals/components/PickerPopper/index.d.ts +4 -0
- package/internals/components/PickerPopper/index.js +2 -0
- package/internals/components/PickerPopper/pickerPopperClasses.d.ts +9 -0
- package/internals/components/PickerPopper/pickerPopperClasses.js +6 -0
- package/internals/components/PickerProvider.d.ts +94 -14
- package/internals/components/PickerProvider.js +28 -8
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +11 -8
- package/internals/components/PickersModalDialog.d.ts +1 -3
- package/internals/components/PickersModalDialog.js +9 -3
- package/internals/components/PickersToolbar.d.ts +2 -3
- package/internals/components/PickersToolbar.js +16 -15
- package/internals/components/PickersToolbarButton.js +4 -6
- package/internals/components/PickersToolbarText.js +11 -13
- package/internals/hooks/date-helpers-hooks.js +4 -3
- package/internals/hooks/useClockReferenceDate.d.ts +2 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +36 -121
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +16 -38
- package/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
- package/internals/hooks/useField/index.d.ts +2 -0
- package/internals/hooks/useField/index.js +2 -1
- package/internals/hooks/useField/useField.d.ts +3 -3
- package/internals/hooks/useField/useField.js +17 -4
- package/internals/hooks/useField/useField.types.d.ts +56 -49
- package/internals/hooks/useField/useField.utils.d.ts +4 -3
- package/internals/hooks/useField/useField.utils.js +2 -2
- package/internals/hooks/useField/useFieldCharacterEditing.d.ts +6 -5
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +15 -0
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +47 -0
- package/internals/hooks/useField/useFieldState.d.ts +9 -8
- package/internals/hooks/useField/useFieldState.js +3 -3
- package/internals/hooks/useField/useFieldV6TextField.d.ts +4 -3
- package/internals/hooks/useField/useFieldV6TextField.js +5 -2
- package/internals/hooks/useField/useFieldV7TextField.js +8 -4
- package/internals/hooks/useFieldOwnerState.d.ts +6 -0
- package/internals/hooks/useFieldOwnerState.js +16 -0
- package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -1
- package/internals/hooks/useMobilePicker/useMobilePicker.js +35 -69
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +15 -22
- package/internals/hooks/useNullablePickerContext.d.ts +5 -0
- package/internals/hooks/useNullablePickerContext.js +10 -0
- package/internals/hooks/useOpenState.d.ts +3 -2
- package/internals/hooks/useOpenState.js +11 -9
- package/internals/hooks/usePicker/index.d.ts +1 -1
- package/internals/hooks/usePicker/usePicker.d.ts +3 -4
- package/internals/hooks/usePicker/usePicker.js +10 -29
- package/internals/hooks/usePicker/usePicker.types.d.ts +11 -11
- package/internals/hooks/usePicker/usePickerProvider.d.ts +58 -7
- package/internals/hooks/usePicker/usePickerProvider.js +102 -12
- package/internals/hooks/usePicker/usePickerValue.d.ts +3 -2
- package/internals/hooks/usePicker/usePickerValue.js +100 -218
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +135 -79
- package/internals/hooks/usePicker/usePickerViews.d.ts +59 -40
- package/internals/hooks/usePicker/usePickerViews.js +31 -19
- package/internals/hooks/useReduceAnimations.d.ts +2 -0
- package/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +5 -2
- package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +1 -1
- package/internals/hooks/useStaticPicker/useStaticPicker.js +8 -13
- package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +7 -13
- package/internals/hooks/useToolbarOwnerState.d.ts +10 -0
- package/internals/hooks/useToolbarOwnerState.js +13 -0
- package/internals/hooks/useUtils.d.ts +4 -3
- package/internals/hooks/useUtils.js +1 -1
- package/internals/hooks/useValueWithTimezone.d.ts +20 -15
- package/internals/hooks/useValueWithTimezone.js +13 -1
- package/internals/hooks/useViews.d.ts +5 -5
- package/internals/index.d.ts +28 -19
- package/internals/index.js +13 -8
- package/internals/models/common.d.ts +2 -1
- package/internals/models/fields.d.ts +8 -24
- package/internals/models/index.d.ts +1 -0
- package/internals/models/index.js +2 -1
- package/internals/models/manager.d.ts +15 -0
- package/internals/models/manager.js +1 -0
- package/internals/models/pickers.d.ts +1 -0
- package/internals/models/pickers.js +1 -0
- package/internals/models/props/basePickerProps.d.ts +3 -33
- package/internals/models/props/tabs.d.ts +0 -13
- package/internals/models/props/time.d.ts +2 -1
- package/internals/models/props/toolbar.d.ts +1 -20
- package/internals/models/value.d.ts +9 -0
- package/internals/utils/date-utils.d.ts +3 -3
- package/internals/utils/date-utils.js +1 -1
- package/internals/utils/utils.d.ts +3 -0
- package/internals/utils/utils.js +11 -1
- package/internals/utils/valueManagers.d.ts +4 -3
- package/internals/utils/valueManagers.js +4 -4
- package/locales/index.d.ts +1 -0
- package/locales/index.js +1 -0
- package/locales/nbNO.js +15 -19
- package/locales/nlNL.js +7 -7
- package/locales/roRO.js +15 -18
- package/locales/utils/getPickersLocalization.d.ts +0 -7
- package/locales/utils/getPickersLocalization.js +0 -13
- package/locales/zhTW.d.ts +80 -0
- package/locales/zhTW.js +73 -0
- package/managers/index.d.ts +6 -0
- package/managers/index.js +3 -0
- package/managers/package.json +6 -0
- package/managers/useDateManager.d.ts +27 -0
- package/managers/useDateManager.js +55 -0
- package/managers/useDateTimeManager.d.ts +28 -0
- package/managers/useDateTimeManager.js +60 -0
- package/managers/useTimeManager.d.ts +28 -0
- package/managers/useTimeManager.js +51 -0
- package/models/adapters.d.ts +5 -5
- package/models/common.d.ts +1 -0
- package/models/fields.d.ts +33 -10
- package/models/index.d.ts +1 -0
- package/models/index.js +1 -0
- package/models/manager.d.ts +87 -0
- package/models/manager.js +1 -0
- package/models/pickers.d.ts +25 -0
- package/models/validation.d.ts +2 -1
- package/modern/AdapterDateFns/AdapterDateFns.js +49 -47
- package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
- package/modern/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
- package/modern/AdapterDateFnsJalaliV2/index.js +1 -0
- package/modern/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
- package/modern/AdapterDateFnsV2/index.js +1 -0
- package/modern/AdapterMoment/AdapterMoment.js +10 -0
- package/modern/DateCalendar/DateCalendar.js +5 -4
- package/modern/DateCalendar/DayCalendar.js +2 -0
- package/modern/DateCalendar/PickersFadeTransitionGroup.js +4 -6
- package/modern/DateCalendar/PickersSlideTransition.js +12 -5
- package/modern/DateField/DateField.js +29 -33
- package/modern/DateField/useDateField.js +14 -11
- package/modern/DatePicker/DatePicker.js +1 -1
- package/modern/DatePicker/DatePickerToolbar.js +17 -45
- package/modern/DateTimeField/DateTimeField.js +29 -33
- package/modern/DateTimeField/useDateTimeField.js +14 -11
- package/modern/DateTimePicker/DateTimePicker.js +2 -2
- package/modern/DateTimePicker/DateTimePickerTabs.js +15 -20
- package/modern/DateTimePicker/DateTimePickerToolbar.js +92 -93
- package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
- package/modern/DesktopDatePicker/DesktopDatePicker.js +11 -17
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
- package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +9 -46
- package/modern/DesktopTimePicker/DesktopTimePicker.js +6 -22
- package/modern/DigitalClock/DigitalClock.js +14 -11
- package/modern/MobileDatePicker/MobileDatePicker.js +4 -14
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
- package/modern/MobileTimePicker/MobileTimePicker.js +4 -14
- package/modern/MonthCalendar/MonthCalendar.js +32 -11
- package/{MonthCalendar/PickersMonth.js → modern/MonthCalendar/MonthCalendarButton.js} +20 -61
- package/modern/MonthCalendar/index.js +1 -2
- package/modern/MonthCalendar/monthCalendarClasses.js +1 -1
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +12 -7
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +14 -10
- package/modern/PickersActionBar/PickersActionBar.js +26 -17
- package/modern/PickersCalendarHeader/PickersCalendarHeader.js +10 -7
- package/modern/PickersLayout/PickersLayout.js +23 -54
- package/modern/PickersLayout/usePickerLayout.js +26 -57
- package/modern/PickersSectionList/PickersSectionList.js +21 -16
- package/modern/PickersShortcuts/PickersShortcuts.js +21 -11
- package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
- package/modern/PickersTextField/PickersInput/PickersInput.js +20 -14
- package/modern/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
- package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +51 -44
- package/modern/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
- package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
- package/modern/PickersTextField/PickersTextField.js +75 -62
- package/modern/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
- package/modern/StaticDatePicker/StaticDatePicker.js +2 -2
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
- package/modern/StaticTimePicker/StaticTimePicker.js +2 -2
- package/modern/TimeClock/Clock.js +28 -27
- package/modern/TimeClock/ClockNumber.js +15 -11
- package/modern/TimeClock/ClockPointer.js +16 -10
- package/modern/TimeClock/TimeClock.js +31 -12
- package/modern/TimeField/TimeField.js +28 -32
- package/modern/TimeField/useTimeField.js +14 -11
- package/modern/TimePicker/TimePicker.js +2 -2
- package/modern/TimePicker/TimePickerToolbar.js +40 -64
- package/modern/YearCalendar/YearCalendar.js +47 -13
- package/{YearCalendar/PickersYear.js → modern/YearCalendar/YearCalendarButton.js} +20 -59
- package/modern/YearCalendar/index.js +1 -2
- package/modern/YearCalendar/yearCalendarClasses.js +1 -1
- package/modern/hooks/index.js +3 -1
- package/modern/hooks/useClearableField.js +4 -2
- package/modern/hooks/useIsValidValue.js +11 -0
- package/modern/hooks/useParsedFormat.js +11 -13
- package/modern/hooks/usePickerActionsContext.js +15 -0
- package/modern/hooks/usePickerContext.js +2 -2
- package/modern/hooks/useSplitFieldProps.js +8 -3
- package/modern/index.js +3 -2
- package/modern/internals/components/PickerFieldUI.js +317 -0
- package/{internals/components/PickersPopper.js → modern/internals/components/PickerPopper/PickerPopper.js} +47 -47
- package/modern/internals/components/PickerPopper/index.js +2 -0
- package/modern/internals/components/PickerPopper/pickerPopperClasses.js +6 -0
- package/modern/internals/components/PickerProvider.js +28 -8
- package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
- package/modern/internals/components/PickersModalDialog.js +9 -3
- package/modern/internals/components/PickersToolbar.js +16 -15
- package/modern/internals/components/PickersToolbarButton.js +4 -6
- package/modern/internals/components/PickersToolbarText.js +11 -13
- package/modern/internals/hooks/date-helpers-hooks.js +4 -3
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +36 -121
- package/modern/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
- package/modern/internals/hooks/useField/index.js +2 -1
- package/modern/internals/hooks/useField/useField.js +17 -4
- package/modern/internals/hooks/useField/useField.utils.js +2 -2
- package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +47 -0
- package/modern/internals/hooks/useField/useFieldState.js +3 -3
- package/modern/internals/hooks/useField/useFieldV6TextField.js +5 -2
- package/modern/internals/hooks/useField/useFieldV7TextField.js +8 -4
- package/modern/internals/hooks/useFieldOwnerState.js +16 -0
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +35 -69
- package/modern/internals/hooks/useNullablePickerContext.js +10 -0
- package/modern/internals/hooks/useOpenState.js +11 -9
- package/modern/internals/hooks/usePicker/usePicker.js +10 -29
- package/modern/internals/hooks/usePicker/usePickerProvider.js +102 -12
- package/modern/internals/hooks/usePicker/usePickerValue.js +100 -218
- package/modern/internals/hooks/usePicker/usePickerViews.js +31 -19
- package/modern/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +5 -2
- package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +8 -13
- package/modern/internals/hooks/useToolbarOwnerState.js +13 -0
- package/modern/internals/hooks/useUtils.js +1 -1
- package/modern/internals/hooks/useValueWithTimezone.js +13 -1
- package/modern/internals/index.js +13 -8
- package/modern/internals/models/index.js +2 -1
- package/modern/internals/models/manager.js +1 -0
- package/modern/internals/models/pickers.js +1 -0
- package/modern/internals/utils/date-utils.js +1 -1
- package/modern/internals/utils/utils.js +11 -1
- package/modern/internals/utils/valueManagers.js +4 -4
- package/modern/locales/index.js +1 -0
- package/modern/locales/nbNO.js +15 -19
- package/modern/locales/nlNL.js +7 -7
- package/modern/locales/roRO.js +15 -18
- package/modern/locales/utils/getPickersLocalization.js +0 -13
- package/modern/locales/zhTW.js +73 -0
- package/modern/managers/index.js +3 -0
- package/modern/managers/useDateManager.js +55 -0
- package/modern/managers/useDateTimeManager.js +60 -0
- package/modern/managers/useTimeManager.js +51 -0
- package/modern/models/index.js +1 -0
- package/modern/models/manager.js +1 -0
- package/modern/validation/useValidation.js +1 -1
- package/modern/validation/validateDate.js +8 -0
- package/modern/validation/validateDateTime.js +8 -0
- package/modern/validation/validateTime.js +8 -0
- package/node/AdapterDateFns/AdapterDateFns.js +97 -97
- package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +97 -96
- package/node/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +94 -101
- package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
- package/node/AdapterDateFnsV2/AdapterDateFnsV2.js +291 -0
- package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
- package/node/AdapterMoment/AdapterMoment.js +10 -0
- package/node/DateCalendar/DateCalendar.js +5 -4
- package/node/DateCalendar/DayCalendar.js +1 -0
- package/node/DateCalendar/PickersFadeTransitionGroup.js +4 -6
- package/node/DateCalendar/PickersSlideTransition.js +12 -5
- package/node/DateField/DateField.js +29 -33
- package/node/DateField/useDateField.js +13 -10
- package/node/DatePicker/DatePicker.js +1 -1
- package/node/DatePicker/DatePickerToolbar.js +17 -45
- package/node/DateTimeField/DateTimeField.js +29 -33
- package/node/DateTimeField/useDateTimeField.js +13 -10
- package/node/DateTimePicker/DateTimePicker.js +2 -2
- package/node/DateTimePicker/DateTimePickerTabs.js +15 -20
- package/node/DateTimePicker/DateTimePickerToolbar.js +93 -93
- package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
- package/node/DesktopDatePicker/DesktopDatePicker.js +11 -17
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
- package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -47
- package/node/DesktopTimePicker/DesktopTimePicker.js +6 -22
- package/node/DigitalClock/DigitalClock.js +14 -11
- package/node/MobileDatePicker/MobileDatePicker.js +4 -14
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
- package/node/MobileTimePicker/MobileTimePicker.js +4 -14
- package/node/MonthCalendar/MonthCalendar.js +32 -11
- package/node/MonthCalendar/{PickersMonth.js → MonthCalendarButton.js} +20 -61
- package/node/MonthCalendar/index.js +1 -8
- package/node/MonthCalendar/monthCalendarClasses.js +1 -1
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +12 -7
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -10
- package/node/PickersActionBar/PickersActionBar.js +28 -19
- package/node/PickersCalendarHeader/PickersCalendarHeader.js +10 -7
- package/node/PickersLayout/PickersLayout.js +23 -54
- package/node/PickersLayout/usePickerLayout.js +30 -61
- package/node/PickersSectionList/PickersSectionList.js +21 -16
- package/node/PickersShortcuts/PickersShortcuts.js +21 -11
- package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
- package/node/PickersTextField/PickersInput/PickersInput.js +20 -14
- package/node/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
- package/node/PickersTextField/PickersInputBase/PickersInputBase.js +51 -44
- package/node/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
- package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
- package/node/PickersTextField/PickersTextField.js +75 -62
- package/node/PickersTextField/usePickerTextFieldOwnerState.js +18 -0
- package/node/StaticDatePicker/StaticDatePicker.js +2 -2
- package/node/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
- package/node/StaticTimePicker/StaticTimePicker.js +2 -2
- package/node/TimeClock/Clock.js +28 -27
- package/node/TimeClock/ClockNumber.js +15 -11
- package/node/TimeClock/ClockPointer.js +15 -10
- package/node/TimeClock/TimeClock.js +31 -12
- package/node/TimeField/TimeField.js +28 -32
- package/node/TimeField/useTimeField.js +13 -10
- package/node/TimePicker/TimePicker.js +2 -2
- package/node/TimePicker/TimePickerToolbar.js +40 -64
- package/node/YearCalendar/YearCalendar.js +46 -12
- package/node/YearCalendar/{PickersYear.js → YearCalendarButton.js} +20 -59
- package/node/YearCalendar/index.js +1 -8
- package/node/YearCalendar/yearCalendarClasses.js +1 -1
- package/node/hooks/index.js +15 -1
- package/node/hooks/useClearableField.js +4 -2
- package/node/hooks/useIsValidValue.js +18 -0
- package/node/hooks/useParsedFormat.js +11 -13
- package/node/hooks/usePickerActionsContext.js +22 -0
- package/node/hooks/usePickerContext.js +5 -4
- package/node/hooks/useSplitFieldProps.js +7 -2
- package/node/index.js +13 -1
- package/node/internals/components/PickerFieldUI.js +329 -0
- package/node/internals/components/{PickersPopper.js → PickerPopper/PickerPopper.js} +48 -48
- package/node/internals/components/PickerPopper/index.js +25 -0
- package/node/internals/components/PickerPopper/pickerPopperClasses.js +14 -0
- package/node/internals/components/PickerProvider.js +30 -10
- package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
- package/node/internals/components/PickersModalDialog.js +9 -3
- package/node/internals/components/PickersToolbar.js +16 -15
- package/node/internals/components/PickersToolbarButton.js +4 -6
- package/node/internals/components/PickersToolbarText.js +10 -12
- package/node/internals/hooks/date-helpers-hooks.js +4 -3
- package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +38 -123
- package/node/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
- package/node/internals/hooks/useField/index.js +8 -1
- package/node/internals/hooks/useField/useField.js +16 -3
- package/node/internals/hooks/useField/useField.utils.js +2 -2
- package/node/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +56 -0
- package/node/internals/hooks/useField/useFieldState.js +3 -3
- package/node/internals/hooks/useField/useFieldV6TextField.js +5 -2
- package/node/internals/hooks/useField/useFieldV7TextField.js +8 -4
- package/node/internals/hooks/useFieldOwnerState.js +24 -0
- package/node/internals/hooks/useMobilePicker/useMobilePicker.js +36 -70
- package/node/internals/hooks/useNullablePickerContext.js +16 -0
- package/node/internals/hooks/useOpenState.js +12 -9
- package/node/internals/hooks/usePicker/usePicker.js +10 -29
- package/node/internals/hooks/usePicker/usePickerProvider.js +105 -12
- package/node/internals/hooks/usePicker/usePickerValue.js +100 -217
- package/node/internals/hooks/usePicker/usePickerViews.js +31 -20
- package/node/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +7 -4
- package/node/internals/hooks/useStaticPicker/useStaticPicker.js +8 -13
- package/node/internals/hooks/useToolbarOwnerState.js +21 -0
- package/node/internals/hooks/useUtils.js +1 -1
- package/node/internals/hooks/useValueWithTimezone.js +13 -1
- package/node/internals/index.js +87 -34
- package/node/internals/models/index.js +11 -0
- package/node/internals/models/manager.js +5 -0
- package/node/internals/models/pickers.js +5 -0
- package/node/internals/utils/date-utils.js +1 -1
- package/node/internals/utils/utils.js +14 -2
- package/node/internals/utils/valueManagers.js +4 -4
- package/node/locales/index.js +11 -0
- package/node/locales/nbNO.js +15 -19
- package/node/locales/nlNL.js +7 -7
- package/node/locales/roRO.js +15 -18
- package/node/locales/utils/getPickersLocalization.js +2 -16
- package/node/locales/zhTW.js +79 -0
- package/node/managers/index.js +26 -0
- package/node/managers/useDateManager.js +63 -0
- package/node/managers/useDateTimeManager.js +68 -0
- package/node/managers/useTimeManager.js +59 -0
- package/node/models/index.js +11 -0
- package/node/models/manager.js +5 -0
- package/node/validation/useValidation.js +1 -1
- package/node/validation/validateDate.js +8 -0
- package/node/validation/validateDateTime.js +8 -0
- package/node/validation/validateTime.js +8 -0
- package/package.json +7 -7
- package/themeAugmentation/components.d.ts +3 -11
- package/themeAugmentation/overrides.d.ts +5 -7
- package/themeAugmentation/props.d.ts +7 -9
- package/validation/extractValidationProps.d.ts +1 -1
- package/validation/useValidation.d.ts +7 -6
- package/validation/useValidation.js +1 -1
- package/validation/validateDate.d.ts +12 -3
- package/validation/validateDate.js +8 -0
- package/validation/validateDateTime.d.ts +12 -4
- package/validation/validateDateTime.js +8 -0
- package/validation/validateTime.d.ts +12 -3
- package/validation/validateTime.js +8 -0
- package/AdapterDateFnsJalaliV3/index.d.ts +0 -1
- package/AdapterDateFnsJalaliV3/index.js +0 -1
- package/AdapterDateFnsV3/index.d.ts +0 -1
- package/AdapterDateFnsV3/index.js +0 -1
- package/MonthCalendar/PickersMonth.d.ts +0 -28
- package/MonthCalendar/pickersMonthClasses.d.ts +0 -13
- package/MonthCalendar/pickersMonthClasses.js +0 -5
- package/YearCalendar/PickersYear.d.ts +0 -27
- package/YearCalendar/pickersYearClasses.d.ts +0 -13
- package/YearCalendar/pickersYearClasses.js +0 -5
- package/internals/components/pickersPopperClasses.d.ts +0 -9
- package/internals/components/pickersPopperClasses.js +0 -5
- package/internals/hooks/defaultizedFieldProps.d.ts +0 -18
- package/internals/hooks/defaultizedFieldProps.js +0 -40
- package/internals/hooks/useDefaultReduceAnimations.d.ts +0 -2
- package/internals/hooks/useIsLandscape.d.ts +0 -4
- package/internals/hooks/useIsLandscape.js +0 -35
- package/internals/hooks/usePicker/usePickerLayoutProps.d.ts +0 -33
- package/internals/hooks/usePicker/usePickerLayoutProps.js +0 -34
- package/internals/hooks/usePicker/usePickerOwnerState.d.ts +0 -10
- package/internals/hooks/usePicker/usePickerOwnerState.js +0 -16
- package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +0 -3
- package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
- package/modern/AdapterDateFnsJalaliV3/index.js +0 -1
- package/modern/AdapterDateFnsV3/index.js +0 -1
- package/modern/MonthCalendar/pickersMonthClasses.js +0 -5
- package/modern/YearCalendar/pickersYearClasses.js +0 -5
- package/modern/internals/components/pickersPopperClasses.js +0 -5
- package/modern/internals/hooks/defaultizedFieldProps.js +0 -40
- package/modern/internals/hooks/useIsLandscape.js +0 -35
- package/modern/internals/hooks/usePicker/usePickerLayoutProps.js +0 -34
- package/modern/internals/hooks/usePicker/usePickerOwnerState.js +0 -16
- package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
- package/node/AdapterDateFnsV3/AdapterDateFnsV3.js +0 -299
- package/node/MonthCalendar/pickersMonthClasses.js +0 -12
- package/node/YearCalendar/pickersYearClasses.js +0 -12
- package/node/internals/components/pickersPopperClasses.js +0 -12
- package/node/internals/hooks/defaultizedFieldProps.js +0 -50
- package/node/internals/hooks/useIsLandscape.js +0 -43
- package/node/internals/hooks/usePicker/usePickerLayoutProps.js +0 -41
- package/node/internals/hooks/usePicker/usePickerOwnerState.js +0 -23
- package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -52
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["ampm", "ampmInClock", "
|
|
5
|
+
const _excluded = ["ampm", "ampmInClock", "toolbarFormat", "toolbarPlaceholder", "toolbarTitle", "className", "classes"];
|
|
6
6
|
import * as React from 'react';
|
|
7
|
+
import clsx from 'clsx';
|
|
7
8
|
import PropTypes from 'prop-types';
|
|
8
|
-
import { useRtl } from '@mui/system/RtlProvider';
|
|
9
9
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
10
10
|
import composeClasses from '@mui/utils/composeClasses';
|
|
11
|
-
import
|
|
11
|
+
import { shouldForwardProp } from '@mui/system/createStyled';
|
|
12
12
|
import { PickersToolbarText } from "../internals/components/PickersToolbarText.js";
|
|
13
13
|
import { PickersToolbar } from "../internals/components/PickersToolbar.js";
|
|
14
14
|
import { PickersToolbarButton } from "../internals/components/PickersToolbarButton.js";
|
|
@@ -20,20 +20,21 @@ import { MULTI_SECTION_CLOCK_SECTION_WIDTH } from "../internals/constants/dimens
|
|
|
20
20
|
import { formatMeridiem } from "../internals/utils/date-utils.js";
|
|
21
21
|
import { pickersToolbarTextClasses } from "../internals/components/pickersToolbarTextClasses.js";
|
|
22
22
|
import { pickersToolbarClasses } from "../internals/components/pickersToolbarClasses.js";
|
|
23
|
+
import { usePickerContext } from "../hooks/usePickerContext.js";
|
|
24
|
+
import { useToolbarOwnerState } from "../internals/hooks/useToolbarOwnerState.js";
|
|
23
25
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
|
-
const useUtilityClasses = ownerState => {
|
|
26
|
+
const useUtilityClasses = (classes, ownerState) => {
|
|
25
27
|
const {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
isRtl
|
|
28
|
+
pickerOrientation,
|
|
29
|
+
toolbarDirection
|
|
29
30
|
} = ownerState;
|
|
30
31
|
const slots = {
|
|
31
32
|
root: ['root'],
|
|
32
33
|
dateContainer: ['dateContainer'],
|
|
33
|
-
timeContainer: ['timeContainer',
|
|
34
|
-
timeDigitsContainer: ['timeDigitsContainer',
|
|
34
|
+
timeContainer: ['timeContainer', toolbarDirection === 'rtl' && 'timeLabelReverse'],
|
|
35
|
+
timeDigitsContainer: ['timeDigitsContainer', toolbarDirection === 'rtl' && 'timeLabelReverse'],
|
|
35
36
|
separator: ['separator'],
|
|
36
|
-
ampmSelection: ['ampmSelection',
|
|
37
|
+
ampmSelection: ['ampmSelection', pickerOrientation === 'landscape' && 'ampmLandscape'],
|
|
37
38
|
ampmLabel: ['ampmLabel']
|
|
38
39
|
};
|
|
39
40
|
return composeClasses(slots, getDateTimePickerToolbarUtilityClass, classes);
|
|
@@ -41,7 +42,8 @@ const useUtilityClasses = ownerState => {
|
|
|
41
42
|
const DateTimePickerToolbarRoot = styled(PickersToolbar, {
|
|
42
43
|
name: 'MuiDateTimePickerToolbar',
|
|
43
44
|
slot: 'Root',
|
|
44
|
-
overridesResolver: (props, styles) => styles.root
|
|
45
|
+
overridesResolver: (props, styles) => styles.root,
|
|
46
|
+
shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'toolbarVariant'
|
|
45
47
|
})(({
|
|
46
48
|
theme
|
|
47
49
|
}) => ({
|
|
@@ -63,7 +65,7 @@ const DateTimePickerToolbarRoot = styled(PickersToolbar, {
|
|
|
63
65
|
}, {
|
|
64
66
|
props: {
|
|
65
67
|
toolbarVariant: 'desktop',
|
|
66
|
-
|
|
68
|
+
pickerOrientation: 'landscape'
|
|
67
69
|
},
|
|
68
70
|
style: {
|
|
69
71
|
borderRight: `1px solid ${(theme.vars || theme).palette.divider}`
|
|
@@ -71,7 +73,7 @@ const DateTimePickerToolbarRoot = styled(PickersToolbar, {
|
|
|
71
73
|
}, {
|
|
72
74
|
props: {
|
|
73
75
|
toolbarVariant: 'desktop',
|
|
74
|
-
|
|
76
|
+
pickerOrientation: 'portrait'
|
|
75
77
|
},
|
|
76
78
|
style: {
|
|
77
79
|
paddingLeft: 24,
|
|
@@ -91,13 +93,14 @@ const DateTimePickerToolbarDateContainer = styled('div', {
|
|
|
91
93
|
const DateTimePickerToolbarTimeContainer = styled('div', {
|
|
92
94
|
name: 'MuiDateTimePickerToolbar',
|
|
93
95
|
slot: 'TimeContainer',
|
|
94
|
-
overridesResolver: (props, styles) => styles.timeContainer
|
|
96
|
+
overridesResolver: (props, styles) => styles.timeContainer,
|
|
97
|
+
shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'toolbarVariant'
|
|
95
98
|
})({
|
|
96
99
|
display: 'flex',
|
|
97
100
|
flexDirection: 'row',
|
|
98
101
|
variants: [{
|
|
99
102
|
props: {
|
|
100
|
-
|
|
103
|
+
toolbarDirection: 'rtl'
|
|
101
104
|
},
|
|
102
105
|
style: {
|
|
103
106
|
flexDirection: 'row-reverse'
|
|
@@ -105,7 +108,7 @@ const DateTimePickerToolbarTimeContainer = styled('div', {
|
|
|
105
108
|
}, {
|
|
106
109
|
props: {
|
|
107
110
|
toolbarVariant: 'desktop',
|
|
108
|
-
|
|
111
|
+
pickerOrientation: 'portrait'
|
|
109
112
|
},
|
|
110
113
|
style: {
|
|
111
114
|
gap: 9,
|
|
@@ -114,18 +117,18 @@ const DateTimePickerToolbarTimeContainer = styled('div', {
|
|
|
114
117
|
}
|
|
115
118
|
}, {
|
|
116
119
|
props: ({
|
|
117
|
-
|
|
120
|
+
pickerOrientation,
|
|
118
121
|
toolbarVariant
|
|
119
|
-
}) =>
|
|
122
|
+
}) => pickerOrientation === 'landscape' && toolbarVariant !== 'desktop',
|
|
120
123
|
style: {
|
|
121
124
|
flexDirection: 'column'
|
|
122
125
|
}
|
|
123
126
|
}, {
|
|
124
127
|
props: ({
|
|
125
|
-
|
|
128
|
+
pickerOrientation,
|
|
126
129
|
toolbarVariant,
|
|
127
|
-
|
|
128
|
-
}) =>
|
|
130
|
+
toolbarDirection
|
|
131
|
+
}) => pickerOrientation === 'landscape' && toolbarVariant !== 'desktop' && toolbarDirection === 'rtl',
|
|
129
132
|
style: {
|
|
130
133
|
flexDirection: 'column-reverse'
|
|
131
134
|
}
|
|
@@ -134,12 +137,13 @@ const DateTimePickerToolbarTimeContainer = styled('div', {
|
|
|
134
137
|
const DateTimePickerToolbarTimeDigitsContainer = styled('div', {
|
|
135
138
|
name: 'MuiDateTimePickerToolbar',
|
|
136
139
|
slot: 'TimeDigitsContainer',
|
|
137
|
-
overridesResolver: (props, styles) => styles.timeDigitsContainer
|
|
140
|
+
overridesResolver: (props, styles) => styles.timeDigitsContainer,
|
|
141
|
+
shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'toolbarVariant'
|
|
138
142
|
})({
|
|
139
143
|
display: 'flex',
|
|
140
144
|
variants: [{
|
|
141
145
|
props: {
|
|
142
|
-
|
|
146
|
+
toolbarDirection: 'rtl'
|
|
143
147
|
},
|
|
144
148
|
style: {
|
|
145
149
|
flexDirection: 'row-reverse'
|
|
@@ -156,7 +160,8 @@ const DateTimePickerToolbarTimeDigitsContainer = styled('div', {
|
|
|
156
160
|
const DateTimePickerToolbarSeparator = styled(PickersToolbarText, {
|
|
157
161
|
name: 'MuiDateTimePickerToolbar',
|
|
158
162
|
slot: 'Separator',
|
|
159
|
-
overridesResolver: (props, styles) => styles.separator
|
|
163
|
+
overridesResolver: (props, styles) => styles.separator,
|
|
164
|
+
shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'toolbarVariant'
|
|
160
165
|
})({
|
|
161
166
|
margin: '0 4px 0 2px',
|
|
162
167
|
cursor: 'default',
|
|
@@ -189,7 +194,7 @@ const DateTimePickerToolbarAmPmSelection = styled('div', {
|
|
|
189
194
|
},
|
|
190
195
|
variants: [{
|
|
191
196
|
props: {
|
|
192
|
-
|
|
197
|
+
pickerOrientation: 'landscape'
|
|
193
198
|
},
|
|
194
199
|
style: {
|
|
195
200
|
margin: '4px 0 auto',
|
|
@@ -200,6 +205,13 @@ const DateTimePickerToolbarAmPmSelection = styled('div', {
|
|
|
200
205
|
}]
|
|
201
206
|
});
|
|
202
207
|
|
|
208
|
+
/**
|
|
209
|
+
* If `forceDesktopVariant` is set to `true`, the toolbar will always be rendered in the desktop mode.
|
|
210
|
+
* If `onViewChange` is defined, the toolbar will call it instead of calling the default handler from `usePickerContext`.
|
|
211
|
+
* This is used by the Date Time Range Picker Toolbar.
|
|
212
|
+
*/
|
|
213
|
+
export const DateTimePickerToolbarOverrideContext = /*#__PURE__*/React.createContext(null);
|
|
214
|
+
|
|
203
215
|
/**
|
|
204
216
|
* Demos:
|
|
205
217
|
*
|
|
@@ -218,38 +230,45 @@ function DateTimePickerToolbar(inProps) {
|
|
|
218
230
|
const {
|
|
219
231
|
ampm,
|
|
220
232
|
ampmInClock,
|
|
221
|
-
value,
|
|
222
|
-
onChange,
|
|
223
|
-
view,
|
|
224
|
-
isLandscape,
|
|
225
|
-
onViewChange,
|
|
226
233
|
toolbarFormat,
|
|
227
234
|
toolbarPlaceholder = '––',
|
|
228
|
-
views,
|
|
229
|
-
disabled,
|
|
230
|
-
readOnly,
|
|
231
|
-
toolbarVariant = 'mobile',
|
|
232
235
|
toolbarTitle: inToolbarTitle,
|
|
233
|
-
className
|
|
236
|
+
className,
|
|
237
|
+
classes: classesProp
|
|
234
238
|
} = props,
|
|
235
239
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
236
|
-
const
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
+
const {
|
|
241
|
+
value: valueContext,
|
|
242
|
+
setValue: setValueContext,
|
|
243
|
+
disabled,
|
|
244
|
+
readOnly,
|
|
245
|
+
variant,
|
|
246
|
+
orientation,
|
|
247
|
+
view: viewContext,
|
|
248
|
+
setView: setViewContext,
|
|
249
|
+
views
|
|
250
|
+
} = usePickerContext();
|
|
251
|
+
const translations = usePickerTranslations();
|
|
252
|
+
const ownerState = useToolbarOwnerState();
|
|
253
|
+
const classes = useUtilityClasses(classesProp, ownerState);
|
|
240
254
|
const utils = useUtils();
|
|
255
|
+
const overrides = React.useContext(DateTimePickerToolbarOverrideContext);
|
|
256
|
+
const value = overrides ? overrides.value : valueContext;
|
|
257
|
+
const setValue = overrides ? overrides.setValue : setValueContext;
|
|
258
|
+
const view = overrides ? overrides.view : viewContext;
|
|
259
|
+
const setView = overrides ? overrides.setView : setViewContext;
|
|
241
260
|
const {
|
|
242
261
|
meridiemMode,
|
|
243
262
|
handleMeridiemChange
|
|
244
|
-
} = useMeridiemMode(value, ampm,
|
|
245
|
-
|
|
263
|
+
} = useMeridiemMode(value, ampm, newValue => setValue(newValue, {
|
|
264
|
+
changeImportance: 'set'
|
|
265
|
+
}));
|
|
266
|
+
const toolbarVariant = overrides?.forceDesktopVariant ? 'desktop' : variant;
|
|
246
267
|
const isDesktop = toolbarVariant === 'desktop';
|
|
247
|
-
const
|
|
248
|
-
const classes = useUtilityClasses(ownerState);
|
|
268
|
+
const showAmPmControl = Boolean(ampm && !ampmInClock);
|
|
249
269
|
const toolbarTitle = inToolbarTitle ?? translations.dateTimePickerToolbarTitle;
|
|
250
|
-
const formatHours = time => ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');
|
|
251
270
|
const dateText = React.useMemo(() => {
|
|
252
|
-
if (!value) {
|
|
271
|
+
if (!utils.isValid(value)) {
|
|
253
272
|
return toolbarPlaceholder;
|
|
254
273
|
}
|
|
255
274
|
if (toolbarFormat) {
|
|
@@ -257,10 +276,16 @@ function DateTimePickerToolbar(inProps) {
|
|
|
257
276
|
}
|
|
258
277
|
return utils.format(value, 'shortDate');
|
|
259
278
|
}, [value, toolbarFormat, toolbarPlaceholder, utils]);
|
|
279
|
+
const formatSection = (format, fallback) => {
|
|
280
|
+
if (!utils.isValid(value)) {
|
|
281
|
+
return fallback;
|
|
282
|
+
}
|
|
283
|
+
return utils.format(value, format);
|
|
284
|
+
};
|
|
260
285
|
return /*#__PURE__*/_jsxs(DateTimePickerToolbarRoot, _extends({
|
|
261
|
-
isLandscape: isLandscape,
|
|
262
286
|
className: clsx(classes.root, className),
|
|
263
|
-
toolbarTitle: toolbarTitle
|
|
287
|
+
toolbarTitle: toolbarTitle,
|
|
288
|
+
toolbarVariant: toolbarVariant
|
|
264
289
|
}, other, {
|
|
265
290
|
ownerState: ownerState,
|
|
266
291
|
children: [/*#__PURE__*/_jsxs(DateTimePickerToolbarDateContainer, {
|
|
@@ -269,40 +294,43 @@ function DateTimePickerToolbar(inProps) {
|
|
|
269
294
|
children: [views.includes('year') && /*#__PURE__*/_jsx(PickersToolbarButton, {
|
|
270
295
|
tabIndex: -1,
|
|
271
296
|
variant: "subtitle1",
|
|
272
|
-
onClick: () =>
|
|
297
|
+
onClick: () => setView('year'),
|
|
273
298
|
selected: view === 'year',
|
|
274
|
-
value:
|
|
299
|
+
value: formatSection('year', '–')
|
|
275
300
|
}), views.includes('day') && /*#__PURE__*/_jsx(PickersToolbarButton, {
|
|
276
301
|
tabIndex: -1,
|
|
277
302
|
variant: isDesktop ? 'h5' : 'h4',
|
|
278
|
-
onClick: () =>
|
|
303
|
+
onClick: () => setView('day'),
|
|
279
304
|
selected: view === 'day',
|
|
280
305
|
value: dateText
|
|
281
306
|
})]
|
|
282
307
|
}), /*#__PURE__*/_jsxs(DateTimePickerToolbarTimeContainer, {
|
|
283
308
|
className: classes.timeContainer,
|
|
284
309
|
ownerState: ownerState,
|
|
310
|
+
toolbarVariant: toolbarVariant,
|
|
285
311
|
children: [/*#__PURE__*/_jsxs(DateTimePickerToolbarTimeDigitsContainer, {
|
|
286
312
|
className: classes.timeDigitsContainer,
|
|
287
313
|
ownerState: ownerState,
|
|
314
|
+
toolbarVariant: toolbarVariant,
|
|
288
315
|
children: [views.includes('hours') && /*#__PURE__*/_jsxs(React.Fragment, {
|
|
289
316
|
children: [/*#__PURE__*/_jsx(PickersToolbarButton, {
|
|
290
317
|
variant: isDesktop ? 'h5' : 'h3',
|
|
291
|
-
width: isDesktop &&
|
|
292
|
-
onClick: () =>
|
|
318
|
+
width: isDesktop && orientation === 'portrait' ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
|
|
319
|
+
onClick: () => setView('hours'),
|
|
293
320
|
selected: view === 'hours',
|
|
294
|
-
value:
|
|
321
|
+
value: formatSection(ampm ? 'hours12h' : 'hours24h', '--')
|
|
295
322
|
}), /*#__PURE__*/_jsx(DateTimePickerToolbarSeparator, {
|
|
296
323
|
variant: isDesktop ? 'h5' : 'h3',
|
|
297
324
|
value: ":",
|
|
298
325
|
className: classes.separator,
|
|
299
|
-
ownerState: ownerState
|
|
326
|
+
ownerState: ownerState,
|
|
327
|
+
toolbarVariant: toolbarVariant
|
|
300
328
|
}), /*#__PURE__*/_jsx(PickersToolbarButton, {
|
|
301
329
|
variant: isDesktop ? 'h5' : 'h3',
|
|
302
|
-
width: isDesktop &&
|
|
303
|
-
onClick: () =>
|
|
330
|
+
width: isDesktop && orientation === 'portrait' ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
|
|
331
|
+
onClick: () => setView('minutes'),
|
|
304
332
|
selected: view === 'minutes' || !views.includes('minutes') && view === 'hours',
|
|
305
|
-
value:
|
|
333
|
+
value: formatSection('minutes', '--'),
|
|
306
334
|
disabled: !views.includes('minutes')
|
|
307
335
|
})]
|
|
308
336
|
}), views.includes('seconds') && /*#__PURE__*/_jsxs(React.Fragment, {
|
|
@@ -310,13 +338,14 @@ function DateTimePickerToolbar(inProps) {
|
|
|
310
338
|
variant: isDesktop ? 'h5' : 'h3',
|
|
311
339
|
value: ":",
|
|
312
340
|
className: classes.separator,
|
|
313
|
-
ownerState: ownerState
|
|
341
|
+
ownerState: ownerState,
|
|
342
|
+
toolbarVariant: toolbarVariant
|
|
314
343
|
}), /*#__PURE__*/_jsx(PickersToolbarButton, {
|
|
315
344
|
variant: isDesktop ? 'h5' : 'h3',
|
|
316
|
-
width: isDesktop &&
|
|
317
|
-
onClick: () =>
|
|
345
|
+
width: isDesktop && orientation === 'portrait' ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
|
|
346
|
+
onClick: () => setView('seconds'),
|
|
318
347
|
selected: view === 'seconds',
|
|
319
|
-
value:
|
|
348
|
+
value: formatSection('seconds', '--')
|
|
320
349
|
})]
|
|
321
350
|
})]
|
|
322
351
|
}), showAmPmControl && !isDesktop && /*#__PURE__*/_jsxs(DateTimePickerToolbarAmPmSelection, {
|
|
@@ -339,7 +368,7 @@ function DateTimePickerToolbar(inProps) {
|
|
|
339
368
|
})]
|
|
340
369
|
}), ampm && isDesktop && /*#__PURE__*/_jsx(PickersToolbarButton, {
|
|
341
370
|
variant: "h5",
|
|
342
|
-
onClick: () =>
|
|
371
|
+
onClick: () => setView('meridiem'),
|
|
343
372
|
selected: view === 'meridiem',
|
|
344
373
|
value: value && meridiemMode ? formatMeridiem(utils, meridiemMode) : '--',
|
|
345
374
|
width: MULTI_SECTION_CLOCK_SECTION_WIDTH
|
|
@@ -359,31 +388,11 @@ process.env.NODE_ENV !== "production" ? DateTimePickerToolbar.propTypes = {
|
|
|
359
388
|
*/
|
|
360
389
|
classes: PropTypes.object,
|
|
361
390
|
className: PropTypes.string,
|
|
362
|
-
/**
|
|
363
|
-
* If `true`, the component is disabled.
|
|
364
|
-
* When disabled, the value cannot be changed and no interaction is possible.
|
|
365
|
-
* @default false
|
|
366
|
-
*/
|
|
367
|
-
disabled: PropTypes.bool,
|
|
368
391
|
/**
|
|
369
392
|
* If `true`, show the toolbar even in desktop mode.
|
|
370
393
|
* @default `true` for Desktop, `false` for Mobile.
|
|
371
394
|
*/
|
|
372
395
|
hidden: PropTypes.bool,
|
|
373
|
-
isLandscape: PropTypes.bool.isRequired,
|
|
374
|
-
onChange: PropTypes.func.isRequired,
|
|
375
|
-
/**
|
|
376
|
-
* Callback called when a toolbar is clicked
|
|
377
|
-
* @template TView
|
|
378
|
-
* @param {TView} view The view to open
|
|
379
|
-
*/
|
|
380
|
-
onViewChange: PropTypes.func.isRequired,
|
|
381
|
-
/**
|
|
382
|
-
* If `true`, the component is read-only.
|
|
383
|
-
* When read-only, the value cannot be changed but the user can interact with the interface.
|
|
384
|
-
* @default false
|
|
385
|
-
*/
|
|
386
|
-
readOnly: PropTypes.bool,
|
|
387
396
|
/**
|
|
388
397
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
389
398
|
*/
|
|
@@ -401,16 +410,6 @@ process.env.NODE_ENV !== "production" ? DateTimePickerToolbar.propTypes = {
|
|
|
401
410
|
/**
|
|
402
411
|
* If provided, it will be used instead of `dateTimePickerToolbarTitle` from localization.
|
|
403
412
|
*/
|
|
404
|
-
toolbarTitle: PropTypes.node
|
|
405
|
-
toolbarVariant: PropTypes.oneOf(['desktop', 'mobile']),
|
|
406
|
-
value: PropTypes.object,
|
|
407
|
-
/**
|
|
408
|
-
* Currently visible picker view.
|
|
409
|
-
*/
|
|
410
|
-
view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
|
|
411
|
-
/**
|
|
412
|
-
* Available views.
|
|
413
|
-
*/
|
|
414
|
-
views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired
|
|
413
|
+
toolbarTitle: PropTypes.node
|
|
415
414
|
} : void 0;
|
|
416
415
|
export { DateTimePickerToolbar };
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { DefaultizedProps } from '@mui/x-internals/types';
|
|
3
|
-
import { DateTimeValidationError
|
|
3
|
+
import { DateTimeValidationError } from '../models';
|
|
4
4
|
import { DateCalendarSlots, DateCalendarSlotProps, ExportedDateCalendarProps } from '../DateCalendar/DateCalendar.types';
|
|
5
5
|
import { TimeClockSlots, TimeClockSlotProps } from '../TimeClock/TimeClock.types';
|
|
6
6
|
import { BasePickerInputProps } from '../internals/models/props/basePickerProps';
|
|
7
|
-
import { DateTimePickerTabsProps
|
|
8
|
-
import { BaseDateValidationProps, BaseTimeValidationProps, DateTimeValidationProps } from '../internals/models/validation';
|
|
7
|
+
import { DateTimePickerTabsProps } from './DateTimePickerTabs';
|
|
9
8
|
import { LocalizedComponent } from '../locales/utils/pickersLocaleTextApi';
|
|
10
9
|
import { DateTimePickerToolbarProps, ExportedDateTimePickerToolbarProps } from './DateTimePickerToolbar';
|
|
11
10
|
import { PickerViewRendererLookup } from '../internals/hooks/usePicker/usePickerViews';
|
|
12
11
|
import { DateViewRendererProps } from '../dateViewRenderers';
|
|
13
12
|
import { TimeViewRendererProps } from '../timeViewRenderers';
|
|
14
13
|
import { BaseClockProps, ExportedBaseClockProps } from '../internals/models/props/time';
|
|
15
|
-
import { DateOrTimeViewWithMeridiem, TimeViewWithMeridiem } from '../internals/models';
|
|
14
|
+
import { DateOrTimeViewWithMeridiem, PickerValue, TimeViewWithMeridiem } from '../internals/models';
|
|
15
|
+
import { ExportedValidateDateTimeProps, ValidateDateTimePropsToDefault } from '../validation/validateDateTime';
|
|
16
16
|
export interface BaseDateTimePickerSlots extends DateCalendarSlots, TimeClockSlots {
|
|
17
17
|
/**
|
|
18
18
|
* Tabs enabling toggling between date and time pickers.
|
|
@@ -29,14 +29,14 @@ export interface BaseDateTimePickerSlotProps extends DateCalendarSlotProps, Time
|
|
|
29
29
|
/**
|
|
30
30
|
* Props passed down to the tabs component.
|
|
31
31
|
*/
|
|
32
|
-
tabs?:
|
|
32
|
+
tabs?: DateTimePickerTabsProps;
|
|
33
33
|
/**
|
|
34
34
|
* Props passed down to the toolbar component.
|
|
35
35
|
*/
|
|
36
36
|
toolbar?: ExportedDateTimePickerToolbarProps;
|
|
37
37
|
}
|
|
38
|
-
export type DateTimePickerViewRenderers<TView extends DateOrTimeViewWithMeridiem
|
|
39
|
-
export interface BaseDateTimePickerProps<TView extends DateOrTimeViewWithMeridiem> extends BasePickerInputProps<
|
|
38
|
+
export type DateTimePickerViewRenderers<TView extends DateOrTimeViewWithMeridiem> = PickerViewRendererLookup<PickerValue, TView, Omit<DateViewRendererProps<TView>, 'slots' | 'slotProps'> & Omit<TimeViewRendererProps<TimeViewWithMeridiem, BaseClockProps<TimeViewWithMeridiem>>, 'slots' | 'slotProps'>>;
|
|
39
|
+
export interface BaseDateTimePickerProps<TView extends DateOrTimeViewWithMeridiem> extends BasePickerInputProps<PickerValue, TView, DateTimeValidationError>, Omit<ExportedDateCalendarProps, 'onViewChange'>, ExportedBaseClockProps, ExportedValidateDateTimeProps {
|
|
40
40
|
/**
|
|
41
41
|
* Display ampm controls under the clock (instead of in the toolbar).
|
|
42
42
|
* @default true on desktop, false on mobile
|
|
@@ -59,6 +59,6 @@ export interface BaseDateTimePickerProps<TView extends DateOrTimeViewWithMeridie
|
|
|
59
59
|
*/
|
|
60
60
|
viewRenderers?: Partial<DateTimePickerViewRenderers<TView>>;
|
|
61
61
|
}
|
|
62
|
-
type UseDateTimePickerDefaultizedProps<TView extends DateOrTimeViewWithMeridiem, Props extends BaseDateTimePickerProps<TView>> = LocalizedComponent<DefaultizedProps<Props, 'views' | 'openTo' | 'orientation' | 'ampm' |
|
|
62
|
+
type UseDateTimePickerDefaultizedProps<TView extends DateOrTimeViewWithMeridiem, Props extends BaseDateTimePickerProps<TView>> = LocalizedComponent<DefaultizedProps<Props, 'views' | 'openTo' | 'orientation' | 'ampm' | ValidateDateTimePropsToDefault>>;
|
|
63
63
|
export declare function useDateTimePickerDefaultizedProps<TView extends DateOrTimeViewWithMeridiem, Props extends BaseDateTimePickerProps<TView>>(props: Props, name: string): UseDateTimePickerDefaultizedProps<TView, Props>;
|
|
64
64
|
export {};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["className"];
|
|
5
|
+
const _excluded = ["className", "classes"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import clsx from 'clsx';
|
|
@@ -12,10 +12,7 @@ import composeClasses from '@mui/utils/composeClasses';
|
|
|
12
12
|
import { DAY_SIZE, DAY_MARGIN } from "../internals/constants/dimensions.js";
|
|
13
13
|
import { getDayCalendarSkeletonUtilityClass } from "./dayCalendarSkeletonClasses.js";
|
|
14
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
|
-
const useUtilityClasses =
|
|
16
|
-
const {
|
|
17
|
-
classes
|
|
18
|
-
} = ownerState;
|
|
15
|
+
const useUtilityClasses = classes => {
|
|
19
16
|
const slots = {
|
|
20
17
|
root: ['root'],
|
|
21
18
|
week: ['week'],
|
|
@@ -45,14 +42,9 @@ const DayCalendarSkeletonDay = styled(Skeleton, {
|
|
|
45
42
|
overridesResolver: (props, styles) => styles.daySkeleton
|
|
46
43
|
})({
|
|
47
44
|
margin: `0 ${DAY_MARGIN}px`,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
},
|
|
52
|
-
style: {
|
|
53
|
-
visibility: 'hidden'
|
|
54
|
-
}
|
|
55
|
-
}]
|
|
45
|
+
'&[data-day-in-month="0"]': {
|
|
46
|
+
visibility: 'hidden'
|
|
47
|
+
}
|
|
56
48
|
});
|
|
57
49
|
const monthMap = [[0, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 0, 0, 0]];
|
|
58
50
|
|
|
@@ -71,23 +63,22 @@ function DayCalendarSkeleton(inProps) {
|
|
|
71
63
|
name: 'MuiDayCalendarSkeleton'
|
|
72
64
|
});
|
|
73
65
|
const {
|
|
74
|
-
className
|
|
66
|
+
className,
|
|
67
|
+
classes: classesProp
|
|
75
68
|
} = props,
|
|
76
69
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
77
|
-
const classes = useUtilityClasses(
|
|
70
|
+
const classes = useUtilityClasses(classesProp);
|
|
78
71
|
return /*#__PURE__*/_jsx(DayCalendarSkeletonRoot, _extends({
|
|
79
72
|
className: clsx(classes.root, className)
|
|
80
73
|
}, other, {
|
|
81
74
|
children: monthMap.map((week, index) => /*#__PURE__*/_jsx(DayCalendarSkeletonWeek, {
|
|
82
75
|
className: classes.week,
|
|
83
|
-
children: week.map((
|
|
76
|
+
children: week.map((dayInMonth, index2) => /*#__PURE__*/_jsx(DayCalendarSkeletonDay, {
|
|
84
77
|
variant: "circular",
|
|
85
78
|
width: DAY_SIZE,
|
|
86
79
|
height: DAY_SIZE,
|
|
87
80
|
className: classes.daySkeleton,
|
|
88
|
-
|
|
89
|
-
day
|
|
90
|
-
}
|
|
81
|
+
"data-day-in-month": dayInMonth
|
|
91
82
|
}, index2))
|
|
92
83
|
}, index))
|
|
93
84
|
}));
|
|
@@ -7,15 +7,14 @@ import resolveComponentProps from '@mui/utils/resolveComponentProps';
|
|
|
7
7
|
import { refType } from '@mui/utils';
|
|
8
8
|
import { singleItemValueManager } from "../internals/utils/valueManagers.js";
|
|
9
9
|
import { useDatePickerDefaultizedProps } from "../DatePicker/shared.js";
|
|
10
|
-
import { usePickerTranslations } from "../hooks/usePickerTranslations.js";
|
|
11
10
|
import { useUtils } from "../internals/hooks/useUtils.js";
|
|
12
11
|
import { validateDate, extractValidationProps } from "../validation/index.js";
|
|
13
12
|
import { useDesktopPicker } from "../internals/hooks/useDesktopPicker/index.js";
|
|
14
|
-
import { CalendarIcon } from "../icons/index.js";
|
|
15
13
|
import { DateField } from "../DateField/index.js";
|
|
16
14
|
import { renderDateViewCalendar } from "../dateViewRenderers/index.js";
|
|
17
15
|
import { resolveDateFormat } from "../internals/utils/date-utils.js";
|
|
18
|
-
|
|
16
|
+
const emptyActions = [];
|
|
17
|
+
|
|
19
18
|
/**
|
|
20
19
|
* Demos:
|
|
21
20
|
*
|
|
@@ -27,7 +26,6 @@ import { buildGetOpenDialogAriaText } from "../locales/utils/getPickersLocalizat
|
|
|
27
26
|
* - [DesktopDatePicker API](https://mui.com/x/api/date-pickers/desktop-date-picker/)
|
|
28
27
|
*/
|
|
29
28
|
const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePicker(inProps, ref) {
|
|
30
|
-
const translations = usePickerTranslations();
|
|
31
29
|
const utils = useUtils();
|
|
32
30
|
|
|
33
31
|
// Props with the default values common to all date pickers
|
|
@@ -40,34 +38,30 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
|
|
|
40
38
|
|
|
41
39
|
// Props with the default values specific to the desktop variant
|
|
42
40
|
const props = _extends({}, defaultizedProps, {
|
|
41
|
+
closeOnSelect: defaultizedProps.closeOnSelect ?? true,
|
|
43
42
|
viewRenderers,
|
|
44
43
|
format: resolveDateFormat(utils, defaultizedProps, false),
|
|
45
44
|
yearsPerRow: defaultizedProps.yearsPerRow ?? 4,
|
|
46
45
|
slots: _extends({
|
|
47
|
-
openPickerIcon: CalendarIcon,
|
|
48
46
|
field: DateField
|
|
49
47
|
}, defaultizedProps.slots),
|
|
50
48
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
51
|
-
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps),
|
|
52
|
-
ref
|
|
53
|
-
}),
|
|
49
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps)),
|
|
54
50
|
toolbar: _extends({
|
|
55
51
|
hidden: true
|
|
56
|
-
}, defaultizedProps.slotProps?.toolbar)
|
|
52
|
+
}, defaultizedProps.slotProps?.toolbar),
|
|
53
|
+
actionBar: ownerState => _extends({
|
|
54
|
+
actions: emptyActions
|
|
55
|
+
}, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))
|
|
57
56
|
})
|
|
58
57
|
});
|
|
59
58
|
const {
|
|
60
59
|
renderPicker
|
|
61
60
|
} = useDesktopPicker({
|
|
61
|
+
ref,
|
|
62
62
|
props,
|
|
63
63
|
valueManager: singleItemValueManager,
|
|
64
64
|
valueType: 'date',
|
|
65
|
-
getOpenDialogAriaText: buildGetOpenDialogAriaText({
|
|
66
|
-
utils,
|
|
67
|
-
formatKey: 'fullDate',
|
|
68
|
-
contextTranslation: translations.openDatePickerDialogue,
|
|
69
|
-
propsTranslation: props.localeText?.openDatePickerDialogue
|
|
70
|
-
}),
|
|
71
65
|
validator: validateDate
|
|
72
66
|
});
|
|
73
67
|
return renderPicker();
|
|
@@ -86,8 +80,8 @@ DesktopDatePicker.propTypes = {
|
|
|
86
80
|
autoFocus: PropTypes.bool,
|
|
87
81
|
className: PropTypes.string,
|
|
88
82
|
/**
|
|
89
|
-
* If `true`, the
|
|
90
|
-
* @default
|
|
83
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
84
|
+
* @default true
|
|
91
85
|
*/
|
|
92
86
|
closeOnSelect: PropTypes.bool,
|
|
93
87
|
/**
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
2
2
|
import { UseDesktopPickerSlots, ExportedUseDesktopPickerSlotProps, DesktopOnlyPickerProps } from '../internals/hooks/useDesktopPicker';
|
|
3
3
|
import { BaseDatePickerProps, BaseDatePickerSlots, BaseDatePickerSlotProps } from '../DatePicker/shared';
|
|
4
|
-
import { DateView } from '../models';
|
|
5
4
|
import { ExportedYearCalendarProps } from '../YearCalendar/YearCalendar.types';
|
|
6
|
-
export interface DesktopDatePickerSlots extends BaseDatePickerSlots, MakeOptional<UseDesktopPickerSlots
|
|
5
|
+
export interface DesktopDatePickerSlots extends BaseDatePickerSlots, MakeOptional<UseDesktopPickerSlots, 'field' | 'openPickerIcon'> {
|
|
7
6
|
}
|
|
8
|
-
export interface DesktopDatePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDatePickerSlotProps, ExportedUseDesktopPickerSlotProps<
|
|
7
|
+
export interface DesktopDatePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDatePickerSlotProps, ExportedUseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure> {
|
|
9
8
|
}
|
|
10
9
|
export interface DesktopDatePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDatePickerProps, DesktopOnlyPickerProps, ExportedYearCalendarProps {
|
|
11
10
|
/**
|
|
@@ -23,4 +22,9 @@ export interface DesktopDatePickerProps<TEnableAccessibleFieldDOMStructure exten
|
|
|
23
22
|
* @default 4
|
|
24
23
|
*/
|
|
25
24
|
yearsPerRow?: 3 | 4;
|
|
25
|
+
/**
|
|
26
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
27
|
+
* @default true
|
|
28
|
+
*/
|
|
29
|
+
closeOnSelect?: boolean;
|
|
26
30
|
}
|