@mui/x-date-pickers 6.7.0 → 6.9.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 +5 -1
- package/AdapterDayjs/AdapterDayjs.js +42 -15
- package/AdapterLuxon/AdapterLuxon.d.ts +1 -0
- package/AdapterLuxon/AdapterLuxon.js +12 -5
- package/AdapterMoment/AdapterMoment.js +18 -9
- package/CHANGELOG.md +145 -5541
- package/DateCalendar/DateCalendar.js +49 -21
- package/DateCalendar/DateCalendar.types.d.ts +8 -3
- package/DateCalendar/DayCalendar.d.ts +3 -1
- package/DateCalendar/DayCalendar.js +24 -17
- package/DateCalendar/PickersCalendarHeader.js +6 -3
- package/DateCalendar/useCalendarState.d.ts +5 -3
- package/DateCalendar/useCalendarState.js +41 -17
- package/DateCalendar/useIsDateDisabled.d.ts +1 -1
- package/DateCalendar/useIsDateDisabled.js +5 -3
- package/DateField/DateField.js +9 -1
- package/DatePicker/DatePicker.js +9 -1
- package/DateTimeField/DateTimeField.js +9 -1
- package/DateTimePicker/DateTimePicker.js +9 -1
- package/DesktopDatePicker/DesktopDatePicker.js +9 -1
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +9 -1
- package/DesktopTimePicker/DesktopTimePicker.js +8 -0
- package/DigitalClock/DigitalClock.js +28 -15
- package/MobileDatePicker/MobileDatePicker.js +9 -1
- package/MobileDateTimePicker/MobileDateTimePicker.js +9 -1
- package/MobileTimePicker/MobileTimePicker.js +8 -0
- package/MonthCalendar/MonthCalendar.js +57 -24
- package/MonthCalendar/MonthCalendar.types.d.ts +8 -2
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +28 -15
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +1 -1
- package/PickersLayout/PickersLayout.js +1 -0
- package/PickersLayout/usePickerLayout.js +4 -3
- package/PickersShortcuts/PickersShortcuts.d.ts +12 -2
- package/PickersShortcuts/PickersShortcuts.js +10 -2
- package/PickersShortcuts/index.d.ts +1 -1
- package/StaticDatePicker/StaticDatePicker.js +9 -1
- package/StaticDateTimePicker/StaticDateTimePicker.js +9 -1
- package/StaticTimePicker/StaticTimePicker.js +8 -0
- package/TimeClock/TimeClock.js +27 -15
- package/TimeField/TimeField.js +9 -1
- package/TimePicker/TimePicker.js +8 -0
- package/YearCalendar/YearCalendar.js +55 -22
- package/YearCalendar/YearCalendar.types.d.ts +8 -2
- package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +1 -1
- package/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -2
- package/dateViewRenderers/dateViewRenderers.d.ts +1 -1
- package/dateViewRenderers/dateViewRenderers.js +4 -2
- package/index.js +1 -1
- package/internals/hooks/date-helpers-hooks.d.ts +4 -2
- package/internals/hooks/date-helpers-hooks.js +8 -6
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
- package/internals/hooks/useField/useField.d.ts +3 -1
- package/internals/hooks/useField/useField.js +23 -7
- package/internals/hooks/useField/useField.types.d.ts +6 -4
- package/internals/hooks/useField/useField.utils.d.ts +13 -11
- package/internals/hooks/useField/useField.utils.js +55 -43
- package/internals/hooks/useField/useFieldCharacterEditing.d.ts +3 -2
- package/internals/hooks/useField/useFieldCharacterEditing.js +6 -5
- package/internals/hooks/useField/useFieldState.d.ts +1 -0
- package/internals/hooks/useField/useFieldState.js +33 -23
- package/internals/hooks/useMobilePicker/useMobilePicker.js +2 -0
- package/internals/hooks/usePicker/usePickerValue.js +45 -9
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +22 -6
- package/internals/hooks/usePicker/usePickerViews.d.ts +2 -1
- package/internals/hooks/usePicker/usePickerViews.js +7 -2
- package/internals/hooks/useUtils.d.ts +3 -2
- package/internals/hooks/useUtils.js +5 -2
- package/internals/hooks/useValueWithTimezone.d.ts +33 -0
- package/internals/hooks/useValueWithTimezone.js +69 -0
- package/internals/index.d.ts +1 -0
- package/internals/index.js +1 -0
- package/internals/models/props/clock.d.ts +2 -2
- package/internals/utils/date-utils.d.ts +4 -4
- package/internals/utils/date-utils.js +4 -12
- package/internals/utils/fields.js +1 -1
- package/internals/utils/getDefaultReferenceDate.d.ts +12 -3
- package/internals/utils/getDefaultReferenceDate.js +4 -4
- package/internals/utils/validation/extractValidationProps.d.ts +1 -1
- package/internals/utils/validation/validateDate.d.ts +3 -2
- package/internals/utils/validation/validateDate.js +14 -6
- package/internals/utils/validation/validateTime.d.ts +3 -2
- package/internals/utils/validation/validateTime.js +8 -8
- package/internals/utils/valueManagers.js +2 -1
- package/legacy/AdapterDayjs/AdapterDayjs.js +45 -16
- package/legacy/AdapterLuxon/AdapterLuxon.js +13 -6
- package/legacy/AdapterMoment/AdapterMoment.js +18 -9
- package/legacy/DateCalendar/DateCalendar.js +47 -24
- package/legacy/DateCalendar/DayCalendar.js +24 -17
- package/legacy/DateCalendar/PickersCalendarHeader.js +6 -3
- package/legacy/DateCalendar/useCalendarState.js +40 -17
- package/legacy/DateCalendar/useIsDateDisabled.js +5 -3
- package/legacy/DateField/DateField.js +9 -1
- package/legacy/DatePicker/DatePicker.js +9 -1
- package/legacy/DateTimeField/DateTimeField.js +9 -1
- package/legacy/DateTimePicker/DateTimePicker.js +9 -1
- package/legacy/DesktopDatePicker/DesktopDatePicker.js +9 -1
- package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +9 -1
- package/legacy/DesktopTimePicker/DesktopTimePicker.js +8 -0
- package/legacy/DigitalClock/DigitalClock.js +26 -16
- package/legacy/MobileDatePicker/MobileDatePicker.js +9 -1
- package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +9 -1
- package/legacy/MobileTimePicker/MobileTimePicker.js +8 -0
- package/legacy/MonthCalendar/MonthCalendar.js +61 -32
- package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.js +27 -16
- package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +1 -1
- package/legacy/PickersLayout/PickersLayout.js +1 -0
- package/legacy/PickersLayout/usePickerLayout.js +3 -2
- package/legacy/PickersShortcuts/PickersShortcuts.js +10 -2
- package/legacy/StaticDatePicker/StaticDatePicker.js +9 -1
- package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +9 -1
- package/legacy/StaticTimePicker/StaticTimePicker.js +8 -0
- package/legacy/TimeClock/TimeClock.js +25 -18
- package/legacy/TimeField/TimeField.js +9 -1
- package/legacy/TimePicker/TimePicker.js +8 -0
- package/legacy/YearCalendar/YearCalendar.js +59 -30
- package/legacy/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -2
- package/legacy/dateViewRenderers/dateViewRenderers.js +4 -2
- package/legacy/index.js +1 -1
- package/legacy/internals/hooks/date-helpers-hooks.js +8 -6
- package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
- package/legacy/internals/hooks/useField/useField.js +22 -6
- package/legacy/internals/hooks/useField/useField.utils.js +56 -44
- package/legacy/internals/hooks/useField/useFieldCharacterEditing.js +6 -5
- package/legacy/internals/hooks/useField/useFieldState.js +42 -33
- package/legacy/internals/hooks/useMobilePicker/useMobilePicker.js +2 -0
- package/legacy/internals/hooks/usePicker/usePickerValue.js +46 -9
- package/legacy/internals/hooks/usePicker/usePickerViews.js +7 -2
- package/legacy/internals/hooks/useUtils.js +5 -2
- package/legacy/internals/hooks/useValueWithTimezone.js +81 -0
- package/legacy/internals/index.js +1 -0
- package/legacy/internals/utils/date-utils.js +5 -13
- package/legacy/internals/utils/fields.js +1 -1
- package/legacy/internals/utils/getDefaultReferenceDate.js +4 -4
- package/legacy/internals/utils/validation/validateDate.js +12 -6
- package/legacy/internals/utils/validation/validateTime.js +8 -8
- package/legacy/internals/utils/valueManagers.js +3 -0
- package/legacy/locales/csCZ.js +2 -2
- package/legacy/locales/elGR.js +93 -0
- package/legacy/locales/index.js +1 -0
- package/legacy/tests/describeAdapters/describeAdapters.js +3 -1
- package/legacy/tests/describeGregorianAdapter/testCalculations.js +69 -27
- package/legacy/tests/describeJalaliAdapter/testCalculations.js +21 -0
- package/legacy/timeViewRenderers/timeViewRenderers.js +12 -6
- package/locales/csCZ.js +2 -2
- package/locales/elGR.d.ts +53 -0
- package/locales/elGR.js +57 -0
- package/locales/index.d.ts +1 -0
- package/locales/index.js +1 -0
- package/models/adapters.d.ts +2 -2
- package/models/timezone.d.ts +10 -0
- package/modern/AdapterDayjs/AdapterDayjs.js +41 -15
- package/modern/AdapterLuxon/AdapterLuxon.js +12 -4
- package/modern/AdapterMoment/AdapterMoment.js +18 -9
- package/modern/DateCalendar/DateCalendar.js +49 -21
- package/modern/DateCalendar/DayCalendar.js +24 -17
- package/modern/DateCalendar/PickersCalendarHeader.js +6 -3
- package/modern/DateCalendar/useCalendarState.js +41 -16
- package/modern/DateCalendar/useIsDateDisabled.js +5 -3
- package/modern/DateField/DateField.js +9 -1
- package/modern/DatePicker/DatePicker.js +9 -1
- package/modern/DateTimeField/DateTimeField.js +9 -1
- package/modern/DateTimePicker/DateTimePicker.js +9 -1
- package/modern/DesktopDatePicker/DesktopDatePicker.js +9 -1
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +9 -1
- package/modern/DesktopTimePicker/DesktopTimePicker.js +8 -0
- package/modern/DigitalClock/DigitalClock.js +28 -15
- package/modern/MobileDatePicker/MobileDatePicker.js +9 -1
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +9 -1
- package/modern/MobileTimePicker/MobileTimePicker.js +8 -0
- package/modern/MonthCalendar/MonthCalendar.js +57 -24
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +28 -15
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +1 -1
- package/modern/PickersLayout/PickersLayout.js +1 -0
- package/modern/PickersLayout/usePickerLayout.js +4 -3
- package/modern/PickersShortcuts/PickersShortcuts.js +10 -2
- package/modern/StaticDatePicker/StaticDatePicker.js +9 -1
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +9 -1
- package/modern/StaticTimePicker/StaticTimePicker.js +8 -0
- package/modern/TimeClock/TimeClock.js +27 -15
- package/modern/TimeField/TimeField.js +9 -1
- package/modern/TimePicker/TimePicker.js +8 -0
- package/modern/YearCalendar/YearCalendar.js +55 -22
- package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -2
- package/modern/dateViewRenderers/dateViewRenderers.js +4 -2
- package/modern/index.js +1 -1
- package/modern/internals/hooks/date-helpers-hooks.js +8 -6
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
- package/modern/internals/hooks/useField/useField.js +23 -7
- package/modern/internals/hooks/useField/useField.utils.js +55 -43
- package/modern/internals/hooks/useField/useFieldCharacterEditing.js +6 -5
- package/modern/internals/hooks/useField/useFieldState.js +33 -22
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +2 -0
- package/modern/internals/hooks/usePicker/usePickerValue.js +45 -9
- package/modern/internals/hooks/usePicker/usePickerViews.js +7 -2
- package/modern/internals/hooks/useUtils.js +5 -2
- package/modern/internals/hooks/useValueWithTimezone.js +68 -0
- package/modern/internals/index.js +1 -0
- package/modern/internals/utils/date-utils.js +4 -12
- package/modern/internals/utils/fields.js +1 -1
- package/modern/internals/utils/getDefaultReferenceDate.js +4 -4
- package/modern/internals/utils/validation/validateDate.js +14 -6
- package/modern/internals/utils/validation/validateTime.js +8 -8
- package/modern/internals/utils/valueManagers.js +2 -1
- package/modern/locales/csCZ.js +2 -2
- package/modern/locales/elGR.js +57 -0
- package/modern/locales/index.js +1 -0
- package/modern/tests/describeAdapters/describeAdapters.js +3 -1
- package/modern/tests/describeGregorianAdapter/testCalculations.js +69 -27
- package/modern/tests/describeJalaliAdapter/testCalculations.js +21 -0
- package/modern/timeViewRenderers/timeViewRenderers.js +12 -6
- package/node/AdapterDayjs/AdapterDayjs.js +41 -15
- package/node/AdapterLuxon/AdapterLuxon.js +12 -4
- package/node/AdapterMoment/AdapterMoment.js +18 -9
- package/node/DateCalendar/DateCalendar.js +48 -20
- package/node/DateCalendar/DayCalendar.js +24 -17
- package/node/DateCalendar/PickersCalendarHeader.js +6 -3
- package/node/DateCalendar/useCalendarState.js +41 -16
- package/node/DateCalendar/useIsDateDisabled.js +5 -3
- package/node/DateField/DateField.js +9 -1
- package/node/DatePicker/DatePicker.js +9 -1
- package/node/DateTimeField/DateTimeField.js +9 -1
- package/node/DateTimePicker/DateTimePicker.js +9 -1
- package/node/DesktopDatePicker/DesktopDatePicker.js +9 -1
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +9 -1
- package/node/DesktopTimePicker/DesktopTimePicker.js +8 -0
- package/node/DigitalClock/DigitalClock.js +28 -15
- package/node/MobileDatePicker/MobileDatePicker.js +9 -1
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +9 -1
- package/node/MobileTimePicker/MobileTimePicker.js +8 -0
- package/node/MonthCalendar/MonthCalendar.js +57 -24
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +28 -15
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +1 -1
- package/node/PickersLayout/PickersLayout.js +1 -0
- package/node/PickersLayout/usePickerLayout.js +4 -3
- package/node/PickersShortcuts/PickersShortcuts.js +10 -2
- package/node/StaticDatePicker/StaticDatePicker.js +9 -1
- package/node/StaticDateTimePicker/StaticDateTimePicker.js +9 -1
- package/node/StaticTimePicker/StaticTimePicker.js +8 -0
- package/node/TimeClock/TimeClock.js +26 -14
- package/node/TimeField/TimeField.js +9 -1
- package/node/TimePicker/TimePicker.js +8 -0
- package/node/YearCalendar/YearCalendar.js +55 -22
- package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -2
- package/node/dateViewRenderers/dateViewRenderers.js +4 -2
- package/node/index.js +1 -1
- package/node/internals/hooks/date-helpers-hooks.js +8 -6
- package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
- package/node/internals/hooks/useField/useField.js +23 -7
- package/node/internals/hooks/useField/useField.utils.js +55 -43
- package/node/internals/hooks/useField/useFieldCharacterEditing.js +6 -5
- package/node/internals/hooks/useField/useFieldState.js +33 -22
- package/node/internals/hooks/useMobilePicker/useMobilePicker.js +2 -0
- package/node/internals/hooks/usePicker/usePickerValue.js +44 -9
- package/node/internals/hooks/usePicker/usePickerViews.js +7 -2
- package/node/internals/hooks/useUtils.js +5 -2
- package/node/internals/hooks/useValueWithTimezone.js +79 -0
- package/node/internals/index.js +7 -0
- package/node/internals/utils/date-utils.js +5 -14
- package/node/internals/utils/fields.js +1 -1
- package/node/internals/utils/getDefaultReferenceDate.js +5 -4
- package/node/internals/utils/validation/validateDate.js +14 -6
- package/node/internals/utils/validation/validateTime.js +8 -8
- package/node/internals/utils/valueManagers.js +2 -1
- package/node/locales/csCZ.js +2 -2
- package/node/locales/elGR.js +64 -0
- package/node/locales/index.js +11 -0
- package/node/tests/describeAdapters/describeAdapters.js +3 -1
- package/node/tests/describeGregorianAdapter/testCalculations.js +69 -27
- package/node/tests/describeJalaliAdapter/testCalculations.js +21 -0
- package/node/timeViewRenderers/timeViewRenderers.js +12 -6
- package/package.json +2 -2
- package/tests/describeAdapters/describeAdapters.js +3 -1
- package/tests/describeGregorianAdapter/testCalculations.js +69 -27
- package/tests/describeJalaliAdapter/testCalculations.js +21 -0
- package/timeViewRenderers/timeViewRenderers.d.ts +3 -3
- package/timeViewRenderers/timeViewRenderers.js +12 -6
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["autoFocus", "onViewChange", "value", "defaultValue", "disableFuture", "disablePast", "defaultCalendarMonth", "onChange", "onYearChange", "onMonthChange", "reduceAnimations", "shouldDisableDate", "shouldDisableMonth", "shouldDisableYear", "view", "views", "openTo", "className", "disabled", "readOnly", "minDate", "maxDate", "disableHighlightToday", "focusedView", "onFocusedViewChange", "showDaysOutsideCurrentMonth", "fixedWeekNumber", "dayOfWeekFormatter", "components", "componentsProps", "slots", "slotProps", "loading", "renderLoading", "displayWeekNumber", "yearsPerRow", "monthsPerRow"];
|
|
3
|
+
const _excluded = ["autoFocus", "onViewChange", "value", "defaultValue", "referenceDate", "disableFuture", "disablePast", "defaultCalendarMonth", "onChange", "onYearChange", "onMonthChange", "reduceAnimations", "shouldDisableDate", "shouldDisableMonth", "shouldDisableYear", "view", "views", "openTo", "className", "disabled", "readOnly", "minDate", "maxDate", "disableHighlightToday", "focusedView", "onFocusedViewChange", "showDaysOutsideCurrentMonth", "fixedWeekNumber", "dayOfWeekFormatter", "components", "componentsProps", "slots", "slotProps", "loading", "renderLoading", "displayWeekNumber", "yearsPerRow", "monthsPerRow", "timezone"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import clsx from 'clsx';
|
|
7
7
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
8
|
-
import { unstable_composeClasses as composeClasses, unstable_useId as useId, unstable_useEventCallback as useEventCallback
|
|
8
|
+
import { unstable_composeClasses as composeClasses, unstable_useId as useId, unstable_useEventCallback as useEventCallback } from '@mui/utils';
|
|
9
9
|
import { useCalendarState } from './useCalendarState';
|
|
10
10
|
import { useDefaultDates, useUtils } from '../internals/hooks/useUtils';
|
|
11
11
|
import { PickersFadeTransitionGroup } from './PickersFadeTransitionGroup';
|
|
@@ -18,6 +18,8 @@ import { findClosestEnabledDate, applyDefaultDate, mergeDateAndTime } from '../i
|
|
|
18
18
|
import { PickerViewRoot } from '../internals/components/PickerViewRoot';
|
|
19
19
|
import { defaultReduceAnimations } from '../internals/utils/defaultReduceAnimations';
|
|
20
20
|
import { getDateCalendarUtilityClass } from './dateCalendarClasses';
|
|
21
|
+
import { useControlledValueWithTimezone } from '../internals/hooks/useValueWithTimezone';
|
|
22
|
+
import { singleItemValueManager } from '../internals/utils/valueManagers';
|
|
21
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
22
24
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
23
25
|
const useUtilityClasses = ownerState => {
|
|
@@ -84,6 +86,7 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
84
86
|
onViewChange,
|
|
85
87
|
value: valueProp,
|
|
86
88
|
defaultValue,
|
|
89
|
+
referenceDate: referenceDateProp,
|
|
87
90
|
disableFuture,
|
|
88
91
|
disablePast,
|
|
89
92
|
defaultCalendarMonth,
|
|
@@ -116,18 +119,21 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
116
119
|
renderLoading,
|
|
117
120
|
displayWeekNumber,
|
|
118
121
|
yearsPerRow,
|
|
119
|
-
monthsPerRow
|
|
122
|
+
monthsPerRow,
|
|
123
|
+
timezone: timezoneProp
|
|
120
124
|
} = props,
|
|
121
125
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
122
|
-
const
|
|
126
|
+
const {
|
|
127
|
+
value,
|
|
128
|
+
handleValueChange,
|
|
129
|
+
timezone
|
|
130
|
+
} = useControlledValueWithTimezone({
|
|
123
131
|
name: 'DateCalendar',
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
setValue(newValue);
|
|
130
|
-
onChange?.(newValue, selectionState);
|
|
132
|
+
timezone: timezoneProp,
|
|
133
|
+
value: valueProp,
|
|
134
|
+
defaultValue,
|
|
135
|
+
onChange,
|
|
136
|
+
valueManager: singleItemValueManager
|
|
131
137
|
});
|
|
132
138
|
const {
|
|
133
139
|
view,
|
|
@@ -147,6 +153,7 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
147
153
|
onFocusedViewChange
|
|
148
154
|
});
|
|
149
155
|
const {
|
|
156
|
+
referenceDate,
|
|
150
157
|
calendarState,
|
|
151
158
|
changeFocusedDay,
|
|
152
159
|
changeMonth,
|
|
@@ -156,13 +163,15 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
156
163
|
} = useCalendarState({
|
|
157
164
|
value,
|
|
158
165
|
defaultCalendarMonth,
|
|
166
|
+
referenceDate: referenceDateProp,
|
|
159
167
|
reduceAnimations,
|
|
160
168
|
onMonthChange,
|
|
161
169
|
minDate,
|
|
162
170
|
maxDate,
|
|
163
171
|
shouldDisableDate,
|
|
164
172
|
disablePast,
|
|
165
|
-
disableFuture
|
|
173
|
+
disableFuture,
|
|
174
|
+
timezone
|
|
166
175
|
});
|
|
167
176
|
const handleDateMonthChange = useEventCallback(newDate => {
|
|
168
177
|
const startOfMonth = utils.startOfMonth(newDate);
|
|
@@ -174,7 +183,8 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
174
183
|
maxDate: utils.isAfter(maxDate, endOfMonth) ? endOfMonth : maxDate,
|
|
175
184
|
disablePast,
|
|
176
185
|
disableFuture,
|
|
177
|
-
isDateDisabled
|
|
186
|
+
isDateDisabled,
|
|
187
|
+
timezone
|
|
178
188
|
}) : newDate;
|
|
179
189
|
if (closestEnabledDate) {
|
|
180
190
|
setValueAndGoToNextView(closestEnabledDate, 'finish');
|
|
@@ -195,7 +205,8 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
195
205
|
maxDate: utils.isAfter(maxDate, endOfYear) ? endOfYear : maxDate,
|
|
196
206
|
disablePast,
|
|
197
207
|
disableFuture,
|
|
198
|
-
isDateDisabled
|
|
208
|
+
isDateDisabled,
|
|
209
|
+
timezone
|
|
199
210
|
}) : newDate;
|
|
200
211
|
if (closestEnabledDate) {
|
|
201
212
|
setValueAndGoToNextView(closestEnabledDate, 'finish');
|
|
@@ -207,9 +218,9 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
207
218
|
changeFocusedDay(closestEnabledDate, true);
|
|
208
219
|
});
|
|
209
220
|
const handleSelectedDayChange = useEventCallback(day => {
|
|
210
|
-
if (
|
|
221
|
+
if (day) {
|
|
211
222
|
// If there is a date already selected, then we want to keep its time
|
|
212
|
-
return handleValueChange(mergeDateAndTime(utils, day, value), 'finish');
|
|
223
|
+
return handleValueChange(mergeDateAndTime(utils, day, value ?? referenceDate), 'finish');
|
|
213
224
|
}
|
|
214
225
|
return handleValueChange(day, 'finish');
|
|
215
226
|
});
|
|
@@ -234,7 +245,8 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
234
245
|
const commonViewProps = {
|
|
235
246
|
disableHighlightToday,
|
|
236
247
|
readOnly,
|
|
237
|
-
disabled
|
|
248
|
+
disabled,
|
|
249
|
+
timezone
|
|
238
250
|
};
|
|
239
251
|
const gridLabelId = `${id}-grid-label`;
|
|
240
252
|
const hasFocus = focusedView !== null;
|
|
@@ -273,7 +285,8 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
273
285
|
reduceAnimations: reduceAnimations,
|
|
274
286
|
labelId: gridLabelId,
|
|
275
287
|
slots: slots,
|
|
276
|
-
slotProps: slotProps
|
|
288
|
+
slotProps: slotProps,
|
|
289
|
+
timezone: timezone
|
|
277
290
|
}), /*#__PURE__*/_jsx(DateCalendarViewTransitionContainer, {
|
|
278
291
|
reduceAnimations: reduceAnimations,
|
|
279
292
|
className: classes.viewTransitionContainer,
|
|
@@ -286,7 +299,8 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
286
299
|
shouldDisableYear: shouldDisableYear,
|
|
287
300
|
hasFocus: hasFocus,
|
|
288
301
|
onFocusedViewChange: isViewFocused => setFocusedView('year', isViewFocused),
|
|
289
|
-
yearsPerRow: yearsPerRow
|
|
302
|
+
yearsPerRow: yearsPerRow,
|
|
303
|
+
referenceDate: referenceDate
|
|
290
304
|
})), view === 'month' && /*#__PURE__*/_jsx(MonthCalendar, _extends({}, baseDateValidationProps, commonViewProps, {
|
|
291
305
|
hasFocus: hasFocus,
|
|
292
306
|
className: className,
|
|
@@ -294,7 +308,8 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
|
|
|
294
308
|
onChange: handleDateMonthChange,
|
|
295
309
|
shouldDisableMonth: shouldDisableMonth,
|
|
296
310
|
onFocusedViewChange: isViewFocused => setFocusedView('month', isViewFocused),
|
|
297
|
-
monthsPerRow: monthsPerRow
|
|
311
|
+
monthsPerRow: monthsPerRow,
|
|
312
|
+
referenceDate: referenceDate
|
|
298
313
|
})), view === 'day' && /*#__PURE__*/_jsx(DayCalendar, _extends({}, calendarState, baseDateValidationProps, commonViewProps, {
|
|
299
314
|
onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,
|
|
300
315
|
onFocusedDayChange: changeFocusedDay,
|
|
@@ -356,7 +371,7 @@ process.env.NODE_ENV !== "production" ? DateCalendar.propTypes = {
|
|
|
356
371
|
*/
|
|
357
372
|
dayOfWeekFormatter: PropTypes.func,
|
|
358
373
|
/**
|
|
359
|
-
* Default calendar month displayed when `value
|
|
374
|
+
* Default calendar month displayed when `value` and `defaultValue` are empty.
|
|
360
375
|
*/
|
|
361
376
|
defaultCalendarMonth: PropTypes.any,
|
|
362
377
|
/**
|
|
@@ -465,6 +480,11 @@ process.env.NODE_ENV !== "production" ? DateCalendar.propTypes = {
|
|
|
465
480
|
* @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)
|
|
466
481
|
*/
|
|
467
482
|
reduceAnimations: PropTypes.bool,
|
|
483
|
+
/**
|
|
484
|
+
* The date used to generate the new value when both `value` and `defaultValue` are empty.
|
|
485
|
+
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`.
|
|
486
|
+
*/
|
|
487
|
+
referenceDate: PropTypes.any,
|
|
468
488
|
/**
|
|
469
489
|
* Component displaying when passed `loading` true.
|
|
470
490
|
* @returns {React.ReactNode} The node to render when loading.
|
|
@@ -517,6 +537,14 @@ process.env.NODE_ENV !== "production" ? DateCalendar.propTypes = {
|
|
|
517
537
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
518
538
|
*/
|
|
519
539
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
540
|
+
/**
|
|
541
|
+
* Choose which timezone to use for the value.
|
|
542
|
+
* Example: "default", "system", "UTC", "America/New_York".
|
|
543
|
+
* If you pass values from other timezones to some props, they will be converted to this timezone before being used.
|
|
544
|
+
* @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.
|
|
545
|
+
* @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
|
|
546
|
+
*/
|
|
547
|
+
timezone: PropTypes.string,
|
|
520
548
|
/**
|
|
521
549
|
* The selected value.
|
|
522
550
|
* Used when the component is controlled.
|
|
@@ -138,8 +138,6 @@ function WrappedDay(_ref) {
|
|
|
138
138
|
isViewFocused
|
|
139
139
|
} = _ref,
|
|
140
140
|
other = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
141
|
-
const utils = useUtils();
|
|
142
|
-
const now = useNow();
|
|
143
141
|
const {
|
|
144
142
|
disabled,
|
|
145
143
|
disableHighlightToday,
|
|
@@ -148,8 +146,11 @@ function WrappedDay(_ref) {
|
|
|
148
146
|
components,
|
|
149
147
|
componentsProps,
|
|
150
148
|
slots,
|
|
151
|
-
slotProps
|
|
149
|
+
slotProps,
|
|
150
|
+
timezone
|
|
152
151
|
} = parentProps;
|
|
152
|
+
const utils = useUtils();
|
|
153
|
+
const now = useNow(timezone);
|
|
153
154
|
const isFocusableDay = focusableDay !== null && utils.isSameDay(day, focusableDay);
|
|
154
155
|
const isSelected = selectedDays.some(selectedDay => utils.isSameDay(selectedDay, day));
|
|
155
156
|
const isToday = utils.isSameDay(day, now);
|
|
@@ -207,15 +208,10 @@ function WrappedDay(_ref) {
|
|
|
207
208
|
* @ignore - do not document.
|
|
208
209
|
*/
|
|
209
210
|
export function DayCalendar(inProps) {
|
|
210
|
-
const now = useNow();
|
|
211
|
-
const utils = useUtils();
|
|
212
211
|
const props = useThemeProps({
|
|
213
212
|
props: inProps,
|
|
214
213
|
name: 'MuiDayCalendar'
|
|
215
214
|
});
|
|
216
|
-
const classes = useUtilityClasses(props);
|
|
217
|
-
const theme = useTheme();
|
|
218
|
-
const isRTL = theme.direction === 'rtl';
|
|
219
215
|
const {
|
|
220
216
|
onFocusedDayChange,
|
|
221
217
|
className,
|
|
@@ -245,8 +241,14 @@ export function DayCalendar(inProps) {
|
|
|
245
241
|
gridLabelId,
|
|
246
242
|
displayWeekNumber,
|
|
247
243
|
fixedWeekNumber,
|
|
248
|
-
autoFocus
|
|
244
|
+
autoFocus,
|
|
245
|
+
timezone
|
|
249
246
|
} = props;
|
|
247
|
+
const now = useNow(timezone);
|
|
248
|
+
const utils = useUtils();
|
|
249
|
+
const classes = useUtilityClasses(props);
|
|
250
|
+
const theme = useTheme();
|
|
251
|
+
const isRTL = theme.direction === 'rtl';
|
|
250
252
|
const isDateDisabled = useIsDateDisabled({
|
|
251
253
|
shouldDisableDate,
|
|
252
254
|
shouldDisableMonth,
|
|
@@ -254,7 +256,8 @@ export function DayCalendar(inProps) {
|
|
|
254
256
|
minDate,
|
|
255
257
|
maxDate,
|
|
256
258
|
disablePast,
|
|
257
|
-
disableFuture
|
|
259
|
+
disableFuture,
|
|
260
|
+
timezone
|
|
258
261
|
});
|
|
259
262
|
const localeText = useLocaleText();
|
|
260
263
|
const [internalHasFocus, setInternalHasFocus] = useControlled({
|
|
@@ -297,7 +300,8 @@ export function DayCalendar(inProps) {
|
|
|
297
300
|
date: newFocusedDayDefault,
|
|
298
301
|
minDate: isRTL ? newFocusedDayDefault : utils.startOfMonth(nextAvailableMonth),
|
|
299
302
|
maxDate: isRTL ? utils.endOfMonth(nextAvailableMonth) : newFocusedDayDefault,
|
|
300
|
-
isDateDisabled
|
|
303
|
+
isDateDisabled,
|
|
304
|
+
timezone
|
|
301
305
|
});
|
|
302
306
|
focusDay(closestDayToFocus || newFocusedDayDefault);
|
|
303
307
|
event.preventDefault();
|
|
@@ -312,7 +316,8 @@ export function DayCalendar(inProps) {
|
|
|
312
316
|
date: newFocusedDayDefault,
|
|
313
317
|
minDate: isRTL ? utils.startOfMonth(nextAvailableMonth) : newFocusedDayDefault,
|
|
314
318
|
maxDate: isRTL ? newFocusedDayDefault : utils.endOfMonth(nextAvailableMonth),
|
|
315
|
-
isDateDisabled
|
|
319
|
+
isDateDisabled,
|
|
320
|
+
timezone
|
|
316
321
|
});
|
|
317
322
|
focusDay(closestDayToFocus || newFocusedDayDefault);
|
|
318
323
|
event.preventDefault();
|
|
@@ -363,14 +368,16 @@ export function DayCalendar(inProps) {
|
|
|
363
368
|
maxDate: endOfMonth,
|
|
364
369
|
disablePast,
|
|
365
370
|
disableFuture,
|
|
366
|
-
isDateDisabled
|
|
371
|
+
isDateDisabled,
|
|
372
|
+
timezone
|
|
367
373
|
});
|
|
368
374
|
}
|
|
369
375
|
return internalFocusedDay;
|
|
370
|
-
}, [currentMonth, disableFuture, disablePast, internalFocusedDay, isDateDisabled, utils]);
|
|
376
|
+
}, [currentMonth, disableFuture, disablePast, internalFocusedDay, isDateDisabled, utils, timezone]);
|
|
371
377
|
const weeksToDisplay = React.useMemo(() => {
|
|
372
|
-
const
|
|
373
|
-
|
|
378
|
+
const currentMonthWithTimezone = utils.setTimezone(currentMonth, timezone);
|
|
379
|
+
const toDisplay = utils.getWeekArray(currentMonthWithTimezone);
|
|
380
|
+
let nextMonth = utils.addMonths(currentMonthWithTimezone, 1);
|
|
374
381
|
while (fixedWeekNumber && toDisplay.length < fixedWeekNumber) {
|
|
375
382
|
const additionalWeeks = utils.getWeekArray(nextMonth);
|
|
376
383
|
const hasCommonWeek = utils.isSameDay(toDisplay[toDisplay.length - 1][0], additionalWeeks[0][0]);
|
|
@@ -382,7 +389,7 @@ export function DayCalendar(inProps) {
|
|
|
382
389
|
nextMonth = utils.addMonths(nextMonth, 1);
|
|
383
390
|
}
|
|
384
391
|
return toDisplay;
|
|
385
|
-
}, [currentMonth, fixedWeekNumber, utils]);
|
|
392
|
+
}, [currentMonth, fixedWeekNumber, utils, timezone]);
|
|
386
393
|
return /*#__PURE__*/_jsxs("div", {
|
|
387
394
|
role: "grid",
|
|
388
395
|
"aria-labelledby": gridLabelId,
|
|
@@ -116,7 +116,8 @@ export function PickersCalendarHeader(inProps) {
|
|
|
116
116
|
view,
|
|
117
117
|
reduceAnimations,
|
|
118
118
|
views,
|
|
119
|
-
labelId
|
|
119
|
+
labelId,
|
|
120
|
+
timezone
|
|
120
121
|
} = props;
|
|
121
122
|
const ownerState = props;
|
|
122
123
|
const classes = useUtilityClasses(props);
|
|
@@ -144,11 +145,13 @@ export function PickersCalendarHeader(inProps) {
|
|
|
144
145
|
const selectPreviousMonth = () => onMonthChange(utils.addMonths(month, -1), 'right');
|
|
145
146
|
const isNextMonthDisabled = useNextMonthDisabled(month, {
|
|
146
147
|
disableFuture,
|
|
147
|
-
maxDate
|
|
148
|
+
maxDate,
|
|
149
|
+
timezone
|
|
148
150
|
});
|
|
149
151
|
const isPreviousMonthDisabled = usePreviousMonthDisabled(month, {
|
|
150
152
|
disablePast,
|
|
151
|
-
minDate
|
|
153
|
+
minDate,
|
|
154
|
+
timezone
|
|
152
155
|
});
|
|
153
156
|
const handleToggleView = () => {
|
|
154
157
|
if (views.length === 1 || !onViewChange || disabled) {
|
|
@@ -3,7 +3,8 @@ import * as React from 'react';
|
|
|
3
3
|
import useEventCallback from '@mui/utils/useEventCallback';
|
|
4
4
|
import { useIsDateDisabled } from './useIsDateDisabled';
|
|
5
5
|
import { useUtils, useNow } from '../internals/hooks/useUtils';
|
|
6
|
-
import {
|
|
6
|
+
import { singleItemValueManager } from '../internals/utils/valueManagers';
|
|
7
|
+
import { SECTION_TYPE_GRANULARITY } from '../internals/utils/getDefaultReferenceDate';
|
|
7
8
|
export const createCalendarStateReducer = (reduceAnimations, disableSwitchToMonthOnDayFocus, utils) => (state, action) => {
|
|
8
9
|
switch (action.type) {
|
|
9
10
|
case 'changeMonth':
|
|
@@ -33,25 +34,47 @@ export const createCalendarStateReducer = (reduceAnimations, disableSwitchToMont
|
|
|
33
34
|
throw new Error('missing support');
|
|
34
35
|
}
|
|
35
36
|
};
|
|
36
|
-
export const useCalendarState =
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
37
|
+
export const useCalendarState = params => {
|
|
38
|
+
const {
|
|
39
|
+
value,
|
|
40
|
+
referenceDate: referenceDateProp,
|
|
41
|
+
defaultCalendarMonth,
|
|
42
|
+
disableFuture,
|
|
43
|
+
disablePast,
|
|
44
|
+
disableSwitchToMonthOnDayFocus = false,
|
|
45
|
+
maxDate,
|
|
46
|
+
minDate,
|
|
47
|
+
onMonthChange,
|
|
48
|
+
reduceAnimations,
|
|
49
|
+
shouldDisableDate,
|
|
50
|
+
timezone
|
|
51
|
+
} = params;
|
|
52
|
+
const now = useNow(timezone);
|
|
49
53
|
const utils = useUtils();
|
|
50
54
|
const reducerFn = React.useRef(createCalendarStateReducer(Boolean(reduceAnimations), disableSwitchToMonthOnDayFocus, utils)).current;
|
|
55
|
+
const referenceDate = React.useMemo(() => {
|
|
56
|
+
let externalReferenceDate = null;
|
|
57
|
+
if (referenceDateProp) {
|
|
58
|
+
externalReferenceDate = referenceDateProp;
|
|
59
|
+
} else if (defaultCalendarMonth) {
|
|
60
|
+
// For `defaultCalendarMonth`, we just want to keep the month and the year to avoid a behavior change.
|
|
61
|
+
externalReferenceDate = utils.startOfMonth(defaultCalendarMonth);
|
|
62
|
+
}
|
|
63
|
+
return singleItemValueManager.getInitialReferenceValue({
|
|
64
|
+
value,
|
|
65
|
+
utils,
|
|
66
|
+
timezone,
|
|
67
|
+
props: params,
|
|
68
|
+
referenceDate: externalReferenceDate,
|
|
69
|
+
granularity: SECTION_TYPE_GRANULARITY.day
|
|
70
|
+
});
|
|
71
|
+
}, [] // eslint-disable-line react-hooks/exhaustive-deps
|
|
72
|
+
);
|
|
73
|
+
|
|
51
74
|
const [calendarState, dispatch] = React.useReducer(reducerFn, {
|
|
52
75
|
isMonthSwitchingAnimating: false,
|
|
53
76
|
focusedDay: value || now,
|
|
54
|
-
currentMonth: utils.startOfMonth(
|
|
77
|
+
currentMonth: utils.startOfMonth(referenceDate),
|
|
55
78
|
slideDirection: 'left'
|
|
56
79
|
});
|
|
57
80
|
const handleChangeMonth = React.useCallback(payload => {
|
|
@@ -77,7 +100,8 @@ export const useCalendarState = ({
|
|
|
77
100
|
minDate,
|
|
78
101
|
maxDate,
|
|
79
102
|
disableFuture,
|
|
80
|
-
disablePast
|
|
103
|
+
disablePast,
|
|
104
|
+
timezone
|
|
81
105
|
});
|
|
82
106
|
const onMonthSwitchingAnimationEnd = React.useCallback(() => {
|
|
83
107
|
dispatch({
|
|
@@ -94,6 +118,7 @@ export const useCalendarState = ({
|
|
|
94
118
|
}
|
|
95
119
|
});
|
|
96
120
|
return {
|
|
121
|
+
referenceDate,
|
|
97
122
|
calendarState,
|
|
98
123
|
changeMonth,
|
|
99
124
|
changeFocusedDay,
|
|
@@ -8,7 +8,8 @@ export const useIsDateDisabled = ({
|
|
|
8
8
|
minDate,
|
|
9
9
|
maxDate,
|
|
10
10
|
disableFuture,
|
|
11
|
-
disablePast
|
|
11
|
+
disablePast,
|
|
12
|
+
timezone
|
|
12
13
|
}) => {
|
|
13
14
|
const adapter = useLocalizationContext();
|
|
14
15
|
return React.useCallback(day => validateDate({
|
|
@@ -21,7 +22,8 @@ export const useIsDateDisabled = ({
|
|
|
21
22
|
minDate,
|
|
22
23
|
maxDate,
|
|
23
24
|
disableFuture,
|
|
24
|
-
disablePast
|
|
25
|
+
disablePast,
|
|
26
|
+
timezone
|
|
25
27
|
}
|
|
26
|
-
}) !== null, [adapter, shouldDisableDate, shouldDisableMonth, shouldDisableYear, minDate, maxDate, disableFuture, disablePast]);
|
|
28
|
+
}) !== null, [adapter, shouldDisableDate, shouldDisableMonth, shouldDisableYear, minDate, maxDate, disableFuture, disablePast, timezone]);
|
|
27
29
|
};
|
|
@@ -229,7 +229,7 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
|
|
|
229
229
|
*/
|
|
230
230
|
readOnly: PropTypes.bool,
|
|
231
231
|
/**
|
|
232
|
-
* The date used to generate a part of the
|
|
232
|
+
* The date used to generate a part of the new value that is not present in the format when both `value` and `defaultValue` are empty.
|
|
233
233
|
* For example, on time fields it will be used to determine the date to set.
|
|
234
234
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
|
|
235
235
|
*/
|
|
@@ -307,6 +307,14 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
|
|
|
307
307
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
308
308
|
*/
|
|
309
309
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
310
|
+
/**
|
|
311
|
+
* Choose which timezone to use for the value.
|
|
312
|
+
* Example: "default", "system", "UTC", "America/New_York".
|
|
313
|
+
* If you pass values from other timezones to some props, they will be converted to this timezone before being used.
|
|
314
|
+
* @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.
|
|
315
|
+
* @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
|
|
316
|
+
*/
|
|
317
|
+
timezone: PropTypes.string,
|
|
310
318
|
/**
|
|
311
319
|
* The ref object used to imperatively interact with the field.
|
|
312
320
|
*/
|
|
@@ -73,7 +73,7 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
|
|
|
73
73
|
*/
|
|
74
74
|
dayOfWeekFormatter: PropTypes.func,
|
|
75
75
|
/**
|
|
76
|
-
* Default calendar month displayed when `value
|
|
76
|
+
* Default calendar month displayed when `value` and `defaultValue` are empty.
|
|
77
77
|
*/
|
|
78
78
|
defaultCalendarMonth: PropTypes.any,
|
|
79
79
|
/**
|
|
@@ -310,6 +310,14 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
|
|
|
310
310
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
311
311
|
*/
|
|
312
312
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
313
|
+
/**
|
|
314
|
+
* Choose which timezone to use for the value.
|
|
315
|
+
* Example: "default", "system", "UTC", "America/New_York".
|
|
316
|
+
* If you pass values from other timezones to some props, they will be converted to this timezone before being used.
|
|
317
|
+
* @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.
|
|
318
|
+
* @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
|
|
319
|
+
*/
|
|
320
|
+
timezone: PropTypes.string,
|
|
313
321
|
/**
|
|
314
322
|
* The selected value.
|
|
315
323
|
* Used when the component is controlled.
|
|
@@ -262,7 +262,7 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
|
|
|
262
262
|
*/
|
|
263
263
|
readOnly: PropTypes.bool,
|
|
264
264
|
/**
|
|
265
|
-
* The date used to generate a part of the
|
|
265
|
+
* The date used to generate a part of the new value that is not present in the format when both `value` and `defaultValue` are empty.
|
|
266
266
|
* For example, on time fields it will be used to determine the date to set.
|
|
267
267
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
|
|
268
268
|
*/
|
|
@@ -356,6 +356,14 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
|
|
|
356
356
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
357
357
|
*/
|
|
358
358
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
359
|
+
/**
|
|
360
|
+
* Choose which timezone to use for the value.
|
|
361
|
+
* Example: "default", "system", "UTC", "America/New_York".
|
|
362
|
+
* If you pass values from other timezones to some props, they will be converted to this timezone before being used.
|
|
363
|
+
* @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.
|
|
364
|
+
* @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
|
|
365
|
+
*/
|
|
366
|
+
timezone: PropTypes.string,
|
|
359
367
|
/**
|
|
360
368
|
* The ref object used to imperatively interact with the field.
|
|
361
369
|
*/
|
|
@@ -83,7 +83,7 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
|
|
|
83
83
|
*/
|
|
84
84
|
dayOfWeekFormatter: PropTypes.func,
|
|
85
85
|
/**
|
|
86
|
-
* Default calendar month displayed when `value
|
|
86
|
+
* Default calendar month displayed when `value` and `defaultValue` are empty.
|
|
87
87
|
*/
|
|
88
88
|
defaultCalendarMonth: PropTypes.any,
|
|
89
89
|
/**
|
|
@@ -380,6 +380,14 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
|
|
|
380
380
|
minutes: PropTypes.number,
|
|
381
381
|
seconds: PropTypes.number
|
|
382
382
|
}),
|
|
383
|
+
/**
|
|
384
|
+
* Choose which timezone to use for the value.
|
|
385
|
+
* Example: "default", "system", "UTC", "America/New_York".
|
|
386
|
+
* If you pass values from other timezones to some props, they will be converted to this timezone before being used.
|
|
387
|
+
* @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.
|
|
388
|
+
* @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
|
|
389
|
+
*/
|
|
390
|
+
timezone: PropTypes.string,
|
|
383
391
|
/**
|
|
384
392
|
* The selected value.
|
|
385
393
|
* Used when the component is controlled.
|
|
@@ -93,7 +93,7 @@ DesktopDatePicker.propTypes = {
|
|
|
93
93
|
*/
|
|
94
94
|
dayOfWeekFormatter: PropTypes.func,
|
|
95
95
|
/**
|
|
96
|
-
* Default calendar month displayed when `value
|
|
96
|
+
* Default calendar month displayed when `value` and `defaultValue` are empty.
|
|
97
97
|
*/
|
|
98
98
|
defaultCalendarMonth: PropTypes.any,
|
|
99
99
|
/**
|
|
@@ -324,6 +324,14 @@ DesktopDatePicker.propTypes = {
|
|
|
324
324
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
325
325
|
*/
|
|
326
326
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
327
|
+
/**
|
|
328
|
+
* Choose which timezone to use for the value.
|
|
329
|
+
* Example: "default", "system", "UTC", "America/New_York".
|
|
330
|
+
* If you pass values from other timezones to some props, they will be converted to this timezone before being used.
|
|
331
|
+
* @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.
|
|
332
|
+
* @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
|
|
333
|
+
*/
|
|
334
|
+
timezone: PropTypes.string,
|
|
327
335
|
/**
|
|
328
336
|
* The selected value.
|
|
329
337
|
* Used when the component is controlled.
|
|
@@ -139,7 +139,7 @@ DesktopDateTimePicker.propTypes = {
|
|
|
139
139
|
*/
|
|
140
140
|
dayOfWeekFormatter: PropTypes.func,
|
|
141
141
|
/**
|
|
142
|
-
* Default calendar month displayed when `value
|
|
142
|
+
* Default calendar month displayed when `value` and `defaultValue` are empty.
|
|
143
143
|
*/
|
|
144
144
|
defaultCalendarMonth: PropTypes.any,
|
|
145
145
|
/**
|
|
@@ -430,6 +430,14 @@ DesktopDateTimePicker.propTypes = {
|
|
|
430
430
|
minutes: PropTypes.number,
|
|
431
431
|
seconds: PropTypes.number
|
|
432
432
|
}),
|
|
433
|
+
/**
|
|
434
|
+
* Choose which timezone to use for the value.
|
|
435
|
+
* Example: "default", "system", "UTC", "America/New_York".
|
|
436
|
+
* If you pass values from other timezones to some props, they will be converted to this timezone before being used.
|
|
437
|
+
* @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.
|
|
438
|
+
* @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
|
|
439
|
+
*/
|
|
440
|
+
timezone: PropTypes.string,
|
|
433
441
|
/**
|
|
434
442
|
* The selected value.
|
|
435
443
|
* Used when the component is controlled.
|
|
@@ -314,6 +314,14 @@ DesktopTimePicker.propTypes = {
|
|
|
314
314
|
minutes: PropTypes.number,
|
|
315
315
|
seconds: PropTypes.number
|
|
316
316
|
}),
|
|
317
|
+
/**
|
|
318
|
+
* Choose which timezone to use for the value.
|
|
319
|
+
* Example: "default", "system", "UTC", "America/New_York".
|
|
320
|
+
* If you pass values from other timezones to some props, they will be converted to this timezone before being used.
|
|
321
|
+
* @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.
|
|
322
|
+
* @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
|
|
323
|
+
*/
|
|
324
|
+
timezone: PropTypes.string,
|
|
317
325
|
/**
|
|
318
326
|
* The selected value.
|
|
319
327
|
* Used when the component is controlled.
|