@mui/x-date-pickers 8.0.0-alpha.12 → 8.0.0-alpha.14
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/AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.d.ts +1 -1
- package/AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js +96 -94
- package/AdapterDateFnsV2/AdapterDateFnsV2.d.ts +1 -1
- package/AdapterDateFnsV2/AdapterDateFnsV2.js +96 -94
- package/AdapterDayjs/AdapterDayjs.js +11 -5
- package/CHANGELOG.md +430 -0
- package/DateCalendar/DateCalendar.js +1 -1
- package/DateField/useDateField.d.ts +1 -1
- package/DatePicker/DatePicker.types.d.ts +2 -2
- package/DatePicker/shared.d.ts +1 -1
- package/DateTimeField/useDateTimeField.d.ts +1 -1
- package/DateTimePicker/DateTimePicker.types.d.ts +3 -3
- package/DateTimePicker/DateTimePickerToolbar.d.ts +1 -1
- package/DateTimePicker/DateTimePickerToolbar.js +1 -1
- package/DateTimePicker/shared.d.ts +18 -10
- package/DateTimePicker/shared.js +23 -2
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -11
- package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +4 -7
- package/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -2
- package/MobileDateTimePicker/MobileDateTimePicker.d.ts +1 -2
- package/MobileDateTimePicker/MobileDateTimePicker.js +61 -6
- package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +1 -3
- package/PickersTextField/PickersTextField.js +3 -1
- package/StaticDateTimePicker/StaticDateTimePicker.js +60 -6
- package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +1 -2
- package/TimeClock/Clock.js +2 -2
- package/TimeClock/ClockPointer.js +1 -1
- package/TimeField/useTimeField.d.ts +1 -1
- package/TimePicker/TimePicker.types.d.ts +2 -2
- package/TimePicker/shared.d.ts +1 -1
- package/esm/AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.d.ts +1 -1
- package/esm/AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js +47 -45
- package/esm/AdapterDateFnsV2/AdapterDateFnsV2.d.ts +1 -1
- package/esm/AdapterDateFnsV2/AdapterDateFnsV2.js +47 -45
- package/esm/AdapterDayjs/AdapterDayjs.js +9 -5
- package/esm/DateCalendar/DateCalendar.js +1 -1
- package/esm/DateField/useDateField.d.ts +1 -1
- package/esm/DatePicker/DatePicker.types.d.ts +2 -2
- package/esm/DatePicker/shared.d.ts +1 -1
- package/esm/DateTimeField/useDateTimeField.d.ts +1 -1
- package/esm/DateTimePicker/DateTimePicker.types.d.ts +3 -3
- package/esm/DateTimePicker/DateTimePickerToolbar.d.ts +1 -1
- package/esm/DateTimePicker/DateTimePickerToolbar.js +1 -1
- package/esm/DateTimePicker/shared.d.ts +18 -10
- package/esm/DateTimePicker/shared.js +23 -2
- package/esm/DesktopDateTimePicker/DesktopDateTimePicker.js +3 -12
- package/esm/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +4 -7
- package/esm/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -2
- package/esm/MobileDateTimePicker/MobileDateTimePicker.d.ts +1 -2
- package/esm/MobileDateTimePicker/MobileDateTimePicker.js +62 -7
- package/esm/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +1 -3
- package/esm/PickersTextField/PickersTextField.js +3 -1
- package/esm/StaticDateTimePicker/StaticDateTimePicker.js +61 -7
- package/esm/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +1 -2
- package/esm/TimeClock/Clock.js +2 -2
- package/esm/TimeClock/ClockPointer.js +1 -1
- package/esm/TimeField/useTimeField.d.ts +1 -1
- package/esm/TimePicker/TimePicker.types.d.ts +2 -2
- package/esm/TimePicker/shared.d.ts +1 -1
- package/esm/hooks/useSplitFieldProps.d.ts +1 -1
- package/esm/hooks/useSplitFieldProps.js +1 -1
- package/esm/index.js +1 -1
- package/esm/internals/components/PickerFieldUI.d.ts +7 -0
- package/esm/internals/components/PickerFieldUI.js +8 -4
- package/esm/internals/components/PickerPopper/PickerPopper.d.ts +0 -3
- package/esm/internals/components/PickerPopper/PickerPopper.js +26 -14
- package/esm/internals/components/PickerProvider.d.ts +158 -7
- package/esm/internals/components/PickerProvider.js +7 -2
- package/esm/internals/demo/DemoContainer.js +3 -3
- package/esm/internals/hooks/useDesktopPicker/useDesktopPicker.js +5 -22
- package/esm/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +4 -12
- package/esm/internals/hooks/useField/index.d.ts +1 -2
- package/esm/internals/hooks/useField/useField.js +7 -8
- package/esm/internals/hooks/useField/useField.types.d.ts +56 -47
- package/esm/internals/hooks/useField/useField.utils.js +4 -1
- package/esm/internals/hooks/useField/useFieldCharacterEditing.js +2 -2
- package/esm/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +9 -9
- package/esm/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +16 -8
- package/esm/internals/hooks/useField/useFieldState.d.ts +2 -1
- package/esm/internals/hooks/useField/useFieldState.js +136 -83
- package/esm/internals/hooks/useField/useFieldV6TextField.js +9 -7
- package/esm/internals/hooks/useField/useFieldV7TextField.js +9 -8
- package/esm/internals/hooks/useMobilePicker/useMobilePicker.js +5 -21
- package/esm/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +4 -7
- package/esm/internals/hooks/useNullableFieldPrivateContext.d.ts +9 -0
- package/esm/internals/hooks/useNullableFieldPrivateContext.js +5 -0
- package/esm/internals/hooks/usePicker/hooks/useOrientation.d.ts +2 -0
- package/esm/internals/hooks/usePicker/hooks/useOrientation.js +34 -0
- package/esm/internals/hooks/usePicker/hooks/useValueAndOpenStates.d.ts +19 -0
- package/esm/internals/hooks/usePicker/hooks/useValueAndOpenStates.js +210 -0
- package/esm/internals/hooks/usePicker/index.d.ts +1 -3
- package/esm/internals/hooks/usePicker/usePicker.d.ts +5 -5
- package/esm/internals/hooks/usePicker/usePicker.js +276 -34
- package/esm/internals/hooks/usePicker/usePicker.types.d.ts +181 -9
- package/esm/internals/hooks/useStaticPicker/useStaticPicker.js +3 -2
- package/esm/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +3 -4
- package/esm/internals/hooks/useValueWithTimezone.d.ts +1 -1
- package/esm/internals/index.d.ts +7 -9
- package/esm/internals/index.js +2 -1
- package/esm/internals/models/fields.d.ts +3 -10
- package/esm/internals/models/manager.d.ts +108 -4
- package/esm/internals/models/props/basePickerProps.d.ts +2 -2
- package/esm/internals/models/props/time.d.ts +1 -1
- package/esm/internals/utils/date-time-utils.d.ts +2 -2
- package/esm/internals/utils/valueManagers.d.ts +1 -1
- package/esm/internals/utils/valueManagers.js +10 -18
- package/esm/locales/bnBD.d.ts +80 -0
- package/esm/locales/bnBD.js +73 -0
- package/esm/locales/index.d.ts +1 -0
- package/esm/locales/index.js +1 -0
- package/esm/managers/useDateManager.d.ts +3 -4
- package/esm/managers/useDateTimeManager.d.ts +3 -4
- package/esm/managers/useTimeManager.d.ts +3 -4
- package/esm/models/adapters.d.ts +2 -1
- package/esm/models/fields.d.ts +2 -2
- package/esm/models/manager.d.ts +4 -5
- package/esm/validation/extractValidationProps.d.ts +1 -1
- package/esm/validation/index.d.ts +1 -1
- package/esm/validation/useValidation.d.ts +2 -2
- package/hooks/useSplitFieldProps.d.ts +1 -1
- package/hooks/useSplitFieldProps.js +1 -1
- package/index.js +1 -1
- package/internals/components/PickerFieldUI.d.ts +7 -0
- package/internals/components/PickerFieldUI.js +9 -3
- package/internals/components/PickerPopper/PickerPopper.d.ts +0 -3
- package/internals/components/PickerPopper/PickerPopper.js +25 -13
- package/internals/components/PickerProvider.d.ts +158 -7
- package/internals/components/PickerProvider.js +8 -3
- package/internals/demo/DemoContainer.js +3 -3
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +5 -22
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +4 -12
- package/internals/hooks/useField/index.d.ts +1 -2
- package/internals/hooks/useField/useField.js +7 -8
- package/internals/hooks/useField/useField.types.d.ts +56 -47
- package/internals/hooks/useField/useField.utils.js +4 -1
- package/internals/hooks/useField/useFieldCharacterEditing.js +2 -2
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +9 -9
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +16 -10
- package/internals/hooks/useField/useFieldState.d.ts +2 -1
- package/internals/hooks/useField/useFieldState.js +135 -82
- package/internals/hooks/useField/useFieldV6TextField.js +9 -7
- package/internals/hooks/useField/useFieldV7TextField.js +9 -8
- package/internals/hooks/useMobilePicker/useMobilePicker.js +5 -21
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +4 -7
- package/internals/hooks/useNullableFieldPrivateContext.d.ts +9 -0
- package/internals/hooks/useNullableFieldPrivateContext.js +13 -0
- package/internals/hooks/usePicker/hooks/useOrientation.d.ts +2 -0
- package/internals/hooks/usePicker/hooks/useOrientation.js +42 -0
- package/internals/hooks/usePicker/hooks/useValueAndOpenStates.d.ts +19 -0
- package/internals/hooks/usePicker/{usePickerValue.js → hooks/useValueAndOpenStates.js} +97 -114
- package/internals/hooks/usePicker/index.d.ts +1 -3
- package/internals/hooks/usePicker/usePicker.d.ts +5 -5
- package/internals/hooks/usePicker/usePicker.js +278 -34
- package/internals/hooks/usePicker/usePicker.types.d.ts +181 -9
- package/internals/hooks/useStaticPicker/useStaticPicker.js +3 -2
- package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +3 -4
- package/internals/hooks/useValueWithTimezone.d.ts +1 -1
- package/internals/index.d.ts +7 -9
- package/internals/index.js +19 -0
- package/internals/models/fields.d.ts +3 -10
- package/internals/models/manager.d.ts +108 -4
- package/internals/models/props/basePickerProps.d.ts +2 -2
- package/internals/models/props/time.d.ts +1 -1
- package/internals/utils/date-time-utils.d.ts +2 -2
- package/internals/utils/valueManagers.d.ts +1 -1
- package/internals/utils/valueManagers.js +10 -18
- package/locales/bnBD.d.ts +80 -0
- package/locales/bnBD.js +79 -0
- package/locales/index.d.ts +1 -0
- package/locales/index.js +11 -0
- package/managers/useDateManager.d.ts +3 -4
- package/managers/useDateTimeManager.d.ts +3 -4
- package/managers/useTimeManager.d.ts +3 -4
- package/models/adapters.d.ts +2 -1
- package/models/fields.d.ts +2 -2
- package/models/manager.d.ts +4 -5
- package/modern/AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.d.ts +1 -1
- package/modern/AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js +47 -45
- package/modern/AdapterDateFnsV2/AdapterDateFnsV2.d.ts +1 -1
- package/modern/AdapterDateFnsV2/AdapterDateFnsV2.js +47 -45
- package/modern/AdapterDayjs/AdapterDayjs.js +9 -5
- package/modern/DateCalendar/DateCalendar.js +1 -1
- package/modern/DateField/useDateField.d.ts +1 -1
- package/modern/DatePicker/DatePicker.types.d.ts +2 -2
- package/modern/DatePicker/shared.d.ts +1 -1
- package/modern/DateTimeField/useDateTimeField.d.ts +1 -1
- package/modern/DateTimePicker/DateTimePicker.types.d.ts +3 -3
- package/modern/DateTimePicker/DateTimePickerToolbar.d.ts +1 -1
- package/modern/DateTimePicker/DateTimePickerToolbar.js +1 -1
- package/modern/DateTimePicker/shared.d.ts +18 -10
- package/modern/DateTimePicker/shared.js +23 -2
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +3 -12
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +4 -7
- package/modern/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -2
- package/modern/MobileDateTimePicker/MobileDateTimePicker.d.ts +1 -2
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +62 -7
- package/modern/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +1 -3
- package/modern/PickersTextField/PickersTextField.js +3 -1
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +61 -7
- package/modern/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +1 -2
- package/modern/TimeClock/Clock.js +2 -2
- package/modern/TimeClock/ClockPointer.js +1 -1
- package/modern/TimeField/useTimeField.d.ts +1 -1
- package/modern/TimePicker/TimePicker.types.d.ts +2 -2
- package/modern/TimePicker/shared.d.ts +1 -1
- package/modern/hooks/useSplitFieldProps.d.ts +1 -1
- package/modern/hooks/useSplitFieldProps.js +1 -1
- package/modern/index.js +1 -1
- package/modern/internals/components/PickerFieldUI.d.ts +7 -0
- package/modern/internals/components/PickerFieldUI.js +8 -4
- package/modern/internals/components/PickerPopper/PickerPopper.d.ts +0 -3
- package/modern/internals/components/PickerPopper/PickerPopper.js +26 -14
- package/modern/internals/components/PickerProvider.d.ts +158 -7
- package/modern/internals/components/PickerProvider.js +7 -2
- package/modern/internals/demo/DemoContainer.js +3 -3
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +5 -22
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +4 -12
- package/modern/internals/hooks/useField/index.d.ts +1 -2
- package/modern/internals/hooks/useField/useField.js +7 -8
- package/modern/internals/hooks/useField/useField.types.d.ts +56 -47
- package/modern/internals/hooks/useField/useField.utils.js +4 -1
- package/modern/internals/hooks/useField/useFieldCharacterEditing.js +2 -2
- package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +9 -9
- package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +16 -8
- package/modern/internals/hooks/useField/useFieldState.d.ts +2 -1
- package/modern/internals/hooks/useField/useFieldState.js +136 -83
- package/modern/internals/hooks/useField/useFieldV6TextField.js +9 -7
- package/modern/internals/hooks/useField/useFieldV7TextField.js +9 -8
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +5 -21
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +4 -7
- package/modern/internals/hooks/useNullableFieldPrivateContext.d.ts +9 -0
- package/modern/internals/hooks/useNullableFieldPrivateContext.js +5 -0
- package/modern/internals/hooks/usePicker/hooks/useOrientation.d.ts +2 -0
- package/modern/internals/hooks/usePicker/hooks/useOrientation.js +34 -0
- package/modern/internals/hooks/usePicker/hooks/useValueAndOpenStates.d.ts +19 -0
- package/modern/internals/hooks/usePicker/hooks/useValueAndOpenStates.js +210 -0
- package/modern/internals/hooks/usePicker/index.d.ts +1 -3
- package/modern/internals/hooks/usePicker/usePicker.d.ts +5 -5
- package/modern/internals/hooks/usePicker/usePicker.js +276 -34
- package/modern/internals/hooks/usePicker/usePicker.types.d.ts +181 -9
- package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +3 -2
- package/modern/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +3 -4
- package/modern/internals/hooks/useValueWithTimezone.d.ts +1 -1
- package/modern/internals/index.d.ts +7 -9
- package/modern/internals/index.js +2 -1
- package/modern/internals/models/fields.d.ts +3 -10
- package/modern/internals/models/manager.d.ts +108 -4
- package/modern/internals/models/props/basePickerProps.d.ts +2 -2
- package/modern/internals/models/props/time.d.ts +1 -1
- package/modern/internals/utils/date-time-utils.d.ts +2 -2
- package/modern/internals/utils/valueManagers.d.ts +1 -1
- package/modern/internals/utils/valueManagers.js +10 -18
- package/modern/locales/bnBD.d.ts +80 -0
- package/modern/locales/bnBD.js +73 -0
- package/modern/locales/index.d.ts +1 -0
- package/modern/locales/index.js +1 -0
- package/modern/managers/useDateManager.d.ts +3 -4
- package/modern/managers/useDateTimeManager.d.ts +3 -4
- package/modern/managers/useTimeManager.d.ts +3 -4
- package/modern/models/adapters.d.ts +2 -1
- package/modern/models/fields.d.ts +2 -2
- package/modern/models/manager.d.ts +4 -5
- package/modern/validation/extractValidationProps.d.ts +1 -1
- package/modern/validation/index.d.ts +1 -1
- package/modern/validation/useValidation.d.ts +2 -2
- package/package.json +2 -2
- package/tsconfig.build.tsbuildinfo +1 -1
- package/validation/extractValidationProps.d.ts +1 -1
- package/validation/index.d.ts +1 -1
- package/validation/useValidation.d.ts +2 -2
- package/esm/internals/hooks/useOpenState.d.ts +0 -14
- package/esm/internals/hooks/useOpenState.js +0 -37
- package/esm/internals/hooks/usePicker/usePickerProvider.d.ts +0 -60
- package/esm/internals/hooks/usePicker/usePickerProvider.js +0 -111
- package/esm/internals/hooks/usePicker/usePickerValue.d.ts +0 -12
- package/esm/internals/hooks/usePicker/usePickerValue.js +0 -226
- package/esm/internals/hooks/usePicker/usePickerValue.types.d.ts +0 -327
- package/esm/internals/hooks/usePicker/usePickerValue.types.js +0 -1
- package/esm/internals/hooks/usePicker/usePickerViews.d.ts +0 -120
- package/esm/internals/hooks/usePicker/usePickerViews.js +0 -176
- package/internals/hooks/useOpenState.d.ts +0 -14
- package/internals/hooks/useOpenState.js +0 -46
- package/internals/hooks/usePicker/usePickerProvider.d.ts +0 -60
- package/internals/hooks/usePicker/usePickerProvider.js +0 -121
- package/internals/hooks/usePicker/usePickerValue.d.ts +0 -12
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +0 -327
- package/internals/hooks/usePicker/usePickerValue.types.js +0 -5
- package/internals/hooks/usePicker/usePickerViews.d.ts +0 -120
- package/internals/hooks/usePicker/usePickerViews.js +0 -183
- package/modern/internals/hooks/useOpenState.d.ts +0 -14
- package/modern/internals/hooks/useOpenState.js +0 -37
- package/modern/internals/hooks/usePicker/usePickerProvider.d.ts +0 -60
- package/modern/internals/hooks/usePicker/usePickerProvider.js +0 -111
- package/modern/internals/hooks/usePicker/usePickerValue.d.ts +0 -12
- package/modern/internals/hooks/usePicker/usePickerValue.js +0 -226
- package/modern/internals/hooks/usePicker/usePickerValue.types.d.ts +0 -327
- package/modern/internals/hooks/usePicker/usePickerValue.types.js +0 -1
- package/modern/internals/hooks/usePicker/usePickerViews.d.ts +0 -120
- package/modern/internals/hooks/usePicker/usePickerViews.js +0 -176
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import type { UseFieldInternalProps } from './useField.types';
|
|
3
1
|
import { PickerAnyManager, PickerManagerFieldInternalProps, PickerManagerFieldInternalPropsWithDefaults } from "../../models/index.js";
|
|
4
|
-
export declare const PickerFieldPrivateContext: React.Context<PickerFieldPrivateContextValue | null>;
|
|
5
2
|
/**
|
|
6
3
|
* Applies the default values to the field internal props.
|
|
7
4
|
* This is a temporary hook that will be removed during a follow up when `useField` will receive the internal props without the defaults.
|
|
8
5
|
* It is only here to allow the migration to be done in smaller steps.
|
|
9
6
|
*/
|
|
10
|
-
export declare function useFieldInternalPropsWithDefaults<TManager extends PickerAnyManager>(
|
|
11
|
-
|
|
12
|
-
internalProps
|
|
13
|
-
}: {
|
|
7
|
+
export declare function useFieldInternalPropsWithDefaults<TManager extends PickerAnyManager>(parameters: UseFieldInternalPropsWithDefaultsParameters<TManager>): PickerManagerFieldInternalPropsWithDefaults<TManager>;
|
|
8
|
+
interface UseFieldInternalPropsWithDefaultsParameters<TManager extends PickerAnyManager> {
|
|
14
9
|
manager: TManager;
|
|
15
10
|
internalProps: PickerManagerFieldInternalProps<TManager>;
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Hack to make sure that on multi input range field, the `useNullableFieldPrivateContext().fieldRef` is only bound to the field matching the range position.
|
|
13
|
+
* @default false
|
|
14
|
+
*/
|
|
15
|
+
skipContextFieldRefAssignment?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -5,26 +5,28 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.PickerFieldPrivateContext = void 0;
|
|
9
8
|
exports.useFieldInternalPropsWithDefaults = useFieldInternalPropsWithDefaults;
|
|
10
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
|
|
12
12
|
var _useUtils = require("../useUtils");
|
|
13
13
|
var _useNullablePickerContext = require("../useNullablePickerContext");
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
var _useNullableFieldPrivateContext = require("../useNullableFieldPrivateContext");
|
|
16
15
|
/**
|
|
17
16
|
* Applies the default values to the field internal props.
|
|
18
17
|
* This is a temporary hook that will be removed during a follow up when `useField` will receive the internal props without the defaults.
|
|
19
18
|
* It is only here to allow the migration to be done in smaller steps.
|
|
20
19
|
*/
|
|
21
|
-
function useFieldInternalPropsWithDefaults({
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
function useFieldInternalPropsWithDefaults(parameters) {
|
|
21
|
+
const {
|
|
22
|
+
manager,
|
|
23
|
+
internalProps,
|
|
24
|
+
skipContextFieldRefAssignment
|
|
25
|
+
} = parameters;
|
|
25
26
|
const localizationContext = (0, _useUtils.useLocalizationContext)();
|
|
26
27
|
const pickerContext = (0, _useNullablePickerContext.useNullablePickerContext)();
|
|
27
|
-
const fieldPrivateContext =
|
|
28
|
+
const fieldPrivateContext = (0, _useNullableFieldPrivateContext.useNullableFieldPrivateContext)();
|
|
29
|
+
const handleFieldRef = (0, _useForkRef.default)(internalProps.unstableFieldRef, skipContextFieldRefAssignment ? null : fieldPrivateContext?.fieldRef);
|
|
28
30
|
const setValue = pickerContext?.setValue;
|
|
29
31
|
const handleChangeFromPicker = React.useCallback((newValue, ctx) => {
|
|
30
32
|
return setValue?.(newValue, {
|
|
@@ -42,15 +44,19 @@ function useFieldInternalPropsWithDefaults({
|
|
|
42
44
|
onChange: handleChangeFromPicker,
|
|
43
45
|
timezone: pickerContext.timezone,
|
|
44
46
|
disabled: pickerContext.disabled,
|
|
47
|
+
readOnly: pickerContext.readOnly,
|
|
48
|
+
autoFocus: pickerContext.autoFocus && !pickerContext.open,
|
|
49
|
+
focused: pickerContext.open ? true : undefined,
|
|
45
50
|
format: pickerContext.fieldFormat,
|
|
46
51
|
formatDensity: fieldPrivateContext.formatDensity,
|
|
47
52
|
enableAccessibleFieldDOMStructure: fieldPrivateContext.enableAccessibleFieldDOMStructure,
|
|
48
53
|
selectedSections: fieldPrivateContext.selectedSections,
|
|
49
|
-
onSelectedSectionsChange: fieldPrivateContext.onSelectedSectionsChange
|
|
54
|
+
onSelectedSectionsChange: fieldPrivateContext.onSelectedSectionsChange,
|
|
55
|
+
unstableFieldRef: handleFieldRef
|
|
50
56
|
}, internalProps);
|
|
51
57
|
}
|
|
52
58
|
return manager.internal_applyDefaultsToFieldInternalProps((0, _extends2.default)({}, localizationContext, {
|
|
53
59
|
internalProps: internalPropsWithDefaultsFromContext
|
|
54
60
|
}));
|
|
55
|
-
}, [manager, localizationContext, pickerContext, fieldPrivateContext, internalProps, handleChangeFromPicker]);
|
|
61
|
+
}, [manager, localizationContext, pickerContext, fieldPrivateContext, internalProps, handleChangeFromPicker, handleFieldRef]);
|
|
56
62
|
}
|
|
@@ -5,7 +5,7 @@ export interface UpdateSectionValueParams<TValue extends PickerValidValue> {
|
|
|
5
5
|
/**
|
|
6
6
|
* The section on which we want to apply the new value.
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
section: InferFieldSection<TValue>;
|
|
9
9
|
/**
|
|
10
10
|
* Value to apply to the active section.
|
|
11
11
|
*/
|
|
@@ -17,6 +17,7 @@ export interface UpdateSectionValueParams<TValue extends PickerValidValue> {
|
|
|
17
17
|
}
|
|
18
18
|
export interface UseFieldStateResponse<TValue extends PickerValidValue> {
|
|
19
19
|
state: UseFieldState<TValue>;
|
|
20
|
+
value: TValue;
|
|
20
21
|
activeSectionIndex: number | null;
|
|
21
22
|
parsedSelectedSections: FieldParsedSelectedSections;
|
|
22
23
|
setSelectedSections: (sections: FieldSelectedSections) => void;
|
|
@@ -9,6 +9,7 @@ exports.useFieldState = void 0;
|
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _useControlled = _interopRequireDefault(require("@mui/utils/useControlled"));
|
|
12
|
+
var _useTimeout = _interopRequireDefault(require("@mui/utils/useTimeout"));
|
|
12
13
|
var _RtlProvider = require("@mui/system/RtlProvider");
|
|
13
14
|
var _usePickerTranslations = require("../../../hooks/usePickerTranslations");
|
|
14
15
|
var _useUtils = require("../useUtils");
|
|
@@ -42,10 +43,11 @@ const useFieldState = params => {
|
|
|
42
43
|
}
|
|
43
44
|
} = params;
|
|
44
45
|
const {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
} = (0, _useValueWithTimezone.
|
|
46
|
+
value,
|
|
47
|
+
handleValueChange,
|
|
48
|
+
timezone
|
|
49
|
+
} = (0, _useValueWithTimezone.useControlledValueWithTimezone)({
|
|
50
|
+
name: 'a field component',
|
|
49
51
|
timezone: timezoneProp,
|
|
50
52
|
value: valueProp,
|
|
51
53
|
defaultValue,
|
|
@@ -53,9 +55,13 @@ const useFieldState = params => {
|
|
|
53
55
|
onChange,
|
|
54
56
|
valueManager
|
|
55
57
|
});
|
|
58
|
+
const valueRef = React.useRef(value);
|
|
59
|
+
React.useEffect(() => {
|
|
60
|
+
valueRef.current = value;
|
|
61
|
+
}, [value]);
|
|
56
62
|
const localizedDigits = React.useMemo(() => (0, _useField.getLocalizedDigits)(utils), [utils]);
|
|
57
63
|
const sectionsValueBoundaries = React.useMemo(() => (0, _useField.getSectionsBoundaries)(utils, localizedDigits, timezone), [utils, localizedDigits, timezone]);
|
|
58
|
-
const getSectionsFromValue = React.useCallback(
|
|
64
|
+
const getSectionsFromValue = React.useCallback(valueToAnalyze => fieldValueManager.getSectionsFromValue(valueToAnalyze, date => (0, _buildSectionsFromFormat.buildSectionsFromFormat)({
|
|
59
65
|
utils,
|
|
60
66
|
localeText: translations,
|
|
61
67
|
localizedDigits,
|
|
@@ -67,17 +73,22 @@ const useFieldState = params => {
|
|
|
67
73
|
isRtl
|
|
68
74
|
})), [fieldValueManager, format, translations, localizedDigits, isRtl, shouldRespectLeadingZeros, utils, formatDensity, enableAccessibleFieldDOMStructure]);
|
|
69
75
|
const [state, setState] = React.useState(() => {
|
|
70
|
-
const sections = getSectionsFromValue(
|
|
76
|
+
const sections = getSectionsFromValue(value);
|
|
71
77
|
(0, _useField.validateSections)(sections, valueType);
|
|
72
78
|
const stateWithoutReferenceDate = {
|
|
73
79
|
sections,
|
|
74
|
-
|
|
80
|
+
lastValue: value,
|
|
81
|
+
lastSectionsDependencies: {
|
|
82
|
+
format,
|
|
83
|
+
isRtl,
|
|
84
|
+
locale: utils.locale
|
|
85
|
+
},
|
|
75
86
|
tempValueStrAndroid: null
|
|
76
87
|
};
|
|
77
88
|
const granularity = (0, _getDefaultReferenceDate.getSectionTypeGranularity)(sections);
|
|
78
89
|
const referenceValue = valueManager.getInitialReferenceValue({
|
|
79
90
|
referenceDate: referenceDateProp,
|
|
80
|
-
value
|
|
91
|
+
value,
|
|
81
92
|
utils,
|
|
82
93
|
props: internalProps,
|
|
83
94
|
granularity,
|
|
@@ -99,29 +110,16 @@ const useFieldState = params => {
|
|
|
99
110
|
};
|
|
100
111
|
const parsedSelectedSections = React.useMemo(() => (0, _useField.parseSelectedSections)(selectedSections, state.sections), [selectedSections, state.sections]);
|
|
101
112
|
const activeSectionIndex = parsedSelectedSections === 'all' ? 0 : parsedSelectedSections;
|
|
102
|
-
const publishValue =
|
|
103
|
-
value,
|
|
104
|
-
referenceValue,
|
|
105
|
-
sections
|
|
106
|
-
}) => {
|
|
107
|
-
setState(prevState => (0, _extends2.default)({}, prevState, {
|
|
108
|
-
sections,
|
|
109
|
-
value,
|
|
110
|
-
referenceValue,
|
|
111
|
-
tempValueStrAndroid: null
|
|
112
|
-
}));
|
|
113
|
-
if (valueManager.areValuesEqual(utils, state.value, value)) {
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
113
|
+
const publishValue = newValue => {
|
|
116
114
|
const context = {
|
|
117
115
|
validationError: validator({
|
|
118
116
|
adapter,
|
|
119
|
-
value,
|
|
117
|
+
value: newValue,
|
|
120
118
|
timezone,
|
|
121
119
|
props: internalProps
|
|
122
120
|
})
|
|
123
121
|
};
|
|
124
|
-
handleValueChange(
|
|
122
|
+
handleValueChange(newValue, context);
|
|
125
123
|
};
|
|
126
124
|
const setSectionValue = (sectionIndex, newSectionValue) => {
|
|
127
125
|
const newSections = [...state.sections];
|
|
@@ -131,27 +129,49 @@ const useFieldState = params => {
|
|
|
131
129
|
});
|
|
132
130
|
return newSections;
|
|
133
131
|
};
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
132
|
+
const sectionToUpdateOnNextInvalidDateRef = React.useRef(null);
|
|
133
|
+
const timeoutToUpdateSectionValueOnNextInvalidDate = (0, _useTimeout.default)();
|
|
134
|
+
const setSectionUpdateToApplyOnNextInvalidDate = newSectionValue => {
|
|
135
|
+
if (activeSectionIndex == null) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
sectionToUpdateOnNextInvalidDateRef.current = {
|
|
139
|
+
sectionIndex: activeSectionIndex,
|
|
140
|
+
value: newSectionValue
|
|
141
|
+
};
|
|
142
|
+
timeoutToUpdateSectionValueOnNextInvalidDate.start(0, () => {
|
|
143
|
+
sectionToUpdateOnNextInvalidDateRef.current = null;
|
|
139
144
|
});
|
|
140
145
|
};
|
|
146
|
+
const clearValue = () => {
|
|
147
|
+
if (valueManager.areValuesEqual(utils, value, valueManager.emptyValue)) {
|
|
148
|
+
setState(prevState => (0, _extends2.default)({}, prevState, {
|
|
149
|
+
sections: prevState.sections.map(section => (0, _extends2.default)({}, section, {
|
|
150
|
+
value: ''
|
|
151
|
+
})),
|
|
152
|
+
tempValueStrAndroid: null
|
|
153
|
+
}));
|
|
154
|
+
} else {
|
|
155
|
+
publishValue(valueManager.emptyValue);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
141
158
|
const clearActiveSection = () => {
|
|
142
159
|
if (activeSectionIndex == null) {
|
|
143
160
|
return;
|
|
144
161
|
}
|
|
145
162
|
const activeSection = state.sections[activeSectionIndex];
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
163
|
+
if (activeSection.value === '') {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
setSectionUpdateToApplyOnNextInvalidDate('');
|
|
167
|
+
if (fieldValueManager.getDateFromSection(value, activeSection) === null) {
|
|
168
|
+
setState(prevState => (0, _extends2.default)({}, prevState, {
|
|
169
|
+
sections: setSectionValue(activeSectionIndex, ''),
|
|
170
|
+
tempValueStrAndroid: null
|
|
171
|
+
}));
|
|
172
|
+
} else {
|
|
173
|
+
publishValue(fieldValueManager.updateDateInValue(value, activeSection, null));
|
|
174
|
+
}
|
|
155
175
|
};
|
|
156
176
|
const updateValueFromValueStr = valueStr => {
|
|
157
177
|
const parseDateStr = (dateStr, referenceDate) => {
|
|
@@ -173,34 +193,31 @@ const useFieldState = params => {
|
|
|
173
193
|
return (0, _useField.mergeDateIntoReferenceDate)(utils, date, sections, referenceDate, false);
|
|
174
194
|
};
|
|
175
195
|
const newValue = fieldValueManager.parseValueStr(valueStr, state.referenceValue, parseDateStr);
|
|
176
|
-
|
|
177
|
-
publishValue({
|
|
178
|
-
value: newValue,
|
|
179
|
-
referenceValue: newReferenceValue,
|
|
180
|
-
sections: getSectionsFromValue(newValue, state.sections)
|
|
181
|
-
});
|
|
196
|
+
publishValue(newValue);
|
|
182
197
|
};
|
|
198
|
+
const timeoutToCleanActiveDateSectionsIfValueNull = (0, _useTimeout.default)();
|
|
183
199
|
const updateSectionValue = ({
|
|
184
|
-
|
|
200
|
+
section,
|
|
185
201
|
newSectionValue,
|
|
186
202
|
shouldGoToNextSection
|
|
187
203
|
}) => {
|
|
204
|
+
timeoutToUpdateSectionValueOnNextInvalidDate.clear();
|
|
205
|
+
timeoutToCleanActiveDateSectionsIfValueNull.clear();
|
|
206
|
+
const activeDate = fieldValueManager.getDateFromSection(value, section);
|
|
207
|
+
|
|
188
208
|
/**
|
|
189
|
-
*
|
|
209
|
+
* Decide which section should be focused
|
|
190
210
|
*/
|
|
191
211
|
if (shouldGoToNextSection && activeSectionIndex < state.sections.length - 1) {
|
|
192
212
|
setSelectedSections(activeSectionIndex + 1);
|
|
193
213
|
}
|
|
194
214
|
|
|
195
215
|
/**
|
|
196
|
-
*
|
|
216
|
+
* Try to build a valid date from the new section value
|
|
197
217
|
*/
|
|
198
|
-
const activeDateManager = fieldValueManager.getActiveDateManager(utils, state, activeSection);
|
|
199
218
|
const newSections = setSectionValue(activeSectionIndex, newSectionValue);
|
|
200
|
-
const newActiveDateSections =
|
|
219
|
+
const newActiveDateSections = fieldValueManager.getDateSectionsFromValue(newSections, section);
|
|
201
220
|
const newActiveDate = (0, _useField.getDateFromDateSections)(utils, newActiveDateSections, localizedDigits);
|
|
202
|
-
let values;
|
|
203
|
-
let shouldPublish;
|
|
204
221
|
|
|
205
222
|
/**
|
|
206
223
|
* If the new date is valid,
|
|
@@ -208,23 +225,43 @@ const useFieldState = params => {
|
|
|
208
225
|
* This makes sure that we don't lose some information of the initial date (like the time on a date field).
|
|
209
226
|
*/
|
|
210
227
|
if (utils.isValid(newActiveDate)) {
|
|
211
|
-
const mergedDate = (0, _useField.mergeDateIntoReferenceDate)(utils, newActiveDate, newActiveDateSections,
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
228
|
+
const mergedDate = (0, _useField.mergeDateIntoReferenceDate)(utils, newActiveDate, newActiveDateSections, fieldValueManager.getDateFromSection(state.referenceValue, section), true);
|
|
229
|
+
if (activeDate == null) {
|
|
230
|
+
timeoutToCleanActiveDateSectionsIfValueNull.start(0, () => {
|
|
231
|
+
if (valueRef.current === value) {
|
|
232
|
+
setState(prevState => (0, _extends2.default)({}, prevState, {
|
|
233
|
+
sections: fieldValueManager.clearDateSections(state.sections, section),
|
|
234
|
+
tempValueStrAndroid: null
|
|
235
|
+
}));
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
return publishValue(fieldValueManager.updateDateInValue(value, section, mergedDate));
|
|
217
240
|
}
|
|
218
241
|
|
|
219
242
|
/**
|
|
220
|
-
*
|
|
243
|
+
* If all the sections are filled but the date is invalid,
|
|
244
|
+
* Then we publish an invalid date.
|
|
221
245
|
*/
|
|
222
|
-
if (
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
246
|
+
if (newActiveDateSections.every(sectionBis => sectionBis.value !== '')) {
|
|
247
|
+
setSectionUpdateToApplyOnNextInvalidDate(newSectionValue);
|
|
248
|
+
return publishValue(fieldValueManager.updateDateInValue(value, section, newActiveDate));
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* If the previous date is not null,
|
|
253
|
+
* Then we publish the date as `null`.
|
|
254
|
+
*/
|
|
255
|
+
if (activeDate != null) {
|
|
256
|
+
setSectionUpdateToApplyOnNextInvalidDate(newSectionValue);
|
|
257
|
+
return publishValue(fieldValueManager.updateDateInValue(value, section, null));
|
|
226
258
|
}
|
|
227
|
-
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* If the previous date is already null,
|
|
262
|
+
* Then we don't publish the date and we update the sections.
|
|
263
|
+
*/
|
|
264
|
+
return setState(prevState => (0, _extends2.default)({}, prevState, {
|
|
228
265
|
sections: newSections,
|
|
229
266
|
tempValueStrAndroid: null
|
|
230
267
|
}));
|
|
@@ -232,32 +269,48 @@ const useFieldState = params => {
|
|
|
232
269
|
const setTempAndroidValueStr = tempValueStrAndroid => setState(prev => (0, _extends2.default)({}, prev, {
|
|
233
270
|
tempValueStrAndroid
|
|
234
271
|
}));
|
|
235
|
-
|
|
236
|
-
|
|
272
|
+
|
|
273
|
+
// If `prop.value` changes, we update the state to reflect the new value
|
|
274
|
+
if (value !== state.lastValue) {
|
|
275
|
+
let sections;
|
|
276
|
+
if (sectionToUpdateOnNextInvalidDateRef.current != null && !utils.isValid(fieldValueManager.getDateFromSection(value, state.sections[sectionToUpdateOnNextInvalidDateRef.current.sectionIndex]))) {
|
|
277
|
+
sections = setSectionValue(sectionToUpdateOnNextInvalidDateRef.current.sectionIndex, sectionToUpdateOnNextInvalidDateRef.current.value);
|
|
278
|
+
} else {
|
|
279
|
+
sections = getSectionsFromValue(value);
|
|
280
|
+
}
|
|
281
|
+
setState(prevState => (0, _extends2.default)({}, prevState, {
|
|
282
|
+
lastValue: value,
|
|
283
|
+
sections,
|
|
284
|
+
sectionsDependencies: {
|
|
285
|
+
format,
|
|
286
|
+
isRtl,
|
|
287
|
+
locale: utils.locale
|
|
288
|
+
},
|
|
289
|
+
referenceValue: fieldValueManager.updateReferenceValue(utils, value, prevState.referenceValue),
|
|
290
|
+
tempValueStrAndroid: null
|
|
291
|
+
}));
|
|
292
|
+
}
|
|
293
|
+
if (isRtl !== state.lastSectionsDependencies.isRtl || format !== state.lastSectionsDependencies.format || utils.locale !== state.lastSectionsDependencies.locale) {
|
|
294
|
+
const sections = getSectionsFromValue(value);
|
|
237
295
|
(0, _useField.validateSections)(sections, valueType);
|
|
238
296
|
setState(prevState => (0, _extends2.default)({}, prevState, {
|
|
239
|
-
|
|
297
|
+
lastSectionsDependencies: {
|
|
298
|
+
format,
|
|
299
|
+
isRtl,
|
|
300
|
+
locale: utils.locale
|
|
301
|
+
},
|
|
302
|
+
sections,
|
|
303
|
+
tempValueStrAndroid: null
|
|
240
304
|
}));
|
|
241
|
-
}
|
|
242
|
-
|
|
305
|
+
}
|
|
243
306
|
React.useEffect(() => {
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
shouldUpdate = true;
|
|
247
|
-
} else {
|
|
248
|
-
shouldUpdate = valueManager.getTimezone(utils, state.value) !== valueManager.getTimezone(utils, valueFromTheOutside);
|
|
249
|
-
}
|
|
250
|
-
if (shouldUpdate) {
|
|
251
|
-
setState(prevState => (0, _extends2.default)({}, prevState, {
|
|
252
|
-
value: valueFromTheOutside,
|
|
253
|
-
referenceValue: fieldValueManager.updateReferenceValue(utils, valueFromTheOutside, prevState.referenceValue),
|
|
254
|
-
sections: getSectionsFromValue(valueFromTheOutside)
|
|
255
|
-
}));
|
|
307
|
+
if (sectionToUpdateOnNextInvalidDateRef.current != null) {
|
|
308
|
+
sectionToUpdateOnNextInvalidDateRef.current = null;
|
|
256
309
|
}
|
|
257
|
-
}
|
|
258
|
-
|
|
310
|
+
});
|
|
259
311
|
return {
|
|
260
312
|
state,
|
|
313
|
+
value,
|
|
261
314
|
activeSectionIndex,
|
|
262
315
|
parsedSelectedSections,
|
|
263
316
|
setSelectedSections,
|
|
@@ -57,7 +57,8 @@ const useFieldV6TextField = params => {
|
|
|
57
57
|
},
|
|
58
58
|
internalProps: {
|
|
59
59
|
readOnly = false,
|
|
60
|
-
disabled = false
|
|
60
|
+
disabled = false,
|
|
61
|
+
focused
|
|
61
62
|
},
|
|
62
63
|
parsedSelectedSections,
|
|
63
64
|
activeSectionIndex,
|
|
@@ -165,8 +166,8 @@ const useFieldV6TextField = params => {
|
|
|
165
166
|
const sectionIndex = nextSectionIndex === -1 ? sections.length - 1 : nextSectionIndex - 1;
|
|
166
167
|
setSelectedSections(sectionIndex);
|
|
167
168
|
};
|
|
168
|
-
const handleInputFocus = (0, _useEventCallback.default)(
|
|
169
|
-
onFocus?.(
|
|
169
|
+
const handleInputFocus = (0, _useEventCallback.default)(event => {
|
|
170
|
+
onFocus?.(event);
|
|
170
171
|
// The ref is guaranteed to be resolved at this point.
|
|
171
172
|
const input = inputRef.current;
|
|
172
173
|
clearTimeout(focusTimeoutRef.current);
|
|
@@ -214,7 +215,7 @@ const useFieldV6TextField = params => {
|
|
|
214
215
|
if (isValidPastedValue) {
|
|
215
216
|
resetCharacterQuery();
|
|
216
217
|
updateSectionValue({
|
|
217
|
-
activeSection,
|
|
218
|
+
section: activeSection,
|
|
218
219
|
newSectionValue: pastedValue,
|
|
219
220
|
shouldGoToNextSection: true
|
|
220
221
|
});
|
|
@@ -229,8 +230,8 @@ const useFieldV6TextField = params => {
|
|
|
229
230
|
resetCharacterQuery();
|
|
230
231
|
updateValueFromValueStr(pastedValue);
|
|
231
232
|
});
|
|
232
|
-
const handleContainerBlur = (0, _useEventCallback.default)(
|
|
233
|
-
onBlur?.(
|
|
233
|
+
const handleContainerBlur = (0, _useEventCallback.default)(event => {
|
|
234
|
+
onBlur?.(event);
|
|
234
235
|
setSelectedSections(null);
|
|
235
236
|
});
|
|
236
237
|
const handleInputChange = (0, _useEventCallback.default)(event => {
|
|
@@ -343,7 +344,8 @@ const useFieldV6TextField = params => {
|
|
|
343
344
|
inputMode,
|
|
344
345
|
autoComplete: 'off',
|
|
345
346
|
value: shouldShowPlaceholder ? '' : valueStr,
|
|
346
|
-
onChange: handleInputChange
|
|
347
|
+
onChange: handleInputChange,
|
|
348
|
+
focused
|
|
347
349
|
}
|
|
348
350
|
};
|
|
349
351
|
};
|
|
@@ -20,7 +20,8 @@ const useFieldV7TextField = params => {
|
|
|
20
20
|
internalProps: {
|
|
21
21
|
disabled,
|
|
22
22
|
readOnly = false,
|
|
23
|
-
autoFocus = false
|
|
23
|
+
autoFocus = false,
|
|
24
|
+
focused: focusedProp
|
|
24
25
|
},
|
|
25
26
|
forwardedProps: {
|
|
26
27
|
sectionListRef: inSectionListRef,
|
|
@@ -28,8 +29,7 @@ const useFieldV7TextField = params => {
|
|
|
28
29
|
onClick,
|
|
29
30
|
onFocus,
|
|
30
31
|
onInput,
|
|
31
|
-
onPaste
|
|
32
|
-
focused: focusedProp
|
|
32
|
+
onPaste
|
|
33
33
|
},
|
|
34
34
|
fieldValueManager,
|
|
35
35
|
applyCharacterEditing,
|
|
@@ -206,8 +206,8 @@ const useFieldV7TextField = params => {
|
|
|
206
206
|
resetCharacterQuery();
|
|
207
207
|
updateValueFromValueStr(pastedValue);
|
|
208
208
|
});
|
|
209
|
-
const handleContainerFocus = (0, _useEventCallback.default)(
|
|
210
|
-
onFocus?.(
|
|
209
|
+
const handleContainerFocus = (0, _useEventCallback.default)(event => {
|
|
210
|
+
onFocus?.(event);
|
|
211
211
|
if (focused || !sectionListRef.current) {
|
|
212
212
|
return;
|
|
213
213
|
}
|
|
@@ -218,8 +218,8 @@ const useFieldV7TextField = params => {
|
|
|
218
218
|
setSelectedSections(sectionOrder.startIndex);
|
|
219
219
|
}
|
|
220
220
|
});
|
|
221
|
-
const handleContainerBlur = (0, _useEventCallback.default)(
|
|
222
|
-
onBlur?.(
|
|
221
|
+
const handleContainerBlur = (0, _useEventCallback.default)(event => {
|
|
222
|
+
onBlur?.(event);
|
|
223
223
|
setTimeout(() => {
|
|
224
224
|
if (!sectionListRef.current) {
|
|
225
225
|
return;
|
|
@@ -262,7 +262,7 @@ const useFieldV7TextField = params => {
|
|
|
262
262
|
if (isValidPastedValue) {
|
|
263
263
|
resetCharacterQuery();
|
|
264
264
|
updateSectionValue({
|
|
265
|
-
activeSection,
|
|
265
|
+
section: activeSection,
|
|
266
266
|
newSectionValue: pastedValue,
|
|
267
267
|
shouldGoToNextSection: true
|
|
268
268
|
});
|
|
@@ -300,6 +300,7 @@ const useFieldV7TextField = params => {
|
|
|
300
300
|
return;
|
|
301
301
|
}
|
|
302
302
|
resetCharacterQuery();
|
|
303
|
+
revertDOMSectionChange(sectionIndex);
|
|
303
304
|
clearActiveSection();
|
|
304
305
|
return;
|
|
305
306
|
}
|
|
@@ -10,8 +10,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
10
10
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
11
|
var React = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _useSlotProps2 = _interopRequireDefault(require("@mui/utils/useSlotProps"));
|
|
13
|
-
var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
|
|
14
|
-
var _useId = _interopRequireDefault(require("@mui/utils/useId"));
|
|
15
13
|
var _PickersModalDialog = require("../../components/PickersModalDialog");
|
|
16
14
|
var _usePicker = require("../usePicker");
|
|
17
15
|
var _PickersLayout = require("../../../PickersLayout");
|
|
@@ -36,35 +34,26 @@ const useMobilePicker = _ref => {
|
|
|
36
34
|
slotProps: innerSlotProps,
|
|
37
35
|
label,
|
|
38
36
|
inputRef,
|
|
39
|
-
readOnly,
|
|
40
|
-
autoFocus,
|
|
41
37
|
localeText
|
|
42
38
|
} = props;
|
|
43
|
-
const fieldRef = React.useRef(null);
|
|
44
|
-
const labelId = (0, _useId.default)();
|
|
45
|
-
const isToolbarHidden = innerSlotProps?.toolbar?.hidden ?? false;
|
|
46
39
|
const {
|
|
47
40
|
providerProps,
|
|
48
41
|
renderCurrentView,
|
|
49
42
|
ownerState
|
|
50
43
|
} = (0, _usePicker.usePicker)((0, _extends2.default)({}, pickerParams, {
|
|
51
44
|
props,
|
|
52
|
-
fieldRef,
|
|
53
45
|
localeText,
|
|
54
46
|
autoFocusView: true,
|
|
47
|
+
viewContainerRole: 'dialog',
|
|
55
48
|
variant: 'mobile'
|
|
56
49
|
}));
|
|
50
|
+
const labelId = providerProps.privateContextValue.labelId;
|
|
51
|
+
const isToolbarHidden = innerSlotProps?.toolbar?.hidden ?? false;
|
|
57
52
|
const Field = slots.field;
|
|
58
53
|
const _useSlotProps = (0, _useSlotProps2.default)({
|
|
59
54
|
elementType: Field,
|
|
60
55
|
externalSlotProps: innerSlotProps?.field,
|
|
61
|
-
additionalProps: (0, _extends2.default)({
|
|
62
|
-
// Internal props
|
|
63
|
-
readOnly,
|
|
64
|
-
autoFocus: autoFocus && !props.open,
|
|
65
|
-
// Forwarded props
|
|
66
|
-
focused: providerProps.contextValue.open ? true : undefined
|
|
67
|
-
}, isToolbarHidden && {
|
|
56
|
+
additionalProps: (0, _extends2.default)({}, isToolbarHidden && {
|
|
68
57
|
id: labelId
|
|
69
58
|
}),
|
|
70
59
|
ownerState
|
|
@@ -87,17 +76,12 @@ const useMobilePicker = _ref => {
|
|
|
87
76
|
'aria-labelledby': labelledById
|
|
88
77
|
}, innerSlotProps?.mobilePaper)
|
|
89
78
|
});
|
|
90
|
-
|
|
91
|
-
// TODO: This `as any` will go away once the field ref is handled by the context.
|
|
92
|
-
const handleFieldRef = (0, _useForkRef.default)(fieldRef, fieldProps.unstableFieldRef);
|
|
93
79
|
const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerProvider.PickerProvider, (0, _extends2.default)({}, providerProps, {
|
|
94
80
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PickerFieldUI.PickerFieldUIContextProvider, {
|
|
95
81
|
slots: slots,
|
|
96
82
|
slotProps: slotProps,
|
|
97
83
|
inputRef: inputRef,
|
|
98
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, fieldProps, {
|
|
99
|
-
unstableFieldRef: handleFieldRef
|
|
100
|
-
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersModalDialog.PickersModalDialog, {
|
|
84
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, fieldProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersModalDialog.PickersModalDialog, {
|
|
101
85
|
slots: slots,
|
|
102
86
|
slotProps: slotProps,
|
|
103
87
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, slotProps?.layout, {
|
|
@@ -2,13 +2,10 @@ import * as React from 'react';
|
|
|
2
2
|
import { MakeRequired, SlotComponentPropsFromProps } from '@mui/x-internals/types';
|
|
3
3
|
import { BasePickerProps } from "../../models/props/basePickerProps.js";
|
|
4
4
|
import { PickersModalDialogSlots, PickersModalDialogSlotProps } from "../../components/PickersModalDialog.js";
|
|
5
|
-
import {
|
|
5
|
+
import { UsePickerParameters, UsePickerNonStaticProps, UsePickerProps } from "../usePicker/index.js";
|
|
6
6
|
import { PickerFieldSlotProps, PickerOwnerState } from "../../../models/index.js";
|
|
7
7
|
import { ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps, PickersLayoutSlotProps } from "../../../PickersLayout/PickersLayout.types.js";
|
|
8
|
-
import { UsePickerValueNonStaticProps } from "../usePicker/usePickerValue.types.js";
|
|
9
|
-
import { UsePickerViewsProps } from "../usePicker/usePickerViews.js";
|
|
10
8
|
import { DateOrTimeViewWithMeridiem, PickerValue } from "../../models/index.js";
|
|
11
|
-
import { UsePickerProviderNonStaticProps } from "../usePicker/usePickerProvider.js";
|
|
12
9
|
import { PickerFieldUISlotsFromContext, PickerFieldUISlotPropsFromContext } from "../../components/PickerFieldUI.js";
|
|
13
10
|
export interface UseMobilePickerSlots extends PickersModalDialogSlots, ExportedPickersLayoutSlots<PickerValue>, PickerFieldUISlotsFromContext {
|
|
14
11
|
/**
|
|
@@ -20,8 +17,8 @@ export interface ExportedUseMobilePickerSlotProps<TEnableAccessibleFieldDOMStruc
|
|
|
20
17
|
field?: SlotComponentPropsFromProps<PickerFieldSlotProps<PickerValue, TEnableAccessibleFieldDOMStructure>, {}, PickerOwnerState>;
|
|
21
18
|
}
|
|
22
19
|
export interface UseMobilePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends ExportedUseMobilePickerSlotProps<TEnableAccessibleFieldDOMStructure>, Pick<PickersLayoutSlotProps<PickerValue>, 'toolbar'> {}
|
|
23
|
-
export interface MobileOnlyPickerProps extends
|
|
24
|
-
export interface UseMobilePickerProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError, TExternalProps extends
|
|
20
|
+
export interface MobileOnlyPickerProps extends UsePickerNonStaticProps {}
|
|
21
|
+
export interface UseMobilePickerProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError, TExternalProps extends UsePickerProps<PickerValue, TView, TError, any>> extends BasePickerProps<PickerValue, TView, TError, TExternalProps>, MakeRequired<MobileOnlyPickerProps, 'format'> {
|
|
25
22
|
/**
|
|
26
23
|
* Overridable component slots.
|
|
27
24
|
* @default {}
|
|
@@ -33,6 +30,6 @@ export interface UseMobilePickerProps<TView extends DateOrTimeViewWithMeridiem,
|
|
|
33
30
|
*/
|
|
34
31
|
slotProps?: UseMobilePickerSlotProps<TEnableAccessibleFieldDOMStructure>;
|
|
35
32
|
}
|
|
36
|
-
export interface UseMobilePickerParams<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TExternalProps extends UseMobilePickerProps<TView, TEnableAccessibleFieldDOMStructure, any, TExternalProps>> extends Pick<
|
|
33
|
+
export interface UseMobilePickerParams<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TExternalProps extends UseMobilePickerProps<TView, TEnableAccessibleFieldDOMStructure, any, TExternalProps>> extends Pick<UsePickerParameters<PickerValue, TView, TExternalProps>, 'valueManager' | 'valueType' | 'validator' | 'ref'> {
|
|
37
34
|
props: TExternalProps;
|
|
38
35
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { UseFieldInternalProps } from './useField';
|
|
3
|
+
import { FieldRef } from "../../models/index.js";
|
|
4
|
+
import { PickerRangeValue, PickerValue } from "../models/index.js";
|
|
5
|
+
export declare const PickerFieldPrivateContext: React.Context<PickerFieldPrivateContextValue | null>;
|
|
6
|
+
export declare function useNullableFieldPrivateContext(): PickerFieldPrivateContextValue | null;
|
|
7
|
+
export interface PickerFieldPrivateContextValue extends Pick<UseFieldInternalProps<any, any, any>, 'formatDensity' | 'enableAccessibleFieldDOMStructure' | 'selectedSections' | 'onSelectedSectionsChange'> {
|
|
8
|
+
fieldRef: React.RefObject<FieldRef<PickerValue> | FieldRef<PickerRangeValue> | null>;
|
|
9
|
+
}
|