@mui/x-date-pickers 6.2.0 → 6.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AdapterDateFns/AdapterDateFns.d.ts +109 -0
- package/AdapterDateFns/AdapterDateFns.js +598 -0
- package/AdapterDateFns/index.d.ts +1 -13
- package/AdapterDateFns/index.js +1 -149
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +109 -0
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +610 -0
- package/AdapterDateFnsJalali/index.d.ts +1 -13
- package/AdapterDateFnsJalali/index.js +1 -149
- package/AdapterDayjs/AdapterDayjs.d.ts +53 -53
- package/AdapterDayjs/AdapterDayjs.js +146 -111
- package/AdapterLuxon/AdapterLuxon.d.ts +108 -0
- package/AdapterLuxon/AdapterLuxon.js +513 -0
- package/AdapterLuxon/index.d.ts +1 -14
- package/AdapterLuxon/index.js +1 -111
- package/AdapterMoment/AdapterMoment.d.ts +110 -0
- package/AdapterMoment/AdapterMoment.js +416 -0
- package/AdapterMoment/index.d.ts +1 -21
- package/AdapterMoment/index.js +1 -99
- package/AdapterMomentHijri/AdapterMomentHijri.d.ts +67 -0
- package/AdapterMomentHijri/AdapterMomentHijri.js +269 -0
- package/AdapterMomentHijri/index.d.ts +1 -18
- package/AdapterMomentHijri/index.js +1 -74
- package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +74 -0
- package/AdapterMomentJalaali/AdapterMomentJalaali.js +276 -0
- package/AdapterMomentJalaali/index.d.ts +1 -22
- package/AdapterMomentJalaali/index.js +1 -87
- package/CHANGELOG.md +118 -1
- package/DateCalendar/DateCalendar.types.d.ts +1 -1
- package/DateCalendar/DayCalendar.d.ts +1 -1
- package/DateCalendar/DayCalendar.js +1 -1
- package/DateCalendar/PickersCalendarHeader.d.ts +1 -1
- package/DateCalendar/useCalendarState.js +1 -1
- package/DateCalendar/useIsDateDisabled.d.ts +2 -0
- package/DateCalendar/useIsDateDisabled.js +27 -0
- package/DateField/DateField.js +20 -3
- package/DateField/DateField.types.d.ts +2 -2
- package/DateField/useDateField.js +4 -2
- package/DatePicker/DatePickerToolbar.js +1 -1
- package/DateTimeField/DateTimeField.js +21 -3
- package/DateTimeField/DateTimeField.types.d.ts +3 -2
- package/DateTimeField/useDateTimeField.js +4 -2
- package/DateTimePicker/DateTimePicker.js +1 -0
- package/DateTimePicker/shared.d.ts +6 -5
- package/DesktopDatePicker/DesktopDatePicker.js +2 -1
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +3 -1
- package/DesktopTimePicker/DesktopTimePicker.js +51 -8
- package/DesktopTimePicker/DesktopTimePicker.types.d.ts +12 -4
- package/DigitalClock/DigitalClock.d.ts +7 -0
- package/DigitalClock/DigitalClock.js +397 -0
- package/DigitalClock/DigitalClock.types.d.ts +47 -0
- package/DigitalClock/digitalClockClasses.d.ts +11 -0
- package/DigitalClock/digitalClockClasses.js +6 -0
- package/DigitalClock/index.d.ts +4 -0
- package/DigitalClock/index.js +2 -0
- package/DigitalClock/package.json +6 -0
- package/LocalizationProvider/LocalizationProvider.d.ts +1 -1
- package/LocalizationProvider/LocalizationProvider.js +1 -1
- package/MobileDatePicker/MobileDatePicker.js +2 -1
- package/MobileDateTimePicker/MobileDateTimePicker.js +3 -1
- package/MobileTimePicker/MobileTimePicker.js +3 -1
- package/MobileTimePicker/MobileTimePicker.types.d.ts +8 -7
- package/MonthCalendar/MonthCalendar.types.d.ts +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.d.ts +7 -0
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +479 -0
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +57 -0
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +22 -0
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +65 -0
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +28 -0
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +151 -0
- package/MultiSectionDigitalClock/index.d.ts +7 -0
- package/MultiSectionDigitalClock/index.js +3 -0
- package/MultiSectionDigitalClock/multiSectionDigitalClockClasses.d.ts +7 -0
- package/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js +6 -0
- package/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.d.ts +9 -0
- package/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +6 -0
- package/MultiSectionDigitalClock/package.json +6 -0
- package/PickersDay/PickersDay.js +4 -1
- package/PickersLayout/PickersLayout.d.ts +2 -2
- package/PickersLayout/PickersLayout.js +2 -2
- package/PickersLayout/PickersLayout.types.d.ts +7 -8
- package/PickersLayout/usePickerLayout.d.ts +2 -2
- package/README.md +0 -9
- package/StaticDatePicker/StaticDatePicker.js +1 -0
- package/StaticDateTimePicker/StaticDateTimePicker.js +5 -3
- package/StaticTimePicker/StaticTimePicker.js +5 -3
- package/StaticTimePicker/StaticTimePicker.types.d.ts +1 -1
- package/TimeClock/TimeClock.js +35 -12
- package/TimeClock/TimeClock.types.d.ts +4 -67
- package/TimeField/TimeField.js +21 -3
- package/TimeField/TimeField.types.d.ts +3 -2
- package/TimeField/useTimeField.js +4 -2
- package/TimePicker/TimePicker.js +25 -2
- package/TimePicker/TimePicker.types.d.ts +4 -3
- package/TimePicker/TimePickerToolbar.d.ts +2 -2
- package/TimePicker/TimePickerToolbar.js +2 -2
- package/TimePicker/shared.d.ts +9 -7
- package/YearCalendar/YearCalendar.types.d.ts +1 -1
- package/dateViewRenderers/dateViewRenderers.d.ts +2 -2
- package/index.d.ts +2 -0
- package/index.js +4 -1
- package/internals/components/PickersToolbar.d.ts +3 -3
- package/internals/constants/dimensions.d.ts +1 -0
- package/internals/constants/dimensions.js +2 -1
- package/internals/demo/DemoContainer.js +4 -1
- package/internals/hooks/date-helpers-hooks.d.ts +3 -2
- package/internals/hooks/date-helpers-hooks.js +3 -3
- package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +2 -2
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +15 -15
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +7 -6
- package/internals/hooks/useField/useField.js +12 -11
- package/internals/hooks/useField/useField.types.d.ts +19 -5
- package/internals/hooks/useField/useField.utils.d.ts +9 -6
- package/internals/hooks/useField/useField.utils.js +60 -34
- package/internals/hooks/useField/useFieldCharacterEditing.js +18 -10
- package/internals/hooks/useField/useFieldState.js +5 -4
- package/internals/hooks/useIsLandscape.d.ts +2 -2
- package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +2 -2
- package/internals/hooks/useMobilePicker/useMobilePicker.js +10 -10
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +7 -6
- package/internals/hooks/usePicker/usePicker.d.ts +4 -3
- package/internals/hooks/usePicker/usePicker.js +2 -0
- package/internals/hooks/usePicker/usePicker.types.d.ts +6 -5
- package/internals/hooks/usePicker/usePickerLayoutProps.d.ts +5 -6
- package/internals/hooks/usePicker/usePickerValue.d.ts +2 -2
- package/internals/hooks/usePicker/usePickerValue.js +10 -12
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +5 -3
- package/internals/hooks/usePicker/usePickerViews.d.ts +11 -11
- package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +2 -2
- package/internals/hooks/useStaticPicker/useStaticPicker.js +10 -10
- package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +6 -5
- package/internals/hooks/{validation/useValidation.d.ts → useValidation.d.ts} +1 -1
- package/internals/hooks/{validation/useValidation.js → useValidation.js} +1 -1
- package/internals/hooks/useViews.d.ts +8 -6
- package/internals/hooks/useViews.js +29 -13
- package/internals/index.d.ts +7 -7
- package/internals/index.js +5 -5
- package/internals/models/common.d.ts +3 -0
- package/internals/models/index.d.ts +1 -0
- package/internals/models/index.js +2 -1
- package/internals/models/props/basePickerProps.d.ts +3 -3
- package/internals/models/props/clock.d.ts +88 -0
- package/internals/models/props/tabs.d.ts +2 -2
- package/internals/models/props/toolbar.d.ts +3 -3
- package/internals/{hooks/validation/models.d.ts → models/validation.d.ts} +2 -5
- package/internals/models/validation.js +1 -0
- package/internals/utils/time-utils.d.ts +7 -7
- package/internals/utils/time-utils.js +2 -1
- package/internals/{hooks/validation/useDateValidation.d.ts → utils/validation/validateDate.d.ts} +2 -3
- package/internals/{hooks/validation/useDateValidation.js → utils/validation/validateDate.js} +1 -27
- package/internals/{hooks/validation/useDateTimeValidation.d.ts → utils/validation/validateDateTime.d.ts} +3 -3
- package/{modern/internals/hooks/validation/useDateTimeValidation.js → internals/utils/validation/validateDateTime.js} +2 -2
- package/internals/{hooks/validation/useTimeValidation.d.ts → utils/validation/validateTime.d.ts} +2 -2
- package/{modern/internals/hooks/validation/useTimeValidation.js → internals/utils/validation/validateTime.js} +1 -1
- package/internals/utils/valueManagers.js +1 -1
- package/internals/utils/views.d.ts +3 -2
- package/legacy/AdapterDateFns/AdapterDateFns.js +606 -0
- package/legacy/AdapterDateFns/index.js +1 -165
- package/legacy/AdapterDateFnsJalali/AdapterDateFnsJalali.js +620 -0
- package/legacy/AdapterDateFnsJalali/index.js +1 -165
- package/legacy/AdapterDayjs/AdapterDayjs.js +146 -111
- package/legacy/AdapterLuxon/AdapterLuxon.js +524 -0
- package/legacy/AdapterLuxon/index.js +1 -127
- package/legacy/AdapterMoment/AdapterMoment.js +422 -0
- package/legacy/AdapterMoment/index.js +1 -115
- package/legacy/AdapterMomentHijri/AdapterMomentHijri.js +284 -0
- package/legacy/AdapterMomentHijri/index.js +1 -90
- package/legacy/AdapterMomentJalaali/AdapterMomentJalaali.js +291 -0
- package/legacy/AdapterMomentJalaali/index.js +1 -103
- package/legacy/DateCalendar/DayCalendar.js +1 -1
- package/legacy/DateCalendar/useCalendarState.js +1 -1
- package/legacy/DateCalendar/useIsDateDisabled.js +28 -0
- package/legacy/DateField/DateField.js +20 -3
- package/legacy/DateField/useDateField.js +4 -2
- package/legacy/DatePicker/DatePickerToolbar.js +1 -1
- package/legacy/DateTimeField/DateTimeField.js +21 -3
- package/legacy/DateTimeField/useDateTimeField.js +4 -2
- package/legacy/DateTimePicker/DateTimePicker.js +1 -0
- package/legacy/DesktopDatePicker/DesktopDatePicker.js +2 -1
- package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +3 -1
- package/legacy/DesktopTimePicker/DesktopTimePicker.js +52 -8
- package/legacy/DigitalClock/DigitalClock.js +419 -0
- package/legacy/DigitalClock/DigitalClock.types.js +1 -0
- package/legacy/DigitalClock/digitalClockClasses.js +6 -0
- package/legacy/DigitalClock/index.js +2 -0
- package/legacy/LocalizationProvider/LocalizationProvider.js +1 -1
- package/legacy/MobileDatePicker/MobileDatePicker.js +2 -1
- package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +3 -1
- package/legacy/MobileTimePicker/MobileTimePicker.js +3 -1
- package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.js +508 -0
- package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.types.js +1 -0
- package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +65 -0
- package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +157 -0
- package/legacy/MultiSectionDigitalClock/index.js +3 -0
- package/legacy/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js +6 -0
- package/legacy/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +6 -0
- package/legacy/PickersDay/PickersDay.js +3 -1
- package/legacy/PickersLayout/PickersLayout.js +2 -2
- package/legacy/StaticDatePicker/StaticDatePicker.js +1 -0
- package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +5 -3
- package/legacy/StaticTimePicker/StaticTimePicker.js +5 -3
- package/legacy/TimeClock/TimeClock.js +35 -12
- package/legacy/TimeField/TimeField.js +21 -3
- package/legacy/TimeField/useTimeField.js +4 -2
- package/legacy/TimePicker/TimePicker.js +25 -2
- package/legacy/TimePicker/TimePickerToolbar.js +2 -2
- package/legacy/index.js +4 -1
- package/legacy/internals/constants/dimensions.js +2 -1
- package/legacy/internals/demo/DemoContainer.js +4 -1
- package/legacy/internals/hooks/date-helpers-hooks.js +3 -3
- package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +10 -11
- package/legacy/internals/hooks/useField/useField.js +11 -10
- package/legacy/internals/hooks/useField/useField.utils.js +58 -34
- package/legacy/internals/hooks/useField/useFieldCharacterEditing.js +18 -10
- package/legacy/internals/hooks/useField/useFieldState.js +7 -5
- package/legacy/internals/hooks/useMobilePicker/useMobilePicker.js +5 -6
- package/legacy/internals/hooks/usePicker/usePicker.js +2 -0
- package/legacy/internals/hooks/usePicker/usePickerValue.js +10 -14
- package/legacy/internals/hooks/useStaticPicker/useStaticPicker.js +7 -8
- package/legacy/internals/hooks/{validation/useValidation.js → useValidation.js} +1 -1
- package/legacy/internals/hooks/useViews.js +30 -14
- package/legacy/internals/index.js +5 -5
- package/legacy/internals/models/index.js +2 -1
- package/legacy/internals/models/props/clock.js +1 -0
- package/legacy/internals/models/validation.js +1 -0
- package/legacy/internals/utils/time-utils.js +2 -1
- package/legacy/internals/{hooks/validation/useDateValidation.js → utils/validation/validateDate.js} +1 -28
- package/legacy/internals/{hooks/validation/useDateTimeValidation.js → utils/validation/validateDateTime.js} +2 -2
- package/legacy/internals/{hooks/validation/useTimeValidation.js → utils/validation/validateTime.js} +1 -1
- package/legacy/internals/utils/valueManagers.js +2 -2
- package/legacy/locales/beBY.js +5 -3
- package/legacy/locales/caES.js +6 -1
- package/legacy/locales/csCZ.js +6 -4
- package/legacy/locales/daDK.js +6 -2
- package/legacy/locales/deDE.js +6 -2
- package/legacy/locales/enUS.js +4 -0
- package/legacy/locales/esES.js +6 -1
- package/legacy/locales/faIR.js +11 -1
- package/legacy/locales/fiFI.js +6 -1
- package/legacy/locales/frFR.js +6 -1
- package/legacy/locales/heIL.js +6 -1
- package/legacy/locales/huHU.js +6 -2
- package/legacy/locales/index.js +1 -0
- package/legacy/locales/isIS.js +11 -1
- package/legacy/locales/itIT.js +6 -1
- package/legacy/locales/jaJP.js +6 -2
- package/legacy/locales/koKR.js +6 -1
- package/legacy/locales/kzKZ.js +6 -2
- package/legacy/locales/nbNO.js +11 -1
- package/legacy/locales/nlNL.js +11 -1
- package/legacy/locales/plPL.js +11 -1
- package/legacy/locales/ptBR.js +11 -1
- package/legacy/locales/ruRU.js +6 -2
- package/legacy/locales/svSE.js +11 -1
- package/legacy/locales/trTR.js +22 -7
- package/legacy/locales/ukUA.js +11 -1
- package/legacy/locales/urPK.js +11 -1
- package/legacy/locales/zhCN.js +44 -23
- package/legacy/models/common.js +1 -0
- package/legacy/models/index.js +2 -1
- package/legacy/tests/describeAdapters/describeAdapters.js +1 -3
- package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.js +3 -1
- package/legacy/tests/describeGregorianAdapter/testCalculations.js +29 -26
- package/legacy/tests/describeGregorianAdapter/testLocalization.js +2 -2
- package/legacy/tests/describeHijriAdapter/describeHijriAdapter.js +23 -0
- package/legacy/tests/describeHijriAdapter/describeHijriAdapter.types.js +1 -0
- package/legacy/tests/describeHijriAdapter/index.js +1 -0
- package/legacy/tests/describeHijriAdapter/testCalculations.js +94 -0
- package/legacy/tests/describeHijriAdapter/testLocalization.js +12 -0
- package/legacy/tests/describeJalaliAdapter/describeJalaliAdapter.js +25 -0
- package/legacy/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +1 -0
- package/legacy/tests/describeJalaliAdapter/index.js +1 -0
- package/legacy/tests/describeJalaliAdapter/testCalculations.js +82 -0
- package/legacy/tests/describeJalaliAdapter/testLocalization.js +12 -0
- package/legacy/tests/describePicker/describePicker.js +159 -0
- package/legacy/tests/describePicker/describePicker.types.js +1 -0
- package/legacy/tests/describePicker/index.js +1 -0
- package/legacy/tests/describeValue/describeValue.js +1 -1
- package/legacy/tests/describeValue/testControlledUnControlled.js +8 -9
- package/legacy/tests/describeValue/testPickerActionBar.js +46 -13
- package/legacy/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -5
- package/legacy/timeViewRenderers/index.js +1 -1
- package/legacy/timeViewRenderers/timeViewRenderers.js +132 -4
- package/locales/beBY.d.ts +4 -2
- package/locales/beBY.js +3 -3
- package/locales/caES.d.ts +4 -2
- package/locales/caES.js +4 -1
- package/locales/csCZ.d.ts +4 -2
- package/locales/csCZ.js +4 -4
- package/locales/daDK.d.ts +4 -2
- package/locales/daDK.js +4 -2
- package/locales/deDE.d.ts +4 -2
- package/locales/deDE.js +4 -2
- package/locales/enUS.d.ts +3 -2
- package/locales/enUS.js +2 -0
- package/locales/esES.d.ts +4 -2
- package/locales/esES.js +4 -1
- package/locales/faIR.d.ts +4 -2
- package/locales/faIR.js +9 -1
- package/locales/fiFI.d.ts +4 -2
- package/locales/fiFI.js +4 -1
- package/locales/frFR.d.ts +4 -2
- package/locales/frFR.js +4 -1
- package/locales/heIL.d.ts +4 -2
- package/locales/heIL.js +4 -1
- package/locales/huHU.d.ts +4 -2
- package/locales/huHU.js +4 -2
- package/locales/index.d.ts +1 -0
- package/locales/index.js +1 -0
- package/locales/isIS.d.ts +4 -2
- package/locales/isIS.js +9 -1
- package/locales/itIT.d.ts +4 -2
- package/locales/itIT.js +4 -1
- package/locales/jaJP.d.ts +4 -2
- package/locales/jaJP.js +4 -2
- package/locales/koKR.d.ts +4 -2
- package/locales/koKR.js +4 -1
- package/locales/kzKZ.d.ts +4 -2
- package/locales/kzKZ.js +4 -2
- package/locales/nbNO.d.ts +4 -2
- package/locales/nbNO.js +9 -1
- package/locales/nlNL.d.ts +8 -7
- package/locales/nlNL.js +9 -1
- package/locales/plPL.d.ts +4 -2
- package/locales/plPL.js +9 -1
- package/locales/ptBR.d.ts +4 -2
- package/locales/ptBR.js +9 -1
- package/locales/ruRU.d.ts +4 -2
- package/locales/ruRU.js +4 -2
- package/locales/svSE.d.ts +4 -2
- package/locales/svSE.js +9 -1
- package/locales/trTR.d.ts +4 -2
- package/locales/trTR.js +14 -7
- package/locales/ukUA.d.ts +4 -2
- package/locales/ukUA.js +9 -1
- package/locales/urPK.d.ts +4 -2
- package/locales/urPK.js +9 -1
- package/locales/utils/getPickersLocalization.d.ts +3 -2
- package/locales/utils/pickersLocaleTextApi.d.ts +5 -3
- package/locales/zhCN.d.ts +4 -2
- package/locales/zhCN.js +22 -23
- package/models/adapters.d.ts +7 -6
- package/models/common.d.ts +5 -0
- package/models/common.js +1 -0
- package/models/fields.d.ts +20 -2
- package/models/index.d.ts +1 -0
- package/models/index.js +2 -1
- package/modern/AdapterDateFns/AdapterDateFns.js +597 -0
- package/modern/AdapterDateFns/index.js +1 -149
- package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +608 -0
- package/modern/AdapterDateFnsJalali/index.js +1 -148
- package/modern/AdapterDayjs/AdapterDayjs.js +146 -111
- package/modern/AdapterLuxon/AdapterLuxon.js +512 -0
- package/modern/AdapterLuxon/index.js +1 -111
- package/modern/AdapterMoment/AdapterMoment.js +416 -0
- package/modern/AdapterMoment/index.js +1 -99
- package/modern/AdapterMomentHijri/AdapterMomentHijri.js +269 -0
- package/modern/AdapterMomentHijri/index.js +1 -74
- package/modern/AdapterMomentJalaali/AdapterMomentJalaali.js +276 -0
- package/modern/AdapterMomentJalaali/index.js +1 -87
- package/modern/DateCalendar/DayCalendar.js +1 -1
- package/modern/DateCalendar/useCalendarState.js +1 -1
- package/modern/DateCalendar/useIsDateDisabled.js +27 -0
- package/modern/DateField/DateField.js +20 -3
- package/modern/DateField/useDateField.js +4 -2
- package/modern/DatePicker/DatePickerToolbar.js +1 -1
- package/modern/DateTimeField/DateTimeField.js +21 -3
- package/modern/DateTimeField/useDateTimeField.js +4 -2
- package/modern/DateTimePicker/DateTimePicker.js +1 -0
- package/modern/DesktopDatePicker/DesktopDatePicker.js +2 -1
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +3 -1
- package/modern/DesktopTimePicker/DesktopTimePicker.js +50 -7
- package/modern/DigitalClock/DigitalClock.js +396 -0
- package/modern/DigitalClock/DigitalClock.types.js +1 -0
- package/modern/DigitalClock/digitalClockClasses.js +6 -0
- package/modern/DigitalClock/index.js +2 -0
- package/modern/LocalizationProvider/LocalizationProvider.js +1 -1
- package/modern/MobileDatePicker/MobileDatePicker.js +2 -1
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +3 -1
- package/modern/MobileTimePicker/MobileTimePicker.js +3 -1
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +479 -0
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.types.js +1 -0
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +65 -0
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +149 -0
- package/modern/MultiSectionDigitalClock/index.js +3 -0
- package/modern/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js +6 -0
- package/modern/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +6 -0
- package/modern/PickersDay/PickersDay.js +4 -1
- package/modern/PickersLayout/PickersLayout.js +2 -2
- package/modern/StaticDatePicker/StaticDatePicker.js +1 -0
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +5 -3
- package/modern/StaticTimePicker/StaticTimePicker.js +5 -3
- package/modern/TimeClock/TimeClock.js +35 -12
- package/modern/TimeField/TimeField.js +21 -3
- package/modern/TimeField/useTimeField.js +4 -2
- package/modern/TimePicker/TimePicker.js +25 -2
- package/modern/TimePicker/TimePickerToolbar.js +2 -2
- package/modern/index.js +4 -1
- package/modern/internals/constants/dimensions.js +2 -1
- package/modern/internals/demo/DemoContainer.js +4 -1
- package/modern/internals/hooks/date-helpers-hooks.js +3 -3
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +15 -15
- package/modern/internals/hooks/useField/useField.js +12 -11
- package/modern/internals/hooks/useField/useField.utils.js +60 -34
- package/modern/internals/hooks/useField/useFieldCharacterEditing.js +18 -10
- package/modern/internals/hooks/useField/useFieldState.js +5 -4
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +10 -10
- package/modern/internals/hooks/usePicker/usePicker.js +2 -0
- package/modern/internals/hooks/usePicker/usePickerValue.js +10 -12
- package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +10 -10
- package/modern/internals/hooks/{validation/useValidation.js → useValidation.js} +1 -1
- package/modern/internals/hooks/useViews.js +29 -13
- package/modern/internals/index.js +5 -5
- package/modern/internals/models/index.js +2 -1
- package/modern/internals/models/props/clock.js +1 -0
- package/modern/internals/models/validation.js +1 -0
- package/modern/internals/utils/time-utils.js +2 -1
- package/modern/internals/{hooks/validation/useDateValidation.js → utils/validation/validateDate.js} +1 -27
- package/{internals/hooks/validation/useDateTimeValidation.js → modern/internals/utils/validation/validateDateTime.js} +2 -2
- package/{internals/hooks/validation/useTimeValidation.js → modern/internals/utils/validation/validateTime.js} +1 -1
- package/modern/internals/utils/valueManagers.js +1 -1
- package/modern/locales/beBY.js +3 -3
- package/modern/locales/caES.js +4 -1
- package/modern/locales/csCZ.js +4 -4
- package/modern/locales/daDK.js +4 -2
- package/modern/locales/deDE.js +4 -2
- package/modern/locales/enUS.js +2 -0
- package/modern/locales/esES.js +4 -1
- package/modern/locales/faIR.js +9 -1
- package/modern/locales/fiFI.js +4 -1
- package/modern/locales/frFR.js +4 -1
- package/modern/locales/heIL.js +4 -1
- package/modern/locales/huHU.js +4 -2
- package/modern/locales/index.js +1 -0
- package/modern/locales/isIS.js +9 -1
- package/modern/locales/itIT.js +4 -1
- package/modern/locales/jaJP.js +4 -2
- package/modern/locales/koKR.js +4 -1
- package/modern/locales/kzKZ.js +4 -2
- package/modern/locales/nbNO.js +9 -1
- package/modern/locales/nlNL.js +9 -1
- package/modern/locales/plPL.js +9 -1
- package/modern/locales/ptBR.js +9 -1
- package/modern/locales/ruRU.js +4 -2
- package/modern/locales/svSE.js +9 -1
- package/modern/locales/trTR.js +14 -7
- package/modern/locales/ukUA.js +9 -1
- package/modern/locales/urPK.js +9 -1
- package/modern/locales/zhCN.js +22 -23
- package/modern/models/common.js +1 -0
- package/modern/models/index.js +2 -1
- package/modern/tests/describeAdapters/describeAdapters.js +1 -3
- package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.js +3 -1
- package/modern/tests/describeGregorianAdapter/testCalculations.js +29 -26
- package/modern/tests/describeGregorianAdapter/testLocalization.js +2 -2
- package/modern/tests/describeHijriAdapter/describeHijriAdapter.js +23 -0
- package/modern/tests/describeHijriAdapter/describeHijriAdapter.types.js +1 -0
- package/modern/tests/describeHijriAdapter/index.js +1 -0
- package/modern/tests/describeHijriAdapter/testCalculations.js +91 -0
- package/modern/tests/describeHijriAdapter/testLocalization.js +13 -0
- package/modern/tests/describeJalaliAdapter/describeJalaliAdapter.js +25 -0
- package/modern/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +1 -0
- package/modern/tests/describeJalaliAdapter/index.js +1 -0
- package/modern/tests/describeJalaliAdapter/testCalculations.js +83 -0
- package/modern/tests/describeJalaliAdapter/testLocalization.js +13 -0
- package/modern/tests/describePicker/describePicker.js +162 -0
- package/modern/tests/describePicker/describePicker.types.js +1 -0
- package/modern/tests/describePicker/index.js +1 -0
- package/modern/tests/describeValue/describeValue.js +1 -1
- package/modern/tests/describeValue/testControlledUnControlled.js +8 -9
- package/modern/tests/describeValue/testPickerActionBar.js +46 -13
- package/modern/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -5
- package/modern/timeViewRenderers/index.js +1 -1
- package/modern/timeViewRenderers/timeViewRenderers.js +130 -2
- package/node/AdapterDateFns/AdapterDateFns.js +607 -0
- package/node/AdapterDateFns/index.js +6 -152
- package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +618 -0
- package/node/AdapterDateFnsJalali/index.js +6 -151
- package/node/AdapterDayjs/AdapterDayjs.js +146 -111
- package/node/AdapterLuxon/AdapterLuxon.js +521 -0
- package/node/AdapterLuxon/index.js +6 -114
- package/node/AdapterMoment/AdapterMoment.js +425 -0
- package/node/AdapterMoment/index.js +6 -102
- package/node/AdapterMomentHijri/AdapterMomentHijri.js +278 -0
- package/node/AdapterMomentHijri/index.js +6 -77
- package/node/AdapterMomentJalaali/AdapterMomentJalaali.js +285 -0
- package/node/AdapterMomentJalaali/index.js +6 -90
- package/node/DateCalendar/DayCalendar.js +2 -2
- package/node/DateCalendar/useCalendarState.js +2 -2
- package/node/{internals/hooks/validation/useDateValidation.js → DateCalendar/useIsDateDisabled.js} +4 -37
- package/node/DateField/DateField.js +20 -3
- package/node/DateField/useDateField.js +5 -3
- package/node/DatePicker/DatePickerToolbar.js +1 -1
- package/node/DateTimeField/DateTimeField.js +21 -3
- package/node/DateTimeField/useDateTimeField.js +5 -3
- package/node/DateTimePicker/DateTimePicker.js +1 -0
- package/node/DesktopDatePicker/DesktopDatePicker.js +3 -2
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +4 -2
- package/node/DesktopTimePicker/DesktopTimePicker.js +51 -8
- package/node/DigitalClock/DigitalClock.js +406 -0
- package/node/DigitalClock/digitalClockClasses.js +15 -0
- package/node/DigitalClock/index.js +25 -0
- package/node/LocalizationProvider/LocalizationProvider.js +1 -1
- package/node/MobileDatePicker/MobileDatePicker.js +3 -2
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +4 -2
- package/node/MobileTimePicker/MobileTimePicker.js +4 -2
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +489 -0
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.types.js +5 -0
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +73 -0
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +159 -0
- package/node/MultiSectionDigitalClock/index.js +32 -0
- package/node/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js +15 -0
- package/node/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +15 -0
- package/node/PickersDay/PickersDay.js +4 -1
- package/node/PickersLayout/PickersLayout.js +2 -2
- package/node/StaticDatePicker/StaticDatePicker.js +1 -0
- package/node/StaticDateTimePicker/StaticDateTimePicker.js +5 -3
- package/node/StaticTimePicker/StaticTimePicker.js +5 -3
- package/node/TimeClock/TimeClock.js +35 -12
- package/node/TimeField/TimeField.js +21 -3
- package/node/TimeField/useTimeField.js +5 -3
- package/node/TimePicker/TimePicker.js +25 -2
- package/node/TimePicker/TimePickerToolbar.js +2 -2
- package/node/index.js +25 -1
- package/node/internals/constants/dimensions.js +4 -2
- package/node/internals/demo/DemoContainer.js +4 -1
- package/node/internals/hooks/date-helpers-hooks.js +3 -3
- package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +15 -15
- package/node/internals/hooks/useField/useField.js +12 -11
- package/node/internals/hooks/useField/useField.utils.js +63 -36
- package/node/internals/hooks/useField/useFieldCharacterEditing.js +17 -9
- package/node/internals/hooks/useField/useFieldState.js +5 -4
- package/node/internals/hooks/useMobilePicker/useMobilePicker.js +10 -10
- package/node/internals/hooks/usePicker/usePicker.js +2 -0
- package/node/internals/hooks/usePicker/usePickerValue.js +10 -12
- package/node/internals/hooks/useStaticPicker/useStaticPicker.js +10 -10
- package/node/internals/hooks/{validation/useValidation.js → useValidation.js} +1 -1
- package/node/internals/hooks/useViews.js +29 -13
- package/node/internals/index.js +9 -9
- package/node/internals/models/index.js +11 -0
- package/node/internals/models/props/clock.js +5 -0
- package/node/internals/models/validation.js +5 -0
- package/node/internals/utils/time-utils.js +2 -1
- package/node/internals/utils/validation/validateDate.js +40 -0
- package/node/internals/{hooks/validation/useDateTimeValidation.js → utils/validation/validateDateTime.js} +4 -4
- package/node/internals/{hooks/validation/useTimeValidation.js → utils/validation/validateTime.js} +1 -1
- package/node/internals/utils/valueManagers.js +1 -1
- package/node/locales/beBY.js +3 -3
- package/node/locales/caES.js +4 -1
- package/node/locales/csCZ.js +4 -2
- package/node/locales/daDK.js +4 -1
- package/node/locales/deDE.js +4 -1
- package/node/locales/enUS.js +2 -0
- package/node/locales/esES.js +4 -1
- package/node/locales/faIR.js +9 -1
- package/node/locales/fiFI.js +4 -1
- package/node/locales/frFR.js +4 -1
- package/node/locales/heIL.js +4 -1
- package/node/locales/huHU.js +4 -1
- package/node/locales/index.js +11 -0
- package/node/locales/isIS.js +9 -1
- package/node/locales/itIT.js +4 -1
- package/node/locales/jaJP.js +4 -1
- package/node/locales/koKR.js +4 -1
- package/node/locales/kzKZ.js +4 -1
- package/node/locales/nbNO.js +9 -1
- package/node/locales/nlNL.js +9 -1
- package/node/locales/plPL.js +9 -1
- package/node/locales/ptBR.js +9 -1
- package/node/locales/ruRU.js +4 -1
- package/node/locales/svSE.js +9 -1
- package/node/locales/trTR.js +14 -7
- package/node/locales/ukUA.js +9 -1
- package/node/locales/urPK.js +9 -1
- package/node/locales/zhCN.js +22 -23
- package/node/models/common.js +5 -0
- package/node/models/index.js +11 -0
- package/node/tests/describeAdapters/describeAdapters.js +1 -3
- package/node/tests/describeGregorianAdapter/describeGregorianAdapter.js +3 -1
- package/node/tests/describeGregorianAdapter/testCalculations.js +29 -26
- package/node/tests/describeGregorianAdapter/testLocalization.js +2 -2
- package/node/tests/describeHijriAdapter/describeHijriAdapter.js +31 -0
- package/node/tests/describeHijriAdapter/describeHijriAdapter.types.js +5 -0
- package/node/tests/describeHijriAdapter/index.js +12 -0
- package/node/tests/describeHijriAdapter/testCalculations.js +98 -0
- package/node/tests/describeHijriAdapter/testLocalization.js +20 -0
- package/node/tests/describeJalaliAdapter/describeJalaliAdapter.js +33 -0
- package/node/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +5 -0
- package/node/tests/describeJalaliAdapter/index.js +12 -0
- package/node/tests/describeJalaliAdapter/testCalculations.js +90 -0
- package/node/tests/describeJalaliAdapter/testLocalization.js +20 -0
- package/node/tests/describePicker/describePicker.js +173 -0
- package/node/tests/describePicker/describePicker.types.js +5 -0
- package/node/tests/describePicker/index.js +12 -0
- package/node/tests/describeValue/describeValue.js +1 -1
- package/node/tests/describeValue/testControlledUnControlled.js +8 -9
- package/node/tests/describeValue/testPickerActionBar.js +46 -13
- package/node/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -5
- package/node/timeViewRenderers/index.js +12 -0
- package/node/timeViewRenderers/timeViewRenderers.js +134 -4
- package/package.json +3 -10
- package/tests/describeAdapters/describeAdapters.js +1 -3
- package/tests/describeGregorianAdapter/describeGregorianAdapter.js +3 -1
- package/tests/describeGregorianAdapter/testCalculations.js +29 -26
- package/tests/describeGregorianAdapter/testLocalization.js +2 -2
- package/tests/describeHijriAdapter/describeHijriAdapter.js +23 -0
- package/tests/describeHijriAdapter/describeHijriAdapter.types.js +1 -0
- package/tests/describeHijriAdapter/index.js +1 -0
- package/tests/describeHijriAdapter/testCalculations.js +91 -0
- package/tests/describeHijriAdapter/testLocalization.js +13 -0
- package/tests/describeJalaliAdapter/describeJalaliAdapter.js +25 -0
- package/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +1 -0
- package/tests/describeJalaliAdapter/index.js +1 -0
- package/tests/describeJalaliAdapter/testCalculations.js +83 -0
- package/tests/describeJalaliAdapter/testLocalization.js +13 -0
- package/tests/describePicker/describePicker.js +162 -0
- package/tests/describePicker/describePicker.types.js +1 -0
- package/tests/describePicker/index.js +1 -0
- package/tests/describeValue/describeValue.js +1 -1
- package/tests/describeValue/testControlledUnControlled.js +8 -9
- package/tests/describeValue/testPickerActionBar.js +46 -13
- package/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -5
- package/themeAugmentation/components.d.ts +12 -0
- package/themeAugmentation/overrides.d.ts +8 -0
- package/themeAugmentation/props.d.ts +8 -0
- package/timeViewRenderers/index.d.ts +1 -1
- package/timeViewRenderers/index.js +1 -1
- package/timeViewRenderers/timeViewRenderers.d.ts +11 -4
- package/timeViewRenderers/timeViewRenderers.js +130 -2
- /package/{internals/hooks/validation/models.js → DigitalClock/DigitalClock.types.js} +0 -0
- /package/{legacy/internals/hooks/validation/models.js → MultiSectionDigitalClock/MultiSectionDigitalClock.types.js} +0 -0
- /package/{modern/internals/hooks/validation/models.js → internals/models/props/clock.js} +0 -0
- /package/internals/utils/{validation.d.ts → validation/extractValidationProps.d.ts} +0 -0
- /package/internals/utils/{validation.js → validation/extractValidationProps.js} +0 -0
- /package/legacy/internals/utils/{validation.js → validation/extractValidationProps.js} +0 -0
- /package/modern/internals/utils/{validation.js → validation/extractValidationProps.js} +0 -0
- /package/node/{internals/hooks/validation/models.js → DigitalClock/DigitalClock.types.js} +0 -0
- /package/node/internals/utils/{validation.js → validation/extractValidationProps.js} +0 -0
package/TimeField/TimeField.js
CHANGED
|
@@ -55,11 +55,13 @@ const TimeField = /*#__PURE__*/React.forwardRef(function TimeField(inProps, ref)
|
|
|
55
55
|
return /*#__PURE__*/_jsx(TextField, _extends({
|
|
56
56
|
ref: ref
|
|
57
57
|
}, fieldProps, {
|
|
58
|
+
InputProps: _extends({}, fieldProps.InputProps, {
|
|
59
|
+
readOnly
|
|
60
|
+
}),
|
|
58
61
|
inputProps: _extends({}, fieldProps.inputProps, {
|
|
59
|
-
ref: inputRef,
|
|
60
|
-
onPaste,
|
|
61
62
|
inputMode,
|
|
62
|
-
|
|
63
|
+
onPaste,
|
|
64
|
+
ref: inputRef
|
|
63
65
|
})
|
|
64
66
|
}));
|
|
65
67
|
});
|
|
@@ -268,11 +270,27 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
|
|
|
268
270
|
shouldDisableClock: PropTypes.func,
|
|
269
271
|
/**
|
|
270
272
|
* Disable specific time.
|
|
273
|
+
* @template TDate
|
|
271
274
|
* @param {TDate} value The value to check.
|
|
272
275
|
* @param {TimeView} view The clock type of the timeValue.
|
|
273
276
|
* @returns {boolean} If `true` the time will be disabled.
|
|
274
277
|
*/
|
|
275
278
|
shouldDisableTime: PropTypes.func,
|
|
279
|
+
/**
|
|
280
|
+
* If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
|
|
281
|
+
* If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
|
|
282
|
+
*
|
|
283
|
+
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (e.g: "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
|
|
284
|
+
*
|
|
285
|
+
* Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
|
|
286
|
+
* If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
|
|
287
|
+
*
|
|
288
|
+
* Warning n°3: When used in strict mode, dayjs and moment require to respect the leading zeros.
|
|
289
|
+
* This mean that when using `shouldRespectLeadingZeros={false}`, if you retrieve the value directly from the input (not listening to `onChange`) and your format contains tokens without leading zeros, the value will not be parsed by your library.
|
|
290
|
+
*
|
|
291
|
+
* @default `false`
|
|
292
|
+
*/
|
|
293
|
+
shouldRespectLeadingZeros: PropTypes.bool,
|
|
276
294
|
/**
|
|
277
295
|
* The size of the component.
|
|
278
296
|
*/
|
|
@@ -3,8 +3,9 @@ import { SlotComponentProps } from '@mui/base/utils';
|
|
|
3
3
|
import TextField from '@mui/material/TextField';
|
|
4
4
|
import { UseFieldInternalProps } from '../internals/hooks/useField';
|
|
5
5
|
import { DefaultizedProps, MakeOptional } from '../internals/models/helpers';
|
|
6
|
-
import { BaseTimeValidationProps, TimeValidationProps } from '../internals/
|
|
7
|
-
import {
|
|
6
|
+
import { BaseTimeValidationProps, TimeValidationProps } from '../internals/models/validation';
|
|
7
|
+
import { UncapitalizeObjectKeys } from '../internals/utils/slots-migration';
|
|
8
|
+
import { FieldsTextFieldProps } from '../internals/models/fields';
|
|
8
9
|
import { FieldSection, TimeValidationError } from '../models';
|
|
9
10
|
export interface UseTimeFieldParams<TDate, TChildProps extends {}> {
|
|
10
11
|
props: UseTimeFieldComponentProps<TDate, TChildProps>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["value", "defaultValue", "format", "formatDensity", "onChange", "readOnly", "onError", "disableFuture", "disablePast", "minTime", "maxTime", "minutesStep", "shouldDisableClock", "shouldDisableTime", "disableIgnoringDatePartForTimeValidation", "selectedSections", "onSelectedSectionsChange", "ampm", "unstableFieldRef"];
|
|
3
|
+
const _excluded = ["value", "defaultValue", "format", "formatDensity", "shouldRespectLeadingZeros", "onChange", "readOnly", "onError", "disableFuture", "disablePast", "minTime", "maxTime", "minutesStep", "shouldDisableClock", "shouldDisableTime", "disableIgnoringDatePartForTimeValidation", "selectedSections", "onSelectedSectionsChange", "ampm", "unstableFieldRef"];
|
|
4
4
|
import { singleItemFieldValueManager, singleItemValueManager } from '../internals/utils/valueManagers';
|
|
5
5
|
import { useField } from '../internals/hooks/useField';
|
|
6
|
-
import { validateTime } from '../internals/
|
|
6
|
+
import { validateTime } from '../internals/utils/validation/validateTime';
|
|
7
7
|
import { useUtils } from '../internals/hooks/useUtils';
|
|
8
8
|
const useDefaultizedTimeField = props => {
|
|
9
9
|
var _props$ampm, _props$disablePast, _props$disableFuture, _props$format;
|
|
@@ -26,6 +26,7 @@ export const useTimeField = ({
|
|
|
26
26
|
defaultValue,
|
|
27
27
|
format,
|
|
28
28
|
formatDensity,
|
|
29
|
+
shouldRespectLeadingZeros,
|
|
29
30
|
onChange,
|
|
30
31
|
readOnly,
|
|
31
32
|
onError,
|
|
@@ -51,6 +52,7 @@ export const useTimeField = ({
|
|
|
51
52
|
defaultValue,
|
|
52
53
|
format,
|
|
53
54
|
formatDensity,
|
|
55
|
+
shouldRespectLeadingZeros,
|
|
54
56
|
onChange,
|
|
55
57
|
readOnly,
|
|
56
58
|
onError,
|
package/TimePicker/TimePicker.js
CHANGED
|
@@ -207,7 +207,7 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes = {
|
|
|
207
207
|
* Used when the component view is not controlled.
|
|
208
208
|
* Must be a valid option from `views` list.
|
|
209
209
|
*/
|
|
210
|
-
openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),
|
|
210
|
+
openTo: PropTypes.oneOf(['hours', 'meridiem', 'minutes', 'seconds']),
|
|
211
211
|
/**
|
|
212
212
|
* Force rendering in particular orientation.
|
|
213
213
|
*/
|
|
@@ -236,11 +236,17 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes = {
|
|
|
236
236
|
shouldDisableClock: PropTypes.func,
|
|
237
237
|
/**
|
|
238
238
|
* Disable specific time.
|
|
239
|
+
* @template TDate
|
|
239
240
|
* @param {TDate} value The value to check.
|
|
240
241
|
* @param {TimeView} view The clock type of the timeValue.
|
|
241
242
|
* @returns {boolean} If `true` the time will be disabled.
|
|
242
243
|
*/
|
|
243
244
|
shouldDisableTime: PropTypes.func,
|
|
245
|
+
/**
|
|
246
|
+
* If `true`, disabled digital clock items will not be rendered.
|
|
247
|
+
* @default false
|
|
248
|
+
*/
|
|
249
|
+
skipDisabled: PropTypes.bool,
|
|
244
250
|
/**
|
|
245
251
|
* The props used for each component slot.
|
|
246
252
|
* @default {}
|
|
@@ -255,6 +261,22 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes = {
|
|
|
255
261
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
256
262
|
*/
|
|
257
263
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
264
|
+
/**
|
|
265
|
+
* Amount of time options below or at which the single column time renderer is used.
|
|
266
|
+
* @default 24
|
|
267
|
+
*/
|
|
268
|
+
thresholdToRenderTimeInASingleColumn: PropTypes.number,
|
|
269
|
+
/**
|
|
270
|
+
* The time steps between two time unit options.
|
|
271
|
+
* For example, if `timeStep.minutes = 8`, then the available minute options will be `[0, 8, 16, 24, 32, 40, 48, 56]`.
|
|
272
|
+
* When single column time renderer is used, only `timeStep.minutes` will be used.
|
|
273
|
+
* @default{ hours: 1, minutes: 5, seconds: 5 }
|
|
274
|
+
*/
|
|
275
|
+
timeSteps: PropTypes.shape({
|
|
276
|
+
hours: PropTypes.number,
|
|
277
|
+
minutes: PropTypes.number,
|
|
278
|
+
seconds: PropTypes.number
|
|
279
|
+
}),
|
|
258
280
|
/**
|
|
259
281
|
* The selected value.
|
|
260
282
|
* Used when the component is controlled.
|
|
@@ -265,7 +287,7 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes = {
|
|
|
265
287
|
* Used when the component view is controlled.
|
|
266
288
|
* Must be a valid option from `views` list.
|
|
267
289
|
*/
|
|
268
|
-
view: PropTypes.oneOf(['hours', 'minutes', 'seconds']),
|
|
290
|
+
view: PropTypes.oneOf(['hours', 'meridiem', 'minutes', 'seconds']),
|
|
269
291
|
/**
|
|
270
292
|
* Define custom view renderers for each section.
|
|
271
293
|
* If `null`, the section will only have field editing.
|
|
@@ -273,6 +295,7 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes = {
|
|
|
273
295
|
*/
|
|
274
296
|
viewRenderers: PropTypes.shape({
|
|
275
297
|
hours: PropTypes.func,
|
|
298
|
+
meridiem: PropTypes.func,
|
|
276
299
|
minutes: PropTypes.func,
|
|
277
300
|
seconds: PropTypes.func
|
|
278
301
|
}),
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { DesktopTimePickerProps, DesktopTimePickerSlotsComponent, DesktopTimePickerSlotsComponentsProps } from '../DesktopTimePicker';
|
|
2
|
+
import { TimeViewWithMeridiem } from '../internals/models';
|
|
2
3
|
import { UncapitalizeObjectKeys } from '../internals/utils/slots-migration';
|
|
3
4
|
import { MobileTimePickerProps, MobileTimePickerSlotsComponent, MobileTimePickerSlotsComponentsProps } from '../MobileTimePicker';
|
|
4
|
-
export interface TimePickerSlotsComponents<TDate> extends DesktopTimePickerSlotsComponent<TDate>, MobileTimePickerSlotsComponent<TDate> {
|
|
5
|
+
export interface TimePickerSlotsComponents<TDate> extends DesktopTimePickerSlotsComponent<TDate>, MobileTimePickerSlotsComponent<TDate, TimeViewWithMeridiem> {
|
|
5
6
|
}
|
|
6
|
-
export interface TimePickerSlotsComponentsProps<TDate> extends DesktopTimePickerSlotsComponentsProps<TDate>, MobileTimePickerSlotsComponentsProps<TDate> {
|
|
7
|
+
export interface TimePickerSlotsComponentsProps<TDate> extends DesktopTimePickerSlotsComponentsProps<TDate>, MobileTimePickerSlotsComponentsProps<TDate, TimeViewWithMeridiem> {
|
|
7
8
|
}
|
|
8
|
-
export interface TimePickerProps<TDate> extends DesktopTimePickerProps<TDate>, MobileTimePickerProps<TDate> {
|
|
9
|
+
export interface TimePickerProps<TDate> extends DesktopTimePickerProps<TDate>, Omit<MobileTimePickerProps<TDate, TimeViewWithMeridiem>, 'views'> {
|
|
9
10
|
/**
|
|
10
11
|
* CSS media query when `Mobile` mode will be changed to `Desktop`.
|
|
11
12
|
* @default '@media (pointer: fine)'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { BaseToolbarProps, ExportedBaseToolbarProps } from '../internals/models/props/toolbar';
|
|
3
3
|
import { TimePickerToolbarClasses } from './timePickerToolbarClasses';
|
|
4
|
-
import {
|
|
5
|
-
export interface TimePickerToolbarProps<TDate> extends BaseToolbarProps<TDate | null,
|
|
4
|
+
import { TimeViewWithMeridiem } from '../internals/models';
|
|
5
|
+
export interface TimePickerToolbarProps<TDate> extends BaseToolbarProps<TDate | null, TimeViewWithMeridiem> {
|
|
6
6
|
ampm?: boolean;
|
|
7
7
|
ampmInClock?: boolean;
|
|
8
8
|
classes?: Partial<TimePickerToolbarClasses>;
|
|
@@ -240,7 +240,7 @@ process.env.NODE_ENV !== "production" ? TimePickerToolbar.propTypes = {
|
|
|
240
240
|
/**
|
|
241
241
|
* Currently visible picker view.
|
|
242
242
|
*/
|
|
243
|
-
view: PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired,
|
|
244
|
-
views: PropTypes.arrayOf(PropTypes.oneOf(['
|
|
243
|
+
view: PropTypes.oneOf(['hours', 'meridiem', 'minutes', 'seconds']).isRequired,
|
|
244
|
+
views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'meridiem', 'minutes', 'seconds']).isRequired).isRequired
|
|
245
245
|
} : void 0;
|
|
246
246
|
export { TimePickerToolbar };
|
package/TimePicker/shared.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { DefaultizedProps } from '../internals/models/helpers';
|
|
3
|
-
import { TimeClockSlotsComponent, TimeClockSlotsComponentsProps
|
|
3
|
+
import { TimeClockSlotsComponent, TimeClockSlotsComponentsProps } from '../TimeClock/TimeClock.types';
|
|
4
4
|
import { BasePickerInputProps } from '../internals/models/props/basePickerProps';
|
|
5
|
-
import { BaseTimeValidationProps } from '../internals/
|
|
5
|
+
import { BaseTimeValidationProps } from '../internals/models/validation';
|
|
6
6
|
import { LocalizedComponent } from '../locales/utils/pickersLocaleTextApi';
|
|
7
7
|
import { TimePickerToolbarProps, ExportedTimePickerToolbarProps } from './TimePickerToolbar';
|
|
8
|
-
import { TimeValidationError
|
|
8
|
+
import { TimeValidationError } from '../models';
|
|
9
9
|
import { PickerViewRendererLookup } from '../internals/hooks/usePicker/usePickerViews';
|
|
10
10
|
import { TimeViewRendererProps } from '../timeViewRenderers';
|
|
11
11
|
import { UncapitalizeObjectKeys } from '../internals/utils/slots-migration';
|
|
12
|
+
import { BaseClockProps, ExportedBaseClockProps } from '../internals/models/props/clock';
|
|
13
|
+
import { TimeViewWithMeridiem } from '../internals/models';
|
|
12
14
|
export interface BaseTimePickerSlotsComponent<TDate> extends TimeClockSlotsComponent {
|
|
13
15
|
/**
|
|
14
16
|
* Custom component for the toolbar rendered above the views.
|
|
@@ -19,7 +21,7 @@ export interface BaseTimePickerSlotsComponent<TDate> extends TimeClockSlotsCompo
|
|
|
19
21
|
export interface BaseTimePickerSlotsComponentsProps extends TimeClockSlotsComponentsProps {
|
|
20
22
|
toolbar?: ExportedTimePickerToolbarProps;
|
|
21
23
|
}
|
|
22
|
-
export interface BaseTimePickerProps<TDate> extends BasePickerInputProps<TDate | null, TDate,
|
|
24
|
+
export interface BaseTimePickerProps<TDate, TView extends TimeViewWithMeridiem> extends BasePickerInputProps<TDate | null, TDate, TView, TimeValidationError>, ExportedBaseClockProps<TDate> {
|
|
23
25
|
/**
|
|
24
26
|
* Display ampm controls under the clock (instead of in the toolbar).
|
|
25
27
|
* @default true on desktop, false on mobile
|
|
@@ -52,8 +54,8 @@ export interface BaseTimePickerProps<TDate> extends BasePickerInputProps<TDate |
|
|
|
52
54
|
* If `null`, the section will only have field editing.
|
|
53
55
|
* If `undefined`, internally defined view will be the used.
|
|
54
56
|
*/
|
|
55
|
-
viewRenderers?: Partial<PickerViewRendererLookup<TDate | null,
|
|
57
|
+
viewRenderers?: Partial<PickerViewRendererLookup<TDate | null, TView, TimeViewRendererProps<TView, BaseClockProps<TDate, TView>>, {}>>;
|
|
56
58
|
}
|
|
57
|
-
type UseTimePickerDefaultizedProps<TDate, Props extends BaseTimePickerProps<TDate>> = LocalizedComponent<TDate, Omit<DefaultizedProps<Props, 'views' | 'openTo' | keyof BaseTimeValidationProps>, 'components' | 'componentsProps'>>;
|
|
58
|
-
export declare function useTimePickerDefaultizedProps<TDate, Props extends BaseTimePickerProps<TDate>>(props: Props, name: string): UseTimePickerDefaultizedProps<TDate, Props>;
|
|
59
|
+
type UseTimePickerDefaultizedProps<TDate, TView extends TimeViewWithMeridiem, Props extends BaseTimePickerProps<TDate, TView>> = LocalizedComponent<TDate, Omit<DefaultizedProps<Props, 'views' | 'openTo' | keyof BaseTimeValidationProps>, 'components' | 'componentsProps'>>;
|
|
60
|
+
export declare function useTimePickerDefaultizedProps<TDate, TView extends TimeViewWithMeridiem, Props extends BaseTimePickerProps<TDate, TView>>(props: Props, name: string): UseTimePickerDefaultizedProps<TDate, TView, Props>;
|
|
59
61
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SxProps } from '@mui/system';
|
|
2
2
|
import { Theme } from '@mui/material/styles';
|
|
3
3
|
import { YearCalendarClasses } from './yearCalendarClasses';
|
|
4
|
-
import { BaseDateValidationProps, YearValidationProps } from '../internals/
|
|
4
|
+
import { BaseDateValidationProps, YearValidationProps } from '../internals/models/validation';
|
|
5
5
|
export interface ExportedYearCalendarProps {
|
|
6
6
|
/**
|
|
7
7
|
* Years rendered per row.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { DateCalendarProps } from '../DateCalendar';
|
|
3
|
-
import {
|
|
4
|
-
export interface DateViewRendererProps<TDate, TView extends
|
|
3
|
+
import { DateOrTimeViewWithMeridiem } from '../internals/models';
|
|
4
|
+
export interface DateViewRendererProps<TDate, TView extends DateOrTimeViewWithMeridiem> extends Omit<DateCalendarProps<TDate>, 'views' | 'openTo' | 'view' | 'onViewChange' | 'focusedView'> {
|
|
5
5
|
view: TView;
|
|
6
6
|
onViewChange?: (view: TView) => void;
|
|
7
7
|
views: readonly TView[];
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @mui/x-date-pickers v6.
|
|
2
|
+
* @mui/x-date-pickers v6.3.0
|
|
3
3
|
*
|
|
4
4
|
* @license MIT
|
|
5
5
|
* This source code is licensed under the MIT license found in the
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
|
+
// Clocks
|
|
8
9
|
export * from './TimeClock';
|
|
10
|
+
export * from './DigitalClock';
|
|
11
|
+
export * from './MultiSectionDigitalClock';
|
|
9
12
|
export * from './LocalizationProvider';
|
|
10
13
|
export * from './PickersDay';
|
|
11
14
|
export * from './locales';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { BaseToolbarProps } from '../models/props/toolbar';
|
|
3
3
|
import { PickersToolbarClasses } from './pickersToolbarClasses';
|
|
4
|
-
import {
|
|
5
|
-
export interface PickersToolbarProps<TValue, TView extends
|
|
4
|
+
import { DateOrTimeViewWithMeridiem } from '../models';
|
|
5
|
+
export interface PickersToolbarProps<TValue, TView extends DateOrTimeViewWithMeridiem> extends Pick<BaseToolbarProps<TValue, TView>, 'isLandscape' | 'hidden' | 'titleId'> {
|
|
6
6
|
className?: string;
|
|
7
7
|
landscapeDirection?: 'row' | 'column';
|
|
8
8
|
toolbarTitle: React.ReactNode;
|
|
9
9
|
classes?: Partial<PickersToolbarClasses>;
|
|
10
10
|
}
|
|
11
|
-
type PickersToolbarComponent = (<TValue, TView extends
|
|
11
|
+
type PickersToolbarComponent = (<TValue, TView extends DateOrTimeViewWithMeridiem>(props: React.PropsWithChildren<PickersToolbarProps<TValue, TView>> & React.RefAttributes<HTMLDivElement>) => JSX.Element) & {
|
|
12
12
|
propTypes?: any;
|
|
13
13
|
};
|
|
14
14
|
export declare const PickersToolbar: PickersToolbarComponent;
|
|
@@ -9,6 +9,9 @@ const getChildTypeFromChildName = childName => {
|
|
|
9
9
|
if (childName.match(/^([A-Za-z]+)Range(Calendar|Clock)$/)) {
|
|
10
10
|
return 'multi-panel-UI-view';
|
|
11
11
|
}
|
|
12
|
+
if (childName.match(/^([A-Za-z]*)(DigitalClock)$/)) {
|
|
13
|
+
return 'Tall-UI-view';
|
|
14
|
+
}
|
|
12
15
|
if (childName.match(/^Static([A-Za-z]+)/) || childName.match(/^([A-Za-z]+)(Calendar|Clock)$/)) {
|
|
13
16
|
return 'UI-view';
|
|
14
17
|
}
|
|
@@ -73,7 +76,7 @@ export function DemoContainer(props) {
|
|
|
73
76
|
});
|
|
74
77
|
const getSpacing = direction => {
|
|
75
78
|
if (direction === 'row') {
|
|
76
|
-
return childrenTypes.has('UI-view') ? 3 : 2;
|
|
79
|
+
return childrenTypes.has('UI-view') || childrenTypes.has('Tall-UI-view') ? 3 : 2;
|
|
77
80
|
}
|
|
78
81
|
return childrenTypes.has('UI-view') ? 4 : 3;
|
|
79
82
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PickerOnChangeFn } from './useViews';
|
|
2
|
+
import { PickerSelectionState } from './usePicker';
|
|
2
3
|
interface MonthValidationOptions<TDate> {
|
|
3
4
|
disablePast?: boolean;
|
|
4
5
|
disableFuture?: boolean;
|
|
@@ -7,8 +8,8 @@ interface MonthValidationOptions<TDate> {
|
|
|
7
8
|
}
|
|
8
9
|
export declare function useNextMonthDisabled<TDate>(month: TDate, { disableFuture, maxDate }: Pick<MonthValidationOptions<TDate>, 'disableFuture' | 'maxDate'>): boolean;
|
|
9
10
|
export declare function usePreviousMonthDisabled<TDate>(month: TDate, { disablePast, minDate }: Pick<MonthValidationOptions<TDate>, 'disablePast' | 'minDate'>): boolean;
|
|
10
|
-
export declare function useMeridiemMode<TDate>(date: TDate | null, ampm: boolean | undefined, onChange: PickerOnChangeFn<TDate
|
|
11
|
-
meridiemMode: "
|
|
11
|
+
export declare function useMeridiemMode<TDate>(date: TDate | null, ampm: boolean | undefined, onChange: PickerOnChangeFn<TDate>, selectionState?: PickerSelectionState): {
|
|
12
|
+
meridiemMode: import("../utils/time-utils").Meridiem | null;
|
|
12
13
|
handleMeridiemChange: (mode: 'am' | 'pm') => void;
|
|
13
14
|
};
|
|
14
15
|
export {};
|
|
@@ -23,13 +23,13 @@ export function usePreviousMonthDisabled(month, {
|
|
|
23
23
|
return !utils.isBefore(firstEnabledMonth, month);
|
|
24
24
|
}, [disablePast, minDate, month, utils]);
|
|
25
25
|
}
|
|
26
|
-
export function useMeridiemMode(date, ampm, onChange) {
|
|
26
|
+
export function useMeridiemMode(date, ampm, onChange, selectionState) {
|
|
27
27
|
const utils = useUtils();
|
|
28
28
|
const meridiemMode = getMeridiem(date, utils);
|
|
29
29
|
const handleMeridiemChange = React.useCallback(mode => {
|
|
30
30
|
const timeWithMeridiem = date == null ? null : convertToMeridiem(date, mode, Boolean(ampm), utils);
|
|
31
|
-
onChange(timeWithMeridiem, 'partial');
|
|
32
|
-
}, [ampm, date, onChange, utils]);
|
|
31
|
+
onChange(timeWithMeridiem, selectionState != null ? selectionState : 'partial');
|
|
32
|
+
}, [ampm, date, onChange, selectionState, utils]);
|
|
33
33
|
return {
|
|
34
34
|
meridiemMode,
|
|
35
35
|
handleMeridiemChange
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { UseDesktopPickerParams, UseDesktopPickerProps } from './useDesktopPicker.types';
|
|
3
|
-
import {
|
|
3
|
+
import { DateOrTimeViewWithMeridiem } from '../../models';
|
|
4
4
|
/**
|
|
5
5
|
* Hook managing all the single-date desktop pickers:
|
|
6
6
|
* - DesktopDatePicker
|
|
7
7
|
* - DesktopDateTimePicker
|
|
8
8
|
* - DesktopTimePicker
|
|
9
9
|
*/
|
|
10
|
-
export declare const useDesktopPicker: <TDate, TView extends
|
|
10
|
+
export declare const useDesktopPicker: <TDate, TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseDesktopPickerProps<TDate, TView, any, TExternalProps>>({ props, getOpenDialogAriaText, ...pickerParams }: UseDesktopPickerParams<TDate, TView, TExternalProps>) => {
|
|
11
11
|
renderPicker: () => JSX.Element;
|
|
12
12
|
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["
|
|
4
|
-
_excluded2 = ["ownerState"]
|
|
3
|
+
const _excluded = ["props", "getOpenDialogAriaText"],
|
|
4
|
+
_excluded2 = ["ownerState"],
|
|
5
|
+
_excluded3 = ["ownerState"];
|
|
5
6
|
import * as React from 'react';
|
|
6
7
|
import { useSlotProps } from '@mui/base/utils';
|
|
7
8
|
import MuiInputAdornment from '@mui/material/InputAdornment';
|
|
@@ -21,13 +22,13 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
21
22
|
* - DesktopDateTimePicker
|
|
22
23
|
* - DesktopTimePicker
|
|
23
24
|
*/
|
|
24
|
-
export const useDesktopPicker =
|
|
25
|
-
props,
|
|
26
|
-
valueManager,
|
|
27
|
-
getOpenDialogAriaText,
|
|
28
|
-
validator
|
|
29
|
-
}) => {
|
|
25
|
+
export const useDesktopPicker = _ref => {
|
|
30
26
|
var _innerSlotProps$toolb, _innerSlotProps$toolb2, _slots$inputAdornment, _slots$openPickerButt, _slots$layout;
|
|
27
|
+
let {
|
|
28
|
+
props,
|
|
29
|
+
getOpenDialogAriaText
|
|
30
|
+
} = _ref,
|
|
31
|
+
pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
31
32
|
const {
|
|
32
33
|
slots,
|
|
33
34
|
slotProps: innerSlotProps,
|
|
@@ -55,15 +56,13 @@ export const useDesktopPicker = ({
|
|
|
55
56
|
renderCurrentView,
|
|
56
57
|
shouldRestoreFocus,
|
|
57
58
|
fieldProps: pickerFieldProps
|
|
58
|
-
} = usePicker({
|
|
59
|
+
} = usePicker(_extends({}, pickerParams, {
|
|
59
60
|
props,
|
|
60
61
|
inputRef: internalInputRef,
|
|
61
|
-
valueManager,
|
|
62
|
-
validator,
|
|
63
62
|
autoFocusView: true,
|
|
64
63
|
additionalViewProps: {},
|
|
65
64
|
wrapperVariant: 'desktop'
|
|
66
|
-
});
|
|
65
|
+
}));
|
|
67
66
|
const InputAdornment = (_slots$inputAdornment = slots.inputAdornment) != null ? _slots$inputAdornment : MuiInputAdornment;
|
|
68
67
|
const _useSlotProps = useSlotProps({
|
|
69
68
|
elementType: InputAdornment,
|
|
@@ -73,7 +72,7 @@ export const useDesktopPicker = ({
|
|
|
73
72
|
},
|
|
74
73
|
ownerState: props
|
|
75
74
|
}),
|
|
76
|
-
inputAdornmentProps = _objectWithoutPropertiesLoose(_useSlotProps,
|
|
75
|
+
inputAdornmentProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
77
76
|
const OpenPickerButton = (_slots$openPickerButt = slots.openPickerButton) != null ? _slots$openPickerButt : IconButton;
|
|
78
77
|
const _useSlotProps2 = useSlotProps({
|
|
79
78
|
elementType: OpenPickerButton,
|
|
@@ -86,7 +85,7 @@ export const useDesktopPicker = ({
|
|
|
86
85
|
},
|
|
87
86
|
ownerState: props
|
|
88
87
|
}),
|
|
89
|
-
openPickerButtonProps = _objectWithoutPropertiesLoose(_useSlotProps2,
|
|
88
|
+
openPickerButtonProps = _objectWithoutPropertiesLoose(_useSlotProps2, _excluded3);
|
|
90
89
|
const OpenPickerIcon = slots.openPickerIcon;
|
|
91
90
|
const Field = slots.field;
|
|
92
91
|
const fieldProps = useSlotProps({
|
|
@@ -102,7 +101,8 @@ export const useDesktopPicker = ({
|
|
|
102
101
|
format,
|
|
103
102
|
formatDensity,
|
|
104
103
|
label,
|
|
105
|
-
autoFocus: autoFocus && !props.open
|
|
104
|
+
autoFocus: autoFocus && !props.open,
|
|
105
|
+
focused: open ? true : undefined
|
|
106
106
|
}),
|
|
107
107
|
ownerState: props
|
|
108
108
|
});
|
|
@@ -6,12 +6,13 @@ import { SlotComponentProps } from '@mui/base/utils';
|
|
|
6
6
|
import { BaseNonStaticPickerProps, BasePickerProps, BaseNonRangeNonStaticPickerProps } from '../../models/props/basePickerProps';
|
|
7
7
|
import { PickersPopperSlotsComponent, PickersPopperSlotsComponentsProps } from '../../components/PickersPopper';
|
|
8
8
|
import { UsePickerParams, UsePickerProps } from '../usePicker';
|
|
9
|
-
import { BaseSingleInputFieldProps, FieldSection,
|
|
9
|
+
import { BaseSingleInputFieldProps, FieldSection, MuiPickersAdapter } from '../../../models';
|
|
10
10
|
import { ExportedPickersLayoutSlotsComponent, ExportedPickersLayoutSlotsComponentsProps, PickersLayoutSlotsComponentsProps } from '../../../PickersLayout/PickersLayout.types';
|
|
11
11
|
import { UsePickerValueNonStaticProps } from '../usePicker/usePickerValue.types';
|
|
12
12
|
import { UsePickerViewsNonStaticProps, UsePickerViewsProps } from '../usePicker/usePickerViews';
|
|
13
13
|
import { UncapitalizeObjectKeys } from '../../utils/slots-migration';
|
|
14
|
-
|
|
14
|
+
import { DateOrTimeViewWithMeridiem } from '../../models';
|
|
15
|
+
export interface UseDesktopPickerSlotsComponent<TDate, TView extends DateOrTimeViewWithMeridiem> extends Pick<PickersPopperSlotsComponent, 'DesktopPaper' | 'DesktopTransition' | 'DesktopTrapFocus' | 'Popper'>, ExportedPickersLayoutSlotsComponent<TDate | null, TDate, TView> {
|
|
15
16
|
/**
|
|
16
17
|
* Component used to enter the date with the keyboard.
|
|
17
18
|
*/
|
|
@@ -37,9 +38,9 @@ export interface UseDesktopPickerSlotsComponent<TDate, TView extends DateOrTimeV
|
|
|
37
38
|
*/
|
|
38
39
|
OpenPickerIcon: React.ElementType;
|
|
39
40
|
}
|
|
40
|
-
export interface UseDesktopPickerSlotsComponentsProps<TDate, TView extends
|
|
41
|
+
export interface UseDesktopPickerSlotsComponentsProps<TDate, TView extends DateOrTimeViewWithMeridiem> extends ExportedUseDesktopPickerSlotsComponentsProps<TDate, TView>, Pick<PickersLayoutSlotsComponentsProps<TDate | null, TDate, TView>, 'toolbar'> {
|
|
41
42
|
}
|
|
42
|
-
export interface ExportedUseDesktopPickerSlotsComponentsProps<TDate, TView extends
|
|
43
|
+
export interface ExportedUseDesktopPickerSlotsComponentsProps<TDate, TView extends DateOrTimeViewWithMeridiem> extends PickersPopperSlotsComponentsProps, ExportedPickersLayoutSlotsComponentsProps<TDate | null, TDate, TView> {
|
|
43
44
|
field?: SlotComponentProps<React.ElementType<BaseSingleInputFieldProps<TDate | null, FieldSection, unknown>>, {}, UsePickerProps<TDate | null, any, FieldSection, any, any, any>>;
|
|
44
45
|
textField?: SlotComponentProps<typeof TextField, {}, Record<string, any>>;
|
|
45
46
|
inputAdornment?: Partial<InputAdornmentProps>;
|
|
@@ -52,7 +53,7 @@ export interface DesktopOnlyPickerProps<TDate> extends BaseNonStaticPickerProps,
|
|
|
52
53
|
*/
|
|
53
54
|
autoFocus?: boolean;
|
|
54
55
|
}
|
|
55
|
-
export interface UseDesktopPickerProps<TDate, TView extends
|
|
56
|
+
export interface UseDesktopPickerProps<TDate, TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerViewsProps<any, TView, any, any>> extends BasePickerProps<TDate | null, TDate, TView, TError, TExternalProps, {}>, DesktopOnlyPickerProps<TDate> {
|
|
56
57
|
/**
|
|
57
58
|
* Overridable component slots.
|
|
58
59
|
* @default {}
|
|
@@ -64,7 +65,7 @@ export interface UseDesktopPickerProps<TDate, TView extends DateOrTimeView, TErr
|
|
|
64
65
|
*/
|
|
65
66
|
slotProps?: UseDesktopPickerSlotsComponentsProps<TDate, TView>;
|
|
66
67
|
}
|
|
67
|
-
export interface UseDesktopPickerParams<TDate, TView extends
|
|
68
|
+
export interface UseDesktopPickerParams<TDate, TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseDesktopPickerProps<TDate, TView, any, TExternalProps>> extends Pick<UsePickerParams<TDate | null, TDate, TView, FieldSection, TExternalProps, {}>, 'valueManager' | 'valueType' | 'validator'> {
|
|
68
69
|
props: TExternalProps;
|
|
69
70
|
getOpenDialogAriaText: (date: TDate | null, utils: MuiPickersAdapter<TDate>) => string;
|
|
70
71
|
}
|
|
@@ -6,7 +6,7 @@ import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
|
|
|
6
6
|
import useEventCallback from '@mui/utils/useEventCallback';
|
|
7
7
|
import useForkRef from '@mui/utils/useForkRef';
|
|
8
8
|
import { useTheme } from '@mui/material/styles';
|
|
9
|
-
import { useValidation } from '../
|
|
9
|
+
import { useValidation } from '../useValidation';
|
|
10
10
|
import { useUtils } from '../useUtils';
|
|
11
11
|
import { adjustSectionValue, isAndroid, cleanString, getSectionOrder } from './useField.utils';
|
|
12
12
|
import { useFieldState } from './useFieldState';
|
|
@@ -26,15 +26,6 @@ export const useField = params => {
|
|
|
26
26
|
sectionsValueBoundaries,
|
|
27
27
|
placeholder
|
|
28
28
|
} = useFieldState(params);
|
|
29
|
-
const {
|
|
30
|
-
applyCharacterEditing,
|
|
31
|
-
resetCharacterQuery
|
|
32
|
-
} = useFieldCharacterEditing({
|
|
33
|
-
sections: state.sections,
|
|
34
|
-
updateSectionValue,
|
|
35
|
-
sectionsValueBoundaries,
|
|
36
|
-
setTempAndroidValueStr
|
|
37
|
-
});
|
|
38
29
|
const {
|
|
39
30
|
inputRef: inputRefProp,
|
|
40
31
|
internalProps,
|
|
@@ -56,6 +47,15 @@ export const useField = params => {
|
|
|
56
47
|
validator
|
|
57
48
|
} = params,
|
|
58
49
|
otherForwardedProps = _objectWithoutPropertiesLoose(params.forwardedProps, _excluded);
|
|
50
|
+
const {
|
|
51
|
+
applyCharacterEditing,
|
|
52
|
+
resetCharacterQuery
|
|
53
|
+
} = useFieldCharacterEditing({
|
|
54
|
+
sections: state.sections,
|
|
55
|
+
updateSectionValue,
|
|
56
|
+
sectionsValueBoundaries,
|
|
57
|
+
setTempAndroidValueStr
|
|
58
|
+
});
|
|
59
59
|
const inputRef = React.useRef(null);
|
|
60
60
|
const handleRef = useForkRef(inputRefProp, inputRef);
|
|
61
61
|
const focusTimeoutRef = React.useRef(undefined);
|
|
@@ -121,7 +121,8 @@ export const useField = params => {
|
|
|
121
121
|
const activeSection = state.sections[selectedSectionIndexes.startIndex];
|
|
122
122
|
const lettersOnly = /^[a-zA-Z]+$/.test(pastedValue);
|
|
123
123
|
const digitsOnly = /^[0-9]+$/.test(pastedValue);
|
|
124
|
-
const
|
|
124
|
+
const digitsAndLetterOnly = /^(([a-zA-Z]+)|)([0-9]+)(([a-zA-Z]+)|)$/.test(pastedValue);
|
|
125
|
+
const isValidPastedValue = activeSection.contentType === 'letter' && lettersOnly || activeSection.contentType === 'digit' && digitsOnly || activeSection.contentType === 'digit-with-letter' && digitsAndLetterOnly;
|
|
125
126
|
if (isValidPastedValue) {
|
|
126
127
|
// Early return to let the paste update section, value
|
|
127
128
|
return;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { FieldSectionType, FieldSection, FieldSelectedSections, MuiPickersAdapter } from '../../../models';
|
|
2
|
+
import { FieldSectionType, FieldSection, FieldSelectedSections, MuiPickersAdapter, FieldSectionContentType, FieldValueType } from '../../../models';
|
|
3
3
|
import type { PickerValueManager } from '../usePicker';
|
|
4
|
-
import { InferError, Validator } from '../
|
|
4
|
+
import { InferError, Validator } from '../useValidation';
|
|
5
5
|
export interface UseFieldParams<TValue, TDate, TSection extends FieldSection, TForwardedProps extends UseFieldForwardedProps, TInternalProps extends UseFieldInternalProps<any, any, any>> {
|
|
6
6
|
inputRef?: React.Ref<HTMLInputElement>;
|
|
7
7
|
forwardedProps: TForwardedProps;
|
|
@@ -47,6 +47,21 @@ export interface UseFieldInternalProps<TValue, TSection extends FieldSection, TE
|
|
|
47
47
|
* @default "dense"
|
|
48
48
|
*/
|
|
49
49
|
formatDensity?: 'dense' | 'spacious';
|
|
50
|
+
/**
|
|
51
|
+
* If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
|
|
52
|
+
* If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
|
|
53
|
+
*
|
|
54
|
+
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (e.g: "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
|
|
55
|
+
*
|
|
56
|
+
* Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
|
|
57
|
+
* If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
|
|
58
|
+
*
|
|
59
|
+
* Warning n°3: When used in strict mode, dayjs and moment require to respect the leading zeros.
|
|
60
|
+
* This mean that when using `shouldRespectLeadingZeros={false}`, if you retrieve the value directly from the input (not listening to `onChange`) and your format contains tokens without leading zeros, the value will not be parsed by your library.
|
|
61
|
+
*
|
|
62
|
+
* @default `false`
|
|
63
|
+
*/
|
|
64
|
+
shouldRespectLeadingZeros?: boolean;
|
|
50
65
|
/**
|
|
51
66
|
* It prevents the user from changing the value of the field
|
|
52
67
|
* (not from interacting with the field).
|
|
@@ -119,7 +134,7 @@ export type FieldSectionsValueBoundaries<TDate> = {
|
|
|
119
134
|
[SectionType in FieldSectionType]: (params: {
|
|
120
135
|
currentDate: TDate | null;
|
|
121
136
|
format: string;
|
|
122
|
-
contentType:
|
|
137
|
+
contentType: FieldSectionContentType;
|
|
123
138
|
}) => FieldSectionValueBoundaries<TDate, SectionType>;
|
|
124
139
|
};
|
|
125
140
|
export type FieldChangeHandler<TValue, TError> = (value: TValue, context: FieldChangeHandlerContext<TError>) => void;
|
|
@@ -180,7 +195,7 @@ export interface FieldValueManager<TValue, TDate, TSection extends FieldSection>
|
|
|
180
195
|
* Creates the string value to render in the input based on the current section list.
|
|
181
196
|
* @template TSection
|
|
182
197
|
* @param {TSection[]} sections The current section list.
|
|
183
|
-
* @param {boolean} isRTL `true`
|
|
198
|
+
* @param {boolean} isRTL `true` if the current orientation is "right to left"
|
|
184
199
|
* @returns {string} The string value to render in the input.
|
|
185
200
|
*/
|
|
186
201
|
getValueStrFromSections: (sections: TSection[], isRTL: boolean) => string;
|
|
@@ -249,7 +264,6 @@ export type UseFieldValidationProps<TValue, TInternalProps extends {
|
|
|
249
264
|
value: TValue;
|
|
250
265
|
};
|
|
251
266
|
export type AvailableAdjustKeyCode = 'ArrowUp' | 'ArrowDown' | 'PageUp' | 'PageDown' | 'Home' | 'End';
|
|
252
|
-
export type FieldValueType = 'date' | 'time' | 'date-time';
|
|
253
267
|
export type SectionNeighbors = {
|
|
254
268
|
[sectionIndex: number]: {
|
|
255
269
|
/**
|