@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
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AvailableAdjustKeyCode, FieldSectionsValueBoundaries, SectionOrdering, FieldSectionValueBoundaries, FieldParsedSelectedSections } from './useField.types';
|
|
2
|
-
import { FieldSectionType,
|
|
2
|
+
import { FieldSectionType, FieldSection, MuiPickersAdapter, FieldSectionContentType, PickersTimezone, PickerValidDate, FieldSelectedSections, PickerValueType, InferFieldSection } from '../../../models';
|
|
3
|
+
import { PickerValidValue } from '../../models';
|
|
3
4
|
export declare const getDateSectionConfigFromFormatToken: (utils: MuiPickersAdapter, formatToken: string) => Pick<FieldSection, "type" | "contentType"> & {
|
|
4
5
|
maxLength: number | undefined;
|
|
5
6
|
};
|
|
@@ -17,7 +18,7 @@ export declare const isStringNumber: (valueStr: string, localizedDigits: string[
|
|
|
17
18
|
*/
|
|
18
19
|
export declare const cleanLeadingZeros: (valueStr: string, size: number) => string;
|
|
19
20
|
export declare const cleanDigitSectionValue: (utils: MuiPickersAdapter, value: number, sectionBoundaries: FieldSectionValueBoundaries<any>, localizedDigits: string[], section: Pick<FieldSection, "format" | "type" | "contentType" | "hasLeadingZerosInFormat" | "hasLeadingZerosInInput" | "maxLength">) => string;
|
|
20
|
-
export declare const adjustSectionValue: <
|
|
21
|
+
export declare const adjustSectionValue: <TValue extends PickerValidValue>(utils: MuiPickersAdapter, timezone: PickersTimezone, section: InferFieldSection<TValue>, keyCode: AvailableAdjustKeyCode, sectionsValueBoundaries: FieldSectionsValueBoundaries, localizedDigits: string[], activeDate: PickerValidDate | null, stepsAttributes?: {
|
|
21
22
|
minutesStep?: number;
|
|
22
23
|
}) => string;
|
|
23
24
|
export declare const getSectionVisibleValue: (section: FieldSection, target: "input-rtl" | "input-ltr" | "non-input", localizedDigits: string[]) => string;
|
|
@@ -31,7 +32,7 @@ export declare const getDateFromDateSections: (utils: MuiPickersAdapter, section
|
|
|
31
32
|
export declare const createDateStrForV7HiddenInputFromSections: (sections: FieldSection[]) => string;
|
|
32
33
|
export declare const createDateStrForV6InputFromSections: (sections: FieldSection[], localizedDigits: string[], isRtl: boolean) => string;
|
|
33
34
|
export declare const getSectionsBoundaries: (utils: MuiPickersAdapter, localizedDigits: string[], timezone: PickersTimezone) => FieldSectionsValueBoundaries;
|
|
34
|
-
export declare const validateSections: <
|
|
35
|
+
export declare const validateSections: <TValue extends PickerValidValue>(sections: InferFieldSection<TValue>[], valueType: PickerValueType) => void;
|
|
35
36
|
export declare const mergeDateIntoReferenceDate: (utils: MuiPickersAdapter, dateToTransferFrom: PickerValidDate, sections: FieldSection[], referenceDate: PickerValidDate, shouldLimitToEditedSections: boolean) => PickerValidDate;
|
|
36
37
|
export declare const isAndroid: () => boolean;
|
|
37
38
|
export declare const getSectionOrder: (sections: FieldSection[], shouldApplyRTL: boolean) => SectionOrdering;
|
|
@@ -361,7 +361,7 @@ export const getSectionsBoundaries = (utils, localizedDigits, timezone) => {
|
|
|
361
361
|
currentDate
|
|
362
362
|
}) => ({
|
|
363
363
|
minimum: 1,
|
|
364
|
-
maximum:
|
|
364
|
+
maximum: utils.isValid(currentDate) ? utils.getDaysInMonth(currentDate) : maxDaysInMonth,
|
|
365
365
|
longestMonth: longestMonth
|
|
366
366
|
}),
|
|
367
367
|
weekDay: ({
|
|
@@ -509,7 +509,7 @@ export const mergeDateIntoReferenceDate = (utils, dateToTransferFrom, sections,
|
|
|
509
509
|
}, referenceDate);
|
|
510
510
|
export const isAndroid = () => navigator.userAgent.toLowerCase().includes('android');
|
|
511
511
|
|
|
512
|
-
// TODO
|
|
512
|
+
// TODO v9: Remove
|
|
513
513
|
export const getSectionOrder = (sections, shouldApplyRTL) => {
|
|
514
514
|
const neighbors = {};
|
|
515
515
|
if (!shouldApplyRTL) {
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PickersTimezone, InferFieldSection } from '../../../models';
|
|
2
2
|
import { FieldSectionsValueBoundaries } from './useField.types';
|
|
3
3
|
import { UpdateSectionValueParams } from './useFieldState';
|
|
4
|
+
import { PickerValidValue } from '../../models';
|
|
4
5
|
export interface ApplyCharacterEditingParams {
|
|
5
6
|
keyPressed: string;
|
|
6
7
|
sectionIndex: number;
|
|
7
8
|
}
|
|
8
|
-
interface UseFieldCharacterEditingParams<
|
|
9
|
-
sections:
|
|
10
|
-
updateSectionValue: (params: UpdateSectionValueParams<
|
|
9
|
+
interface UseFieldCharacterEditingParams<TValue extends PickerValidValue> {
|
|
10
|
+
sections: InferFieldSection<TValue>[];
|
|
11
|
+
updateSectionValue: (params: UpdateSectionValueParams<TValue>) => void;
|
|
11
12
|
sectionsValueBoundaries: FieldSectionsValueBoundaries;
|
|
12
13
|
localizedDigits: string[];
|
|
13
14
|
setTempAndroidValueStr: (newValue: string | null) => void;
|
|
@@ -24,5 +25,5 @@ export interface UseFieldCharacterEditingResponse {
|
|
|
24
25
|
* 1. The numeric editing when the user presses a digit
|
|
25
26
|
* 2. The letter editing when the user presses another key
|
|
26
27
|
*/
|
|
27
|
-
export declare const useFieldCharacterEditing: <
|
|
28
|
+
export declare const useFieldCharacterEditing: <TValue extends PickerValidValue>({ sections, updateSectionValue, sectionsValueBoundaries, localizedDigits, setTempAndroidValueStr, timezone, }: UseFieldCharacterEditingParams<TValue>) => UseFieldCharacterEditingResponse;
|
|
28
29
|
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { UseFieldInternalProps } from './useField.types';
|
|
3
|
+
import { PickerAnyManager, PickerManagerFieldInternalProps, PickerManagerFieldInternalPropsWithDefaults } from '../../models';
|
|
4
|
+
export declare const PickerFieldPrivateContext: React.Context<PickerFieldPrivateContextValue | null>;
|
|
5
|
+
/**
|
|
6
|
+
* Applies the default values to the field internal props.
|
|
7
|
+
* This is a temporary hook that will be removed during a follow up when `useField` will receive the internal props without the defaults.
|
|
8
|
+
* It is only here to allow the migration to be done in smaller steps.
|
|
9
|
+
*/
|
|
10
|
+
export declare function useFieldInternalPropsWithDefaults<TManager extends PickerAnyManager>({ manager, internalProps, }: {
|
|
11
|
+
manager: TManager;
|
|
12
|
+
internalProps: PickerManagerFieldInternalProps<TManager>;
|
|
13
|
+
}): PickerManagerFieldInternalPropsWithDefaults<TManager>;
|
|
14
|
+
export interface PickerFieldPrivateContextValue extends Pick<UseFieldInternalProps<any, any, any>, 'formatDensity' | 'enableAccessibleFieldDOMStructure' | 'selectedSections' | 'onSelectedSectionsChange'> {
|
|
15
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { useLocalizationContext } from "../useUtils.js";
|
|
4
|
+
import { useNullablePickerContext } from "../useNullablePickerContext.js";
|
|
5
|
+
export const PickerFieldPrivateContext = /*#__PURE__*/React.createContext(null);
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Applies the default values to the field internal props.
|
|
9
|
+
* This is a temporary hook that will be removed during a follow up when `useField` will receive the internal props without the defaults.
|
|
10
|
+
* It is only here to allow the migration to be done in smaller steps.
|
|
11
|
+
*/
|
|
12
|
+
export function useFieldInternalPropsWithDefaults({
|
|
13
|
+
manager,
|
|
14
|
+
internalProps
|
|
15
|
+
}) {
|
|
16
|
+
const localizationContext = useLocalizationContext();
|
|
17
|
+
const pickerContext = useNullablePickerContext();
|
|
18
|
+
const fieldPrivateContext = React.useContext(PickerFieldPrivateContext);
|
|
19
|
+
const setValue = pickerContext?.setValue;
|
|
20
|
+
const handleChangeFromPicker = React.useCallback((newValue, ctx) => {
|
|
21
|
+
return setValue?.(newValue, {
|
|
22
|
+
validationError: ctx.validationError,
|
|
23
|
+
shouldClose: false
|
|
24
|
+
});
|
|
25
|
+
}, [setValue]);
|
|
26
|
+
return React.useMemo(() => {
|
|
27
|
+
let internalPropsWithDefaultsFromContext = internalProps;
|
|
28
|
+
// If one of the context is null,
|
|
29
|
+
// Then the field is used as a standalone component and the other context will be null as well.
|
|
30
|
+
if (fieldPrivateContext != null && pickerContext != null) {
|
|
31
|
+
internalPropsWithDefaultsFromContext = _extends({
|
|
32
|
+
value: pickerContext.value,
|
|
33
|
+
onChange: handleChangeFromPicker,
|
|
34
|
+
timezone: pickerContext.timezone,
|
|
35
|
+
disabled: pickerContext.disabled,
|
|
36
|
+
format: pickerContext.fieldFormat,
|
|
37
|
+
formatDensity: fieldPrivateContext.formatDensity,
|
|
38
|
+
enableAccessibleFieldDOMStructure: fieldPrivateContext.enableAccessibleFieldDOMStructure,
|
|
39
|
+
selectedSections: fieldPrivateContext.selectedSections,
|
|
40
|
+
onSelectedSectionsChange: fieldPrivateContext.onSelectedSectionsChange
|
|
41
|
+
}, internalProps);
|
|
42
|
+
}
|
|
43
|
+
return manager.internal_applyDefaultsToFieldInternalProps(_extends({}, localizationContext, {
|
|
44
|
+
internalProps: internalPropsWithDefaultsFromContext
|
|
45
|
+
}));
|
|
46
|
+
}, [manager, localizationContext, pickerContext, fieldPrivateContext, internalProps, handleChangeFromPicker]);
|
|
47
|
+
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { UseFieldInternalProps, UseFieldParams, UseFieldState, FieldParsedSelectedSections, FieldSectionsValueBoundaries, UseFieldForwardedProps } from './useField.types';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { FieldSelectedSections, PickersTimezone, InferFieldSection } from '../../../models';
|
|
3
|
+
import { PickerValidValue } from '../../models';
|
|
4
|
+
export interface UpdateSectionValueParams<TValue extends PickerValidValue> {
|
|
4
5
|
/**
|
|
5
6
|
* The section on which we want to apply the new value.
|
|
6
7
|
*/
|
|
7
|
-
activeSection:
|
|
8
|
+
activeSection: InferFieldSection<TValue>;
|
|
8
9
|
/**
|
|
9
10
|
* Value to apply to the active section.
|
|
10
11
|
*/
|
|
@@ -14,19 +15,19 @@ export interface UpdateSectionValueParams<TSection extends FieldSection> {
|
|
|
14
15
|
*/
|
|
15
16
|
shouldGoToNextSection: boolean;
|
|
16
17
|
}
|
|
17
|
-
export interface UseFieldStateResponse<TValue
|
|
18
|
-
state: UseFieldState<TValue
|
|
18
|
+
export interface UseFieldStateResponse<TValue extends PickerValidValue> {
|
|
19
|
+
state: UseFieldState<TValue>;
|
|
19
20
|
activeSectionIndex: number | null;
|
|
20
21
|
parsedSelectedSections: FieldParsedSelectedSections;
|
|
21
22
|
setSelectedSections: (sections: FieldSelectedSections) => void;
|
|
22
23
|
clearValue: () => void;
|
|
23
24
|
clearActiveSection: () => void;
|
|
24
|
-
updateSectionValue: (params: UpdateSectionValueParams<
|
|
25
|
+
updateSectionValue: (params: UpdateSectionValueParams<TValue>) => void;
|
|
25
26
|
updateValueFromValueStr: (valueStr: string) => void;
|
|
26
27
|
setTempAndroidValueStr: (tempAndroidValueStr: string | null) => void;
|
|
27
28
|
sectionsValueBoundaries: FieldSectionsValueBoundaries;
|
|
28
|
-
getSectionsFromValue: (value: TValue, fallbackSections?:
|
|
29
|
+
getSectionsFromValue: (value: TValue, fallbackSections?: InferFieldSection<TValue>[] | null) => InferFieldSection<TValue>[];
|
|
29
30
|
localizedDigits: string[];
|
|
30
31
|
timezone: PickersTimezone;
|
|
31
32
|
}
|
|
32
|
-
export declare const useFieldState: <TValue
|
|
33
|
+
export declare const useFieldState: <TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean, TForwardedProps extends UseFieldForwardedProps<TEnableAccessibleFieldDOMStructure>, TInternalProps extends UseFieldInternalProps<TValue, TEnableAccessibleFieldDOMStructure, any>>(params: UseFieldParams<TValue, TEnableAccessibleFieldDOMStructure, TForwardedProps, TInternalProps>) => UseFieldStateResponse<TValue>;
|
|
@@ -41,6 +41,7 @@ export const useFieldState = params => {
|
|
|
41
41
|
timezone: timezoneProp,
|
|
42
42
|
value: valueProp,
|
|
43
43
|
defaultValue,
|
|
44
|
+
referenceDate: referenceDateProp,
|
|
44
45
|
onChange,
|
|
45
46
|
valueManager
|
|
46
47
|
});
|
|
@@ -63,7 +64,6 @@ export const useFieldState = params => {
|
|
|
63
64
|
const stateWithoutReferenceDate = {
|
|
64
65
|
sections,
|
|
65
66
|
value: valueFromTheOutside,
|
|
66
|
-
referenceValue: valueManager.emptyValue,
|
|
67
67
|
tempValueStrAndroid: null
|
|
68
68
|
};
|
|
69
69
|
const granularity = getSectionTypeGranularity(sections);
|
|
@@ -148,7 +148,7 @@ export const useFieldState = params => {
|
|
|
148
148
|
const updateValueFromValueStr = valueStr => {
|
|
149
149
|
const parseDateStr = (dateStr, referenceDate) => {
|
|
150
150
|
const date = utils.parse(dateStr, format);
|
|
151
|
-
if (
|
|
151
|
+
if (!utils.isValid(date)) {
|
|
152
152
|
return null;
|
|
153
153
|
}
|
|
154
154
|
const sections = buildSectionsFromFormat({
|
|
@@ -199,7 +199,7 @@ export const useFieldState = params => {
|
|
|
199
199
|
* Then we merge the value of the modified sections into the reference date.
|
|
200
200
|
* This makes sure that we don't lose some information of the initial date (like the time on a date field).
|
|
201
201
|
*/
|
|
202
|
-
if (
|
|
202
|
+
if (utils.isValid(newActiveDate)) {
|
|
203
203
|
const mergedDate = mergeDateIntoReferenceDate(utils, newActiveDate, newActiveDateSections, activeDateManager.referenceDate, true);
|
|
204
204
|
values = activeDateManager.getNewValuesFromNewActiveDate(mergedDate);
|
|
205
205
|
shouldPublish = true;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { UseFieldTextField } from './useField.types';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { InferFieldSection } from '../../../models';
|
|
3
|
+
import { PickerValidValue } from '../../models';
|
|
4
|
+
type FieldSectionWithPositions<TValue extends PickerValidValue> = InferFieldSection<TValue> & {
|
|
4
5
|
/**
|
|
5
6
|
* Start index of the section in the format
|
|
6
7
|
*/
|
|
@@ -20,6 +21,6 @@ type FieldSectionWithPositions<TSection> = TSection & {
|
|
|
20
21
|
*/
|
|
21
22
|
endInInput: number;
|
|
22
23
|
};
|
|
23
|
-
export declare const addPositionPropertiesToSections: <
|
|
24
|
+
export declare const addPositionPropertiesToSections: <TValue extends PickerValidValue>(sections: InferFieldSection<TValue>[], localizedDigits: string[], isRtl: boolean) => FieldSectionWithPositions<TValue>[];
|
|
24
25
|
export declare const useFieldV6TextField: UseFieldTextField<false>;
|
|
25
26
|
export {};
|
|
@@ -35,8 +35,8 @@ export const addPositionPropertiesToSections = (sections, localizedDigits, isRtl
|
|
|
35
35
|
};
|
|
36
36
|
export const useFieldV6TextField = params => {
|
|
37
37
|
const isRtl = useRtl();
|
|
38
|
-
const focusTimeoutRef = React.useRef();
|
|
39
|
-
const selectionSyncTimeoutRef = React.useRef();
|
|
38
|
+
const focusTimeoutRef = React.useRef(undefined);
|
|
39
|
+
const selectionSyncTimeoutRef = React.useRef(undefined);
|
|
40
40
|
const {
|
|
41
41
|
forwardedProps: {
|
|
42
42
|
onFocus,
|
|
@@ -237,6 +237,9 @@ export const useFieldV6TextField = params => {
|
|
|
237
237
|
const shouldUseEventData = eventData && eventData.length > 1;
|
|
238
238
|
const valueStr = shouldUseEventData ? eventData : targetValue;
|
|
239
239
|
const cleanValueStr = cleanString(valueStr);
|
|
240
|
+
if (parsedSelectedSections === 'all') {
|
|
241
|
+
setSelectedSections(activeSectionIndex);
|
|
242
|
+
}
|
|
240
243
|
|
|
241
244
|
// If no section is selected or eventData should be used, we just try to parse the new value
|
|
242
245
|
// This line is mostly triggered by imperative code / application tests.
|
|
@@ -11,7 +11,8 @@ export const useFieldV7TextField = params => {
|
|
|
11
11
|
const {
|
|
12
12
|
internalProps: {
|
|
13
13
|
disabled,
|
|
14
|
-
readOnly = false
|
|
14
|
+
readOnly = false,
|
|
15
|
+
autoFocus = false
|
|
15
16
|
},
|
|
16
17
|
forwardedProps: {
|
|
17
18
|
sectionListRef: inSectionListRef,
|
|
@@ -20,8 +21,7 @@ export const useFieldV7TextField = params => {
|
|
|
20
21
|
onFocus,
|
|
21
22
|
onInput,
|
|
22
23
|
onPaste,
|
|
23
|
-
focused: focusedProp
|
|
24
|
-
autoFocus = false
|
|
24
|
+
focused: focusedProp
|
|
25
25
|
},
|
|
26
26
|
fieldValueManager,
|
|
27
27
|
applyCharacterEditing,
|
|
@@ -176,6 +176,9 @@ export const useFieldV7TextField = params => {
|
|
|
176
176
|
} else if (keyPressed.length > 1) {
|
|
177
177
|
updateValueFromValueStr(keyPressed);
|
|
178
178
|
} else {
|
|
179
|
+
if (parsedSelectedSections === 'all') {
|
|
180
|
+
setSelectedSections(0);
|
|
181
|
+
}
|
|
179
182
|
applyCharacterEditing({
|
|
180
183
|
keyPressed,
|
|
181
184
|
sectionIndex: 0
|
|
@@ -198,8 +201,9 @@ export const useFieldV7TextField = params => {
|
|
|
198
201
|
if (focused || !sectionListRef.current) {
|
|
199
202
|
return;
|
|
200
203
|
}
|
|
204
|
+
const activeElement = getActiveElement(document);
|
|
201
205
|
setFocused(true);
|
|
202
|
-
const isFocusInsideASection = sectionListRef.current.getSectionIndexFromDOMElement(
|
|
206
|
+
const isFocusInsideASection = sectionListRef.current.getSectionIndexFromDOMElement(activeElement) != null;
|
|
203
207
|
if (!isFocusInsideASection) {
|
|
204
208
|
setSelectedSections(sectionOrder.startIndex);
|
|
205
209
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FieldOwnerState } from '../../models';
|
|
2
|
+
import { FormProps } from '../models';
|
|
3
|
+
export declare function useFieldOwnerState(parameters: UseFieldOwnerStateParameters): FieldOwnerState;
|
|
4
|
+
export interface UseFieldOwnerStateParameters extends FormProps {
|
|
5
|
+
required?: boolean;
|
|
6
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { useRtl } from '@mui/system/RtlProvider';
|
|
4
|
+
import { usePickerPrivateContext } from "./usePickerPrivateContext.js";
|
|
5
|
+
export function useFieldOwnerState(parameters) {
|
|
6
|
+
const {
|
|
7
|
+
ownerState: pickerOwnerState
|
|
8
|
+
} = usePickerPrivateContext();
|
|
9
|
+
const isRtl = useRtl();
|
|
10
|
+
return React.useMemo(() => _extends({}, pickerOwnerState, {
|
|
11
|
+
isFieldDisabled: parameters.disabled ?? false,
|
|
12
|
+
isFieldReadOnly: parameters.readOnly ?? false,
|
|
13
|
+
isFieldRequired: parameters.required ?? false,
|
|
14
|
+
fieldDirection: isRtl ? 'rtl' : 'ltr'
|
|
15
|
+
}), [pickerOwnerState, parameters.disabled, parameters.readOnly, parameters.required, isRtl]);
|
|
16
|
+
}
|
|
@@ -7,6 +7,6 @@ import { DateOrTimeViewWithMeridiem } from '../../models';
|
|
|
7
7
|
* - MobileDateTimePicker
|
|
8
8
|
* - MobileTimePicker
|
|
9
9
|
*/
|
|
10
|
-
export declare const useMobilePicker: <TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TExternalProps extends UseMobilePickerProps<TView, TEnableAccessibleFieldDOMStructure, any, TExternalProps>>({ props,
|
|
10
|
+
export declare const useMobilePicker: <TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TExternalProps extends UseMobilePickerProps<TView, TEnableAccessibleFieldDOMStructure, any, TExternalProps>>({ props, ...pickerParams }: UseMobilePickerParams<TView, TEnableAccessibleFieldDOMStructure, TExternalProps>) => {
|
|
11
11
|
renderPicker: () => React.JSX.Element;
|
|
12
12
|
};
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["props",
|
|
3
|
+
const _excluded = ["props"],
|
|
4
|
+
_excluded2 = ["ownerState"];
|
|
4
5
|
import * as React from 'react';
|
|
5
6
|
import useSlotProps from '@mui/utils/useSlotProps';
|
|
6
7
|
import useForkRef from '@mui/utils/useForkRef';
|
|
7
8
|
import useId from '@mui/utils/useId';
|
|
8
9
|
import { PickersModalDialog } from "../../components/PickersModalDialog.js";
|
|
9
10
|
import { usePicker } from "../usePicker/index.js";
|
|
10
|
-
import { onSpaceOrEnter } from "../../utils/utils.js";
|
|
11
11
|
import { PickersLayout } from "../../../PickersLayout/index.js";
|
|
12
12
|
import { PickerProvider } from "../../components/PickerProvider.js";
|
|
13
|
+
import { PickerFieldUIContextProvider } from "../../components/PickerFieldUI.js";
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* Hook managing all the single-date mobile pickers:
|
|
@@ -20,87 +21,48 @@ import { PickerProvider } from "../../components/PickerProvider.js";
|
|
|
20
21
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
21
22
|
export const useMobilePicker = _ref => {
|
|
22
23
|
let {
|
|
23
|
-
props
|
|
24
|
-
getOpenDialogAriaText
|
|
24
|
+
props
|
|
25
25
|
} = _ref,
|
|
26
26
|
pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
27
27
|
const {
|
|
28
28
|
slots,
|
|
29
29
|
slotProps: innerSlotProps,
|
|
30
|
-
className,
|
|
31
|
-
sx,
|
|
32
|
-
format,
|
|
33
|
-
formatDensity,
|
|
34
|
-
enableAccessibleFieldDOMStructure,
|
|
35
|
-
selectedSections,
|
|
36
|
-
onSelectedSectionsChange,
|
|
37
|
-
timezone,
|
|
38
|
-
name,
|
|
39
30
|
label,
|
|
40
31
|
inputRef,
|
|
41
32
|
readOnly,
|
|
42
|
-
|
|
33
|
+
autoFocus,
|
|
43
34
|
localeText
|
|
44
35
|
} = props;
|
|
45
36
|
const fieldRef = React.useRef(null);
|
|
46
37
|
const labelId = useId();
|
|
47
38
|
const isToolbarHidden = innerSlotProps?.toolbar?.hidden ?? false;
|
|
48
39
|
const {
|
|
49
|
-
open,
|
|
50
|
-
actions,
|
|
51
|
-
layoutProps,
|
|
52
40
|
providerProps,
|
|
53
41
|
renderCurrentView,
|
|
54
|
-
fieldProps: pickerFieldProps,
|
|
55
42
|
ownerState
|
|
56
43
|
} = usePicker(_extends({}, pickerParams, {
|
|
57
44
|
props,
|
|
58
45
|
fieldRef,
|
|
59
46
|
localeText,
|
|
60
47
|
autoFocusView: true,
|
|
61
|
-
|
|
62
|
-
wrapperVariant: 'mobile'
|
|
48
|
+
variant: 'mobile'
|
|
63
49
|
}));
|
|
64
50
|
const Field = slots.field;
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}, pickerFieldProps, {
|
|
79
|
-
// onChange and value
|
|
80
|
-
|
|
81
|
-
// Forwarded props
|
|
82
|
-
className,
|
|
83
|
-
sx,
|
|
84
|
-
label,
|
|
85
|
-
name
|
|
86
|
-
}, isToolbarHidden && {
|
|
87
|
-
id: labelId
|
|
88
|
-
}, !(disabled || readOnly) && {
|
|
89
|
-
onClick: actions.onOpen,
|
|
90
|
-
onKeyDown: onSpaceOrEnter(actions.onOpen)
|
|
91
|
-
}, !!inputRef && {
|
|
92
|
-
inputRef
|
|
51
|
+
const _useSlotProps = useSlotProps({
|
|
52
|
+
elementType: Field,
|
|
53
|
+
externalSlotProps: innerSlotProps?.field,
|
|
54
|
+
additionalProps: _extends({
|
|
55
|
+
// Internal props
|
|
56
|
+
readOnly,
|
|
57
|
+
autoFocus: autoFocus && !props.open,
|
|
58
|
+
// Forwarded props
|
|
59
|
+
focused: providerProps.contextValue.open ? true : undefined
|
|
60
|
+
}, isToolbarHidden && {
|
|
61
|
+
id: labelId
|
|
62
|
+
}),
|
|
63
|
+
ownerState
|
|
93
64
|
}),
|
|
94
|
-
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
// TODO: Move to `useSlotProps` when https://github.com/mui/material-ui/pull/35088 will be merged
|
|
98
|
-
fieldProps.inputProps = _extends({}, fieldProps.inputProps, {
|
|
99
|
-
'aria-label': getOpenDialogAriaText(pickerFieldProps.value)
|
|
100
|
-
});
|
|
101
|
-
const slotsForField = _extends({
|
|
102
|
-
textField: slots.textField
|
|
103
|
-
}, fieldProps.slots);
|
|
65
|
+
fieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
104
66
|
const Layout = slots.layout ?? PickersLayout;
|
|
105
67
|
let labelledById = labelId;
|
|
106
68
|
if (isToolbarHidden) {
|
|
@@ -118,22 +80,26 @@ export const useMobilePicker = _ref => {
|
|
|
118
80
|
'aria-labelledby': labelledById
|
|
119
81
|
}, innerSlotProps?.mobilePaper)
|
|
120
82
|
});
|
|
83
|
+
|
|
84
|
+
// TODO: This `as any` will go away once the field ref is handled by the context.
|
|
121
85
|
const handleFieldRef = useForkRef(fieldRef, fieldProps.unstableFieldRef);
|
|
122
|
-
const renderPicker = () => /*#__PURE__*/
|
|
123
|
-
children:
|
|
124
|
-
slots: slotsForField,
|
|
125
|
-
slotProps: slotProps,
|
|
126
|
-
unstableFieldRef: handleFieldRef
|
|
127
|
-
})), /*#__PURE__*/_jsx(PickersModalDialog, _extends({}, actions, {
|
|
128
|
-
open: open,
|
|
86
|
+
const renderPicker = () => /*#__PURE__*/_jsx(PickerProvider, _extends({}, providerProps, {
|
|
87
|
+
children: /*#__PURE__*/_jsxs(PickerFieldUIContextProvider, {
|
|
129
88
|
slots: slots,
|
|
130
89
|
slotProps: slotProps,
|
|
131
|
-
|
|
90
|
+
inputRef: inputRef,
|
|
91
|
+
children: [/*#__PURE__*/_jsx(Field, _extends({}, fieldProps, {
|
|
92
|
+
unstableFieldRef: handleFieldRef
|
|
93
|
+
})), /*#__PURE__*/_jsx(PickersModalDialog, {
|
|
132
94
|
slots: slots,
|
|
133
95
|
slotProps: slotProps,
|
|
134
|
-
children:
|
|
135
|
-
|
|
136
|
-
|
|
96
|
+
children: /*#__PURE__*/_jsx(Layout, _extends({}, slotProps?.layout, {
|
|
97
|
+
slots: slots,
|
|
98
|
+
slotProps: slotProps,
|
|
99
|
+
children: renderCurrentView()
|
|
100
|
+
}))
|
|
101
|
+
})]
|
|
102
|
+
})
|
|
137
103
|
}));
|
|
138
104
|
return {
|
|
139
105
|
renderPicker
|
|
@@ -1,47 +1,40 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import TextField from '@mui/material/TextField';
|
|
3
|
-
import { SlotComponentProps } from '@mui/utils';
|
|
4
2
|
import { MakeRequired, SlotComponentPropsFromProps } from '@mui/x-internals/types';
|
|
5
|
-
import {
|
|
3
|
+
import { BasePickerProps } from '../../models/props/basePickerProps';
|
|
6
4
|
import { PickersModalDialogSlots, PickersModalDialogSlotProps } from '../../components/PickersModalDialog';
|
|
7
5
|
import { UsePickerParams } from '../usePicker';
|
|
8
|
-
import {
|
|
6
|
+
import { PickerFieldSlotProps, PickerOwnerState } from '../../../models';
|
|
9
7
|
import { ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps, PickersLayoutSlotProps } from '../../../PickersLayout/PickersLayout.types';
|
|
10
8
|
import { UsePickerValueNonStaticProps } from '../usePicker/usePickerValue.types';
|
|
11
|
-
import {
|
|
12
|
-
import { DateOrTimeViewWithMeridiem } from '../../models';
|
|
13
|
-
|
|
9
|
+
import { UsePickerViewsProps } from '../usePicker/usePickerViews';
|
|
10
|
+
import { DateOrTimeViewWithMeridiem, PickerValue } from '../../models';
|
|
11
|
+
import { UsePickerProviderNonStaticProps } from '../usePicker/usePickerProvider';
|
|
12
|
+
import { PickerFieldUISlotsFromContext, PickerFieldUISlotPropsFromContext } from '../../components/PickerFieldUI';
|
|
13
|
+
export interface UseMobilePickerSlots extends PickersModalDialogSlots, ExportedPickersLayoutSlots<PickerValue>, PickerFieldUISlotsFromContext {
|
|
14
14
|
/**
|
|
15
15
|
* Component used to enter the date with the keyboard.
|
|
16
16
|
*/
|
|
17
17
|
field: React.ElementType;
|
|
18
|
-
/**
|
|
19
|
-
* Form control with an input to render the value inside the default field.
|
|
20
|
-
* @default TextField from '@mui/material' or PickersTextField if `enableAccessibleFieldDOMStructure` is `true`.
|
|
21
|
-
*/
|
|
22
|
-
textField?: React.ElementType;
|
|
23
18
|
}
|
|
24
|
-
export interface ExportedUseMobilePickerSlotProps<
|
|
25
|
-
field?: SlotComponentPropsFromProps<PickerFieldSlotProps<
|
|
26
|
-
textField?: SlotComponentProps<typeof TextField, {}, Record<string, any>>;
|
|
19
|
+
export interface ExportedUseMobilePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends PickersModalDialogSlotProps, ExportedPickersLayoutSlotProps<PickerValue>, PickerFieldUISlotPropsFromContext {
|
|
20
|
+
field?: SlotComponentPropsFromProps<PickerFieldSlotProps<PickerValue, TEnableAccessibleFieldDOMStructure>, {}, PickerOwnerState>;
|
|
27
21
|
}
|
|
28
|
-
export interface UseMobilePickerSlotProps<
|
|
22
|
+
export interface UseMobilePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends ExportedUseMobilePickerSlotProps<TEnableAccessibleFieldDOMStructure>, Pick<PickersLayoutSlotProps<PickerValue>, 'toolbar'> {
|
|
29
23
|
}
|
|
30
|
-
export interface MobileOnlyPickerProps extends
|
|
24
|
+
export interface MobileOnlyPickerProps extends UsePickerValueNonStaticProps, UsePickerProviderNonStaticProps {
|
|
31
25
|
}
|
|
32
|
-
export interface UseMobilePickerProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError, TExternalProps extends UsePickerViewsProps<any, TView, any
|
|
26
|
+
export interface UseMobilePickerProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError, TExternalProps extends UsePickerViewsProps<any, TView, any>> extends BasePickerProps<PickerValue, TView, TError, TExternalProps>, MakeRequired<MobileOnlyPickerProps, 'format'> {
|
|
33
27
|
/**
|
|
34
28
|
* Overridable component slots.
|
|
35
29
|
* @default {}
|
|
36
30
|
*/
|
|
37
|
-
slots: UseMobilePickerSlots
|
|
31
|
+
slots: UseMobilePickerSlots;
|
|
38
32
|
/**
|
|
39
33
|
* The props used for each component slot.
|
|
40
34
|
* @default {}
|
|
41
35
|
*/
|
|
42
|
-
slotProps?: UseMobilePickerSlotProps<
|
|
36
|
+
slotProps?: UseMobilePickerSlotProps<TEnableAccessibleFieldDOMStructure>;
|
|
43
37
|
}
|
|
44
|
-
export interface UseMobilePickerParams<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TExternalProps extends UseMobilePickerProps<TView, TEnableAccessibleFieldDOMStructure, any, TExternalProps>> extends Pick<UsePickerParams<
|
|
38
|
+
export interface UseMobilePickerParams<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TExternalProps extends UseMobilePickerProps<TView, TEnableAccessibleFieldDOMStructure, any, TExternalProps>> extends Pick<UsePickerParams<PickerValue, TView, TExternalProps>, 'valueManager' | 'valueType' | 'validator' | 'ref'> {
|
|
45
39
|
props: TExternalProps;
|
|
46
|
-
getOpenDialogAriaText: (date: PickerValidDate | null) => string;
|
|
47
40
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { PickerContext } from "../../hooks/usePickerContext.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Returns the context passed by the picker that wraps the current component.
|
|
8
|
+
* If the context is not found, returns `null`.
|
|
9
|
+
*/
|
|
10
|
+
export const useNullablePickerContext = () => React.useContext(PickerContext);
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
1
2
|
export interface OpenStateProps {
|
|
2
3
|
open?: boolean;
|
|
3
4
|
onOpen?: () => void;
|
|
4
5
|
onClose?: () => void;
|
|
5
6
|
}
|
|
6
7
|
export declare const useOpenState: ({ open, onOpen, onClose }: OpenStateProps) => {
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
open: boolean;
|
|
9
|
+
setOpen: (action: React.SetStateAction<boolean>) => void;
|
|
9
10
|
};
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import useEventCallback from '@mui/utils/useEventCallback';
|
|
2
3
|
export const useOpenState = ({
|
|
3
4
|
open,
|
|
4
5
|
onOpen,
|
|
5
6
|
onClose
|
|
6
7
|
}) => {
|
|
7
8
|
const isControllingOpenProp = React.useRef(typeof open === 'boolean').current;
|
|
8
|
-
const [openState,
|
|
9
|
+
const [openState, setOpenState] = React.useState(false);
|
|
9
10
|
|
|
10
11
|
// It is required to update inner state in useEffect in order to avoid situation when
|
|
11
12
|
// Our component is not mounted yet, but `open` state is set to `true` (for example initially opened)
|
|
@@ -14,22 +15,23 @@ export const useOpenState = ({
|
|
|
14
15
|
if (typeof open !== 'boolean') {
|
|
15
16
|
throw new Error('You must not mix controlling and uncontrolled mode for `open` prop');
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
+
setOpenState(open);
|
|
18
19
|
}
|
|
19
20
|
}, [isControllingOpenProp, open]);
|
|
20
|
-
const
|
|
21
|
+
const setOpen = useEventCallback(action => {
|
|
22
|
+
const newOpen = typeof action === 'function' ? action(openState) : action;
|
|
21
23
|
if (!isControllingOpenProp) {
|
|
22
|
-
|
|
24
|
+
setOpenState(newOpen);
|
|
23
25
|
}
|
|
24
|
-
if (
|
|
26
|
+
if (newOpen && onOpen) {
|
|
25
27
|
onOpen();
|
|
26
28
|
}
|
|
27
|
-
if (!
|
|
29
|
+
if (!newOpen && onClose) {
|
|
28
30
|
onClose();
|
|
29
31
|
}
|
|
30
|
-
}
|
|
32
|
+
});
|
|
31
33
|
return {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
open: openState,
|
|
35
|
+
setOpen
|
|
34
36
|
};
|
|
35
37
|
};
|