@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,13 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports.usePicker = void 0;
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
+
var React = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
|
|
13
|
+
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
14
|
+
var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
|
|
15
|
+
var _useId = _interopRequireDefault(require("@mui/utils/useId"));
|
|
16
|
+
var _useUtils = require("../useUtils");
|
|
17
|
+
var _useReduceAnimations = require("../useReduceAnimations");
|
|
18
|
+
var _timeUtils = require("../../utils/time-utils");
|
|
19
|
+
var _useViews = require("../useViews");
|
|
20
|
+
var _useOrientation = require("./hooks/useOrientation");
|
|
21
|
+
var _useValueAndOpenStates = require("./hooks/useValueAndOpenStates");
|
|
22
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
+
const _excluded = ["className", "sx"];
|
|
11
24
|
const usePicker = ({
|
|
12
25
|
ref,
|
|
13
26
|
props,
|
|
@@ -16,44 +29,275 @@ const usePicker = ({
|
|
|
16
29
|
variant,
|
|
17
30
|
validator,
|
|
18
31
|
autoFocusView,
|
|
19
|
-
rendererInterceptor,
|
|
20
|
-
|
|
21
|
-
|
|
32
|
+
rendererInterceptor: RendererInterceptor,
|
|
33
|
+
localeText,
|
|
34
|
+
viewContainerRole
|
|
22
35
|
}) => {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
36
|
+
const {
|
|
37
|
+
// View props
|
|
38
|
+
views,
|
|
39
|
+
view: viewProp,
|
|
40
|
+
openTo,
|
|
41
|
+
onViewChange,
|
|
42
|
+
viewRenderers,
|
|
43
|
+
reduceAnimations: reduceAnimationsProp,
|
|
44
|
+
orientation: orientationProp,
|
|
45
|
+
disableOpenPicker,
|
|
46
|
+
// Form props
|
|
47
|
+
disabled,
|
|
48
|
+
readOnly,
|
|
49
|
+
// Field props
|
|
50
|
+
formatDensity,
|
|
51
|
+
enableAccessibleFieldDOMStructure,
|
|
52
|
+
selectedSections,
|
|
53
|
+
onSelectedSectionsChange,
|
|
54
|
+
format,
|
|
55
|
+
label,
|
|
56
|
+
// Other props
|
|
57
|
+
autoFocus,
|
|
58
|
+
name
|
|
59
|
+
} = props;
|
|
60
|
+
const {
|
|
61
|
+
className,
|
|
62
|
+
sx
|
|
63
|
+
} = props,
|
|
64
|
+
propsToForwardToView = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* TODO: Improve how we generate the aria-label and aria-labelledby attributes.
|
|
68
|
+
*/
|
|
69
|
+
const labelId = (0, _useId.default)();
|
|
70
|
+
const utils = (0, _useUtils.useUtils)();
|
|
71
|
+
const adapter = (0, _useUtils.useLocalizationContext)();
|
|
72
|
+
const reduceAnimations = (0, _useReduceAnimations.useReduceAnimations)(reduceAnimationsProp);
|
|
73
|
+
const orientation = (0, _useOrientation.useOrientation)(views, orientationProp);
|
|
74
|
+
const {
|
|
75
|
+
current: initialView
|
|
76
|
+
} = React.useRef(openTo ?? null);
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Refs
|
|
80
|
+
*/
|
|
81
|
+
const triggerRef = React.useRef(null);
|
|
82
|
+
const popupRef = React.useRef(null);
|
|
83
|
+
const fieldRef = React.useRef(null);
|
|
84
|
+
const rootRefObject = React.useRef(null);
|
|
85
|
+
const rootRef = (0, _useForkRef.default)(ref, rootRefObject);
|
|
86
|
+
const {
|
|
87
|
+
timezone,
|
|
88
|
+
state,
|
|
89
|
+
setOpen,
|
|
90
|
+
setValue,
|
|
91
|
+
setValueFromView
|
|
92
|
+
} = (0, _useValueAndOpenStates.useValueAndOpenStates)({
|
|
29
93
|
props,
|
|
30
94
|
valueManager,
|
|
31
|
-
valueType,
|
|
32
95
|
validator
|
|
33
96
|
});
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
97
|
+
const {
|
|
98
|
+
view,
|
|
99
|
+
setView,
|
|
100
|
+
defaultView,
|
|
101
|
+
focusedView,
|
|
102
|
+
setFocusedView,
|
|
103
|
+
setValueAndGoToNextView
|
|
104
|
+
} = (0, _useViews.useViews)({
|
|
105
|
+
view: viewProp,
|
|
106
|
+
views,
|
|
107
|
+
openTo,
|
|
108
|
+
onChange: setValueFromView,
|
|
109
|
+
onViewChange,
|
|
110
|
+
autoFocus: autoFocusView
|
|
40
111
|
});
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
112
|
+
const clearValue = (0, _useEventCallback.default)(() => setValue(valueManager.emptyValue));
|
|
113
|
+
const setValueToToday = (0, _useEventCallback.default)(() => setValue(valueManager.getTodayValue(utils, timezone, valueType)));
|
|
114
|
+
const acceptValueChanges = (0, _useEventCallback.default)(() => setValue(state.lastPublishedValue));
|
|
115
|
+
const cancelValueChanges = (0, _useEventCallback.default)(() => setValue(state.lastCommittedValue, {
|
|
116
|
+
skipPublicationIfPristine: true
|
|
117
|
+
}));
|
|
118
|
+
const dismissViews = (0, _useEventCallback.default)(() => {
|
|
119
|
+
setValue(state.lastPublishedValue, {
|
|
120
|
+
skipPublicationIfPristine: true
|
|
121
|
+
});
|
|
49
122
|
});
|
|
123
|
+
const valueWithoutError = React.useMemo(() => valueManager.cleanValue(utils, state.draft), [utils, valueManager, state.draft]);
|
|
124
|
+
const {
|
|
125
|
+
hasUIView,
|
|
126
|
+
viewModeLookup,
|
|
127
|
+
timeViewsCount
|
|
128
|
+
} = React.useMemo(() => views.reduce((acc, viewForReduce) => {
|
|
129
|
+
const viewMode = viewRenderers[viewForReduce] == null ? 'field' : 'UI';
|
|
130
|
+
acc.viewModeLookup[viewForReduce] = viewMode;
|
|
131
|
+
if (viewMode === 'UI') {
|
|
132
|
+
acc.hasUIView = true;
|
|
133
|
+
if ((0, _timeUtils.isTimeView)(viewForReduce)) {
|
|
134
|
+
acc.timeViewsCount += 1;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return acc;
|
|
138
|
+
}, {
|
|
139
|
+
hasUIView: false,
|
|
140
|
+
viewModeLookup: {},
|
|
141
|
+
timeViewsCount: 0
|
|
142
|
+
}), [viewRenderers, views]);
|
|
143
|
+
const currentViewMode = viewModeLookup[view];
|
|
144
|
+
const getCurrentViewMode = (0, _useEventCallback.default)(() => currentViewMode);
|
|
145
|
+
const [popperView, setPopperView] = React.useState(currentViewMode === 'UI' ? view : null);
|
|
146
|
+
if (popperView !== view && viewModeLookup[view] === 'UI') {
|
|
147
|
+
setPopperView(view);
|
|
148
|
+
}
|
|
149
|
+
(0, _useEnhancedEffect.default)(() => {
|
|
150
|
+
// Handle case of Date Time Picker without time renderers
|
|
151
|
+
if (currentViewMode === 'field' && state.open) {
|
|
152
|
+
setOpen(false);
|
|
153
|
+
setTimeout(() => {
|
|
154
|
+
fieldRef?.current?.setSelectedSections(view);
|
|
155
|
+
// focusing the input before the range selection is done
|
|
156
|
+
// calling it outside of timeout results in an inconsistent behavior between Safari And Chrome
|
|
157
|
+
fieldRef?.current?.focusField(view);
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}, [view]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
161
|
+
|
|
162
|
+
(0, _useEnhancedEffect.default)(() => {
|
|
163
|
+
if (!state.open) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
let newView = view;
|
|
167
|
+
|
|
168
|
+
// If the current view is a field view, go to the last popper view
|
|
169
|
+
if (currentViewMode === 'field' && popperView != null) {
|
|
170
|
+
newView = popperView;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// If the current view is not the default view and both are UI views
|
|
174
|
+
if (newView !== defaultView && viewModeLookup[newView] === 'UI' && viewModeLookup[defaultView] === 'UI') {
|
|
175
|
+
newView = defaultView;
|
|
176
|
+
}
|
|
177
|
+
if (newView !== view) {
|
|
178
|
+
setView(newView);
|
|
179
|
+
}
|
|
180
|
+
setFocusedView(newView, true);
|
|
181
|
+
}, [state.open]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
182
|
+
|
|
183
|
+
const ownerState = React.useMemo(() => ({
|
|
184
|
+
isPickerValueEmpty: valueManager.areValuesEqual(utils, state.draft, valueManager.emptyValue),
|
|
185
|
+
isPickerOpen: state.open,
|
|
186
|
+
isPickerDisabled: props.disabled ?? false,
|
|
187
|
+
isPickerReadOnly: props.readOnly ?? false,
|
|
188
|
+
pickerOrientation: orientation,
|
|
189
|
+
pickerVariant: variant
|
|
190
|
+
}), [utils, valueManager, state.draft, state.open, orientation, variant, props.disabled, props.readOnly]);
|
|
191
|
+
const triggerStatus = React.useMemo(() => {
|
|
192
|
+
if (disableOpenPicker || !hasUIView) {
|
|
193
|
+
return 'hidden';
|
|
194
|
+
}
|
|
195
|
+
if (disabled || readOnly) {
|
|
196
|
+
return 'disabled';
|
|
197
|
+
}
|
|
198
|
+
return 'enabled';
|
|
199
|
+
}, [disableOpenPicker, hasUIView, disabled, readOnly]);
|
|
200
|
+
const actionsContextValue = React.useMemo(() => ({
|
|
201
|
+
setValue,
|
|
202
|
+
setOpen,
|
|
203
|
+
clearValue,
|
|
204
|
+
setValueToToday,
|
|
205
|
+
acceptValueChanges,
|
|
206
|
+
cancelValueChanges,
|
|
207
|
+
setView
|
|
208
|
+
}), [setValue, setOpen, clearValue, setValueToToday, acceptValueChanges, cancelValueChanges, setView]);
|
|
209
|
+
const contextValue = React.useMemo(() => (0, _extends2.default)({}, actionsContextValue, {
|
|
210
|
+
value: state.draft,
|
|
211
|
+
timezone,
|
|
212
|
+
open: state.open,
|
|
213
|
+
views,
|
|
214
|
+
view: popperView,
|
|
215
|
+
initialView,
|
|
216
|
+
disabled: disabled ?? false,
|
|
217
|
+
readOnly: readOnly ?? false,
|
|
218
|
+
autoFocus: autoFocus ?? false,
|
|
219
|
+
variant,
|
|
220
|
+
orientation,
|
|
221
|
+
popupRef,
|
|
222
|
+
reduceAnimations,
|
|
223
|
+
triggerRef,
|
|
224
|
+
triggerStatus,
|
|
225
|
+
fieldFormat: format ?? '',
|
|
226
|
+
name,
|
|
227
|
+
label,
|
|
228
|
+
rootSx: sx,
|
|
229
|
+
rootRef,
|
|
230
|
+
rootClassName: className
|
|
231
|
+
}), [actionsContextValue, state.draft, rootRef, variant, orientation, reduceAnimations, disabled, readOnly, format, className, name, label, sx, triggerRef, triggerStatus, timezone, state.open, popperView, views, initialView, autoFocus]);
|
|
232
|
+
const privateContextValue = React.useMemo(() => ({
|
|
233
|
+
dismissViews,
|
|
234
|
+
hasUIView,
|
|
235
|
+
getCurrentViewMode,
|
|
236
|
+
ownerState,
|
|
237
|
+
rootRefObject,
|
|
238
|
+
labelId,
|
|
239
|
+
viewContainerRole
|
|
240
|
+
}), [dismissViews, hasUIView, getCurrentViewMode, ownerState, rootRefObject, labelId, viewContainerRole]);
|
|
241
|
+
const fieldPrivateContextValue = React.useMemo(() => ({
|
|
242
|
+
formatDensity,
|
|
243
|
+
enableAccessibleFieldDOMStructure,
|
|
244
|
+
selectedSections,
|
|
245
|
+
onSelectedSectionsChange,
|
|
246
|
+
fieldRef
|
|
247
|
+
}), [formatDensity, enableAccessibleFieldDOMStructure, selectedSections, onSelectedSectionsChange, fieldRef]);
|
|
248
|
+
const isValidContextValue = testedValue => {
|
|
249
|
+
const error = validator({
|
|
250
|
+
adapter,
|
|
251
|
+
value: testedValue,
|
|
252
|
+
timezone,
|
|
253
|
+
props
|
|
254
|
+
});
|
|
255
|
+
return !valueManager.hasError(error);
|
|
256
|
+
};
|
|
257
|
+
const renderCurrentView = () => {
|
|
258
|
+
if (popperView == null) {
|
|
259
|
+
return null;
|
|
260
|
+
}
|
|
261
|
+
const renderer = viewRenderers[popperView];
|
|
262
|
+
if (renderer == null) {
|
|
263
|
+
return null;
|
|
264
|
+
}
|
|
265
|
+
const rendererProps = (0, _extends2.default)({}, propsToForwardToView, {
|
|
266
|
+
views,
|
|
267
|
+
timezone,
|
|
268
|
+
value: valueWithoutError,
|
|
269
|
+
onChange: setValueAndGoToNextView,
|
|
270
|
+
view: popperView,
|
|
271
|
+
onViewChange: setView,
|
|
272
|
+
showViewSwitcher: timeViewsCount > 1,
|
|
273
|
+
timeViewsCount
|
|
274
|
+
}, viewContainerRole === 'tooltip' ? {
|
|
275
|
+
focusedView: null,
|
|
276
|
+
onFocusedViewChange: () => {}
|
|
277
|
+
} : {
|
|
278
|
+
focusedView,
|
|
279
|
+
onFocusedViewChange: setFocusedView
|
|
280
|
+
});
|
|
281
|
+
if (RendererInterceptor) {
|
|
282
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(RendererInterceptor, {
|
|
283
|
+
viewRenderers: viewRenderers,
|
|
284
|
+
popperView: popperView,
|
|
285
|
+
rendererProps: rendererProps
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
return renderer(rendererProps);
|
|
289
|
+
};
|
|
50
290
|
return {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
291
|
+
providerProps: {
|
|
292
|
+
localeText,
|
|
293
|
+
contextValue,
|
|
294
|
+
privateContextValue,
|
|
295
|
+
actionsContextValue,
|
|
296
|
+
fieldPrivateContextValue,
|
|
297
|
+
isValidContextValue
|
|
298
|
+
},
|
|
299
|
+
renderCurrentView,
|
|
300
|
+
ownerState
|
|
57
301
|
};
|
|
58
302
|
};
|
|
59
303
|
exports.usePicker = usePicker;
|
|
@@ -1,18 +1,190 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { InferError, PickerOwnerState } from "../../../models/index.js";
|
|
4
|
-
import { DateOrTimeViewWithMeridiem, PickerValidValue } from "../../models/index.js";
|
|
5
|
-
import {
|
|
1
|
+
import { SxProps } from '@mui/system';
|
|
2
|
+
import { Theme } from '@mui/material/styles';
|
|
3
|
+
import { InferError, OnErrorProps, PickerChangeHandlerContext, PickerOwnerState, PickerValidDate, PickerValueType, TimezoneProps } from "../../../models/index.js";
|
|
4
|
+
import { DateOrTimeViewWithMeridiem, FormProps, PickerOrientation, PickerValidValue, PickerValueManager, PickerVariant } from "../../models/index.js";
|
|
5
|
+
import { Validator } from "../../../validation/index.js";
|
|
6
|
+
import { UseViewsOptions } from "../useViews.js";
|
|
7
|
+
import { PickerProviderProps } from "../../components/PickerProvider.js";
|
|
8
|
+
import { PickersInputLocaleText } from "../../../locales/index.js";
|
|
9
|
+
import { PickerFieldPrivateContextValue } from "../useNullableFieldPrivateContext.js";
|
|
6
10
|
/**
|
|
7
11
|
* Props common to all picker headless implementations.
|
|
12
|
+
* Those props are exposed on all the pickers.
|
|
8
13
|
*/
|
|
9
|
-
export interface UsePickerBaseProps<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends
|
|
10
|
-
|
|
11
|
-
|
|
14
|
+
export interface UsePickerBaseProps<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerProps<TValue, TView, TError, any>> extends OnErrorProps<TValue, TError>, Omit<UseViewsOptions<any, TView>, 'onChange' | 'onFocusedViewChange' | 'focusedView'>, TimezoneProps, FormProps {
|
|
15
|
+
/**
|
|
16
|
+
* The selected value.
|
|
17
|
+
* Used when the component is controlled.
|
|
18
|
+
*/
|
|
19
|
+
value?: TValue;
|
|
20
|
+
/**
|
|
21
|
+
* The default value.
|
|
22
|
+
* Used when the component is not controlled.
|
|
23
|
+
*/
|
|
24
|
+
defaultValue?: TValue;
|
|
25
|
+
/**
|
|
26
|
+
* Callback fired when the value changes.
|
|
27
|
+
* @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.
|
|
28
|
+
* @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.
|
|
29
|
+
* @param {TValue} value The new value.
|
|
30
|
+
* @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
|
|
31
|
+
*/
|
|
32
|
+
onChange?: (value: TValue, context: PickerChangeHandlerContext<TError>) => void;
|
|
33
|
+
/**
|
|
34
|
+
* Callback fired when the value is accepted.
|
|
35
|
+
* @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.
|
|
36
|
+
* @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.
|
|
37
|
+
* @param {TValue} value The value that was just accepted.
|
|
38
|
+
* @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
|
|
39
|
+
*/
|
|
40
|
+
onAccept?: (value: TValue, context: PickerChangeHandlerContext<TError>) => void;
|
|
41
|
+
/**
|
|
42
|
+
* If `null`, the section will only have field editing.
|
|
43
|
+
* If `undefined`, internally defined view will be used.
|
|
44
|
+
*/
|
|
45
|
+
viewRenderers: PickerViewRendererLookup<TValue, TView, TExternalProps>;
|
|
46
|
+
/**
|
|
47
|
+
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
48
|
+
* @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
|
|
49
|
+
*/
|
|
50
|
+
referenceDate?: PickerValidDate;
|
|
51
|
+
/**
|
|
52
|
+
* Force rendering in particular orientation.
|
|
53
|
+
*/
|
|
54
|
+
orientation?: PickerOrientation;
|
|
55
|
+
/**
|
|
56
|
+
* If `true`, disable heavy animations.
|
|
57
|
+
* @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13
|
|
58
|
+
*/
|
|
59
|
+
reduceAnimations?: boolean;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Props used to handle the value of non-static pickers.
|
|
63
|
+
*/
|
|
64
|
+
export interface UsePickerNonStaticProps extends Omit<PickerFieldPrivateContextValue, 'fieldRef'> {
|
|
65
|
+
/**
|
|
66
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
67
|
+
* @default false
|
|
68
|
+
*/
|
|
69
|
+
closeOnSelect?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Control the popup or dialog open state.
|
|
72
|
+
* @default false
|
|
73
|
+
*/
|
|
74
|
+
open?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Callback fired when the popup requests to be closed.
|
|
77
|
+
* Use in controlled mode (see `open`).
|
|
78
|
+
*/
|
|
79
|
+
onClose?: () => void;
|
|
80
|
+
/**
|
|
81
|
+
* Callback fired when the popup requests to be opened.
|
|
82
|
+
* Use in controlled mode (see `open`).
|
|
83
|
+
*/
|
|
84
|
+
onOpen?: () => void;
|
|
85
|
+
/**
|
|
86
|
+
* Format of the date when rendered in the input(s).
|
|
87
|
+
* Defaults to localized format based on the used `views`.
|
|
88
|
+
*/
|
|
89
|
+
format?: string;
|
|
90
|
+
/**
|
|
91
|
+
* If `true`, the open picker button will not be rendered (renders only the field).
|
|
92
|
+
* @default false
|
|
93
|
+
*/
|
|
94
|
+
disableOpenPicker?: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* The label content.
|
|
97
|
+
*/
|
|
98
|
+
label?: React.ReactNode;
|
|
99
|
+
/**
|
|
100
|
+
* Pass a ref to the `input` element.
|
|
101
|
+
*/
|
|
102
|
+
inputRef?: React.Ref<HTMLInputElement>;
|
|
103
|
+
/**
|
|
104
|
+
* Name attribute used by the `input` element in the Field.
|
|
105
|
+
*/
|
|
106
|
+
name?: string;
|
|
107
|
+
}
|
|
108
|
+
export interface UsePickerProps<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerProps<TValue, TView, TError, any>> extends UsePickerBaseProps<TValue, TView, TError, TExternalProps>, UsePickerNonStaticProps {
|
|
109
|
+
referenceDate?: PickerValidDate;
|
|
110
|
+
className?: string;
|
|
111
|
+
sx?: SxProps<Theme>;
|
|
112
|
+
}
|
|
113
|
+
export interface UsePickerParameters<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UsePickerProps<TValue, TView, any, any>> {
|
|
114
|
+
ref: React.ForwardedRef<HTMLDivElement> | undefined;
|
|
115
|
+
localeText: PickersInputLocaleText | undefined;
|
|
116
|
+
variant: PickerVariant;
|
|
117
|
+
valueManager: PickerValueManager<TValue, InferError<TExternalProps>>;
|
|
118
|
+
valueType: PickerValueType;
|
|
119
|
+
validator: Validator<TValue, InferError<TExternalProps>, TExternalProps>;
|
|
120
|
+
autoFocusView: boolean;
|
|
121
|
+
viewContainerRole: 'dialog' | 'tooltip' | null;
|
|
122
|
+
/**
|
|
123
|
+
* A function that intercepts the regular picker rendering.
|
|
124
|
+
* Can be used to consume the provided `viewRenderers` and render a custom component wrapping them.
|
|
125
|
+
* @param {PickerViewRendererLookup<TValue, TView, TExternalProps>} viewRenderers The `viewRenderers` that were provided to the picker component.
|
|
126
|
+
* @param {TView} popperView The current picker view.
|
|
127
|
+
* @param {any} rendererProps All the props that are being passed down to the renderer.
|
|
128
|
+
* @returns {React.ReactNode} A React node that will be rendered instead of the default renderer.
|
|
129
|
+
*/
|
|
130
|
+
rendererInterceptor?: React.JSXElementConstructor<PickerRendererInterceptorProps<TValue, TView, TExternalProps>>;
|
|
12
131
|
props: TExternalProps;
|
|
13
132
|
}
|
|
14
133
|
export interface UsePickerReturnValue<TValue extends PickerValidValue> {
|
|
15
134
|
ownerState: PickerOwnerState;
|
|
16
135
|
renderCurrentView: () => React.ReactNode;
|
|
17
|
-
providerProps:
|
|
136
|
+
providerProps: Omit<PickerProviderProps<TValue>, 'children'>;
|
|
137
|
+
}
|
|
138
|
+
export type PickerSelectionState = 'partial' | 'shallow' | 'finish';
|
|
139
|
+
export interface UsePickerState<TValue extends PickerValidValue> {
|
|
140
|
+
/**
|
|
141
|
+
* Whether the picker is open.
|
|
142
|
+
*/
|
|
143
|
+
open: boolean;
|
|
144
|
+
/**
|
|
145
|
+
* Date displayed on the views and the field.
|
|
146
|
+
* It is updated whenever the user modifies something.
|
|
147
|
+
*/
|
|
148
|
+
draft: TValue;
|
|
149
|
+
/**
|
|
150
|
+
* Last value published (the last value for which `shouldPublishValue` returned `true`).
|
|
151
|
+
* If `onChange` is defined, it's the value that was passed on the last call to this callback.
|
|
152
|
+
*/
|
|
153
|
+
lastPublishedValue: TValue;
|
|
154
|
+
/**
|
|
155
|
+
* Last value committed (the last value for which `shouldCommitValue` returned `true`).
|
|
156
|
+
* If `onAccept` is defined, it's the value that was passed on the last call to this callback.
|
|
157
|
+
*/
|
|
158
|
+
lastCommittedValue: TValue;
|
|
159
|
+
/**
|
|
160
|
+
* Last value passed to `props.value`.
|
|
161
|
+
* Used to update the `draft` value whenever the `value` prop changes.
|
|
162
|
+
*/
|
|
163
|
+
lastControlledValue: TValue | undefined;
|
|
164
|
+
/**
|
|
165
|
+
* If we never modified the value since the mount of the component,
|
|
166
|
+
* Then we might want to apply some custom logic.
|
|
167
|
+
*
|
|
168
|
+
* For example, when the component is not controlled and `defaultValue` is defined.
|
|
169
|
+
* Then clicking on "Accept", "Today" or "Clear" should fire `onAccept` with `defaultValue`, but clicking on "Cancel" or dismissing the picker should not.
|
|
170
|
+
*/
|
|
171
|
+
hasBeenModifiedSinceMount: boolean;
|
|
172
|
+
}
|
|
173
|
+
export interface PickerViewsRendererBaseExternalProps extends Omit<UsePickerProps<any, any, any, any>, 'openTo' | 'viewRenderers' | 'onChange'> {}
|
|
174
|
+
export type PickerViewsRendererProps<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TExternalProps extends PickerViewsRendererBaseExternalProps> = Omit<TExternalProps, 'className' | 'sx'> & {
|
|
175
|
+
value: TValue;
|
|
176
|
+
onChange: (value: TValue, selectionState?: PickerSelectionState) => void;
|
|
177
|
+
view: TView;
|
|
178
|
+
views: readonly TView[];
|
|
179
|
+
focusedView: TView | null;
|
|
180
|
+
onFocusedViewChange: (viewToFocus: TView, hasFocus: boolean) => void;
|
|
181
|
+
showViewSwitcher: boolean;
|
|
182
|
+
timeViewsCount: number;
|
|
183
|
+
};
|
|
184
|
+
export type PickerViewRenderer<TValue extends PickerValidValue, TExternalProps extends PickerViewsRendererBaseExternalProps> = (props: PickerViewsRendererProps<TValue, any, TExternalProps>) => React.ReactNode;
|
|
185
|
+
export type PickerViewRendererLookup<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TExternalProps extends PickerViewsRendererBaseExternalProps> = Record<TView, PickerViewRenderer<TValue, TExternalProps> | null>;
|
|
186
|
+
export interface PickerRendererInterceptorProps<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UsePickerProps<TValue, TView, any, TExternalProps>> {
|
|
187
|
+
viewRenderers: PickerViewRendererLookup<TValue, TView, TExternalProps>;
|
|
188
|
+
popperView: TView;
|
|
189
|
+
rendererProps: PickerViewsRendererProps<TValue, TView, TExternalProps>;
|
|
18
190
|
}
|
|
@@ -49,9 +49,10 @@ const useStaticPicker = _ref => {
|
|
|
49
49
|
renderCurrentView
|
|
50
50
|
} = (0, _usePicker.usePicker)((0, _extends2.default)({}, pickerParams, {
|
|
51
51
|
props,
|
|
52
|
+
variant: displayStaticWrapperAs,
|
|
52
53
|
autoFocusView: autoFocus ?? false,
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
viewContainerRole: null,
|
|
55
|
+
localeText
|
|
55
56
|
}));
|
|
56
57
|
const Layout = slots?.layout ?? PickerStaticLayout;
|
|
57
58
|
const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerProvider.PickerProvider, (0, _extends2.default)({}, providerProps, {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps } from "../../../PickersLayout/PickersLayout.types.js";
|
|
2
2
|
import { BasePickerProps } from "../../models/props/basePickerProps.js";
|
|
3
|
-
import {
|
|
4
|
-
import { UsePickerViewsProps } from "../usePicker/usePickerViews.js";
|
|
3
|
+
import { UsePickerParameters, UsePickerProps } from "../usePicker/index.js";
|
|
5
4
|
import { DateOrTimeViewWithMeridiem, PickerValue } from "../../models/index.js";
|
|
6
5
|
export interface UseStaticPickerSlots extends ExportedPickersLayoutSlots<PickerValue> {}
|
|
7
6
|
export interface UseStaticPickerSlotProps extends ExportedPickersLayoutSlotProps<PickerValue> {}
|
|
@@ -23,7 +22,7 @@ export interface StaticOnlyPickerProps {
|
|
|
23
22
|
*/
|
|
24
23
|
onClose?: () => void;
|
|
25
24
|
}
|
|
26
|
-
export interface UseStaticPickerProps<TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends
|
|
25
|
+
export interface UseStaticPickerProps<TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerProps<PickerValue, TView, TError, any>> extends BasePickerProps<PickerValue, TView, TError, TExternalProps>, StaticOnlyPickerProps {
|
|
27
26
|
/**
|
|
28
27
|
* Overridable component slots.
|
|
29
28
|
* @default {}
|
|
@@ -35,6 +34,6 @@ export interface UseStaticPickerProps<TView extends DateOrTimeViewWithMeridiem,
|
|
|
35
34
|
*/
|
|
36
35
|
slotProps?: UseStaticPickerSlotProps;
|
|
37
36
|
}
|
|
38
|
-
export interface UseStaticPickerParams<TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseStaticPickerProps<TView, any, TExternalProps>> extends Pick<
|
|
37
|
+
export interface UseStaticPickerParams<TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseStaticPickerProps<TView, any, TExternalProps>> extends Pick<UsePickerParameters<PickerValue, TView, TExternalProps>, 'valueManager' | 'valueType' | 'validator' | 'ref'> {
|
|
39
38
|
props: TExternalProps;
|
|
40
39
|
}
|
package/internals/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { PickersArrowSwitcher } from "./components/PickersArrowSwitcher/PickersArrowSwitcher.js";
|
|
2
2
|
export type { ExportedPickersArrowSwitcherProps, PickersArrowSwitcherSlots, PickersArrowSwitcherSlotProps } from './components/PickersArrowSwitcher';
|
|
3
|
-
export { PickerFieldUI, PickerFieldUIContextProvider, cleanFieldResponse, useFieldTextFieldProps } from "./components/PickerFieldUI.js";
|
|
4
|
-
export type { ExportedPickerFieldUIProps, PickerFieldUISlots, PickerFieldUISlotProps } from './components/PickerFieldUI';
|
|
3
|
+
export { PickerFieldUI, PickerFieldUIContextProvider, cleanFieldResponse, useFieldTextFieldProps, PickerFieldUIContext, mergeSlotProps } from "./components/PickerFieldUI.js";
|
|
4
|
+
export type { ExportedPickerFieldUIProps, PickerFieldUISlots, PickerFieldUISlotProps, PickerFieldUISlotsFromContext, PickerFieldUISlotPropsFromContext } from './components/PickerFieldUI';
|
|
5
5
|
export { PickerProvider } from "./components/PickerProvider.js";
|
|
6
6
|
export type { PickerContextValue } from './components/PickerProvider';
|
|
7
7
|
export { PickersModalDialog } from "./components/PickersModalDialog.js";
|
|
@@ -25,15 +25,13 @@ export { DAY_MARGIN, DIALOG_WIDTH, VIEW_HEIGHT } from "./constants/dimensions.js
|
|
|
25
25
|
export { useControlledValueWithTimezone } from "./hooks/useValueWithTimezone.js";
|
|
26
26
|
export type { DesktopOnlyPickerProps } from './hooks/useDesktopPicker';
|
|
27
27
|
export { useField, useFieldInternalPropsWithDefaults, createDateStrForV7HiddenInputFromSections, createDateStrForV6InputFromSections } from "./hooks/useField/index.js";
|
|
28
|
-
export type { UseFieldInternalProps, UseFieldParams, UseFieldResponse, FieldValueManager, FieldChangeHandler, FieldChangeHandlerContext
|
|
28
|
+
export type { UseFieldInternalProps, UseFieldParams, UseFieldResponse, FieldValueManager, FieldChangeHandler, FieldChangeHandlerContext } from './hooks/useField';
|
|
29
29
|
export { useFieldOwnerState } from "./hooks/useFieldOwnerState.js";
|
|
30
30
|
export type { MobileOnlyPickerProps } from './hooks/useMobilePicker';
|
|
31
|
+
export { useNullableFieldPrivateContext } from "./hooks/useNullableFieldPrivateContext.js";
|
|
31
32
|
export { useNullablePickerContext } from "./hooks/useNullablePickerContext.js";
|
|
32
33
|
export { usePicker } from "./hooks/usePicker/index.js";
|
|
33
|
-
export type {
|
|
34
|
-
export type { UsePickerValueContextValue, UsePickerValueNonStaticProps, PickerValueManager, PickerSelectionState } from './hooks/usePicker/usePickerValue.types';
|
|
35
|
-
export type { PickerViewRendererLookup, PickerRendererInterceptorProps, PickerViewRenderer, UsePickerViewsProps } from './hooks/usePicker/usePickerViews';
|
|
36
|
-
export type { UsePickerProviderNonStaticProps } from './hooks/usePicker/usePickerProvider';
|
|
34
|
+
export type { UsePickerParameters, UsePickerProps, PickerViewsRendererProps, PickerSelectionState, PickerViewRendererLookup, PickerRendererInterceptorProps, PickerViewRenderer, UsePickerNonStaticProps } from './hooks/usePicker';
|
|
37
35
|
export { usePickerPrivateContext } from "./hooks/usePickerPrivateContext.js";
|
|
38
36
|
export { useStaticPicker } from "./hooks/useStaticPicker/index.js";
|
|
39
37
|
export type { StaticOnlyPickerProps, UseStaticPickerSlots, UseStaticPickerSlotProps } from './hooks/useStaticPicker';
|
|
@@ -43,11 +41,11 @@ export { useLocalizationContext, useDefaultDates, useUtils, useNow } from "./hoo
|
|
|
43
41
|
export type { ExportedUseViewsOptions, UseViewsOptions } from './hooks/useViews';
|
|
44
42
|
export { useViews } from "./hooks/useViews.js";
|
|
45
43
|
export { usePreviousMonthDisabled, useNextMonthDisabled } from "./hooks/date-helpers-hooks.js";
|
|
46
|
-
export type { PickerAnyManager, PickerManagerFieldInternalProps, PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerError } from './models/manager';
|
|
44
|
+
export type { PickerAnyManager, PickerManagerFieldInternalProps, PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerError, PickerValueManager } from './models/manager';
|
|
47
45
|
export type { RangePosition } from './models/pickers';
|
|
48
46
|
export type { BaseSingleInputFieldProps, FieldRangeSection } from './models/fields';
|
|
49
47
|
export type { BasePickerProps, BasePickerInputProps } from './models/props/basePickerProps';
|
|
50
|
-
export type { BaseClockProps,
|
|
48
|
+
export type { BaseClockProps, DigitalTimePickerProps, AmPmProps } from './models/props/time';
|
|
51
49
|
export type { ExportedBaseTabsProps } from './models/props/tabs';
|
|
52
50
|
export type { BaseToolbarProps, ExportedBaseToolbarProps } from './models/props/toolbar';
|
|
53
51
|
export type { FormProps } from './models/formProps';
|