@mui/x-date-pickers 8.0.0-alpha.7 → 8.0.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +115 -0
- package/DateField/DateField.js +26 -31
- package/DateField/DateField.types.d.ts +6 -15
- package/DateField/useDateField.d.ts +1 -1
- package/DateField/useDateField.js +2 -1
- package/DateTimeField/DateTimeField.js +26 -31
- package/DateTimeField/DateTimeField.types.d.ts +6 -15
- package/DateTimeField/useDateTimeField.d.ts +1 -1
- package/DateTimeField/useDateTimeField.js +2 -1
- package/DesktopDatePicker/DesktopDatePicker.js +0 -11
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -12
- package/DesktopTimePicker/DesktopTimePicker.js +1 -12
- package/MobileDatePicker/MobileDatePicker.js +0 -9
- package/MobileDateTimePicker/MobileDateTimePicker.js +0 -9
- package/MobileTimePicker/MobileTimePicker.js +0 -9
- package/TimeField/TimeField.js +25 -30
- package/TimeField/TimeField.types.d.ts +6 -15
- package/TimeField/useTimeField.d.ts +1 -1
- package/TimeField/useTimeField.js +2 -1
- package/hooks/useParsedFormat.d.ts +8 -6
- package/hooks/useParsedFormat.js +10 -12
- package/hooks/usePickerActionsContext.d.ts +1 -1
- package/hooks/usePickerContext.d.ts +4 -2
- package/hooks/usePickerContext.js +2 -1
- package/hooks/useSplitFieldProps.d.ts +12 -3
- package/hooks/useSplitFieldProps.js +8 -3
- package/index.js +1 -1
- package/internals/components/PickerFieldUI.d.ts +132 -0
- package/internals/components/PickerFieldUI.js +306 -0
- package/internals/components/PickerProvider.d.ts +25 -4
- package/internals/components/PickerProvider.js +11 -6
- package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -94
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +8 -31
- package/internals/hooks/useField/index.d.ts +3 -1
- package/internals/hooks/useField/index.js +3 -2
- package/internals/hooks/useField/useField.d.ts +1 -10
- package/internals/hooks/useField/useField.js +11 -19
- package/internals/hooks/useField/useField.types.d.ts +11 -4
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +15 -0
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +46 -0
- package/internals/hooks/useField/useFieldV7TextField.js +3 -3
- package/internals/hooks/useFieldOwnerState.d.ts +1 -2
- package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -1
- package/internals/hooks/useMobilePicker/useMobilePicker.js +20 -49
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +6 -14
- package/internals/hooks/useNullablePickerContext.d.ts +5 -0
- package/internals/hooks/useNullablePickerContext.js +10 -0
- package/internals/hooks/usePicker/usePicker.d.ts +1 -2
- package/internals/hooks/usePicker/usePicker.js +0 -3
- package/internals/hooks/usePicker/usePicker.types.d.ts +2 -3
- package/internals/hooks/usePicker/usePickerProvider.d.ts +8 -2
- package/internals/hooks/usePicker/usePickerProvider.js +22 -2
- package/internals/hooks/usePicker/usePickerValue.js +5 -11
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +5 -2
- package/internals/hooks/useUtils.d.ts +4 -3
- package/internals/index.d.ts +6 -3
- package/internals/index.js +1 -1
- package/internals/models/fields.d.ts +3 -16
- package/internals/models/manager.d.ts +3 -0
- package/internals/models/props/basePickerProps.d.ts +0 -12
- package/locales/utils/getPickersLocalization.d.ts +0 -7
- package/locales/utils/getPickersLocalization.js +0 -13
- package/managers/index.d.ts +3 -3
- package/managers/useDateManager.d.ts +1 -1
- package/managers/useDateManager.js +9 -1
- package/managers/useDateTimeManager.d.ts +1 -1
- package/managers/useDateTimeManager.js +9 -1
- package/managers/useTimeManager.d.ts +1 -1
- package/managers/useTimeManager.js +9 -1
- package/models/fields.d.ts +4 -4
- package/models/manager.d.ts +12 -3
- package/modern/DateField/DateField.js +26 -31
- package/modern/DateField/useDateField.js +2 -1
- package/modern/DateTimeField/DateTimeField.js +26 -31
- package/modern/DateTimeField/useDateTimeField.js +2 -1
- package/modern/DesktopDatePicker/DesktopDatePicker.js +0 -11
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -12
- package/modern/DesktopTimePicker/DesktopTimePicker.js +1 -12
- package/modern/MobileDatePicker/MobileDatePicker.js +0 -9
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +0 -9
- package/modern/MobileTimePicker/MobileTimePicker.js +0 -9
- package/modern/TimeField/TimeField.js +25 -30
- package/modern/TimeField/useTimeField.js +2 -1
- package/modern/hooks/useParsedFormat.js +10 -12
- package/modern/hooks/usePickerContext.js +2 -1
- package/modern/hooks/useSplitFieldProps.js +8 -3
- package/modern/index.js +1 -1
- package/modern/internals/components/PickerFieldUI.js +306 -0
- package/modern/internals/components/PickerProvider.js +11 -6
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -94
- package/modern/internals/hooks/useField/index.js +3 -2
- package/modern/internals/hooks/useField/useField.js +11 -19
- package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +46 -0
- package/modern/internals/hooks/useField/useFieldV7TextField.js +3 -3
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +20 -49
- package/modern/internals/hooks/useNullablePickerContext.js +10 -0
- package/modern/internals/hooks/usePicker/usePicker.js +0 -3
- package/modern/internals/hooks/usePicker/usePickerProvider.js +22 -2
- package/modern/internals/hooks/usePicker/usePickerValue.js +5 -11
- package/modern/internals/index.js +1 -1
- package/modern/locales/utils/getPickersLocalization.js +0 -13
- package/modern/managers/useDateManager.js +9 -1
- package/modern/managers/useDateTimeManager.js +9 -1
- package/modern/managers/useTimeManager.js +9 -1
- package/node/DateField/DateField.js +26 -31
- package/node/DateField/useDateField.js +2 -1
- package/node/DateTimeField/DateTimeField.js +26 -31
- package/node/DateTimeField/useDateTimeField.js +2 -1
- package/node/DesktopDatePicker/DesktopDatePicker.js +0 -11
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -12
- package/node/DesktopTimePicker/DesktopTimePicker.js +1 -12
- package/node/MobileDatePicker/MobileDatePicker.js +0 -9
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +0 -9
- package/node/MobileTimePicker/MobileTimePicker.js +0 -9
- package/node/TimeField/TimeField.js +25 -30
- package/node/TimeField/useTimeField.js +2 -1
- package/node/hooks/useParsedFormat.js +10 -12
- package/node/hooks/usePickerContext.js +4 -3
- package/node/hooks/useSplitFieldProps.js +7 -2
- package/node/index.js +1 -1
- package/node/internals/components/PickerFieldUI.js +318 -0
- package/node/internals/components/PickerProvider.js +13 -8
- package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +23 -96
- package/node/internals/hooks/useField/index.js +3 -2
- package/node/internals/hooks/useField/useField.js +12 -21
- package/node/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +55 -0
- package/node/internals/hooks/useField/useFieldV7TextField.js +3 -3
- package/node/internals/hooks/useMobilePicker/useMobilePicker.js +20 -49
- package/node/internals/hooks/useNullablePickerContext.js +16 -0
- package/node/internals/hooks/usePicker/usePicker.js +0 -3
- package/node/internals/hooks/usePicker/usePickerProvider.js +22 -2
- package/node/internals/hooks/usePicker/usePickerValue.js +5 -11
- package/node/internals/index.js +21 -3
- package/node/locales/utils/getPickersLocalization.js +2 -16
- package/node/managers/useDateManager.js +9 -1
- package/node/managers/useDateTimeManager.js +9 -1
- package/node/managers/useTimeManager.js +9 -1
- package/package.json +2 -2
- package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +0 -3
- package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
- package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
- package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -52
|
@@ -0,0 +1,318 @@
|
|
|
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.PickerFieldUI = PickerFieldUI;
|
|
9
|
+
exports.PickerFieldUIContextProvider = PickerFieldUIContextProvider;
|
|
10
|
+
exports.cleanFieldResponse = void 0;
|
|
11
|
+
exports.useFieldTextFieldProps = useFieldTextFieldProps;
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
14
|
+
var React = _interopRequireWildcard(require("react"));
|
|
15
|
+
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
16
|
+
var _resolveComponentProps = _interopRequireDefault(require("@mui/utils/resolveComponentProps"));
|
|
17
|
+
var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
|
|
18
|
+
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
19
|
+
var _InputAdornment = _interopRequireDefault(require("@mui/material/InputAdornment"));
|
|
20
|
+
var _useSlotProps5 = _interopRequireDefault(require("@mui/utils/useSlotProps"));
|
|
21
|
+
var _useFieldOwnerState = require("../hooks/useFieldOwnerState");
|
|
22
|
+
var _hooks = require("../../hooks");
|
|
23
|
+
var _icons = require("../../icons");
|
|
24
|
+
var _useNullablePickerContext = require("../hooks/useNullablePickerContext");
|
|
25
|
+
var _PickersTextField = require("../../PickersTextField");
|
|
26
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
27
|
+
const _excluded = ["enableAccessibleFieldDOMStructure"],
|
|
28
|
+
_excluded2 = ["InputProps", "readOnly", "onClear", "clearable", "clearButtonPosition", "openPickerButtonPosition", "openPickerAriaLabel"],
|
|
29
|
+
_excluded3 = ["onPaste", "onKeyDown", "inputMode", "readOnly", "InputProps", "inputProps", "inputRef", "onClear", "clearable", "clearButtonPosition", "openPickerButtonPosition", "openPickerAriaLabel"],
|
|
30
|
+
_excluded4 = ["ownerState"],
|
|
31
|
+
_excluded5 = ["ownerState"],
|
|
32
|
+
_excluded6 = ["ownerState"],
|
|
33
|
+
_excluded7 = ["ownerState"],
|
|
34
|
+
_excluded8 = ["InputProps", "inputProps"];
|
|
35
|
+
const cleanFieldResponse = _ref => {
|
|
36
|
+
let {
|
|
37
|
+
enableAccessibleFieldDOMStructure
|
|
38
|
+
} = _ref,
|
|
39
|
+
fieldResponse = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
40
|
+
if (enableAccessibleFieldDOMStructure) {
|
|
41
|
+
const {
|
|
42
|
+
InputProps,
|
|
43
|
+
readOnly,
|
|
44
|
+
onClear,
|
|
45
|
+
clearable,
|
|
46
|
+
clearButtonPosition,
|
|
47
|
+
openPickerButtonPosition,
|
|
48
|
+
openPickerAriaLabel
|
|
49
|
+
} = fieldResponse,
|
|
50
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(fieldResponse, _excluded2);
|
|
51
|
+
return {
|
|
52
|
+
clearable,
|
|
53
|
+
onClear,
|
|
54
|
+
clearButtonPosition,
|
|
55
|
+
openPickerButtonPosition,
|
|
56
|
+
openPickerAriaLabel,
|
|
57
|
+
textFieldProps: (0, _extends2.default)({}, other, {
|
|
58
|
+
InputProps: (0, _extends2.default)({}, InputProps ?? {}, {
|
|
59
|
+
readOnly
|
|
60
|
+
})
|
|
61
|
+
})
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const {
|
|
65
|
+
onPaste,
|
|
66
|
+
onKeyDown,
|
|
67
|
+
inputMode,
|
|
68
|
+
readOnly,
|
|
69
|
+
InputProps,
|
|
70
|
+
inputProps,
|
|
71
|
+
inputRef,
|
|
72
|
+
onClear,
|
|
73
|
+
clearable,
|
|
74
|
+
clearButtonPosition,
|
|
75
|
+
openPickerButtonPosition,
|
|
76
|
+
openPickerAriaLabel
|
|
77
|
+
} = fieldResponse,
|
|
78
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(fieldResponse, _excluded3);
|
|
79
|
+
return {
|
|
80
|
+
clearable,
|
|
81
|
+
onClear,
|
|
82
|
+
clearButtonPosition,
|
|
83
|
+
openPickerButtonPosition,
|
|
84
|
+
openPickerAriaLabel,
|
|
85
|
+
textFieldProps: (0, _extends2.default)({}, other, {
|
|
86
|
+
InputProps: (0, _extends2.default)({}, InputProps ?? {}, {
|
|
87
|
+
readOnly
|
|
88
|
+
}),
|
|
89
|
+
inputProps: (0, _extends2.default)({}, inputProps ?? {}, {
|
|
90
|
+
inputMode,
|
|
91
|
+
onPaste,
|
|
92
|
+
onKeyDown,
|
|
93
|
+
ref: inputRef
|
|
94
|
+
})
|
|
95
|
+
})
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
exports.cleanFieldResponse = cleanFieldResponse;
|
|
99
|
+
const PickerFieldUIContext = /*#__PURE__*/React.createContext({
|
|
100
|
+
slots: {},
|
|
101
|
+
slotProps: {}
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Adds the button to open the picker and the button to clear the value of the field.
|
|
106
|
+
* @ignore - internal component.
|
|
107
|
+
*/
|
|
108
|
+
function PickerFieldUI(props) {
|
|
109
|
+
const {
|
|
110
|
+
slots,
|
|
111
|
+
slotProps,
|
|
112
|
+
fieldResponse,
|
|
113
|
+
defaultOpenPickerIcon
|
|
114
|
+
} = props;
|
|
115
|
+
const translations = (0, _hooks.usePickerTranslations)();
|
|
116
|
+
const pickerContext = (0, _useNullablePickerContext.useNullablePickerContext)();
|
|
117
|
+
const pickerFieldUIContext = React.useContext(PickerFieldUIContext);
|
|
118
|
+
const {
|
|
119
|
+
textFieldProps,
|
|
120
|
+
onClear,
|
|
121
|
+
clearable,
|
|
122
|
+
openPickerAriaLabel,
|
|
123
|
+
clearButtonPosition: clearButtonPositionProp = 'end',
|
|
124
|
+
openPickerButtonPosition: openPickerButtonPositionProp = 'end'
|
|
125
|
+
} = cleanFieldResponse(fieldResponse);
|
|
126
|
+
const ownerState = (0, _useFieldOwnerState.useFieldOwnerState)(textFieldProps);
|
|
127
|
+
const handleClickOpeningButton = (0, _useEventCallback.default)(event => {
|
|
128
|
+
event.preventDefault();
|
|
129
|
+
pickerContext?.setOpen(prev => !prev);
|
|
130
|
+
});
|
|
131
|
+
const triggerStatus = pickerContext ? pickerContext.triggerStatus : 'hidden';
|
|
132
|
+
const clearButtonPosition = clearable ? clearButtonPositionProp : null;
|
|
133
|
+
const openPickerButtonPosition = triggerStatus !== 'hidden' ? openPickerButtonPositionProp : null;
|
|
134
|
+
const TextField = slots?.textField ?? pickerFieldUIContext.slots.textField ?? (fieldResponse.enableAccessibleFieldDOMStructure === false ? _TextField.default : _PickersTextField.PickersTextField);
|
|
135
|
+
const InputAdornment = slots?.inputAdornment ?? pickerFieldUIContext.slots.inputAdornment ?? _InputAdornment.default;
|
|
136
|
+
const _useSlotProps = (0, _useSlotProps5.default)({
|
|
137
|
+
elementType: InputAdornment,
|
|
138
|
+
externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.inputAdornment, slotProps?.inputAdornment),
|
|
139
|
+
additionalProps: {
|
|
140
|
+
position: 'start'
|
|
141
|
+
},
|
|
142
|
+
ownerState: (0, _extends2.default)({}, ownerState, {
|
|
143
|
+
position: 'start'
|
|
144
|
+
})
|
|
145
|
+
}),
|
|
146
|
+
startInputAdornmentProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded4);
|
|
147
|
+
const _useSlotProps2 = (0, _useSlotProps5.default)({
|
|
148
|
+
elementType: InputAdornment,
|
|
149
|
+
externalSlotProps: slotProps?.inputAdornment,
|
|
150
|
+
additionalProps: {
|
|
151
|
+
position: 'end'
|
|
152
|
+
},
|
|
153
|
+
ownerState: (0, _extends2.default)({}, ownerState, {
|
|
154
|
+
position: 'end'
|
|
155
|
+
})
|
|
156
|
+
}),
|
|
157
|
+
endInputAdornmentProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps2, _excluded5);
|
|
158
|
+
const OpenPickerButton = pickerFieldUIContext.slots.openPickerButton ?? _IconButton.default;
|
|
159
|
+
// We don't want to forward the `ownerState` to the `<IconButton />` component, see mui/material-ui#34056
|
|
160
|
+
const _useSlotProps3 = (0, _useSlotProps5.default)({
|
|
161
|
+
elementType: OpenPickerButton,
|
|
162
|
+
externalSlotProps: pickerFieldUIContext.slotProps.openPickerButton,
|
|
163
|
+
additionalProps: {
|
|
164
|
+
disabled: triggerStatus === 'disabled',
|
|
165
|
+
onClick: handleClickOpeningButton,
|
|
166
|
+
'aria-label': openPickerAriaLabel,
|
|
167
|
+
edge: clearButtonPosition === 'start' && openPickerButtonPosition === 'start' ? undefined : openPickerButtonPosition
|
|
168
|
+
},
|
|
169
|
+
ownerState
|
|
170
|
+
}),
|
|
171
|
+
openPickerButtonProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps3, _excluded6);
|
|
172
|
+
const OpenPickerIcon = pickerFieldUIContext.slots.openPickerIcon ?? defaultOpenPickerIcon;
|
|
173
|
+
const openPickerIconProps = (0, _useSlotProps5.default)({
|
|
174
|
+
elementType: OpenPickerIcon,
|
|
175
|
+
externalSlotProps: pickerFieldUIContext.slotProps.openPickerIcon,
|
|
176
|
+
ownerState
|
|
177
|
+
});
|
|
178
|
+
const ClearButton = slots?.clearButton ?? pickerFieldUIContext.slots.clearButton ?? _IconButton.default;
|
|
179
|
+
// We don't want to forward the `ownerState` to the `<IconButton />` component, see mui/material-ui#34056
|
|
180
|
+
const _useSlotProps4 = (0, _useSlotProps5.default)({
|
|
181
|
+
elementType: ClearButton,
|
|
182
|
+
externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.clearButton, slotProps?.clearButton),
|
|
183
|
+
className: 'clearButton',
|
|
184
|
+
additionalProps: {
|
|
185
|
+
title: translations.fieldClearLabel,
|
|
186
|
+
tabIndex: -1,
|
|
187
|
+
onClick: onClear,
|
|
188
|
+
disabled: fieldResponse.disabled || fieldResponse.readOnly,
|
|
189
|
+
edge: clearButtonPosition === 'end' && openPickerButtonPosition === 'end' ? undefined : clearButtonPosition
|
|
190
|
+
},
|
|
191
|
+
ownerState
|
|
192
|
+
}),
|
|
193
|
+
clearButtonProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps4, _excluded7);
|
|
194
|
+
const ClearIcon = slots?.clearIcon ?? pickerFieldUIContext.slots.clearIcon ?? _icons.ClearIcon;
|
|
195
|
+
const clearIconProps = (0, _useSlotProps5.default)({
|
|
196
|
+
elementType: ClearIcon,
|
|
197
|
+
externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.clearIcon, slotProps?.clearIcon),
|
|
198
|
+
additionalProps: {
|
|
199
|
+
fontSize: 'small'
|
|
200
|
+
},
|
|
201
|
+
ownerState
|
|
202
|
+
});
|
|
203
|
+
if (!textFieldProps.InputProps) {
|
|
204
|
+
textFieldProps.InputProps = {};
|
|
205
|
+
}
|
|
206
|
+
if (pickerContext) {
|
|
207
|
+
textFieldProps.InputProps.ref = pickerContext.triggerRef;
|
|
208
|
+
}
|
|
209
|
+
if (!textFieldProps.InputProps?.startAdornment && (clearButtonPosition === 'start' || openPickerButtonPosition === 'start')) {
|
|
210
|
+
textFieldProps.InputProps.startAdornment = /*#__PURE__*/(0, _jsxRuntime.jsxs)(InputAdornment, (0, _extends2.default)({}, startInputAdornmentProps, {
|
|
211
|
+
children: [openPickerButtonPosition === 'start' && /*#__PURE__*/(0, _jsxRuntime.jsx)(OpenPickerButton, (0, _extends2.default)({}, openPickerButtonProps, {
|
|
212
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(OpenPickerIcon, (0, _extends2.default)({}, openPickerIconProps))
|
|
213
|
+
})), clearButtonPosition === 'start' && /*#__PURE__*/(0, _jsxRuntime.jsx)(ClearButton, (0, _extends2.default)({}, clearButtonProps, {
|
|
214
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ClearIcon, (0, _extends2.default)({}, clearIconProps))
|
|
215
|
+
}))]
|
|
216
|
+
}));
|
|
217
|
+
}
|
|
218
|
+
if (!textFieldProps.InputProps?.endAdornment && (clearButtonPosition === 'end' || openPickerButtonPosition === 'end')) {
|
|
219
|
+
textFieldProps.InputProps.endAdornment = /*#__PURE__*/(0, _jsxRuntime.jsxs)(InputAdornment, (0, _extends2.default)({}, endInputAdornmentProps, {
|
|
220
|
+
children: [clearButtonPosition === 'end' && /*#__PURE__*/(0, _jsxRuntime.jsx)(ClearButton, (0, _extends2.default)({}, clearButtonProps, {
|
|
221
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ClearIcon, (0, _extends2.default)({}, clearIconProps))
|
|
222
|
+
})), openPickerButtonPosition === 'end' && /*#__PURE__*/(0, _jsxRuntime.jsx)(OpenPickerButton, (0, _extends2.default)({}, openPickerButtonProps, {
|
|
223
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(OpenPickerIcon, (0, _extends2.default)({}, openPickerIconProps))
|
|
224
|
+
}))]
|
|
225
|
+
}));
|
|
226
|
+
}
|
|
227
|
+
if (clearButtonPosition != null) {
|
|
228
|
+
textFieldProps.sx = [{
|
|
229
|
+
'& .clearButton': {
|
|
230
|
+
opacity: 1
|
|
231
|
+
},
|
|
232
|
+
'@media (pointer: fine)': {
|
|
233
|
+
'& .clearButton': {
|
|
234
|
+
opacity: 0
|
|
235
|
+
},
|
|
236
|
+
'&:hover, &:focus-within': {
|
|
237
|
+
'.clearButton': {
|
|
238
|
+
opacity: 1
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}, ...(Array.isArray(textFieldProps.sx) ? textFieldProps.sx : [textFieldProps.sx])];
|
|
243
|
+
}
|
|
244
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(TextField, (0, _extends2.default)({}, textFieldProps));
|
|
245
|
+
}
|
|
246
|
+
function mergeSlotProps(slotPropsA, slotPropsB) {
|
|
247
|
+
if (!slotPropsA) {
|
|
248
|
+
return slotPropsB;
|
|
249
|
+
}
|
|
250
|
+
if (!slotPropsB) {
|
|
251
|
+
return slotPropsA;
|
|
252
|
+
}
|
|
253
|
+
return ownerState => {
|
|
254
|
+
return (0, _extends2.default)({}, (0, _resolveComponentProps.default)(slotPropsB, ownerState), (0, _resolveComponentProps.default)(slotPropsA, ownerState));
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* The `textField` slot props cannot be handled inside `PickerFieldUI` because it would be a breaking change to not pass the enriched props to `useField`.
|
|
260
|
+
* Once the non-accessible DOM structure will be removed, we will be able to remove the `textField` slot and clean this logic.
|
|
261
|
+
*/
|
|
262
|
+
function useFieldTextFieldProps(parameters) {
|
|
263
|
+
const {
|
|
264
|
+
ref,
|
|
265
|
+
externalForwardedProps,
|
|
266
|
+
slotProps
|
|
267
|
+
} = parameters;
|
|
268
|
+
const pickerFieldUIContext = React.useContext(PickerFieldUIContext);
|
|
269
|
+
const ownerState = (0, _useFieldOwnerState.useFieldOwnerState)(externalForwardedProps);
|
|
270
|
+
const {
|
|
271
|
+
InputProps,
|
|
272
|
+
inputProps
|
|
273
|
+
} = externalForwardedProps,
|
|
274
|
+
otherExternalForwardedProps = (0, _objectWithoutPropertiesLoose2.default)(externalForwardedProps, _excluded8);
|
|
275
|
+
const textFieldProps = (0, _useSlotProps5.default)({
|
|
276
|
+
elementType: _PickersTextField.PickersTextField,
|
|
277
|
+
externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.textField, slotProps?.textField),
|
|
278
|
+
externalForwardedProps: otherExternalForwardedProps,
|
|
279
|
+
additionalProps: {
|
|
280
|
+
ref
|
|
281
|
+
},
|
|
282
|
+
ownerState
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
// TODO: Remove when mui/material-ui#35088 will be merged
|
|
286
|
+
textFieldProps.inputProps = (0, _extends2.default)({}, inputProps, textFieldProps.inputProps);
|
|
287
|
+
textFieldProps.InputProps = (0, _extends2.default)({}, InputProps, textFieldProps.InputProps);
|
|
288
|
+
return textFieldProps;
|
|
289
|
+
}
|
|
290
|
+
function PickerFieldUIContextProvider(props) {
|
|
291
|
+
const {
|
|
292
|
+
slots = {},
|
|
293
|
+
slotProps = {},
|
|
294
|
+
children
|
|
295
|
+
} = props;
|
|
296
|
+
const contextValue = React.useMemo(() => ({
|
|
297
|
+
slots: {
|
|
298
|
+
openPickerButton: slots.openPickerButton,
|
|
299
|
+
openPickerIcon: slots.openPickerIcon,
|
|
300
|
+
textField: slots.textField,
|
|
301
|
+
inputAdornment: slots.inputAdornment,
|
|
302
|
+
clearIcon: slots.clearIcon,
|
|
303
|
+
clearButton: slots.clearButton
|
|
304
|
+
},
|
|
305
|
+
slotProps: {
|
|
306
|
+
openPickerButton: slotProps.openPickerButton,
|
|
307
|
+
openPickerIcon: slotProps.openPickerIcon,
|
|
308
|
+
textField: slotProps.textField,
|
|
309
|
+
inputAdornment: slotProps.inputAdornment,
|
|
310
|
+
clearIcon: slotProps.clearIcon,
|
|
311
|
+
clearButton: slotProps.clearButton
|
|
312
|
+
}
|
|
313
|
+
}), [slots.openPickerButton, slots.openPickerIcon, slots.textField, slots.inputAdornment, slots.clearIcon, slots.clearButton, slotProps.openPickerButton, slotProps.openPickerIcon, slotProps.textField, slotProps.inputAdornment, slotProps.clearIcon, slotProps.clearButton]);
|
|
314
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(PickerFieldUIContext.Provider, {
|
|
315
|
+
value: contextValue,
|
|
316
|
+
children: children
|
|
317
|
+
});
|
|
318
|
+
}
|
|
@@ -4,13 +4,14 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.PickerPrivateContext = exports.
|
|
7
|
+
exports.PickerPrivateContext = exports.PickerActionsContext = void 0;
|
|
8
8
|
exports.PickerProvider = PickerProvider;
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _LocalizationProvider = require("../../LocalizationProvider");
|
|
11
11
|
var _useIsValidValue = require("../../hooks/useIsValidValue");
|
|
12
|
+
var _useFieldInternalPropsWithDefaults = require("../hooks/useField/useFieldInternalPropsWithDefaults");
|
|
13
|
+
var _usePickerContext = require("../../hooks/usePickerContext");
|
|
12
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
-
const PickerContext = exports.PickerContext = /*#__PURE__*/React.createContext(null);
|
|
14
15
|
const PickerActionsContext = exports.PickerActionsContext = /*#__PURE__*/React.createContext(null);
|
|
15
16
|
const PickerPrivateContext = exports.PickerPrivateContext = /*#__PURE__*/React.createContext({
|
|
16
17
|
ownerState: {
|
|
@@ -36,21 +37,25 @@ function PickerProvider(props) {
|
|
|
36
37
|
contextValue,
|
|
37
38
|
actionsContextValue,
|
|
38
39
|
privateContextValue,
|
|
40
|
+
fieldPrivateContextValue,
|
|
39
41
|
isValidContextValue,
|
|
40
42
|
localeText,
|
|
41
43
|
children
|
|
42
44
|
} = props;
|
|
43
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(PickerContext.Provider, {
|
|
45
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_usePickerContext.PickerContext.Provider, {
|
|
44
46
|
value: contextValue,
|
|
45
47
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(PickerActionsContext.Provider, {
|
|
46
48
|
value: actionsContextValue,
|
|
47
49
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(PickerPrivateContext.Provider, {
|
|
48
50
|
value: privateContextValue,
|
|
49
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
50
|
-
value:
|
|
51
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
52
|
-
|
|
53
|
-
children:
|
|
51
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_useFieldInternalPropsWithDefaults.PickerFieldPrivateContext.Provider, {
|
|
52
|
+
value: fieldPrivateContextValue,
|
|
53
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_useIsValidValue.IsValidValueContext.Provider, {
|
|
54
|
+
value: isValidContextValue,
|
|
55
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LocalizationProvider.LocalizationProvider, {
|
|
56
|
+
localeText: localeText,
|
|
57
|
+
children: children
|
|
58
|
+
})
|
|
54
59
|
})
|
|
55
60
|
})
|
|
56
61
|
})
|
|
@@ -9,19 +9,16 @@ exports.useDesktopPicker = void 0;
|
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
11
|
var React = _interopRequireWildcard(require("react"));
|
|
12
|
-
var
|
|
13
|
-
var _InputAdornment = _interopRequireDefault(require("@mui/material/InputAdornment"));
|
|
14
|
-
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
12
|
+
var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
|
|
15
13
|
var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
|
|
16
14
|
var _useId = _interopRequireDefault(require("@mui/utils/useId"));
|
|
17
15
|
var _PickersPopper = require("../../components/PickersPopper");
|
|
18
16
|
var _usePicker = require("../usePicker");
|
|
19
17
|
var _PickersLayout = require("../../../PickersLayout");
|
|
20
18
|
var _PickerProvider = require("../../components/PickerProvider");
|
|
19
|
+
var _PickerFieldUI = require("../../components/PickerFieldUI");
|
|
21
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
|
-
const _excluded = ["props"
|
|
23
|
-
_excluded2 = ["ownerState"],
|
|
24
|
-
_excluded3 = ["ownerState"];
|
|
21
|
+
const _excluded = ["props"];
|
|
25
22
|
/**
|
|
26
23
|
* Hook managing all the single-date desktop pickers:
|
|
27
24
|
* - DesktopDatePicker
|
|
@@ -30,8 +27,7 @@ const _excluded = ["props", "getOpenDialogAriaText"],
|
|
|
30
27
|
*/
|
|
31
28
|
const useDesktopPicker = _ref => {
|
|
32
29
|
let {
|
|
33
|
-
props
|
|
34
|
-
getOpenDialogAriaText
|
|
30
|
+
props
|
|
35
31
|
} = _ref,
|
|
36
32
|
pickerParams = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
37
33
|
const {
|
|
@@ -39,31 +35,21 @@ const useDesktopPicker = _ref => {
|
|
|
39
35
|
slotProps: innerSlotProps,
|
|
40
36
|
className,
|
|
41
37
|
sx,
|
|
42
|
-
format,
|
|
43
|
-
formatDensity,
|
|
44
|
-
enableAccessibleFieldDOMStructure,
|
|
45
|
-
selectedSections,
|
|
46
|
-
onSelectedSectionsChange,
|
|
47
|
-
timezone,
|
|
48
38
|
name,
|
|
49
39
|
label,
|
|
50
40
|
inputRef,
|
|
51
41
|
readOnly,
|
|
52
|
-
disabled,
|
|
53
42
|
autoFocus,
|
|
54
43
|
localeText,
|
|
55
44
|
reduceAnimations
|
|
56
45
|
} = props;
|
|
57
|
-
const containerRef = React.useRef(null);
|
|
58
46
|
const fieldRef = React.useRef(null);
|
|
59
47
|
const labelId = (0, _useId.default)();
|
|
60
48
|
const isToolbarHidden = innerSlotProps?.toolbar?.hidden ?? false;
|
|
61
49
|
const {
|
|
62
|
-
hasUIView,
|
|
63
50
|
providerProps,
|
|
64
51
|
renderCurrentView,
|
|
65
52
|
shouldRestoreFocus,
|
|
66
|
-
fieldProps: pickerFieldProps,
|
|
67
53
|
ownerState
|
|
68
54
|
} = (0, _usePicker.usePicker)((0, _extends2.default)({}, pickerParams, {
|
|
69
55
|
props,
|
|
@@ -72,57 +58,14 @@ const useDesktopPicker = _ref => {
|
|
|
72
58
|
autoFocusView: true,
|
|
73
59
|
variant: 'desktop'
|
|
74
60
|
}));
|
|
75
|
-
const InputAdornment = slots.inputAdornment ?? _InputAdornment.default;
|
|
76
|
-
const _useSlotProps = (0, _useSlotProps3.default)({
|
|
77
|
-
elementType: InputAdornment,
|
|
78
|
-
externalSlotProps: innerSlotProps?.inputAdornment,
|
|
79
|
-
additionalProps: {
|
|
80
|
-
position: 'end'
|
|
81
|
-
},
|
|
82
|
-
ownerState
|
|
83
|
-
}),
|
|
84
|
-
inputAdornmentProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded2);
|
|
85
|
-
const OpenPickerButton = slots.openPickerButton ?? _IconButton.default;
|
|
86
|
-
const _useSlotProps2 = (0, _useSlotProps3.default)({
|
|
87
|
-
elementType: OpenPickerButton,
|
|
88
|
-
externalSlotProps: innerSlotProps?.openPickerButton,
|
|
89
|
-
additionalProps: {
|
|
90
|
-
disabled: disabled || readOnly,
|
|
91
|
-
// This direct access to `providerProps` will go away in https://github.com/mui/mui-x/pull/15671
|
|
92
|
-
onClick: event => {
|
|
93
|
-
event.preventDefault();
|
|
94
|
-
providerProps.contextValue.setOpen(prevOpen => !prevOpen);
|
|
95
|
-
},
|
|
96
|
-
'aria-label': getOpenDialogAriaText(pickerFieldProps.value),
|
|
97
|
-
edge: inputAdornmentProps.position
|
|
98
|
-
},
|
|
99
|
-
ownerState
|
|
100
|
-
}),
|
|
101
|
-
openPickerButtonProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps2, _excluded3);
|
|
102
|
-
const OpenPickerIcon = slots.openPickerIcon;
|
|
103
|
-
const openPickerIconProps = (0, _useSlotProps3.default)({
|
|
104
|
-
elementType: OpenPickerIcon,
|
|
105
|
-
externalSlotProps: innerSlotProps?.openPickerIcon,
|
|
106
|
-
ownerState
|
|
107
|
-
});
|
|
108
61
|
const Field = slots.field;
|
|
109
|
-
const fieldProps = (0,
|
|
62
|
+
const fieldProps = (0, _useSlotProps.default)({
|
|
110
63
|
elementType: Field,
|
|
111
64
|
externalSlotProps: innerSlotProps?.field,
|
|
112
65
|
additionalProps: (0, _extends2.default)({
|
|
113
66
|
// Internal props
|
|
114
67
|
readOnly,
|
|
115
|
-
|
|
116
|
-
format,
|
|
117
|
-
formatDensity,
|
|
118
|
-
enableAccessibleFieldDOMStructure,
|
|
119
|
-
selectedSections,
|
|
120
|
-
onSelectedSectionsChange,
|
|
121
|
-
timezone,
|
|
122
|
-
autoFocus: autoFocus && !props.open
|
|
123
|
-
}, pickerFieldProps, {
|
|
124
|
-
// onChange and value
|
|
125
|
-
|
|
68
|
+
autoFocus: autoFocus && !props.open,
|
|
126
69
|
// Forwarded props
|
|
127
70
|
className,
|
|
128
71
|
sx,
|
|
@@ -136,24 +79,6 @@ const useDesktopPicker = _ref => {
|
|
|
136
79
|
}),
|
|
137
80
|
ownerState
|
|
138
81
|
});
|
|
139
|
-
|
|
140
|
-
// TODO: Move to `useSlotProps` when https://github.com/mui/material-ui/pull/35088 will be merged
|
|
141
|
-
if (hasUIView) {
|
|
142
|
-
fieldProps.InputProps = (0, _extends2.default)({}, fieldProps.InputProps, {
|
|
143
|
-
ref: containerRef
|
|
144
|
-
}, !props.disableOpenPicker && {
|
|
145
|
-
[`${inputAdornmentProps.position}Adornment`]: /*#__PURE__*/(0, _jsxRuntime.jsx)(InputAdornment, (0, _extends2.default)({}, inputAdornmentProps, {
|
|
146
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(OpenPickerButton, (0, _extends2.default)({}, openPickerButtonProps, {
|
|
147
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(OpenPickerIcon, (0, _extends2.default)({}, openPickerIconProps))
|
|
148
|
-
}))
|
|
149
|
-
}))
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
const slotsForField = (0, _extends2.default)({
|
|
153
|
-
textField: slots.textField,
|
|
154
|
-
clearIcon: slots.clearIcon,
|
|
155
|
-
clearButton: slots.clearButton
|
|
156
|
-
}, fieldProps.slots);
|
|
157
82
|
const Layout = slots.layout ?? _PickersLayout.PickersLayout;
|
|
158
83
|
let labelledById = labelId;
|
|
159
84
|
if (isToolbarHidden) {
|
|
@@ -172,25 +97,27 @@ const useDesktopPicker = _ref => {
|
|
|
172
97
|
}, innerSlotProps?.popper)
|
|
173
98
|
});
|
|
174
99
|
const handleFieldRef = (0, _useForkRef.default)(fieldRef, fieldProps.unstableFieldRef);
|
|
175
|
-
const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.
|
|
176
|
-
children:
|
|
177
|
-
slots: slotsForField,
|
|
178
|
-
slotProps: slotProps,
|
|
179
|
-
unstableFieldRef: handleFieldRef
|
|
180
|
-
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersPopper.PickersPopper, {
|
|
181
|
-
role: "dialog",
|
|
182
|
-
placement: "bottom-start",
|
|
183
|
-
anchorEl: containerRef.current,
|
|
100
|
+
const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerProvider.PickerProvider, (0, _extends2.default)({}, providerProps, {
|
|
101
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PickerFieldUI.PickerFieldUIContextProvider, {
|
|
184
102
|
slots: slots,
|
|
185
103
|
slotProps: slotProps,
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
104
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, fieldProps, {
|
|
105
|
+
unstableFieldRef: handleFieldRef
|
|
106
|
+
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersPopper.PickersPopper, {
|
|
107
|
+
role: "dialog",
|
|
108
|
+
placement: "bottom-start",
|
|
109
|
+
anchorEl: providerProps.contextValue.triggerRef.current,
|
|
189
110
|
slots: slots,
|
|
190
111
|
slotProps: slotProps,
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
112
|
+
shouldRestoreFocus: shouldRestoreFocus,
|
|
113
|
+
reduceAnimations: reduceAnimations,
|
|
114
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, slotProps?.layout, {
|
|
115
|
+
slots: slots,
|
|
116
|
+
slotProps: slotProps,
|
|
117
|
+
children: renderCurrentView()
|
|
118
|
+
}))
|
|
119
|
+
})]
|
|
120
|
+
})
|
|
194
121
|
}));
|
|
195
122
|
return {
|
|
196
123
|
renderPicker
|
|
@@ -24,8 +24,9 @@ Object.defineProperty(exports, "useField", {
|
|
|
24
24
|
Object.defineProperty(exports, "useFieldInternalPropsWithDefaults", {
|
|
25
25
|
enumerable: true,
|
|
26
26
|
get: function () {
|
|
27
|
-
return
|
|
27
|
+
return _useFieldInternalPropsWithDefaults.useFieldInternalPropsWithDefaults;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
30
|
var _useField = require("./useField");
|
|
31
|
-
var _useField2 = require("./useField.utils");
|
|
31
|
+
var _useField2 = require("./useField.utils");
|
|
32
|
+
var _useFieldInternalPropsWithDefaults = require("./useFieldInternalPropsWithDefaults");
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.useField = void 0;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
|
|
@@ -18,23 +18,6 @@ var _useFieldState = require("./useFieldState");
|
|
|
18
18
|
var _useFieldCharacterEditing = require("./useFieldCharacterEditing");
|
|
19
19
|
var _useFieldV7TextField = require("./useFieldV7TextField");
|
|
20
20
|
var _useFieldV6TextField = require("./useFieldV6TextField");
|
|
21
|
-
/**
|
|
22
|
-
* Applies the default values to the field internal props.
|
|
23
|
-
* This is a temporary hook that will be removed during a follow up when `useField` will receive the internal props without the defaults.
|
|
24
|
-
* It is only here to allow the migration to be done in smaller steps.
|
|
25
|
-
*/
|
|
26
|
-
const useFieldInternalPropsWithDefaults = ({
|
|
27
|
-
manager,
|
|
28
|
-
internalProps
|
|
29
|
-
}) => {
|
|
30
|
-
const localizationContext = (0, _useUtils.useLocalizationContext)();
|
|
31
|
-
return React.useMemo(() => {
|
|
32
|
-
return manager.internal_applyDefaultsToFieldInternalProps((0, _extends2.default)({}, localizationContext, {
|
|
33
|
-
internalProps
|
|
34
|
-
}));
|
|
35
|
-
}, [manager, internalProps, localizationContext]);
|
|
36
|
-
};
|
|
37
|
-
exports.useFieldInternalPropsWithDefaults = useFieldInternalPropsWithDefaults;
|
|
38
21
|
const useField = params => {
|
|
39
22
|
const utils = (0, _useUtils.useUtils)();
|
|
40
23
|
const {
|
|
@@ -44,7 +27,8 @@ const useField = params => {
|
|
|
44
27
|
minutesStep,
|
|
45
28
|
enableAccessibleFieldDOMStructure = true,
|
|
46
29
|
disabled = false,
|
|
47
|
-
readOnly = false
|
|
30
|
+
readOnly = false,
|
|
31
|
+
autoFocus = false
|
|
48
32
|
},
|
|
49
33
|
forwardedProps: {
|
|
50
34
|
onKeyDown,
|
|
@@ -54,7 +38,8 @@ const useField = params => {
|
|
|
54
38
|
},
|
|
55
39
|
fieldValueManager,
|
|
56
40
|
valueManager,
|
|
57
|
-
validator
|
|
41
|
+
validator,
|
|
42
|
+
getOpenPickerButtonAriaLabel: getOpenDialogAriaText
|
|
58
43
|
} = params;
|
|
59
44
|
const isRtl = (0, _RtlProvider.useRtl)();
|
|
60
45
|
const stateResponse = (0, _useFieldState.useFieldState)(params);
|
|
@@ -241,9 +226,15 @@ const useField = params => {
|
|
|
241
226
|
error: inputError,
|
|
242
227
|
clearable: Boolean(clearable && !areAllSectionsEmpty && !readOnly && !disabled)
|
|
243
228
|
};
|
|
229
|
+
const localizationContext = (0, _useUtils.useLocalizationContext)();
|
|
230
|
+
const openPickerAriaLabel = React.useMemo(() => getOpenDialogAriaText((0, _extends2.default)({}, localizationContext, {
|
|
231
|
+
value: state.value
|
|
232
|
+
})), [getOpenDialogAriaText, state.value, localizationContext]);
|
|
244
233
|
const commonAdditionalProps = {
|
|
245
234
|
disabled,
|
|
246
|
-
readOnly
|
|
235
|
+
readOnly,
|
|
236
|
+
autoFocus,
|
|
237
|
+
openPickerAriaLabel
|
|
247
238
|
};
|
|
248
239
|
return (0, _extends2.default)({}, params.forwardedProps, commonForwardedProps, commonAdditionalProps, returnedValue);
|
|
249
240
|
};
|