@mui/x-date-pickers-pro 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/CHANGELOG.md +430 -0
- package/DateRangePicker/DateRangePicker.types.d.ts +2 -2
- package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +2 -2
- package/DateTimeRangePicker/shared.d.ts +2 -2
- package/DesktopDateRangePicker/DesktopDateRangePicker.js +2 -2
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +2 -2
- package/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +2 -2
- package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
- package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +6 -4
- package/dateRangeViewRenderers/dateRangeViewRenderers.js +13 -8
- package/esm/DateRangePicker/DateRangePicker.types.d.ts +2 -2
- package/esm/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +2 -2
- package/esm/DateTimeRangePicker/shared.d.ts +2 -2
- package/esm/DesktopDateRangePicker/DesktopDateRangePicker.js +2 -2
- package/esm/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +2 -2
- package/esm/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/esm/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +2 -2
- package/esm/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
- package/esm/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
- package/esm/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
- package/esm/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +6 -4
- package/esm/dateRangeViewRenderers/dateRangeViewRenderers.js +13 -8
- package/esm/hooks/index.d.ts +2 -1
- package/esm/hooks/useMultiInputRangeField/index.d.ts +2 -1
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +37 -18
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeField.js +41 -50
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.d.ts +11 -0
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.js +25 -0
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +4 -1
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +3 -2
- package/esm/hooks/useMultiInputRangeField/useTextFieldProps.d.ts +30 -0
- package/esm/hooks/useMultiInputRangeField/useTextFieldProps.js +141 -0
- package/esm/index.js +1 -1
- package/esm/internals/hooks/models/index.d.ts +1 -1
- package/esm/internals/hooks/models/useRangePicker.d.ts +4 -11
- package/esm/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +8 -75
- package/esm/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +17 -5
- package/esm/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -47
- package/esm/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +18 -5
- package/esm/internals/hooks/useRangePosition.d.ts +1 -4
- package/esm/internals/hooks/useRangePosition.js +1 -18
- package/esm/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +3 -3
- package/esm/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +2 -2
- package/esm/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +26 -32
- package/esm/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +1 -1
- package/esm/internals/utils/createMultiInputRangeField/useTextFieldProps.d.ts +12 -0
- package/esm/internals/utils/createMultiInputRangeField/useTextFieldProps.js +36 -0
- package/esm/internals/utils/date-fields-utils.d.ts +4 -1
- package/esm/internals/utils/date-fields-utils.js +5 -1
- package/esm/internals/utils/releaseInfo.js +1 -1
- package/esm/internals/utils/valueManagers.js +31 -30
- package/esm/managers/useDateRangeManager.d.ts +2 -4
- package/esm/managers/useDateRangeManager.js +8 -1
- package/esm/managers/useDateTimeRangeManager.d.ts +2 -4
- package/esm/managers/useDateTimeRangeManager.js +8 -1
- package/esm/managers/useTimeRangeManager.d.ts +2 -4
- package/esm/managers/useTimeRangeManager.js +10 -1
- package/esm/models/fields.d.ts +5 -18
- package/hooks/index.d.ts +2 -1
- package/hooks/useMultiInputRangeField/index.d.ts +2 -1
- package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +37 -18
- package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +40 -51
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.d.ts +11 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.js +31 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +4 -1
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +3 -1
- package/hooks/useMultiInputRangeField/useTextFieldProps.d.ts +30 -0
- package/hooks/useMultiInputRangeField/useTextFieldProps.js +149 -0
- package/index.js +1 -1
- package/internals/hooks/models/index.d.ts +1 -1
- package/internals/hooks/models/useRangePicker.d.ts +4 -11
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +7 -74
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +17 -5
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -47
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +18 -5
- package/internals/hooks/useRangePosition.d.ts +1 -4
- package/internals/hooks/useRangePosition.js +1 -18
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +3 -3
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +2 -2
- package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +25 -31
- package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +1 -1
- package/internals/utils/createMultiInputRangeField/useTextFieldProps.d.ts +12 -0
- package/internals/utils/createMultiInputRangeField/useTextFieldProps.js +44 -0
- package/internals/utils/date-fields-utils.d.ts +4 -1
- package/internals/utils/date-fields-utils.js +6 -1
- package/internals/utils/releaseInfo.js +1 -1
- package/internals/utils/valueManagers.js +31 -30
- package/managers/useDateRangeManager.d.ts +2 -4
- package/managers/useDateRangeManager.js +8 -1
- package/managers/useDateTimeRangeManager.d.ts +2 -4
- package/managers/useDateTimeRangeManager.js +8 -1
- package/managers/useTimeRangeManager.d.ts +2 -4
- package/managers/useTimeRangeManager.js +10 -1
- package/models/fields.d.ts +5 -18
- package/modern/DateRangePicker/DateRangePicker.types.d.ts +2 -2
- package/modern/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +2 -2
- package/modern/DateTimeRangePicker/shared.d.ts +2 -2
- package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +2 -2
- package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +2 -2
- package/modern/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +2 -2
- package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
- package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
- package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
- package/modern/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +6 -4
- package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +13 -8
- package/modern/hooks/index.d.ts +2 -1
- package/modern/hooks/useMultiInputRangeField/index.d.ts +2 -1
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +37 -18
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.js +41 -50
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.d.ts +11 -0
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.js +25 -0
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +4 -1
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +3 -2
- package/modern/hooks/useMultiInputRangeField/useTextFieldProps.d.ts +30 -0
- package/modern/hooks/useMultiInputRangeField/useTextFieldProps.js +141 -0
- package/modern/index.js +1 -1
- package/modern/internals/hooks/models/index.d.ts +1 -1
- package/modern/internals/hooks/models/useRangePicker.d.ts +4 -11
- package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +8 -75
- package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +17 -5
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -47
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +18 -5
- package/modern/internals/hooks/useRangePosition.d.ts +1 -4
- package/modern/internals/hooks/useRangePosition.js +1 -18
- package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +3 -3
- package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +2 -2
- package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +26 -32
- package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +1 -1
- package/modern/internals/utils/createMultiInputRangeField/useTextFieldProps.d.ts +12 -0
- package/modern/internals/utils/createMultiInputRangeField/useTextFieldProps.js +36 -0
- package/modern/internals/utils/date-fields-utils.d.ts +4 -1
- package/modern/internals/utils/date-fields-utils.js +5 -1
- package/modern/internals/utils/releaseInfo.js +1 -1
- package/modern/internals/utils/valueManagers.js +31 -30
- package/modern/managers/useDateRangeManager.d.ts +2 -4
- package/modern/managers/useDateRangeManager.js +8 -1
- package/modern/managers/useDateTimeRangeManager.d.ts +2 -4
- package/modern/managers/useDateTimeRangeManager.js +8 -1
- package/modern/managers/useTimeRangeManager.d.ts +2 -4
- package/modern/managers/useTimeRangeManager.js +10 -1
- package/modern/models/fields.d.ts +5 -18
- package/package.json +4 -4
- package/tsconfig.build.tsbuildinfo +1 -1
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +0 -17
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +0 -59
- package/esm/internals/hooks/useEnrichedRangePickerField.d.ts +0 -70
- package/esm/internals/hooks/useEnrichedRangePickerField.js +0 -236
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +0 -17
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +0 -66
- package/internals/hooks/useEnrichedRangePickerField.d.ts +0 -70
- package/internals/hooks/useEnrichedRangePickerField.js +0 -245
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +0 -17
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +0 -59
- package/modern/internals/hooks/useEnrichedRangePickerField.d.ts +0 -70
- package/modern/internals/hooks/useEnrichedRangePickerField.js +0 -236
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
'use client';
|
|
3
3
|
|
|
4
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.useMultiInputRangeField = useMultiInputRangeField;
|
|
9
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
-
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
11
8
|
var _internals = require("@mui/x-date-pickers/internals");
|
|
12
9
|
var _validation = require("@mui/x-date-pickers/validation");
|
|
13
|
-
var
|
|
10
|
+
var _useTextFieldProps = require("./useTextFieldProps");
|
|
14
11
|
var _useMultiInputRangeFieldSelectedSections = require("./useMultiInputRangeFieldSelectedSections");
|
|
12
|
+
var _useMultiInputRangeFieldRootProps = require("./useMultiInputRangeFieldRootProps");
|
|
15
13
|
/**
|
|
16
14
|
* Basic example:
|
|
17
15
|
*
|
|
@@ -24,36 +22,38 @@ var _useMultiInputRangeFieldSelectedSections = require("./useMultiInputRangeFiel
|
|
|
24
22
|
* function MultiInputField(props) {
|
|
25
23
|
* const manager = useDateRangeManager();
|
|
26
24
|
* const { internalProps, forwardedProps } = useSplitFieldProps(props, 'date');
|
|
27
|
-
* const
|
|
25
|
+
* const response = useMultiInputRangeField({
|
|
28
26
|
* manager,
|
|
29
27
|
* internalProps,
|
|
30
|
-
*
|
|
31
|
-
*
|
|
28
|
+
* startTextFieldProps: {},
|
|
29
|
+
* endTextFieldProps: {},
|
|
30
|
+
* rootProps: forwardedProps,
|
|
32
31
|
* });
|
|
33
32
|
*
|
|
34
33
|
* return (
|
|
35
|
-
* <Box {...
|
|
36
|
-
* <PickersTextField {...
|
|
34
|
+
* <Box {...response.root}>
|
|
35
|
+
* <PickersTextField {...response.startTextField} />
|
|
37
36
|
* <span>{' – '}</span>
|
|
38
|
-
* <PickersTextField {...
|
|
37
|
+
* <PickersTextField {...response.endTextField} />
|
|
39
38
|
* </Box>
|
|
40
39
|
* );
|
|
41
40
|
* }
|
|
42
41
|
* ```
|
|
43
42
|
*
|
|
44
|
-
* @param {UseMultiInputRangeFieldParameters<TManager,
|
|
43
|
+
* @param {UseMultiInputRangeFieldParameters<TManager, TTextFieldProps>} parameters The parameters of the hook.
|
|
45
44
|
* @param {TManager} parameters.manager The manager of the field.
|
|
46
45
|
* @param {PickerManagerFieldInternalProps<TManager>} parameters.internalProps The internal props of the field.
|
|
47
|
-
* @param {
|
|
48
|
-
* @param {
|
|
49
|
-
* @returns {UseMultiInputRangeFieldReturnValue<TManager,
|
|
46
|
+
* @param {TTextFieldProps} parameters.startForwardedProps The forwarded props of the start field.
|
|
47
|
+
* @param {TTextFieldProps} parameters.endForwardedProps The forwarded props of the end field.
|
|
48
|
+
* @returns {UseMultiInputRangeFieldReturnValue<TManager, TTextFieldProps>} The props to pass to the start and the end components.
|
|
50
49
|
*/
|
|
51
50
|
function useMultiInputRangeField(parameters) {
|
|
52
51
|
const {
|
|
53
52
|
manager,
|
|
54
53
|
internalProps,
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
rootProps,
|
|
55
|
+
startTextFieldProps,
|
|
56
|
+
endTextFieldProps
|
|
57
57
|
} = parameters;
|
|
58
58
|
const internalPropsWithDefaults = (0, _internals.useFieldInternalPropsWithDefaults)({
|
|
59
59
|
manager,
|
|
@@ -90,34 +90,20 @@ function useMultiInputRangeField(parameters) {
|
|
|
90
90
|
onChange,
|
|
91
91
|
valueManager: manager.internal_valueManager
|
|
92
92
|
});
|
|
93
|
-
const {
|
|
94
|
-
validationError,
|
|
95
|
-
getValidationErrorForNewValue
|
|
96
|
-
} = (0, _validation.useValidation)({
|
|
93
|
+
const validation = (0, _validation.useValidation)({
|
|
97
94
|
props: internalPropsWithDefaults,
|
|
98
95
|
value,
|
|
99
96
|
timezone,
|
|
100
97
|
validator: manager.validator,
|
|
101
98
|
onError: internalPropsWithDefaults.onError
|
|
102
99
|
});
|
|
103
|
-
const buildChangeHandler = index => {
|
|
104
|
-
return (newSingleValue, rawContext) => {
|
|
105
|
-
const newRange = index === 0 ? [newSingleValue, value[1]] : [value[0], newSingleValue];
|
|
106
|
-
const context = (0, _extends2.default)({}, rawContext, {
|
|
107
|
-
validationError: getValidationErrorForNewValue(newRange)
|
|
108
|
-
});
|
|
109
|
-
handleValueChange(newRange, context);
|
|
110
|
-
};
|
|
111
|
-
};
|
|
112
|
-
const handleStartDateChange = (0, _useEventCallback.default)(buildChangeHandler(0));
|
|
113
|
-
const handleEndDateChange = (0, _useEventCallback.default)(buildChangeHandler(1));
|
|
114
100
|
const selectedSectionsResponse = (0, _useMultiInputRangeFieldSelectedSections.useMultiInputRangeFieldSelectedSections)({
|
|
115
101
|
selectedSections,
|
|
116
102
|
onSelectedSectionsChange,
|
|
117
103
|
unstableStartFieldRef,
|
|
118
104
|
unstableEndFieldRef
|
|
119
105
|
});
|
|
120
|
-
const
|
|
106
|
+
const sharedInternalProps = {
|
|
121
107
|
disabled,
|
|
122
108
|
readOnly,
|
|
123
109
|
timezone,
|
|
@@ -126,30 +112,33 @@ function useMultiInputRangeField(parameters) {
|
|
|
126
112
|
shouldRespectLeadingZeros,
|
|
127
113
|
enableAccessibleFieldDOMStructure
|
|
128
114
|
};
|
|
129
|
-
const
|
|
115
|
+
const rootResponse = (0, _useMultiInputRangeFieldRootProps.useMultiInputRangeFieldRootProps)(rootProps);
|
|
116
|
+
const startTextFieldResponse = (0, _useTextFieldProps.useTextFieldProps)({
|
|
130
117
|
valueType: manager.valueType,
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
118
|
+
position: 'start',
|
|
119
|
+
value,
|
|
120
|
+
onChange: handleValueChange,
|
|
121
|
+
autoFocus,
|
|
122
|
+
validation,
|
|
123
|
+
forwardedProps: startTextFieldProps,
|
|
124
|
+
selectedSectionProps: selectedSectionsResponse.start,
|
|
125
|
+
sharedInternalProps
|
|
139
126
|
});
|
|
140
|
-
const
|
|
127
|
+
const endTextFieldResponse = (0, _useTextFieldProps.useTextFieldProps)({
|
|
141
128
|
valueType: manager.valueType,
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
129
|
+
position: 'end',
|
|
130
|
+
value,
|
|
131
|
+
onChange: handleValueChange,
|
|
132
|
+
autoFocus,
|
|
133
|
+
validation,
|
|
134
|
+
forwardedProps: endTextFieldProps,
|
|
135
|
+
selectedSectionProps: selectedSectionsResponse.end,
|
|
136
|
+
sharedInternalProps
|
|
149
137
|
});
|
|
150
138
|
return {
|
|
151
|
-
|
|
152
|
-
|
|
139
|
+
root: rootResponse,
|
|
140
|
+
startTextField: startTextFieldResponse,
|
|
141
|
+
endTextField: endTextFieldResponse,
|
|
153
142
|
enableAccessibleFieldDOMStructure
|
|
154
143
|
};
|
|
155
144
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @ignore - internal hook.
|
|
3
|
+
*/
|
|
4
|
+
export declare function useMultiInputRangeFieldRootProps<TForwardedProps extends {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}>(forwardedProps: TForwardedProps): UseMultiInputRangeFieldRootPropsReturnValue<TForwardedProps>;
|
|
7
|
+
export type UseMultiInputRangeFieldRootPropsReturnValue<TForwardedProps extends {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
}> = Omit<TForwardedProps, 'onBlur'> & {
|
|
10
|
+
onBlur: () => void;
|
|
11
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useMultiInputRangeFieldRootProps = useMultiInputRangeFieldRootProps;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
10
|
+
var _internals = require("@mui/x-date-pickers/internals");
|
|
11
|
+
/**
|
|
12
|
+
* @ignore - internal hook.
|
|
13
|
+
*/
|
|
14
|
+
function useMultiInputRangeFieldRootProps(forwardedProps) {
|
|
15
|
+
const pickerContext = (0, _internals.useNullablePickerContext)();
|
|
16
|
+
const privatePickerContext = (0, _internals.usePickerPrivateContext)();
|
|
17
|
+
const handleBlur = (0, _useEventCallback.default)(() => {
|
|
18
|
+
if (!pickerContext || privatePickerContext.viewContainerRole !== 'tooltip') {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
(0, _internals.executeInTheNextEventLoopTick)(() => {
|
|
22
|
+
if (privatePickerContext.rootRefObject.current?.contains((0, _internals.getActiveElement)(document)) || pickerContext.popupRef.current?.contains((0, _internals.getActiveElement)(document))) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
privatePickerContext.dismissViews();
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
return (0, _extends2.default)({}, forwardedProps, {
|
|
29
|
+
onBlur: handleBlur
|
|
30
|
+
});
|
|
31
|
+
}
|
|
@@ -3,7 +3,7 @@ import { PickerRangeValue, PickerValue, UseFieldInternalProps } from '@mui/x-dat
|
|
|
3
3
|
import { FieldRef, FieldSelectedSections } from '@mui/x-date-pickers/models';
|
|
4
4
|
import { MultiInputFieldRefs } from "../../models/index.js";
|
|
5
5
|
interface UseMultiInputRangeFieldSelectedSectionsParameters extends Pick<UseFieldInternalProps<PickerRangeValue, any, any>, 'selectedSections' | 'onSelectedSectionsChange'>, MultiInputFieldRefs {}
|
|
6
|
-
interface UseMultiInputFieldSelectedSectionsResponseItem {
|
|
6
|
+
export interface UseMultiInputFieldSelectedSectionsResponseItem {
|
|
7
7
|
unstableFieldRef?: React.Ref<FieldRef<PickerValue>>;
|
|
8
8
|
selectedSections: FieldSelectedSections;
|
|
9
9
|
onSelectedSectionsChange: (newSelectedSections: FieldSelectedSections) => void;
|
|
@@ -12,5 +12,8 @@ interface UseMultiInputFieldSelectedSectionsResponse {
|
|
|
12
12
|
start: UseMultiInputFieldSelectedSectionsResponseItem;
|
|
13
13
|
end: UseMultiInputFieldSelectedSectionsResponseItem;
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* @ignore - internal hook.
|
|
17
|
+
*/
|
|
15
18
|
export declare const useMultiInputRangeFieldSelectedSections: (parameters: UseMultiInputRangeFieldSelectedSectionsParameters) => UseMultiInputFieldSelectedSectionsResponse;
|
|
16
19
|
export {};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
'use client';
|
|
3
2
|
|
|
4
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
4
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
@@ -10,6 +9,9 @@ exports.useMultiInputRangeFieldSelectedSections = void 0;
|
|
|
10
9
|
var React = _interopRequireWildcard(require("react"));
|
|
11
10
|
var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
|
|
12
11
|
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
12
|
+
/**
|
|
13
|
+
* @ignore - internal hook.
|
|
14
|
+
*/
|
|
13
15
|
const useMultiInputRangeFieldSelectedSections = parameters => {
|
|
14
16
|
const unstableEndFieldRef = React.useRef(null);
|
|
15
17
|
const handleUnstableEndFieldRef = (0, _useForkRef.default)(parameters.unstableEndFieldRef, unstableEndFieldRef);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { UseValidationReturnValue } from '@mui/x-date-pickers/validation';
|
|
3
|
+
import { PickerValueType } from '@mui/x-date-pickers/models';
|
|
4
|
+
import { FieldChangeHandler, PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerError, PickerRangeValue, PickerValue, RangePosition, UseFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
5
|
+
import { PickerAnyRangeManager } from "../../internals/models/managers.js";
|
|
6
|
+
import { UseMultiInputFieldSelectedSectionsResponseItem } from "./useMultiInputRangeFieldSelectedSections.js";
|
|
7
|
+
import type { UseMultiInputRangeFieldTextFieldProps } from './useMultiInputRangeField';
|
|
8
|
+
/**
|
|
9
|
+
* @ignore - internal hook.
|
|
10
|
+
*/
|
|
11
|
+
export declare function useTextFieldProps<TManager extends PickerAnyRangeManager, TForwardedProps extends UseTextFieldBaseForwardedProps>(parameters: UseTextFieldPropsParameters<TManager, TForwardedProps>): UseMultiInputRangeFieldTextFieldProps<PickerManagerEnableAccessibleFieldDOMStructure<TManager>, TForwardedProps>;
|
|
12
|
+
interface UseTextFieldPropsParameters<TManager extends PickerAnyRangeManager, TForwardedProps extends UseTextFieldBaseForwardedProps> {
|
|
13
|
+
valueType: PickerValueType;
|
|
14
|
+
value: PickerRangeValue;
|
|
15
|
+
onChange: FieldChangeHandler<PickerRangeValue, PickerManagerError<TManager>>;
|
|
16
|
+
autoFocus: boolean | undefined;
|
|
17
|
+
forwardedProps: TForwardedProps;
|
|
18
|
+
sharedInternalProps: UseTextFieldSharedInternalProps<TManager>;
|
|
19
|
+
selectedSectionProps: UseMultiInputFieldSelectedSectionsResponseItem;
|
|
20
|
+
position: RangePosition;
|
|
21
|
+
validation: UseValidationReturnValue<PickerRangeValue, PickerManagerError<TManager>>;
|
|
22
|
+
}
|
|
23
|
+
export interface UseTextFieldBaseForwardedProps {
|
|
24
|
+
onKeyDown?: React.KeyboardEventHandler;
|
|
25
|
+
onClick?: React.MouseEventHandler;
|
|
26
|
+
onFocus?: React.FocusEventHandler;
|
|
27
|
+
[key: string]: any;
|
|
28
|
+
}
|
|
29
|
+
interface UseTextFieldSharedInternalProps<TManager extends PickerAnyRangeManager> extends Pick<UseFieldInternalProps<PickerValue, PickerManagerEnableAccessibleFieldDOMStructure<TManager>, PickerManagerError<TManager>>, 'enableAccessibleFieldDOMStructure' | 'disabled' | 'readOnly' | 'timezone' | 'format' | 'formatDensity' | 'shouldRespectLeadingZeros'> {}
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useTextFieldProps = useTextFieldProps;
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
var React = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
13
|
+
var _managers = require("@mui/x-date-pickers/managers");
|
|
14
|
+
var _hooks = require("@mui/x-date-pickers/hooks");
|
|
15
|
+
var _internals = require("@mui/x-date-pickers/internals");
|
|
16
|
+
var _useNullablePickerRangePositionContext = require("../../internals/hooks/useNullablePickerRangePositionContext");
|
|
17
|
+
const _excluded = ["clearable", "onClear", "openPickerAriaLabel"];
|
|
18
|
+
/**
|
|
19
|
+
* @ignore - internal hook.
|
|
20
|
+
*/
|
|
21
|
+
function useTextFieldProps(parameters) {
|
|
22
|
+
const pickerContext = (0, _internals.useNullablePickerContext)();
|
|
23
|
+
const fieldPrivateContext = (0, _internals.useNullableFieldPrivateContext)();
|
|
24
|
+
const pickerPrivateContext = (0, _internals.usePickerPrivateContext)();
|
|
25
|
+
const rangePositionContext = (0, _useNullablePickerRangePositionContext.useNullablePickerRangePositionContext)();
|
|
26
|
+
const rangePosition = rangePositionContext?.rangePosition ?? 'start';
|
|
27
|
+
const setRangePosition = rangePositionContext?.setRangePosition;
|
|
28
|
+
const previousRangePosition = React.useRef(rangePosition);
|
|
29
|
+
const {
|
|
30
|
+
forwardedProps,
|
|
31
|
+
sharedInternalProps,
|
|
32
|
+
selectedSectionProps,
|
|
33
|
+
valueType,
|
|
34
|
+
position,
|
|
35
|
+
value,
|
|
36
|
+
onChange,
|
|
37
|
+
autoFocus,
|
|
38
|
+
validation
|
|
39
|
+
} = parameters;
|
|
40
|
+
let useManager;
|
|
41
|
+
switch (valueType) {
|
|
42
|
+
case 'date':
|
|
43
|
+
{
|
|
44
|
+
useManager = _managers.useDateManager;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
case 'time':
|
|
48
|
+
{
|
|
49
|
+
useManager = _managers.useTimeManager;
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
case 'date-time':
|
|
53
|
+
{
|
|
54
|
+
useManager = _managers.useDateTimeManager;
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
default:
|
|
58
|
+
{
|
|
59
|
+
throw new Error(`Unknown valueType: ${valueType}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const manager = useManager({
|
|
63
|
+
enableAccessibleFieldDOMStructure: sharedInternalProps.enableAccessibleFieldDOMStructure
|
|
64
|
+
});
|
|
65
|
+
const openPickerIfPossible = event => {
|
|
66
|
+
if (!pickerContext) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
setRangePosition?.(position);
|
|
70
|
+
if (pickerContext.triggerStatus === 'enabled') {
|
|
71
|
+
event.preventDefault();
|
|
72
|
+
pickerContext.setOpen(true);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const handleKeyDown = (0, _useEventCallback.default)(event => {
|
|
76
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
77
|
+
openPickerIfPossible(event);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
// Registering `onClick` listener on the root element as well to correctly handle cases where user is clicking on `label`
|
|
82
|
+
// which has `pointer-events: none` and due to DOM structure the `input` does not catch the click event
|
|
83
|
+
const handleClick = (0, _useEventCallback.default)(event => {
|
|
84
|
+
openPickerIfPossible(event);
|
|
85
|
+
});
|
|
86
|
+
const handleFocus = (0, _useEventCallback.default)(event => {
|
|
87
|
+
forwardedProps.onFocus?.(event);
|
|
88
|
+
if (pickerContext?.open) {
|
|
89
|
+
setRangePosition?.(position);
|
|
90
|
+
if (previousRangePosition.current !== position && pickerContext.initialView) {
|
|
91
|
+
pickerContext.setView?.(pickerContext.initialView);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
const handleChange = (0, _useEventCallback.default)((newSingleValue, rawContext) => {
|
|
96
|
+
const newRange = position === 'start' ? [newSingleValue, value[1]] : [value[0], newSingleValue];
|
|
97
|
+
const context = (0, _extends2.default)({}, rawContext, {
|
|
98
|
+
validationError: validation.getValidationErrorForNewValue(newRange)
|
|
99
|
+
});
|
|
100
|
+
onChange(newRange, context);
|
|
101
|
+
});
|
|
102
|
+
const allProps = (0, _extends2.default)({
|
|
103
|
+
value: position === 'start' ? value[0] : value[1],
|
|
104
|
+
error: position === 'start' ? !!validation.validationError[0] : !!validation.validationError[1],
|
|
105
|
+
id: `${pickerPrivateContext.labelId}-${position}`,
|
|
106
|
+
autoFocus: position === 'start' ? autoFocus : undefined
|
|
107
|
+
}, forwardedProps, sharedInternalProps, selectedSectionProps, {
|
|
108
|
+
onClick: handleClick,
|
|
109
|
+
onFocus: handleFocus,
|
|
110
|
+
onKeyDown: handleKeyDown,
|
|
111
|
+
onChange: handleChange
|
|
112
|
+
});
|
|
113
|
+
const splittedProps = (0, _hooks.useSplitFieldProps)(allProps, valueType);
|
|
114
|
+
const internalPropsWithDefaults = (0, _internals.useFieldInternalPropsWithDefaults)({
|
|
115
|
+
manager,
|
|
116
|
+
internalProps: splittedProps.internalProps,
|
|
117
|
+
skipContextFieldRefAssignment: rangePosition !== position
|
|
118
|
+
});
|
|
119
|
+
const _ref = (0, _internals.useField)({
|
|
120
|
+
forwardedProps: splittedProps.forwardedProps,
|
|
121
|
+
internalProps: internalPropsWithDefaults,
|
|
122
|
+
valueManager: manager.internal_valueManager,
|
|
123
|
+
fieldValueManager: manager.internal_fieldValueManager,
|
|
124
|
+
validator: manager.validator,
|
|
125
|
+
valueType: manager.valueType,
|
|
126
|
+
// TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
|
|
127
|
+
getOpenPickerButtonAriaLabel: () => ''
|
|
128
|
+
}),
|
|
129
|
+
fieldResponse = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
130
|
+
React.useEffect(() => {
|
|
131
|
+
if (!pickerContext?.open || pickerContext?.variant === 'mobile') {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
fieldPrivateContext?.fieldRef.current?.focusField();
|
|
135
|
+
if (!fieldPrivateContext?.fieldRef.current || pickerContext.view === pickerContext.initialView) {
|
|
136
|
+
// could happen when the user is switching between the inputs
|
|
137
|
+
previousRangePosition.current = rangePosition;
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// bring back focus to the field
|
|
142
|
+
// currentView is present on DateTimeRangePicker
|
|
143
|
+
fieldPrivateContext?.fieldRef.current.setSelectedSections(
|
|
144
|
+
// use the current view or `0` when the range position has just been swapped
|
|
145
|
+
previousRangePosition.current === rangePosition ? pickerContext.view : 0);
|
|
146
|
+
previousRangePosition.current = rangePosition;
|
|
147
|
+
}, [rangePosition, pickerContext?.open, pickerContext?.variant, pickerContext?.initialView, pickerContext?.view, fieldPrivateContext?.fieldRef]);
|
|
148
|
+
return fieldResponse;
|
|
149
|
+
}
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export type {
|
|
1
|
+
export type { RangeOnlyPickerProps, UseRangePickerProps, UseRangePickerParams } from './useRangePicker';
|
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps } from '@mui/x-date-pickers/PickersLayout';
|
|
1
|
+
import { UsePickerParameters, BasePickerProps, UsePickerProps, UsePickerNonStaticProps, DateOrTimeViewWithMeridiem, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
3
2
|
import { BaseRangeNonStaticPickerProps } from "../../models/index.js";
|
|
4
3
|
import { UseRangePositionProps } from "../useRangePosition.js";
|
|
5
|
-
|
|
6
|
-
export interface
|
|
7
|
-
export interface
|
|
8
|
-
tabs?: ExportedBaseTabsProps;
|
|
9
|
-
toolbar?: ExportedBaseToolbarProps;
|
|
10
|
-
}
|
|
11
|
-
export interface RangeOnlyPickerProps extends UsePickerValueNonStaticProps, UsePickerProviderNonStaticProps, BaseRangeNonStaticPickerProps, UseRangePositionProps {}
|
|
12
|
-
export interface UseRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerViewsProps<any, TView, any>> extends RangeOnlyPickerProps, BasePickerProps<PickerRangeValue, TView, TError, TExternalProps> {}
|
|
13
|
-
export interface UseRangePickerParams<TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseRangePickerProps<TView, any, TExternalProps>> extends Pick<UsePickerParams<PickerRangeValue, TView, TExternalProps>, 'valueManager' | 'valueType' | 'validator' | 'rendererInterceptor' | 'ref'> {
|
|
4
|
+
export interface RangeOnlyPickerProps extends UsePickerNonStaticProps, BaseRangeNonStaticPickerProps, UseRangePositionProps {}
|
|
5
|
+
export interface UseRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerProps<PickerRangeValue, TView, TError, any>> extends RangeOnlyPickerProps, BasePickerProps<PickerRangeValue, TView, TError, TExternalProps> {}
|
|
6
|
+
export interface UseRangePickerParams<TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseRangePickerProps<TView, any, TExternalProps>> extends Pick<UsePickerParameters<PickerRangeValue, TView, TExternalProps>, 'valueManager' | 'valueType' | 'validator' | 'rendererInterceptor' | 'ref'> {
|
|
14
7
|
props: TExternalProps;
|
|
15
8
|
}
|
|
@@ -13,10 +13,10 @@ var _useSlotProps2 = _interopRequireDefault(require("@mui/utils/useSlotProps"));
|
|
|
13
13
|
var _xLicense = require("@mui/x-license");
|
|
14
14
|
var _PickersLayout = require("@mui/x-date-pickers/PickersLayout");
|
|
15
15
|
var _internals = require("@mui/x-date-pickers/internals");
|
|
16
|
-
var _useEnrichedRangePickerField = require("../useEnrichedRangePickerField");
|
|
17
16
|
var _releaseInfo = require("../../utils/releaseInfo");
|
|
18
17
|
var _useRangePosition = require("../useRangePosition");
|
|
19
18
|
var _usePickerRangePositionContext = require("../../../hooks/usePickerRangePositionContext");
|
|
19
|
+
var _dateFieldsUtils = require("../../utils/date-fields-utils");
|
|
20
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
21
|
const _excluded = ["props"],
|
|
22
22
|
_excluded2 = ["ownerState"];
|
|
@@ -31,27 +31,11 @@ const useDesktopRangePicker = _ref => {
|
|
|
31
31
|
slots,
|
|
32
32
|
slotProps,
|
|
33
33
|
inputRef,
|
|
34
|
-
readOnly,
|
|
35
|
-
autoFocus,
|
|
36
|
-
disableOpenPicker,
|
|
37
34
|
localeText
|
|
38
35
|
} = props;
|
|
39
|
-
const
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
const endFieldRef = React.useRef(null);
|
|
43
|
-
const singleInputFieldRef = React.useRef(null);
|
|
44
|
-
const initialView = React.useRef(props.openTo ?? null);
|
|
45
|
-
const fieldType = slots.field.fieldType ?? 'multi-input';
|
|
46
|
-
const rangePositionResponse = (0, _useRangePosition.useRangePosition)(props, fieldType === 'single-input' ? singleInputFieldRef : undefined);
|
|
47
|
-
let fieldRef;
|
|
48
|
-
if (fieldType === 'single-input') {
|
|
49
|
-
fieldRef = singleInputFieldRef;
|
|
50
|
-
} else if (rangePositionResponse.rangePosition === 'start') {
|
|
51
|
-
fieldRef = startFieldRef;
|
|
52
|
-
} else {
|
|
53
|
-
fieldRef = endFieldRef;
|
|
54
|
-
}
|
|
36
|
+
const fieldType = (0, _dateFieldsUtils.getRangeFieldType)(slots.field);
|
|
37
|
+
const viewContainerRole = fieldType === 'single-input' ? 'dialog' : 'tooltip';
|
|
38
|
+
const rangePositionResponse = (0, _useRangePosition.useRangePosition)(props);
|
|
55
39
|
const {
|
|
56
40
|
providerProps,
|
|
57
41
|
renderCurrentView,
|
|
@@ -59,77 +43,26 @@ const useDesktopRangePicker = _ref => {
|
|
|
59
43
|
} = (0, _internals.usePicker)((0, _extends2.default)({}, pickerParams, {
|
|
60
44
|
props,
|
|
61
45
|
variant: 'desktop',
|
|
62
|
-
autoFocusView:
|
|
63
|
-
|
|
46
|
+
autoFocusView: viewContainerRole === 'dialog',
|
|
47
|
+
viewContainerRole,
|
|
64
48
|
localeText
|
|
65
49
|
}));
|
|
66
|
-
|
|
67
|
-
// Temporary hack to hide the opening button on the range pickers until we have migrate them to the new opening logic.
|
|
68
|
-
providerProps.contextValue.triggerStatus = 'hidden';
|
|
69
|
-
React.useEffect(() => {
|
|
70
|
-
if (providerProps.contextValue.view) {
|
|
71
|
-
initialView.current = providerProps.contextValue.view;
|
|
72
|
-
}
|
|
73
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
74
|
-
}, []);
|
|
75
|
-
const handleBlur = () => {
|
|
76
|
-
(0, _internals.executeInTheNextEventLoopTick)(() => {
|
|
77
|
-
if (fieldContainerRef.current?.contains((0, _internals.getActiveElement)(document)) || popperRef.current?.contains((0, _internals.getActiveElement)(document))) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// This direct access to `providerProps` will go away once the range fields stop having their views in a tooltip.
|
|
82
|
-
providerProps.privateContextValue.dismissViews();
|
|
83
|
-
});
|
|
84
|
-
};
|
|
85
50
|
const Field = slots.field;
|
|
86
51
|
const _useSlotProps = (0, _useSlotProps2.default)({
|
|
87
52
|
elementType: Field,
|
|
88
53
|
externalSlotProps: slotProps?.field,
|
|
89
|
-
additionalProps: {
|
|
90
|
-
// Internal props
|
|
91
|
-
readOnly,
|
|
92
|
-
autoFocus: autoFocus && !props.open,
|
|
93
|
-
// Forwarded props
|
|
94
|
-
ref: fieldContainerRef
|
|
95
|
-
},
|
|
96
54
|
ownerState
|
|
97
55
|
}),
|
|
98
56
|
fieldProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded2);
|
|
99
|
-
const enrichedFieldResponse = (0, _useEnrichedRangePickerField.useEnrichedRangePickerField)((0, _extends2.default)({
|
|
100
|
-
variant: 'desktop',
|
|
101
|
-
fieldType,
|
|
102
|
-
// These direct access to `providerProps` will go away once the range fields handle the picker opening
|
|
103
|
-
contextValue: providerProps.contextValue,
|
|
104
|
-
fieldPrivateContextValue: providerProps.fieldPrivateContextValue,
|
|
105
|
-
readOnly,
|
|
106
|
-
disableOpenPicker,
|
|
107
|
-
localeText,
|
|
108
|
-
onBlur: handleBlur,
|
|
109
|
-
pickerSlotProps: slotProps,
|
|
110
|
-
pickerSlots: slots,
|
|
111
|
-
fieldProps,
|
|
112
|
-
anchorRef: providerProps.contextValue.triggerRef,
|
|
113
|
-
startFieldRef,
|
|
114
|
-
endFieldRef,
|
|
115
|
-
singleInputFieldRef,
|
|
116
|
-
currentView: providerProps.contextValue.view !== props.openTo ? providerProps.contextValue.view : undefined,
|
|
117
|
-
initialView: initialView.current ?? undefined
|
|
118
|
-
}, rangePositionResponse));
|
|
119
57
|
const Layout = slots?.layout ?? _PickersLayout.PickersLayout;
|
|
120
58
|
const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerProvider, (0, _extends2.default)({}, providerProps, {
|
|
121
|
-
// This override will go away once the range fields handle the picker opening
|
|
122
|
-
fieldPrivateContextValue: (0, _extends2.default)({}, providerProps.fieldPrivateContextValue, enrichedFieldResponse.fieldPrivateContextValue),
|
|
123
59
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerFieldUIContextProvider, {
|
|
124
60
|
slots: slots,
|
|
125
61
|
slotProps: slotProps,
|
|
126
62
|
inputRef: inputRef,
|
|
127
63
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_usePickerRangePositionContext.PickerRangePositionContext.Provider, {
|
|
128
64
|
value: rangePositionResponse,
|
|
129
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({},
|
|
130
|
-
role: "tooltip",
|
|
131
|
-
containerRef: popperRef,
|
|
132
|
-
onBlur: handleBlur,
|
|
65
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, fieldProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerPopper, {
|
|
133
66
|
slots: slots,
|
|
134
67
|
slotProps: slotProps,
|
|
135
68
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, slotProps?.layout, {
|
|
@@ -1,14 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { SlotComponentPropsFromProps } from '@mui/x-internals/types';
|
|
2
|
+
import { PickerFieldSlotProps, PickerOwnerState } from '@mui/x-date-pickers/models';
|
|
3
|
+
import { PickerPopperSlots, PickerPopperSlotProps, UsePickerProps, DateOrTimeViewWithMeridiem, PickerRangeValue, PickerFieldUISlotsFromContext, PickerFieldUISlotPropsFromContext } from '@mui/x-date-pickers/internals';
|
|
4
|
+
import { ExportedPickersLayoutSlotProps, ExportedPickersLayoutSlots } from '@mui/x-date-pickers/PickersLayout';
|
|
5
|
+
import { RangeOnlyPickerProps, UseRangePickerParams, UseRangePickerProps } from "../models/useRangePicker.js";
|
|
6
|
+
export interface UseDesktopRangePickerSlots extends PickerPopperSlots, ExportedPickersLayoutSlots<PickerRangeValue>, PickerFieldUISlotsFromContext {
|
|
7
|
+
/**
|
|
8
|
+
* Component used to enter the date with the keyboard.
|
|
9
|
+
*/
|
|
10
|
+
field: React.ElementType;
|
|
11
|
+
}
|
|
12
|
+
export interface UseDesktopRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends PickerPopperSlotProps, ExportedPickersLayoutSlotProps<PickerRangeValue>, PickerFieldUISlotPropsFromContext {
|
|
13
|
+
field?: SlotComponentPropsFromProps<PickerFieldSlotProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure> & {
|
|
14
|
+
dateSeparator?: string;
|
|
15
|
+
}, {}, PickerOwnerState>;
|
|
16
|
+
}
|
|
5
17
|
export interface DesktopRangeOnlyPickerProps extends RangeOnlyPickerProps {
|
|
6
18
|
/**
|
|
7
19
|
* If `true`, the start `input` element is focused during the first mount.
|
|
8
20
|
*/
|
|
9
21
|
autoFocus?: boolean;
|
|
10
22
|
}
|
|
11
|
-
export interface UseDesktopRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError, TExternalProps extends
|
|
23
|
+
export interface UseDesktopRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError, TExternalProps extends UsePickerProps<PickerRangeValue, TView, TError, any>> extends UseRangePickerProps<TView, TError, TExternalProps> {
|
|
12
24
|
/**
|
|
13
25
|
* Overridable component slots.
|
|
14
26
|
* @default {}
|