@mui/x-date-pickers 8.5.3 → 8.6.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/CHANGELOG.md +107 -0
- package/DateCalendar/DateCalendar.js +16 -16
- package/DateCalendar/DayCalendar.js +48 -48
- package/DateCalendar/useCalendarState.js +25 -25
- package/DateCalendar/useIsDateDisabled.js +2 -2
- package/DatePicker/DatePickerToolbar.js +7 -9
- package/DateTimeField/DateTimeField.js +1 -1
- package/DateTimePicker/DateTimePicker.js +1 -1
- package/DateTimePicker/DateTimePickerToolbar.js +12 -13
- package/DateTimePicker/shared.js +3 -3
- package/DesktopDatePicker/DesktopDatePicker.js +3 -3
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +4 -4
- package/DesktopTimePicker/DesktopTimePicker.js +4 -4
- package/DigitalClock/DigitalClock.d.ts +1 -1
- package/DigitalClock/DigitalClock.js +16 -16
- package/LocalizationProvider/LocalizationProvider.d.ts +9 -3
- package/LocalizationProvider/LocalizationProvider.js +28 -19
- package/MobileDatePicker/MobileDatePicker.js +3 -3
- package/MobileDateTimePicker/MobileDateTimePicker.js +4 -4
- package/MobileTimePicker/MobileTimePicker.js +4 -4
- package/MonthCalendar/MonthCalendar.js +19 -18
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +32 -32
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +4 -4
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +7 -7
- package/PickerDay2/PickerDay2.js +3 -3
- package/PickersActionBar/PickersActionBar.d.ts +2 -2
- package/PickersActionBar/PickersActionBar.js +2 -2
- package/PickersCalendarHeader/PickersCalendarHeader.js +7 -8
- package/PickersDay/PickersDay.js +3 -3
- package/PickersDay/usePickerDayOwnerState.js +5 -5
- package/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
- package/StaticTimePicker/StaticTimePicker.js +1 -1
- package/TimeClock/Clock.js +8 -9
- package/TimeClock/ClockNumbers.d.ts +3 -3
- package/TimeClock/ClockNumbers.js +5 -5
- package/TimeClock/TimeClock.js +29 -29
- package/TimeField/TimeField.js +1 -1
- package/TimePicker/TimePicker.js +1 -1
- package/TimePicker/TimePickerToolbar.js +7 -9
- package/TimePicker/shared.js +3 -3
- package/YearCalendar/YearCalendar.js +19 -18
- package/esm/DateCalendar/DateCalendar.js +16 -16
- package/esm/DateCalendar/DayCalendar.js +48 -48
- package/esm/DateCalendar/useCalendarState.js +25 -25
- package/esm/DateCalendar/useIsDateDisabled.js +2 -2
- package/esm/DatePicker/DatePickerToolbar.js +6 -8
- package/esm/DateTimeField/DateTimeField.js +1 -1
- package/esm/DateTimePicker/DateTimePicker.js +1 -1
- package/esm/DateTimePicker/DateTimePickerToolbar.js +11 -12
- package/esm/DateTimePicker/shared.js +3 -3
- package/esm/DesktopDatePicker/DesktopDatePicker.js +3 -3
- package/esm/DesktopDateTimePicker/DesktopDateTimePicker.js +4 -4
- package/esm/DesktopTimePicker/DesktopTimePicker.js +4 -4
- package/esm/DigitalClock/DigitalClock.d.ts +1 -1
- package/esm/DigitalClock/DigitalClock.js +16 -16
- package/esm/LocalizationProvider/LocalizationProvider.d.ts +9 -3
- package/esm/LocalizationProvider/LocalizationProvider.js +27 -18
- package/esm/MobileDatePicker/MobileDatePicker.js +3 -3
- package/esm/MobileDateTimePicker/MobileDateTimePicker.js +4 -4
- package/esm/MobileTimePicker/MobileTimePicker.js +4 -4
- package/esm/MonthCalendar/MonthCalendar.js +20 -19
- package/esm/MultiSectionDigitalClock/MultiSectionDigitalClock.js +32 -32
- package/esm/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +4 -4
- package/esm/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +7 -7
- package/esm/PickerDay2/PickerDay2.js +3 -3
- package/esm/PickersActionBar/PickersActionBar.d.ts +2 -2
- package/esm/PickersActionBar/PickersActionBar.js +2 -2
- package/esm/PickersCalendarHeader/PickersCalendarHeader.js +6 -7
- package/esm/PickersDay/PickersDay.js +3 -3
- package/esm/PickersDay/usePickerDayOwnerState.js +5 -5
- package/esm/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
- package/esm/StaticTimePicker/StaticTimePicker.js +1 -1
- package/esm/TimeClock/Clock.js +7 -8
- package/esm/TimeClock/ClockNumbers.d.ts +3 -3
- package/esm/TimeClock/ClockNumbers.js +5 -5
- package/esm/TimeClock/TimeClock.js +29 -29
- package/esm/TimeField/TimeField.js +1 -1
- package/esm/TimePicker/TimePicker.js +1 -1
- package/esm/TimePicker/TimePickerToolbar.js +6 -8
- package/esm/TimePicker/shared.js +3 -3
- package/esm/YearCalendar/YearCalendar.js +20 -19
- package/esm/hooks/index.d.ts +2 -1
- package/esm/hooks/index.js +2 -1
- package/esm/hooks/useParsedFormat.js +6 -6
- package/esm/hooks/usePickerAdapter.d.ts +7 -0
- package/esm/hooks/usePickerAdapter.js +20 -0
- package/esm/hooks/usePickerTranslations.js +1 -1
- package/esm/index.js +1 -1
- package/esm/internals/components/pickersToolbarClasses.d.ts +1 -1
- package/esm/internals/demo/DemoContainer.d.ts +2 -3
- package/esm/internals/demo/DemoContainer.js +3 -2
- package/esm/internals/hooks/date-helpers-hooks.js +16 -16
- package/esm/internals/hooks/useClockReferenceDate.d.ts +2 -2
- package/esm/internals/hooks/useClockReferenceDate.js +3 -3
- package/esm/internals/hooks/useControlledValue.js +8 -7
- package/esm/internals/hooks/useField/buildSectionsFromFormat.d.ts +1 -1
- package/esm/internals/hooks/useField/buildSectionsFromFormat.js +17 -17
- package/esm/internals/hooks/useField/useField.types.d.ts +2 -2
- package/esm/internals/hooks/useField/useField.utils.d.ts +10 -10
- package/esm/internals/hooks/useField/useField.utils.js +69 -69
- package/esm/internals/hooks/useField/useFieldCharacterEditing.js +11 -11
- package/esm/internals/hooks/useField/useFieldRootHandleKeyDown.js +7 -7
- package/esm/internals/hooks/useField/useFieldSectionContentProps.js +15 -16
- package/esm/internals/hooks/useField/useFieldState.js +22 -24
- package/esm/internals/hooks/usePicker/hooks/useValueAndOpenStates.js +6 -6
- package/esm/internals/hooks/usePicker/usePicker.js +5 -6
- package/esm/internals/hooks/useUtils.d.ts +1 -8
- package/esm/internals/hooks/useUtils.js +3 -19
- package/esm/internals/index.d.ts +2 -1
- package/esm/internals/index.js +2 -1
- package/esm/internals/models/manager.d.ts +14 -14
- package/esm/internals/models/props/time.d.ts +1 -1
- package/esm/internals/utils/date-time-utils.d.ts +1 -1
- package/esm/internals/utils/date-time-utils.js +5 -5
- package/esm/internals/utils/date-utils.d.ts +11 -11
- package/esm/internals/utils/date-utils.js +34 -34
- package/esm/internals/utils/getDefaultReferenceDate.d.ts +2 -2
- package/esm/internals/utils/getDefaultReferenceDate.js +16 -16
- package/esm/internals/utils/time-utils.d.ts +5 -5
- package/esm/internals/utils/time-utils.js +12 -12
- package/esm/internals/utils/valueManagers.js +4 -4
- package/esm/managers/useDateManager.js +12 -12
- package/esm/managers/useDateTimeManager.js +13 -13
- package/esm/managers/useTimeManager.js +9 -10
- package/esm/validation/useValidation.d.ts +2 -3
- package/esm/validation/useValidation.js +2 -2
- package/esm/validation/validateDate.js +6 -6
- package/esm/validation/validateTime.js +6 -6
- package/hooks/index.d.ts +2 -1
- package/hooks/index.js +8 -1
- package/hooks/useParsedFormat.js +6 -6
- package/hooks/usePickerAdapter.d.ts +7 -0
- package/hooks/usePickerAdapter.js +29 -0
- package/hooks/usePickerTranslations.js +2 -2
- package/index.js +1 -1
- package/internals/components/pickersToolbarClasses.d.ts +1 -1
- package/internals/demo/DemoContainer.d.ts +2 -3
- package/internals/demo/DemoContainer.js +3 -2
- package/internals/hooks/date-helpers-hooks.js +16 -16
- package/internals/hooks/useClockReferenceDate.d.ts +2 -2
- package/internals/hooks/useClockReferenceDate.js +3 -3
- package/internals/hooks/useControlledValue.js +7 -7
- package/internals/hooks/useField/buildSectionsFromFormat.d.ts +1 -1
- package/internals/hooks/useField/buildSectionsFromFormat.js +17 -17
- package/internals/hooks/useField/useField.types.d.ts +2 -2
- package/internals/hooks/useField/useField.utils.d.ts +10 -10
- package/internals/hooks/useField/useField.utils.js +69 -69
- package/internals/hooks/useField/useFieldCharacterEditing.js +11 -11
- package/internals/hooks/useField/useFieldRootHandleKeyDown.js +7 -7
- package/internals/hooks/useField/useFieldSectionContentProps.js +14 -15
- package/internals/hooks/useField/useFieldState.js +23 -25
- package/internals/hooks/usePicker/hooks/useValueAndOpenStates.js +6 -6
- package/internals/hooks/usePicker/usePicker.js +5 -6
- package/internals/hooks/useUtils.d.ts +1 -8
- package/internals/hooks/useUtils.js +5 -24
- package/internals/index.d.ts +2 -1
- package/internals/index.js +2 -7
- package/internals/models/manager.d.ts +14 -14
- package/internals/models/props/time.d.ts +1 -1
- package/internals/utils/date-time-utils.d.ts +1 -1
- package/internals/utils/date-time-utils.js +5 -5
- package/internals/utils/date-utils.d.ts +11 -11
- package/internals/utils/date-utils.js +34 -34
- package/internals/utils/getDefaultReferenceDate.d.ts +2 -2
- package/internals/utils/getDefaultReferenceDate.js +16 -16
- package/internals/utils/time-utils.d.ts +5 -5
- package/internals/utils/time-utils.js +12 -12
- package/internals/utils/valueManagers.js +4 -4
- package/managers/useDateManager.js +12 -12
- package/managers/useDateTimeManager.js +13 -13
- package/managers/useTimeManager.js +10 -11
- package/package.json +2 -2
- package/validation/useValidation.d.ts +2 -3
- package/validation/useValidation.js +2 -2
- package/validation/validateDate.js +6 -6
- package/validation/validateTime.js +6 -6
|
@@ -19,8 +19,7 @@ var _createStyled = require("@mui/system/createStyled");
|
|
|
19
19
|
var _PickersToolbarText = require("../internals/components/PickersToolbarText");
|
|
20
20
|
var _PickersToolbar = require("../internals/components/PickersToolbar");
|
|
21
21
|
var _PickersToolbarButton = require("../internals/components/PickersToolbarButton");
|
|
22
|
-
var
|
|
23
|
-
var _useUtils = require("../internals/hooks/useUtils");
|
|
22
|
+
var _hooks = require("../hooks");
|
|
24
23
|
var _dateTimePickerToolbarClasses = require("./dateTimePickerToolbarClasses");
|
|
25
24
|
var _dateHelpersHooks = require("../internals/hooks/date-helpers-hooks");
|
|
26
25
|
var _dimensions = require("../internals/constants/dimensions");
|
|
@@ -252,10 +251,10 @@ function DateTimePickerToolbar(inProps) {
|
|
|
252
251
|
setView: setViewContext,
|
|
253
252
|
views
|
|
254
253
|
} = (0, _usePickerContext.usePickerContext)();
|
|
255
|
-
const translations = (0,
|
|
254
|
+
const translations = (0, _hooks.usePickerTranslations)();
|
|
256
255
|
const ownerState = (0, _useToolbarOwnerState.useToolbarOwnerState)();
|
|
257
256
|
const classes = useUtilityClasses(classesProp, ownerState);
|
|
258
|
-
const
|
|
257
|
+
const adapter = (0, _hooks.usePickerAdapter)();
|
|
259
258
|
const overrides = React.useContext(DateTimePickerToolbarOverrideContext);
|
|
260
259
|
const value = overrides ? overrides.value : valueContext;
|
|
261
260
|
const setValue = overrides ? overrides.setValue : setValueContext;
|
|
@@ -272,19 +271,19 @@ function DateTimePickerToolbar(inProps) {
|
|
|
272
271
|
const showAmPmControl = Boolean(ampm && !ampmInClock);
|
|
273
272
|
const toolbarTitle = inToolbarTitle ?? translations.dateTimePickerToolbarTitle;
|
|
274
273
|
const dateText = React.useMemo(() => {
|
|
275
|
-
if (!
|
|
274
|
+
if (!adapter.isValid(value)) {
|
|
276
275
|
return toolbarPlaceholder;
|
|
277
276
|
}
|
|
278
277
|
if (toolbarFormat) {
|
|
279
|
-
return
|
|
278
|
+
return adapter.formatByString(value, toolbarFormat);
|
|
280
279
|
}
|
|
281
|
-
return
|
|
282
|
-
}, [value, toolbarFormat, toolbarPlaceholder,
|
|
280
|
+
return adapter.format(value, 'shortDate');
|
|
281
|
+
}, [value, toolbarFormat, toolbarPlaceholder, adapter]);
|
|
283
282
|
const formatSection = (format, fallback) => {
|
|
284
|
-
if (!
|
|
283
|
+
if (!adapter.isValid(value)) {
|
|
285
284
|
return fallback;
|
|
286
285
|
}
|
|
287
|
-
return
|
|
286
|
+
return adapter.format(value, format);
|
|
288
287
|
};
|
|
289
288
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(DateTimePickerToolbarRoot, (0, _extends2.default)({
|
|
290
289
|
className: (0, _clsx.default)(classes.root, className),
|
|
@@ -359,14 +358,14 @@ function DateTimePickerToolbar(inProps) {
|
|
|
359
358
|
variant: "subtitle2",
|
|
360
359
|
selected: meridiemMode === 'am',
|
|
361
360
|
typographyClassName: classes.ampmLabel,
|
|
362
|
-
value: (0, _dateUtils.formatMeridiem)(
|
|
361
|
+
value: (0, _dateUtils.formatMeridiem)(adapter, 'am'),
|
|
363
362
|
onClick: readOnly ? undefined : () => handleMeridiemChange('am'),
|
|
364
363
|
disabled: disabled
|
|
365
364
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersToolbarButton.PickersToolbarButton, {
|
|
366
365
|
variant: "subtitle2",
|
|
367
366
|
selected: meridiemMode === 'pm',
|
|
368
367
|
typographyClassName: classes.ampmLabel,
|
|
369
|
-
value: (0, _dateUtils.formatMeridiem)(
|
|
368
|
+
value: (0, _dateUtils.formatMeridiem)(adapter, 'pm'),
|
|
370
369
|
onClick: readOnly ? undefined : () => handleMeridiemChange('pm'),
|
|
371
370
|
disabled: disabled
|
|
372
371
|
})]
|
|
@@ -374,7 +373,7 @@ function DateTimePickerToolbar(inProps) {
|
|
|
374
373
|
variant: "h5",
|
|
375
374
|
onClick: () => setView('meridiem'),
|
|
376
375
|
selected: view === 'meridiem',
|
|
377
|
-
value: value && meridiemMode ? (0, _dateUtils.formatMeridiem)(
|
|
376
|
+
value: value && meridiemMode ? (0, _dateUtils.formatMeridiem)(adapter, meridiemMode) : '--',
|
|
378
377
|
width: _dimensions.MULTI_SECTION_CLOCK_SECTION_WIDTH
|
|
379
378
|
})]
|
|
380
379
|
})]
|
package/DateTimePicker/shared.js
CHANGED
|
@@ -9,20 +9,20 @@ exports.useDateTimePickerDefaultizedProps = useDateTimePickerDefaultizedProps;
|
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _styles = require("@mui/material/styles");
|
|
12
|
-
var
|
|
12
|
+
var _usePickerAdapter = require("../hooks/usePickerAdapter");
|
|
13
13
|
var _DateTimePickerTabs = require("./DateTimePickerTabs");
|
|
14
14
|
var _DateTimePickerToolbar = require("./DateTimePickerToolbar");
|
|
15
15
|
var _views = require("../internals/utils/views");
|
|
16
16
|
var _dateTimeUtils = require("../internals/utils/date-time-utils");
|
|
17
17
|
var _useDateTimeManager = require("../managers/useDateTimeManager");
|
|
18
18
|
function useDateTimePickerDefaultizedProps(props, name) {
|
|
19
|
-
const
|
|
19
|
+
const adapter = (0, _usePickerAdapter.usePickerAdapter)();
|
|
20
20
|
const themeProps = (0, _styles.useThemeProps)({
|
|
21
21
|
props,
|
|
22
22
|
name
|
|
23
23
|
});
|
|
24
24
|
const validationProps = (0, _useDateTimeManager.useApplyDefaultValuesToDateTimeValidationProps)(themeProps);
|
|
25
|
-
const ampm = themeProps.ampm ??
|
|
25
|
+
const ampm = themeProps.ampm ?? adapter.is12HourCycleInCurrentLocale();
|
|
26
26
|
const localeText = React.useMemo(() => {
|
|
27
27
|
if (themeProps.localeText?.toolbarTitle == null) {
|
|
28
28
|
return themeProps.localeText;
|
|
@@ -14,7 +14,7 @@ var _resolveComponentProps = _interopRequireDefault(require("@mui/utils/resolveC
|
|
|
14
14
|
var _refType = _interopRequireDefault(require("@mui/utils/refType"));
|
|
15
15
|
var _valueManagers = require("../internals/utils/valueManagers");
|
|
16
16
|
var _shared = require("../DatePicker/shared");
|
|
17
|
-
var
|
|
17
|
+
var _usePickerAdapter = require("../hooks/usePickerAdapter");
|
|
18
18
|
var _validation = require("../validation");
|
|
19
19
|
var _useDesktopPicker = require("../internals/hooks/useDesktopPicker");
|
|
20
20
|
var _DateField = require("../DateField");
|
|
@@ -31,7 +31,7 @@ var _dateUtils = require("../internals/utils/date-utils");
|
|
|
31
31
|
* - [DesktopDatePicker API](https://mui.com/x/api/date-pickers/desktop-date-picker/)
|
|
32
32
|
*/
|
|
33
33
|
const DesktopDatePicker = exports.DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePicker(inProps, ref) {
|
|
34
|
-
const
|
|
34
|
+
const adapter = (0, _usePickerAdapter.usePickerAdapter)();
|
|
35
35
|
|
|
36
36
|
// Props with the default values common to all date pickers
|
|
37
37
|
const defaultizedProps = (0, _shared.useDatePickerDefaultizedProps)(inProps, 'MuiDesktopDatePicker');
|
|
@@ -45,7 +45,7 @@ const DesktopDatePicker = exports.DesktopDatePicker = /*#__PURE__*/React.forward
|
|
|
45
45
|
const props = (0, _extends2.default)({}, defaultizedProps, {
|
|
46
46
|
closeOnSelect: defaultizedProps.closeOnSelect ?? true,
|
|
47
47
|
viewRenderers,
|
|
48
|
-
format: (0, _dateUtils.resolveDateFormat)(
|
|
48
|
+
format: (0, _dateUtils.resolveDateFormat)(adapter, defaultizedProps, false),
|
|
49
49
|
yearsPerRow: defaultizedProps.yearsPerRow ?? 4,
|
|
50
50
|
slots: (0, _extends2.default)({
|
|
51
51
|
field: _DateField.DateField
|
|
@@ -18,7 +18,7 @@ var _valueManagers = require("../internals/utils/valueManagers");
|
|
|
18
18
|
var _DateTimeField = require("../DateTimeField");
|
|
19
19
|
var _shared = require("../DateTimePicker/shared");
|
|
20
20
|
var _dateViewRenderers = require("../dateViewRenderers/dateViewRenderers");
|
|
21
|
-
var
|
|
21
|
+
var _usePickerAdapter = require("../hooks/usePickerAdapter");
|
|
22
22
|
var _validation = require("../validation");
|
|
23
23
|
var _useDesktopPicker = require("../internals/hooks/useDesktopPicker");
|
|
24
24
|
var _dateTimeUtils = require("../internals/utils/date-time-utils");
|
|
@@ -97,7 +97,7 @@ if (process.env.NODE_ENV !== "production") rendererInterceptor.displayName = "re
|
|
|
97
97
|
* - [DesktopDateTimePicker API](https://mui.com/x/api/date-pickers/desktop-date-time-picker/)
|
|
98
98
|
*/
|
|
99
99
|
const DesktopDateTimePicker = exports.DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDateTimePicker(inProps, ref) {
|
|
100
|
-
const
|
|
100
|
+
const adapter = (0, _usePickerAdapter.usePickerAdapter)();
|
|
101
101
|
|
|
102
102
|
// Props with the default values common to all date time pickers
|
|
103
103
|
const defaultizedProps = (0, _shared.useDateTimePickerDefaultizedProps)(inProps, 'MuiDesktopDateTimePicker');
|
|
@@ -119,7 +119,7 @@ const DesktopDateTimePicker = exports.DesktopDateTimePicker = /*#__PURE__*/React
|
|
|
119
119
|
// Props with the default values specific to the desktop variant
|
|
120
120
|
const props = (0, _extends2.default)({}, defaultizedProps, {
|
|
121
121
|
viewRenderers,
|
|
122
|
-
format: (0, _dateTimeUtils.resolveDateTimeFormat)(
|
|
122
|
+
format: (0, _dateTimeUtils.resolveDateTimeFormat)(adapter, defaultizedProps),
|
|
123
123
|
views,
|
|
124
124
|
yearsPerRow: defaultizedProps.yearsPerRow ?? 4,
|
|
125
125
|
ampmInClock,
|
|
@@ -159,7 +159,7 @@ DesktopDateTimePicker.propTypes = {
|
|
|
159
159
|
// ----------------------------------------------------------------------
|
|
160
160
|
/**
|
|
161
161
|
* 12h/24h view for hour selection clock.
|
|
162
|
-
* @default
|
|
162
|
+
* @default adapter.is12HourCycleInCurrentLocale()
|
|
163
163
|
*/
|
|
164
164
|
ampm: _propTypes.default.bool,
|
|
165
165
|
/**
|
|
@@ -15,7 +15,7 @@ var _refType = _interopRequireDefault(require("@mui/utils/refType"));
|
|
|
15
15
|
var _valueManagers = require("../internals/utils/valueManagers");
|
|
16
16
|
var _TimeField = require("../TimeField");
|
|
17
17
|
var _shared = require("../TimePicker/shared");
|
|
18
|
-
var
|
|
18
|
+
var _usePickerAdapter = require("../hooks/usePickerAdapter");
|
|
19
19
|
var _validation = require("../validation");
|
|
20
20
|
var _useDesktopPicker = require("../internals/hooks/useDesktopPicker");
|
|
21
21
|
var _timeViewRenderers = require("../timeViewRenderers");
|
|
@@ -32,7 +32,7 @@ var _dateTimeUtils = require("../internals/utils/date-time-utils");
|
|
|
32
32
|
* - [DesktopTimePicker API](https://mui.com/x/api/date-pickers/desktop-time-picker/)
|
|
33
33
|
*/
|
|
34
34
|
const DesktopTimePicker = exports.DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePicker(inProps, ref) {
|
|
35
|
-
const
|
|
35
|
+
const adapter = (0, _usePickerAdapter.usePickerAdapter)();
|
|
36
36
|
|
|
37
37
|
// Props with the default values common to all time pickers
|
|
38
38
|
const defaultizedProps = (0, _shared.useTimePickerDefaultizedProps)(inProps, 'MuiDesktopTimePicker');
|
|
@@ -58,7 +58,7 @@ const DesktopTimePicker = exports.DesktopTimePicker = /*#__PURE__*/React.forward
|
|
|
58
58
|
ampmInClock,
|
|
59
59
|
timeSteps,
|
|
60
60
|
viewRenderers,
|
|
61
|
-
format: (0, _timeUtils.resolveTimeFormat)(
|
|
61
|
+
format: (0, _timeUtils.resolveTimeFormat)(adapter, defaultizedProps),
|
|
62
62
|
// Setting only `hours` time view in case of single column time picker
|
|
63
63
|
// Allows for easy view lifecycle management
|
|
64
64
|
views: shouldRenderTimeInASingleColumn ? ['hours'] : views,
|
|
@@ -93,7 +93,7 @@ DesktopTimePicker.propTypes = {
|
|
|
93
93
|
// ----------------------------------------------------------------------
|
|
94
94
|
/**
|
|
95
95
|
* 12h/24h view for hour selection clock.
|
|
96
|
-
* @default
|
|
96
|
+
* @default adapter.is12HourCycleInCurrentLocale()
|
|
97
97
|
*/
|
|
98
98
|
ampm: _propTypes.default.bool,
|
|
99
99
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { DigitalClockProps } from "./DigitalClock.types.js";
|
|
3
|
-
export declare const DigitalClockItem: import("@emotion/styled").StyledComponent<import("@mui/material/MenuItem").MenuItemOwnProps & Omit<import("@mui/material/ButtonBase").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "disabled" | "autoFocus" | "dense" | "
|
|
3
|
+
export declare const DigitalClockItem: import("@emotion/styled").StyledComponent<import("@mui/material/MenuItem").MenuItemOwnProps & Omit<import("@mui/material/ButtonBase").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "disabled" | "autoFocus" | "dense" | "style" | "tabIndex" | "className" | "children" | "classes" | "sx" | "disableGutters" | "divider" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "selected"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, {}, {}>;
|
|
4
4
|
type DigitalClockComponent = ((props: DigitalClockProps & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
|
|
5
5
|
propTypes?: any;
|
|
6
6
|
};
|
|
@@ -20,7 +20,7 @@ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
|
20
20
|
var _MenuList = _interopRequireDefault(require("@mui/material/MenuList"));
|
|
21
21
|
var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
|
|
22
22
|
var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
|
|
23
|
-
var
|
|
23
|
+
var _hooks = require("../hooks");
|
|
24
24
|
var _useUtils = require("../internals/hooks/useUtils");
|
|
25
25
|
var _timeUtils = require("../internals/utils/time-utils");
|
|
26
26
|
var _PickerViewRoot = require("../internals/components/PickerViewRoot");
|
|
@@ -107,7 +107,7 @@ const DigitalClockItem = exports.DigitalClockItem = (0, _styles.styled)(_MenuIte
|
|
|
107
107
|
* - [DigitalClock API](https://mui.com/x/api/date-pickers/digital-clock/)
|
|
108
108
|
*/
|
|
109
109
|
const DigitalClock = exports.DigitalClock = /*#__PURE__*/React.forwardRef(function DigitalClock(inProps, ref) {
|
|
110
|
-
const
|
|
110
|
+
const adapter = (0, _hooks.usePickerAdapter)();
|
|
111
111
|
const containerRef = React.useRef(null);
|
|
112
112
|
const handleRef = (0, _useForkRef.default)(ref, containerRef);
|
|
113
113
|
const listRef = React.useRef(null);
|
|
@@ -116,7 +116,7 @@ const DigitalClock = exports.DigitalClock = /*#__PURE__*/React.forwardRef(functi
|
|
|
116
116
|
name: 'MuiDigitalClock'
|
|
117
117
|
});
|
|
118
118
|
const {
|
|
119
|
-
ampm =
|
|
119
|
+
ampm = adapter.is12HourCycleInCurrentLocale(),
|
|
120
120
|
timeStep = 30,
|
|
121
121
|
autoFocus,
|
|
122
122
|
slots,
|
|
@@ -159,7 +159,7 @@ const DigitalClock = exports.DigitalClock = /*#__PURE__*/React.forwardRef(functi
|
|
|
159
159
|
onChange,
|
|
160
160
|
valueManager: _valueManagers.singleItemValueManager
|
|
161
161
|
});
|
|
162
|
-
const translations = (0,
|
|
162
|
+
const translations = (0, _hooks.usePickerTranslations)();
|
|
163
163
|
const now = (0, _useUtils.useNow)(timezone);
|
|
164
164
|
const {
|
|
165
165
|
ownerState: pickerOwnerState
|
|
@@ -178,7 +178,7 @@ const DigitalClock = exports.DigitalClock = /*#__PURE__*/React.forwardRef(functi
|
|
|
178
178
|
const valueOrReferenceDate = (0, _useClockReferenceDate.useClockReferenceDate)({
|
|
179
179
|
value,
|
|
180
180
|
referenceDate: referenceDateProp,
|
|
181
|
-
|
|
181
|
+
adapter,
|
|
182
182
|
props,
|
|
183
183
|
timezone
|
|
184
184
|
});
|
|
@@ -214,7 +214,7 @@ const DigitalClock = exports.DigitalClock = /*#__PURE__*/React.forwardRef(functi
|
|
|
214
214
|
containerRef.current.scrollTop = offsetTop - 4;
|
|
215
215
|
});
|
|
216
216
|
const isTimeDisabled = React.useCallback(valueToCheck => {
|
|
217
|
-
const isAfter = (0, _timeUtils.createIsAfterIgnoreDatePart)(disableIgnoringDatePartForTimeValidation,
|
|
217
|
+
const isAfter = (0, _timeUtils.createIsAfterIgnoreDatePart)(disableIgnoringDatePartForTimeValidation, adapter);
|
|
218
218
|
const containsValidTime = () => {
|
|
219
219
|
if (minTime && isAfter(minTime, valueToCheck)) {
|
|
220
220
|
return false;
|
|
@@ -231,7 +231,7 @@ const DigitalClock = exports.DigitalClock = /*#__PURE__*/React.forwardRef(functi
|
|
|
231
231
|
return true;
|
|
232
232
|
};
|
|
233
233
|
const isValidValue = () => {
|
|
234
|
-
if (
|
|
234
|
+
if (adapter.getMinutes(valueToCheck) % minutesStep !== 0) {
|
|
235
235
|
return false;
|
|
236
236
|
}
|
|
237
237
|
if (shouldDisableTime) {
|
|
@@ -240,18 +240,18 @@ const DigitalClock = exports.DigitalClock = /*#__PURE__*/React.forwardRef(functi
|
|
|
240
240
|
return true;
|
|
241
241
|
};
|
|
242
242
|
return !containsValidTime() || !isValidValue();
|
|
243
|
-
}, [disableIgnoringDatePartForTimeValidation,
|
|
243
|
+
}, [disableIgnoringDatePartForTimeValidation, adapter, minTime, maxTime, disableFuture, now, disablePast, minutesStep, shouldDisableTime]);
|
|
244
244
|
const timeOptions = React.useMemo(() => {
|
|
245
245
|
const result = [];
|
|
246
|
-
const startOfDay =
|
|
246
|
+
const startOfDay = adapter.startOfDay(valueOrReferenceDate);
|
|
247
247
|
let nextTimeStepOption = startOfDay;
|
|
248
|
-
while (
|
|
248
|
+
while (adapter.isSameDay(valueOrReferenceDate, nextTimeStepOption)) {
|
|
249
249
|
result.push(nextTimeStepOption);
|
|
250
|
-
nextTimeStepOption =
|
|
250
|
+
nextTimeStepOption = adapter.addMinutes(nextTimeStepOption, timeStep);
|
|
251
251
|
}
|
|
252
252
|
return result;
|
|
253
|
-
}, [valueOrReferenceDate, timeStep,
|
|
254
|
-
const focusedOptionIndex = timeOptions.findIndex(option =>
|
|
253
|
+
}, [valueOrReferenceDate, timeStep, adapter]);
|
|
254
|
+
const focusedOptionIndex = timeOptions.findIndex(option => adapter.isEqual(option, valueOrReferenceDate));
|
|
255
255
|
const handleKeyDown = event => {
|
|
256
256
|
switch (event.key) {
|
|
257
257
|
case 'PageUp':
|
|
@@ -297,8 +297,8 @@ const DigitalClock = exports.DigitalClock = /*#__PURE__*/React.forwardRef(functi
|
|
|
297
297
|
if (skipDisabled && optionDisabled) {
|
|
298
298
|
return null;
|
|
299
299
|
}
|
|
300
|
-
const isSelected =
|
|
301
|
-
const formattedValue =
|
|
300
|
+
const isSelected = adapter.isEqual(option, value);
|
|
301
|
+
const formattedValue = adapter.format(option, ampm ? 'fullTime12h' : 'fullTime24h');
|
|
302
302
|
const isFocused = focusedOptionIndex === index || focusedOptionIndex === -1 && index === 0;
|
|
303
303
|
const tabIndex = isFocused ? 0 : -1;
|
|
304
304
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ClockItem, (0, _extends2.default)({
|
|
@@ -329,7 +329,7 @@ process.env.NODE_ENV !== "production" ? DigitalClock.propTypes = {
|
|
|
329
329
|
// ----------------------------------------------------------------------
|
|
330
330
|
/**
|
|
331
331
|
* 12h/24h view for hour selection clock.
|
|
332
|
-
* @default
|
|
332
|
+
* @default adapter.is12HourCycleInCurrentLocale()
|
|
333
333
|
*/
|
|
334
334
|
ampm: _propTypes.default.bool,
|
|
335
335
|
/**
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { AdapterFormats, MuiPickersAdapter, PickerValidDate } from "../models/index.js";
|
|
3
3
|
import { PickersInputLocaleText } from "../locales/index.js";
|
|
4
|
-
export interface
|
|
4
|
+
export interface PickersAdapterContextValue {
|
|
5
5
|
defaultDates: {
|
|
6
6
|
minDate: PickerValidDate;
|
|
7
7
|
maxDate: PickerValidDate;
|
|
8
8
|
};
|
|
9
9
|
utils: MuiPickersAdapter;
|
|
10
|
+
adapter: MuiPickersAdapter;
|
|
10
11
|
localeText: PickersInputLocaleText | undefined;
|
|
11
12
|
}
|
|
12
|
-
export type
|
|
13
|
-
export declare const
|
|
13
|
+
export type PickerAdapterContextNullableValue = { [K in keyof PickersAdapterContextValue]: PickersAdapterContextValue[K] | null };
|
|
14
|
+
export declare const PickerAdapterContext: React.Context<PickerAdapterContextNullableValue | null>;
|
|
15
|
+
/**
|
|
16
|
+
* The context that provides the date adapter and default dates to the pickers.
|
|
17
|
+
* @deprecated Use `usePickersAdapter` hook if you need access to the adapter instead.
|
|
18
|
+
*/
|
|
19
|
+
export declare const MuiPickersAdapterContext: React.Context<PickerAdapterContextNullableValue | null>;
|
|
14
20
|
export interface LocalizationProviderProps<TLocale> {
|
|
15
21
|
children?: React.ReactNode;
|
|
16
22
|
/**
|
|
@@ -6,7 +6,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
value: true
|
|
8
8
|
});
|
|
9
|
-
exports.MuiPickersAdapterContext = exports.LocalizationProvider = void 0;
|
|
9
|
+
exports.PickerAdapterContext = exports.MuiPickersAdapterContext = exports.LocalizationProvider = void 0;
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
12
12
|
var React = _interopRequireWildcard(require("react"));
|
|
@@ -14,8 +14,15 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
14
14
|
var _styles = require("@mui/material/styles");
|
|
15
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
16
|
const _excluded = ["localeText"];
|
|
17
|
-
const
|
|
18
|
-
|
|
17
|
+
const PickerAdapterContext = exports.PickerAdapterContext = /*#__PURE__*/React.createContext(null);
|
|
18
|
+
|
|
19
|
+
// TODO v9: Remove this public export
|
|
20
|
+
/**
|
|
21
|
+
* The context that provides the date adapter and default dates to the pickers.
|
|
22
|
+
* @deprecated Use `usePickersAdapter` hook if you need access to the adapter instead.
|
|
23
|
+
*/
|
|
24
|
+
if (process.env.NODE_ENV !== "production") PickerAdapterContext.displayName = "PickerAdapterContext";
|
|
25
|
+
const MuiPickersAdapterContext = exports.MuiPickersAdapterContext = PickerAdapterContext;
|
|
19
26
|
/**
|
|
20
27
|
* Demos:
|
|
21
28
|
*
|
|
@@ -34,10 +41,11 @@ const LocalizationProvider = exports.LocalizationProvider = function Localizatio
|
|
|
34
41
|
} = inProps,
|
|
35
42
|
otherInProps = (0, _objectWithoutPropertiesLoose2.default)(inProps, _excluded);
|
|
36
43
|
const {
|
|
37
|
-
|
|
44
|
+
adapter: parentAdapter,
|
|
38
45
|
localeText: parentLocaleText
|
|
39
|
-
} = React.useContext(
|
|
46
|
+
} = React.useContext(PickerAdapterContext) ?? {
|
|
40
47
|
utils: undefined,
|
|
48
|
+
adapter: undefined,
|
|
41
49
|
localeText: undefined
|
|
42
50
|
};
|
|
43
51
|
const props = (0, _styles.useThemeProps)({
|
|
@@ -55,40 +63,41 @@ const LocalizationProvider = exports.LocalizationProvider = function Localizatio
|
|
|
55
63
|
localeText: themeLocaleText
|
|
56
64
|
} = props;
|
|
57
65
|
const localeText = React.useMemo(() => (0, _extends2.default)({}, themeLocaleText, parentLocaleText, inLocaleText), [themeLocaleText, parentLocaleText, inLocaleText]);
|
|
58
|
-
const
|
|
66
|
+
const adapter = React.useMemo(() => {
|
|
59
67
|
if (!DateAdapter) {
|
|
60
|
-
if (
|
|
61
|
-
return
|
|
68
|
+
if (parentAdapter) {
|
|
69
|
+
return parentAdapter;
|
|
62
70
|
}
|
|
63
71
|
return null;
|
|
64
72
|
}
|
|
65
|
-
const
|
|
73
|
+
const dateAdapter = new DateAdapter({
|
|
66
74
|
locale: adapterLocale,
|
|
67
75
|
formats: dateFormats,
|
|
68
76
|
instance: dateLibInstance
|
|
69
77
|
});
|
|
70
|
-
if (!
|
|
78
|
+
if (!dateAdapter.isMUIAdapter) {
|
|
71
79
|
throw new Error(['MUI X: The date adapter should be imported from `@mui/x-date-pickers` or `@mui/x-date-pickers-pro`, not from `@date-io`', "For example, `import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'` instead of `import AdapterDayjs from '@date-io/dayjs'`", 'More information on the installation documentation: https://mui.com/x/react-date-pickers/quickstart/#installation'].join(`\n`));
|
|
72
80
|
}
|
|
73
|
-
return
|
|
74
|
-
}, [DateAdapter, adapterLocale, dateFormats, dateLibInstance,
|
|
81
|
+
return dateAdapter;
|
|
82
|
+
}, [DateAdapter, adapterLocale, dateFormats, dateLibInstance, parentAdapter]);
|
|
75
83
|
const defaultDates = React.useMemo(() => {
|
|
76
|
-
if (!
|
|
84
|
+
if (!adapter) {
|
|
77
85
|
return null;
|
|
78
86
|
}
|
|
79
87
|
return {
|
|
80
|
-
minDate:
|
|
81
|
-
maxDate:
|
|
88
|
+
minDate: adapter.date('1900-01-01T00:00:00.000'),
|
|
89
|
+
maxDate: adapter.date('2099-12-31T00:00:00.000')
|
|
82
90
|
};
|
|
83
|
-
}, [
|
|
91
|
+
}, [adapter]);
|
|
84
92
|
const contextValue = React.useMemo(() => {
|
|
85
93
|
return {
|
|
86
|
-
utils,
|
|
94
|
+
utils: adapter,
|
|
95
|
+
adapter,
|
|
87
96
|
defaultDates,
|
|
88
97
|
localeText
|
|
89
98
|
};
|
|
90
|
-
}, [defaultDates,
|
|
91
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
99
|
+
}, [defaultDates, adapter, localeText]);
|
|
100
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(PickerAdapterContext.Provider, {
|
|
92
101
|
value: contextValue,
|
|
93
102
|
children: children
|
|
94
103
|
});
|
|
@@ -14,7 +14,7 @@ var _resolveComponentProps = _interopRequireDefault(require("@mui/utils/resolveC
|
|
|
14
14
|
var _refType = _interopRequireDefault(require("@mui/utils/refType"));
|
|
15
15
|
var _useMobilePicker = require("../internals/hooks/useMobilePicker");
|
|
16
16
|
var _shared = require("../DatePicker/shared");
|
|
17
|
-
var
|
|
17
|
+
var _usePickerAdapter = require("../hooks/usePickerAdapter");
|
|
18
18
|
var _validation = require("../validation");
|
|
19
19
|
var _DateField = require("../DateField");
|
|
20
20
|
var _valueManagers = require("../internals/utils/valueManagers");
|
|
@@ -31,7 +31,7 @@ var _dateUtils = require("../internals/utils/date-utils");
|
|
|
31
31
|
* - [MobileDatePicker API](https://mui.com/x/api/date-pickers/mobile-date-picker/)
|
|
32
32
|
*/
|
|
33
33
|
const MobileDatePicker = exports.MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker(inProps, ref) {
|
|
34
|
-
const
|
|
34
|
+
const adapter = (0, _usePickerAdapter.usePickerAdapter)();
|
|
35
35
|
|
|
36
36
|
// Props with the default values common to all date pickers
|
|
37
37
|
const defaultizedProps = (0, _shared.useDatePickerDefaultizedProps)(inProps, 'MuiMobileDatePicker');
|
|
@@ -44,7 +44,7 @@ const MobileDatePicker = exports.MobileDatePicker = /*#__PURE__*/React.forwardRe
|
|
|
44
44
|
// Props with the default values specific to the mobile variant
|
|
45
45
|
const props = (0, _extends2.default)({}, defaultizedProps, {
|
|
46
46
|
viewRenderers,
|
|
47
|
-
format: (0, _dateUtils.resolveDateFormat)(
|
|
47
|
+
format: (0, _dateUtils.resolveDateFormat)(adapter, defaultizedProps, false),
|
|
48
48
|
slots: (0, _extends2.default)({
|
|
49
49
|
field: _DateField.DateField
|
|
50
50
|
}, defaultizedProps.slots),
|
|
@@ -15,7 +15,7 @@ var _refType = _interopRequireDefault(require("@mui/utils/refType"));
|
|
|
15
15
|
var _valueManagers = require("../internals/utils/valueManagers");
|
|
16
16
|
var _DateTimeField = require("../DateTimeField");
|
|
17
17
|
var _shared = require("../DateTimePicker/shared");
|
|
18
|
-
var
|
|
18
|
+
var _usePickerAdapter = require("../hooks/usePickerAdapter");
|
|
19
19
|
var _validation = require("../validation");
|
|
20
20
|
var _useMobilePicker = require("../internals/hooks/useMobilePicker");
|
|
21
21
|
var _dateViewRenderers = require("../dateViewRenderers");
|
|
@@ -43,7 +43,7 @@ const STEPS = [{
|
|
|
43
43
|
* - [MobileDateTimePicker API](https://mui.com/x/api/date-pickers/mobile-date-time-picker/)
|
|
44
44
|
*/
|
|
45
45
|
const MobileDateTimePicker = exports.MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTimePicker(inProps, ref) {
|
|
46
|
-
const
|
|
46
|
+
const adapter = (0, _usePickerAdapter.usePickerAdapter)();
|
|
47
47
|
|
|
48
48
|
// Props with the default values common to all date time pickers
|
|
49
49
|
const defaultizedProps = (0, _shared.useDateTimePickerDefaultizedProps)(inProps, 'MuiMobileDateTimePicker');
|
|
@@ -65,7 +65,7 @@ const MobileDateTimePicker = exports.MobileDateTimePicker = /*#__PURE__*/React.f
|
|
|
65
65
|
// Props with the default values specific to the mobile variant
|
|
66
66
|
const props = (0, _extends2.default)({}, defaultizedProps, {
|
|
67
67
|
viewRenderers,
|
|
68
|
-
format: (0, _dateTimeUtils.resolveDateTimeFormat)(
|
|
68
|
+
format: (0, _dateTimeUtils.resolveDateTimeFormat)(adapter, defaultizedProps),
|
|
69
69
|
views,
|
|
70
70
|
ampmInClock,
|
|
71
71
|
slots: (0, _extends2.default)({
|
|
@@ -125,7 +125,7 @@ MobileDateTimePicker.propTypes = {
|
|
|
125
125
|
// ----------------------------------------------------------------------
|
|
126
126
|
/**
|
|
127
127
|
* 12h/24h view for hour selection clock.
|
|
128
|
-
* @default
|
|
128
|
+
* @default adapter.is12HourCycleInCurrentLocale()
|
|
129
129
|
*/
|
|
130
130
|
ampm: _propTypes.default.bool,
|
|
131
131
|
/**
|
|
@@ -15,7 +15,7 @@ var _refType = _interopRequireDefault(require("@mui/utils/refType"));
|
|
|
15
15
|
var _valueManagers = require("../internals/utils/valueManagers");
|
|
16
16
|
var _TimeField = require("../TimeField");
|
|
17
17
|
var _shared = require("../TimePicker/shared");
|
|
18
|
-
var
|
|
18
|
+
var _usePickerAdapter = require("../hooks/usePickerAdapter");
|
|
19
19
|
var _validation = require("../validation");
|
|
20
20
|
var _useMobilePicker = require("../internals/hooks/useMobilePicker");
|
|
21
21
|
var _timeViewRenderers = require("../timeViewRenderers");
|
|
@@ -31,7 +31,7 @@ var _timeUtils = require("../internals/utils/time-utils");
|
|
|
31
31
|
* - [MobileTimePicker API](https://mui.com/x/api/date-pickers/mobile-time-picker/)
|
|
32
32
|
*/
|
|
33
33
|
const MobileTimePicker = exports.MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker(inProps, ref) {
|
|
34
|
-
const
|
|
34
|
+
const adapter = (0, _usePickerAdapter.usePickerAdapter)();
|
|
35
35
|
|
|
36
36
|
// Props with the default values common to all time pickers
|
|
37
37
|
const defaultizedProps = (0, _shared.useTimePickerDefaultizedProps)(inProps, 'MuiMobileTimePicker');
|
|
@@ -46,7 +46,7 @@ const MobileTimePicker = exports.MobileTimePicker = /*#__PURE__*/React.forwardRe
|
|
|
46
46
|
const props = (0, _extends2.default)({}, defaultizedProps, {
|
|
47
47
|
ampmInClock,
|
|
48
48
|
viewRenderers,
|
|
49
|
-
format: (0, _timeUtils.resolveTimeFormat)(
|
|
49
|
+
format: (0, _timeUtils.resolveTimeFormat)(adapter, defaultizedProps),
|
|
50
50
|
slots: (0, _extends2.default)({
|
|
51
51
|
field: _TimeField.TimeField
|
|
52
52
|
}, defaultizedProps.slots),
|
|
@@ -78,7 +78,7 @@ MobileTimePicker.propTypes = {
|
|
|
78
78
|
// ----------------------------------------------------------------------
|
|
79
79
|
/**
|
|
80
80
|
* 12h/24h view for hour selection clock.
|
|
81
|
-
* @default
|
|
81
|
+
* @default adapter.is12HourCycleInCurrentLocale()
|
|
82
82
|
*/
|
|
83
83
|
ampm: _propTypes.default.bool,
|
|
84
84
|
/**
|
|
@@ -29,6 +29,7 @@ var _useControlledValue = require("../internals/hooks/useControlledValue");
|
|
|
29
29
|
var _dimensions = require("../internals/constants/dimensions");
|
|
30
30
|
var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
|
|
31
31
|
var _useDateManager = require("../managers/useDateManager");
|
|
32
|
+
var _usePickerAdapter = require("../hooks/usePickerAdapter");
|
|
32
33
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
33
34
|
const _excluded = ["autoFocus", "className", "classes", "value", "defaultValue", "referenceDate", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onChange", "shouldDisableMonth", "readOnly", "disableHighlightToday", "onMonthFocus", "hasFocus", "onFocusedViewChange", "monthsPerRow", "timezone", "gridLabelId", "slots", "slotProps"];
|
|
34
35
|
const useUtilityClasses = classes => {
|
|
@@ -127,13 +128,13 @@ const MonthCalendar = exports.MonthCalendar = /*#__PURE__*/React.forwardRef(func
|
|
|
127
128
|
});
|
|
128
129
|
const now = (0, _useUtils.useNow)(timezone);
|
|
129
130
|
const isRtl = (0, _RtlProvider.useRtl)();
|
|
130
|
-
const
|
|
131
|
+
const adapter = (0, _usePickerAdapter.usePickerAdapter)();
|
|
131
132
|
const {
|
|
132
133
|
ownerState
|
|
133
134
|
} = (0, _usePickerPrivateContext.usePickerPrivateContext)();
|
|
134
135
|
const referenceDate = React.useMemo(() => _valueManagers.singleItemValueManager.getInitialReferenceValue({
|
|
135
136
|
value,
|
|
136
|
-
|
|
137
|
+
adapter,
|
|
137
138
|
props,
|
|
138
139
|
timezone,
|
|
139
140
|
referenceDate: referenceDateProp,
|
|
@@ -141,14 +142,14 @@ const MonthCalendar = exports.MonthCalendar = /*#__PURE__*/React.forwardRef(func
|
|
|
141
142
|
}), [] // eslint-disable-line react-hooks/exhaustive-deps
|
|
142
143
|
);
|
|
143
144
|
const classes = useUtilityClasses(classesProp);
|
|
144
|
-
const todayMonth = React.useMemo(() =>
|
|
145
|
+
const todayMonth = React.useMemo(() => adapter.getMonth(now), [adapter, now]);
|
|
145
146
|
const selectedMonth = React.useMemo(() => {
|
|
146
147
|
if (value != null) {
|
|
147
|
-
return
|
|
148
|
+
return adapter.getMonth(value);
|
|
148
149
|
}
|
|
149
150
|
return null;
|
|
150
|
-
}, [value,
|
|
151
|
-
const [focusedMonth, setFocusedMonth] = React.useState(() => selectedMonth ||
|
|
151
|
+
}, [value, adapter]);
|
|
152
|
+
const [focusedMonth, setFocusedMonth] = React.useState(() => selectedMonth || adapter.getMonth(referenceDate));
|
|
152
153
|
const [internalHasFocus, setInternalHasFocus] = (0, _useControlled.default)({
|
|
153
154
|
name: 'MonthCalendar',
|
|
154
155
|
state: 'hasFocus',
|
|
@@ -162,29 +163,29 @@ const MonthCalendar = exports.MonthCalendar = /*#__PURE__*/React.forwardRef(func
|
|
|
162
163
|
}
|
|
163
164
|
});
|
|
164
165
|
const isMonthDisabled = React.useCallback(dateToValidate => {
|
|
165
|
-
const firstEnabledMonth =
|
|
166
|
-
const lastEnabledMonth =
|
|
167
|
-
const monthToValidate =
|
|
168
|
-
if (
|
|
166
|
+
const firstEnabledMonth = adapter.startOfMonth(disablePast && adapter.isAfter(now, minDate) ? now : minDate);
|
|
167
|
+
const lastEnabledMonth = adapter.startOfMonth(disableFuture && adapter.isBefore(now, maxDate) ? now : maxDate);
|
|
168
|
+
const monthToValidate = adapter.startOfMonth(dateToValidate);
|
|
169
|
+
if (adapter.isBefore(monthToValidate, firstEnabledMonth)) {
|
|
169
170
|
return true;
|
|
170
171
|
}
|
|
171
|
-
if (
|
|
172
|
+
if (adapter.isAfter(monthToValidate, lastEnabledMonth)) {
|
|
172
173
|
return true;
|
|
173
174
|
}
|
|
174
175
|
if (!shouldDisableMonth) {
|
|
175
176
|
return false;
|
|
176
177
|
}
|
|
177
178
|
return shouldDisableMonth(monthToValidate);
|
|
178
|
-
}, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableMonth,
|
|
179
|
+
}, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableMonth, adapter]);
|
|
179
180
|
const handleMonthSelection = (0, _useEventCallback.default)((event, month) => {
|
|
180
181
|
if (readOnly) {
|
|
181
182
|
return;
|
|
182
183
|
}
|
|
183
|
-
const newDate =
|
|
184
|
+
const newDate = adapter.setMonth(value ?? referenceDate, month);
|
|
184
185
|
handleValueChange(newDate);
|
|
185
186
|
});
|
|
186
187
|
const focusMonth = (0, _useEventCallback.default)(month => {
|
|
187
|
-
if (!isMonthDisabled(
|
|
188
|
+
if (!isMonthDisabled(adapter.setMonth(value ?? referenceDate, month))) {
|
|
188
189
|
setFocusedMonth(month);
|
|
189
190
|
changeHasFocus(true);
|
|
190
191
|
if (onMonthFocus) {
|
|
@@ -235,10 +236,10 @@ const MonthCalendar = exports.MonthCalendar = /*#__PURE__*/React.forwardRef(func
|
|
|
235
236
|
"aria-labelledby": gridLabelId,
|
|
236
237
|
monthsPerRow: monthsPerRow
|
|
237
238
|
}, other, {
|
|
238
|
-
children: (0, _dateUtils.getMonthsInYear)(
|
|
239
|
-
const monthNumber =
|
|
240
|
-
const monthText =
|
|
241
|
-
const monthLabel =
|
|
239
|
+
children: (0, _dateUtils.getMonthsInYear)(adapter, value ?? referenceDate).map(month => {
|
|
240
|
+
const monthNumber = adapter.getMonth(month);
|
|
241
|
+
const monthText = adapter.format(month, 'monthShort');
|
|
242
|
+
const monthLabel = adapter.format(month, 'month');
|
|
242
243
|
const isSelected = monthNumber === selectedMonth;
|
|
243
244
|
const isDisabled = disabled || isMonthDisabled(month);
|
|
244
245
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MonthCalendarButton.MonthCalendarButton, {
|