@mui/x-date-pickers 7.0.0-beta.7 → 7.1.0
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/AdapterDateFns/AdapterDateFns.js +1 -1
- package/AdapterDateFnsBase/AdapterDateFnsBase.js +1 -2
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +2 -4
- package/AdapterDateFnsV3/AdapterDateFnsV3.js +1 -1
- package/AdapterDayjs/AdapterDayjs.js +2 -4
- package/AdapterLuxon/AdapterLuxon.js +12 -9
- package/AdapterMoment/AdapterMoment.js +5 -6
- package/CHANGELOG.md +266 -12
- package/DateCalendar/DateCalendar.js +14 -16
- package/DateCalendar/DayCalendar.js +5 -6
- package/DateField/DateField.js +3 -4
- package/DatePicker/DatePicker.js +1 -1
- package/DatePicker/DatePickerToolbar.js +11 -6
- package/DatePicker/shared.d.ts +2 -1
- package/DatePicker/shared.js +3 -5
- package/DateTimeField/DateTimeField.js +3 -4
- package/DateTimePicker/DateTimePicker.js +1 -1
- package/DateTimePicker/DateTimePickerToolbar.js +98 -46
- package/DateTimePicker/shared.d.ts +2 -1
- package/DateTimePicker/shared.js +11 -13
- package/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
- package/DesktopDatePicker/DesktopDatePicker.js +7 -11
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +72 -37
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +12 -0
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +101 -0
- package/DesktopDateTimePicker/index.d.ts +1 -0
- package/DesktopDateTimePicker/index.js +2 -1
- package/DesktopTimePicker/DesktopTimePicker.js +8 -12
- package/DigitalClock/DigitalClock.js +16 -9
- package/LocalizationProvider/LocalizationProvider.js +1 -2
- package/MobileDatePicker/MobileDatePicker.js +6 -10
- package/MobileDateTimePicker/MobileDateTimePicker.js +8 -12
- package/MobileTimePicker/MobileTimePicker.js +6 -10
- package/MonthCalendar/MonthCalendar.js +4 -4
- package/MonthCalendar/PickersMonth.js +13 -8
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +16 -9
- package/PickersActionBar/PickersActionBar.js +1 -1
- package/PickersCalendarHeader/PickersCalendarHeader.js +17 -14
- package/PickersDay/PickersDay.js +30 -15
- package/PickersLayout/PickersLayout.js +31 -17
- package/PickersLayout/usePickerLayout.js +8 -9
- package/PickersSectionList/PickersSectionList.js +9 -11
- package/PickersTextField/PickersFilledInput/PickersFilledInput.js +138 -74
- package/PickersTextField/PickersInput/PickersInput.js +77 -55
- package/PickersTextField/PickersInputBase/PickersInputBase.js +67 -28
- package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +7 -0
- package/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
- package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +33 -14
- package/README.md +1 -1
- package/StaticDatePicker/StaticDatePicker.js +4 -5
- package/StaticDateTimePicker/StaticDateTimePicker.js +6 -7
- package/StaticTimePicker/StaticTimePicker.js +3 -4
- package/TimeClock/Clock.js +48 -35
- package/TimeClock/ClockNumber.js +12 -7
- package/TimeClock/ClockPointer.js +23 -13
- package/TimeClock/TimeClock.js +1 -1
- package/TimeField/TimeField.js +2 -3
- package/TimePicker/TimePickerToolbar.js +25 -16
- package/TimePicker/shared.d.ts +2 -1
- package/TimePicker/shared.js +5 -7
- package/YearCalendar/PickersYear.js +12 -6
- package/YearCalendar/YearCalendar.js +5 -6
- package/hooks/useClearableField.js +6 -7
- package/index.js +1 -1
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +19 -15
- package/internals/components/PickersModalDialog.js +6 -7
- package/internals/components/PickersPopper.js +25 -24
- package/internals/components/PickersToolbar.js +42 -24
- package/internals/hooks/date-helpers-hooks.js +1 -1
- package/internals/hooks/defaultizedFieldProps.js +15 -18
- package/internals/hooks/useClockReferenceDate.js +1 -1
- package/internals/hooks/useDesktopPicker/index.d.ts +1 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +11 -12
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +2 -2
- package/internals/hooks/useField/buildSectionsFromFormat.js +35 -31
- package/internals/hooks/useField/useField.js +6 -4
- package/internals/hooks/useField/useField.types.d.ts +1 -0
- package/internals/hooks/useField/useField.utils.js +4 -7
- package/internals/hooks/useField/useFieldCharacterEditing.js +1 -2
- package/internals/hooks/useField/useFieldState.js +1 -1
- package/internals/hooks/useField/useFieldV6TextField.js +17 -18
- package/internals/hooks/useField/useFieldV7TextField.js +9 -11
- package/internals/hooks/useMobilePicker/useMobilePicker.js +7 -8
- package/internals/hooks/useOpenState.js +1 -1
- package/internals/hooks/usePicker/index.d.ts +1 -0
- package/internals/hooks/usePicker/usePickerViews.d.ts +4 -2
- package/internals/hooks/usePicker/usePickerViews.js +1 -2
- package/internals/hooks/useStaticPicker/useStaticPicker.js +13 -17
- package/internals/hooks/useValueWithTimezone.js +5 -6
- package/internals/hooks/useViews.js +3 -4
- package/internals/index.d.ts +1 -1
- package/internals/models/validation.d.ts +1 -1
- package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +3 -3
- package/internals/utils/date-time-utils.js +2 -5
- package/internals/utils/fields.js +1 -1
- package/internals/utils/getDefaultReferenceDate.js +2 -6
- package/internals/utils/views.js +1 -1
- package/locales/csCZ.js +1 -4
- package/locales/daDK.js +1 -4
- package/locales/deDE.js +1 -4
- package/locales/huHU.js +1 -4
- package/locales/itIT.js +16 -20
- package/locales/jaJP.js +1 -4
- package/locales/roRO.js +1 -4
- package/locales/skSK.js +1 -4
- package/locales/zhHK.js +14 -17
- package/modern/AdapterLuxon/AdapterLuxon.js +9 -4
- package/modern/DateCalendar/DateCalendar.js +1 -1
- package/modern/DateField/DateField.js +1 -1
- package/modern/DatePicker/DatePicker.js +1 -1
- package/modern/DatePicker/DatePickerToolbar.js +11 -6
- package/modern/DateTimeField/DateTimeField.js +1 -1
- package/modern/DateTimePicker/DateTimePicker.js +1 -1
- package/modern/DateTimePicker/DateTimePickerToolbar.js +97 -45
- package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
- package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -1
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +64 -25
- package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +101 -0
- package/modern/DesktopDateTimePicker/index.js +2 -1
- package/modern/DigitalClock/DigitalClock.js +14 -6
- package/modern/MobileDatePicker/MobileDatePicker.js +1 -1
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
- package/modern/MonthCalendar/PickersMonth.js +12 -6
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -4
- package/modern/PickersCalendarHeader/PickersCalendarHeader.js +13 -9
- package/modern/PickersDay/PickersDay.js +30 -15
- package/modern/PickersLayout/PickersLayout.js +31 -17
- package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +137 -72
- package/modern/PickersTextField/PickersInput/PickersInput.js +76 -54
- package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +64 -24
- package/modern/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
- package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +31 -12
- package/modern/StaticDatePicker/StaticDatePicker.js +1 -1
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
- package/modern/TimeClock/Clock.js +48 -35
- package/modern/TimeClock/ClockNumber.js +12 -7
- package/modern/TimeClock/ClockPointer.js +23 -13
- package/modern/TimePicker/TimePickerToolbar.js +25 -16
- package/modern/YearCalendar/PickersYear.js +12 -6
- package/modern/index.js +1 -1
- package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -6
- package/modern/internals/components/PickersPopper.js +13 -9
- package/modern/internals/components/PickersToolbar.js +39 -18
- package/modern/internals/hooks/useField/buildSectionsFromFormat.js +34 -30
- package/modern/internals/hooks/useField/useField.js +4 -2
- package/modern/internals/hooks/useField/useFieldV6TextField.js +8 -3
- package/modern/internals/hooks/useField/useFieldV7TextField.js +1 -1
- package/modern/internals/hooks/useOpenState.js +1 -1
- package/modern/internals/utils/fields.js +1 -1
- package/modern/locales/itIT.js +16 -20
- package/modern/locales/zhHK.js +14 -17
- package/node/AdapterLuxon/AdapterLuxon.js +9 -4
- package/node/DateCalendar/DateCalendar.js +1 -1
- package/node/DateField/DateField.js +1 -1
- package/node/DatePicker/DatePicker.js +1 -1
- package/node/DatePicker/DatePickerToolbar.js +11 -6
- package/node/DateTimeField/DateTimeField.js +1 -1
- package/node/DateTimePicker/DateTimePicker.js +1 -1
- package/node/DateTimePicker/DateTimePickerToolbar.js +97 -45
- package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
- package/node/DesktopDatePicker/DesktopDatePicker.js +1 -1
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +63 -25
- package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +108 -0
- package/node/DesktopDateTimePicker/index.js +8 -1
- package/node/DigitalClock/DigitalClock.js +14 -6
- package/node/MobileDatePicker/MobileDatePicker.js +1 -1
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
- package/node/MonthCalendar/PickersMonth.js +12 -6
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -4
- package/node/PickersCalendarHeader/PickersCalendarHeader.js +13 -9
- package/node/PickersDay/PickersDay.js +30 -15
- package/node/PickersLayout/PickersLayout.js +31 -17
- package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +137 -72
- package/node/PickersTextField/PickersInput/PickersInput.js +76 -54
- package/node/PickersTextField/PickersInputBase/PickersInputBase.js +64 -24
- package/node/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
- package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +31 -12
- package/node/StaticDatePicker/StaticDatePicker.js +1 -1
- package/node/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
- package/node/TimeClock/Clock.js +48 -35
- package/node/TimeClock/ClockNumber.js +12 -7
- package/node/TimeClock/ClockPointer.js +23 -13
- package/node/TimePicker/TimePickerToolbar.js +25 -16
- package/node/YearCalendar/PickersYear.js +12 -6
- package/node/index.js +1 -1
- package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -6
- package/node/internals/components/PickersPopper.js +13 -9
- package/node/internals/components/PickersToolbar.js +39 -18
- package/node/internals/hooks/useField/buildSectionsFromFormat.js +34 -30
- package/node/internals/hooks/useField/useField.js +4 -2
- package/node/internals/hooks/useField/useFieldV6TextField.js +8 -3
- package/node/internals/hooks/useField/useFieldV7TextField.js +1 -1
- package/node/internals/hooks/useOpenState.js +1 -1
- package/node/internals/utils/fields.js +1 -1
- package/node/locales/itIT.js +16 -20
- package/node/locales/zhHK.js +14 -17
- package/package.json +5 -5
- package/timeViewRenderers/timeViewRenderers.js +1 -1
- package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +0 -15
- package/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -163
- package/dateTimeViewRenderers/index.d.ts +0 -2
- package/dateTimeViewRenderers/index.js +0 -1
- package/dateTimeViewRenderers/package.json +0 -6
- package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -162
- package/modern/dateTimeViewRenderers/index.js +0 -1
- package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -171
- package/node/dateTimeViewRenderers/index.js +0 -12
|
@@ -1,19 +1,64 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["openTo", "focusedView", "timeViewsCount"];
|
|
2
4
|
import * as React from 'react';
|
|
3
5
|
import PropTypes from 'prop-types';
|
|
4
6
|
import { resolveComponentProps } from '@mui/base/utils';
|
|
5
7
|
import { refType } from '@mui/utils';
|
|
8
|
+
import Divider from '@mui/material/Divider';
|
|
6
9
|
import { singleItemValueManager } from '../internals/utils/valueManagers';
|
|
7
10
|
import { DateTimeField } from '../DateTimeField';
|
|
8
11
|
import { useDateTimePickerDefaultizedProps } from '../DateTimePicker/shared';
|
|
9
12
|
import { renderDateViewCalendar } from '../dateViewRenderers/dateViewRenderers';
|
|
10
|
-
import { renderDesktopDateTimeView } from '../dateTimeViewRenderers';
|
|
11
13
|
import { useLocaleText, useUtils } from '../internals/hooks/useUtils';
|
|
12
14
|
import { validateDateTime } from '../internals/utils/validation/validateDateTime';
|
|
13
15
|
import { CalendarIcon } from '../icons';
|
|
14
16
|
import { useDesktopPicker } from '../internals/hooks/useDesktopPicker';
|
|
15
17
|
import { extractValidationProps } from '../internals/utils/validation/extractValidationProps';
|
|
16
18
|
import { resolveDateTimeFormat, resolveTimeViewsResponse } from '../internals/utils/date-time-utils';
|
|
19
|
+
import { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView } from '../timeViewRenderers';
|
|
20
|
+
import { VIEW_HEIGHT, isDatePickerView, isInternalTimeView } from '../internals';
|
|
21
|
+
import { multiSectionDigitalClockClasses, multiSectionDigitalClockSectionClasses } from '../MultiSectionDigitalClock';
|
|
22
|
+
import { digitalClockClasses } from '../DigitalClock';
|
|
23
|
+
import { DesktopDateTimePickerLayout } from './DesktopDateTimePickerLayout';
|
|
24
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
25
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
26
|
+
const rendererInterceptor = function rendererInterceptor(inViewRenderers, popperView, rendererProps) {
|
|
27
|
+
const {
|
|
28
|
+
openTo,
|
|
29
|
+
focusedView,
|
|
30
|
+
timeViewsCount
|
|
31
|
+
} = rendererProps,
|
|
32
|
+
otherProps = _objectWithoutPropertiesLoose(rendererProps, _excluded);
|
|
33
|
+
const finalProps = _extends({}, otherProps, {
|
|
34
|
+
focusedView: null,
|
|
35
|
+
sx: [{
|
|
36
|
+
[`&.${multiSectionDigitalClockClasses.root}`]: {
|
|
37
|
+
borderBottom: 0
|
|
38
|
+
},
|
|
39
|
+
[`&.${multiSectionDigitalClockClasses.root}, .${multiSectionDigitalClockSectionClasses.root}, &.${digitalClockClasses.root}`]: {
|
|
40
|
+
maxHeight: VIEW_HEIGHT
|
|
41
|
+
}
|
|
42
|
+
}]
|
|
43
|
+
});
|
|
44
|
+
const isTimeViewActive = isInternalTimeView(popperView);
|
|
45
|
+
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
46
|
+
children: [inViewRenderers[!isTimeViewActive ? popperView : 'day']?.(_extends({}, rendererProps, {
|
|
47
|
+
view: !isTimeViewActive ? popperView : 'day',
|
|
48
|
+
focusedView: focusedView && isDatePickerView(focusedView) ? focusedView : null,
|
|
49
|
+
views: rendererProps.views.filter(isDatePickerView)
|
|
50
|
+
})), timeViewsCount > 0 && /*#__PURE__*/_jsxs(React.Fragment, {
|
|
51
|
+
children: [/*#__PURE__*/_jsx(Divider, {
|
|
52
|
+
orientation: "vertical"
|
|
53
|
+
}), inViewRenderers[isTimeViewActive ? popperView : 'hours']?.(_extends({}, finalProps, {
|
|
54
|
+
view: isTimeViewActive ? popperView : 'hours',
|
|
55
|
+
focusedView: focusedView && isInternalTimeView(focusedView) ? focusedView : null,
|
|
56
|
+
openTo: isInternalTimeView(openTo) ? openTo : 'hours',
|
|
57
|
+
views: rendererProps.views.filter(isInternalTimeView)
|
|
58
|
+
}))]
|
|
59
|
+
})]
|
|
60
|
+
});
|
|
61
|
+
};
|
|
17
62
|
/**
|
|
18
63
|
* Demos:
|
|
19
64
|
*
|
|
@@ -25,7 +70,6 @@ import { resolveDateTimeFormat, resolveTimeViewsResponse } from '../internals/ut
|
|
|
25
70
|
* - [DesktopDateTimePicker API](https://mui.com/x/api/date-pickers/desktop-date-time-picker/)
|
|
26
71
|
*/
|
|
27
72
|
const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDateTimePicker(inProps, ref) {
|
|
28
|
-
var _defaultizedProps$amp, _defaultizedProps$yea, _defaultizedProps$slo2, _defaultizedProps$slo3, _defaultizedProps$slo4, _props$localeText$ope, _props$localeText;
|
|
29
73
|
const localeText = useLocaleText();
|
|
30
74
|
const utils = useUtils();
|
|
31
75
|
|
|
@@ -34,65 +78,55 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
|
|
|
34
78
|
const {
|
|
35
79
|
shouldRenderTimeInASingleColumn,
|
|
36
80
|
thresholdToRenderTimeInASingleColumn,
|
|
37
|
-
views,
|
|
81
|
+
views: resolvedViews,
|
|
38
82
|
timeSteps
|
|
39
83
|
} = resolveTimeViewsResponse(defaultizedProps);
|
|
40
|
-
const
|
|
41
|
-
const viewRenderers =
|
|
42
|
-
// we can only ensure the expected two-column layout if none of the renderers are overridden
|
|
43
|
-
shouldUseNewRenderer ? {
|
|
44
|
-
day: renderDesktopDateTimeView,
|
|
45
|
-
month: renderDesktopDateTimeView,
|
|
46
|
-
year: renderDesktopDateTimeView,
|
|
47
|
-
hours: renderDesktopDateTimeView,
|
|
48
|
-
minutes: renderDesktopDateTimeView,
|
|
49
|
-
seconds: renderDesktopDateTimeView,
|
|
50
|
-
meridiem: renderDesktopDateTimeView
|
|
51
|
-
} : _extends({
|
|
84
|
+
const renderTimeView = shouldRenderTimeInASingleColumn ? renderDigitalClockTimeView : renderMultiSectionDigitalClockTimeView;
|
|
85
|
+
const viewRenderers = _extends({
|
|
52
86
|
day: renderDateViewCalendar,
|
|
53
87
|
month: renderDateViewCalendar,
|
|
54
88
|
year: renderDateViewCalendar,
|
|
55
|
-
hours:
|
|
56
|
-
minutes:
|
|
57
|
-
seconds:
|
|
58
|
-
meridiem:
|
|
89
|
+
hours: renderTimeView,
|
|
90
|
+
minutes: renderTimeView,
|
|
91
|
+
seconds: renderTimeView,
|
|
92
|
+
meridiem: renderTimeView
|
|
59
93
|
}, defaultizedProps.viewRenderers);
|
|
60
|
-
const ampmInClock =
|
|
61
|
-
//
|
|
62
|
-
const
|
|
94
|
+
const ampmInClock = defaultizedProps.ampmInClock ?? true;
|
|
95
|
+
// Need to avoid adding the `meridiem` view when unexpected renderer is specified
|
|
96
|
+
const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === renderMultiSectionDigitalClockTimeView.name;
|
|
97
|
+
const views = !shouldHoursRendererContainMeridiemView ? resolvedViews.filter(view => view !== 'meridiem') : resolvedViews;
|
|
98
|
+
const actionBarActions = shouldRenderTimeInASingleColumn ? [] : ['accept'];
|
|
63
99
|
|
|
64
100
|
// Props with the default values specific to the desktop variant
|
|
65
101
|
const props = _extends({}, defaultizedProps, {
|
|
66
102
|
viewRenderers,
|
|
67
103
|
format: resolveDateTimeFormat(utils, defaultizedProps),
|
|
68
104
|
views,
|
|
69
|
-
yearsPerRow:
|
|
105
|
+
yearsPerRow: defaultizedProps.yearsPerRow ?? 4,
|
|
70
106
|
ampmInClock,
|
|
71
107
|
timeSteps,
|
|
72
108
|
thresholdToRenderTimeInASingleColumn,
|
|
73
109
|
shouldRenderTimeInASingleColumn,
|
|
74
110
|
slots: _extends({
|
|
75
111
|
field: DateTimeField,
|
|
112
|
+
layout: DesktopDateTimePickerLayout,
|
|
76
113
|
openPickerIcon: CalendarIcon
|
|
77
114
|
}, defaultizedProps.slots),
|
|
78
115
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
79
|
-
field: ownerState => {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
ref
|
|
83
|
-
});
|
|
84
|
-
},
|
|
116
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {
|
|
117
|
+
ref
|
|
118
|
+
}),
|
|
85
119
|
toolbar: _extends({
|
|
86
120
|
hidden: true,
|
|
87
121
|
ampmInClock,
|
|
88
|
-
toolbarVariant:
|
|
89
|
-
},
|
|
122
|
+
toolbarVariant: 'desktop'
|
|
123
|
+
}, defaultizedProps.slotProps?.toolbar),
|
|
90
124
|
tabs: _extends({
|
|
91
125
|
hidden: true
|
|
92
|
-
},
|
|
93
|
-
actionBar: _extends({
|
|
126
|
+
}, defaultizedProps.slotProps?.tabs),
|
|
127
|
+
actionBar: ownerState => _extends({
|
|
94
128
|
actions: actionBarActions
|
|
95
|
-
}, (
|
|
129
|
+
}, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))
|
|
96
130
|
})
|
|
97
131
|
});
|
|
98
132
|
const {
|
|
@@ -101,8 +135,9 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
|
|
|
101
135
|
props,
|
|
102
136
|
valueManager: singleItemValueManager,
|
|
103
137
|
valueType: 'date-time',
|
|
104
|
-
getOpenDialogAriaText:
|
|
105
|
-
validator: validateDateTime
|
|
138
|
+
getOpenDialogAriaText: props.localeText?.openDatePickerDialogue ?? localeText.openDatePickerDialogue,
|
|
139
|
+
validator: validateDateTime,
|
|
140
|
+
rendererInterceptor
|
|
106
141
|
});
|
|
107
142
|
return renderPicker();
|
|
108
143
|
});
|
|
@@ -361,7 +396,7 @@ DesktopDateTimePicker.propTypes = {
|
|
|
361
396
|
/**
|
|
362
397
|
* Disable specific date.
|
|
363
398
|
*
|
|
364
|
-
* Warning: This function can be called multiple times (
|
|
399
|
+
* Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
|
|
365
400
|
*
|
|
366
401
|
* @template TDate
|
|
367
402
|
* @param {TDate} day The date to test.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { PickersLayoutProps } from '../PickersLayout';
|
|
3
|
+
import { PickerValidDate } from '../models';
|
|
4
|
+
import { DateOrTimeViewWithMeridiem } from '../internals';
|
|
5
|
+
/**
|
|
6
|
+
* @ignore - internal component.
|
|
7
|
+
*/
|
|
8
|
+
declare function DesktopDateTimePickerLayout<TValue, TDate extends PickerValidDate, TView extends DateOrTimeViewWithMeridiem>(props: PickersLayoutProps<TValue, TDate, TView>): React.JSX.Element;
|
|
9
|
+
declare namespace DesktopDateTimePickerLayout {
|
|
10
|
+
var propTypes: any;
|
|
11
|
+
}
|
|
12
|
+
export { DesktopDateTimePickerLayout };
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import clsx from 'clsx';
|
|
4
|
+
import Divider from '@mui/material/Divider';
|
|
5
|
+
import { PickersLayoutContentWrapper, PickersLayoutRoot, pickersLayoutClasses, usePickerLayout } from '../PickersLayout';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
/**
|
|
9
|
+
* @ignore - internal component.
|
|
10
|
+
*/
|
|
11
|
+
function DesktopDateTimePickerLayout(props) {
|
|
12
|
+
const {
|
|
13
|
+
toolbar,
|
|
14
|
+
tabs,
|
|
15
|
+
content,
|
|
16
|
+
actionBar,
|
|
17
|
+
shortcuts
|
|
18
|
+
} = usePickerLayout(props);
|
|
19
|
+
const {
|
|
20
|
+
sx,
|
|
21
|
+
className,
|
|
22
|
+
isLandscape,
|
|
23
|
+
ref
|
|
24
|
+
} = props;
|
|
25
|
+
const isActionBarVisible = actionBar && (actionBar.props.actions?.length ?? 0) > 0;
|
|
26
|
+
return /*#__PURE__*/_jsxs(PickersLayoutRoot, {
|
|
27
|
+
ref: ref,
|
|
28
|
+
className: clsx(className, pickersLayoutClasses.root),
|
|
29
|
+
sx: [{
|
|
30
|
+
[`& .${pickersLayoutClasses.tabs}`]: {
|
|
31
|
+
gridRow: 4,
|
|
32
|
+
gridColumn: '1 / 4'
|
|
33
|
+
},
|
|
34
|
+
[`& .${pickersLayoutClasses.actionBar}`]: {
|
|
35
|
+
gridRow: 5
|
|
36
|
+
}
|
|
37
|
+
}, ...(Array.isArray(sx) ? sx : [sx])],
|
|
38
|
+
ownerState: props,
|
|
39
|
+
children: [isLandscape ? shortcuts : toolbar, isLandscape ? toolbar : shortcuts, /*#__PURE__*/_jsxs(PickersLayoutContentWrapper, {
|
|
40
|
+
className: pickersLayoutClasses.contentWrapper,
|
|
41
|
+
sx: {
|
|
42
|
+
display: 'grid'
|
|
43
|
+
},
|
|
44
|
+
children: [content, tabs, isActionBarVisible && /*#__PURE__*/_jsx(Divider, {
|
|
45
|
+
sx: {
|
|
46
|
+
gridRow: 3,
|
|
47
|
+
gridColumn: '1 / 4'
|
|
48
|
+
}
|
|
49
|
+
})]
|
|
50
|
+
}), actionBar]
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes = {
|
|
54
|
+
// ----------------------------- Warning --------------------------------
|
|
55
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
56
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
57
|
+
// ----------------------------------------------------------------------
|
|
58
|
+
children: PropTypes.node,
|
|
59
|
+
/**
|
|
60
|
+
* Override or extend the styles applied to the component.
|
|
61
|
+
*/
|
|
62
|
+
classes: PropTypes.object,
|
|
63
|
+
className: PropTypes.string,
|
|
64
|
+
disabled: PropTypes.bool,
|
|
65
|
+
isLandscape: PropTypes.bool.isRequired,
|
|
66
|
+
isValid: PropTypes.func.isRequired,
|
|
67
|
+
onAccept: PropTypes.func.isRequired,
|
|
68
|
+
onCancel: PropTypes.func.isRequired,
|
|
69
|
+
onChange: PropTypes.func.isRequired,
|
|
70
|
+
onClear: PropTypes.func.isRequired,
|
|
71
|
+
onClose: PropTypes.func.isRequired,
|
|
72
|
+
onDismiss: PropTypes.func.isRequired,
|
|
73
|
+
onOpen: PropTypes.func.isRequired,
|
|
74
|
+
onSelectShortcut: PropTypes.func.isRequired,
|
|
75
|
+
onSetToday: PropTypes.func.isRequired,
|
|
76
|
+
onViewChange: PropTypes.func.isRequired,
|
|
77
|
+
/**
|
|
78
|
+
* Force rendering in particular orientation.
|
|
79
|
+
*/
|
|
80
|
+
orientation: PropTypes.oneOf(['landscape', 'portrait']),
|
|
81
|
+
readOnly: PropTypes.bool,
|
|
82
|
+
/**
|
|
83
|
+
* The props used for each component slot.
|
|
84
|
+
* @default {}
|
|
85
|
+
*/
|
|
86
|
+
slotProps: PropTypes.object,
|
|
87
|
+
/**
|
|
88
|
+
* Overridable component slots.
|
|
89
|
+
* @default {}
|
|
90
|
+
*/
|
|
91
|
+
slots: PropTypes.object,
|
|
92
|
+
/**
|
|
93
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
94
|
+
*/
|
|
95
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
96
|
+
value: PropTypes.any,
|
|
97
|
+
view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
|
|
98
|
+
views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired,
|
|
99
|
+
wrapperVariant: PropTypes.oneOf(['desktop', 'mobile'])
|
|
100
|
+
} : void 0;
|
|
101
|
+
export { DesktopDateTimePickerLayout };
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export { DesktopDateTimePicker } from './DesktopDateTimePicker';
|
|
2
|
+
export { DesktopDateTimePickerLayout } from './DesktopDateTimePickerLayout';
|
|
2
3
|
export type { DesktopDateTimePickerProps, DesktopDateTimePickerSlots, DesktopDateTimePickerSlotProps, } from './DesktopDateTimePicker.types';
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { DesktopDateTimePicker } from './DesktopDateTimePicker';
|
|
1
|
+
export { DesktopDateTimePicker } from './DesktopDateTimePicker';
|
|
2
|
+
export { DesktopDateTimePickerLayout } from './DesktopDateTimePickerLayout';
|
|
@@ -25,7 +25,6 @@ import { resolveTimeViewsResponse } from '../internals/utils/date-time-utils';
|
|
|
25
25
|
* - [DesktopTimePicker API](https://mui.com/x/api/date-pickers/desktop-time-picker/)
|
|
26
26
|
*/
|
|
27
27
|
const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePicker(inProps, ref) {
|
|
28
|
-
var _defaultizedProps$amp, _viewRenderers$hours, _defaultizedProps$slo2, _defaultizedProps$slo3, _props$localeText$ope, _props$localeText;
|
|
29
28
|
const localeText = useLocaleText();
|
|
30
29
|
const utils = useUtils();
|
|
31
30
|
|
|
@@ -43,10 +42,10 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
|
|
|
43
42
|
seconds: renderTimeView,
|
|
44
43
|
meridiem: renderTimeView
|
|
45
44
|
}, defaultizedProps.viewRenderers);
|
|
46
|
-
const ampmInClock =
|
|
45
|
+
const ampmInClock = defaultizedProps.ampmInClock ?? true;
|
|
47
46
|
const actionBarActions = shouldRenderTimeInASingleColumn ? [] : ['accept'];
|
|
48
47
|
// Need to avoid adding the `meridiem` view when unexpected renderer is specified
|
|
49
|
-
const shouldHoursRendererContainMeridiemView =
|
|
48
|
+
const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === renderMultiSectionDigitalClockTimeView.name;
|
|
50
49
|
const views = !shouldHoursRendererContainMeridiemView ? resolvedViews.filter(view => view !== 'meridiem') : resolvedViews;
|
|
51
50
|
|
|
52
51
|
// Props with the default values specific to the desktop variant
|
|
@@ -63,19 +62,16 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
|
|
|
63
62
|
openPickerIcon: ClockIcon
|
|
64
63
|
}, defaultizedProps.slots),
|
|
65
64
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
66
|
-
field: ownerState => {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
ref
|
|
70
|
-
});
|
|
71
|
-
},
|
|
65
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {
|
|
66
|
+
ref
|
|
67
|
+
}),
|
|
72
68
|
toolbar: _extends({
|
|
73
69
|
hidden: true,
|
|
74
70
|
ampmInClock
|
|
75
|
-
},
|
|
71
|
+
}, defaultizedProps.slotProps?.toolbar),
|
|
76
72
|
actionBar: _extends({
|
|
77
73
|
actions: actionBarActions
|
|
78
|
-
},
|
|
74
|
+
}, defaultizedProps.slotProps?.actionBar)
|
|
79
75
|
})
|
|
80
76
|
});
|
|
81
77
|
const {
|
|
@@ -84,7 +80,7 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
|
|
|
84
80
|
props,
|
|
85
81
|
valueManager: singleItemValueManager,
|
|
86
82
|
valueType: 'time',
|
|
87
|
-
getOpenDialogAriaText:
|
|
83
|
+
getOpenDialogAriaText: props.localeText?.openTimePickerDialogue ?? localeText.openTimePickerDialogue,
|
|
88
84
|
validator: validateTime
|
|
89
85
|
});
|
|
90
86
|
return renderPicker();
|
|
@@ -36,16 +36,24 @@ const DigitalClockRoot = styled(PickerViewRoot, {
|
|
|
36
36
|
name: 'MuiDigitalClock',
|
|
37
37
|
slot: 'Root',
|
|
38
38
|
overridesResolver: (props, styles) => styles.root
|
|
39
|
-
})(
|
|
40
|
-
ownerState
|
|
41
|
-
}) => ({
|
|
39
|
+
})({
|
|
42
40
|
overflowY: 'auto',
|
|
43
41
|
width: '100%',
|
|
44
42
|
'@media (prefers-reduced-motion: no-preference)': {
|
|
45
|
-
scrollBehavior:
|
|
43
|
+
scrollBehavior: 'auto'
|
|
46
44
|
},
|
|
47
|
-
maxHeight: DIGITAL_CLOCK_VIEW_HEIGHT
|
|
48
|
-
|
|
45
|
+
maxHeight: DIGITAL_CLOCK_VIEW_HEIGHT,
|
|
46
|
+
variants: [{
|
|
47
|
+
props: {
|
|
48
|
+
alreadyRendered: true
|
|
49
|
+
},
|
|
50
|
+
style: {
|
|
51
|
+
'@media (prefers-reduced-motion: no-preference)': {
|
|
52
|
+
scrollBehavior: 'smooth'
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}]
|
|
56
|
+
});
|
|
49
57
|
const DigitalClockList = styled(MenuList, {
|
|
50
58
|
name: 'MuiDigitalClock',
|
|
51
59
|
slot: 'List',
|
|
@@ -90,7 +98,6 @@ const DigitalClockItem = styled(MenuItem, {
|
|
|
90
98
|
* - [DigitalClock API](https://mui.com/x/api/date-pickers/digital-clock/)
|
|
91
99
|
*/
|
|
92
100
|
export const DigitalClock = /*#__PURE__*/React.forwardRef(function DigitalClock(inProps, ref) {
|
|
93
|
-
var _slots$digitalClockIt;
|
|
94
101
|
const utils = useUtils();
|
|
95
102
|
const containerRef = React.useRef(null);
|
|
96
103
|
const handleRef = useForkRef(ref, containerRef);
|
|
@@ -146,10 +153,10 @@ export const DigitalClock = /*#__PURE__*/React.forwardRef(function DigitalClock(
|
|
|
146
153
|
alreadyRendered: !!containerRef.current
|
|
147
154
|
}), [props]);
|
|
148
155
|
const classes = useUtilityClasses(ownerState);
|
|
149
|
-
const ClockItem =
|
|
156
|
+
const ClockItem = slots?.digitalClockItem ?? DigitalClockItem;
|
|
150
157
|
const clockItemProps = useSlotProps({
|
|
151
158
|
elementType: ClockItem,
|
|
152
|
-
externalSlotProps: slotProps
|
|
159
|
+
externalSlotProps: slotProps?.digitalClockItem,
|
|
153
160
|
ownerState: {},
|
|
154
161
|
className: classes.item
|
|
155
162
|
});
|
|
@@ -22,7 +22,6 @@ if (process.env.NODE_ENV !== 'production') {
|
|
|
22
22
|
* - [LocalizationProvider API](https://mui.com/x/api/date-pickers/localization-provider/)
|
|
23
23
|
*/
|
|
24
24
|
export const LocalizationProvider = function LocalizationProvider(inProps) {
|
|
25
|
-
var _React$useContext;
|
|
26
25
|
const {
|
|
27
26
|
localeText: inLocaleText
|
|
28
27
|
} = inProps,
|
|
@@ -30,7 +29,7 @@ export const LocalizationProvider = function LocalizationProvider(inProps) {
|
|
|
30
29
|
const {
|
|
31
30
|
utils: parentUtils,
|
|
32
31
|
localeText: parentLocaleText
|
|
33
|
-
} =
|
|
32
|
+
} = React.useContext(MuiPickersAdapterContext) ?? {
|
|
34
33
|
utils: undefined,
|
|
35
34
|
localeText: undefined
|
|
36
35
|
};
|
|
@@ -23,7 +23,6 @@ import { resolveDateFormat } from '../internals/utils/date-utils';
|
|
|
23
23
|
* - [MobileDatePicker API](https://mui.com/x/api/date-pickers/mobile-date-picker/)
|
|
24
24
|
*/
|
|
25
25
|
const MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker(inProps, ref) {
|
|
26
|
-
var _defaultizedProps$slo2, _props$localeText$ope, _props$localeText;
|
|
27
26
|
const localeText = useLocaleText();
|
|
28
27
|
const utils = useUtils();
|
|
29
28
|
|
|
@@ -43,15 +42,12 @@ const MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker
|
|
|
43
42
|
field: DateField
|
|
44
43
|
}, defaultizedProps.slots),
|
|
45
44
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
46
|
-
field: ownerState => {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
ref
|
|
50
|
-
});
|
|
51
|
-
},
|
|
45
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {
|
|
46
|
+
ref
|
|
47
|
+
}),
|
|
52
48
|
toolbar: _extends({
|
|
53
49
|
hidden: false
|
|
54
|
-
},
|
|
50
|
+
}, defaultizedProps.slotProps?.toolbar)
|
|
55
51
|
})
|
|
56
52
|
});
|
|
57
53
|
const {
|
|
@@ -60,7 +56,7 @@ const MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker
|
|
|
60
56
|
props,
|
|
61
57
|
valueManager: singleItemValueManager,
|
|
62
58
|
valueType: 'date',
|
|
63
|
-
getOpenDialogAriaText:
|
|
59
|
+
getOpenDialogAriaText: props.localeText?.openDatePickerDialogue ?? localeText.openDatePickerDialogue,
|
|
64
60
|
validator: validateDate
|
|
65
61
|
});
|
|
66
62
|
return renderPicker();
|
|
@@ -282,7 +278,7 @@ MobileDatePicker.propTypes = {
|
|
|
282
278
|
/**
|
|
283
279
|
* Disable specific date.
|
|
284
280
|
*
|
|
285
|
-
* Warning: This function can be called multiple times (
|
|
281
|
+
* Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
|
|
286
282
|
*
|
|
287
283
|
* @template TDate
|
|
288
284
|
* @param {TDate} day The date to test.
|
|
@@ -24,7 +24,6 @@ import { resolveDateTimeFormat } from '../internals/utils/date-time-utils';
|
|
|
24
24
|
* - [MobileDateTimePicker API](https://mui.com/x/api/date-pickers/mobile-date-time-picker/)
|
|
25
25
|
*/
|
|
26
26
|
const MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTimePicker(inProps, ref) {
|
|
27
|
-
var _defaultizedProps$amp, _defaultizedProps$slo2, _defaultizedProps$slo3, _props$localeText$ope, _props$localeText;
|
|
28
27
|
const localeText = useLocaleText();
|
|
29
28
|
const utils = useUtils();
|
|
30
29
|
|
|
@@ -38,7 +37,7 @@ const MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTi
|
|
|
38
37
|
minutes: renderTimeViewClock,
|
|
39
38
|
seconds: renderTimeViewClock
|
|
40
39
|
}, defaultizedProps.viewRenderers);
|
|
41
|
-
const ampmInClock =
|
|
40
|
+
const ampmInClock = defaultizedProps.ampmInClock ?? false;
|
|
42
41
|
|
|
43
42
|
// Props with the default values specific to the mobile variant
|
|
44
43
|
const props = _extends({}, defaultizedProps, {
|
|
@@ -49,19 +48,16 @@ const MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTi
|
|
|
49
48
|
field: DateTimeField
|
|
50
49
|
}, defaultizedProps.slots),
|
|
51
50
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
52
|
-
field: ownerState => {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
ref
|
|
56
|
-
});
|
|
57
|
-
},
|
|
51
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {
|
|
52
|
+
ref
|
|
53
|
+
}),
|
|
58
54
|
toolbar: _extends({
|
|
59
55
|
hidden: false,
|
|
60
56
|
ampmInClock
|
|
61
|
-
},
|
|
57
|
+
}, defaultizedProps.slotProps?.toolbar),
|
|
62
58
|
tabs: _extends({
|
|
63
59
|
hidden: false
|
|
64
|
-
},
|
|
60
|
+
}, defaultizedProps.slotProps?.tabs)
|
|
65
61
|
})
|
|
66
62
|
});
|
|
67
63
|
const {
|
|
@@ -70,7 +66,7 @@ const MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTi
|
|
|
70
66
|
props,
|
|
71
67
|
valueManager: singleItemValueManager,
|
|
72
68
|
valueType: 'date-time',
|
|
73
|
-
getOpenDialogAriaText:
|
|
69
|
+
getOpenDialogAriaText: props.localeText?.openDatePickerDialogue ?? localeText.openDatePickerDialogue,
|
|
74
70
|
validator: validateDateTime
|
|
75
71
|
});
|
|
76
72
|
return renderPicker();
|
|
@@ -330,7 +326,7 @@ MobileDateTimePicker.propTypes = {
|
|
|
330
326
|
/**
|
|
331
327
|
* Disable specific date.
|
|
332
328
|
*
|
|
333
|
-
* Warning: This function can be called multiple times (
|
|
329
|
+
* Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
|
|
334
330
|
*
|
|
335
331
|
* @template TDate
|
|
336
332
|
* @param {TDate} day The date to test.
|
|
@@ -23,7 +23,6 @@ import { resolveTimeFormat } from '../internals/utils/time-utils';
|
|
|
23
23
|
* - [MobileTimePicker API](https://mui.com/x/api/date-pickers/mobile-time-picker/)
|
|
24
24
|
*/
|
|
25
25
|
const MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker(inProps, ref) {
|
|
26
|
-
var _defaultizedProps$amp, _defaultizedProps$slo2, _props$localeText$ope, _props$localeText;
|
|
27
26
|
const localeText = useLocaleText();
|
|
28
27
|
const utils = useUtils();
|
|
29
28
|
|
|
@@ -34,7 +33,7 @@ const MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker
|
|
|
34
33
|
minutes: renderTimeViewClock,
|
|
35
34
|
seconds: renderTimeViewClock
|
|
36
35
|
}, defaultizedProps.viewRenderers);
|
|
37
|
-
const ampmInClock =
|
|
36
|
+
const ampmInClock = defaultizedProps.ampmInClock ?? false;
|
|
38
37
|
|
|
39
38
|
// Props with the default values specific to the mobile variant
|
|
40
39
|
const props = _extends({}, defaultizedProps, {
|
|
@@ -45,16 +44,13 @@ const MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker
|
|
|
45
44
|
field: TimeField
|
|
46
45
|
}, defaultizedProps.slots),
|
|
47
46
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
48
|
-
field: ownerState => {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
ref
|
|
52
|
-
});
|
|
53
|
-
},
|
|
47
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {
|
|
48
|
+
ref
|
|
49
|
+
}),
|
|
54
50
|
toolbar: _extends({
|
|
55
51
|
hidden: false,
|
|
56
52
|
ampmInClock
|
|
57
|
-
},
|
|
53
|
+
}, defaultizedProps.slotProps?.toolbar)
|
|
58
54
|
})
|
|
59
55
|
});
|
|
60
56
|
const {
|
|
@@ -63,7 +59,7 @@ const MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker
|
|
|
63
59
|
props,
|
|
64
60
|
valueManager: singleItemValueManager,
|
|
65
61
|
valueType: 'time',
|
|
66
|
-
getOpenDialogAriaText:
|
|
62
|
+
getOpenDialogAriaText: props.localeText?.openTimePickerDialogue ?? localeText.openTimePickerDialogue,
|
|
67
63
|
validator: validateTime
|
|
68
64
|
});
|
|
69
65
|
return renderPicker();
|
|
@@ -124,7 +124,7 @@ export const MonthCalendar = /*#__PURE__*/React.forwardRef(function MonthCalenda
|
|
|
124
124
|
name: 'MonthCalendar',
|
|
125
125
|
state: 'hasFocus',
|
|
126
126
|
controlled: hasFocus,
|
|
127
|
-
default: autoFocus
|
|
127
|
+
default: autoFocus ?? false
|
|
128
128
|
});
|
|
129
129
|
const changeHasFocus = useEventCallback(newHasFocus => {
|
|
130
130
|
setInternalHasFocus(newHasFocus);
|
|
@@ -151,11 +151,11 @@ export const MonthCalendar = /*#__PURE__*/React.forwardRef(function MonthCalenda
|
|
|
151
151
|
if (readOnly) {
|
|
152
152
|
return;
|
|
153
153
|
}
|
|
154
|
-
const newDate = utils.setMonth(value
|
|
154
|
+
const newDate = utils.setMonth(value ?? referenceDate, month);
|
|
155
155
|
handleValueChange(newDate);
|
|
156
156
|
});
|
|
157
157
|
const focusMonth = useEventCallback(month => {
|
|
158
|
-
if (!isMonthDisabled(utils.setMonth(value
|
|
158
|
+
if (!isMonthDisabled(utils.setMonth(value ?? referenceDate, month))) {
|
|
159
159
|
setFocusedMonth(month);
|
|
160
160
|
changeHasFocus(true);
|
|
161
161
|
if (onMonthFocus) {
|
|
@@ -205,7 +205,7 @@ export const MonthCalendar = /*#__PURE__*/React.forwardRef(function MonthCalenda
|
|
|
205
205
|
role: "radiogroup",
|
|
206
206
|
"aria-labelledby": gridLabelId
|
|
207
207
|
}, other, {
|
|
208
|
-
children: getMonthsInYear(utils, value
|
|
208
|
+
children: getMonthsInYear(utils, value ?? referenceDate).map(month => {
|
|
209
209
|
const monthNumber = utils.getMonth(month);
|
|
210
210
|
const monthText = utils.format(month, 'monthShort');
|
|
211
211
|
const monthLabel = utils.format(month, 'month');
|
|
@@ -22,14 +22,20 @@ const PickersMonthRoot = styled('div', {
|
|
|
22
22
|
name: 'MuiPickersMonth',
|
|
23
23
|
slot: 'Root',
|
|
24
24
|
overridesResolver: (_, styles) => [styles.root]
|
|
25
|
-
})(
|
|
26
|
-
ownerState
|
|
27
|
-
}) => ({
|
|
28
|
-
flexBasis: ownerState.monthsPerRow === 3 ? '33.3%' : '25%',
|
|
25
|
+
})({
|
|
29
26
|
display: 'flex',
|
|
30
27
|
alignItems: 'center',
|
|
31
|
-
justifyContent: 'center'
|
|
32
|
-
|
|
28
|
+
justifyContent: 'center',
|
|
29
|
+
flexBasis: '33.3%',
|
|
30
|
+
variants: [{
|
|
31
|
+
props: {
|
|
32
|
+
monthsPerRow: 4
|
|
33
|
+
},
|
|
34
|
+
style: {
|
|
35
|
+
flexBasis: '25%'
|
|
36
|
+
}
|
|
37
|
+
}]
|
|
38
|
+
});
|
|
33
39
|
const PickersMonthButton = styled('button', {
|
|
34
40
|
name: 'MuiPickersMonth',
|
|
35
41
|
slot: 'MonthButton',
|
|
@@ -101,8 +107,7 @@ export const PickersMonth = /*#__PURE__*/React.memo(function PickersMonth(inProp
|
|
|
101
107
|
const classes = useUtilityClasses(props);
|
|
102
108
|
useEnhancedEffect(() => {
|
|
103
109
|
if (autoFocus) {
|
|
104
|
-
|
|
105
|
-
(_ref$current = ref.current) == null || _ref$current.focus();
|
|
110
|
+
ref.current?.focus();
|
|
106
111
|
}
|
|
107
112
|
}, [autoFocus]);
|
|
108
113
|
return /*#__PURE__*/_jsx(PickersMonthRoot, _extends({
|