@mui/x-date-pickers 7.0.0-alpha.4 → 7.0.0-alpha.5
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 +122 -0
- package/DateCalendar/DateCalendar.types.d.ts +6 -6
- package/DateCalendar/DayCalendar.d.ts +4 -4
- package/DateCalendar/index.d.ts +1 -1
- package/DateField/DateField.js +17 -50
- package/DateField/DateField.types.d.ts +5 -9
- package/DateField/useDateField.d.ts +2 -2
- package/DateField/useDateField.js +1 -5
- package/DatePicker/DatePicker.js +5 -1
- package/DatePicker/DatePicker.types.d.ts +6 -6
- package/DatePicker/index.d.ts +1 -1
- package/DatePicker/shared.d.ts +6 -6
- package/DateTimeField/DateTimeField.js +17 -50
- package/DateTimeField/DateTimeField.types.d.ts +5 -9
- package/DateTimeField/useDateTimeField.d.ts +2 -2
- package/DateTimeField/useDateTimeField.js +1 -5
- package/DateTimePicker/DateTimePicker.js +5 -1
- package/DateTimePicker/DateTimePicker.types.d.ts +6 -6
- package/DateTimePicker/index.d.ts +1 -1
- package/DateTimePicker/shared.d.ts +6 -6
- package/DesktopDatePicker/DesktopDatePicker.js +7 -2
- package/DesktopDatePicker/DesktopDatePicker.types.d.ts +6 -6
- package/DesktopDatePicker/index.d.ts +1 -1
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
- package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +8 -8
- package/DesktopDateTimePicker/index.d.ts +1 -1
- package/DesktopTimePicker/DesktopTimePicker.js +5 -1
- package/DesktopTimePicker/DesktopTimePicker.types.d.ts +8 -8
- package/DesktopTimePicker/index.d.ts +1 -1
- package/DigitalClock/DigitalClock.types.d.ts +4 -4
- package/DigitalClock/index.d.ts +1 -1
- package/MobileDatePicker/MobileDatePicker.js +7 -2
- package/MobileDatePicker/MobileDatePicker.types.d.ts +6 -6
- package/MobileDatePicker/index.d.ts +1 -1
- package/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
- package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +6 -6
- package/MobileDateTimePicker/index.d.ts +1 -1
- package/MobileTimePicker/MobileTimePicker.js +5 -1
- package/MobileTimePicker/MobileTimePicker.types.d.ts +6 -6
- package/MobileTimePicker/index.d.ts +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +4 -4
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +3 -3
- package/MultiSectionDigitalClock/index.d.ts +1 -1
- package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +8 -8
- package/PickersCalendarHeader/index.d.ts +1 -1
- package/PickersLayout/PickersLayout.types.d.ts +6 -6
- package/PickersLayout/index.d.ts +1 -1
- package/StaticDatePicker/StaticDatePicker.js +1 -1
- package/StaticDatePicker/StaticDatePicker.types.d.ts +7 -7
- package/StaticDatePicker/index.d.ts +1 -1
- package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +7 -7
- package/StaticDateTimePicker/index.d.ts +1 -1
- package/StaticTimePicker/StaticTimePicker.types.d.ts +7 -7
- package/StaticTimePicker/index.d.ts +1 -1
- package/TimeClock/TimeClock.types.d.ts +5 -5
- package/TimeClock/index.d.ts +1 -1
- package/TimeField/TimeField.js +17 -50
- package/TimeField/TimeField.types.d.ts +5 -9
- package/TimeField/useTimeField.d.ts +2 -2
- package/TimeField/useTimeField.js +1 -5
- package/TimePicker/TimePicker.js +5 -1
- package/TimePicker/TimePicker.types.d.ts +6 -6
- package/TimePicker/index.d.ts +1 -1
- package/TimePicker/shared.d.ts +5 -5
- package/hooks/index.d.ts +1 -0
- package/hooks/useClearableField.d.ts +32 -20
- package/hooks/useClearableField.js +32 -33
- package/index.js +1 -1
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +9 -9
- package/internals/components/PickersArrowSwitcher/index.d.ts +3 -1
- package/internals/components/PickersArrowSwitcher/index.js +2 -1
- package/internals/components/PickersModalDialog.d.ts +4 -4
- package/internals/components/PickersPopper.d.ts +4 -4
- package/internals/hooks/useDesktopPicker/index.d.ts +1 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +8 -8
- package/internals/hooks/useField/index.d.ts +1 -1
- package/internals/hooks/useField/useField.js +3 -3
- package/internals/hooks/useField/useField.types.d.ts +4 -24
- package/internals/hooks/useField/useField.utils.js +24 -4
- package/internals/hooks/useField/useFieldState.js +7 -3
- package/internals/hooks/useMobilePicker/index.d.ts +1 -1
- package/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +7 -7
- package/internals/hooks/useStaticPicker/index.d.ts +1 -1
- package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +5 -5
- package/internals/index.d.ts +7 -6
- package/internals/index.js +1 -0
- package/internals/models/props/basePickerProps.d.ts +4 -0
- package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +3 -0
- package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +26 -0
- package/legacy/DateField/DateField.js +19 -47
- package/legacy/DateField/useDateField.js +1 -4
- package/legacy/DatePicker/DatePicker.js +5 -1
- package/legacy/DateTimeField/DateTimeField.js +19 -47
- package/legacy/DateTimeField/useDateTimeField.js +1 -4
- package/legacy/DateTimePicker/DateTimePicker.js +5 -1
- package/legacy/DesktopDatePicker/DesktopDatePicker.js +7 -2
- package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
- package/legacy/DesktopTimePicker/DesktopTimePicker.js +5 -1
- package/legacy/MobileDatePicker/MobileDatePicker.js +7 -2
- package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
- package/legacy/MobileTimePicker/MobileTimePicker.js +5 -1
- package/legacy/StaticDatePicker/StaticDatePicker.js +1 -1
- package/legacy/TimeField/TimeField.js +19 -47
- package/legacy/TimeField/useTimeField.js +1 -4
- package/legacy/TimePicker/TimePicker.js +5 -1
- package/legacy/hooks/useClearableField.js +30 -32
- package/legacy/index.js +1 -1
- package/legacy/internals/components/PickersArrowSwitcher/index.js +2 -1
- package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
- package/legacy/internals/hooks/useField/useField.js +4 -4
- package/legacy/internals/hooks/useField/useField.utils.js +26 -4
- package/legacy/internals/hooks/useField/useFieldState.js +7 -3
- package/legacy/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
- package/legacy/internals/index.js +1 -0
- package/legacy/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +24 -0
- package/models/fields.d.ts +2 -1
- package/modern/DateField/DateField.js +17 -50
- package/modern/DateField/useDateField.js +1 -5
- package/modern/DatePicker/DatePicker.js +5 -1
- package/modern/DateTimeField/DateTimeField.js +17 -50
- package/modern/DateTimeField/useDateTimeField.js +1 -5
- package/modern/DateTimePicker/DateTimePicker.js +5 -1
- package/modern/DesktopDatePicker/DesktopDatePicker.js +7 -2
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
- package/modern/DesktopTimePicker/DesktopTimePicker.js +5 -1
- package/modern/MobileDatePicker/MobileDatePicker.js +7 -2
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
- package/modern/MobileTimePicker/MobileTimePicker.js +5 -1
- package/modern/StaticDatePicker/StaticDatePicker.js +1 -1
- package/modern/TimeField/TimeField.js +17 -50
- package/modern/TimeField/useTimeField.js +1 -5
- package/modern/TimePicker/TimePicker.js +5 -1
- package/modern/hooks/useClearableField.js +32 -33
- package/modern/index.js +1 -1
- package/modern/internals/components/PickersArrowSwitcher/index.js +2 -1
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
- package/modern/internals/hooks/useField/useField.js +3 -3
- package/modern/internals/hooks/useField/useField.utils.js +24 -4
- package/modern/internals/hooks/useField/useFieldState.js +7 -3
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
- package/modern/internals/index.js +1 -0
- package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +26 -0
- package/node/DateField/DateField.js +18 -51
- package/node/DateField/useDateField.js +1 -5
- package/node/DatePicker/DatePicker.js +5 -1
- package/node/DateTimeField/DateTimeField.js +18 -51
- package/node/DateTimeField/useDateTimeField.js +1 -5
- package/node/DateTimePicker/DateTimePicker.js +5 -1
- package/node/DesktopDatePicker/DesktopDatePicker.js +10 -5
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
- package/node/DesktopTimePicker/DesktopTimePicker.js +5 -1
- package/node/MobileDatePicker/MobileDatePicker.js +10 -5
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
- package/node/MobileTimePicker/MobileTimePicker.js +5 -1
- package/node/StaticDatePicker/StaticDatePicker.js +2 -2
- package/node/TimeField/TimeField.js +18 -51
- package/node/TimeField/useTimeField.js +1 -5
- package/node/TimePicker/TimePicker.js +5 -1
- package/node/hooks/useClearableField.js +33 -34
- package/node/index.js +1 -1
- package/node/internals/components/PickersArrowSwitcher/index.js +14 -1
- package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
- package/node/internals/hooks/useField/useField.js +3 -3
- package/node/internals/hooks/useField/useField.utils.js +24 -4
- package/node/internals/hooks/useField/useFieldState.js +7 -3
- package/node/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
- package/node/internals/index.js +7 -0
- package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +34 -0
- package/package.json +2 -2
- package/themeAugmentation/overrides.d.ts +5 -7
- package/themeAugmentation/props.d.ts +6 -8
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["slots", "slotProps", "InputProps", "inputProps"]
|
|
4
|
-
_excluded2 = ["inputRef"],
|
|
5
|
-
_excluded3 = ["ref", "onPaste", "onKeyDown", "inputMode", "readOnly", "clearable", "onClear"];
|
|
3
|
+
const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
|
|
6
4
|
import * as React from 'react';
|
|
7
5
|
import PropTypes from 'prop-types';
|
|
8
6
|
import MuiTextField from '@mui/material/TextField';
|
|
@@ -11,6 +9,7 @@ import { useSlotProps } from '@mui/base/utils';
|
|
|
11
9
|
import { refType } from '@mui/utils';
|
|
12
10
|
import { useDateTimeField } from './useDateTimeField';
|
|
13
11
|
import { useClearableField } from '../hooks';
|
|
12
|
+
import { convertFieldResponseIntoMuiTextFieldProps } from '../internals/utils/convertFieldResponseIntoMuiTextFieldProps';
|
|
14
13
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
14
|
/**
|
|
16
15
|
* Demos:
|
|
@@ -22,7 +21,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
22
21
|
*
|
|
23
22
|
* - [DateTimeField API](https://mui.com/x/api/date-pickers/date-time-field/)
|
|
24
23
|
*/
|
|
25
|
-
const DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps,
|
|
24
|
+
const DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps, inRef) {
|
|
26
25
|
const themeProps = useThemeProps({
|
|
27
26
|
props: inProps,
|
|
28
27
|
name: 'MuiDateTimeField'
|
|
@@ -36,58 +35,26 @@ const DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inPro
|
|
|
36
35
|
other = _objectWithoutPropertiesLoose(themeProps, _excluded);
|
|
37
36
|
const ownerState = themeProps;
|
|
38
37
|
const TextField = slots?.textField ?? MuiTextField;
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
textFieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
38
|
+
const textFieldProps = useSlotProps({
|
|
39
|
+
elementType: TextField,
|
|
40
|
+
externalSlotProps: slotProps?.textField,
|
|
41
|
+
externalForwardedProps: other,
|
|
42
|
+
ownerState,
|
|
43
|
+
additionalProps: {
|
|
44
|
+
ref: inRef
|
|
45
|
+
}
|
|
46
|
+
});
|
|
49
47
|
|
|
50
48
|
// TODO: Remove when mui/material-ui#35088 will be merged
|
|
51
49
|
textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
|
|
52
50
|
textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}),
|
|
57
|
-
{
|
|
58
|
-
ref: inputRef,
|
|
59
|
-
onPaste,
|
|
60
|
-
onKeyDown,
|
|
61
|
-
inputMode,
|
|
62
|
-
readOnly,
|
|
63
|
-
clearable,
|
|
64
|
-
onClear
|
|
65
|
-
} = _useDateTimeField,
|
|
66
|
-
fieldProps = _objectWithoutPropertiesLoose(_useDateTimeField, _excluded3);
|
|
67
|
-
const {
|
|
68
|
-
InputProps: ProcessedInputProps,
|
|
69
|
-
fieldProps: processedFieldProps
|
|
70
|
-
} = useClearableField({
|
|
71
|
-
onClear,
|
|
72
|
-
clearable,
|
|
73
|
-
fieldProps,
|
|
74
|
-
InputProps: fieldProps.InputProps,
|
|
51
|
+
const fieldResponse = useDateTimeField(textFieldProps);
|
|
52
|
+
const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
|
|
53
|
+
const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
|
|
75
54
|
slots,
|
|
76
55
|
slotProps
|
|
77
|
-
});
|
|
78
|
-
return /*#__PURE__*/_jsx(TextField, _extends({
|
|
79
|
-
ref: ref
|
|
80
|
-
}, processedFieldProps, {
|
|
81
|
-
InputProps: _extends({}, ProcessedInputProps, {
|
|
82
|
-
readOnly
|
|
83
|
-
}),
|
|
84
|
-
inputProps: _extends({}, fieldProps.inputProps, {
|
|
85
|
-
inputMode,
|
|
86
|
-
onPaste,
|
|
87
|
-
onKeyDown,
|
|
88
|
-
ref: inputRef
|
|
89
|
-
})
|
|
90
56
|
}));
|
|
57
|
+
return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
|
|
91
58
|
});
|
|
92
59
|
process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
|
|
93
60
|
// ----------------------------- Warning --------------------------------
|
|
@@ -298,7 +265,7 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
|
|
|
298
265
|
* 4. If `null` is provided, no section will be selected
|
|
299
266
|
* If not provided, the selected sections will be handled internally.
|
|
300
267
|
*/
|
|
301
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
268
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
302
269
|
endIndex: PropTypes.number.isRequired,
|
|
303
270
|
startIndex: PropTypes.number.isRequired
|
|
304
271
|
})]),
|
|
@@ -21,17 +21,13 @@ const useDefaultizedDateTimeField = props => {
|
|
|
21
21
|
maxTime: props.maxDateTime ?? props.maxTime
|
|
22
22
|
});
|
|
23
23
|
};
|
|
24
|
-
export const useDateTimeField =
|
|
25
|
-
props: inProps,
|
|
26
|
-
inputRef
|
|
27
|
-
}) => {
|
|
24
|
+
export const useDateTimeField = inProps => {
|
|
28
25
|
const props = useDefaultizedDateTimeField(inProps);
|
|
29
26
|
const {
|
|
30
27
|
forwardedProps,
|
|
31
28
|
internalProps
|
|
32
29
|
} = splitFieldInternalAndForwardedProps(props, 'date-time');
|
|
33
30
|
return useField({
|
|
34
|
-
inputRef,
|
|
35
31
|
forwardedProps,
|
|
36
32
|
internalProps,
|
|
37
33
|
valueManager: singleItemValueManager,
|
|
@@ -198,6 +198,10 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
|
|
|
198
198
|
* @default 3
|
|
199
199
|
*/
|
|
200
200
|
monthsPerRow: PropTypes.oneOf([3, 4]),
|
|
201
|
+
/**
|
|
202
|
+
* Name attribute used by the `input` element in the Field.
|
|
203
|
+
*/
|
|
204
|
+
name: PropTypes.string,
|
|
201
205
|
/**
|
|
202
206
|
* Callback fired when the value is accepted.
|
|
203
207
|
* @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
|
|
@@ -296,7 +300,7 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
|
|
|
296
300
|
* 4. If `null` is provided, no section will be selected
|
|
297
301
|
* If not provided, the selected sections will be handled internally.
|
|
298
302
|
*/
|
|
299
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
303
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
300
304
|
endIndex: PropTypes.number.isRequired,
|
|
301
305
|
startIndex: PropTypes.number.isRequired
|
|
302
306
|
})]),
|
|
@@ -5,7 +5,8 @@ import { resolveComponentProps } from '@mui/base/utils';
|
|
|
5
5
|
import { refType } from '@mui/utils';
|
|
6
6
|
import { singleItemValueManager } from '../internals/utils/valueManagers';
|
|
7
7
|
import { useDatePickerDefaultizedProps } from '../DatePicker/shared';
|
|
8
|
-
import { useLocaleText, useUtils
|
|
8
|
+
import { useLocaleText, useUtils } from '../internals/hooks/useUtils';
|
|
9
|
+
import { validateDate } from '../internals/utils/validation/validateDate';
|
|
9
10
|
import { useDesktopPicker } from '../internals/hooks/useDesktopPicker';
|
|
10
11
|
import { CalendarIcon } from '../icons';
|
|
11
12
|
import { DateField } from '../DateField';
|
|
@@ -174,6 +175,10 @@ DesktopDatePicker.propTypes = {
|
|
|
174
175
|
* @default 3
|
|
175
176
|
*/
|
|
176
177
|
monthsPerRow: PropTypes.oneOf([3, 4]),
|
|
178
|
+
/**
|
|
179
|
+
* Name attribute used by the `input` element in the Field.
|
|
180
|
+
*/
|
|
181
|
+
name: PropTypes.string,
|
|
177
182
|
/**
|
|
178
183
|
* Callback fired when the value is accepted.
|
|
179
184
|
* @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
|
|
@@ -272,7 +277,7 @@ DesktopDatePicker.propTypes = {
|
|
|
272
277
|
* 4. If `null` is provided, no section will be selected
|
|
273
278
|
* If not provided, the selected sections will be handled internally.
|
|
274
279
|
*/
|
|
275
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
280
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
276
281
|
endIndex: PropTypes.number.isRequired,
|
|
277
282
|
startIndex: PropTypes.number.isRequired
|
|
278
283
|
})]),
|
|
@@ -251,6 +251,10 @@ DesktopDateTimePicker.propTypes = {
|
|
|
251
251
|
* @default 3
|
|
252
252
|
*/
|
|
253
253
|
monthsPerRow: PropTypes.oneOf([3, 4]),
|
|
254
|
+
/**
|
|
255
|
+
* Name attribute used by the `input` element in the Field.
|
|
256
|
+
*/
|
|
257
|
+
name: PropTypes.string,
|
|
254
258
|
/**
|
|
255
259
|
* Callback fired when the value is accepted.
|
|
256
260
|
* @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
|
|
@@ -349,7 +353,7 @@ DesktopDateTimePicker.propTypes = {
|
|
|
349
353
|
* 4. If `null` is provided, no section will be selected
|
|
350
354
|
* If not provided, the selected sections will be handled internally.
|
|
351
355
|
*/
|
|
352
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
356
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
353
357
|
endIndex: PropTypes.number.isRequired,
|
|
354
358
|
startIndex: PropTypes.number.isRequired
|
|
355
359
|
})]),
|
|
@@ -185,6 +185,10 @@ DesktopTimePicker.propTypes = {
|
|
|
185
185
|
* @default 1
|
|
186
186
|
*/
|
|
187
187
|
minutesStep: PropTypes.number,
|
|
188
|
+
/**
|
|
189
|
+
* Name attribute used by the `input` element in the Field.
|
|
190
|
+
*/
|
|
191
|
+
name: PropTypes.string,
|
|
188
192
|
/**
|
|
189
193
|
* Callback fired when the value is accepted.
|
|
190
194
|
* @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
|
|
@@ -265,7 +269,7 @@ DesktopTimePicker.propTypes = {
|
|
|
265
269
|
* 4. If `null` is provided, no section will be selected
|
|
266
270
|
* If not provided, the selected sections will be handled internally.
|
|
267
271
|
*/
|
|
268
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
272
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
269
273
|
endIndex: PropTypes.number.isRequired,
|
|
270
274
|
startIndex: PropTypes.number.isRequired
|
|
271
275
|
})]),
|
|
@@ -5,7 +5,8 @@ import { resolveComponentProps } from '@mui/base/utils';
|
|
|
5
5
|
import { refType } from '@mui/utils';
|
|
6
6
|
import { useMobilePicker } from '../internals/hooks/useMobilePicker';
|
|
7
7
|
import { useDatePickerDefaultizedProps } from '../DatePicker/shared';
|
|
8
|
-
import {
|
|
8
|
+
import { useUtils, useLocaleText } from '../internals/hooks/useUtils';
|
|
9
|
+
import { validateDate } from '../internals/utils/validation/validateDate';
|
|
9
10
|
import { DateField } from '../DateField';
|
|
10
11
|
import { extractValidationProps } from '../internals/utils/validation/extractValidationProps';
|
|
11
12
|
import { singleItemValueManager } from '../internals/utils/valueManagers';
|
|
@@ -171,6 +172,10 @@ MobileDatePicker.propTypes = {
|
|
|
171
172
|
* @default 3
|
|
172
173
|
*/
|
|
173
174
|
monthsPerRow: PropTypes.oneOf([3, 4]),
|
|
175
|
+
/**
|
|
176
|
+
* Name attribute used by the `input` element in the Field.
|
|
177
|
+
*/
|
|
178
|
+
name: PropTypes.string,
|
|
174
179
|
/**
|
|
175
180
|
* Callback fired when the value is accepted.
|
|
176
181
|
* @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
|
|
@@ -269,7 +274,7 @@ MobileDatePicker.propTypes = {
|
|
|
269
274
|
* 4. If `null` is provided, no section will be selected
|
|
270
275
|
* If not provided, the selected sections will be handled internally.
|
|
271
276
|
*/
|
|
272
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
277
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
273
278
|
endIndex: PropTypes.number.isRequired,
|
|
274
279
|
startIndex: PropTypes.number.isRequired
|
|
275
280
|
})]),
|
|
@@ -220,6 +220,10 @@ MobileDateTimePicker.propTypes = {
|
|
|
220
220
|
* @default 3
|
|
221
221
|
*/
|
|
222
222
|
monthsPerRow: PropTypes.oneOf([3, 4]),
|
|
223
|
+
/**
|
|
224
|
+
* Name attribute used by the `input` element in the Field.
|
|
225
|
+
*/
|
|
226
|
+
name: PropTypes.string,
|
|
223
227
|
/**
|
|
224
228
|
* Callback fired when the value is accepted.
|
|
225
229
|
* @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
|
|
@@ -318,7 +322,7 @@ MobileDateTimePicker.propTypes = {
|
|
|
318
322
|
* 4. If `null` is provided, no section will be selected
|
|
319
323
|
* If not provided, the selected sections will be handled internally.
|
|
320
324
|
*/
|
|
321
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
325
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
322
326
|
endIndex: PropTypes.number.isRequired,
|
|
323
327
|
startIndex: PropTypes.number.isRequired
|
|
324
328
|
})]),
|
|
@@ -164,6 +164,10 @@ MobileTimePicker.propTypes = {
|
|
|
164
164
|
* @default 1
|
|
165
165
|
*/
|
|
166
166
|
minutesStep: PropTypes.number,
|
|
167
|
+
/**
|
|
168
|
+
* Name attribute used by the `input` element in the Field.
|
|
169
|
+
*/
|
|
170
|
+
name: PropTypes.string,
|
|
167
171
|
/**
|
|
168
172
|
* Callback fired when the value is accepted.
|
|
169
173
|
* @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
|
|
@@ -244,7 +248,7 @@ MobileTimePicker.propTypes = {
|
|
|
244
248
|
* 4. If `null` is provided, no section will be selected
|
|
245
249
|
* If not provided, the selected sections will be handled internally.
|
|
246
250
|
*/
|
|
247
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
251
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
248
252
|
endIndex: PropTypes.number.isRequired,
|
|
249
253
|
startIndex: PropTypes.number.isRequired
|
|
250
254
|
})]),
|
|
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
|
|
|
4
4
|
import { useDatePickerDefaultizedProps } from '../DatePicker/shared';
|
|
5
5
|
import { renderDateViewCalendar } from '../dateViewRenderers';
|
|
6
6
|
import { useStaticPicker } from '../internals/hooks/useStaticPicker';
|
|
7
|
-
import { validateDate } from '../internals';
|
|
7
|
+
import { validateDate } from '../internals/utils/validation/validateDate';
|
|
8
8
|
import { singleItemValueManager } from '../internals/utils/valueManagers';
|
|
9
9
|
/**
|
|
10
10
|
* Demos:
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["slots", "slotProps", "InputProps", "inputProps"]
|
|
4
|
-
_excluded2 = ["inputRef"],
|
|
5
|
-
_excluded3 = ["ref", "onPaste", "onKeyDown", "inputMode", "readOnly", "clearable", "onClear"];
|
|
3
|
+
const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
|
|
6
4
|
import * as React from 'react';
|
|
7
5
|
import PropTypes from 'prop-types';
|
|
8
6
|
import MuiTextField from '@mui/material/TextField';
|
|
@@ -11,6 +9,7 @@ import { useSlotProps } from '@mui/base/utils';
|
|
|
11
9
|
import { refType } from '@mui/utils';
|
|
12
10
|
import { useTimeField } from './useTimeField';
|
|
13
11
|
import { useClearableField } from '../hooks';
|
|
12
|
+
import { convertFieldResponseIntoMuiTextFieldProps } from '../internals/utils/convertFieldResponseIntoMuiTextFieldProps';
|
|
14
13
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
14
|
/**
|
|
16
15
|
* Demos:
|
|
@@ -22,7 +21,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
22
21
|
*
|
|
23
22
|
* - [TimeField API](https://mui.com/x/api/date-pickers/time-field/)
|
|
24
23
|
*/
|
|
25
|
-
const TimeField = /*#__PURE__*/React.forwardRef(function TimeField(inProps,
|
|
24
|
+
const TimeField = /*#__PURE__*/React.forwardRef(function TimeField(inProps, inRef) {
|
|
26
25
|
const themeProps = useThemeProps({
|
|
27
26
|
props: inProps,
|
|
28
27
|
name: 'MuiTimeField'
|
|
@@ -36,58 +35,26 @@ const TimeField = /*#__PURE__*/React.forwardRef(function TimeField(inProps, ref)
|
|
|
36
35
|
other = _objectWithoutPropertiesLoose(themeProps, _excluded);
|
|
37
36
|
const ownerState = themeProps;
|
|
38
37
|
const TextField = slots?.textField ?? MuiTextField;
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
textFieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
38
|
+
const textFieldProps = useSlotProps({
|
|
39
|
+
elementType: TextField,
|
|
40
|
+
externalSlotProps: slotProps?.textField,
|
|
41
|
+
externalForwardedProps: other,
|
|
42
|
+
ownerState,
|
|
43
|
+
additionalProps: {
|
|
44
|
+
ref: inRef
|
|
45
|
+
}
|
|
46
|
+
});
|
|
49
47
|
|
|
50
48
|
// TODO: Remove when mui/material-ui#35088 will be merged
|
|
51
49
|
textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
|
|
52
50
|
textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}),
|
|
57
|
-
{
|
|
58
|
-
ref: inputRef,
|
|
59
|
-
onPaste,
|
|
60
|
-
onKeyDown,
|
|
61
|
-
inputMode,
|
|
62
|
-
readOnly,
|
|
63
|
-
clearable,
|
|
64
|
-
onClear
|
|
65
|
-
} = _useTimeField,
|
|
66
|
-
fieldProps = _objectWithoutPropertiesLoose(_useTimeField, _excluded3);
|
|
67
|
-
const {
|
|
68
|
-
InputProps: ProcessedInputProps,
|
|
69
|
-
fieldProps: processedFieldProps
|
|
70
|
-
} = useClearableField({
|
|
71
|
-
onClear,
|
|
72
|
-
clearable,
|
|
73
|
-
fieldProps,
|
|
74
|
-
InputProps: fieldProps.InputProps,
|
|
51
|
+
const fieldResponse = useTimeField(textFieldProps);
|
|
52
|
+
const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
|
|
53
|
+
const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
|
|
75
54
|
slots,
|
|
76
55
|
slotProps
|
|
77
|
-
});
|
|
78
|
-
return /*#__PURE__*/_jsx(TextField, _extends({
|
|
79
|
-
ref: ref
|
|
80
|
-
}, processedFieldProps, {
|
|
81
|
-
InputProps: _extends({}, ProcessedInputProps, {
|
|
82
|
-
readOnly
|
|
83
|
-
}),
|
|
84
|
-
inputProps: _extends({}, fieldProps.inputProps, {
|
|
85
|
-
inputMode,
|
|
86
|
-
onPaste,
|
|
87
|
-
onKeyDown,
|
|
88
|
-
ref: inputRef
|
|
89
|
-
})
|
|
90
56
|
}));
|
|
57
|
+
return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
|
|
91
58
|
});
|
|
92
59
|
process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
|
|
93
60
|
// ----------------------------- Warning --------------------------------
|
|
@@ -282,7 +249,7 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
|
|
|
282
249
|
* 4. If `null` is provided, no section will be selected
|
|
283
250
|
* If not provided, the selected sections will be handled internally.
|
|
284
251
|
*/
|
|
285
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
252
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
286
253
|
endIndex: PropTypes.number.isRequired,
|
|
287
254
|
startIndex: PropTypes.number.isRequired
|
|
288
255
|
})]),
|
|
@@ -14,17 +14,13 @@ const useDefaultizedTimeField = props => {
|
|
|
14
14
|
format: props.format ?? defaultFormat
|
|
15
15
|
});
|
|
16
16
|
};
|
|
17
|
-
export const useTimeField =
|
|
18
|
-
props: inProps,
|
|
19
|
-
inputRef
|
|
20
|
-
}) => {
|
|
17
|
+
export const useTimeField = inProps => {
|
|
21
18
|
const props = useDefaultizedTimeField(inProps);
|
|
22
19
|
const {
|
|
23
20
|
forwardedProps,
|
|
24
21
|
internalProps
|
|
25
22
|
} = splitFieldInternalAndForwardedProps(props, 'time');
|
|
26
23
|
return useField({
|
|
27
|
-
inputRef,
|
|
28
24
|
forwardedProps,
|
|
29
25
|
internalProps,
|
|
30
26
|
valueManager: singleItemValueManager,
|
|
@@ -149,6 +149,10 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes = {
|
|
|
149
149
|
* @default 1
|
|
150
150
|
*/
|
|
151
151
|
minutesStep: PropTypes.number,
|
|
152
|
+
/**
|
|
153
|
+
* Name attribute used by the `input` element in the Field.
|
|
154
|
+
*/
|
|
155
|
+
name: PropTypes.string,
|
|
152
156
|
/**
|
|
153
157
|
* Callback fired when the value is accepted.
|
|
154
158
|
* @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
|
|
@@ -229,7 +233,7 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes = {
|
|
|
229
233
|
* 4. If `null` is provided, no section will be selected
|
|
230
234
|
* If not provided, the selected sections will be handled internally.
|
|
231
235
|
*/
|
|
232
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
236
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
233
237
|
endIndex: PropTypes.number.isRequired,
|
|
234
238
|
startIndex: PropTypes.number.isRequired
|
|
235
239
|
})]),
|
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["
|
|
3
|
+
const _excluded = ["clearable", "onClear", "InputProps", "sx", "slots", "slotProps"],
|
|
4
|
+
_excluded2 = ["ownerState"];
|
|
4
5
|
import * as React from 'react';
|
|
5
6
|
import { useSlotProps } from '@mui/base/utils';
|
|
6
7
|
import MuiIconButton from '@mui/material/IconButton';
|
|
7
8
|
import InputAdornment from '@mui/material/InputAdornment';
|
|
8
9
|
import { ClearIcon } from '../icons';
|
|
9
|
-
import { useLocaleText } from '../internals';
|
|
10
|
+
import { useLocaleText } from '../internals/hooks/useUtils';
|
|
10
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
12
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
-
export const useClearableField =
|
|
13
|
-
clearable,
|
|
14
|
-
fieldProps: forwardedFieldProps,
|
|
15
|
-
InputProps: ForwardedInputProps,
|
|
16
|
-
onClear,
|
|
17
|
-
slots,
|
|
18
|
-
slotProps
|
|
19
|
-
}) => {
|
|
13
|
+
export const useClearableField = props => {
|
|
20
14
|
const localeText = useLocaleText();
|
|
15
|
+
const {
|
|
16
|
+
clearable,
|
|
17
|
+
onClear,
|
|
18
|
+
InputProps,
|
|
19
|
+
sx,
|
|
20
|
+
slots,
|
|
21
|
+
slotProps
|
|
22
|
+
} = props,
|
|
23
|
+
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
21
24
|
const IconButton = slots?.clearButton ?? MuiIconButton;
|
|
22
25
|
// The spread is here to avoid this bug mui/material-ui#34056
|
|
23
26
|
const _useSlotProps = useSlotProps({
|
|
@@ -29,30 +32,30 @@ export const useClearableField = ({
|
|
|
29
32
|
title: localeText.fieldClearLabel
|
|
30
33
|
}
|
|
31
34
|
}),
|
|
32
|
-
iconButtonProps = _objectWithoutPropertiesLoose(_useSlotProps,
|
|
35
|
+
iconButtonProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
33
36
|
const EndClearIcon = slots?.clearIcon ?? ClearIcon;
|
|
34
37
|
const endClearIconProps = useSlotProps({
|
|
35
38
|
elementType: EndClearIcon,
|
|
36
39
|
externalSlotProps: slotProps?.clearIcon,
|
|
37
40
|
ownerState: {}
|
|
38
41
|
});
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
42
|
+
return _extends({}, other, {
|
|
43
|
+
InputProps: _extends({}, InputProps, {
|
|
44
|
+
endAdornment: clearable ? /*#__PURE__*/_jsxs(React.Fragment, {
|
|
45
|
+
children: [/*#__PURE__*/_jsx(InputAdornment, {
|
|
46
|
+
position: "end",
|
|
47
|
+
sx: {
|
|
48
|
+
marginRight: InputProps?.endAdornment ? -1 : -1.5
|
|
49
|
+
},
|
|
50
|
+
children: /*#__PURE__*/_jsx(IconButton, _extends({}, iconButtonProps, {
|
|
51
|
+
onClick: onClear,
|
|
52
|
+
children: /*#__PURE__*/_jsx(EndClearIcon, _extends({
|
|
53
|
+
fontSize: "small"
|
|
54
|
+
}, endClearIconProps))
|
|
55
|
+
}))
|
|
56
|
+
}), InputProps?.endAdornment]
|
|
57
|
+
}) : InputProps?.endAdornment
|
|
58
|
+
}),
|
|
56
59
|
sx: [{
|
|
57
60
|
'& .clearButton': {
|
|
58
61
|
opacity: 1
|
|
@@ -67,10 +70,6 @@ export const useClearableField = ({
|
|
|
67
70
|
}
|
|
68
71
|
}
|
|
69
72
|
}
|
|
70
|
-
}, ...(Array.isArray(
|
|
73
|
+
}, ...(Array.isArray(sx) ? sx : [sx])]
|
|
71
74
|
});
|
|
72
|
-
return {
|
|
73
|
-
InputProps,
|
|
74
|
-
fieldProps
|
|
75
|
-
};
|
|
76
75
|
};
|
package/modern/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { PickersArrowSwitcher } from './PickersArrowSwitcher';
|
|
1
|
+
export { PickersArrowSwitcher } from './PickersArrowSwitcher';
|
|
2
|
+
export { pickersArrowSwitcherClasses, getPickersArrowSwitcherUtilityClass } from './pickersArrowSwitcherClasses';
|
|
@@ -36,6 +36,7 @@ export const useDesktopPicker = _ref => {
|
|
|
36
36
|
format,
|
|
37
37
|
formatDensity,
|
|
38
38
|
timezone,
|
|
39
|
+
name,
|
|
39
40
|
label,
|
|
40
41
|
inputRef,
|
|
41
42
|
readOnly,
|
|
@@ -103,6 +104,7 @@ export const useDesktopPicker = _ref => {
|
|
|
103
104
|
formatDensity,
|
|
104
105
|
timezone,
|
|
105
106
|
label,
|
|
107
|
+
name,
|
|
106
108
|
autoFocus: autoFocus && !props.open,
|
|
107
109
|
focused: open ? true : undefined
|
|
108
110
|
}),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["onClick", "onKeyDown", "onFocus", "onBlur", "onMouseUp", "onPaste", "error", "clearable", "onClear", "disabled"];
|
|
3
|
+
const _excluded = ["inputRef", "onClick", "onKeyDown", "onFocus", "onBlur", "onMouseUp", "onPaste", "error", "clearable", "onClear", "disabled"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
|
|
6
6
|
import useEventCallback from '@mui/utils/useEventCallback';
|
|
@@ -28,7 +28,6 @@ export const useField = params => {
|
|
|
28
28
|
timezone
|
|
29
29
|
} = useFieldState(params);
|
|
30
30
|
const {
|
|
31
|
-
inputRef: inputRefProp,
|
|
32
31
|
internalProps,
|
|
33
32
|
internalProps: {
|
|
34
33
|
readOnly = false,
|
|
@@ -36,6 +35,7 @@ export const useField = params => {
|
|
|
36
35
|
minutesStep
|
|
37
36
|
},
|
|
38
37
|
forwardedProps: {
|
|
38
|
+
inputRef: inputRefProp,
|
|
39
39
|
onClick,
|
|
40
40
|
onKeyDown,
|
|
41
41
|
onFocus,
|
|
@@ -427,7 +427,7 @@ export const useField = params => {
|
|
|
427
427
|
onMouseUp: handleInputMouseUp,
|
|
428
428
|
onClear: handleClearValue,
|
|
429
429
|
error: inputError,
|
|
430
|
-
|
|
430
|
+
inputRef: handleRef,
|
|
431
431
|
clearable: Boolean(clearable && !areAllSectionsEmpty && !readOnly && !disabled)
|
|
432
432
|
});
|
|
433
433
|
};
|