@mui/x-date-pickers 7.0.0-alpha.4 → 7.0.0-alpha.6
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 +342 -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/PickersSectionList/PickersSectionList.d.ts +11 -0
- package/PickersSectionList/PickersSectionList.js +223 -0
- package/PickersSectionList/PickersSectionList.types.d.ts +56 -0
- package/PickersSectionList/index.d.ts +4 -0
- package/PickersSectionList/index.js +2 -0
- package/PickersSectionList/package.json +6 -0
- package/PickersSectionList/pickersSectionListClasses.d.ts +11 -0
- package/PickersSectionList/pickersSectionListClasses.js +6 -0
- 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.d.ts +1 -0
- package/index.js +4 -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/{PickersTextField → PickersInput}/Outline.d.ts +1 -0
- package/internals/components/{PickersTextField → PickersInput}/Outline.js +35 -19
- package/internals/components/PickersInput/PickersFilledInput.d.ts +3 -0
- package/internals/components/PickersInput/PickersFilledInput.js +166 -0
- package/internals/components/PickersInput/PickersInput.d.ts +15 -0
- package/internals/components/{PickersTextField → PickersInput}/PickersInput.js +78 -106
- package/internals/components/PickersInput/PickersInput.types.d.ts +60 -0
- package/internals/components/PickersInput/PickersOutlinedInput.d.ts +3 -0
- package/internals/components/PickersInput/PickersOutlinedInput.js +117 -0
- package/internals/components/PickersInput/PickersStandardInput.d.ts +3 -0
- package/internals/components/PickersInput/PickersStandardInput.js +123 -0
- package/internals/components/PickersInput/index.d.ts +4 -0
- package/internals/components/PickersInput/index.js +3 -0
- package/internals/components/PickersInput/pickersInputClasses.d.ts +84 -0
- package/internals/components/PickersInput/pickersInputClasses.js +18 -0
- package/internals/components/PickersModalDialog.d.ts +4 -4
- package/internals/components/PickersPopper.d.ts +4 -4
- package/internals/components/PickersTextField/PickersTextField.d.ts +1 -2
- package/internals/components/PickersTextField/PickersTextField.js +15 -6
- package/internals/components/PickersTextField/PickersTextField.types.d.ts +46 -3
- package/internals/components/PickersTextField/pickersTextFieldClasses.d.ts +0 -31
- package/internals/components/PickersTextField/pickersTextFieldClasses.js +3 -6
- 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 +11 -4
- 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/PickersSectionList/PickersSectionList.js +230 -0
- package/legacy/PickersSectionList/index.js +2 -0
- package/legacy/PickersSectionList/pickersSectionListClasses.js +6 -0
- 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 +4 -1
- package/legacy/internals/components/PickersArrowSwitcher/index.js +2 -1
- package/legacy/internals/components/{PickersTextField → PickersInput}/Outline.js +40 -22
- package/legacy/internals/components/PickersInput/PickersFilledInput.js +161 -0
- package/legacy/internals/components/{PickersTextField → PickersInput}/PickersInput.js +75 -90
- package/legacy/internals/components/PickersInput/PickersInput.types.js +1 -0
- package/legacy/internals/components/PickersInput/PickersOutlinedInput.js +110 -0
- package/legacy/internals/components/PickersInput/PickersStandardInput.js +117 -0
- package/legacy/internals/components/PickersInput/index.js +3 -0
- package/legacy/internals/components/PickersInput/pickersInputClasses.js +18 -0
- package/legacy/internals/components/PickersTextField/PickersTextField.js +16 -7
- package/legacy/internals/components/PickersTextField/pickersTextFieldClasses.js +3 -6
- package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
- package/legacy/internals/hooks/useField/useField.js +12 -5
- 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/legacy/locales/ruRU.js +1 -2
- package/locales/ruRU.js +1 -2
- 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/PickersSectionList/PickersSectionList.js +221 -0
- package/modern/PickersSectionList/PickersSectionList.types.js +1 -0
- package/modern/PickersSectionList/index.js +2 -0
- package/modern/PickersSectionList/pickersSectionListClasses.js +6 -0
- 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 +4 -1
- package/modern/internals/components/PickersArrowSwitcher/index.js +2 -1
- package/modern/internals/components/{PickersTextField → PickersInput}/Outline.js +35 -19
- package/modern/internals/components/PickersInput/PickersFilledInput.js +165 -0
- package/modern/internals/components/{PickersTextField → PickersInput}/PickersInput.js +78 -106
- package/modern/internals/components/PickersInput/PickersInput.types.js +1 -0
- package/modern/internals/components/PickersInput/PickersOutlinedInput.js +117 -0
- package/modern/internals/components/PickersInput/PickersStandardInput.js +123 -0
- package/modern/internals/components/PickersInput/index.js +3 -0
- package/modern/internals/components/PickersInput/pickersInputClasses.js +18 -0
- package/modern/internals/components/PickersTextField/PickersTextField.js +15 -6
- package/modern/internals/components/PickersTextField/pickersTextFieldClasses.js +3 -6
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
- package/modern/internals/hooks/useField/useField.js +11 -4
- 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/modern/locales/ruRU.js +1 -2
- 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/PickersSectionList/PickersSectionList.js +228 -0
- package/node/PickersSectionList/index.js +49 -0
- package/node/PickersSectionList/pickersSectionListClasses.js +14 -0
- 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 +13 -1
- package/node/internals/components/PickersArrowSwitcher/index.js +14 -1
- package/node/internals/components/{PickersTextField → PickersInput}/Outline.js +35 -19
- package/node/internals/components/PickersInput/PickersFilledInput.js +174 -0
- package/node/internals/components/{PickersTextField → PickersInput}/PickersInput.js +80 -108
- package/node/internals/components/PickersInput/PickersInput.types.js +5 -0
- package/node/internals/components/PickersInput/PickersOutlinedInput.js +125 -0
- package/node/internals/components/PickersInput/PickersStandardInput.js +132 -0
- package/node/internals/components/PickersInput/index.js +32 -0
- package/node/internals/components/PickersInput/pickersInputClasses.js +29 -0
- package/node/internals/components/PickersTextField/PickersTextField.js +15 -6
- package/node/internals/components/PickersTextField/pickersTextFieldClasses.js +6 -9
- package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
- package/node/internals/hooks/useField/useField.js +11 -4
- 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/node/locales/ruRU.js +1 -2
- package/package.json +5 -5
- package/themeAugmentation/overrides.d.ts +5 -7
- package/themeAugmentation/props.d.ts +6 -8
- package/internals/components/PickersTextField/PickersInput.d.ts +0 -3
- package/internals/components/PickersTextField/PickersInput.types.d.ts +0 -45
- /package/{internals/components/PickersTextField/PickersInput.types.js → PickersSectionList/PickersSectionList.types.js} +0 -0
- /package/{legacy/internals/components/PickersTextField → internals/components/PickersInput}/PickersInput.types.js +0 -0
- /package/{modern/internals/components/PickersTextField/PickersInput.types.js → legacy/PickersSectionList/PickersSectionList.types.js} +0 -0
- /package/node/{internals/components/PickersTextField/PickersInput.types.js → PickersSectionList/PickersSectionList.types.js} +0 -0
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["slots", "slotProps", "InputProps", "inputProps"]
|
|
4
|
-
_excluded2 = ["inputRef"],
|
|
5
|
-
_excluded3 = ["ref", "onPaste", "onKeyDown", "inputMode", "readOnly", "clearable", "onClear"];
|
|
3
|
+
var _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 { useDateField } from './useDateField';
|
|
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
|
* - [DateField API](https://mui.com/x/api/date-pickers/date-field/)
|
|
24
23
|
*/
|
|
25
|
-
var DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps,
|
|
24
|
+
var DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, inRef) {
|
|
26
25
|
var _slots$textField;
|
|
27
26
|
var themeProps = useThemeProps({
|
|
28
27
|
props: inProps,
|
|
@@ -35,53 +34,26 @@ var DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, ref) {
|
|
|
35
34
|
other = _objectWithoutProperties(themeProps, _excluded);
|
|
36
35
|
var ownerState = themeProps;
|
|
37
36
|
var TextField = (_slots$textField = slots == null ? void 0 : slots.textField) != null ? _slots$textField : MuiTextField;
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
37
|
+
var textFieldProps = useSlotProps({
|
|
38
|
+
elementType: TextField,
|
|
39
|
+
externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
|
|
40
|
+
externalForwardedProps: other,
|
|
41
|
+
additionalProps: {
|
|
42
|
+
ref: inRef
|
|
43
|
+
},
|
|
44
|
+
ownerState: ownerState
|
|
45
|
+
});
|
|
46
46
|
|
|
47
47
|
// TODO: Remove when mui/material-ui#35088 will be merged
|
|
48
48
|
textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
|
|
49
49
|
textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
|
|
50
|
-
var
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
onPaste = _useDateField.onPaste,
|
|
56
|
-
onKeyDown = _useDateField.onKeyDown,
|
|
57
|
-
inputMode = _useDateField.inputMode,
|
|
58
|
-
readOnly = _useDateField.readOnly,
|
|
59
|
-
clearable = _useDateField.clearable,
|
|
60
|
-
onClear = _useDateField.onClear,
|
|
61
|
-
fieldProps = _objectWithoutProperties(_useDateField, _excluded3);
|
|
62
|
-
var _useClearableField = useClearableField({
|
|
63
|
-
onClear: onClear,
|
|
64
|
-
clearable: clearable,
|
|
65
|
-
fieldProps: fieldProps,
|
|
66
|
-
InputProps: fieldProps.InputProps,
|
|
67
|
-
slots: slots,
|
|
68
|
-
slotProps: slotProps
|
|
69
|
-
}),
|
|
70
|
-
ProcessedInputProps = _useClearableField.InputProps,
|
|
71
|
-
processedFieldProps = _useClearableField.fieldProps;
|
|
72
|
-
return /*#__PURE__*/_jsx(TextField, _extends({
|
|
73
|
-
ref: ref
|
|
74
|
-
}, processedFieldProps, {
|
|
75
|
-
InputProps: _extends({}, ProcessedInputProps, {
|
|
76
|
-
readOnly: readOnly
|
|
77
|
-
}),
|
|
78
|
-
inputProps: _extends({}, fieldProps.inputProps, {
|
|
79
|
-
inputMode: inputMode,
|
|
80
|
-
onPaste: onPaste,
|
|
81
|
-
onKeyDown: onKeyDown,
|
|
82
|
-
ref: inputRef
|
|
83
|
-
})
|
|
50
|
+
var fieldResponse = useDateField(textFieldProps);
|
|
51
|
+
var convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
|
|
52
|
+
var processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
|
|
53
|
+
slots: slots,
|
|
54
|
+
slotProps: slotProps
|
|
84
55
|
}));
|
|
56
|
+
return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
|
|
85
57
|
});
|
|
86
58
|
process.env.NODE_ENV !== "production" ? DateField.propTypes = {
|
|
87
59
|
// ----------------------------- Warning --------------------------------
|
|
@@ -259,7 +231,7 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
|
|
|
259
231
|
* 4. If `null` is provided, no section will be selected
|
|
260
232
|
* If not provided, the selected sections will be handled internally.
|
|
261
233
|
*/
|
|
262
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
234
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
263
235
|
endIndex: PropTypes.number.isRequired,
|
|
264
236
|
startIndex: PropTypes.number.isRequired
|
|
265
237
|
})]),
|
|
@@ -17,15 +17,12 @@ var useDefaultizedDateField = function useDefaultizedDateField(props) {
|
|
|
17
17
|
maxDate: applyDefaultDate(utils, props.maxDate, defaultDates.maxDate)
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
|
-
export var useDateField = function useDateField(
|
|
21
|
-
var inProps = _ref.props,
|
|
22
|
-
inputRef = _ref.inputRef;
|
|
20
|
+
export var useDateField = function useDateField(inProps) {
|
|
23
21
|
var props = useDefaultizedDateField(inProps);
|
|
24
22
|
var _splitFieldInternalAn = splitFieldInternalAndForwardedProps(props, 'date'),
|
|
25
23
|
forwardedProps = _splitFieldInternalAn.forwardedProps,
|
|
26
24
|
internalProps = _splitFieldInternalAn.internalProps;
|
|
27
25
|
return useField({
|
|
28
|
-
inputRef: inputRef,
|
|
29
26
|
forwardedProps: forwardedProps,
|
|
30
27
|
internalProps: internalProps,
|
|
31
28
|
valueManager: singleItemValueManager,
|
|
@@ -159,6 +159,10 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
|
|
|
159
159
|
* @default 3
|
|
160
160
|
*/
|
|
161
161
|
monthsPerRow: PropTypes.oneOf([3, 4]),
|
|
162
|
+
/**
|
|
163
|
+
* Name attribute used by the `input` element in the Field.
|
|
164
|
+
*/
|
|
165
|
+
name: PropTypes.string,
|
|
162
166
|
/**
|
|
163
167
|
* Callback fired when the value is accepted.
|
|
164
168
|
* @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.
|
|
@@ -257,7 +261,7 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
|
|
|
257
261
|
* 4. If `null` is provided, no section will be selected
|
|
258
262
|
* If not provided, the selected sections will be handled internally.
|
|
259
263
|
*/
|
|
260
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
264
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
261
265
|
endIndex: PropTypes.number.isRequired,
|
|
262
266
|
startIndex: PropTypes.number.isRequired
|
|
263
267
|
})]),
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["slots", "slotProps", "InputProps", "inputProps"]
|
|
4
|
-
_excluded2 = ["inputRef"],
|
|
5
|
-
_excluded3 = ["ref", "onPaste", "onKeyDown", "inputMode", "readOnly", "clearable", "onClear"];
|
|
3
|
+
var _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
|
-
var DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps,
|
|
24
|
+
var DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps, inRef) {
|
|
26
25
|
var _slots$textField;
|
|
27
26
|
var themeProps = useThemeProps({
|
|
28
27
|
props: inProps,
|
|
@@ -35,53 +34,26 @@ var DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps
|
|
|
35
34
|
other = _objectWithoutProperties(themeProps, _excluded);
|
|
36
35
|
var ownerState = themeProps;
|
|
37
36
|
var TextField = (_slots$textField = slots == null ? void 0 : slots.textField) != null ? _slots$textField : MuiTextField;
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
37
|
+
var textFieldProps = useSlotProps({
|
|
38
|
+
elementType: TextField,
|
|
39
|
+
externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
|
|
40
|
+
externalForwardedProps: other,
|
|
41
|
+
ownerState: ownerState,
|
|
42
|
+
additionalProps: {
|
|
43
|
+
ref: inRef
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
46
|
|
|
47
47
|
// TODO: Remove when mui/material-ui#35088 will be merged
|
|
48
48
|
textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
|
|
49
49
|
textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
|
|
50
|
-
var
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
onPaste = _useDateTimeField.onPaste,
|
|
56
|
-
onKeyDown = _useDateTimeField.onKeyDown,
|
|
57
|
-
inputMode = _useDateTimeField.inputMode,
|
|
58
|
-
readOnly = _useDateTimeField.readOnly,
|
|
59
|
-
clearable = _useDateTimeField.clearable,
|
|
60
|
-
onClear = _useDateTimeField.onClear,
|
|
61
|
-
fieldProps = _objectWithoutProperties(_useDateTimeField, _excluded3);
|
|
62
|
-
var _useClearableField = useClearableField({
|
|
63
|
-
onClear: onClear,
|
|
64
|
-
clearable: clearable,
|
|
65
|
-
fieldProps: fieldProps,
|
|
66
|
-
InputProps: fieldProps.InputProps,
|
|
67
|
-
slots: slots,
|
|
68
|
-
slotProps: slotProps
|
|
69
|
-
}),
|
|
70
|
-
ProcessedInputProps = _useClearableField.InputProps,
|
|
71
|
-
processedFieldProps = _useClearableField.fieldProps;
|
|
72
|
-
return /*#__PURE__*/_jsx(TextField, _extends({
|
|
73
|
-
ref: ref
|
|
74
|
-
}, processedFieldProps, {
|
|
75
|
-
InputProps: _extends({}, ProcessedInputProps, {
|
|
76
|
-
readOnly: readOnly
|
|
77
|
-
}),
|
|
78
|
-
inputProps: _extends({}, fieldProps.inputProps, {
|
|
79
|
-
inputMode: inputMode,
|
|
80
|
-
onPaste: onPaste,
|
|
81
|
-
onKeyDown: onKeyDown,
|
|
82
|
-
ref: inputRef
|
|
83
|
-
})
|
|
50
|
+
var fieldResponse = useDateTimeField(textFieldProps);
|
|
51
|
+
var convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
|
|
52
|
+
var processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
|
|
53
|
+
slots: slots,
|
|
54
|
+
slotProps: slotProps
|
|
84
55
|
}));
|
|
56
|
+
return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
|
|
85
57
|
});
|
|
86
58
|
process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
|
|
87
59
|
// ----------------------------- Warning --------------------------------
|
|
@@ -292,7 +264,7 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
|
|
|
292
264
|
* 4. If `null` is provided, no section will be selected
|
|
293
265
|
* If not provided, the selected sections will be handled internally.
|
|
294
266
|
*/
|
|
295
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
267
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
296
268
|
endIndex: PropTypes.number.isRequired,
|
|
297
269
|
startIndex: PropTypes.number.isRequired
|
|
298
270
|
})]),
|
|
@@ -22,15 +22,12 @@ var useDefaultizedDateTimeField = function useDefaultizedDateTimeField(props) {
|
|
|
22
22
|
maxTime: (_props$maxDateTime2 = props.maxDateTime) != null ? _props$maxDateTime2 : props.maxTime
|
|
23
23
|
});
|
|
24
24
|
};
|
|
25
|
-
export var useDateTimeField = function useDateTimeField(
|
|
26
|
-
var inProps = _ref.props,
|
|
27
|
-
inputRef = _ref.inputRef;
|
|
25
|
+
export var useDateTimeField = function useDateTimeField(inProps) {
|
|
28
26
|
var props = useDefaultizedDateTimeField(inProps);
|
|
29
27
|
var _splitFieldInternalAn = splitFieldInternalAndForwardedProps(props, 'date-time'),
|
|
30
28
|
forwardedProps = _splitFieldInternalAn.forwardedProps,
|
|
31
29
|
internalProps = _splitFieldInternalAn.internalProps;
|
|
32
30
|
return useField({
|
|
33
|
-
inputRef: inputRef,
|
|
34
31
|
forwardedProps: forwardedProps,
|
|
35
32
|
internalProps: internalProps,
|
|
36
33
|
valueManager: singleItemValueManager,
|
|
@@ -197,6 +197,10 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
|
|
|
197
197
|
* @default 3
|
|
198
198
|
*/
|
|
199
199
|
monthsPerRow: PropTypes.oneOf([3, 4]),
|
|
200
|
+
/**
|
|
201
|
+
* Name attribute used by the `input` element in the Field.
|
|
202
|
+
*/
|
|
203
|
+
name: PropTypes.string,
|
|
200
204
|
/**
|
|
201
205
|
* Callback fired when the value is accepted.
|
|
202
206
|
* @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.
|
|
@@ -295,7 +299,7 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
|
|
|
295
299
|
* 4. If `null` is provided, no section will be selected
|
|
296
300
|
* If not provided, the selected sections will be handled internally.
|
|
297
301
|
*/
|
|
298
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
302
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
299
303
|
endIndex: PropTypes.number.isRequired,
|
|
300
304
|
startIndex: PropTypes.number.isRequired
|
|
301
305
|
})]),
|
|
@@ -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';
|
|
@@ -177,6 +178,10 @@ DesktopDatePicker.propTypes = {
|
|
|
177
178
|
* @default 3
|
|
178
179
|
*/
|
|
179
180
|
monthsPerRow: PropTypes.oneOf([3, 4]),
|
|
181
|
+
/**
|
|
182
|
+
* Name attribute used by the `input` element in the Field.
|
|
183
|
+
*/
|
|
184
|
+
name: PropTypes.string,
|
|
180
185
|
/**
|
|
181
186
|
* Callback fired when the value is accepted.
|
|
182
187
|
* @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.
|
|
@@ -275,7 +280,7 @@ DesktopDatePicker.propTypes = {
|
|
|
275
280
|
* 4. If `null` is provided, no section will be selected
|
|
276
281
|
* If not provided, the selected sections will be handled internally.
|
|
277
282
|
*/
|
|
278
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
283
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
279
284
|
endIndex: PropTypes.number.isRequired,
|
|
280
285
|
startIndex: PropTypes.number.isRequired
|
|
281
286
|
})]),
|
|
@@ -253,6 +253,10 @@ DesktopDateTimePicker.propTypes = {
|
|
|
253
253
|
* @default 3
|
|
254
254
|
*/
|
|
255
255
|
monthsPerRow: PropTypes.oneOf([3, 4]),
|
|
256
|
+
/**
|
|
257
|
+
* Name attribute used by the `input` element in the Field.
|
|
258
|
+
*/
|
|
259
|
+
name: PropTypes.string,
|
|
256
260
|
/**
|
|
257
261
|
* Callback fired when the value is accepted.
|
|
258
262
|
* @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.
|
|
@@ -351,7 +355,7 @@ DesktopDateTimePicker.propTypes = {
|
|
|
351
355
|
* 4. If `null` is provided, no section will be selected
|
|
352
356
|
* If not provided, the selected sections will be handled internally.
|
|
353
357
|
*/
|
|
354
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
358
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
355
359
|
endIndex: PropTypes.number.isRequired,
|
|
356
360
|
startIndex: PropTypes.number.isRequired
|
|
357
361
|
})]),
|
|
@@ -189,6 +189,10 @@ DesktopTimePicker.propTypes = {
|
|
|
189
189
|
* @default 1
|
|
190
190
|
*/
|
|
191
191
|
minutesStep: PropTypes.number,
|
|
192
|
+
/**
|
|
193
|
+
* Name attribute used by the `input` element in the Field.
|
|
194
|
+
*/
|
|
195
|
+
name: PropTypes.string,
|
|
192
196
|
/**
|
|
193
197
|
* Callback fired when the value is accepted.
|
|
194
198
|
* @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 +273,7 @@ DesktopTimePicker.propTypes = {
|
|
|
269
273
|
* 4. If `null` is provided, no section will be selected
|
|
270
274
|
* If not provided, the selected sections will be handled internally.
|
|
271
275
|
*/
|
|
272
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
276
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
273
277
|
endIndex: PropTypes.number.isRequired,
|
|
274
278
|
startIndex: PropTypes.number.isRequired
|
|
275
279
|
})]),
|
|
@@ -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';
|
|
@@ -174,6 +175,10 @@ MobileDatePicker.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 @@ MobileDatePicker.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
|
})]),
|
|
@@ -223,6 +223,10 @@ MobileDateTimePicker.propTypes = {
|
|
|
223
223
|
* @default 3
|
|
224
224
|
*/
|
|
225
225
|
monthsPerRow: PropTypes.oneOf([3, 4]),
|
|
226
|
+
/**
|
|
227
|
+
* Name attribute used by the `input` element in the Field.
|
|
228
|
+
*/
|
|
229
|
+
name: PropTypes.string,
|
|
226
230
|
/**
|
|
227
231
|
* Callback fired when the value is accepted.
|
|
228
232
|
* @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.
|
|
@@ -321,7 +325,7 @@ MobileDateTimePicker.propTypes = {
|
|
|
321
325
|
* 4. If `null` is provided, no section will be selected
|
|
322
326
|
* If not provided, the selected sections will be handled internally.
|
|
323
327
|
*/
|
|
324
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
328
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
325
329
|
endIndex: PropTypes.number.isRequired,
|
|
326
330
|
startIndex: PropTypes.number.isRequired
|
|
327
331
|
})]),
|
|
@@ -167,6 +167,10 @@ MobileTimePicker.propTypes = {
|
|
|
167
167
|
* @default 1
|
|
168
168
|
*/
|
|
169
169
|
minutesStep: PropTypes.number,
|
|
170
|
+
/**
|
|
171
|
+
* Name attribute used by the `input` element in the Field.
|
|
172
|
+
*/
|
|
173
|
+
name: PropTypes.string,
|
|
170
174
|
/**
|
|
171
175
|
* Callback fired when the value is accepted.
|
|
172
176
|
* @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.
|
|
@@ -247,7 +251,7 @@ MobileTimePicker.propTypes = {
|
|
|
247
251
|
* 4. If `null` is provided, no section will be selected
|
|
248
252
|
* If not provided, the selected sections will be handled internally.
|
|
249
253
|
*/
|
|
250
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
254
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
|
|
251
255
|
endIndex: PropTypes.number.isRequired,
|
|
252
256
|
startIndex: PropTypes.number.isRequired
|
|
253
257
|
})]),
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
var _excluded = ["slots", "slotProps", "elements", "sectionListRef"];
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import styled from '@mui/system/styled';
|
|
6
|
+
import PropTypes from 'prop-types';
|
|
7
|
+
import { useSlotProps } from '@mui/base/utils';
|
|
8
|
+
import composeClasses from '@mui/utils/composeClasses';
|
|
9
|
+
import useForkRef from '@mui/utils/useForkRef';
|
|
10
|
+
import { getPickersSectionListUtilityClass, pickersSectionListClasses } from './pickersSectionListClasses';
|
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
export var PickersSectionListRoot = styled('div', {
|
|
14
|
+
name: 'MuiPickersSectionList',
|
|
15
|
+
slot: 'Root',
|
|
16
|
+
overridesResolver: function overridesResolver(props, styles) {
|
|
17
|
+
return styles.root;
|
|
18
|
+
}
|
|
19
|
+
})({
|
|
20
|
+
direction: 'ltr /*! @noflip */',
|
|
21
|
+
outline: 'none'
|
|
22
|
+
});
|
|
23
|
+
export var PickersSectionListSection = styled('span', {
|
|
24
|
+
name: 'MuiPickersSectionList',
|
|
25
|
+
slot: 'Section',
|
|
26
|
+
overridesResolver: function overridesResolver(props, styles) {
|
|
27
|
+
return styles.section;
|
|
28
|
+
}
|
|
29
|
+
})({});
|
|
30
|
+
export var PickersSectionListSectionSeparator = styled('span', {
|
|
31
|
+
name: 'MuiPickersSectionList',
|
|
32
|
+
slot: 'SectionSeparator',
|
|
33
|
+
overridesResolver: function overridesResolver(props, styles) {
|
|
34
|
+
return styles.sectionSeparator;
|
|
35
|
+
}
|
|
36
|
+
})({
|
|
37
|
+
whiteSpace: 'pre'
|
|
38
|
+
});
|
|
39
|
+
export var PickersSectionListSectionContent = styled('span', {
|
|
40
|
+
name: 'MuiPickersSectionList',
|
|
41
|
+
slot: 'SectionContent',
|
|
42
|
+
overridesResolver: function overridesResolver(props, styles) {
|
|
43
|
+
return styles.sectionContent;
|
|
44
|
+
}
|
|
45
|
+
})({
|
|
46
|
+
outline: 'none'
|
|
47
|
+
});
|
|
48
|
+
var useUtilityClasses = function useUtilityClasses(ownerState) {
|
|
49
|
+
var classes = ownerState.classes;
|
|
50
|
+
var slots = {
|
|
51
|
+
root: ['root'],
|
|
52
|
+
section: ['section'],
|
|
53
|
+
sectionContent: ['sectionContent']
|
|
54
|
+
};
|
|
55
|
+
return composeClasses(slots, getPickersSectionListUtilityClass, classes);
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Demos:
|
|
59
|
+
*
|
|
60
|
+
* - [Custom field](https://mui.com/x/react-date-pickers/custom-field/)
|
|
61
|
+
*
|
|
62
|
+
* API:
|
|
63
|
+
*
|
|
64
|
+
* - [PickersSectionList API](https://mui.com/x/api/date-pickers/pickers-section-list/)
|
|
65
|
+
*/
|
|
66
|
+
function PickersSection(props) {
|
|
67
|
+
var _slots$section, _slots$sectionContent, _slots$sectionSeparat;
|
|
68
|
+
var slots = props.slots,
|
|
69
|
+
slotProps = props.slotProps,
|
|
70
|
+
element = props.element,
|
|
71
|
+
classes = props.classes;
|
|
72
|
+
var Section = (_slots$section = slots == null ? void 0 : slots.section) != null ? _slots$section : PickersSectionListSection;
|
|
73
|
+
var sectionProps = useSlotProps({
|
|
74
|
+
elementType: Section,
|
|
75
|
+
externalSlotProps: slotProps == null ? void 0 : slotProps.section,
|
|
76
|
+
externalForwardedProps: element.container,
|
|
77
|
+
className: classes.section,
|
|
78
|
+
ownerState: {}
|
|
79
|
+
});
|
|
80
|
+
var SectionContent = (_slots$sectionContent = slots == null ? void 0 : slots.sectionContent) != null ? _slots$sectionContent : PickersSectionListSectionContent;
|
|
81
|
+
var sectionContentProps = useSlotProps({
|
|
82
|
+
elementType: SectionContent,
|
|
83
|
+
externalSlotProps: slotProps == null ? void 0 : slotProps.sectionContent,
|
|
84
|
+
externalForwardedProps: element.content,
|
|
85
|
+
additionalProps: {
|
|
86
|
+
suppressContentEditableWarning: true
|
|
87
|
+
},
|
|
88
|
+
className: classes.sectionContent,
|
|
89
|
+
ownerState: {}
|
|
90
|
+
});
|
|
91
|
+
var SectionSeparator = (_slots$sectionSeparat = slots == null ? void 0 : slots.sectionSeparator) != null ? _slots$sectionSeparat : PickersSectionListSectionSeparator;
|
|
92
|
+
var sectionSeparatorBeforeProps = useSlotProps({
|
|
93
|
+
elementType: SectionSeparator,
|
|
94
|
+
externalSlotProps: slotProps == null ? void 0 : slotProps.sectionSeparator,
|
|
95
|
+
externalForwardedProps: element.before,
|
|
96
|
+
ownerState: {
|
|
97
|
+
position: 'before'
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
var sectionSeparatorAfterProps = useSlotProps({
|
|
101
|
+
elementType: SectionSeparator,
|
|
102
|
+
externalSlotProps: slotProps == null ? void 0 : slotProps.sectionSeparator,
|
|
103
|
+
externalForwardedProps: element.after,
|
|
104
|
+
ownerState: {
|
|
105
|
+
position: 'after'
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
return /*#__PURE__*/_jsxs(Section, _extends({}, sectionProps, {
|
|
109
|
+
children: [/*#__PURE__*/_jsx(SectionSeparator, _extends({}, sectionSeparatorBeforeProps)), /*#__PURE__*/_jsx(SectionContent, _extends({}, sectionContentProps)), /*#__PURE__*/_jsx(SectionSeparator, _extends({}, sectionSeparatorAfterProps))]
|
|
110
|
+
}));
|
|
111
|
+
}
|
|
112
|
+
var PickersSectionList = /*#__PURE__*/React.forwardRef(function PickersSectionList(props, ref) {
|
|
113
|
+
var _slots$root;
|
|
114
|
+
var slots = props.slots,
|
|
115
|
+
slotProps = props.slotProps,
|
|
116
|
+
elements = props.elements,
|
|
117
|
+
sectionListRef = props.sectionListRef,
|
|
118
|
+
other = _objectWithoutProperties(props, _excluded);
|
|
119
|
+
var classes = useUtilityClasses(props);
|
|
120
|
+
var rootRef = React.useRef(null);
|
|
121
|
+
var handleRootRef = useForkRef(ref, rootRef);
|
|
122
|
+
var _getRoot = function getRoot(methodName) {
|
|
123
|
+
if (!rootRef.current) {
|
|
124
|
+
throw new Error("MUI: Cannot call sectionListRef.".concat(methodName, " before the mount of the component"));
|
|
125
|
+
}
|
|
126
|
+
return rootRef.current;
|
|
127
|
+
};
|
|
128
|
+
React.useImperativeHandle(sectionListRef, function () {
|
|
129
|
+
return {
|
|
130
|
+
getRoot: function getRoot() {
|
|
131
|
+
return _getRoot('getRoot');
|
|
132
|
+
},
|
|
133
|
+
getSectionContainer: function getSectionContainer(index) {
|
|
134
|
+
var root = _getRoot('getSectionContainer');
|
|
135
|
+
return root.querySelector(".".concat(pickersSectionListClasses.section, "[data-sectionindex=\"").concat(index, "\"]"));
|
|
136
|
+
},
|
|
137
|
+
getSectionContent: function getSectionContent(index) {
|
|
138
|
+
var root = _getRoot('getSectionContent');
|
|
139
|
+
return root.querySelector(".".concat(pickersSectionListClasses.section, "[data-sectionindex=\"").concat(index, "\"] .").concat(pickersSectionListClasses.sectionContent));
|
|
140
|
+
},
|
|
141
|
+
getSectionIndexFromDOMElement: function getSectionIndexFromDOMElement(element) {
|
|
142
|
+
var root = _getRoot('getSectionIndexFromDOMElement');
|
|
143
|
+
if (element == null || !root.contains(element)) {
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
var sectionContainer = null;
|
|
147
|
+
if (element.classList.contains(pickersSectionListClasses.section)) {
|
|
148
|
+
sectionContainer = element;
|
|
149
|
+
} else if (element.classList.contains(pickersSectionListClasses.sectionContent)) {
|
|
150
|
+
sectionContainer = element.parentElement;
|
|
151
|
+
}
|
|
152
|
+
if (sectionContainer == null) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
return Number(sectionContainer.dataset.sectionindex);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
});
|
|
159
|
+
var Root = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : PickersSectionListRoot;
|
|
160
|
+
var rootProps = useSlotProps({
|
|
161
|
+
elementType: Root,
|
|
162
|
+
externalSlotProps: slotProps == null ? void 0 : slotProps.root,
|
|
163
|
+
externalForwardedProps: other,
|
|
164
|
+
additionalProps: {
|
|
165
|
+
ref: handleRootRef,
|
|
166
|
+
suppressContentEditableWarning: true
|
|
167
|
+
},
|
|
168
|
+
className: classes.root,
|
|
169
|
+
ownerState: {}
|
|
170
|
+
});
|
|
171
|
+
return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {
|
|
172
|
+
children: rootProps.contentEditable ? elements.map(function (_ref) {
|
|
173
|
+
var content = _ref.content,
|
|
174
|
+
before = _ref.before,
|
|
175
|
+
after = _ref.after;
|
|
176
|
+
return "".concat(before.children).concat(content.children).concat(after.children);
|
|
177
|
+
}).join('') : /*#__PURE__*/_jsx(React.Fragment, {
|
|
178
|
+
children: elements.map(function (element, elementIndex) {
|
|
179
|
+
return /*#__PURE__*/_jsx(PickersSection, {
|
|
180
|
+
slots: slots,
|
|
181
|
+
slotProps: slotProps,
|
|
182
|
+
element: element,
|
|
183
|
+
classes: classes
|
|
184
|
+
}, elementIndex);
|
|
185
|
+
})
|
|
186
|
+
})
|
|
187
|
+
}));
|
|
188
|
+
});
|
|
189
|
+
process.env.NODE_ENV !== "production" ? PickersSectionList.propTypes = {
|
|
190
|
+
// ----------------------------- Warning --------------------------------
|
|
191
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
192
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
193
|
+
// ----------------------------------------------------------------------
|
|
194
|
+
/**
|
|
195
|
+
* Override or extend the styles applied to the component.
|
|
196
|
+
*/
|
|
197
|
+
classes: PropTypes.object,
|
|
198
|
+
/**
|
|
199
|
+
* If true, the whole element is editable.
|
|
200
|
+
* Useful when all the sections are selected.
|
|
201
|
+
*/
|
|
202
|
+
contentEditable: PropTypes.bool.isRequired,
|
|
203
|
+
/**
|
|
204
|
+
* The elements to render.
|
|
205
|
+
* Each element contains the prop to edit a section of the value.
|
|
206
|
+
*/
|
|
207
|
+
elements: PropTypes.arrayOf(PropTypes.shape({
|
|
208
|
+
after: PropTypes.object.isRequired,
|
|
209
|
+
before: PropTypes.object.isRequired,
|
|
210
|
+
container: PropTypes.object.isRequired,
|
|
211
|
+
content: PropTypes.object.isRequired
|
|
212
|
+
})).isRequired,
|
|
213
|
+
sectionListRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
|
|
214
|
+
current: PropTypes.shape({
|
|
215
|
+
getRoot: PropTypes.func.isRequired,
|
|
216
|
+
getSectionContainer: PropTypes.func.isRequired,
|
|
217
|
+
getSectionContent: PropTypes.func.isRequired,
|
|
218
|
+
getSectionIndexFromDOMElement: PropTypes.func.isRequired
|
|
219
|
+
})
|
|
220
|
+
})]),
|
|
221
|
+
/**
|
|
222
|
+
* The props used for each component slot.
|
|
223
|
+
*/
|
|
224
|
+
slotProps: PropTypes.object,
|
|
225
|
+
/**
|
|
226
|
+
* Overridable component slots.
|
|
227
|
+
*/
|
|
228
|
+
slots: PropTypes.object
|
|
229
|
+
} : void 0;
|
|
230
|
+
export { PickersSectionList };
|