@mui/x-date-pickers 6.16.1 → 6.16.2
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/AdapterDayjs/AdapterDayjs.js +6 -4
- package/AdapterMoment/AdapterMoment.js +2 -5
- package/CHANGELOG.md +104 -0
- package/DateField/DateField.d.ts +10 -0
- package/DateField/DateField.js +10 -0
- package/DateTimeField/DateTimeField.d.ts +10 -0
- package/DateTimeField/DateTimeField.js +10 -0
- package/DateTimePicker/DateTimePicker.d.ts +10 -0
- package/DateTimePicker/DateTimePicker.js +15 -0
- package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +10 -0
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +25 -7
- package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +4 -3
- package/DesktopTimePicker/DesktopTimePicker.d.ts +10 -0
- package/DesktopTimePicker/DesktopTimePicker.js +18 -9
- package/DigitalClock/DigitalClock.js +1 -1
- package/MobileDateTimePicker/MobileDateTimePicker.d.ts +10 -0
- package/MobileDateTimePicker/MobileDateTimePicker.js +10 -0
- package/MobileTimePicker/MobileTimePicker.d.ts +10 -0
- package/MobileTimePicker/MobileTimePicker.js +10 -0
- package/StaticDateTimePicker/StaticDateTimePicker.d.ts +10 -0
- package/StaticDateTimePicker/StaticDateTimePicker.js +10 -0
- package/StaticTimePicker/StaticTimePicker.d.ts +10 -0
- package/StaticTimePicker/StaticTimePicker.js +10 -0
- package/TimeField/TimeField.d.ts +10 -0
- package/TimeField/TimeField.js +10 -0
- package/TimePicker/TimePicker.d.ts +10 -0
- package/TimePicker/TimePicker.js +10 -0
- package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +2 -1
- package/dateTimeViewRenderers/dateTimeViewRenderers.js +52 -33
- package/index.js +1 -1
- package/internals/components/FakeTextField/FakeTextField.d.ts +7 -0
- package/internals/components/FakeTextField/FakeTextField.js +19 -0
- package/internals/components/FakeTextField/index.d.ts +1 -0
- package/internals/components/FakeTextField/index.js +1 -0
- package/internals/utils/date-time-utils.d.ts +11 -0
- package/internals/utils/date-time-utils.js +32 -2
- package/legacy/AdapterDayjs/AdapterDayjs.js +6 -4
- package/legacy/AdapterMoment/AdapterMoment.js +2 -5
- package/legacy/DateField/DateField.js +10 -0
- package/legacy/DateTimeField/DateTimeField.js +10 -0
- package/legacy/DateTimePicker/DateTimePicker.js +15 -0
- package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +24 -8
- package/legacy/DesktopTimePicker/DesktopTimePicker.js +19 -10
- package/legacy/DigitalClock/DigitalClock.js +1 -1
- package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +10 -0
- package/legacy/MobileTimePicker/MobileTimePicker.js +10 -0
- package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +10 -0
- package/legacy/StaticTimePicker/StaticTimePicker.js +10 -0
- package/legacy/TimeField/TimeField.js +10 -0
- package/legacy/TimePicker/TimePicker.js +10 -0
- package/legacy/dateTimeViewRenderers/dateTimeViewRenderers.js +51 -33
- package/legacy/index.js +1 -1
- package/legacy/internals/components/FakeTextField/FakeTextField.js +19 -0
- package/legacy/internals/components/FakeTextField/index.js +1 -0
- package/legacy/internals/utils/date-time-utils.js +34 -2
- package/legacy/locales/esES.js +1 -1
- package/locales/esES.js +1 -1
- package/modern/AdapterDayjs/AdapterDayjs.js +6 -4
- package/modern/AdapterMoment/AdapterMoment.js +2 -5
- package/modern/DateField/DateField.js +10 -0
- package/modern/DateTimeField/DateTimeField.js +10 -0
- package/modern/DateTimePicker/DateTimePicker.js +15 -0
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +25 -7
- package/modern/DesktopTimePicker/DesktopTimePicker.js +17 -8
- package/modern/DigitalClock/DigitalClock.js +1 -1
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +10 -0
- package/modern/MobileTimePicker/MobileTimePicker.js +10 -0
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +10 -0
- package/modern/StaticTimePicker/StaticTimePicker.js +10 -0
- package/modern/TimeField/TimeField.js +10 -0
- package/modern/TimePicker/TimePicker.js +10 -0
- package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +52 -33
- package/modern/index.js +1 -1
- package/modern/internals/components/FakeTextField/FakeTextField.js +19 -0
- package/modern/internals/components/FakeTextField/index.js +1 -0
- package/modern/internals/utils/date-time-utils.js +29 -2
- package/modern/locales/esES.js +1 -1
- package/node/AdapterDayjs/AdapterDayjs.js +6 -4
- package/node/AdapterMoment/AdapterMoment.js +2 -5
- package/node/DateField/DateField.js +10 -0
- package/node/DateTimeField/DateTimeField.js +10 -0
- package/node/DateTimePicker/DateTimePicker.js +15 -0
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +24 -6
- package/node/DesktopTimePicker/DesktopTimePicker.js +17 -8
- package/node/DigitalClock/DigitalClock.js +1 -1
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +10 -0
- package/node/MobileTimePicker/MobileTimePicker.js +10 -0
- package/node/StaticDateTimePicker/StaticDateTimePicker.js +10 -0
- package/node/StaticTimePicker/StaticTimePicker.js +10 -0
- package/node/TimeField/TimeField.js +10 -0
- package/node/TimePicker/TimePicker.js +10 -0
- package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +51 -32
- package/node/index.js +1 -1
- package/node/internals/components/FakeTextField/FakeTextField.js +27 -0
- package/node/internals/components/FakeTextField/index.js +12 -0
- package/node/internals/utils/date-time-utils.js +29 -1
- package/node/locales/esES.js +1 -1
- package/package.json +1 -1
package/TimePicker/TimePicker.js
CHANGED
|
@@ -10,6 +10,16 @@ import { DesktopTimePicker } from '../DesktopTimePicker';
|
|
|
10
10
|
import { MobileTimePicker } from '../MobileTimePicker';
|
|
11
11
|
import { DEFAULT_DESKTOP_MODE_MEDIA_QUERY } from '../internals/utils/utils';
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
/**
|
|
14
|
+
* Demos:
|
|
15
|
+
*
|
|
16
|
+
* - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)
|
|
17
|
+
* - [Validation](https://mui.com/x/react-date-pickers/validation/)
|
|
18
|
+
*
|
|
19
|
+
* API:
|
|
20
|
+
*
|
|
21
|
+
* - [TimePicker API](https://mui.com/x/api/date-pickers/time-picker/)
|
|
22
|
+
*/
|
|
13
23
|
const TimePicker = /*#__PURE__*/React.forwardRef(function TimePicker(inProps, ref) {
|
|
14
24
|
const props = useThemeProps({
|
|
15
25
|
props: inProps,
|
|
@@ -9,5 +9,6 @@ export interface DateTimeViewRendererProps<TDate> extends Omit<DateCalendarProps
|
|
|
9
9
|
views: readonly DateOrTimeViewWithMeridiem[];
|
|
10
10
|
focusedView: DateOrTimeViewWithMeridiem | null;
|
|
11
11
|
timeViewsCount: number;
|
|
12
|
+
shouldRenderTimeInASingleColumn: boolean;
|
|
12
13
|
}
|
|
13
|
-
export declare const renderDesktopDateTimeView: <TDate extends unknown>({ view, onViewChange, views, focusedView, onFocusedViewChange, value, defaultValue, referenceDate, onChange, className, classes, disableFuture, disablePast, minDate, minTime, maxDate, maxTime, shouldDisableDate, shouldDisableMonth, shouldDisableYear, shouldDisableTime, shouldDisableClock, reduceAnimations, minutesStep, ampm, onMonthChange, monthsPerRow, onYearChange, yearsPerRow, defaultCalendarMonth, components, componentsProps, slots, slotProps, loading, renderLoading, disableHighlightToday, readOnly, disabled, showDaysOutsideCurrentMonth, dayOfWeekFormatter, sx, autoFocus, fixedWeekNumber, displayWeekNumber, timezone, disableIgnoringDatePartForTimeValidation, timeSteps, skipDisabled, timeViewsCount, }: DateTimeViewRendererProps<TDate>) => React.JSX.Element;
|
|
14
|
+
export declare const renderDesktopDateTimeView: <TDate extends unknown>({ view, onViewChange, views, focusedView, onFocusedViewChange, value, defaultValue, referenceDate, onChange, className, classes, disableFuture, disablePast, minDate, minTime, maxDate, maxTime, shouldDisableDate, shouldDisableMonth, shouldDisableYear, shouldDisableTime, shouldDisableClock, reduceAnimations, minutesStep, ampm, onMonthChange, monthsPerRow, onYearChange, yearsPerRow, defaultCalendarMonth, components, componentsProps, slots, slotProps, loading, renderLoading, disableHighlightToday, readOnly, disabled, showDaysOutsideCurrentMonth, dayOfWeekFormatter, sx, autoFocus, fixedWeekNumber, displayWeekNumber, timezone, disableIgnoringDatePartForTimeValidation, timeSteps, skipDisabled, timeViewsCount, shouldRenderTimeInASingleColumn, }: DateTimeViewRendererProps<TDate>) => React.JSX.Element;
|
|
@@ -3,10 +3,13 @@ import * as React from 'react';
|
|
|
3
3
|
import Divider from '@mui/material/Divider';
|
|
4
4
|
import { resolveComponentProps } from '@mui/base/utils';
|
|
5
5
|
import { DateCalendar } from '../DateCalendar';
|
|
6
|
-
import {
|
|
6
|
+
import { multiSectionDigitalClockSectionClasses } from '../MultiSectionDigitalClock';
|
|
7
7
|
import { DateTimeViewWrapper } from '../internals/components/DateTimeViewWrapper';
|
|
8
8
|
import { isInternalTimeView } from '../internals/utils/time-utils';
|
|
9
9
|
import { isDatePickerView } from '../internals/utils/date-utils';
|
|
10
|
+
import { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView } from '../timeViewRenderers';
|
|
11
|
+
import { digitalClockClasses } from '../DigitalClock';
|
|
12
|
+
import { VIEW_HEIGHT } from '../internals/constants/dimensions';
|
|
10
13
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
14
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
15
|
export const renderDesktopDateTimeView = ({
|
|
@@ -59,10 +62,43 @@ export const renderDesktopDateTimeView = ({
|
|
|
59
62
|
disableIgnoringDatePartForTimeValidation,
|
|
60
63
|
timeSteps,
|
|
61
64
|
skipDisabled,
|
|
62
|
-
timeViewsCount
|
|
65
|
+
timeViewsCount,
|
|
66
|
+
shouldRenderTimeInASingleColumn
|
|
63
67
|
}) => {
|
|
64
68
|
var _resolveComponentProp, _slotProps$actionBar;
|
|
65
69
|
const isActionBarVisible = !!((_resolveComponentProp = resolveComponentProps((_slotProps$actionBar = slotProps == null ? void 0 : slotProps.actionBar) != null ? _slotProps$actionBar : componentsProps == null ? void 0 : componentsProps.actionBar, {})) != null && (_resolveComponentProp = _resolveComponentProp.actions) != null && _resolveComponentProp.length);
|
|
70
|
+
const commonTimeProps = {
|
|
71
|
+
view: isInternalTimeView(view) ? view : 'hours',
|
|
72
|
+
onViewChange,
|
|
73
|
+
focusedView: focusedView && isInternalTimeView(focusedView) ? focusedView : null,
|
|
74
|
+
onFocusedViewChange,
|
|
75
|
+
views: views.filter(isInternalTimeView),
|
|
76
|
+
value,
|
|
77
|
+
defaultValue,
|
|
78
|
+
referenceDate,
|
|
79
|
+
onChange,
|
|
80
|
+
className,
|
|
81
|
+
classes,
|
|
82
|
+
disableFuture,
|
|
83
|
+
disablePast,
|
|
84
|
+
minTime,
|
|
85
|
+
maxTime,
|
|
86
|
+
shouldDisableTime,
|
|
87
|
+
shouldDisableClock,
|
|
88
|
+
minutesStep,
|
|
89
|
+
ampm,
|
|
90
|
+
components,
|
|
91
|
+
componentsProps,
|
|
92
|
+
slots,
|
|
93
|
+
slotProps,
|
|
94
|
+
readOnly,
|
|
95
|
+
disabled,
|
|
96
|
+
autoFocus,
|
|
97
|
+
disableIgnoringDatePartForTimeValidation,
|
|
98
|
+
timeSteps,
|
|
99
|
+
skipDisabled,
|
|
100
|
+
timezone
|
|
101
|
+
};
|
|
66
102
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
67
103
|
children: [/*#__PURE__*/_jsxs(DateTimeViewWrapper, {
|
|
68
104
|
children: [/*#__PURE__*/_jsx(DateCalendar, {
|
|
@@ -109,45 +145,28 @@ export const renderDesktopDateTimeView = ({
|
|
|
109
145
|
}), timeViewsCount > 0 && /*#__PURE__*/_jsxs(React.Fragment, {
|
|
110
146
|
children: [/*#__PURE__*/_jsx(Divider, {
|
|
111
147
|
orientation: "vertical"
|
|
112
|
-
}),
|
|
148
|
+
}), shouldRenderTimeInASingleColumn ? renderDigitalClockTimeView(_extends({}, commonTimeProps, {
|
|
149
|
+
view: 'hours',
|
|
150
|
+
views: ['hours'],
|
|
151
|
+
focusedView: focusedView && isInternalTimeView(focusedView) ? 'hours' : null,
|
|
152
|
+
sx: _extends({
|
|
153
|
+
width: 'auto',
|
|
154
|
+
[`&.${digitalClockClasses.root}`]: {
|
|
155
|
+
maxHeight: VIEW_HEIGHT
|
|
156
|
+
}
|
|
157
|
+
}, Array.isArray(sx) ? sx : [sx])
|
|
158
|
+
})) : renderMultiSectionDigitalClockTimeView(_extends({}, commonTimeProps, {
|
|
113
159
|
view: isInternalTimeView(view) ? view : 'hours',
|
|
114
|
-
onViewChange: onViewChange,
|
|
115
|
-
focusedView: focusedView && isInternalTimeView(focusedView) ? focusedView : null,
|
|
116
|
-
onFocusedViewChange: onFocusedViewChange,
|
|
117
160
|
views: views.filter(isInternalTimeView),
|
|
118
|
-
|
|
119
|
-
defaultValue: defaultValue,
|
|
120
|
-
referenceDate: referenceDate,
|
|
121
|
-
onChange: onChange,
|
|
122
|
-
className: className,
|
|
123
|
-
classes: classes,
|
|
124
|
-
disableFuture: disableFuture,
|
|
125
|
-
disablePast: disablePast,
|
|
126
|
-
minTime: minTime,
|
|
127
|
-
maxTime: maxTime,
|
|
128
|
-
shouldDisableTime: shouldDisableTime,
|
|
129
|
-
shouldDisableClock: shouldDisableClock,
|
|
130
|
-
minutesStep: minutesStep,
|
|
131
|
-
ampm: ampm,
|
|
132
|
-
components: components,
|
|
133
|
-
componentsProps: componentsProps,
|
|
134
|
-
slots: slots,
|
|
135
|
-
slotProps: slotProps,
|
|
136
|
-
readOnly: readOnly,
|
|
137
|
-
disabled: disabled,
|
|
161
|
+
focusedView: focusedView && isInternalTimeView(focusedView) ? focusedView : null,
|
|
138
162
|
sx: _extends({
|
|
139
163
|
borderBottom: 0,
|
|
140
164
|
width: 'auto',
|
|
141
165
|
[`.${multiSectionDigitalClockSectionClasses.root}`]: {
|
|
142
166
|
maxHeight: '100%'
|
|
143
167
|
}
|
|
144
|
-
}, Array.isArray(sx) ? sx : [sx])
|
|
145
|
-
|
|
146
|
-
disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,
|
|
147
|
-
timeSteps: timeSteps,
|
|
148
|
-
skipDisabled: skipDisabled,
|
|
149
|
-
timezone: timezone
|
|
150
|
-
})]
|
|
168
|
+
}, Array.isArray(sx) ? sx : [sx])
|
|
169
|
+
}))]
|
|
151
170
|
})]
|
|
152
171
|
}), isActionBarVisible && /*#__PURE__*/_jsx(Divider, {})]
|
|
153
172
|
});
|
package/index.js
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import Stack from '@mui/material/Stack';
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
export function FakeTextField(props) {
|
|
6
|
+
const {
|
|
7
|
+
sections
|
|
8
|
+
} = props;
|
|
9
|
+
return /*#__PURE__*/_jsx(Stack, {
|
|
10
|
+
direction: "row",
|
|
11
|
+
spacing: 1,
|
|
12
|
+
children: sections.map(section => /*#__PURE__*/_jsxs(React.Fragment, {
|
|
13
|
+
children: [section.startSeparator, /*#__PURE__*/_jsx("input", {
|
|
14
|
+
value: section.value,
|
|
15
|
+
onChange: () => {}
|
|
16
|
+
}), section.endSeparator]
|
|
17
|
+
}))
|
|
18
|
+
});
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FakeTextField } from './FakeTextField';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FakeTextField } from './FakeTextField';
|
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
import { DateOrTimeView, MuiPickersAdapter } from '../../models';
|
|
2
|
+
import { DateOrTimeViewWithMeridiem } from '../models';
|
|
3
|
+
import { DesktopOnlyTimePickerProps } from '../models/props/clock';
|
|
4
|
+
import { DefaultizedProps } from '../models/helpers';
|
|
2
5
|
export declare const resolveDateTimeFormat: (utils: MuiPickersAdapter<any>, { views, format, ...other }: {
|
|
3
6
|
format?: string | undefined;
|
|
4
7
|
views: readonly DateOrTimeView[];
|
|
5
8
|
ampm: boolean;
|
|
6
9
|
}) => string;
|
|
10
|
+
interface DefaultizedTimeViewsProps<TDate, TView = DateOrTimeView> extends DefaultizedProps<DesktopOnlyTimePickerProps<TDate>, 'ampm'> {
|
|
11
|
+
views: readonly TView[];
|
|
12
|
+
}
|
|
13
|
+
interface DefaultizedTimeViewsResponse<TDate, TView = DateOrTimeViewWithMeridiem> extends Required<Pick<DefaultizedTimeViewsProps<TDate, TView>, 'thresholdToRenderTimeInASingleColumn' | 'timeSteps' | 'views'>> {
|
|
14
|
+
shouldRenderTimeInASingleColumn: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function resolveTimeViewsResponse<TDate, InTView extends DateOrTimeView = DateOrTimeView, OutTView extends DateOrTimeViewWithMeridiem = DateOrTimeViewWithMeridiem>({ thresholdToRenderTimeInASingleColumn: inThreshold, ampm, timeSteps: inTimeSteps, views, }: DefaultizedTimeViewsProps<TDate, InTView>): DefaultizedTimeViewsResponse<TDate, OutTView>;
|
|
17
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
const _excluded = ["views", "format"];
|
|
4
|
-
import { resolveTimeFormat, isTimeView } from './time-utils';
|
|
4
|
+
import { resolveTimeFormat, isTimeView, isInternalTimeView } from './time-utils';
|
|
5
5
|
import { resolveDateFormat } from './date-utils';
|
|
6
6
|
export const resolveDateTimeFormat = (utils, _ref) => {
|
|
7
7
|
let {
|
|
@@ -38,4 +38,34 @@ export const resolveDateTimeFormat = (utils, _ref) => {
|
|
|
38
38
|
views: dateViews
|
|
39
39
|
}, other), false);
|
|
40
40
|
return `${dateFormat} ${timeFormat}`;
|
|
41
|
-
};
|
|
41
|
+
};
|
|
42
|
+
const resolveViews = (ampm, views, shouldUseSingleColumn) => {
|
|
43
|
+
if (shouldUseSingleColumn) {
|
|
44
|
+
return views.filter(view => !isInternalTimeView(view) || view === 'hours');
|
|
45
|
+
}
|
|
46
|
+
return ampm ? [...views, 'meridiem'] : views;
|
|
47
|
+
};
|
|
48
|
+
const resolveShouldRenderTimeInASingleColumn = (timeSteps, threshold) => {
|
|
49
|
+
var _timeSteps$hours, _timeSteps$minutes;
|
|
50
|
+
return 24 * 60 / (((_timeSteps$hours = timeSteps.hours) != null ? _timeSteps$hours : 1) * ((_timeSteps$minutes = timeSteps.minutes) != null ? _timeSteps$minutes : 5)) <= threshold;
|
|
51
|
+
};
|
|
52
|
+
export function resolveTimeViewsResponse({
|
|
53
|
+
thresholdToRenderTimeInASingleColumn: inThreshold,
|
|
54
|
+
ampm,
|
|
55
|
+
timeSteps: inTimeSteps,
|
|
56
|
+
views
|
|
57
|
+
}) {
|
|
58
|
+
const thresholdToRenderTimeInASingleColumn = inThreshold != null ? inThreshold : 24;
|
|
59
|
+
const timeSteps = _extends({
|
|
60
|
+
hours: 1,
|
|
61
|
+
minutes: 5,
|
|
62
|
+
seconds: 5
|
|
63
|
+
}, inTimeSteps);
|
|
64
|
+
const shouldRenderTimeInASingleColumn = resolveShouldRenderTimeInASingleColumn(timeSteps, thresholdToRenderTimeInASingleColumn);
|
|
65
|
+
return {
|
|
66
|
+
thresholdToRenderTimeInASingleColumn,
|
|
67
|
+
timeSteps,
|
|
68
|
+
shouldRenderTimeInASingleColumn,
|
|
69
|
+
views: resolveViews(ampm, views, shouldRenderTimeInASingleColumn)
|
|
70
|
+
};
|
|
71
|
+
}
|
|
@@ -309,14 +309,16 @@ export var AdapterDayjs = /*#__PURE__*/_createClass(function AdapterDayjs() {
|
|
|
309
309
|
return parsedValue.locale(_this.locale);
|
|
310
310
|
};
|
|
311
311
|
this.getTimezone = function (value) {
|
|
312
|
-
if (_this.hasUTCPlugin() && value.isUTC()) {
|
|
313
|
-
return 'UTC';
|
|
314
|
-
}
|
|
315
312
|
if (_this.hasTimezonePlugin()) {
|
|
316
313
|
var _value$$x;
|
|
317
314
|
// @ts-ignore
|
|
318
315
|
var zone = (_value$$x = value.$x) == null ? void 0 : _value$$x.$timezone;
|
|
319
|
-
|
|
316
|
+
if (zone) {
|
|
317
|
+
return zone;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
if (_this.hasUTCPlugin() && value.isUTC()) {
|
|
321
|
+
return 'UTC';
|
|
320
322
|
}
|
|
321
323
|
return 'system';
|
|
322
324
|
};
|
|
@@ -247,16 +247,13 @@ export var AdapterMoment = /*#__PURE__*/_createClass(function AdapterMoment() {
|
|
|
247
247
|
};
|
|
248
248
|
this.getTimezone = function (value) {
|
|
249
249
|
var _value$_z, _ref2, _this$moment$defaultZ;
|
|
250
|
-
if (value.isUTC()) {
|
|
251
|
-
return 'UTC';
|
|
252
|
-
}
|
|
253
|
-
|
|
254
250
|
// @ts-ignore
|
|
255
251
|
// eslint-disable-next-line no-underscore-dangle
|
|
256
252
|
var zone = (_value$_z = value._z) == null ? void 0 : _value$_z.name;
|
|
253
|
+
var defaultZone = value.isUTC() ? 'UTC' : 'system';
|
|
257
254
|
|
|
258
255
|
// @ts-ignore
|
|
259
|
-
return (_ref2 = zone != null ? zone : (_this$moment$defaultZ = _this.moment.defaultZone) == null ? void 0 : _this$moment$defaultZ.name) != null ? _ref2 :
|
|
256
|
+
return (_ref2 = zone != null ? zone : (_this$moment$defaultZ = _this.moment.defaultZone) == null ? void 0 : _this$moment$defaultZ.name) != null ? _ref2 : defaultZone;
|
|
260
257
|
};
|
|
261
258
|
this.setTimezone = function (value, timezone) {
|
|
262
259
|
var _this$moment$defaultZ2, _this$moment$defaultZ3;
|
|
@@ -12,6 +12,16 @@ import { refType } from '@mui/utils';
|
|
|
12
12
|
import { useDateField } from './useDateField';
|
|
13
13
|
import { useClearableField } from '../hooks';
|
|
14
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
|
+
/**
|
|
16
|
+
* Demos:
|
|
17
|
+
*
|
|
18
|
+
* - [DateField](http://mui.com/x/react-date-pickers/date-field/)
|
|
19
|
+
* - [Fields](https://mui.com/x/react-date-pickers/fields/)
|
|
20
|
+
*
|
|
21
|
+
* API:
|
|
22
|
+
*
|
|
23
|
+
* - [DateField API](https://mui.com/x/api/date-pickers/date-field/)
|
|
24
|
+
*/
|
|
15
25
|
var DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, ref) {
|
|
16
26
|
var _ref, _slots$textField, _slotProps$textField;
|
|
17
27
|
var themeProps = useThemeProps({
|
|
@@ -12,6 +12,16 @@ import { refType } from '@mui/utils';
|
|
|
12
12
|
import { useDateTimeField } from './useDateTimeField';
|
|
13
13
|
import { useClearableField } from '../hooks';
|
|
14
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
|
+
/**
|
|
16
|
+
* Demos:
|
|
17
|
+
*
|
|
18
|
+
* - [DateTimeField](http://mui.com/x/react-date-pickers/date-time-field/)
|
|
19
|
+
* - [Fields](https://mui.com/x/react-date-pickers/fields/)
|
|
20
|
+
*
|
|
21
|
+
* API:
|
|
22
|
+
*
|
|
23
|
+
* - [DateTimeField API](https://mui.com/x/api/date-pickers/date-time-field/)
|
|
24
|
+
*/
|
|
15
25
|
var DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps, ref) {
|
|
16
26
|
var _ref, _slots$textField, _slotProps$textField;
|
|
17
27
|
var themeProps = useThemeProps({
|
|
@@ -10,6 +10,16 @@ import { DesktopDateTimePicker } from '../DesktopDateTimePicker';
|
|
|
10
10
|
import { MobileDateTimePicker } from '../MobileDateTimePicker';
|
|
11
11
|
import { DEFAULT_DESKTOP_MODE_MEDIA_QUERY } from '../internals/utils/utils';
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
/**
|
|
14
|
+
* Demos:
|
|
15
|
+
*
|
|
16
|
+
* - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)
|
|
17
|
+
* - [Validation](https://mui.com/x/react-date-pickers/validation/)
|
|
18
|
+
*
|
|
19
|
+
* API:
|
|
20
|
+
*
|
|
21
|
+
* - [DateTimePicker API](https://mui.com/x/api/date-pickers/date-time-picker/)
|
|
22
|
+
*/
|
|
13
23
|
var DateTimePicker = /*#__PURE__*/React.forwardRef(function DateTimePicker(inProps, ref) {
|
|
14
24
|
var props = useThemeProps({
|
|
15
25
|
props: inProps,
|
|
@@ -376,6 +386,11 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
|
|
|
376
386
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
377
387
|
*/
|
|
378
388
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
389
|
+
/**
|
|
390
|
+
* Amount of time options below or at which the single column time renderer is used.
|
|
391
|
+
* @default 24
|
|
392
|
+
*/
|
|
393
|
+
thresholdToRenderTimeInASingleColumn: PropTypes.number,
|
|
379
394
|
/**
|
|
380
395
|
* The time steps between two time unit options.
|
|
381
396
|
* For example, if `timeStep.minutes = 8`, then the available minute options will be `[0, 8, 16, 24, 32, 40, 48, 56]`.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
2
|
import * as React from 'react';
|
|
4
3
|
import PropTypes from 'prop-types';
|
|
@@ -14,7 +13,17 @@ import { validateDateTime } from '../internals/utils/validation/validateDateTime
|
|
|
14
13
|
import { CalendarIcon } from '../icons';
|
|
15
14
|
import { useDesktopPicker } from '../internals/hooks/useDesktopPicker';
|
|
16
15
|
import { extractValidationProps } from '../internals/utils/validation/extractValidationProps';
|
|
17
|
-
import { resolveDateTimeFormat } from '../internals/utils/date-time-utils';
|
|
16
|
+
import { resolveDateTimeFormat, resolveTimeViewsResponse } from '../internals/utils/date-time-utils';
|
|
17
|
+
/**
|
|
18
|
+
* Demos:
|
|
19
|
+
*
|
|
20
|
+
* - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)
|
|
21
|
+
* - [Validation](https://mui.com/x/react-date-pickers/validation/)
|
|
22
|
+
*
|
|
23
|
+
* API:
|
|
24
|
+
*
|
|
25
|
+
* - [DesktopDateTimePicker API](https://mui.com/x/api/date-pickers/desktop-date-time-picker/)
|
|
26
|
+
*/
|
|
18
27
|
var DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDateTimePicker(inProps, ref) {
|
|
19
28
|
var _defaultizedProps$amp, _defaultizedProps$yea, _defaultizedProps$slo2, _defaultizedProps$slo3, _defaultizedProps$slo4, _props$localeText$ope, _props$localeText;
|
|
20
29
|
var localeText = useLocaleText();
|
|
@@ -22,11 +31,11 @@ var DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDateTi
|
|
|
22
31
|
|
|
23
32
|
// Props with the default values common to all date time pickers
|
|
24
33
|
var defaultizedProps = useDateTimePickerDefaultizedProps(inProps, 'MuiDesktopDateTimePicker');
|
|
25
|
-
var
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
34
|
+
var _resolveTimeViewsResp = resolveTimeViewsResponse(defaultizedProps),
|
|
35
|
+
shouldRenderTimeInASingleColumn = _resolveTimeViewsResp.shouldRenderTimeInASingleColumn,
|
|
36
|
+
thresholdToRenderTimeInASingleColumn = _resolveTimeViewsResp.thresholdToRenderTimeInASingleColumn,
|
|
37
|
+
views = _resolveTimeViewsResp.views,
|
|
38
|
+
timeSteps = _resolveTimeViewsResp.timeSteps;
|
|
30
39
|
var shouldUseNewRenderer = !defaultizedProps.viewRenderers || Object.keys(defaultizedProps.viewRenderers).length === 0;
|
|
31
40
|
var viewRenderers =
|
|
32
41
|
// we can only ensure the expected two-column layout if none of the renderers are overridden
|
|
@@ -55,10 +64,12 @@ var DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDateTi
|
|
|
55
64
|
var props = _extends({}, defaultizedProps, {
|
|
56
65
|
viewRenderers: viewRenderers,
|
|
57
66
|
format: resolveDateTimeFormat(utils, defaultizedProps),
|
|
58
|
-
views:
|
|
67
|
+
views: views,
|
|
59
68
|
yearsPerRow: (_defaultizedProps$yea = defaultizedProps.yearsPerRow) != null ? _defaultizedProps$yea : 4,
|
|
60
69
|
ampmInClock: ampmInClock,
|
|
61
70
|
timeSteps: timeSteps,
|
|
71
|
+
thresholdToRenderTimeInASingleColumn: thresholdToRenderTimeInASingleColumn,
|
|
72
|
+
shouldRenderTimeInASingleColumn: shouldRenderTimeInASingleColumn,
|
|
62
73
|
slots: _extends({
|
|
63
74
|
field: DateTimeField,
|
|
64
75
|
openPickerIcon: CalendarIcon
|
|
@@ -431,6 +442,11 @@ DesktopDateTimePicker.propTypes = {
|
|
|
431
442
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
432
443
|
*/
|
|
433
444
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
445
|
+
/**
|
|
446
|
+
* Amount of time options below or at which the single column time renderer is used.
|
|
447
|
+
* @default 24
|
|
448
|
+
*/
|
|
449
|
+
thresholdToRenderTimeInASingleColumn: PropTypes.number,
|
|
434
450
|
/**
|
|
435
451
|
* The time steps between two time unit options.
|
|
436
452
|
* For example, if `timeStep.minutes = 8`, then the available minute options will be `[0, 8, 16, 24, 32, 40, 48, 56]`.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
2
|
import * as React from 'react';
|
|
4
3
|
import PropTypes from 'prop-types';
|
|
@@ -14,20 +13,28 @@ import { useDesktopPicker } from '../internals/hooks/useDesktopPicker';
|
|
|
14
13
|
import { extractValidationProps } from '../internals/utils/validation/extractValidationProps';
|
|
15
14
|
import { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView } from '../timeViewRenderers';
|
|
16
15
|
import { resolveTimeFormat } from '../internals/utils/time-utils';
|
|
16
|
+
import { resolveTimeViewsResponse } from '../internals/utils/date-time-utils';
|
|
17
|
+
/**
|
|
18
|
+
* Demos:
|
|
19
|
+
*
|
|
20
|
+
* - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)
|
|
21
|
+
* - [Validation](https://mui.com/x/react-date-pickers/validation/)
|
|
22
|
+
*
|
|
23
|
+
* API:
|
|
24
|
+
*
|
|
25
|
+
* - [DesktopTimePicker API](https://mui.com/x/api/date-pickers/desktop-time-picker/)
|
|
26
|
+
*/
|
|
17
27
|
var DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePicker(inProps, ref) {
|
|
18
|
-
var _defaultizedProps$
|
|
28
|
+
var _defaultizedProps$amp, _viewRenderers$hours, _defaultizedProps$slo2, _defaultizedProps$slo3, _props$localeText$ope, _props$localeText;
|
|
19
29
|
var localeText = useLocaleText();
|
|
20
30
|
var utils = useUtils();
|
|
21
31
|
|
|
22
32
|
// Props with the default values common to all time pickers
|
|
23
33
|
var defaultizedProps = useTimePickerDefaultizedProps(inProps, 'MuiDesktopTimePicker');
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
seconds: 5
|
|
29
|
-
}, defaultizedProps.timeSteps);
|
|
30
|
-
var shouldRenderTimeInASingleColumn = 24 * 60 / (timeSteps.hours * timeSteps.minutes) <= thresholdToRenderTimeInASingleColumn;
|
|
34
|
+
var _resolveTimeViewsResp = resolveTimeViewsResponse(defaultizedProps),
|
|
35
|
+
shouldRenderTimeInASingleColumn = _resolveTimeViewsResp.shouldRenderTimeInASingleColumn,
|
|
36
|
+
resolvedViews = _resolveTimeViewsResp.views,
|
|
37
|
+
timeSteps = _resolveTimeViewsResp.timeSteps;
|
|
31
38
|
var renderTimeView = shouldRenderTimeInASingleColumn ? renderDigitalClockTimeView : renderMultiSectionDigitalClockTimeView;
|
|
32
39
|
var viewRenderers = _extends({
|
|
33
40
|
hours: renderTimeView,
|
|
@@ -39,7 +46,9 @@ var DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePicker
|
|
|
39
46
|
var actionBarActions = shouldRenderTimeInASingleColumn ? [] : ['accept'];
|
|
40
47
|
// Need to avoid adding the `meridiem` view when unexpected renderer is specified
|
|
41
48
|
var shouldHoursRendererContainMeridiemView = ((_viewRenderers$hours = viewRenderers.hours) == null ? void 0 : _viewRenderers$hours.name) === renderMultiSectionDigitalClockTimeView.name;
|
|
42
|
-
var views =
|
|
49
|
+
var views = !shouldHoursRendererContainMeridiemView ? resolvedViews.filter(function (view) {
|
|
50
|
+
return view !== 'meridiem';
|
|
51
|
+
}) : resolvedViews;
|
|
43
52
|
|
|
44
53
|
// Props with the default values specific to the desktop variant
|
|
45
54
|
var props = _extends({}, defaultizedProps, {
|
|
@@ -166,7 +166,7 @@ export var DigitalClock = /*#__PURE__*/React.forwardRef(function DigitalClock(in
|
|
|
166
166
|
timezone: timezone
|
|
167
167
|
});
|
|
168
168
|
var handleValueChange = useEventCallback(function (newValue) {
|
|
169
|
-
return handleRawValueChange(newValue, 'finish');
|
|
169
|
+
return handleRawValueChange(newValue, 'finish', 'hours');
|
|
170
170
|
});
|
|
171
171
|
var _useViews = useViews({
|
|
172
172
|
view: inView,
|
|
@@ -13,6 +13,16 @@ import { extractValidationProps } from '../internals/utils/validation/extractVal
|
|
|
13
13
|
import { renderDateViewCalendar } from '../dateViewRenderers';
|
|
14
14
|
import { renderTimeViewClock } from '../timeViewRenderers';
|
|
15
15
|
import { resolveDateTimeFormat } from '../internals/utils/date-time-utils';
|
|
16
|
+
/**
|
|
17
|
+
* Demos:
|
|
18
|
+
*
|
|
19
|
+
* - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)
|
|
20
|
+
* - [Validation](https://mui.com/x/react-date-pickers/validation/)
|
|
21
|
+
*
|
|
22
|
+
* API:
|
|
23
|
+
*
|
|
24
|
+
* - [MobileDateTimePicker API](https://mui.com/x/api/date-pickers/mobile-date-time-picker/)
|
|
25
|
+
*/
|
|
16
26
|
var MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTimePicker(inProps, ref) {
|
|
17
27
|
var _defaultizedProps$amp, _defaultizedProps$slo2, _defaultizedProps$slo3, _props$localeText$ope, _props$localeText;
|
|
18
28
|
var localeText = useLocaleText();
|
|
@@ -12,6 +12,16 @@ import { useMobilePicker } from '../internals/hooks/useMobilePicker';
|
|
|
12
12
|
import { extractValidationProps } from '../internals/utils/validation/extractValidationProps';
|
|
13
13
|
import { renderTimeViewClock } from '../timeViewRenderers';
|
|
14
14
|
import { resolveTimeFormat } from '../internals/utils/time-utils';
|
|
15
|
+
/**
|
|
16
|
+
* Demos:
|
|
17
|
+
*
|
|
18
|
+
* - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)
|
|
19
|
+
* - [Validation](https://mui.com/x/react-date-pickers/validation/)
|
|
20
|
+
*
|
|
21
|
+
* API:
|
|
22
|
+
*
|
|
23
|
+
* - [MobileTimePicker API](https://mui.com/x/api/date-pickers/mobile-time-picker/)
|
|
24
|
+
*/
|
|
15
25
|
var MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker(inProps, ref) {
|
|
16
26
|
var _defaultizedProps$amp, _defaultizedProps$slo2, _props$localeText$ope, _props$localeText;
|
|
17
27
|
var localeText = useLocaleText();
|
|
@@ -7,6 +7,16 @@ import { renderDateViewCalendar } from '../dateViewRenderers';
|
|
|
7
7
|
import { singleItemValueManager } from '../internals/utils/valueManagers';
|
|
8
8
|
import { useStaticPicker } from '../internals/hooks/useStaticPicker';
|
|
9
9
|
import { validateDateTime } from '../internals/utils/validation/validateDateTime';
|
|
10
|
+
/**
|
|
11
|
+
* Demos:
|
|
12
|
+
*
|
|
13
|
+
* - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)
|
|
14
|
+
* - [Validation](https://mui.com/x/react-date-pickers/validation/)
|
|
15
|
+
*
|
|
16
|
+
* API:
|
|
17
|
+
*
|
|
18
|
+
* - [StaticDateTimePicker API](https://mui.com/x/api/date-pickers/static-date-time-picker/)
|
|
19
|
+
*/
|
|
10
20
|
var StaticDateTimePicker = /*#__PURE__*/React.forwardRef(function StaticDateTimePicker(inProps, ref) {
|
|
11
21
|
var _defaultizedProps$dis, _defaultizedProps$amp, _defaultizedProps$yea, _defaultizedProps$slo, _defaultizedProps$slo2;
|
|
12
22
|
var defaultizedProps = useDateTimePickerDefaultizedProps(inProps, 'MuiStaticDateTimePicker');
|
|
@@ -6,6 +6,16 @@ import { renderTimeViewClock } from '../timeViewRenderers';
|
|
|
6
6
|
import { singleItemValueManager } from '../internals/utils/valueManagers';
|
|
7
7
|
import { useStaticPicker } from '../internals/hooks/useStaticPicker';
|
|
8
8
|
import { validateTime } from '../internals/utils/validation/validateTime';
|
|
9
|
+
/**
|
|
10
|
+
* Demos:
|
|
11
|
+
*
|
|
12
|
+
* - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)
|
|
13
|
+
* - [Validation](https://mui.com/x/react-date-pickers/validation/)
|
|
14
|
+
*
|
|
15
|
+
* API:
|
|
16
|
+
*
|
|
17
|
+
* - [StaticTimePicker API](https://mui.com/x/api/date-pickers/static-time-picker/)
|
|
18
|
+
*/
|
|
9
19
|
var StaticTimePicker = /*#__PURE__*/React.forwardRef(function StaticTimePicker(inProps, ref) {
|
|
10
20
|
var _defaultizedProps$dis, _defaultizedProps$amp, _defaultizedProps$slo;
|
|
11
21
|
var defaultizedProps = useTimePickerDefaultizedProps(inProps, 'MuiStaticTimePicker');
|
|
@@ -12,6 +12,16 @@ import { refType } from '@mui/utils';
|
|
|
12
12
|
import { useTimeField } from './useTimeField';
|
|
13
13
|
import { useClearableField } from '../hooks';
|
|
14
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
|
+
/**
|
|
16
|
+
* Demos:
|
|
17
|
+
*
|
|
18
|
+
* - [TimeField](http://mui.com/x/react-date-pickers/time-field/)
|
|
19
|
+
* - [Fields](https://mui.com/x/react-date-pickers/fields/)
|
|
20
|
+
*
|
|
21
|
+
* API:
|
|
22
|
+
*
|
|
23
|
+
* - [TimeField API](https://mui.com/x/api/date-pickers/time-field/)
|
|
24
|
+
*/
|
|
15
25
|
var TimeField = /*#__PURE__*/React.forwardRef(function TimeField(inProps, ref) {
|
|
16
26
|
var _ref, _slots$textField, _slotProps$textField;
|
|
17
27
|
var themeProps = useThemeProps({
|
|
@@ -10,6 +10,16 @@ import { DesktopTimePicker } from '../DesktopTimePicker';
|
|
|
10
10
|
import { MobileTimePicker } from '../MobileTimePicker';
|
|
11
11
|
import { DEFAULT_DESKTOP_MODE_MEDIA_QUERY } from '../internals/utils/utils';
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
/**
|
|
14
|
+
* Demos:
|
|
15
|
+
*
|
|
16
|
+
* - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)
|
|
17
|
+
* - [Validation](https://mui.com/x/react-date-pickers/validation/)
|
|
18
|
+
*
|
|
19
|
+
* API:
|
|
20
|
+
*
|
|
21
|
+
* - [TimePicker API](https://mui.com/x/api/date-pickers/time-picker/)
|
|
22
|
+
*/
|
|
13
23
|
var TimePicker = /*#__PURE__*/React.forwardRef(function TimePicker(inProps, ref) {
|
|
14
24
|
var props = useThemeProps({
|
|
15
25
|
props: inProps,
|