@mui/x-date-pickers 8.0.0-alpha.6 → 8.0.0-alpha.8
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/CHANGELOG.md +242 -1
- package/DateCalendar/DateCalendar.js +1 -1
- package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
- package/DateCalendar/PickersSlideTransition.d.ts +1 -1
- package/DateField/DateField.js +26 -31
- package/DateField/DateField.types.d.ts +6 -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 +5 -0
- package/DatePicker/DatePickerToolbar.d.ts +1 -2
- package/DatePicker/DatePickerToolbar.js +7 -11
- package/DatePicker/shared.d.ts +1 -1
- package/DateTimeField/DateTimeField.js +26 -31
- package/DateTimeField/DateTimeField.types.d.ts +6 -15
- package/DateTimeField/useDateTimeField.d.ts +1 -1
- package/DateTimeField/useDateTimeField.js +14 -11
- package/DateTimePicker/DateTimePicker.js +2 -2
- package/DateTimePicker/DateTimePickerTabs.js +2 -2
- package/DateTimePicker/DateTimePickerToolbar.d.ts +6 -2
- package/DateTimePicker/DateTimePickerToolbar.js +36 -31
- package/DateTimePicker/shared.d.ts +1 -1
- package/DesktopDatePicker/DesktopDatePicker.js +9 -14
- package/DesktopDatePicker/DesktopDatePicker.types.d.ts +5 -0
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +14 -22
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -5
- package/DesktopTimePicker/DesktopTimePicker.js +4 -19
- package/MobileDatePicker/MobileDatePicker.js +2 -11
- package/MobileDateTimePicker/MobileDateTimePicker.js +2 -11
- package/MobileTimePicker/MobileTimePicker.js +2 -11
- package/PickersActionBar/PickersActionBar.d.ts +6 -3
- package/PickersActionBar/PickersActionBar.js +6 -3
- package/PickersLayout/PickersLayout.js +1 -5
- package/PickersLayout/PickersLayout.types.d.ts +2 -3
- package/PickersLayout/usePickerLayout.js +12 -31
- package/PickersShortcuts/PickersShortcuts.d.ts +2 -5
- package/PickersShortcuts/PickersShortcuts.js +13 -10
- package/PickersShortcuts/index.d.ts +1 -1
- package/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
- package/PickersTextField/PickersTextField.js +1 -1
- package/TimeField/TimeField.js +25 -30
- package/TimeField/TimeField.types.d.ts +6 -15
- package/TimeField/useTimeField.d.ts +1 -1
- package/TimeField/useTimeField.js +14 -11
- package/TimePicker/TimePicker.js +2 -2
- package/TimePicker/TimePickerToolbar.d.ts +1 -2
- package/TimePicker/TimePickerToolbar.js +20 -18
- package/TimePicker/shared.d.ts +1 -1
- package/hooks/index.d.ts +1 -0
- package/hooks/index.js +2 -1
- package/hooks/useIsValidValue.d.ts +7 -0
- package/hooks/useIsValidValue.js +11 -0
- package/hooks/useParsedFormat.d.ts +8 -6
- package/hooks/useParsedFormat.js +10 -12
- package/hooks/usePickerActionsContext.d.ts +3 -1
- package/hooks/usePickerActionsContext.js +0 -1
- package/hooks/usePickerContext.d.ts +5 -3
- package/hooks/usePickerContext.js +3 -2
- package/hooks/useSplitFieldProps.d.ts +12 -3
- package/hooks/useSplitFieldProps.js +8 -3
- package/index.d.ts +1 -0
- package/index.js +3 -2
- package/internals/components/PickerFieldUI.d.ts +132 -0
- package/internals/components/PickerFieldUI.js +306 -0
- package/internals/components/PickerProvider.d.ts +34 -12
- package/internals/components/PickerProvider.js +14 -4
- package/internals/components/PickersToolbar.d.ts +2 -3
- package/internals/components/PickersToolbar.js +1 -1
- package/internals/hooks/date-helpers-hooks.js +4 -3
- package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -96
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +10 -33
- 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.js +12 -4
- package/internals/hooks/useField/useField.types.d.ts +11 -4
- package/internals/hooks/useField/useField.utils.js +2 -2
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +15 -0
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +46 -0
- package/internals/hooks/useField/useFieldState.js +2 -2
- package/internals/hooks/useField/useFieldV6TextField.js +2 -2
- package/internals/hooks/useField/useFieldV7TextField.js +3 -3
- package/internals/hooks/useFieldOwnerState.d.ts +1 -2
- package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -1
- package/internals/hooks/useMobilePicker/useMobilePicker.js +20 -51
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +8 -16
- package/internals/hooks/useNullablePickerContext.d.ts +5 -0
- package/internals/hooks/useNullablePickerContext.js +10 -0
- package/internals/hooks/useOpenState.js +3 -2
- package/internals/hooks/usePicker/usePicker.d.ts +1 -2
- package/internals/hooks/usePicker/usePicker.js +0 -9
- package/internals/hooks/usePicker/usePicker.types.d.ts +7 -9
- package/internals/hooks/usePicker/usePickerProvider.d.ts +12 -6
- package/internals/hooks/usePicker/usePickerProvider.js +26 -4
- package/internals/hooks/usePicker/usePickerValue.d.ts +1 -1
- package/internals/hooks/usePicker/usePickerValue.js +62 -185
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +52 -55
- package/internals/hooks/usePicker/usePickerViews.d.ts +27 -23
- package/internals/hooks/usePicker/usePickerViews.js +17 -11
- package/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
- package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +2 -2
- package/internals/hooks/useUtils.d.ts +4 -3
- package/internals/hooks/useUtils.js +1 -1
- package/internals/index.d.ts +11 -6
- package/internals/index.js +6 -4
- package/internals/models/fields.d.ts +3 -16
- 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/props/basePickerProps.d.ts +2 -14
- package/internals/models/props/toolbar.d.ts +1 -5
- package/internals/utils/date-utils.js +1 -1
- 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/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 +1 -1
- package/models/fields.d.ts +4 -4
- package/models/index.d.ts +1 -0
- package/models/index.js +1 -0
- package/models/manager.d.ts +87 -0
- package/models/manager.js +1 -0
- package/models/pickers.d.ts +7 -0
- package/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/DateCalendar/DateCalendar.js +1 -1
- package/modern/DateField/DateField.js +26 -31
- package/modern/DateField/useDateField.js +14 -11
- package/modern/DatePicker/DatePicker.js +1 -1
- package/modern/DatePicker/DatePickerToolbar.js +7 -11
- package/modern/DateTimeField/DateTimeField.js +26 -31
- package/modern/DateTimeField/useDateTimeField.js +14 -11
- package/modern/DateTimePicker/DateTimePicker.js +2 -2
- package/modern/DateTimePicker/DateTimePickerTabs.js +2 -2
- package/modern/DateTimePicker/DateTimePickerToolbar.js +36 -31
- package/modern/DesktopDatePicker/DesktopDatePicker.js +9 -14
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +14 -22
- package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -5
- package/modern/DesktopTimePicker/DesktopTimePicker.js +4 -19
- package/modern/MobileDatePicker/MobileDatePicker.js +2 -11
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +2 -11
- package/modern/MobileTimePicker/MobileTimePicker.js +2 -11
- package/modern/PickersActionBar/PickersActionBar.js +6 -3
- package/modern/PickersLayout/PickersLayout.js +1 -5
- package/modern/PickersLayout/usePickerLayout.js +12 -31
- package/modern/PickersShortcuts/PickersShortcuts.js +13 -10
- package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
- package/modern/PickersTextField/PickersTextField.js +1 -1
- package/modern/TimeField/TimeField.js +25 -30
- package/modern/TimeField/useTimeField.js +14 -11
- package/modern/TimePicker/TimePicker.js +2 -2
- package/modern/TimePicker/TimePickerToolbar.js +20 -18
- package/modern/hooks/index.js +2 -1
- package/modern/hooks/useIsValidValue.js +11 -0
- package/modern/hooks/useParsedFormat.js +10 -12
- package/modern/hooks/usePickerActionsContext.js +0 -1
- package/modern/hooks/usePickerContext.js +3 -2
- package/modern/hooks/useSplitFieldProps.js +8 -3
- package/modern/index.js +3 -2
- package/modern/internals/components/PickerFieldUI.js +306 -0
- package/modern/internals/components/PickerProvider.js +14 -4
- package/modern/internals/components/PickersToolbar.js +1 -1
- package/modern/internals/hooks/date-helpers-hooks.js +4 -3
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -96
- 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 +12 -4
- package/modern/internals/hooks/useField/useField.utils.js +2 -2
- package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +46 -0
- package/modern/internals/hooks/useField/useFieldState.js +2 -2
- package/modern/internals/hooks/useField/useFieldV6TextField.js +2 -2
- package/modern/internals/hooks/useField/useFieldV7TextField.js +3 -3
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +20 -51
- package/modern/internals/hooks/useNullablePickerContext.js +10 -0
- package/modern/internals/hooks/useOpenState.js +3 -2
- package/modern/internals/hooks/usePicker/usePicker.js +0 -9
- package/modern/internals/hooks/usePicker/usePickerProvider.js +26 -4
- package/modern/internals/hooks/usePicker/usePickerValue.js +62 -185
- package/modern/internals/hooks/usePicker/usePickerViews.js +17 -11
- package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
- package/modern/internals/hooks/useUtils.js +1 -1
- package/modern/internals/index.js +6 -4
- package/modern/internals/models/index.js +2 -1
- package/modern/internals/models/manager.js +1 -0
- package/modern/internals/utils/date-utils.js +1 -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/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/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/DateCalendar/DateCalendar.js +1 -1
- package/node/DateField/DateField.js +26 -31
- package/node/DateField/useDateField.js +13 -10
- package/node/DatePicker/DatePicker.js +1 -1
- package/node/DatePicker/DatePickerToolbar.js +7 -11
- package/node/DateTimeField/DateTimeField.js +26 -31
- package/node/DateTimeField/useDateTimeField.js +13 -10
- package/node/DateTimePicker/DateTimePicker.js +2 -2
- package/node/DateTimePicker/DateTimePickerTabs.js +2 -2
- package/node/DateTimePicker/DateTimePickerToolbar.js +36 -31
- package/node/DesktopDatePicker/DesktopDatePicker.js +9 -14
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +14 -22
- package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -5
- package/node/DesktopTimePicker/DesktopTimePicker.js +4 -19
- package/node/MobileDatePicker/MobileDatePicker.js +2 -11
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +2 -11
- package/node/MobileTimePicker/MobileTimePicker.js +2 -11
- package/node/PickersActionBar/PickersActionBar.js +8 -5
- package/node/PickersLayout/PickersLayout.js +1 -5
- package/node/PickersLayout/usePickerLayout.js +16 -35
- package/node/PickersShortcuts/PickersShortcuts.js +13 -10
- package/node/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
- package/node/PickersTextField/PickersTextField.js +1 -1
- package/node/TimeField/TimeField.js +25 -30
- package/node/TimeField/useTimeField.js +13 -10
- package/node/TimePicker/TimePicker.js +2 -2
- package/node/TimePicker/TimePickerToolbar.js +20 -18
- package/node/hooks/index.js +8 -1
- package/node/hooks/useIsValidValue.js +18 -0
- package/node/hooks/useParsedFormat.js +10 -12
- 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 +318 -0
- package/node/internals/components/PickerProvider.js +16 -6
- package/node/internals/components/PickersToolbar.js +1 -1
- package/node/internals/hooks/date-helpers-hooks.js +4 -3
- package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +23 -98
- 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 +11 -3
- package/node/internals/hooks/useField/useField.utils.js +2 -2
- package/node/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +55 -0
- package/node/internals/hooks/useField/useFieldState.js +2 -2
- package/node/internals/hooks/useField/useFieldV6TextField.js +2 -2
- package/node/internals/hooks/useField/useFieldV7TextField.js +3 -3
- package/node/internals/hooks/useMobilePicker/useMobilePicker.js +20 -51
- package/node/internals/hooks/useNullablePickerContext.js +16 -0
- package/node/internals/hooks/useOpenState.js +4 -2
- package/node/internals/hooks/usePicker/usePicker.js +0 -10
- package/node/internals/hooks/usePicker/usePickerProvider.js +26 -4
- package/node/internals/hooks/usePicker/usePickerValue.js +62 -185
- package/node/internals/hooks/usePicker/usePickerViews.js +17 -12
- package/node/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
- package/node/internals/hooks/useUtils.js +1 -1
- package/node/internals/index.js +45 -19
- package/node/internals/models/index.js +11 -0
- package/node/internals/models/manager.js +5 -0
- package/node/internals/utils/date-utils.js +1 -1
- 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/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/package.json +3 -3
- package/themeAugmentation/props.d.ts +1 -1
- package/validation/extractValidationProps.d.ts +1 -1
- 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/internals/hooks/defaultizedFieldProps.d.ts +0 -18
- package/internals/hooks/defaultizedFieldProps.js +0 -40
- 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/internals/hooks/defaultizedFieldProps.js +0 -40
- package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
- package/node/AdapterDateFnsV3/AdapterDateFnsV3.js +0 -299
- package/node/internals/hooks/defaultizedFieldProps.js +0 -50
- package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -52
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { TimeViewWithMeridiem } from '../internals/models';
|
|
2
|
+
export declare const zhTW: {
|
|
3
|
+
components: {
|
|
4
|
+
MuiLocalizationProvider: {
|
|
5
|
+
defaultProps: {
|
|
6
|
+
localeText: {
|
|
7
|
+
previousMonth?: string | undefined;
|
|
8
|
+
nextMonth?: string | undefined;
|
|
9
|
+
calendarWeekNumberHeaderLabel?: string | undefined;
|
|
10
|
+
calendarWeekNumberHeaderText?: string | undefined;
|
|
11
|
+
calendarWeekNumberAriaLabelText?: ((weekNumber: number) => string) | undefined;
|
|
12
|
+
calendarWeekNumberText?: ((weekNumber: number) => string) | undefined;
|
|
13
|
+
openPreviousView?: string | undefined;
|
|
14
|
+
openNextView?: string | undefined;
|
|
15
|
+
calendarViewSwitchingButtonAriaLabel?: ((currentView: import("@mui/x-date-pickers/models").DateView) => string) | undefined;
|
|
16
|
+
start?: string | undefined;
|
|
17
|
+
end?: string | undefined;
|
|
18
|
+
startDate?: string | undefined;
|
|
19
|
+
startTime?: string | undefined;
|
|
20
|
+
endDate?: string | undefined;
|
|
21
|
+
endTime?: string | undefined;
|
|
22
|
+
cancelButtonLabel?: string | undefined;
|
|
23
|
+
clearButtonLabel?: string | undefined;
|
|
24
|
+
okButtonLabel?: string | undefined;
|
|
25
|
+
todayButtonLabel?: string | undefined;
|
|
26
|
+
clockLabelText?: ((view: import("@mui/x-date-pickers/models").TimeView, formattedTime: string | null) => string) | undefined;
|
|
27
|
+
hoursClockNumberText?: ((hours: string) => string) | undefined;
|
|
28
|
+
minutesClockNumberText?: ((minutes: string) => string) | undefined;
|
|
29
|
+
secondsClockNumberText?: ((seconds: string) => string) | undefined;
|
|
30
|
+
selectViewText?: ((view: TimeViewWithMeridiem) => string) | undefined;
|
|
31
|
+
openDatePickerDialogue?: ((formattedDate: string | null) => string) | undefined;
|
|
32
|
+
openTimePickerDialogue?: ((formattedTime: string | null) => string) | undefined;
|
|
33
|
+
fieldClearLabel?: string | undefined;
|
|
34
|
+
timeTableLabel?: string | undefined;
|
|
35
|
+
dateTableLabel?: string | undefined;
|
|
36
|
+
fieldYearPlaceholder?: ((params: {
|
|
37
|
+
digitAmount: number;
|
|
38
|
+
format: string;
|
|
39
|
+
}) => string) | undefined;
|
|
40
|
+
fieldMonthPlaceholder?: ((params: {
|
|
41
|
+
contentType: import("@mui/x-date-pickers/models").FieldSectionContentType;
|
|
42
|
+
format: string;
|
|
43
|
+
}) => string) | undefined;
|
|
44
|
+
fieldDayPlaceholder?: ((params: {
|
|
45
|
+
format: string;
|
|
46
|
+
}) => string) | undefined;
|
|
47
|
+
fieldWeekDayPlaceholder?: ((params: {
|
|
48
|
+
contentType: import("@mui/x-date-pickers/models").FieldSectionContentType;
|
|
49
|
+
format: string;
|
|
50
|
+
}) => string) | undefined;
|
|
51
|
+
fieldHoursPlaceholder?: ((params: {
|
|
52
|
+
format: string;
|
|
53
|
+
}) => string) | undefined;
|
|
54
|
+
fieldMinutesPlaceholder?: ((params: {
|
|
55
|
+
format: string;
|
|
56
|
+
}) => string) | undefined;
|
|
57
|
+
fieldSecondsPlaceholder?: ((params: {
|
|
58
|
+
format: string;
|
|
59
|
+
}) => string) | undefined;
|
|
60
|
+
fieldMeridiemPlaceholder?: ((params: {
|
|
61
|
+
format: string;
|
|
62
|
+
}) => string) | undefined;
|
|
63
|
+
year?: string | undefined;
|
|
64
|
+
month?: string | undefined;
|
|
65
|
+
day?: string | undefined;
|
|
66
|
+
weekDay?: string | undefined;
|
|
67
|
+
hours?: string | undefined;
|
|
68
|
+
minutes?: string | undefined;
|
|
69
|
+
seconds?: string | undefined;
|
|
70
|
+
meridiem?: string | undefined;
|
|
71
|
+
empty?: string | undefined;
|
|
72
|
+
datePickerToolbarTitle?: string | undefined;
|
|
73
|
+
timePickerToolbarTitle?: string | undefined;
|
|
74
|
+
dateTimePickerToolbarTitle?: string | undefined;
|
|
75
|
+
dateRangePickerToolbarTitle?: string | undefined;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
};
|
package/locales/zhTW.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { getPickersLocalization } from "./utils/getPickersLocalization.js";
|
|
2
|
+
const views = {
|
|
3
|
+
hours: '小時',
|
|
4
|
+
minutes: '分鐘',
|
|
5
|
+
seconds: '秒',
|
|
6
|
+
meridiem: '十二小時制'
|
|
7
|
+
};
|
|
8
|
+
const zhTWPickers = {
|
|
9
|
+
// Calendar navigation
|
|
10
|
+
previousMonth: '上個月',
|
|
11
|
+
nextMonth: '下個月',
|
|
12
|
+
// View navigation
|
|
13
|
+
openPreviousView: '前一個視圖',
|
|
14
|
+
openNextView: '下一個視圖',
|
|
15
|
+
calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? '年視圖已打開,切換為日曆視圖' : '日曆視圖已打開,切換為年視圖',
|
|
16
|
+
// DateRange labels
|
|
17
|
+
start: '開始',
|
|
18
|
+
end: '結束',
|
|
19
|
+
startDate: '開始日期',
|
|
20
|
+
startTime: '開始時間',
|
|
21
|
+
endDate: '結束日期',
|
|
22
|
+
endTime: '結束時間',
|
|
23
|
+
// Action bar
|
|
24
|
+
cancelButtonLabel: '取消',
|
|
25
|
+
clearButtonLabel: '清除',
|
|
26
|
+
okButtonLabel: '確認',
|
|
27
|
+
todayButtonLabel: '今天',
|
|
28
|
+
// Toolbar titles
|
|
29
|
+
datePickerToolbarTitle: '選擇日期',
|
|
30
|
+
dateTimePickerToolbarTitle: '選擇日期和時間',
|
|
31
|
+
timePickerToolbarTitle: '選擇時間',
|
|
32
|
+
dateRangePickerToolbarTitle: '選擇時間範圍',
|
|
33
|
+
// Clock labels
|
|
34
|
+
clockLabelText: (view, formattedTime) => `選擇 ${views[view]}. ${!formattedTime ? '未選擇時間' : `已選擇${formattedTime}`}`,
|
|
35
|
+
hoursClockNumberText: hours => `${hours}小時`,
|
|
36
|
+
minutesClockNumberText: minutes => `${minutes}分鐘`,
|
|
37
|
+
secondsClockNumberText: seconds => `${seconds}秒`,
|
|
38
|
+
// Digital clock labels
|
|
39
|
+
selectViewText: view => `選擇 ${views[view]}`,
|
|
40
|
+
// Calendar labels
|
|
41
|
+
calendarWeekNumberHeaderLabel: '週數',
|
|
42
|
+
calendarWeekNumberHeaderText: '#',
|
|
43
|
+
calendarWeekNumberAriaLabelText: weekNumber => `第${weekNumber}週`,
|
|
44
|
+
calendarWeekNumberText: weekNumber => `${weekNumber}`,
|
|
45
|
+
// Open picker labels
|
|
46
|
+
openDatePickerDialogue: formattedDate => formattedDate ? `選擇日期,已選擇${formattedDate}` : '選擇日期',
|
|
47
|
+
openTimePickerDialogue: formattedTime => formattedTime ? `選擇時間,已選擇${formattedTime}` : '選擇時間',
|
|
48
|
+
fieldClearLabel: '清除',
|
|
49
|
+
// Table labels
|
|
50
|
+
timeTableLabel: '選擇時間',
|
|
51
|
+
dateTableLabel: '選擇日期',
|
|
52
|
+
// Field section placeholders
|
|
53
|
+
fieldYearPlaceholder: params => 'Y'.repeat(params.digitAmount),
|
|
54
|
+
fieldMonthPlaceholder: params => params.contentType === 'letter' ? 'MMMM' : 'MM',
|
|
55
|
+
fieldDayPlaceholder: () => 'DD',
|
|
56
|
+
fieldWeekDayPlaceholder: params => params.contentType === 'letter' ? 'EEEE' : 'EE',
|
|
57
|
+
fieldHoursPlaceholder: () => 'hh',
|
|
58
|
+
fieldMinutesPlaceholder: () => 'mm',
|
|
59
|
+
fieldSecondsPlaceholder: () => 'ss',
|
|
60
|
+
fieldMeridiemPlaceholder: () => 'aa',
|
|
61
|
+
// View names
|
|
62
|
+
year: '年份',
|
|
63
|
+
month: '月份',
|
|
64
|
+
day: '日期',
|
|
65
|
+
weekDay: '星期',
|
|
66
|
+
hours: '時',
|
|
67
|
+
minutes: '分',
|
|
68
|
+
seconds: '秒',
|
|
69
|
+
meridiem: '十二小時制',
|
|
70
|
+
// Common
|
|
71
|
+
empty: '空'
|
|
72
|
+
};
|
|
73
|
+
export const zhTW = getPickersLocalization(zhTWPickers);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { useDateManager } from './useDateManager';
|
|
2
|
+
export type { UseDateManagerReturnValue, UseDateManagerParameters, DateManagerFieldInternalProps, } from './useDateManager';
|
|
3
|
+
export { useTimeManager } from './useTimeManager';
|
|
4
|
+
export type { UseTimeManagerReturnValue, UseTimeManagerParameters, TimeManagerFieldInternalProps, } from './useTimeManager';
|
|
5
|
+
export { useDateTimeManager } from './useDateTimeManager';
|
|
6
|
+
export type { UseDateTimeManagerReturnValue, UseDateTimeManagerParameters, DateTimeManagerFieldInternalProps, } from './useDateTimeManager';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { MakeOptional } from '@mui/x-internals/types';
|
|
2
|
+
import { PickerManager, DateValidationError } from '../models';
|
|
3
|
+
import { UseFieldInternalProps } from '../internals/hooks/useField';
|
|
4
|
+
import { MuiPickersAdapterContextValue } from '../LocalizationProvider/LocalizationProvider';
|
|
5
|
+
import { ExportedValidateDateProps, ValidateDatePropsToDefault, ValidateDateProps } from '../validation/validateDate';
|
|
6
|
+
import { PickerValue } from '../internals/models';
|
|
7
|
+
export declare function useDateManager<TEnableAccessibleFieldDOMStructure extends boolean = true>(parameters?: UseDateManagerParameters<TEnableAccessibleFieldDOMStructure>): UseDateManagerReturnValue<TEnableAccessibleFieldDOMStructure>;
|
|
8
|
+
/**
|
|
9
|
+
* Private utility function to get the default internal props for the fields with date editing.
|
|
10
|
+
* Is used by the `useDateManager` and `useDateRangeManager` hooks.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getDateFieldInternalPropsDefaults(parameters: GetDateFieldInternalPropsDefaultsParameters): GetDateFieldInternalPropsDefaultsReturnValue;
|
|
13
|
+
export interface UseDateManagerParameters<TEnableAccessibleFieldDOMStructure extends boolean> {
|
|
14
|
+
enableAccessibleFieldDOMStructure?: TEnableAccessibleFieldDOMStructure;
|
|
15
|
+
}
|
|
16
|
+
export type UseDateManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerValue, TEnableAccessibleFieldDOMStructure, DateValidationError, DateManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>, DateManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure>>;
|
|
17
|
+
export interface DateManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, DateValidationError>, 'format'>, ExportedValidateDateProps {
|
|
18
|
+
}
|
|
19
|
+
interface DateManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure extends boolean> extends UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, DateValidationError>, ValidateDateProps {
|
|
20
|
+
}
|
|
21
|
+
type DateManagerFieldPropsToDefault = 'format' | ValidateDatePropsToDefault;
|
|
22
|
+
interface GetDateFieldInternalPropsDefaultsParameters extends Pick<MuiPickersAdapterContextValue, 'defaultDates' | 'utils'> {
|
|
23
|
+
internalProps: Pick<DateManagerFieldInternalProps<true>, DateManagerFieldPropsToDefault>;
|
|
24
|
+
}
|
|
25
|
+
interface GetDateFieldInternalPropsDefaultsReturnValue extends Pick<DateManagerFieldInternalPropsWithDefaults<true>, DateManagerFieldPropsToDefault> {
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import { applyDefaultDate } from "../internals/utils/date-utils.js";
|
|
6
|
+
import { singleItemFieldValueManager, singleItemValueManager } from "../internals/utils/valueManagers.js";
|
|
7
|
+
import { validateDate } from "../validation/index.js";
|
|
8
|
+
export function useDateManager(parameters = {}) {
|
|
9
|
+
const {
|
|
10
|
+
enableAccessibleFieldDOMStructure = true
|
|
11
|
+
} = parameters;
|
|
12
|
+
return React.useMemo(() => ({
|
|
13
|
+
valueType: 'date',
|
|
14
|
+
validator: validateDate,
|
|
15
|
+
internal_valueManager: singleItemValueManager,
|
|
16
|
+
internal_fieldValueManager: singleItemFieldValueManager,
|
|
17
|
+
internal_enableAccessibleFieldDOMStructure: enableAccessibleFieldDOMStructure,
|
|
18
|
+
internal_applyDefaultsToFieldInternalProps: ({
|
|
19
|
+
internalProps,
|
|
20
|
+
utils,
|
|
21
|
+
defaultDates
|
|
22
|
+
}) => _extends({}, internalProps, getDateFieldInternalPropsDefaults({
|
|
23
|
+
defaultDates,
|
|
24
|
+
utils,
|
|
25
|
+
internalProps
|
|
26
|
+
})),
|
|
27
|
+
internal_getOpenPickerButtonAriaLabel: ({
|
|
28
|
+
value,
|
|
29
|
+
utils,
|
|
30
|
+
localeText
|
|
31
|
+
}) => {
|
|
32
|
+
const formattedValue = utils.isValid(value) ? utils.format(value, 'fullDate') : null;
|
|
33
|
+
return localeText.openDatePickerDialogue(formattedValue);
|
|
34
|
+
}
|
|
35
|
+
}), [enableAccessibleFieldDOMStructure]);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Private utility function to get the default internal props for the fields with date editing.
|
|
40
|
+
* Is used by the `useDateManager` and `useDateRangeManager` hooks.
|
|
41
|
+
*/
|
|
42
|
+
export function getDateFieldInternalPropsDefaults(parameters) {
|
|
43
|
+
const {
|
|
44
|
+
defaultDates,
|
|
45
|
+
utils,
|
|
46
|
+
internalProps
|
|
47
|
+
} = parameters;
|
|
48
|
+
return {
|
|
49
|
+
format: internalProps.format ?? utils.formats.keyboardDate,
|
|
50
|
+
disablePast: internalProps.disablePast ?? false,
|
|
51
|
+
disableFuture: internalProps.disableFuture ?? false,
|
|
52
|
+
minDate: applyDefaultDate(utils, internalProps.minDate, defaultDates.minDate),
|
|
53
|
+
maxDate: applyDefaultDate(utils, internalProps.maxDate, defaultDates.maxDate)
|
|
54
|
+
};
|
|
55
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { MakeOptional } from '@mui/x-internals/types';
|
|
2
|
+
import { PickerManager, DateTimeValidationError } from '../models';
|
|
3
|
+
import { UseFieldInternalProps } from '../internals/hooks/useField';
|
|
4
|
+
import { MuiPickersAdapterContextValue } from '../LocalizationProvider/LocalizationProvider';
|
|
5
|
+
import { AmPmProps } from '../internals/models/props/time';
|
|
6
|
+
import { ExportedValidateDateTimeProps, ValidateDateTimeProps, ValidateDateTimePropsToDefault } from '../validation/validateDateTime';
|
|
7
|
+
import { PickerValue } from '../internals/models';
|
|
8
|
+
export declare function useDateTimeManager<TEnableAccessibleFieldDOMStructure extends boolean = true>(parameters?: UseDateTimeManagerParameters<TEnableAccessibleFieldDOMStructure>): UseDateTimeManagerReturnValue<TEnableAccessibleFieldDOMStructure>;
|
|
9
|
+
/**
|
|
10
|
+
* Private utility function to get the default internal props for the field with date time editing.
|
|
11
|
+
* Is used by the `useDateTimeManager` and `useDateTimeRangeManager` hooks.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getDateTimeFieldInternalPropsDefaults(parameters: GetDateTimeFieldInternalPropsDefaultsParameters): GetDateTimeFieldInternalPropsDefaultsReturnValue;
|
|
14
|
+
export interface UseDateTimeManagerParameters<TEnableAccessibleFieldDOMStructure extends boolean> {
|
|
15
|
+
enableAccessibleFieldDOMStructure?: TEnableAccessibleFieldDOMStructure;
|
|
16
|
+
}
|
|
17
|
+
export type UseDateTimeManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerValue, TEnableAccessibleFieldDOMStructure, DateTimeValidationError, DateTimeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>, DateTimeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure>>;
|
|
18
|
+
export interface DateTimeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, DateTimeValidationError>, 'format'>, ExportedValidateDateTimeProps, AmPmProps {
|
|
19
|
+
}
|
|
20
|
+
interface DateTimeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure extends boolean> extends UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, DateTimeValidationError>, ValidateDateTimeProps {
|
|
21
|
+
}
|
|
22
|
+
type DateTimeManagerFieldPropsToDefault = 'format' | 'minTime' | 'maxTime' | ValidateDateTimePropsToDefault;
|
|
23
|
+
interface GetDateTimeFieldInternalPropsDefaultsParameters extends Pick<MuiPickersAdapterContextValue, 'defaultDates' | 'utils'> {
|
|
24
|
+
internalProps: Pick<DateTimeManagerFieldInternalProps<true>, DateTimeManagerFieldPropsToDefault | 'minDateTime' | 'maxDateTime' | 'ampm'>;
|
|
25
|
+
}
|
|
26
|
+
interface GetDateTimeFieldInternalPropsDefaultsReturnValue extends Pick<DateTimeManagerFieldInternalPropsWithDefaults<true>, DateTimeManagerFieldPropsToDefault | 'disableIgnoringDatePartForTimeValidation'> {
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import { applyDefaultDate } from "../internals/utils/date-utils.js";
|
|
6
|
+
import { singleItemFieldValueManager, singleItemValueManager } from "../internals/utils/valueManagers.js";
|
|
7
|
+
import { validateDateTime } from "../validation/index.js";
|
|
8
|
+
export function useDateTimeManager(parameters = {}) {
|
|
9
|
+
const {
|
|
10
|
+
enableAccessibleFieldDOMStructure = true
|
|
11
|
+
} = parameters;
|
|
12
|
+
return React.useMemo(() => ({
|
|
13
|
+
valueType: 'date-time',
|
|
14
|
+
validator: validateDateTime,
|
|
15
|
+
internal_valueManager: singleItemValueManager,
|
|
16
|
+
internal_fieldValueManager: singleItemFieldValueManager,
|
|
17
|
+
internal_enableAccessibleFieldDOMStructure: enableAccessibleFieldDOMStructure,
|
|
18
|
+
internal_applyDefaultsToFieldInternalProps: ({
|
|
19
|
+
internalProps,
|
|
20
|
+
utils,
|
|
21
|
+
defaultDates
|
|
22
|
+
}) => _extends({}, internalProps, getDateTimeFieldInternalPropsDefaults({
|
|
23
|
+
internalProps,
|
|
24
|
+
utils,
|
|
25
|
+
defaultDates
|
|
26
|
+
})),
|
|
27
|
+
internal_getOpenPickerButtonAriaLabel: ({
|
|
28
|
+
value,
|
|
29
|
+
utils,
|
|
30
|
+
localeText
|
|
31
|
+
}) => {
|
|
32
|
+
const formattedValue = utils.isValid(value) ? utils.format(value, 'fullDate') : null;
|
|
33
|
+
return localeText.openDatePickerDialogue(formattedValue);
|
|
34
|
+
}
|
|
35
|
+
}), [enableAccessibleFieldDOMStructure]);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Private utility function to get the default internal props for the field with date time editing.
|
|
40
|
+
* Is used by the `useDateTimeManager` and `useDateTimeRangeManager` hooks.
|
|
41
|
+
*/
|
|
42
|
+
export function getDateTimeFieldInternalPropsDefaults(parameters) {
|
|
43
|
+
const {
|
|
44
|
+
defaultDates,
|
|
45
|
+
utils,
|
|
46
|
+
internalProps
|
|
47
|
+
} = parameters;
|
|
48
|
+
const ampm = internalProps.ampm ?? utils.is12HourCycleInCurrentLocale();
|
|
49
|
+
const defaultFormat = ampm ? utils.formats.keyboardDateTime12h : utils.formats.keyboardDateTime24h;
|
|
50
|
+
return {
|
|
51
|
+
disablePast: internalProps.disablePast ?? false,
|
|
52
|
+
disableFuture: internalProps.disableFuture ?? false,
|
|
53
|
+
format: internalProps.format ?? defaultFormat,
|
|
54
|
+
disableIgnoringDatePartForTimeValidation: Boolean(internalProps.minDateTime || internalProps.maxDateTime),
|
|
55
|
+
minDate: applyDefaultDate(utils, internalProps.minDateTime ?? internalProps.minDate, defaultDates.minDate),
|
|
56
|
+
maxDate: applyDefaultDate(utils, internalProps.maxDateTime ?? internalProps.maxDate, defaultDates.maxDate),
|
|
57
|
+
minTime: internalProps.minDateTime ?? internalProps.minTime,
|
|
58
|
+
maxTime: internalProps.maxDateTime ?? internalProps.maxTime
|
|
59
|
+
};
|
|
60
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { MakeOptional } from '@mui/x-internals/types';
|
|
2
|
+
import { PickerManager, TimeValidationError } from '../models';
|
|
3
|
+
import { UseFieldInternalProps } from '../internals/hooks/useField';
|
|
4
|
+
import { MuiPickersAdapterContextValue } from '../LocalizationProvider/LocalizationProvider';
|
|
5
|
+
import { AmPmProps } from '../internals/models/props/time';
|
|
6
|
+
import { ExportedValidateTimeProps, ValidateTimeProps, ValidateTimePropsToDefault } from '../validation/validateTime';
|
|
7
|
+
import { PickerValue } from '../internals/models';
|
|
8
|
+
export declare function useTimeManager<TEnableAccessibleFieldDOMStructure extends boolean = true>(parameters?: UseTimeManagerParameters<TEnableAccessibleFieldDOMStructure>): UseTimeManagerReturnValue<TEnableAccessibleFieldDOMStructure>;
|
|
9
|
+
/**
|
|
10
|
+
* Private utility function to get the default internal props for the fields with time editing.
|
|
11
|
+
* Is used by the `useTimeManager` and `useTimeRangeManager` hooks.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getTimeFieldInternalPropsDefaults(parameters: GetTimeFieldInternalPropsDefaultsParameters): GetTimeFieldInternalPropsDefaultsReturnValue;
|
|
14
|
+
export interface UseTimeManagerParameters<TEnableAccessibleFieldDOMStructure extends boolean> {
|
|
15
|
+
enableAccessibleFieldDOMStructure?: TEnableAccessibleFieldDOMStructure;
|
|
16
|
+
}
|
|
17
|
+
export type UseTimeManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerValue, TEnableAccessibleFieldDOMStructure, TimeValidationError, TimeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>, TimeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure>>;
|
|
18
|
+
export interface TimeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, TimeValidationError>, 'format'>, ExportedValidateTimeProps, AmPmProps {
|
|
19
|
+
}
|
|
20
|
+
interface TimeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure extends boolean> extends UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, TimeValidationError>, ValidateTimeProps {
|
|
21
|
+
}
|
|
22
|
+
type TimeManagerFieldPropsToDefault = 'format' | ValidateTimePropsToDefault;
|
|
23
|
+
interface GetTimeFieldInternalPropsDefaultsParameters extends Pick<MuiPickersAdapterContextValue, 'utils'> {
|
|
24
|
+
internalProps: Pick<TimeManagerFieldInternalProps<true>, TimeManagerFieldPropsToDefault | 'ampm'>;
|
|
25
|
+
}
|
|
26
|
+
interface GetTimeFieldInternalPropsDefaultsReturnValue extends Pick<TimeManagerFieldInternalPropsWithDefaults<true>, TimeManagerFieldPropsToDefault> {
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import { singleItemFieldValueManager, singleItemValueManager } from "../internals/utils/valueManagers.js";
|
|
6
|
+
import { validateTime } from "../validation/index.js";
|
|
7
|
+
export function useTimeManager(parameters = {}) {
|
|
8
|
+
const {
|
|
9
|
+
enableAccessibleFieldDOMStructure = true
|
|
10
|
+
} = parameters;
|
|
11
|
+
return React.useMemo(() => ({
|
|
12
|
+
valueType: 'time',
|
|
13
|
+
validator: validateTime,
|
|
14
|
+
internal_valueManager: singleItemValueManager,
|
|
15
|
+
internal_fieldValueManager: singleItemFieldValueManager,
|
|
16
|
+
internal_enableAccessibleFieldDOMStructure: enableAccessibleFieldDOMStructure,
|
|
17
|
+
internal_applyDefaultsToFieldInternalProps: ({
|
|
18
|
+
internalProps,
|
|
19
|
+
utils
|
|
20
|
+
}) => _extends({}, internalProps, getTimeFieldInternalPropsDefaults({
|
|
21
|
+
utils,
|
|
22
|
+
internalProps
|
|
23
|
+
})),
|
|
24
|
+
internal_getOpenPickerButtonAriaLabel: ({
|
|
25
|
+
value,
|
|
26
|
+
utils,
|
|
27
|
+
localeText
|
|
28
|
+
}) => {
|
|
29
|
+
const formattedValue = utils.isValid(value) ? utils.format(value, 'fullTime') : null;
|
|
30
|
+
return localeText.openTimePickerDialogue(formattedValue);
|
|
31
|
+
}
|
|
32
|
+
}), [enableAccessibleFieldDOMStructure]);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Private utility function to get the default internal props for the fields with time editing.
|
|
37
|
+
* Is used by the `useTimeManager` and `useTimeRangeManager` hooks.
|
|
38
|
+
*/
|
|
39
|
+
export function getTimeFieldInternalPropsDefaults(parameters) {
|
|
40
|
+
const {
|
|
41
|
+
utils,
|
|
42
|
+
internalProps
|
|
43
|
+
} = parameters;
|
|
44
|
+
const ampm = internalProps.ampm ?? utils.is12HourCycleInCurrentLocale();
|
|
45
|
+
const defaultFormat = ampm ? utils.formats.fullTime12h : utils.formats.fullTime24h;
|
|
46
|
+
return {
|
|
47
|
+
disablePast: internalProps.disablePast ?? false,
|
|
48
|
+
disableFuture: internalProps.disableFuture ?? false,
|
|
49
|
+
format: internalProps.format ?? defaultFormat
|
|
50
|
+
};
|
|
51
|
+
}
|
package/models/adapters.d.ts
CHANGED
|
@@ -225,7 +225,7 @@ export interface MuiPickersAdapter<TLocale = any> {
|
|
|
225
225
|
* @param {PickerValidDate | null} value The value to test.
|
|
226
226
|
* @returns {boolean} `true` if the value is a valid date according to the date library.
|
|
227
227
|
*/
|
|
228
|
-
isValid(value: PickerValidDate | null):
|
|
228
|
+
isValid(value: PickerValidDate | null): value is PickerValidDate;
|
|
229
229
|
/**
|
|
230
230
|
* Format a date using an adapter format string (see the `AdapterFormats` interface)
|
|
231
231
|
* @param {PickerValidDate} value The date to format.
|
package/models/fields.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { TextFieldProps } from '@mui/material/TextField';
|
|
3
|
-
import type { ExportedUseClearableFieldProps, UseClearableFieldResponse } from '../hooks/useClearableField';
|
|
4
3
|
import type { ExportedPickersSectionListProps } from '../PickersSectionList';
|
|
5
4
|
import type { UseFieldInternalProps, UseFieldResponse } from '../internals/hooks/useField';
|
|
6
5
|
import type { PickersTextFieldProps } from '../PickersTextField';
|
|
7
6
|
import { BaseForwardedSingleInputFieldProps, FieldRangeSection, PickerRangeValue, PickerValidValue } from '../internals/models';
|
|
8
7
|
import { PickerOwnerState } from './pickers';
|
|
8
|
+
import type { ExportedPickerFieldUIProps } from '../internals/components/PickerFieldUI';
|
|
9
9
|
export type FieldSectionType = 'year' | 'month' | 'day' | 'weekDay' | 'hours' | 'minutes' | 'seconds' | 'meridiem' | 'empty';
|
|
10
10
|
export type FieldSectionContentType = 'digit' | 'digit-with-letter' | 'letter';
|
|
11
11
|
export interface FieldSection {
|
|
@@ -124,14 +124,14 @@ export interface FieldOwnerState extends PickerOwnerState {
|
|
|
124
124
|
/**
|
|
125
125
|
* Props the prop `slotProps.field` of a picker can receive.
|
|
126
126
|
*/
|
|
127
|
-
export type PickerFieldSlotProps<TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean> =
|
|
127
|
+
export type PickerFieldSlotProps<TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean> = ExportedPickerFieldUIProps & Pick<UseFieldInternalProps<TValue, TEnableAccessibleFieldDOMStructure, unknown>, 'shouldRespectLeadingZeros' | 'readOnly'> & React.HTMLAttributes<HTMLDivElement> & {
|
|
128
128
|
ref?: React.Ref<HTMLDivElement>;
|
|
129
129
|
};
|
|
130
130
|
/**
|
|
131
|
-
* Props the text field receives when used
|
|
131
|
+
* Props the text field receives when used inside a single input picker.
|
|
132
132
|
* Only contains what the MUI components are passing to the text field, not what users can pass using the `props.slotProps.field` and `props.slotProps.textField`.
|
|
133
133
|
*/
|
|
134
|
-
export type BaseSingleInputPickersTextFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> =
|
|
134
|
+
export type BaseSingleInputPickersTextFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> = Omit<UseFieldResponse<TEnableAccessibleFieldDOMStructure, BaseForwardedSingleInputFieldProps>, 'slots' | 'slotProps' | 'clearable' | 'onClear' | 'openPickerButtonPosition' | 'clearButtonPosition' | 'openPickerAriaLabel'>;
|
|
135
135
|
/**
|
|
136
136
|
* Props the built-in text field component can receive.
|
|
137
137
|
*/
|
package/models/index.d.ts
CHANGED
package/models/index.js
CHANGED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { FieldValueManager, UseFieldInternalProps } from '../internals/hooks/useField';
|
|
2
|
+
import type { PickerValueManager } from '../internals/hooks/usePicker';
|
|
3
|
+
import type { UseLocalizationContextReturnValue } from '../internals/hooks/useUtils';
|
|
4
|
+
import type { PickerValidValue } from '../internals/models';
|
|
5
|
+
import type { Validator } from '../validation';
|
|
6
|
+
import type { PickerValueType } from './common';
|
|
7
|
+
/**
|
|
8
|
+
* Object that contains all the necessary methods and properties to adapter a picker or a field for a given value type.
|
|
9
|
+
* You should never create your own manager.
|
|
10
|
+
* Instead, use the hooks exported from '@mui/x-date-pickers/managers' and '@mui/x-date-pickers-pro/managers'.
|
|
11
|
+
*
|
|
12
|
+
* ```tsx
|
|
13
|
+
* import { useDateManager } from '@mui/x-date-pickers/managers';
|
|
14
|
+
* import { useValidation } from '@mui/x-date-pickers/validation';
|
|
15
|
+
*
|
|
16
|
+
* const manager = useDateManager();
|
|
17
|
+
* const { hasValidationError } = useValidation({
|
|
18
|
+
* validator: manager.validator,
|
|
19
|
+
* value,
|
|
20
|
+
* timezone,
|
|
21
|
+
* props,
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export interface PickerManager<TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean, TError, TFieldInternalProps extends {}, TFieldInternalPropsWithDefaults extends UseFieldInternalProps<TValue, TEnableAccessibleFieldDOMStructure, TError>> {
|
|
26
|
+
/**
|
|
27
|
+
* The type of the value (e.g. 'date', 'date-time', 'time').
|
|
28
|
+
*/
|
|
29
|
+
valueType: PickerValueType;
|
|
30
|
+
/**
|
|
31
|
+
* Checks if a value is valid and returns an error code otherwise.
|
|
32
|
+
* It can be passed to the `useValidation` hook to validate a value:
|
|
33
|
+
*
|
|
34
|
+
* ```tsx
|
|
35
|
+
* import { useDateManager } from '@mui/x-date-pickers/managers';
|
|
36
|
+
* import { useValidation } from '@mui/x-date-pickers/validation';
|
|
37
|
+
*
|
|
38
|
+
* const manager = useDateManager();
|
|
39
|
+
* const { hasValidationError } = useValidation({
|
|
40
|
+
* validator: manager.validator,
|
|
41
|
+
* value,
|
|
42
|
+
* timezone,
|
|
43
|
+
* props,
|
|
44
|
+
* });
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
validator: Validator<TValue, TError, TFieldInternalPropsWithDefaults>;
|
|
48
|
+
/**
|
|
49
|
+
* Object containing basic methods to interact with the value of the picker or field.
|
|
50
|
+
* This property is not part of the public API and should not be used directly.
|
|
51
|
+
*/
|
|
52
|
+
internal_valueManager: PickerValueManager<TValue, TError>;
|
|
53
|
+
/**
|
|
54
|
+
* Object containing all the necessary methods to interact with the value of the field.
|
|
55
|
+
* This property is not part of the public API and should not be used directly.
|
|
56
|
+
*/
|
|
57
|
+
internal_fieldValueManager: FieldValueManager<TValue>;
|
|
58
|
+
/**
|
|
59
|
+
* `true` if the field is using the accessible DOM structure.
|
|
60
|
+
* `false` if the field is using the non-accessible DOM structure.
|
|
61
|
+
* This property is not part of the public API and should not be used directly.
|
|
62
|
+
*/
|
|
63
|
+
internal_enableAccessibleFieldDOMStructure: TEnableAccessibleFieldDOMStructure;
|
|
64
|
+
/**
|
|
65
|
+
* Applies the default values to the field internal props.
|
|
66
|
+
* This usually includes:
|
|
67
|
+
* - a default format to display the value in the field
|
|
68
|
+
* - some default validation props that are needed to validate the value (e.g: minDate, maxDate)
|
|
69
|
+
* This property is not part of the public API and should not be used directly.
|
|
70
|
+
* @param {ApplyDefaultsToFieldInternalPropsParameters<TFieldInternalProps>} parameters The parameters to apply the defaults.
|
|
71
|
+
* @returns {TFieldInternalPropsWithDefaults} The field internal props with the defaults applied.
|
|
72
|
+
*/
|
|
73
|
+
internal_applyDefaultsToFieldInternalProps: (parameters: ApplyDefaultsToFieldInternalPropsParameters<TFieldInternalProps>) => TFieldInternalPropsWithDefaults;
|
|
74
|
+
/**
|
|
75
|
+
* Returns the aria-label to apply on the button that opens the picker.
|
|
76
|
+
* @param {GetOpenPickerButtonAriaLabelParameters<TValue>} params The parameters to get the aria-label.
|
|
77
|
+
* @returns {string} The aria-label to apply on the button that opens the picker.
|
|
78
|
+
*/
|
|
79
|
+
internal_getOpenPickerButtonAriaLabel: (params: GetOpenPickerButtonAriaLabelParameters<TValue>) => string;
|
|
80
|
+
}
|
|
81
|
+
interface ApplyDefaultsToFieldInternalPropsParameters<TFieldInternalProps extends {}> extends UseLocalizationContextReturnValue {
|
|
82
|
+
internalProps: TFieldInternalProps;
|
|
83
|
+
}
|
|
84
|
+
interface GetOpenPickerButtonAriaLabelParameters<TValue extends PickerValidValue> extends UseLocalizationContextReturnValue {
|
|
85
|
+
value: TValue;
|
|
86
|
+
}
|
|
87
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/models/pickers.d.ts
CHANGED
|
@@ -11,6 +11,13 @@ export interface PickerChangeHandlerContext<TError> {
|
|
|
11
11
|
export interface PickerValidDateLookup {
|
|
12
12
|
}
|
|
13
13
|
export type PickerValidDate = keyof PickerValidDateLookup extends never ? any : PickerValidDateLookup[keyof PickerValidDateLookup];
|
|
14
|
+
/**
|
|
15
|
+
* Importance of the change when picking a value:
|
|
16
|
+
* - "accept": fires `onChange`, fires `onAccept` and closes the picker.
|
|
17
|
+
* - "set": fires `onChange` but do not fire `onAccept` and does not close the picker.
|
|
18
|
+
* @default "accept"
|
|
19
|
+
*/
|
|
20
|
+
export type PickerChangeImportance = 'set' | 'accept';
|
|
14
21
|
export interface PickerOwnerState {
|
|
15
22
|
/**
|
|
16
23
|
* `true` if the value of the picker is currently empty.
|