@mui/x-date-pickers 8.0.0-alpha.1 → 8.0.0-alpha.11
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 +2007 -230
- package/DateCalendar/DateCalendar.js +41 -22
- package/DateCalendar/DateCalendar.types.d.ts +2 -1
- package/DateCalendar/DayCalendar.d.ts +1 -2
- package/DateCalendar/DayCalendar.js +12 -36
- 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 +13 -27
- package/DateCalendar/useCalendarState.js +65 -55
- 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 -33
- 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 +88 -80
- 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 -34
- package/DesktopTimePicker/DesktopTimePicker.js +6 -22
- package/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -2
- package/DigitalClock/DigitalClock.js +13 -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 +31 -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 +11 -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 +12 -9
- package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +4 -6
- package/PickersLayout/PickersLayout.d.ts +7 -5
- package/PickersLayout/PickersLayout.js +23 -42
- package/PickersLayout/PickersLayout.types.d.ts +20 -22
- package/PickersLayout/usePickerLayout.d.ts +5 -4
- package/PickersLayout/usePickerLayout.js +26 -53
- 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 +45 -38
- 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 +8 -5
- 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 +27 -27
- package/TimeClock/ClockNumber.js +15 -11
- package/TimeClock/ClockPointer.d.ts +6 -1
- package/TimeClock/ClockPointer.js +16 -10
- package/TimeClock/TimeClock.js +30 -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 +36 -51
- package/TimePicker/shared.d.ts +6 -6
- package/YearCalendar/YearCalendar.js +46 -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 +12 -3
- 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 +86 -32
- package/internals/components/PickerProvider.js +25 -7
- 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 +15 -12
- 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 +35 -120
- 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 +55 -48
- 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 +2 -3
- package/internals/hooks/useField/useFieldV6TextField.d.ts +4 -3
- package/internals/hooks/useField/useFieldV6TextField.js +5 -2
- package/internals/hooks/useField/useFieldV7TextField.js +6 -3
- 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 +34 -68
- 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 +4 -20
- package/internals/hooks/usePicker/usePicker.types.d.ts +10 -10
- package/internals/hooks/usePicker/usePickerProvider.d.ts +45 -10
- package/internals/hooks/usePicker/usePickerProvider.js +50 -16
- package/internals/hooks/usePicker/usePickerValue.d.ts +3 -2
- package/internals/hooks/usePicker/usePickerValue.js +84 -214
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +130 -75
- package/internals/hooks/usePicker/usePickerViews.d.ts +59 -41
- package/internals/hooks/usePicker/usePickerViews.js +31 -20
- 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 +7 -12
- 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 +5 -4
- package/internals/hooks/useViews.d.ts +5 -5
- package/internals/index.d.ts +27 -18
- package/internals/index.js +13 -8
- package/internals/models/common.d.ts +1 -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 -19
- package/internals/models/value.d.ts +9 -0
- package/internals/utils/date-utils.d.ts +1 -1
- 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/fields.d.ts +33 -9
- 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 +7 -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 +41 -22
- package/modern/DateCalendar/DayCalendar.js +12 -36
- package/modern/DateCalendar/PickersFadeTransitionGroup.js +4 -6
- package/modern/DateCalendar/PickersSlideTransition.js +12 -5
- package/modern/DateCalendar/useCalendarState.js +65 -55
- 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 -33
- 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 +88 -80
- 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 -34
- package/modern/DesktopTimePicker/DesktopTimePicker.js +6 -22
- package/modern/DigitalClock/DigitalClock.js +13 -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 +31 -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 +11 -7
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +14 -10
- package/modern/PickersActionBar/PickersActionBar.js +26 -17
- package/modern/PickersCalendarHeader/PickersCalendarHeader.js +12 -9
- package/modern/PickersLayout/PickersLayout.js +23 -42
- package/modern/PickersLayout/usePickerLayout.js +26 -53
- 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 +45 -38
- 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 +27 -27
- package/modern/TimeClock/ClockNumber.js +15 -11
- package/modern/TimeClock/ClockPointer.js +16 -10
- package/modern/TimeClock/TimeClock.js +30 -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 +36 -51
- package/modern/YearCalendar/YearCalendar.js +46 -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 +25 -7
- package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
- package/modern/internals/components/PickersModalDialog.js +9 -3
- package/modern/internals/components/PickersToolbar.js +15 -12
- 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 +35 -120
- 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 +2 -3
- package/modern/internals/hooks/useField/useFieldV6TextField.js +5 -2
- package/modern/internals/hooks/useField/useFieldV7TextField.js +6 -3
- package/modern/internals/hooks/useFieldOwnerState.js +16 -0
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +34 -68
- package/modern/internals/hooks/useNullablePickerContext.js +10 -0
- package/modern/internals/hooks/useOpenState.js +11 -9
- package/modern/internals/hooks/usePicker/usePicker.js +4 -20
- package/modern/internals/hooks/usePicker/usePickerProvider.js +50 -16
- package/modern/internals/hooks/usePicker/usePickerValue.js +84 -214
- package/modern/internals/hooks/usePicker/usePickerViews.js +31 -20
- package/modern/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +5 -2
- package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
- package/modern/internals/hooks/useToolbarOwnerState.js +13 -0
- package/modern/internals/hooks/useUtils.js +1 -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 +41 -22
- package/node/DateCalendar/DayCalendar.js +12 -37
- package/node/DateCalendar/PickersFadeTransitionGroup.js +4 -6
- package/node/DateCalendar/PickersSlideTransition.js +12 -5
- package/node/DateCalendar/useCalendarState.js +66 -57
- 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 -33
- 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 +89 -80
- 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 -35
- package/node/DesktopTimePicker/DesktopTimePicker.js +6 -22
- package/node/DigitalClock/DigitalClock.js +13 -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 +31 -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 +11 -7
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -10
- package/node/PickersActionBar/PickersActionBar.js +28 -19
- package/node/PickersCalendarHeader/PickersCalendarHeader.js +12 -9
- package/node/PickersLayout/PickersLayout.js +23 -42
- package/node/PickersLayout/usePickerLayout.js +30 -57
- 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 +45 -38
- 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 +27 -27
- package/node/TimeClock/ClockNumber.js +15 -11
- package/node/TimeClock/ClockPointer.js +15 -10
- package/node/TimeClock/TimeClock.js +30 -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 +36 -51
- package/node/YearCalendar/YearCalendar.js +45 -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 +27 -9
- package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
- package/node/internals/components/PickersModalDialog.js +9 -3
- package/node/internals/components/PickersToolbar.js +15 -12
- 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 +37 -122
- 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 +2 -3
- package/node/internals/hooks/useField/useFieldV6TextField.js +5 -2
- package/node/internals/hooks/useField/useFieldV7TextField.js +6 -3
- package/node/internals/hooks/useFieldOwnerState.js +24 -0
- package/node/internals/hooks/useMobilePicker/useMobilePicker.js +35 -69
- package/node/internals/hooks/useNullablePickerContext.js +16 -0
- package/node/internals/hooks/useOpenState.js +12 -9
- package/node/internals/hooks/usePicker/usePicker.js +4 -20
- package/node/internals/hooks/usePicker/usePickerProvider.js +51 -17
- package/node/internals/hooks/usePicker/usePickerValue.js +84 -213
- package/node/internals/hooks/usePicker/usePickerViews.js +31 -21
- package/node/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +7 -4
- package/node/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
- package/node/internals/hooks/useToolbarOwnerState.js +21 -0
- package/node/internals/hooks/useUtils.js +1 -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 +5 -5
- 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 -32
- package/internals/hooks/usePicker/usePickerLayoutProps.js +0 -31
- 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 -31
- 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 -38
- package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -52
|
@@ -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
|
}
|
|
@@ -12,10 +12,8 @@ import { singleItemValueManager } from "../internals/utils/valueManagers.js";
|
|
|
12
12
|
import { DateTimeField } from "../DateTimeField/index.js";
|
|
13
13
|
import { useDateTimePickerDefaultizedProps } from "../DateTimePicker/shared.js";
|
|
14
14
|
import { renderDateViewCalendar } from "../dateViewRenderers/dateViewRenderers.js";
|
|
15
|
-
import { usePickerTranslations } from "../hooks/usePickerTranslations.js";
|
|
16
15
|
import { useUtils } from "../internals/hooks/useUtils.js";
|
|
17
16
|
import { validateDateTime, extractValidationProps } from "../validation/index.js";
|
|
18
|
-
import { CalendarIcon } from "../icons/index.js";
|
|
19
17
|
import { useDesktopPicker } from "../internals/hooks/useDesktopPicker/index.js";
|
|
20
18
|
import { resolveDateTimeFormat, resolveTimeViewsResponse } from "../internals/utils/date-time-utils.js";
|
|
21
19
|
import { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView } from "../timeViewRenderers/index.js";
|
|
@@ -25,9 +23,13 @@ import { DesktopDateTimePickerLayout } from "./DesktopDateTimePickerLayout.js";
|
|
|
25
23
|
import { VIEW_HEIGHT } from "../internals/constants/dimensions.js";
|
|
26
24
|
import { isInternalTimeView } from "../internals/utils/time-utils.js";
|
|
27
25
|
import { isDatePickerView } from "../internals/utils/date-utils.js";
|
|
28
|
-
import { buildGetOpenDialogAriaText } from "../locales/utils/getPickersLocalization.js";
|
|
29
26
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
30
|
-
const rendererInterceptor = function
|
|
27
|
+
const rendererInterceptor = function RendererInterceptor(props) {
|
|
28
|
+
const {
|
|
29
|
+
viewRenderers,
|
|
30
|
+
popperView,
|
|
31
|
+
rendererProps
|
|
32
|
+
} = props;
|
|
31
33
|
const {
|
|
32
34
|
openTo,
|
|
33
35
|
focusedView,
|
|
@@ -46,8 +48,10 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
46
48
|
}]
|
|
47
49
|
});
|
|
48
50
|
const isTimeViewActive = isInternalTimeView(popperView);
|
|
51
|
+
const dateView = isTimeViewActive ? 'day' : popperView;
|
|
52
|
+
const timeView = isTimeViewActive ? popperView : 'hours';
|
|
49
53
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
50
|
-
children: [
|
|
54
|
+
children: [viewRenderers[dateView]?.(_extends({}, rendererProps, {
|
|
51
55
|
view: !isTimeViewActive ? popperView : 'day',
|
|
52
56
|
focusedView: focusedView && isDatePickerView(focusedView) ? focusedView : null,
|
|
53
57
|
views: rendererProps.views.filter(isDatePickerView),
|
|
@@ -60,7 +64,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
60
64
|
sx: {
|
|
61
65
|
gridColumn: 2
|
|
62
66
|
}
|
|
63
|
-
}),
|
|
67
|
+
}), viewRenderers[timeView]?.(_extends({}, finalProps, {
|
|
64
68
|
view: isTimeViewActive ? popperView : 'hours',
|
|
65
69
|
focusedView: focusedView && isInternalTimeView(focusedView) ? focusedView : null,
|
|
66
70
|
openTo: isInternalTimeView(openTo) ? openTo : 'hours',
|
|
@@ -83,7 +87,6 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
83
87
|
* - [DesktopDateTimePicker API](https://mui.com/x/api/date-pickers/desktop-date-time-picker/)
|
|
84
88
|
*/
|
|
85
89
|
const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDateTimePicker(inProps, ref) {
|
|
86
|
-
const translations = usePickerTranslations();
|
|
87
90
|
const utils = useUtils();
|
|
88
91
|
|
|
89
92
|
// Props with the default values common to all date time pickers
|
|
@@ -108,7 +111,6 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
|
|
|
108
111
|
// Need to avoid adding the `meridiem` view when unexpected renderer is specified
|
|
109
112
|
const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === renderMultiSectionDigitalClockTimeView.name;
|
|
110
113
|
const views = !shouldHoursRendererContainMeridiemView ? resolvedViews.filter(view => view !== 'meridiem') : resolvedViews;
|
|
111
|
-
const actionBarActions = shouldRenderTimeInASingleColumn ? [] : ['accept'];
|
|
112
114
|
|
|
113
115
|
// Props with the default values specific to the desktop variant
|
|
114
116
|
const props = _extends({}, defaultizedProps, {
|
|
@@ -122,38 +124,26 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
|
|
|
122
124
|
shouldRenderTimeInASingleColumn,
|
|
123
125
|
slots: _extends({
|
|
124
126
|
field: DateTimeField,
|
|
125
|
-
layout: DesktopDateTimePickerLayout
|
|
126
|
-
openPickerIcon: CalendarIcon
|
|
127
|
+
layout: DesktopDateTimePickerLayout
|
|
127
128
|
}, defaultizedProps.slots),
|
|
128
129
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
129
|
-
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps),
|
|
130
|
-
ref
|
|
131
|
-
}),
|
|
130
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps)),
|
|
132
131
|
toolbar: _extends({
|
|
133
132
|
hidden: true,
|
|
134
|
-
ampmInClock
|
|
135
|
-
toolbarVariant: 'desktop'
|
|
133
|
+
ampmInClock
|
|
136
134
|
}, defaultizedProps.slotProps?.toolbar),
|
|
137
135
|
tabs: _extends({
|
|
138
136
|
hidden: true
|
|
139
|
-
}, defaultizedProps.slotProps?.tabs)
|
|
140
|
-
actionBar: ownerState => _extends({
|
|
141
|
-
actions: actionBarActions
|
|
142
|
-
}, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))
|
|
137
|
+
}, defaultizedProps.slotProps?.tabs)
|
|
143
138
|
})
|
|
144
139
|
});
|
|
145
140
|
const {
|
|
146
141
|
renderPicker
|
|
147
142
|
} = useDesktopPicker({
|
|
143
|
+
ref,
|
|
148
144
|
props,
|
|
149
145
|
valueManager: singleItemValueManager,
|
|
150
146
|
valueType: 'date-time',
|
|
151
|
-
getOpenDialogAriaText: buildGetOpenDialogAriaText({
|
|
152
|
-
utils,
|
|
153
|
-
formatKey: 'fullDate',
|
|
154
|
-
contextTranslation: translations.openDatePickerDialogue,
|
|
155
|
-
propsTranslation: props.localeText?.openDatePickerDialogue
|
|
156
|
-
}),
|
|
157
147
|
validator: validateDateTime,
|
|
158
148
|
rendererInterceptor
|
|
159
149
|
});
|
|
@@ -183,8 +173,8 @@ DesktopDateTimePicker.propTypes = {
|
|
|
183
173
|
autoFocus: PropTypes.bool,
|
|
184
174
|
className: PropTypes.string,
|
|
185
175
|
/**
|
|
186
|
-
* If `true`, the
|
|
187
|
-
* @default
|
|
176
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
177
|
+
* @default false
|
|
188
178
|
*/
|
|
189
179
|
closeOnSelect: PropTypes.bool,
|
|
190
180
|
/**
|
|
@@ -7,9 +7,9 @@ import { DateOrTimeViewWithMeridiem } from '../internals/models';
|
|
|
7
7
|
import { MultiSectionDigitalClockSlots, MultiSectionDigitalClockSlotProps } from '../MultiSectionDigitalClock';
|
|
8
8
|
import { DigitalClockSlots, DigitalClockSlotProps } from '../DigitalClock';
|
|
9
9
|
import { ExportedYearCalendarProps } from '../YearCalendar/YearCalendar.types';
|
|
10
|
-
export interface DesktopDateTimePickerSlots extends BaseDateTimePickerSlots, MakeOptional<UseDesktopPickerSlots
|
|
10
|
+
export interface DesktopDateTimePickerSlots extends BaseDateTimePickerSlots, MakeOptional<UseDesktopPickerSlots, 'field' | 'openPickerIcon'>, DigitalClockSlots, MultiSectionDigitalClockSlots {
|
|
11
11
|
}
|
|
12
|
-
export interface DesktopDateTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimePickerSlotProps, ExportedUseDesktopPickerSlotProps<
|
|
12
|
+
export interface DesktopDateTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimePickerSlotProps, ExportedUseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure>, DigitalClockSlotProps, MultiSectionDigitalClockSlotProps {
|
|
13
13
|
}
|
|
14
14
|
export interface DesktopDateTimePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDateTimePickerProps<DateOrTimeViewWithMeridiem>, DesktopOnlyPickerProps, DesktopOnlyTimePickerProps, ExportedYearCalendarProps {
|
|
15
15
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { PickersLayoutProps } from '../PickersLayout';
|
|
3
|
-
import {
|
|
4
|
-
type DesktopDateTimePickerLayoutComponent = (<TValue
|
|
3
|
+
import { PickerValidValue } from '../internals/models';
|
|
4
|
+
type DesktopDateTimePickerLayoutComponent = (<TValue extends PickerValidValue>(props: PickersLayoutProps<TValue> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
|
|
5
5
|
propTypes?: any;
|
|
6
6
|
};
|
|
7
7
|
/**
|
|
@@ -1,33 +1,31 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
1
|
import * as React from 'react';
|
|
3
2
|
import PropTypes from 'prop-types';
|
|
4
3
|
import clsx from 'clsx';
|
|
5
|
-
import { useRtl } from '@mui/system/RtlProvider';
|
|
6
4
|
import Divider from '@mui/material/Divider';
|
|
7
5
|
import { PickersLayoutContentWrapper, PickersLayoutRoot, pickersLayoutClasses, usePickerLayout } from "../PickersLayout/index.js";
|
|
6
|
+
import { usePickerContext } from "../hooks/usePickerContext.js";
|
|
8
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
8
|
/**
|
|
10
9
|
* @ignore - internal component.
|
|
11
10
|
*/
|
|
12
11
|
const DesktopDateTimePickerLayout = /*#__PURE__*/React.forwardRef(function DesktopDateTimePickerLayout(props, ref) {
|
|
13
|
-
const isRtl = useRtl();
|
|
14
12
|
const {
|
|
15
13
|
toolbar,
|
|
16
14
|
tabs,
|
|
17
15
|
content,
|
|
18
16
|
actionBar,
|
|
19
|
-
shortcuts
|
|
17
|
+
shortcuts,
|
|
18
|
+
ownerState
|
|
20
19
|
} = usePickerLayout(props);
|
|
20
|
+
const {
|
|
21
|
+
orientation
|
|
22
|
+
} = usePickerContext();
|
|
21
23
|
const {
|
|
22
24
|
sx,
|
|
23
25
|
className,
|
|
24
|
-
isLandscape,
|
|
25
26
|
classes
|
|
26
27
|
} = props;
|
|
27
28
|
const isActionBarVisible = actionBar && (actionBar.props.actions?.length ?? 0) > 0;
|
|
28
|
-
const ownerState = _extends({}, props, {
|
|
29
|
-
isRtl
|
|
30
|
-
});
|
|
31
29
|
return /*#__PURE__*/_jsxs(PickersLayoutRoot, {
|
|
32
30
|
ref: ref,
|
|
33
31
|
className: clsx(pickersLayoutClasses.root, classes?.root, className),
|
|
@@ -41,8 +39,9 @@ const DesktopDateTimePickerLayout = /*#__PURE__*/React.forwardRef(function Deskt
|
|
|
41
39
|
}
|
|
42
40
|
}, ...(Array.isArray(sx) ? sx : [sx])],
|
|
43
41
|
ownerState: ownerState,
|
|
44
|
-
children: [
|
|
42
|
+
children: [orientation === 'landscape' ? shortcuts : toolbar, orientation === 'landscape' ? toolbar : shortcuts, /*#__PURE__*/_jsxs(PickersLayoutContentWrapper, {
|
|
45
43
|
className: clsx(pickersLayoutClasses.contentWrapper, classes?.contentWrapper),
|
|
44
|
+
ownerState: ownerState,
|
|
46
45
|
sx: {
|
|
47
46
|
display: 'grid'
|
|
48
47
|
},
|
|
@@ -66,26 +65,6 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes =
|
|
|
66
65
|
*/
|
|
67
66
|
classes: PropTypes.object,
|
|
68
67
|
className: PropTypes.string,
|
|
69
|
-
isLandscape: PropTypes.bool.isRequired,
|
|
70
|
-
/**
|
|
71
|
-
* `true` if the application is in right-to-left direction.
|
|
72
|
-
*/
|
|
73
|
-
isRtl: PropTypes.bool.isRequired,
|
|
74
|
-
isValid: PropTypes.func.isRequired,
|
|
75
|
-
onAccept: PropTypes.func.isRequired,
|
|
76
|
-
onCancel: PropTypes.func.isRequired,
|
|
77
|
-
onChange: PropTypes.func.isRequired,
|
|
78
|
-
onClear: PropTypes.func.isRequired,
|
|
79
|
-
onClose: PropTypes.func.isRequired,
|
|
80
|
-
onDismiss: PropTypes.func.isRequired,
|
|
81
|
-
onOpen: PropTypes.func.isRequired,
|
|
82
|
-
onSelectShortcut: PropTypes.func.isRequired,
|
|
83
|
-
onSetToday: PropTypes.func.isRequired,
|
|
84
|
-
onViewChange: PropTypes.func.isRequired,
|
|
85
|
-
/**
|
|
86
|
-
* Force rendering in particular orientation.
|
|
87
|
-
*/
|
|
88
|
-
orientation: PropTypes.oneOf(['landscape', 'portrait']),
|
|
89
68
|
/**
|
|
90
69
|
* The props used for each component slot.
|
|
91
70
|
* @default {}
|
|
@@ -99,10 +78,6 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes =
|
|
|
99
78
|
/**
|
|
100
79
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
101
80
|
*/
|
|
102
|
-
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
103
|
-
value: PropTypes.any,
|
|
104
|
-
view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
|
|
105
|
-
views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired,
|
|
106
|
-
wrapperVariant: PropTypes.oneOf(['desktop', 'mobile'])
|
|
81
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
107
82
|
} : void 0;
|
|
108
83
|
export { DesktopDateTimePickerLayout };
|
|
@@ -8,15 +8,12 @@ import { refType } from '@mui/utils';
|
|
|
8
8
|
import { singleItemValueManager } from "../internals/utils/valueManagers.js";
|
|
9
9
|
import { TimeField } from "../TimeField/index.js";
|
|
10
10
|
import { useTimePickerDefaultizedProps } from "../TimePicker/shared.js";
|
|
11
|
-
import { usePickerTranslations } from "../hooks/usePickerTranslations.js";
|
|
12
11
|
import { useUtils } from "../internals/hooks/useUtils.js";
|
|
13
12
|
import { extractValidationProps, validateTime } from "../validation/index.js";
|
|
14
|
-
import { ClockIcon } from "../icons/index.js";
|
|
15
13
|
import { useDesktopPicker } from "../internals/hooks/useDesktopPicker/index.js";
|
|
16
14
|
import { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView } from "../timeViewRenderers/index.js";
|
|
17
15
|
import { resolveTimeFormat } from "../internals/utils/time-utils.js";
|
|
18
16
|
import { resolveTimeViewsResponse } from "../internals/utils/date-time-utils.js";
|
|
19
|
-
import { buildGetOpenDialogAriaText } from "../locales/utils/getPickersLocalization.js";
|
|
20
17
|
/**
|
|
21
18
|
* Demos:
|
|
22
19
|
*
|
|
@@ -28,7 +25,6 @@ import { buildGetOpenDialogAriaText } from "../locales/utils/getPickersLocalizat
|
|
|
28
25
|
* - [DesktopTimePicker API](https://mui.com/x/api/date-pickers/desktop-time-picker/)
|
|
29
26
|
*/
|
|
30
27
|
const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePicker(inProps, ref) {
|
|
31
|
-
const translations = usePickerTranslations();
|
|
32
28
|
const utils = useUtils();
|
|
33
29
|
|
|
34
30
|
// Props with the default values common to all time pickers
|
|
@@ -46,7 +42,6 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
|
|
|
46
42
|
meridiem: renderTimeView
|
|
47
43
|
}, defaultizedProps.viewRenderers);
|
|
48
44
|
const ampmInClock = defaultizedProps.ampmInClock ?? true;
|
|
49
|
-
const actionBarActions = shouldRenderTimeInASingleColumn ? [] : ['accept'];
|
|
50
45
|
// Need to avoid adding the `meridiem` view when unexpected renderer is specified
|
|
51
46
|
const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === renderMultiSectionDigitalClockTimeView.name;
|
|
52
47
|
const views = !shouldHoursRendererContainMeridiemView ? resolvedViews.filter(view => view !== 'meridiem') : resolvedViews;
|
|
@@ -61,34 +56,23 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
|
|
|
61
56
|
// Allows for easy view lifecycle management
|
|
62
57
|
views: shouldRenderTimeInASingleColumn ? ['hours'] : views,
|
|
63
58
|
slots: _extends({
|
|
64
|
-
field: TimeField
|
|
65
|
-
openPickerIcon: ClockIcon
|
|
59
|
+
field: TimeField
|
|
66
60
|
}, defaultizedProps.slots),
|
|
67
61
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
68
|
-
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps),
|
|
69
|
-
ref
|
|
70
|
-
}),
|
|
62
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps)),
|
|
71
63
|
toolbar: _extends({
|
|
72
64
|
hidden: true,
|
|
73
65
|
ampmInClock
|
|
74
|
-
}, defaultizedProps.slotProps?.toolbar)
|
|
75
|
-
actionBar: _extends({
|
|
76
|
-
actions: actionBarActions
|
|
77
|
-
}, defaultizedProps.slotProps?.actionBar)
|
|
66
|
+
}, defaultizedProps.slotProps?.toolbar)
|
|
78
67
|
})
|
|
79
68
|
});
|
|
80
69
|
const {
|
|
81
70
|
renderPicker
|
|
82
71
|
} = useDesktopPicker({
|
|
72
|
+
ref,
|
|
83
73
|
props,
|
|
84
74
|
valueManager: singleItemValueManager,
|
|
85
75
|
valueType: 'time',
|
|
86
|
-
getOpenDialogAriaText: buildGetOpenDialogAriaText({
|
|
87
|
-
utils,
|
|
88
|
-
formatKey: 'fullTime',
|
|
89
|
-
contextTranslation: translations.openTimePickerDialogue,
|
|
90
|
-
propsTranslation: props.localeText?.openTimePickerDialogue
|
|
91
|
-
}),
|
|
92
76
|
validator: validateTime
|
|
93
77
|
});
|
|
94
78
|
return renderPicker();
|
|
@@ -117,8 +101,8 @@ DesktopTimePicker.propTypes = {
|
|
|
117
101
|
autoFocus: PropTypes.bool,
|
|
118
102
|
className: PropTypes.string,
|
|
119
103
|
/**
|
|
120
|
-
* If `true`, the
|
|
121
|
-
* @default
|
|
104
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
105
|
+
* @default false
|
|
122
106
|
*/
|
|
123
107
|
closeOnSelect: PropTypes.bool,
|
|
124
108
|
/**
|
|
@@ -6,9 +6,9 @@ import { DesktopOnlyTimePickerProps } from '../internals/models/props/time';
|
|
|
6
6
|
import { DigitalClockSlots, DigitalClockSlotProps } from '../DigitalClock';
|
|
7
7
|
import { MultiSectionDigitalClockSlots, MultiSectionDigitalClockSlotProps } from '../MultiSectionDigitalClock';
|
|
8
8
|
import { TimeView } from '../models';
|
|
9
|
-
export interface DesktopTimePickerSlots extends BaseTimePickerSlots, MakeOptional<UseDesktopPickerSlots
|
|
9
|
+
export interface DesktopTimePickerSlots extends BaseTimePickerSlots, MakeOptional<UseDesktopPickerSlots, 'field' | 'openPickerIcon'>, DigitalClockSlots, MultiSectionDigitalClockSlots {
|
|
10
10
|
}
|
|
11
|
-
export interface DesktopTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseTimePickerSlotProps, ExportedUseDesktopPickerSlotProps<
|
|
11
|
+
export interface DesktopTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseTimePickerSlotProps, ExportedUseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure>, DigitalClockSlotProps, MultiSectionDigitalClockSlotProps {
|
|
12
12
|
}
|
|
13
13
|
export interface DesktopTimePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseTimePickerProps<TimeViewWithMeridiem>, DesktopOnlyPickerProps, DesktopOnlyTimePickerProps {
|
|
14
14
|
/**
|
|
@@ -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 = ["ampm", "timeStep", "autoFocus", "slots", "slotProps", "value", "defaultValue", "referenceDate", "disableIgnoringDatePartForTimeValidation", "maxTime", "minTime", "disableFuture", "disablePast", "minutesStep", "shouldDisableTime", "onChange", "view", "openTo", "onViewChange", "focusedView", "onFocusedViewChange", "className", "disabled", "readOnly", "views", "skipDisabled", "timezone"];
|
|
5
|
+
const _excluded = ["ampm", "timeStep", "autoFocus", "slots", "slotProps", "value", "defaultValue", "referenceDate", "disableIgnoringDatePartForTimeValidation", "maxTime", "minTime", "disableFuture", "disablePast", "minutesStep", "shouldDisableTime", "onChange", "view", "openTo", "onViewChange", "focusedView", "onFocusedViewChange", "className", "classes", "disabled", "readOnly", "views", "skipDisabled", "timezone"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import clsx from 'clsx';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
@@ -24,11 +24,9 @@ import { useControlledValueWithTimezone } from "../internals/hooks/useValueWithT
|
|
|
24
24
|
import { singleItemValueManager } from "../internals/utils/valueManagers.js";
|
|
25
25
|
import { useClockReferenceDate } from "../internals/hooks/useClockReferenceDate.js";
|
|
26
26
|
import { getFocusedListItemIndex } from "../internals/utils/utils.js";
|
|
27
|
+
import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
|
|
27
28
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
28
|
-
const useUtilityClasses =
|
|
29
|
-
const {
|
|
30
|
-
classes
|
|
31
|
-
} = ownerState;
|
|
29
|
+
const useUtilityClasses = classes => {
|
|
32
30
|
const slots = {
|
|
33
31
|
root: ['root'],
|
|
34
32
|
list: ['list'],
|
|
@@ -49,7 +47,7 @@ const DigitalClockRoot = styled(PickerViewRoot, {
|
|
|
49
47
|
maxHeight: DIGITAL_CLOCK_VIEW_HEIGHT,
|
|
50
48
|
variants: [{
|
|
51
49
|
props: {
|
|
52
|
-
|
|
50
|
+
hasDigitalClockAlreadyBeenRendered: true
|
|
53
51
|
},
|
|
54
52
|
style: {
|
|
55
53
|
'@media (prefers-reduced-motion: no-preference)': {
|
|
@@ -133,6 +131,7 @@ export const DigitalClock = /*#__PURE__*/React.forwardRef(function DigitalClock(
|
|
|
133
131
|
focusedView,
|
|
134
132
|
onFocusedViewChange,
|
|
135
133
|
className,
|
|
134
|
+
classes: classesProp,
|
|
136
135
|
disabled,
|
|
137
136
|
readOnly,
|
|
138
137
|
views = ['hours'],
|
|
@@ -155,15 +154,18 @@ export const DigitalClock = /*#__PURE__*/React.forwardRef(function DigitalClock(
|
|
|
155
154
|
});
|
|
156
155
|
const translations = usePickerTranslations();
|
|
157
156
|
const now = useNow(timezone);
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
}
|
|
161
|
-
const
|
|
157
|
+
const {
|
|
158
|
+
ownerState: pickerOwnerState
|
|
159
|
+
} = usePickerPrivateContext();
|
|
160
|
+
const ownerState = _extends({}, pickerOwnerState, {
|
|
161
|
+
hasDigitalClockAlreadyBeenRendered: !!containerRef.current
|
|
162
|
+
});
|
|
163
|
+
const classes = useUtilityClasses(classesProp);
|
|
162
164
|
const ClockItem = slots?.digitalClockItem ?? DigitalClockItem;
|
|
163
165
|
const clockItemProps = useSlotProps({
|
|
164
166
|
elementType: ClockItem,
|
|
165
167
|
externalSlotProps: slotProps?.digitalClockItem,
|
|
166
|
-
ownerState
|
|
168
|
+
ownerState,
|
|
167
169
|
className: classes.item
|
|
168
170
|
});
|
|
169
171
|
const valueOrReferenceDate = useClockReferenceDate({
|
|
@@ -3,7 +3,7 @@ import { SlotComponentProps } from '@mui/utils';
|
|
|
3
3
|
import MenuItem from '@mui/material/MenuItem';
|
|
4
4
|
import { DigitalClockClasses } from './digitalClockClasses';
|
|
5
5
|
import { BaseClockProps, DigitalClockOnlyProps, ExportedBaseClockProps } from '../internals/models/props/time';
|
|
6
|
-
import { TimeView } from '../models';
|
|
6
|
+
import { PickerOwnerState, TimeView } from '../models';
|
|
7
7
|
export interface ExportedDigitalClockProps extends ExportedBaseClockProps, DigitalClockOnlyProps {
|
|
8
8
|
}
|
|
9
9
|
export interface DigitalClockSlots {
|
|
@@ -14,7 +14,7 @@ export interface DigitalClockSlots {
|
|
|
14
14
|
digitalClockItem?: React.ElementType;
|
|
15
15
|
}
|
|
16
16
|
export interface DigitalClockSlotProps {
|
|
17
|
-
digitalClockItem?: SlotComponentProps<typeof MenuItem, {},
|
|
17
|
+
digitalClockItem?: SlotComponentProps<typeof MenuItem, {}, DigitalClockOwnerState>;
|
|
18
18
|
}
|
|
19
19
|
export interface DigitalClockProps extends ExportedDigitalClockProps, BaseClockProps<Extract<TimeView, 'hours'>> {
|
|
20
20
|
/**
|
|
@@ -37,3 +37,9 @@ export interface DigitalClockProps extends ExportedDigitalClockProps, BaseClockP
|
|
|
37
37
|
*/
|
|
38
38
|
slotProps?: DigitalClockSlotProps;
|
|
39
39
|
}
|
|
40
|
+
export interface DigitalClockOwnerState extends PickerOwnerState {
|
|
41
|
+
/**
|
|
42
|
+
* `true` if this is not the initial render of the digital clock.
|
|
43
|
+
*/
|
|
44
|
+
hasDigitalClockAlreadyBeenRendered: boolean;
|
|
45
|
+
}
|
|
@@ -7,14 +7,12 @@ import resolveComponentProps from '@mui/utils/resolveComponentProps';
|
|
|
7
7
|
import { refType } from '@mui/utils';
|
|
8
8
|
import { useMobilePicker } from "../internals/hooks/useMobilePicker/index.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 { extractValidationProps, validateDate } from "../validation/index.js";
|
|
13
12
|
import { DateField } from "../DateField/index.js";
|
|
14
13
|
import { singleItemValueManager } from "../internals/utils/valueManagers.js";
|
|
15
14
|
import { renderDateViewCalendar } from "../dateViewRenderers/index.js";
|
|
16
15
|
import { resolveDateFormat } from "../internals/utils/date-utils.js";
|
|
17
|
-
import { buildGetOpenDialogAriaText } from "../locales/utils/getPickersLocalization.js";
|
|
18
16
|
/**
|
|
19
17
|
* Demos:
|
|
20
18
|
*
|
|
@@ -26,7 +24,6 @@ import { buildGetOpenDialogAriaText } from "../locales/utils/getPickersLocalizat
|
|
|
26
24
|
* - [MobileDatePicker API](https://mui.com/x/api/date-pickers/mobile-date-picker/)
|
|
27
25
|
*/
|
|
28
26
|
const MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker(inProps, ref) {
|
|
29
|
-
const translations = usePickerTranslations();
|
|
30
27
|
const utils = useUtils();
|
|
31
28
|
|
|
32
29
|
// Props with the default values common to all date pickers
|
|
@@ -45,9 +42,7 @@ const MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker
|
|
|
45
42
|
field: DateField
|
|
46
43
|
}, defaultizedProps.slots),
|
|
47
44
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
48
|
-
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps),
|
|
49
|
-
ref
|
|
50
|
-
}),
|
|
45
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps)),
|
|
51
46
|
toolbar: _extends({
|
|
52
47
|
hidden: false
|
|
53
48
|
}, defaultizedProps.slotProps?.toolbar)
|
|
@@ -56,15 +51,10 @@ const MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker
|
|
|
56
51
|
const {
|
|
57
52
|
renderPicker
|
|
58
53
|
} = useMobilePicker({
|
|
54
|
+
ref,
|
|
59
55
|
props,
|
|
60
56
|
valueManager: singleItemValueManager,
|
|
61
57
|
valueType: 'date',
|
|
62
|
-
getOpenDialogAriaText: buildGetOpenDialogAriaText({
|
|
63
|
-
utils,
|
|
64
|
-
formatKey: 'fullDate',
|
|
65
|
-
contextTranslation: translations.openDatePickerDialogue,
|
|
66
|
-
propsTranslation: props.localeText?.openDatePickerDialogue
|
|
67
|
-
}),
|
|
68
58
|
validator: validateDate
|
|
69
59
|
});
|
|
70
60
|
return renderPicker();
|
|
@@ -83,8 +73,8 @@ MobileDatePicker.propTypes = {
|
|
|
83
73
|
autoFocus: PropTypes.bool,
|
|
84
74
|
className: PropTypes.string,
|
|
85
75
|
/**
|
|
86
|
-
* If `true`, the
|
|
87
|
-
* @default
|
|
76
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
77
|
+
* @default false
|
|
88
78
|
*/
|
|
89
79
|
closeOnSelect: PropTypes.bool,
|
|
90
80
|
/**
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
2
2
|
import { UseMobilePickerSlots, MobileOnlyPickerProps, ExportedUseMobilePickerSlotProps } from '../internals/hooks/useMobilePicker';
|
|
3
3
|
import { BaseDatePickerProps, BaseDatePickerSlots, BaseDatePickerSlotProps } from '../DatePicker/shared';
|
|
4
|
-
|
|
5
|
-
export interface MobileDatePickerSlots extends BaseDatePickerSlots, MakeOptional<UseMobilePickerSlots<DateView>, 'field'> {
|
|
4
|
+
export interface MobileDatePickerSlots extends BaseDatePickerSlots, MakeOptional<UseMobilePickerSlots, 'field'> {
|
|
6
5
|
}
|
|
7
|
-
export interface MobileDatePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDatePickerSlotProps, ExportedUseMobilePickerSlotProps<
|
|
6
|
+
export interface MobileDatePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDatePickerSlotProps, ExportedUseMobilePickerSlotProps<TEnableAccessibleFieldDOMStructure> {
|
|
8
7
|
}
|
|
9
8
|
export interface MobileDatePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDatePickerProps, MobileOnlyPickerProps {
|
|
10
9
|
/**
|