@mui/x-date-pickers 8.0.0-alpha.13 → 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/CHANGELOG.md +131 -0
- package/DatePicker/shared.d.ts +1 -1
- package/DateTimePicker/DateTimePicker.types.d.ts +2 -2
- 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/TimePicker/shared.d.ts +1 -1
- package/esm/DatePicker/shared.d.ts +1 -1
- package/esm/DateTimePicker/DateTimePicker.types.d.ts +2 -2
- 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/TimePicker/shared.d.ts +1 -1
- package/esm/index.js +1 -1
- package/esm/internals/components/PickerFieldUI.js +6 -2
- package/esm/internals/components/PickerPopper/PickerPopper.js +3 -3
- package/esm/internals/components/PickerProvider.d.ts +137 -6
- package/esm/internals/components/PickerProvider.js +1 -1
- package/esm/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +4 -7
- package/esm/internals/hooks/useField/useField.js +7 -8
- package/esm/internals/hooks/useField/useField.types.d.ts +46 -43
- package/esm/internals/hooks/useField/useField.utils.js +4 -1
- package/esm/internals/hooks/useField/useFieldCharacterEditing.js +2 -2
- 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 +1 -1
- package/esm/internals/hooks/useField/useFieldV7TextField.js +2 -1
- package/esm/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +4 -7
- package/esm/internals/hooks/useNullableFieldPrivateContext.d.ts +5 -2
- 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.types.d.ts +3 -4
- package/esm/internals/hooks/useValueWithTimezone.d.ts +1 -1
- package/esm/internals/index.d.ts +3 -6
- 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/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/manager.d.ts +4 -5
- package/esm/validation/useValidation.d.ts +1 -1
- package/index.js +1 -1
- package/internals/components/PickerFieldUI.js +6 -2
- package/internals/components/PickerPopper/PickerPopper.js +3 -3
- package/internals/components/PickerProvider.d.ts +137 -6
- package/internals/components/PickerProvider.js +1 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +4 -7
- package/internals/hooks/useField/useField.js +7 -8
- package/internals/hooks/useField/useField.types.d.ts +46 -43
- package/internals/hooks/useField/useField.utils.js +4 -1
- package/internals/hooks/useField/useFieldCharacterEditing.js +2 -2
- package/internals/hooks/useField/useFieldState.d.ts +2 -1
- package/internals/hooks/useField/useFieldState.js +135 -82
- package/internals/hooks/useField/useFieldV6TextField.js +1 -1
- package/internals/hooks/useField/useFieldV7TextField.js +2 -1
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +4 -7
- package/internals/hooks/useNullableFieldPrivateContext.d.ts +5 -2
- 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.types.d.ts +3 -4
- package/internals/hooks/useValueWithTimezone.d.ts +1 -1
- package/internals/index.d.ts +3 -6
- 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/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/manager.d.ts +4 -5
- package/modern/DatePicker/shared.d.ts +1 -1
- package/modern/DateTimePicker/DateTimePicker.types.d.ts +2 -2
- 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/TimePicker/shared.d.ts +1 -1
- package/modern/index.js +1 -1
- package/modern/internals/components/PickerFieldUI.js +6 -2
- package/modern/internals/components/PickerPopper/PickerPopper.js +3 -3
- package/modern/internals/components/PickerProvider.d.ts +137 -6
- package/modern/internals/components/PickerProvider.js +1 -1
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +4 -7
- package/modern/internals/hooks/useField/useField.js +7 -8
- package/modern/internals/hooks/useField/useField.types.d.ts +46 -43
- package/modern/internals/hooks/useField/useField.utils.js +4 -1
- package/modern/internals/hooks/useField/useFieldCharacterEditing.js +2 -2
- 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 +1 -1
- package/modern/internals/hooks/useField/useFieldV7TextField.js +2 -1
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +4 -7
- package/modern/internals/hooks/useNullableFieldPrivateContext.d.ts +5 -2
- 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.types.d.ts +3 -4
- package/modern/internals/hooks/useValueWithTimezone.d.ts +1 -1
- package/modern/internals/index.d.ts +3 -6
- 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/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/manager.d.ts +4 -5
- package/modern/validation/useValidation.d.ts +1 -1
- package/package.json +1 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/validation/useValidation.d.ts +1 -1
- 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 -65
- package/esm/internals/hooks/usePicker/usePickerProvider.js +0 -125
- 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 -137
- package/esm/internals/hooks/usePicker/usePickerViews.js +0 -188
- package/internals/hooks/useOpenState.d.ts +0 -14
- package/internals/hooks/useOpenState.js +0 -46
- package/internals/hooks/usePicker/usePickerProvider.d.ts +0 -65
- package/internals/hooks/usePicker/usePickerProvider.js +0 -135
- 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 -137
- package/internals/hooks/usePicker/usePickerViews.js +0 -195
- 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 -65
- package/modern/internals/hooks/usePicker/usePickerProvider.js +0 -125
- 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 -137
- package/modern/internals/hooks/usePicker/usePickerViews.js +0 -188
|
@@ -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
|
}
|
|
@@ -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
|
@@ -31,10 +31,7 @@ export type { MobileOnlyPickerProps } from './hooks/useMobilePicker';
|
|
|
31
31
|
export { useNullableFieldPrivateContext } from "./hooks/useNullableFieldPrivateContext.js";
|
|
32
32
|
export { useNullablePickerContext } from "./hooks/useNullablePickerContext.js";
|
|
33
33
|
export { usePicker } from "./hooks/usePicker/index.js";
|
|
34
|
-
export type {
|
|
35
|
-
export type { UsePickerValueContextValue, UsePickerValueNonStaticProps, PickerValueManager, PickerSelectionState } from './hooks/usePicker/usePickerValue.types';
|
|
36
|
-
export type { PickerViewRendererLookup, PickerRendererInterceptorProps, PickerViewRenderer, UsePickerViewsProps } from './hooks/usePicker/usePickerViews';
|
|
37
|
-
export type { UsePickerProviderNonStaticProps } from './hooks/usePicker/usePickerProvider';
|
|
34
|
+
export type { UsePickerParameters, UsePickerProps, PickerViewsRendererProps, PickerSelectionState, PickerViewRendererLookup, PickerRendererInterceptorProps, PickerViewRenderer, UsePickerNonStaticProps } from './hooks/usePicker';
|
|
38
35
|
export { usePickerPrivateContext } from "./hooks/usePickerPrivateContext.js";
|
|
39
36
|
export { useStaticPicker } from "./hooks/useStaticPicker/index.js";
|
|
40
37
|
export type { StaticOnlyPickerProps, UseStaticPickerSlots, UseStaticPickerSlotProps } from './hooks/useStaticPicker';
|
|
@@ -44,11 +41,11 @@ export { useLocalizationContext, useDefaultDates, useUtils, useNow } from "./hoo
|
|
|
44
41
|
export type { ExportedUseViewsOptions, UseViewsOptions } from './hooks/useViews';
|
|
45
42
|
export { useViews } from "./hooks/useViews.js";
|
|
46
43
|
export { usePreviousMonthDisabled, useNextMonthDisabled } from "./hooks/date-helpers-hooks.js";
|
|
47
|
-
export type { PickerAnyManager, PickerManagerFieldInternalProps, PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerError } from './models/manager';
|
|
44
|
+
export type { PickerAnyManager, PickerManagerFieldInternalProps, PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerError, PickerValueManager } from './models/manager';
|
|
48
45
|
export type { RangePosition } from './models/pickers';
|
|
49
46
|
export type { BaseSingleInputFieldProps, FieldRangeSection } from './models/fields';
|
|
50
47
|
export type { BasePickerProps, BasePickerInputProps } from './models/props/basePickerProps';
|
|
51
|
-
export type { BaseClockProps,
|
|
48
|
+
export type { BaseClockProps, DigitalTimePickerProps, AmPmProps } from './models/props/time';
|
|
52
49
|
export type { ExportedBaseTabsProps } from './models/props/tabs';
|
|
53
50
|
export type { BaseToolbarProps, ExportedBaseToolbarProps } from './models/props/toolbar';
|
|
54
51
|
export type { FormProps } from './models/formProps';
|
|
@@ -1,15 +1,119 @@
|
|
|
1
|
-
import type { PickerManager } from '../../models';
|
|
1
|
+
import type { MuiPickersAdapter, PickerManager, PickersTimezone, PickerValidDate, PickerValueType } from '../../models';
|
|
2
|
+
import type { GetDefaultReferenceDateProps } from '../utils/getDefaultReferenceDate';
|
|
3
|
+
import { InferNonNullablePickerValue, PickerValidValue } from "./value.js";
|
|
4
|
+
import type { UseFieldInternalProps } from '../hooks/useField';
|
|
2
5
|
export type PickerAnyManager = PickerManager<any, any, any, any, any>;
|
|
3
|
-
type PickerManagerProperties<TManager extends PickerAnyManager> = TManager extends PickerManager<infer TValue, infer TEnableAccessibleFieldDOMStructure, infer TError, infer
|
|
6
|
+
type PickerManagerProperties<TManager extends PickerAnyManager> = TManager extends PickerManager<infer TValue, infer TEnableAccessibleFieldDOMStructure, infer TError, infer TValidationProps, infer TFieldInternalProps> ? {
|
|
4
7
|
value: TValue;
|
|
5
8
|
enableAccessibleFieldDOMStructure: TEnableAccessibleFieldDOMStructure;
|
|
6
9
|
error: TError;
|
|
10
|
+
validationProps: TValidationProps;
|
|
7
11
|
fieldInternalProps: TFieldInternalProps;
|
|
8
|
-
fieldInternalPropsWithDefaults: TFieldInternalPropsWithDefaults;
|
|
9
12
|
} : never;
|
|
10
13
|
export type PickerManagerValue<TManager extends PickerAnyManager> = PickerManagerProperties<TManager>['value'];
|
|
11
14
|
export type PickerManagerError<TManager extends PickerAnyManager> = PickerManagerProperties<TManager>['error'];
|
|
12
15
|
export type PickerManagerFieldInternalProps<TManager extends PickerAnyManager> = PickerManagerProperties<TManager>['fieldInternalProps'];
|
|
13
|
-
export type
|
|
16
|
+
export type PickerManagerValidationProps<TManager extends PickerAnyManager> = PickerManagerProperties<TManager>['validationProps'];
|
|
17
|
+
export type PickerManagerFieldInternalPropsWithDefaults<TManager extends PickerAnyManager> = UseFieldInternalProps<PickerManagerValue<TManager>, PickerManagerEnableAccessibleFieldDOMStructure<TManager>, PickerManagerError<TManager>> & PickerManagerValidationProps<TManager>;
|
|
14
18
|
export type PickerManagerEnableAccessibleFieldDOMStructure<TManager extends PickerAnyManager> = PickerManagerProperties<TManager>['enableAccessibleFieldDOMStructure'];
|
|
19
|
+
export interface PickerValueManager<TValue extends PickerValidValue, TError> {
|
|
20
|
+
/**
|
|
21
|
+
* Determines if two values are equal.
|
|
22
|
+
* @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.
|
|
23
|
+
* @param {MuiPickersAdapter} utils The adapter.
|
|
24
|
+
* @param {TValue} valueLeft The first value to compare.
|
|
25
|
+
* @param {TValue} valueRight The second value to compare.
|
|
26
|
+
* @returns {boolean} A boolean indicating if the two values are equal.
|
|
27
|
+
*/
|
|
28
|
+
areValuesEqual: (utils: MuiPickersAdapter, valueLeft: TValue, valueRight: TValue) => boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Value to set when clicking the "Clear" button.
|
|
31
|
+
*/
|
|
32
|
+
emptyValue: TValue;
|
|
33
|
+
/**
|
|
34
|
+
* Method returning the value to set when clicking the "Today" button
|
|
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
|
+
* @param {MuiPickersAdapter} utils The adapter.
|
|
37
|
+
* @param {PickersTimezone} timezone The current timezone.
|
|
38
|
+
* @param {PickerValueType} valueType The type of the value being edited.
|
|
39
|
+
* @returns {TValue} The value to set when clicking the "Today" button.
|
|
40
|
+
*/
|
|
41
|
+
getTodayValue: (utils: MuiPickersAdapter, timezone: PickersTimezone, valueType: PickerValueType) => TValue;
|
|
42
|
+
/**
|
|
43
|
+
* @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.
|
|
44
|
+
* Method returning the reference value to use when mounting the component.
|
|
45
|
+
* @param {object} params The params of the method.
|
|
46
|
+
* @param {PickerValidDate | undefined} params.referenceDate The referenceDate provided by the user.
|
|
47
|
+
* @param {TValue} params.value The value provided by the user.
|
|
48
|
+
* @param {GetDefaultReferenceDateProps} params.props The validation props needed to compute the reference value.
|
|
49
|
+
* @param {MuiPickersAdapter} params.utils The adapter.
|
|
50
|
+
* @param {number} params.granularity The granularity of the selection possible on this component.
|
|
51
|
+
* @param {PickersTimezone} params.timezone The current timezone.
|
|
52
|
+
* @param {() => PickerValidDate} params.getTodayDate The reference date to use if no reference date is passed to the component.
|
|
53
|
+
* @returns {TValue} The reference value to use for non-provided dates.
|
|
54
|
+
*/
|
|
55
|
+
getInitialReferenceValue: (params: {
|
|
56
|
+
referenceDate: PickerValidDate | undefined;
|
|
57
|
+
value: TValue;
|
|
58
|
+
props: GetDefaultReferenceDateProps;
|
|
59
|
+
utils: MuiPickersAdapter;
|
|
60
|
+
granularity: number;
|
|
61
|
+
timezone: PickersTimezone;
|
|
62
|
+
getTodayDate?: () => PickerValidDate;
|
|
63
|
+
}) => InferNonNullablePickerValue<TValue>;
|
|
64
|
+
/**
|
|
65
|
+
* Method parsing the input value to replace all invalid dates by `null`.
|
|
66
|
+
* @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.
|
|
67
|
+
* @param {MuiPickersAdapter} utils The adapter.
|
|
68
|
+
* @param {TValue} value The value to parse.
|
|
69
|
+
* @returns {TValue} The value without invalid date.
|
|
70
|
+
*/
|
|
71
|
+
cleanValue: (utils: MuiPickersAdapter, value: TValue) => TValue;
|
|
72
|
+
/**
|
|
73
|
+
* Generates the new value, given the previous value and the new proposed value.
|
|
74
|
+
* @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.
|
|
75
|
+
* @param {MuiPickersAdapter} utils The adapter.
|
|
76
|
+
* @param {TValue} lastValidDateValue The last valid value.
|
|
77
|
+
* @param {TValue} value The proposed value.
|
|
78
|
+
* @returns {TValue} The new value.
|
|
79
|
+
*/
|
|
80
|
+
valueReducer?: (utils: MuiPickersAdapter, lastValidDateValue: TValue, value: TValue) => TValue;
|
|
81
|
+
/**
|
|
82
|
+
* Compare two errors to know if they are equal.
|
|
83
|
+
* @template TError
|
|
84
|
+
* @param {TError} error The new error
|
|
85
|
+
* @param {TError | null} prevError The previous error
|
|
86
|
+
* @returns {boolean} `true` if the new error is different from the previous one.
|
|
87
|
+
*/
|
|
88
|
+
isSameError: (error: TError, prevError: TError | null) => boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Checks if the current error is empty or not.
|
|
91
|
+
* @template TError
|
|
92
|
+
* @param {TError} error The current error.
|
|
93
|
+
* @returns {boolean} `true` if the current error is not empty.
|
|
94
|
+
*/
|
|
95
|
+
hasError: (error: TError) => boolean;
|
|
96
|
+
/**
|
|
97
|
+
* The value identifying no error, used to initialise the error state.
|
|
98
|
+
*/
|
|
99
|
+
defaultErrorState: TError;
|
|
100
|
+
/**
|
|
101
|
+
* Return the timezone of the date inside a value.
|
|
102
|
+
* Throw an error on range picker if both values don't have the same timezone.
|
|
103
|
+
* @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.
|
|
104
|
+
@param {MuiPickersAdapter} utils The utils to manipulate the date.
|
|
105
|
+
@param {TValue} value The current value.
|
|
106
|
+
@returns {string | null} The timezone of the current value.
|
|
107
|
+
*/
|
|
108
|
+
getTimezone: (utils: MuiPickersAdapter, value: TValue) => string | null;
|
|
109
|
+
/**
|
|
110
|
+
* Change the timezone of the dates inside a value.
|
|
111
|
+
* @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.
|
|
112
|
+
@param {MuiPickersAdapter} utils The utils to manipulate the date.
|
|
113
|
+
@param {PickersTimezone} timezone The current timezone.
|
|
114
|
+
@param {TValue} value The value to convert.
|
|
115
|
+
@returns {TValue} The value with the new dates in the new timezone.
|
|
116
|
+
*/
|
|
117
|
+
setTimezone: (utils: MuiPickersAdapter, timezone: PickersTimezone, value: TValue) => TValue;
|
|
118
|
+
}
|
|
15
119
|
export {};
|
|
@@ -3,13 +3,13 @@ import { SxProps } from '@mui/system';
|
|
|
3
3
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
4
4
|
import { UsePickerBaseProps } from "../../hooks/usePicker/index.js";
|
|
5
5
|
import { PickersInputComponentLocaleText } from "../../../locales/utils/pickersLocaleTextApi.js";
|
|
6
|
-
import type {
|
|
6
|
+
import type { UsePickerProps } from '../../hooks/usePicker';
|
|
7
7
|
import { DateOrTimeViewWithMeridiem } from "../common.js";
|
|
8
8
|
import { PickerValidValue } from "../value.js";
|
|
9
9
|
/**
|
|
10
10
|
* Props common to all pickers after applying the default props on each picker.
|
|
11
11
|
*/
|
|
12
|
-
export interface BasePickerProps<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends
|
|
12
|
+
export interface BasePickerProps<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerProps<TValue, TView, TError, any>> extends UsePickerBaseProps<TValue, TView, TError, TExternalProps> {
|
|
13
13
|
className?: string;
|
|
14
14
|
/**
|
|
15
15
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
@@ -37,7 +37,7 @@ export interface BaseClockProps<TView extends TimeViewWithMeridiem> extends Expo
|
|
|
37
37
|
*/
|
|
38
38
|
referenceDate?: PickerValidDate;
|
|
39
39
|
}
|
|
40
|
-
export interface
|
|
40
|
+
export interface DigitalTimePickerProps extends Omit<ExportedDigitalClockProps, 'timeStep'>, Omit<ExportedMultiSectionDigitalClockProps, 'timeSteps'> {
|
|
41
41
|
/**
|
|
42
42
|
* Amount of time options below or at which the single column time renderer is used.
|
|
43
43
|
* @default 24
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DefaultizedProps } from '@mui/x-internals/types';
|
|
2
2
|
import { DateOrTimeView, MuiPickersAdapter } from "../../models/index.js";
|
|
3
3
|
import { DateOrTimeViewWithMeridiem } from "../models/index.js";
|
|
4
|
-
import {
|
|
4
|
+
import { DigitalTimePickerProps } from "../models/props/time.js";
|
|
5
5
|
export declare const resolveDateTimeFormat: (utils: MuiPickersAdapter, {
|
|
6
6
|
views,
|
|
7
7
|
format,
|
|
@@ -11,7 +11,7 @@ export declare const resolveDateTimeFormat: (utils: MuiPickersAdapter, {
|
|
|
11
11
|
views: readonly DateOrTimeViewWithMeridiem[];
|
|
12
12
|
ampm: boolean;
|
|
13
13
|
}, ignoreDateResolving?: boolean) => string;
|
|
14
|
-
interface DefaultizedTimeViewsProps<TView = DateOrTimeView> extends DefaultizedProps<
|
|
14
|
+
interface DefaultizedTimeViewsProps<TView = DateOrTimeView> extends DefaultizedProps<DigitalTimePickerProps, 'ampm'> {
|
|
15
15
|
views: readonly TView[];
|
|
16
16
|
}
|
|
17
17
|
interface DefaultizedTimeViewsResponse<TView = DateOrTimeViewWithMeridiem> extends Required<Pick<DefaultizedTimeViewsProps<TView>, 'thresholdToRenderTimeInASingleColumn' | 'timeSteps' | 'views'>> {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PickerValueManager } from '../
|
|
1
|
+
import type { PickerValueManager } from '../models';
|
|
2
2
|
import { DateValidationError, TimeValidationError, DateTimeValidationError } from "../../models/index.js";
|
|
3
3
|
import type { FieldValueManager } from '../hooks/useField';
|
|
4
4
|
import { PickerValue } from "../models/index.js";
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.singleItemValueManager = exports.singleItemFieldValueManager = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
9
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
10
|
var _dateUtils = require("./date-utils");
|
|
10
11
|
var _getDefaultReferenceDate = require("./getDefaultReferenceDate");
|
|
@@ -36,24 +37,15 @@ const singleItemValueManager = exports.singleItemValueManager = {
|
|
|
36
37
|
setTimezone: (utils, timezone, value) => value == null ? null : utils.setTimezone(value, timezone)
|
|
37
38
|
};
|
|
38
39
|
const singleItemFieldValueManager = exports.singleItemFieldValueManager = {
|
|
39
|
-
updateReferenceValue: (utils, value, prevReferenceValue) =>
|
|
40
|
-
getSectionsFromValue: (
|
|
41
|
-
const shouldReUsePrevDateSections = !utils.isValid(date) && !!prevSections;
|
|
42
|
-
if (shouldReUsePrevDateSections) {
|
|
43
|
-
return prevSections;
|
|
44
|
-
}
|
|
45
|
-
return getSectionsFromDate(date);
|
|
46
|
-
},
|
|
40
|
+
updateReferenceValue: (utils, value, prevReferenceValue) => utils.isValid(value) ? value : prevReferenceValue,
|
|
41
|
+
getSectionsFromValue: (date, getSectionsFromDate) => getSectionsFromDate(date),
|
|
47
42
|
getV7HiddenInputValueFromSections: _useField.createDateStrForV7HiddenInputFromSections,
|
|
48
43
|
getV6InputValueFromSections: _useField.createDateStrForV6InputFromSections,
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
})
|
|
57
|
-
}),
|
|
58
|
-
parseValueStr: (valueStr, referenceValue, parseDate) => parseDate(valueStr.trim(), referenceValue)
|
|
44
|
+
parseValueStr: (valueStr, referenceValue, parseDate) => parseDate(valueStr.trim(), referenceValue),
|
|
45
|
+
getDateFromSection: value => value,
|
|
46
|
+
getDateSectionsFromValue: sections => sections,
|
|
47
|
+
updateDateInValue: (value, activeSection, activeDate) => activeDate,
|
|
48
|
+
clearDateSections: sections => sections.map(section => (0, _extends2.default)({}, section, {
|
|
49
|
+
value: ''
|
|
50
|
+
}))
|
|
59
51
|
};
|
|
@@ -3,7 +3,7 @@ import { PickerManager, DateValidationError } from "../models/index.js";
|
|
|
3
3
|
import { UseFieldInternalProps } from "../internals/hooks/useField/index.js";
|
|
4
4
|
import { MuiPickersAdapterContextValue } from "../LocalizationProvider/LocalizationProvider.js";
|
|
5
5
|
import { ExportedValidateDateProps, ValidateDatePropsToDefault, ValidateDateProps } from "../validation/validateDate.js";
|
|
6
|
-
import { PickerValue } from "../internals/models/index.js";
|
|
6
|
+
import { PickerManagerFieldInternalPropsWithDefaults, PickerValue } from "../internals/models/index.js";
|
|
7
7
|
export declare function useDateManager<TEnableAccessibleFieldDOMStructure extends boolean = true>(parameters?: UseDateManagerParameters<TEnableAccessibleFieldDOMStructure>): UseDateManagerReturnValue<TEnableAccessibleFieldDOMStructure>;
|
|
8
8
|
/**
|
|
9
9
|
* Private utility function to get the default internal props for the fields with date editing.
|
|
@@ -13,12 +13,11 @@ export declare function getDateFieldInternalPropsDefaults(parameters: GetDateFie
|
|
|
13
13
|
export interface UseDateManagerParameters<TEnableAccessibleFieldDOMStructure extends boolean> {
|
|
14
14
|
enableAccessibleFieldDOMStructure?: TEnableAccessibleFieldDOMStructure;
|
|
15
15
|
}
|
|
16
|
-
export type UseDateManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerValue, TEnableAccessibleFieldDOMStructure, DateValidationError, DateManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure
|
|
16
|
+
export type UseDateManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerValue, TEnableAccessibleFieldDOMStructure, DateValidationError, ValidateDateProps, DateManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>>;
|
|
17
17
|
export interface DateManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, DateValidationError>, 'format'>, ExportedValidateDateProps {}
|
|
18
|
-
interface DateManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure extends boolean> extends UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, DateValidationError>, ValidateDateProps {}
|
|
19
18
|
type DateManagerFieldPropsToDefault = 'format' | ValidateDatePropsToDefault;
|
|
20
19
|
interface GetDateFieldInternalPropsDefaultsParameters extends Pick<MuiPickersAdapterContextValue, 'defaultDates' | 'utils'> {
|
|
21
20
|
internalProps: Pick<DateManagerFieldInternalProps<true>, DateManagerFieldPropsToDefault>;
|
|
22
21
|
}
|
|
23
|
-
interface GetDateFieldInternalPropsDefaultsReturnValue extends Pick<
|
|
22
|
+
interface GetDateFieldInternalPropsDefaultsReturnValue extends Pick<PickerManagerFieldInternalPropsWithDefaults<UseDateManagerReturnValue<true>>, DateManagerFieldPropsToDefault> {}
|
|
24
23
|
export {};
|
|
@@ -4,7 +4,7 @@ import { UseFieldInternalProps } from "../internals/hooks/useField/index.js";
|
|
|
4
4
|
import { MuiPickersAdapterContextValue } from "../LocalizationProvider/LocalizationProvider.js";
|
|
5
5
|
import { AmPmProps } from "../internals/models/props/time.js";
|
|
6
6
|
import { ExportedValidateDateTimeProps, ValidateDateTimeProps, ValidateDateTimePropsToDefault } from "../validation/validateDateTime.js";
|
|
7
|
-
import { PickerValue } from "../internals/models/index.js";
|
|
7
|
+
import { PickerManagerFieldInternalPropsWithDefaults, PickerValue } from "../internals/models/index.js";
|
|
8
8
|
export declare function useDateTimeManager<TEnableAccessibleFieldDOMStructure extends boolean = true>(parameters?: UseDateTimeManagerParameters<TEnableAccessibleFieldDOMStructure>): UseDateTimeManagerReturnValue<TEnableAccessibleFieldDOMStructure>;
|
|
9
9
|
/**
|
|
10
10
|
* Private utility function to get the default internal props for the field with date time editing.
|
|
@@ -14,12 +14,11 @@ export declare function getDateTimeFieldInternalPropsDefaults(parameters: GetDat
|
|
|
14
14
|
export interface UseDateTimeManagerParameters<TEnableAccessibleFieldDOMStructure extends boolean> {
|
|
15
15
|
enableAccessibleFieldDOMStructure?: TEnableAccessibleFieldDOMStructure;
|
|
16
16
|
}
|
|
17
|
-
export type UseDateTimeManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerValue, TEnableAccessibleFieldDOMStructure, DateTimeValidationError, DateTimeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure
|
|
17
|
+
export type UseDateTimeManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerValue, TEnableAccessibleFieldDOMStructure, DateTimeValidationError, ValidateDateTimeProps, DateTimeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>>;
|
|
18
18
|
export interface DateTimeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, DateTimeValidationError>, 'format'>, ExportedValidateDateTimeProps, AmPmProps {}
|
|
19
|
-
interface DateTimeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure extends boolean> extends UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, DateTimeValidationError>, ValidateDateTimeProps {}
|
|
20
19
|
type DateTimeManagerFieldPropsToDefault = 'format' | 'minTime' | 'maxTime' | ValidateDateTimePropsToDefault;
|
|
21
20
|
interface GetDateTimeFieldInternalPropsDefaultsParameters extends Pick<MuiPickersAdapterContextValue, 'defaultDates' | 'utils'> {
|
|
22
21
|
internalProps: Pick<DateTimeManagerFieldInternalProps<true>, DateTimeManagerFieldPropsToDefault | 'minDateTime' | 'maxDateTime' | 'ampm'>;
|
|
23
22
|
}
|
|
24
|
-
interface GetDateTimeFieldInternalPropsDefaultsReturnValue extends Pick<
|
|
23
|
+
interface GetDateTimeFieldInternalPropsDefaultsReturnValue extends Pick<PickerManagerFieldInternalPropsWithDefaults<UseDateTimeManagerReturnValue<true>>, DateTimeManagerFieldPropsToDefault | 'disableIgnoringDatePartForTimeValidation'> {}
|
|
25
24
|
export {};
|
|
@@ -4,7 +4,7 @@ import { UseFieldInternalProps } from "../internals/hooks/useField/index.js";
|
|
|
4
4
|
import { MuiPickersAdapterContextValue } from "../LocalizationProvider/LocalizationProvider.js";
|
|
5
5
|
import { AmPmProps } from "../internals/models/props/time.js";
|
|
6
6
|
import { ExportedValidateTimeProps, ValidateTimeProps, ValidateTimePropsToDefault } from "../validation/validateTime.js";
|
|
7
|
-
import { PickerValue } from "../internals/models/index.js";
|
|
7
|
+
import { PickerManagerFieldInternalPropsWithDefaults, PickerValue } from "../internals/models/index.js";
|
|
8
8
|
export declare function useTimeManager<TEnableAccessibleFieldDOMStructure extends boolean = true>(parameters?: UseTimeManagerParameters<TEnableAccessibleFieldDOMStructure>): UseTimeManagerReturnValue<TEnableAccessibleFieldDOMStructure>;
|
|
9
9
|
/**
|
|
10
10
|
* Private utility function to get the default internal props for the fields with time editing.
|
|
@@ -14,12 +14,11 @@ export declare function getTimeFieldInternalPropsDefaults(parameters: GetTimeFie
|
|
|
14
14
|
export interface UseTimeManagerParameters<TEnableAccessibleFieldDOMStructure extends boolean> extends AmPmProps {
|
|
15
15
|
enableAccessibleFieldDOMStructure?: TEnableAccessibleFieldDOMStructure;
|
|
16
16
|
}
|
|
17
|
-
export type UseTimeManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerValue, TEnableAccessibleFieldDOMStructure, TimeValidationError, TimeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure
|
|
17
|
+
export type UseTimeManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerValue, TEnableAccessibleFieldDOMStructure, TimeValidationError, ValidateTimeProps, TimeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>>;
|
|
18
18
|
export interface TimeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, TimeValidationError>, 'format'>, ExportedValidateTimeProps, AmPmProps {}
|
|
19
|
-
interface TimeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure extends boolean> extends UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, TimeValidationError>, ValidateTimeProps {}
|
|
20
19
|
type TimeManagerFieldPropsToDefault = 'format' | ValidateTimePropsToDefault;
|
|
21
20
|
interface GetTimeFieldInternalPropsDefaultsParameters extends Pick<MuiPickersAdapterContextValue, 'utils'> {
|
|
22
21
|
internalProps: Pick<TimeManagerFieldInternalProps<true>, TimeManagerFieldPropsToDefault | 'ampm'>;
|
|
23
22
|
}
|
|
24
|
-
interface GetTimeFieldInternalPropsDefaultsReturnValue extends Pick<
|
|
23
|
+
interface GetTimeFieldInternalPropsDefaultsReturnValue extends Pick<PickerManagerFieldInternalPropsWithDefaults<UseTimeManagerReturnValue<true>>, TimeManagerFieldPropsToDefault> {}
|
|
25
24
|
export {};
|
package/models/adapters.d.ts
CHANGED
|
@@ -70,7 +70,7 @@ export interface AdapterFormats {
|
|
|
70
70
|
/**
|
|
71
71
|
* A keyboard input friendly date format.
|
|
72
72
|
* Used in the date fields.
|
|
73
|
-
* @example "02/13/2020
|
|
73
|
+
* @example "02/13/2020"
|
|
74
74
|
*/
|
|
75
75
|
keyboardDate: string;
|
|
76
76
|
/**
|
|
@@ -161,6 +161,7 @@ export interface MuiPickersAdapter<TLocale = any> {
|
|
|
161
161
|
date<T extends string | null | undefined>(value?: T, timezone?: PickersTimezone): DateBuilderReturnType<T>;
|
|
162
162
|
/**
|
|
163
163
|
* Creates an invalid date in the date library format.
|
|
164
|
+
* @deprecated This method will be removed in the next major release (v9.0.0).
|
|
164
165
|
* @returns {PickerValidDate} The invalid date.
|
|
165
166
|
*/
|
|
166
167
|
getInvalidDate(): PickerValidDate;
|
package/models/manager.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { FieldValueManager, UseFieldInternalProps } from '../internals/hooks/useField';
|
|
2
|
-
import type { PickerValueManager } from '../internals/hooks/usePicker';
|
|
3
2
|
import type { UseLocalizationContextReturnValue } from '../internals/hooks/useUtils';
|
|
4
|
-
import type { PickerValidValue } from '../internals/models';
|
|
3
|
+
import type { PickerValidValue, PickerValueManager } from '../internals/models';
|
|
5
4
|
import type { Validator } from '../validation';
|
|
6
5
|
import type { PickerValueType } from './common';
|
|
7
6
|
/**
|
|
@@ -22,7 +21,7 @@ import type { PickerValueType } from './common';
|
|
|
22
21
|
* });
|
|
23
22
|
* ```
|
|
24
23
|
*/
|
|
25
|
-
export interface PickerManager<TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean, TError,
|
|
24
|
+
export interface PickerManager<TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean, TError, TValidationProps extends {}, TFieldInternalProps extends {}> {
|
|
26
25
|
/**
|
|
27
26
|
* The type of the value (e.g. 'date', 'date-time', 'time').
|
|
28
27
|
*/
|
|
@@ -44,7 +43,7 @@ export interface PickerManager<TValue extends PickerValidValue, TEnableAccessibl
|
|
|
44
43
|
* });
|
|
45
44
|
* ```
|
|
46
45
|
*/
|
|
47
|
-
validator: Validator<TValue, TError,
|
|
46
|
+
validator: Validator<TValue, TError, TValidationProps>;
|
|
48
47
|
/**
|
|
49
48
|
* Object containing basic methods to interact with the value of the picker or field.
|
|
50
49
|
* This property is not part of the public API and should not be used directly.
|
|
@@ -70,7 +69,7 @@ export interface PickerManager<TValue extends PickerValidValue, TEnableAccessibl
|
|
|
70
69
|
* @param {ApplyDefaultsToFieldInternalPropsParameters<TFieldInternalProps>} parameters The parameters to apply the defaults.
|
|
71
70
|
* @returns {TFieldInternalPropsWithDefaults} The field internal props with the defaults applied.
|
|
72
71
|
*/
|
|
73
|
-
internal_applyDefaultsToFieldInternalProps: (parameters: ApplyDefaultsToFieldInternalPropsParameters<TFieldInternalProps>) =>
|
|
72
|
+
internal_applyDefaultsToFieldInternalProps: (parameters: ApplyDefaultsToFieldInternalPropsParameters<TFieldInternalProps>) => UseFieldInternalProps<TValue, TEnableAccessibleFieldDOMStructure, TError> & TValidationProps;
|
|
74
73
|
/**
|
|
75
74
|
* Returns the aria-label to apply on the button that opens the picker.
|
|
76
75
|
* @param {GetOpenPickerButtonAriaLabelParameters<TValue>} params The parameters to get the aria-label.
|
|
@@ -5,7 +5,7 @@ import { DateValidationError, DateView } from "../models/index.js";
|
|
|
5
5
|
import { BasePickerInputProps } from "../internals/models/props/basePickerProps.js";
|
|
6
6
|
import { LocalizedComponent } from "../locales/utils/pickersLocaleTextApi.js";
|
|
7
7
|
import { DatePickerToolbarProps, ExportedDatePickerToolbarProps } from "./DatePickerToolbar.js";
|
|
8
|
-
import { PickerViewRendererLookup } from "../internals/hooks/usePicker/
|
|
8
|
+
import { PickerViewRendererLookup } from "../internals/hooks/usePicker/index.js";
|
|
9
9
|
import { DateViewRendererProps } from "../dateViewRenderers/index.js";
|
|
10
10
|
import { PickerValue } from "../internals/models/index.js";
|
|
11
11
|
import { ValidateDatePropsToDefault } from "../validation/validateDate.js";
|