@mui/x-date-pickers 6.10.2 → 6.11.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/AdapterDayjs/AdapterDayjs.d.ts +8 -1
- package/AdapterDayjs/AdapterDayjs.js +66 -38
- package/CHANGELOG.md +92 -0
- package/DateCalendar/DateCalendar.d.ts +1 -1
- package/DateCalendar/DateCalendar.js +48 -38
- package/DateCalendar/DateCalendar.types.d.ts +9 -1
- package/DateCalendar/index.d.ts +1 -2
- package/DateCalendar/index.js +3 -2
- package/DateCalendar/useCalendarState.d.ts +1 -1
- package/DateField/DateField.d.ts +1 -1
- package/DateField/DateField.js +2 -2
- package/DatePicker/DatePicker.d.ts +1 -1
- package/DatePicker/DatePickerToolbar.d.ts +1 -1
- package/DateTimeField/DateTimeField.d.ts +1 -1
- package/DateTimeField/DateTimeField.js +2 -2
- package/DateTimePicker/DateTimePicker.d.ts +1 -1
- package/DayCalendarSkeleton/DayCalendarSkeleton.d.ts +1 -1
- package/DesktopDatePicker/DesktopDatePicker.d.ts +1 -1
- package/DesktopDatePicker/DesktopDatePicker.js +2 -2
- package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +1 -1
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
- package/DesktopTimePicker/DesktopTimePicker.d.ts +1 -1
- package/DesktopTimePicker/DesktopTimePicker.js +2 -2
- package/DigitalClock/DigitalClock.d.ts +1 -1
- package/LocalizationProvider/LocalizationProvider.d.ts +1 -1
- package/MobileDatePicker/MobileDatePicker.d.ts +1 -1
- package/MobileDatePicker/MobileDatePicker.js +2 -2
- package/MobileDateTimePicker/MobileDateTimePicker.d.ts +1 -1
- package/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
- package/MobileTimePicker/MobileTimePicker.d.ts +1 -1
- package/MobileTimePicker/MobileTimePicker.js +2 -2
- package/MonthCalendar/MonthCalendar.d.ts +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.d.ts +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +1 -1
- package/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.d.ts +21 -9
- package/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.js +72 -28
- package/PickersCalendarHeader/index.d.ts +4 -0
- package/PickersCalendarHeader/index.js +2 -0
- package/PickersCalendarHeader/package.json +6 -0
- package/PickersDay/PickersDay.d.ts +1 -1
- package/StaticDatePicker/StaticDatePicker.d.ts +1 -1
- package/StaticDateTimePicker/StaticDateTimePicker.d.ts +1 -1
- package/StaticTimePicker/StaticTimePicker.d.ts +1 -1
- package/TimeClock/ClockNumbers.d.ts +1 -1
- package/TimeClock/TimeClock.d.ts +1 -1
- package/TimeField/TimeField.d.ts +1 -1
- package/TimeField/TimeField.js +2 -2
- package/TimePicker/TimePicker.d.ts +1 -1
- package/YearCalendar/YearCalendar.d.ts +2 -2
- package/index.js +1 -1
- package/internals/components/PickersModalDialog.d.ts +2 -2
- package/internals/components/PickersPopper.d.ts +3 -3
- package/internals/components/PickersToolbar.d.ts +1 -1
- package/internals/hooks/date-helpers-hooks.d.ts +1 -2
- package/internals/hooks/useDefaultReduceAnimations.d.ts +2 -0
- package/internals/hooks/useDefaultReduceAnimations.js +9 -0
- package/internals/hooks/useField/useField.js +9 -4
- package/internals/hooks/useField/useField.utils.d.ts +1 -1
- package/internals/hooks/useField/useField.utils.js +6 -5
- package/internals/index.d.ts +1 -3
- package/internals/index.js +1 -2
- package/internals/utils/valueManagers.js +1 -1
- package/legacy/AdapterDayjs/AdapterDayjs.js +64 -38
- package/legacy/DateCalendar/DateCalendar.js +50 -40
- package/legacy/DateCalendar/index.js +3 -2
- package/legacy/DateField/DateField.js +2 -2
- package/legacy/DateTimeField/DateTimeField.js +2 -2
- package/legacy/DesktopDatePicker/DesktopDatePicker.js +2 -2
- package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
- package/legacy/DesktopTimePicker/DesktopTimePicker.js +2 -2
- package/legacy/MobileDatePicker/MobileDatePicker.js +2 -2
- package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
- package/legacy/MobileTimePicker/MobileTimePicker.js +2 -2
- package/legacy/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.js +57 -13
- package/legacy/PickersCalendarHeader/index.js +2 -0
- package/legacy/TimeField/TimeField.js +2 -2
- package/legacy/index.js +1 -1
- package/legacy/internals/hooks/useDefaultReduceAnimations.js +9 -0
- package/legacy/internals/hooks/useField/useField.js +9 -4
- package/legacy/internals/hooks/useField/useField.utils.js +6 -5
- package/legacy/internals/index.js +1 -2
- package/legacy/internals/utils/valueManagers.js +1 -1
- package/legacy/tests/describeGregorianAdapter/testCalculations.js +63 -16
- package/modern/AdapterDayjs/AdapterDayjs.js +65 -38
- package/modern/DateCalendar/DateCalendar.js +46 -38
- package/modern/DateCalendar/index.js +3 -2
- package/modern/DateField/DateField.js +2 -2
- package/modern/DateTimeField/DateTimeField.js +2 -2
- package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -1
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -1
- package/modern/DesktopTimePicker/DesktopTimePicker.js +1 -1
- package/modern/MobileDatePicker/MobileDatePicker.js +1 -1
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
- package/modern/MobileTimePicker/MobileTimePicker.js +1 -1
- package/modern/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.js +72 -28
- package/modern/PickersCalendarHeader/index.js +2 -0
- package/modern/TimeField/TimeField.js +2 -2
- package/modern/index.js +1 -1
- package/modern/internals/hooks/useDefaultReduceAnimations.js +9 -0
- package/modern/internals/hooks/useField/useField.js +9 -4
- package/modern/internals/hooks/useField/useField.utils.js +6 -5
- package/modern/internals/index.js +1 -2
- package/modern/internals/utils/valueManagers.js +1 -1
- package/modern/tests/describeGregorianAdapter/testCalculations.js +63 -16
- package/node/AdapterDayjs/AdapterDayjs.js +65 -38
- package/node/DateCalendar/DateCalendar.js +52 -44
- package/node/DateCalendar/index.js +21 -8
- package/node/DateField/DateField.js +2 -2
- package/node/DateTimeField/DateTimeField.js +2 -2
- package/node/DesktopDatePicker/DesktopDatePicker.js +1 -1
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -1
- package/node/DesktopTimePicker/DesktopTimePicker.js +1 -1
- package/node/MobileDatePicker/MobileDatePicker.js +1 -1
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
- package/node/MobileTimePicker/MobileTimePicker.js +1 -1
- package/node/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.js +73 -29
- package/node/PickersCalendarHeader/index.js +19 -0
- package/node/TimeField/TimeField.js +2 -2
- package/node/index.js +1 -1
- package/node/internals/hooks/useDefaultReduceAnimations.js +18 -0
- package/node/internals/hooks/useField/useField.js +9 -4
- package/node/internals/hooks/useField/useField.utils.js +6 -5
- package/node/internals/index.js +7 -14
- package/node/internals/utils/valueManagers.js +1 -1
- package/node/tests/describeGregorianAdapter/testCalculations.js +61 -16
- package/package.json +2 -2
- package/tests/describeGregorianAdapter/testCalculations.js +63 -16
- package/themeAugmentation/props.d.ts +2 -2
- package/internals/utils/defaultReduceAnimations.d.ts +0 -1
- package/internals/utils/defaultReduceAnimations.js +0 -1
- package/legacy/internals/utils/defaultReduceAnimations.js +0 -1
- package/modern/internals/utils/defaultReduceAnimations.js +0 -1
- package/node/internals/utils/defaultReduceAnimations.js +0 -8
- /package/{DateCalendar → PickersCalendarHeader}/pickersCalendarHeaderClasses.d.ts +0 -0
- /package/{DateCalendar → PickersCalendarHeader}/pickersCalendarHeaderClasses.js +0 -0
- /package/legacy/{DateCalendar → PickersCalendarHeader}/pickersCalendarHeaderClasses.js +0 -0
- /package/modern/{DateCalendar → PickersCalendarHeader}/pickersCalendarHeaderClasses.js +0 -0
- /package/node/{DateCalendar → PickersCalendarHeader}/pickersCalendarHeaderClasses.js +0 -0
|
@@ -4,23 +4,26 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.PickersCalendarHeader =
|
|
7
|
+
exports.PickersCalendarHeader = void 0;
|
|
8
8
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
11
13
|
var _Fade = _interopRequireDefault(require("@mui/material/Fade"));
|
|
12
14
|
var _styles = require("@mui/material/styles");
|
|
13
15
|
var _utils = require("@mui/base/utils");
|
|
14
16
|
var _utils2 = require("@mui/utils");
|
|
15
17
|
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
16
18
|
var _useUtils = require("../internals/hooks/useUtils");
|
|
17
|
-
var _PickersFadeTransitionGroup = require("
|
|
19
|
+
var _PickersFadeTransitionGroup = require("../DateCalendar/PickersFadeTransitionGroup");
|
|
18
20
|
var _icons = require("../icons");
|
|
19
21
|
var _PickersArrowSwitcher = require("../internals/components/PickersArrowSwitcher");
|
|
20
22
|
var _dateHelpersHooks = require("../internals/hooks/date-helpers-hooks");
|
|
21
23
|
var _pickersCalendarHeaderClasses = require("./pickersCalendarHeaderClasses");
|
|
22
24
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
-
const _excluded = ["
|
|
25
|
+
const _excluded = ["slots", "slotProps", "currentMonth", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onMonthChange", "onViewChange", "view", "reduceAnimations", "views", "labelId", "className", "timezone"],
|
|
26
|
+
_excluded2 = ["ownerState"]; // We keep the interface to allow module augmentation
|
|
24
27
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
28
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
26
29
|
const useUtilityClasses = ownerState => {
|
|
@@ -97,11 +100,7 @@ const PickersCalendarHeaderSwitchViewIcon = (0, _styles.styled)(_icons.ArrowDrop
|
|
|
97
100
|
transition: theme.transitions.create('transform'),
|
|
98
101
|
transform: 'rotate(0deg)'
|
|
99
102
|
}));
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* @ignore - do not document.
|
|
103
|
-
*/
|
|
104
|
-
function PickersCalendarHeader(inProps) {
|
|
103
|
+
const PickersCalendarHeader = /*#__PURE__*/React.forwardRef(function PickersCalendarHeader(inProps, ref) {
|
|
105
104
|
const localeText = (0, _useUtils.useLocaleText)();
|
|
106
105
|
const utils = (0, _useUtils.useUtils)();
|
|
107
106
|
const props = (0, _styles.useThemeProps)({
|
|
@@ -109,22 +108,24 @@ function PickersCalendarHeader(inProps) {
|
|
|
109
108
|
name: 'MuiPickersCalendarHeader'
|
|
110
109
|
});
|
|
111
110
|
const {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
111
|
+
slots,
|
|
112
|
+
slotProps,
|
|
113
|
+
currentMonth: month,
|
|
114
|
+
disabled,
|
|
115
|
+
disableFuture,
|
|
116
|
+
disablePast,
|
|
117
|
+
maxDate,
|
|
118
|
+
minDate,
|
|
119
|
+
onMonthChange,
|
|
120
|
+
onViewChange,
|
|
121
|
+
view,
|
|
122
|
+
reduceAnimations,
|
|
123
|
+
views,
|
|
124
|
+
labelId,
|
|
125
|
+
className,
|
|
126
|
+
timezone
|
|
127
|
+
} = props,
|
|
128
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
128
129
|
const ownerState = props;
|
|
129
130
|
const classes = useUtilityClasses(props);
|
|
130
131
|
const SwitchViewButton = slots?.switchViewButton ?? PickersCalendarHeaderSwitchViewButton;
|
|
@@ -146,7 +147,7 @@ function PickersCalendarHeader(inProps) {
|
|
|
146
147
|
ownerState: undefined,
|
|
147
148
|
className: classes.switchViewIcon
|
|
148
149
|
}),
|
|
149
|
-
switchViewIconProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps,
|
|
150
|
+
switchViewIconProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded2);
|
|
150
151
|
const selectNextMonth = () => onMonthChange(utils.addMonths(month, 1), 'left');
|
|
151
152
|
const selectPreviousMonth = () => onMonthChange(utils.addMonths(month, -1), 'right');
|
|
152
153
|
const isNextMonthDisabled = (0, _dateHelpersHooks.useNextMonthDisabled)(month, {
|
|
@@ -176,9 +177,10 @@ function PickersCalendarHeader(inProps) {
|
|
|
176
177
|
if (views.length === 1 && views[0] === 'year') {
|
|
177
178
|
return null;
|
|
178
179
|
}
|
|
179
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(PickersCalendarHeaderRoot, {
|
|
180
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(PickersCalendarHeaderRoot, (0, _extends2.default)({}, other, {
|
|
180
181
|
ownerState: ownerState,
|
|
181
|
-
className: classes.root,
|
|
182
|
+
className: (0, _clsx.default)(className, classes.root),
|
|
183
|
+
ref: ref,
|
|
182
184
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(PickersCalendarHeaderLabelContainer, {
|
|
183
185
|
role: "presentation",
|
|
184
186
|
onClick: handleToggleView,
|
|
@@ -212,5 +214,47 @@ function PickersCalendarHeader(inProps) {
|
|
|
212
214
|
nextLabel: localeText.nextMonth
|
|
213
215
|
})
|
|
214
216
|
})]
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
+
}));
|
|
218
|
+
});
|
|
219
|
+
exports.PickersCalendarHeader = PickersCalendarHeader;
|
|
220
|
+
process.env.NODE_ENV !== "production" ? PickersCalendarHeader.propTypes = {
|
|
221
|
+
// ----------------------------- Warning --------------------------------
|
|
222
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
223
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
224
|
+
// ----------------------------------------------------------------------
|
|
225
|
+
/**
|
|
226
|
+
* Override or extend the styles applied to the component.
|
|
227
|
+
*/
|
|
228
|
+
classes: _propTypes.default.object,
|
|
229
|
+
/**
|
|
230
|
+
* className applied to the root element.
|
|
231
|
+
*/
|
|
232
|
+
className: _propTypes.default.string,
|
|
233
|
+
currentMonth: _propTypes.default.any.isRequired,
|
|
234
|
+
disabled: _propTypes.default.bool,
|
|
235
|
+
disableFuture: _propTypes.default.bool,
|
|
236
|
+
disablePast: _propTypes.default.bool,
|
|
237
|
+
labelId: _propTypes.default.string,
|
|
238
|
+
maxDate: _propTypes.default.any.isRequired,
|
|
239
|
+
minDate: _propTypes.default.any.isRequired,
|
|
240
|
+
onMonthChange: _propTypes.default.func.isRequired,
|
|
241
|
+
onViewChange: _propTypes.default.func,
|
|
242
|
+
reduceAnimations: _propTypes.default.bool.isRequired,
|
|
243
|
+
/**
|
|
244
|
+
* The props used for each component slot.
|
|
245
|
+
* @default {}
|
|
246
|
+
*/
|
|
247
|
+
slotProps: _propTypes.default.object,
|
|
248
|
+
/**
|
|
249
|
+
* Overridable component slots.
|
|
250
|
+
* @default {}
|
|
251
|
+
*/
|
|
252
|
+
slots: _propTypes.default.object,
|
|
253
|
+
/**
|
|
254
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
255
|
+
*/
|
|
256
|
+
sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
|
|
257
|
+
timezone: _propTypes.default.string.isRequired,
|
|
258
|
+
view: _propTypes.default.oneOf(['day', 'month', 'year']).isRequired,
|
|
259
|
+
views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day', 'month', 'year']).isRequired).isRequired
|
|
260
|
+
} : void 0;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "PickersCalendarHeader", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _PickersCalendarHeader.PickersCalendarHeader;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "pickersCalendarHeaderClasses", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _pickersCalendarHeaderClasses.pickersCalendarHeaderClasses;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var _pickersCalendarHeaderClasses = require("./pickersCalendarHeaderClasses");
|
|
19
|
+
var _PickersCalendarHeader = require("./PickersCalendarHeader");
|
|
@@ -47,8 +47,8 @@ const TimeField = /*#__PURE__*/React.forwardRef(function TimeField(inProps, ref)
|
|
|
47
47
|
textFieldProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded2);
|
|
48
48
|
|
|
49
49
|
// TODO: Remove when mui/material-ui#35088 will be merged
|
|
50
|
-
textFieldProps.inputProps = (0, _extends2.default)({},
|
|
51
|
-
textFieldProps.InputProps = (0, _extends2.default)({},
|
|
50
|
+
textFieldProps.inputProps = (0, _extends2.default)({}, inputProps, textFieldProps.inputProps);
|
|
51
|
+
textFieldProps.InputProps = (0, _extends2.default)({}, InputProps, textFieldProps.InputProps);
|
|
52
52
|
const _useTimeField = (0, _useTimeField2.useTimeField)({
|
|
53
53
|
props: textFieldProps,
|
|
54
54
|
inputRef: externalInputRef
|
package/node/index.js
CHANGED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useDefaultReduceAnimations = exports.defaultReduceAnimations = void 0;
|
|
8
|
+
var _useMediaQuery = _interopRequireDefault(require("@mui/material/useMediaQuery"));
|
|
9
|
+
const PREFERS_REDUCED_MOTION = '@media (prefers-reduced-motion: reduce)';
|
|
10
|
+
const defaultReduceAnimations = typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent);
|
|
11
|
+
exports.defaultReduceAnimations = defaultReduceAnimations;
|
|
12
|
+
const useDefaultReduceAnimations = () => {
|
|
13
|
+
const prefersReduced = (0, _useMediaQuery.default)(PREFERS_REDUCED_MOTION, {
|
|
14
|
+
defaultMatches: false
|
|
15
|
+
});
|
|
16
|
+
return prefersReduced || defaultReduceAnimations;
|
|
17
|
+
};
|
|
18
|
+
exports.useDefaultReduceAnimations = useDefaultReduceAnimations;
|
|
@@ -161,13 +161,18 @@ const useField = params => {
|
|
|
161
161
|
if (readOnly) {
|
|
162
162
|
return;
|
|
163
163
|
}
|
|
164
|
-
const
|
|
164
|
+
const targetValue = event.target.value;
|
|
165
|
+
const eventData = event.nativeEvent.data;
|
|
166
|
+
// Calling `.fill(04/11/2022)` in playwright will trigger a change event with the requested content to insert in `event.nativeEvent.data`
|
|
167
|
+
// usual changes have only the currently typed character in the `event.nativeEvent.data`
|
|
168
|
+
const shouldUseEventData = eventData && eventData.length > 1;
|
|
169
|
+
const valueStr = shouldUseEventData ? eventData : targetValue;
|
|
165
170
|
const cleanValueStr = (0, _useField.cleanString)(valueStr);
|
|
166
171
|
|
|
167
|
-
// If no section is selected, we just try to parse the new value
|
|
172
|
+
// If no section is selected or eventData should be used, we just try to parse the new value
|
|
168
173
|
// This line is mostly triggered by imperative code / application tests.
|
|
169
|
-
if (selectedSectionIndexes == null) {
|
|
170
|
-
updateValueFromValueStr(cleanValueStr);
|
|
174
|
+
if (selectedSectionIndexes == null || shouldUseEventData) {
|
|
175
|
+
updateValueFromValueStr(shouldUseEventData ? eventData : cleanValueStr);
|
|
171
176
|
return;
|
|
172
177
|
}
|
|
173
178
|
let keyPressed;
|
|
@@ -108,7 +108,7 @@ const cleanDigitSectionValue = (utils, timezone, value, sectionBoundaries, secti
|
|
|
108
108
|
return valueStr;
|
|
109
109
|
};
|
|
110
110
|
exports.cleanDigitSectionValue = cleanDigitSectionValue;
|
|
111
|
-
const adjustSectionValue = (utils, timezone, section, keyCode, sectionsValueBoundaries, activeDate,
|
|
111
|
+
const adjustSectionValue = (utils, timezone, section, keyCode, sectionsValueBoundaries, activeDate, stepsAttributes) => {
|
|
112
112
|
const delta = getDeltaFromKeyCode(keyCode);
|
|
113
113
|
const isStart = keyCode === 'Home';
|
|
114
114
|
const isEnd = keyCode === 'End';
|
|
@@ -120,7 +120,7 @@ const adjustSectionValue = (utils, timezone, section, keyCode, sectionsValueBoun
|
|
|
120
120
|
contentType: section.contentType
|
|
121
121
|
});
|
|
122
122
|
const getCleanValue = value => cleanDigitSectionValue(utils, timezone, value, sectionBoundaries, section);
|
|
123
|
-
const step = section.type === 'minutes' &&
|
|
123
|
+
const step = section.type === 'minutes' && stepsAttributes?.minutesStep ? stepsAttributes.minutesStep : 1;
|
|
124
124
|
const currentSectionValue = parseInt(section.value, 10);
|
|
125
125
|
let newSectionValueNumber = currentSectionValue + delta * step;
|
|
126
126
|
if (shouldSetAbsolute) {
|
|
@@ -491,6 +491,7 @@ exports.createDateStrForInputFromSections = createDateStrForInputFromSections;
|
|
|
491
491
|
const getSectionsBoundaries = (utils, timezone) => {
|
|
492
492
|
const today = utils.dateWithTimezone(undefined, timezone);
|
|
493
493
|
const endOfYear = utils.endOfYear(today);
|
|
494
|
+
const endOfDay = utils.endOfDay(today);
|
|
494
495
|
const {
|
|
495
496
|
maxDaysInMonth,
|
|
496
497
|
longestMonth
|
|
@@ -545,7 +546,7 @@ const getSectionsBoundaries = (utils, timezone) => {
|
|
|
545
546
|
hours: ({
|
|
546
547
|
format
|
|
547
548
|
}) => {
|
|
548
|
-
const lastHourInDay = utils.getHours(
|
|
549
|
+
const lastHourInDay = utils.getHours(endOfDay);
|
|
549
550
|
const hasMeridiem = utils.formatByString(utils.endOfDay(today), format) !== lastHourInDay.toString();
|
|
550
551
|
if (hasMeridiem) {
|
|
551
552
|
return {
|
|
@@ -561,12 +562,12 @@ const getSectionsBoundaries = (utils, timezone) => {
|
|
|
561
562
|
minutes: () => ({
|
|
562
563
|
minimum: 0,
|
|
563
564
|
// Assumption: All years have the same amount of minutes
|
|
564
|
-
maximum: utils.getMinutes(
|
|
565
|
+
maximum: utils.getMinutes(endOfDay)
|
|
565
566
|
}),
|
|
566
567
|
seconds: () => ({
|
|
567
568
|
minimum: 0,
|
|
568
569
|
// Assumption: All years have the same amount of seconds
|
|
569
|
-
maximum: utils.getSeconds(
|
|
570
|
+
maximum: utils.getSeconds(endOfDay)
|
|
570
571
|
}),
|
|
571
572
|
meridiem: () => ({
|
|
572
573
|
minimum: 0,
|
package/node/internals/index.js
CHANGED
|
@@ -33,12 +33,6 @@ Object.defineProperty(exports, "PickersArrowSwitcher", {
|
|
|
33
33
|
return _PickersArrowSwitcher.PickersArrowSwitcher;
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
|
-
Object.defineProperty(exports, "PickersCalendarHeader", {
|
|
37
|
-
enumerable: true,
|
|
38
|
-
get: function () {
|
|
39
|
-
return _PickersCalendarHeader.PickersCalendarHeader;
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
36
|
Object.defineProperty(exports, "PickersModalDialog", {
|
|
43
37
|
enumerable: true,
|
|
44
38
|
get: function () {
|
|
@@ -99,12 +93,6 @@ Object.defineProperty(exports, "createDateStrForInputFromSections", {
|
|
|
99
93
|
return _useField.createDateStrForInputFromSections;
|
|
100
94
|
}
|
|
101
95
|
});
|
|
102
|
-
Object.defineProperty(exports, "defaultReduceAnimations", {
|
|
103
|
-
enumerable: true,
|
|
104
|
-
get: function () {
|
|
105
|
-
return _defaultReduceAnimations.defaultReduceAnimations;
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
96
|
Object.defineProperty(exports, "executeInTheNextEventLoopTick", {
|
|
109
97
|
enumerable: true,
|
|
110
98
|
get: function () {
|
|
@@ -207,6 +195,12 @@ Object.defineProperty(exports, "useDefaultDates", {
|
|
|
207
195
|
return _useUtils.useDefaultDates;
|
|
208
196
|
}
|
|
209
197
|
});
|
|
198
|
+
Object.defineProperty(exports, "useDefaultReduceAnimations", {
|
|
199
|
+
enumerable: true,
|
|
200
|
+
get: function () {
|
|
201
|
+
return _useDefaultReduceAnimations.useDefaultReduceAnimations;
|
|
202
|
+
}
|
|
203
|
+
});
|
|
210
204
|
Object.defineProperty(exports, "useField", {
|
|
211
205
|
enumerable: true,
|
|
212
206
|
get: function () {
|
|
@@ -307,13 +301,12 @@ var _dateUtils = require("./utils/date-utils");
|
|
|
307
301
|
var _fields = require("./utils/fields");
|
|
308
302
|
var _getDefaultReferenceDate = require("./utils/getDefaultReferenceDate");
|
|
309
303
|
var _utils = require("./utils/utils");
|
|
310
|
-
var
|
|
304
|
+
var _useDefaultReduceAnimations = require("./hooks/useDefaultReduceAnimations");
|
|
311
305
|
var _extractValidationProps = require("./utils/validation/extractValidationProps");
|
|
312
306
|
var _validateDate = require("./utils/validation/validateDate");
|
|
313
307
|
var _validateDateTime = require("./utils/validation/validateDateTime");
|
|
314
308
|
var _validateTime = require("./utils/validation/validateTime");
|
|
315
309
|
var _warning = require("./utils/warning");
|
|
316
310
|
var _slotsMigration = require("./utils/slots-migration");
|
|
317
|
-
var _PickersCalendarHeader = require("../DateCalendar/PickersCalendarHeader");
|
|
318
311
|
var _DayCalendar = require("../DateCalendar/DayCalendar");
|
|
319
312
|
var _useCalendarState = require("../DateCalendar/useCalendarState");
|
|
@@ -32,7 +32,7 @@ const singleItemValueManager = {
|
|
|
32
32
|
isSameError: (a, b) => a === b,
|
|
33
33
|
hasError: error => error != null,
|
|
34
34
|
defaultErrorState: null,
|
|
35
|
-
getTimezone: (utils, value) => value == null ? null : utils.getTimezone(value),
|
|
35
|
+
getTimezone: (utils, value) => value == null || !utils.isValid(value) ? null : utils.getTimezone(value),
|
|
36
36
|
setTimezone: (utils, timezone, value) => value == null ? null : utils.setTimezone(value, timezone)
|
|
37
37
|
};
|
|
38
38
|
exports.singleItemValueManager = singleItemValueManager;
|
|
@@ -7,6 +7,15 @@ exports.testCalculations = void 0;
|
|
|
7
7
|
var _chai = require("chai");
|
|
8
8
|
var _pickersUtils = require("test/utils/pickers-utils");
|
|
9
9
|
var _describeGregorianAdapter = require("./describeGregorianAdapter.utils");
|
|
10
|
+
/**
|
|
11
|
+
* To check if the date has the right offset even after changing it's date parts,
|
|
12
|
+
* we convert it to a different timezone that always has the same offset,
|
|
13
|
+
* then we check that both dates have the same hour value.
|
|
14
|
+
*/ // We change to
|
|
15
|
+
const expectSameTimeInMonacoTZ = (adapter, value) => {
|
|
16
|
+
const valueInMonacoTz = adapter.setTimezone(value, 'Europe/Monaco');
|
|
17
|
+
(0, _chai.expect)(adapter.getHours(value)).to.equal(adapter.getHours(valueInMonacoTz));
|
|
18
|
+
};
|
|
10
19
|
const testCalculations = ({
|
|
11
20
|
adapter,
|
|
12
21
|
adapterTZ,
|
|
@@ -15,6 +24,7 @@ const testCalculations = ({
|
|
|
15
24
|
getLocaleFromDate
|
|
16
25
|
}) => {
|
|
17
26
|
const testDateIso = adapter.date(_describeGregorianAdapter.TEST_DATE_ISO_STRING);
|
|
27
|
+
const testDateLastNonDSTDay = adapterTZ.isTimezoneCompatible ? adapterTZ.dateWithTimezone('2022-03-27', 'Europe/Paris') : adapterTZ.date('2022-03-27');
|
|
18
28
|
const testDateLocale = adapter.date(_describeGregorianAdapter.TEST_DATE_LOCALE_STRING);
|
|
19
29
|
describe('Method: date', () => {
|
|
20
30
|
it('should parse strings', () => {
|
|
@@ -490,10 +500,19 @@ const testCalculations = ({
|
|
|
490
500
|
(0, _chai.expect)(adapter.endOfYear(testDateIso)).toEqualDateTime(expected);
|
|
491
501
|
(0, _chai.expect)(adapter.endOfYear(testDateLocale)).toEqualDateTime(expected);
|
|
492
502
|
});
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
503
|
+
describe('Method: endOfMonth', () => {
|
|
504
|
+
it('should handle basic usecases', () => {
|
|
505
|
+
const expected = '2018-10-31T23:59:59.999Z';
|
|
506
|
+
(0, _chai.expect)(adapter.endOfMonth(testDateIso)).toEqualDateTime(expected);
|
|
507
|
+
(0, _chai.expect)(adapter.endOfMonth(testDateLocale)).toEqualDateTime(expected);
|
|
508
|
+
});
|
|
509
|
+
it('should update the offset when entering DST', function test() {
|
|
510
|
+
if (!adapterTZ.isTimezoneCompatible) {
|
|
511
|
+
this.skip();
|
|
512
|
+
}
|
|
513
|
+
expectSameTimeInMonacoTZ(adapterTZ, testDateLastNonDSTDay);
|
|
514
|
+
expectSameTimeInMonacoTZ(adapterTZ, adapterTZ.endOfMonth(testDateLastNonDSTDay));
|
|
515
|
+
});
|
|
497
516
|
});
|
|
498
517
|
it('Method: endOfWeek', () => {
|
|
499
518
|
const expected = adapter.lib === 'luxon' ? '2018-11-04T23:59:59.999Z' : '2018-11-03T23:59:59.999Z';
|
|
@@ -509,18 +528,45 @@ const testCalculations = ({
|
|
|
509
528
|
(0, _chai.expect)(adapter.addYears(testDateIso, 2)).toEqualDateTime('2020-10-30T11:44:00.000Z');
|
|
510
529
|
(0, _chai.expect)(adapter.addYears(testDateIso, -2)).toEqualDateTime('2016-10-30T11:44:00.000Z');
|
|
511
530
|
});
|
|
512
|
-
|
|
513
|
-
(
|
|
514
|
-
|
|
515
|
-
|
|
531
|
+
describe('Method: addMonths', () => {
|
|
532
|
+
it('should handle basic usecases', () => {
|
|
533
|
+
(0, _chai.expect)(adapter.addMonths(testDateIso, 2)).toEqualDateTime('2018-12-30T11:44:00.000Z');
|
|
534
|
+
(0, _chai.expect)(adapter.addMonths(testDateIso, -2)).toEqualDateTime('2018-08-30T11:44:00.000Z');
|
|
535
|
+
(0, _chai.expect)(adapter.addMonths(testDateIso, 3)).toEqualDateTime('2019-01-30T11:44:00.000Z');
|
|
536
|
+
});
|
|
537
|
+
it('should update the offset when entering DST', function test() {
|
|
538
|
+
if (!adapterTZ.isTimezoneCompatible) {
|
|
539
|
+
this.skip();
|
|
540
|
+
}
|
|
541
|
+
expectSameTimeInMonacoTZ(adapterTZ, testDateLastNonDSTDay);
|
|
542
|
+
expectSameTimeInMonacoTZ(adapterTZ, adapterTZ.addMonths(testDateLastNonDSTDay, 1));
|
|
543
|
+
});
|
|
516
544
|
});
|
|
517
|
-
|
|
518
|
-
(
|
|
519
|
-
|
|
545
|
+
describe('Method: addWeeks', () => {
|
|
546
|
+
it('should handle basic usecases', () => {
|
|
547
|
+
(0, _chai.expect)(adapter.addWeeks(testDateIso, 2)).toEqualDateTime('2018-11-13T11:44:00.000Z');
|
|
548
|
+
(0, _chai.expect)(adapter.addWeeks(testDateIso, -2)).toEqualDateTime('2018-10-16T11:44:00.000Z');
|
|
549
|
+
});
|
|
550
|
+
it('should update the offset when entering DST', function test() {
|
|
551
|
+
if (!adapterTZ.isTimezoneCompatible) {
|
|
552
|
+
this.skip();
|
|
553
|
+
}
|
|
554
|
+
expectSameTimeInMonacoTZ(adapterTZ, testDateLastNonDSTDay);
|
|
555
|
+
expectSameTimeInMonacoTZ(adapterTZ, adapterTZ.addWeeks(testDateLastNonDSTDay, 1));
|
|
556
|
+
});
|
|
520
557
|
});
|
|
521
|
-
|
|
522
|
-
(
|
|
523
|
-
|
|
558
|
+
describe('Method: addWeeks', () => {
|
|
559
|
+
it('should handle basic usecases', () => {
|
|
560
|
+
(0, _chai.expect)(adapter.addDays(testDateIso, 2)).toEqualDateTime('2018-11-01T11:44:00.000Z');
|
|
561
|
+
(0, _chai.expect)(adapter.addDays(testDateIso, -2)).toEqualDateTime('2018-10-28T11:44:00.000Z');
|
|
562
|
+
});
|
|
563
|
+
it('should update the offset when entering DST', function test() {
|
|
564
|
+
if (!adapterTZ.isTimezoneCompatible) {
|
|
565
|
+
this.skip();
|
|
566
|
+
}
|
|
567
|
+
expectSameTimeInMonacoTZ(adapterTZ, testDateLastNonDSTDay);
|
|
568
|
+
expectSameTimeInMonacoTZ(adapterTZ, adapterTZ.addDays(testDateLastNonDSTDay, 1));
|
|
569
|
+
});
|
|
524
570
|
});
|
|
525
571
|
it('Method: addHours', () => {
|
|
526
572
|
(0, _chai.expect)(adapter.addHours(testDateIso, 2)).toEqualDateTime('2018-10-30T13:44:00.000Z');
|
|
@@ -630,14 +676,13 @@ const testCalculations = ({
|
|
|
630
676
|
const referenceDate = adapterTZ.dateWithTimezone('2022-03-17', 'Europe/Paris');
|
|
631
677
|
const weekArray = adapterTZ.getWeekArray(referenceDate);
|
|
632
678
|
let expectedDate = adapter.startOfWeek(adapter.startOfMonth(referenceDate));
|
|
633
|
-
const lastNonDSTDay = adapterTZ.dateWithTimezone('2022-03-27', 'Europe/Paris');
|
|
634
679
|
(0, _chai.expect)(weekArray).to.have.length(5);
|
|
635
680
|
weekArray.forEach(week => {
|
|
636
681
|
(0, _chai.expect)(week).to.have.length(7);
|
|
637
682
|
week.forEach(day => {
|
|
638
683
|
(0, _chai.expect)(adapterTZ.startOfDay(day)).toEqualDateTime(adapterTZ.startOfDay(expectedDate));
|
|
639
684
|
expectedDate = adapterTZ.addDays(expectedDate, 1);
|
|
640
|
-
(0, _chai.expect)((0, _pickersUtils.getDateOffset)(adapterTZ, day)).to.equal(adapterTZ.isAfter(day,
|
|
685
|
+
(0, _chai.expect)((0, _pickersUtils.getDateOffset)(adapterTZ, day)).to.equal(adapterTZ.isAfter(day, testDateLastNonDSTDay) ? 120 : 60);
|
|
641
686
|
});
|
|
642
687
|
});
|
|
643
688
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-date-pickers",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.11.0",
|
|
4
4
|
"description": "The community edition of the date picker components (MUI X).",
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"main": "./node/index.js",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@babel/runtime": "^7.22.6",
|
|
37
|
-
"@mui/utils": "^5.
|
|
37
|
+
"@mui/utils": "^5.14.1",
|
|
38
38
|
"@types/react-transition-group": "^4.4.6",
|
|
39
39
|
"clsx": "^1.2.1",
|
|
40
40
|
"prop-types": "^15.8.1",
|
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
2
|
import { getDateOffset } from 'test/utils/pickers-utils';
|
|
3
3
|
import { TEST_DATE_ISO_STRING, TEST_DATE_LOCALE_STRING } from './describeGregorianAdapter.utils';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* To check if the date has the right offset even after changing it's date parts,
|
|
7
|
+
* we convert it to a different timezone that always has the same offset,
|
|
8
|
+
* then we check that both dates have the same hour value.
|
|
9
|
+
*/
|
|
10
|
+
// We change to
|
|
11
|
+
const expectSameTimeInMonacoTZ = (adapter, value) => {
|
|
12
|
+
const valueInMonacoTz = adapter.setTimezone(value, 'Europe/Monaco');
|
|
13
|
+
expect(adapter.getHours(value)).to.equal(adapter.getHours(valueInMonacoTz));
|
|
14
|
+
};
|
|
4
15
|
export const testCalculations = ({
|
|
5
16
|
adapter,
|
|
6
17
|
adapterTZ,
|
|
@@ -9,6 +20,7 @@ export const testCalculations = ({
|
|
|
9
20
|
getLocaleFromDate
|
|
10
21
|
}) => {
|
|
11
22
|
const testDateIso = adapter.date(TEST_DATE_ISO_STRING);
|
|
23
|
+
const testDateLastNonDSTDay = adapterTZ.isTimezoneCompatible ? adapterTZ.dateWithTimezone('2022-03-27', 'Europe/Paris') : adapterTZ.date('2022-03-27');
|
|
12
24
|
const testDateLocale = adapter.date(TEST_DATE_LOCALE_STRING);
|
|
13
25
|
describe('Method: date', () => {
|
|
14
26
|
it('should parse strings', () => {
|
|
@@ -484,10 +496,19 @@ export const testCalculations = ({
|
|
|
484
496
|
expect(adapter.endOfYear(testDateIso)).toEqualDateTime(expected);
|
|
485
497
|
expect(adapter.endOfYear(testDateLocale)).toEqualDateTime(expected);
|
|
486
498
|
});
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
499
|
+
describe('Method: endOfMonth', () => {
|
|
500
|
+
it('should handle basic usecases', () => {
|
|
501
|
+
const expected = '2018-10-31T23:59:59.999Z';
|
|
502
|
+
expect(adapter.endOfMonth(testDateIso)).toEqualDateTime(expected);
|
|
503
|
+
expect(adapter.endOfMonth(testDateLocale)).toEqualDateTime(expected);
|
|
504
|
+
});
|
|
505
|
+
it('should update the offset when entering DST', function test() {
|
|
506
|
+
if (!adapterTZ.isTimezoneCompatible) {
|
|
507
|
+
this.skip();
|
|
508
|
+
}
|
|
509
|
+
expectSameTimeInMonacoTZ(adapterTZ, testDateLastNonDSTDay);
|
|
510
|
+
expectSameTimeInMonacoTZ(adapterTZ, adapterTZ.endOfMonth(testDateLastNonDSTDay));
|
|
511
|
+
});
|
|
491
512
|
});
|
|
492
513
|
it('Method: endOfWeek', () => {
|
|
493
514
|
const expected = adapter.lib === 'luxon' ? '2018-11-04T23:59:59.999Z' : '2018-11-03T23:59:59.999Z';
|
|
@@ -503,18 +524,45 @@ export const testCalculations = ({
|
|
|
503
524
|
expect(adapter.addYears(testDateIso, 2)).toEqualDateTime('2020-10-30T11:44:00.000Z');
|
|
504
525
|
expect(adapter.addYears(testDateIso, -2)).toEqualDateTime('2016-10-30T11:44:00.000Z');
|
|
505
526
|
});
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
527
|
+
describe('Method: addMonths', () => {
|
|
528
|
+
it('should handle basic usecases', () => {
|
|
529
|
+
expect(adapter.addMonths(testDateIso, 2)).toEqualDateTime('2018-12-30T11:44:00.000Z');
|
|
530
|
+
expect(adapter.addMonths(testDateIso, -2)).toEqualDateTime('2018-08-30T11:44:00.000Z');
|
|
531
|
+
expect(adapter.addMonths(testDateIso, 3)).toEqualDateTime('2019-01-30T11:44:00.000Z');
|
|
532
|
+
});
|
|
533
|
+
it('should update the offset when entering DST', function test() {
|
|
534
|
+
if (!adapterTZ.isTimezoneCompatible) {
|
|
535
|
+
this.skip();
|
|
536
|
+
}
|
|
537
|
+
expectSameTimeInMonacoTZ(adapterTZ, testDateLastNonDSTDay);
|
|
538
|
+
expectSameTimeInMonacoTZ(adapterTZ, adapterTZ.addMonths(testDateLastNonDSTDay, 1));
|
|
539
|
+
});
|
|
510
540
|
});
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
541
|
+
describe('Method: addWeeks', () => {
|
|
542
|
+
it('should handle basic usecases', () => {
|
|
543
|
+
expect(adapter.addWeeks(testDateIso, 2)).toEqualDateTime('2018-11-13T11:44:00.000Z');
|
|
544
|
+
expect(adapter.addWeeks(testDateIso, -2)).toEqualDateTime('2018-10-16T11:44:00.000Z');
|
|
545
|
+
});
|
|
546
|
+
it('should update the offset when entering DST', function test() {
|
|
547
|
+
if (!adapterTZ.isTimezoneCompatible) {
|
|
548
|
+
this.skip();
|
|
549
|
+
}
|
|
550
|
+
expectSameTimeInMonacoTZ(adapterTZ, testDateLastNonDSTDay);
|
|
551
|
+
expectSameTimeInMonacoTZ(adapterTZ, adapterTZ.addWeeks(testDateLastNonDSTDay, 1));
|
|
552
|
+
});
|
|
514
553
|
});
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
554
|
+
describe('Method: addWeeks', () => {
|
|
555
|
+
it('should handle basic usecases', () => {
|
|
556
|
+
expect(adapter.addDays(testDateIso, 2)).toEqualDateTime('2018-11-01T11:44:00.000Z');
|
|
557
|
+
expect(adapter.addDays(testDateIso, -2)).toEqualDateTime('2018-10-28T11:44:00.000Z');
|
|
558
|
+
});
|
|
559
|
+
it('should update the offset when entering DST', function test() {
|
|
560
|
+
if (!adapterTZ.isTimezoneCompatible) {
|
|
561
|
+
this.skip();
|
|
562
|
+
}
|
|
563
|
+
expectSameTimeInMonacoTZ(adapterTZ, testDateLastNonDSTDay);
|
|
564
|
+
expectSameTimeInMonacoTZ(adapterTZ, adapterTZ.addDays(testDateLastNonDSTDay, 1));
|
|
565
|
+
});
|
|
518
566
|
});
|
|
519
567
|
it('Method: addHours', () => {
|
|
520
568
|
expect(adapter.addHours(testDateIso, 2)).toEqualDateTime('2018-10-30T13:44:00.000Z');
|
|
@@ -624,14 +672,13 @@ export const testCalculations = ({
|
|
|
624
672
|
const referenceDate = adapterTZ.dateWithTimezone('2022-03-17', 'Europe/Paris');
|
|
625
673
|
const weekArray = adapterTZ.getWeekArray(referenceDate);
|
|
626
674
|
let expectedDate = adapter.startOfWeek(adapter.startOfMonth(referenceDate));
|
|
627
|
-
const lastNonDSTDay = adapterTZ.dateWithTimezone('2022-03-27', 'Europe/Paris');
|
|
628
675
|
expect(weekArray).to.have.length(5);
|
|
629
676
|
weekArray.forEach(week => {
|
|
630
677
|
expect(week).to.have.length(7);
|
|
631
678
|
week.forEach(day => {
|
|
632
679
|
expect(adapterTZ.startOfDay(day)).toEqualDateTime(adapterTZ.startOfDay(expectedDate));
|
|
633
680
|
expectedDate = adapterTZ.addDays(expectedDate, 1);
|
|
634
|
-
expect(getDateOffset(adapterTZ, day)).to.equal(adapterTZ.isAfter(day,
|
|
681
|
+
expect(getDateOffset(adapterTZ, day)).to.equal(adapterTZ.isAfter(day, testDateLastNonDSTDay) ? 120 : 60);
|
|
635
682
|
});
|
|
636
683
|
});
|
|
637
684
|
});
|
|
@@ -17,7 +17,6 @@ import {
|
|
|
17
17
|
PickerPopperProps,
|
|
18
18
|
PickersToolbarButtonProps,
|
|
19
19
|
PickersToolbarProps,
|
|
20
|
-
ExportedCalendarHeaderProps,
|
|
21
20
|
ExportedPickersToolbarTextProps,
|
|
22
21
|
} from '../internals';
|
|
23
22
|
import { DateOrTimeView } from '../models';
|
|
@@ -45,6 +44,7 @@ import {
|
|
|
45
44
|
ExportedMultiSectionDigitalClockSectionProps,
|
|
46
45
|
MultiSectionDigitalClockProps,
|
|
47
46
|
} from '../MultiSectionDigitalClock';
|
|
47
|
+
import { ExportedPickersCalendarHeaderProps } from '../PickersCalendarHeader';
|
|
48
48
|
|
|
49
49
|
export interface PickersComponentsPropsList {
|
|
50
50
|
MuiClock: ClockProps<unknown>;
|
|
@@ -63,7 +63,7 @@ export interface PickersComponentsPropsList {
|
|
|
63
63
|
MuiMultiSectionDigitalClock: MultiSectionDigitalClockProps<unknown>;
|
|
64
64
|
MuiMultiSectionDigitalClockSection: ExportedMultiSectionDigitalClockSectionProps;
|
|
65
65
|
MuiPickersArrowSwitcher: ExportedPickersArrowSwitcherProps;
|
|
66
|
-
MuiPickersCalendarHeader:
|
|
66
|
+
MuiPickersCalendarHeader: ExportedPickersCalendarHeaderProps<unknown>;
|
|
67
67
|
MuiPickersDay: PickersDayProps<unknown>;
|
|
68
68
|
MuiPickersFadeTransitionGroup: PickersFadeTransitionGroupProps;
|
|
69
69
|
MuiPickersMonth: ExportedPickersMonthProps;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const defaultReduceAnimations: boolean;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const defaultReduceAnimations = typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export var defaultReduceAnimations = typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent);
|