@mui/x-date-pickers 7.0.0-beta.7 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AdapterDateFns/AdapterDateFns.js +1 -1
- package/AdapterDateFnsBase/AdapterDateFnsBase.js +1 -2
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +2 -4
- package/AdapterDateFnsV3/AdapterDateFnsV3.js +1 -1
- package/AdapterDayjs/AdapterDayjs.js +2 -4
- package/AdapterLuxon/AdapterLuxon.js +12 -9
- package/AdapterMoment/AdapterMoment.js +5 -6
- package/CHANGELOG.md +266 -12
- package/DateCalendar/DateCalendar.js +14 -16
- package/DateCalendar/DayCalendar.js +5 -6
- package/DateField/DateField.js +3 -4
- package/DatePicker/DatePicker.js +1 -1
- package/DatePicker/DatePickerToolbar.js +11 -6
- package/DatePicker/shared.d.ts +2 -1
- package/DatePicker/shared.js +3 -5
- package/DateTimeField/DateTimeField.js +3 -4
- package/DateTimePicker/DateTimePicker.js +1 -1
- package/DateTimePicker/DateTimePickerToolbar.js +98 -46
- package/DateTimePicker/shared.d.ts +2 -1
- package/DateTimePicker/shared.js +11 -13
- package/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
- package/DesktopDatePicker/DesktopDatePicker.js +7 -11
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +72 -37
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +12 -0
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +101 -0
- package/DesktopDateTimePicker/index.d.ts +1 -0
- package/DesktopDateTimePicker/index.js +2 -1
- package/DesktopTimePicker/DesktopTimePicker.js +8 -12
- package/DigitalClock/DigitalClock.js +16 -9
- package/LocalizationProvider/LocalizationProvider.js +1 -2
- package/MobileDatePicker/MobileDatePicker.js +6 -10
- package/MobileDateTimePicker/MobileDateTimePicker.js +8 -12
- package/MobileTimePicker/MobileTimePicker.js +6 -10
- package/MonthCalendar/MonthCalendar.js +4 -4
- package/MonthCalendar/PickersMonth.js +13 -8
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +16 -9
- package/PickersActionBar/PickersActionBar.js +1 -1
- package/PickersCalendarHeader/PickersCalendarHeader.js +17 -14
- package/PickersDay/PickersDay.js +30 -15
- package/PickersLayout/PickersLayout.js +31 -17
- package/PickersLayout/usePickerLayout.js +8 -9
- package/PickersSectionList/PickersSectionList.js +9 -11
- package/PickersTextField/PickersFilledInput/PickersFilledInput.js +138 -74
- package/PickersTextField/PickersInput/PickersInput.js +77 -55
- package/PickersTextField/PickersInputBase/PickersInputBase.js +67 -28
- package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +7 -0
- package/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
- package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +33 -14
- package/README.md +1 -1
- package/StaticDatePicker/StaticDatePicker.js +4 -5
- package/StaticDateTimePicker/StaticDateTimePicker.js +6 -7
- package/StaticTimePicker/StaticTimePicker.js +3 -4
- package/TimeClock/Clock.js +48 -35
- package/TimeClock/ClockNumber.js +12 -7
- package/TimeClock/ClockPointer.js +23 -13
- package/TimeClock/TimeClock.js +1 -1
- package/TimeField/TimeField.js +2 -3
- package/TimePicker/TimePickerToolbar.js +25 -16
- package/TimePicker/shared.d.ts +2 -1
- package/TimePicker/shared.js +5 -7
- package/YearCalendar/PickersYear.js +12 -6
- package/YearCalendar/YearCalendar.js +5 -6
- package/hooks/useClearableField.js +6 -7
- package/index.js +1 -1
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +19 -15
- package/internals/components/PickersModalDialog.js +6 -7
- package/internals/components/PickersPopper.js +25 -24
- package/internals/components/PickersToolbar.js +42 -24
- package/internals/hooks/date-helpers-hooks.js +1 -1
- package/internals/hooks/defaultizedFieldProps.js +15 -18
- package/internals/hooks/useClockReferenceDate.js +1 -1
- package/internals/hooks/useDesktopPicker/index.d.ts +1 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +11 -12
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +2 -2
- package/internals/hooks/useField/buildSectionsFromFormat.js +35 -31
- package/internals/hooks/useField/useField.js +6 -4
- package/internals/hooks/useField/useField.types.d.ts +1 -0
- package/internals/hooks/useField/useField.utils.js +4 -7
- package/internals/hooks/useField/useFieldCharacterEditing.js +1 -2
- package/internals/hooks/useField/useFieldState.js +1 -1
- package/internals/hooks/useField/useFieldV6TextField.js +17 -18
- package/internals/hooks/useField/useFieldV7TextField.js +9 -11
- package/internals/hooks/useMobilePicker/useMobilePicker.js +7 -8
- package/internals/hooks/useOpenState.js +1 -1
- package/internals/hooks/usePicker/index.d.ts +1 -0
- package/internals/hooks/usePicker/usePickerViews.d.ts +4 -2
- package/internals/hooks/usePicker/usePickerViews.js +1 -2
- package/internals/hooks/useStaticPicker/useStaticPicker.js +13 -17
- package/internals/hooks/useValueWithTimezone.js +5 -6
- package/internals/hooks/useViews.js +3 -4
- package/internals/index.d.ts +1 -1
- package/internals/models/validation.d.ts +1 -1
- package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +3 -3
- package/internals/utils/date-time-utils.js +2 -5
- package/internals/utils/fields.js +1 -1
- package/internals/utils/getDefaultReferenceDate.js +2 -6
- package/internals/utils/views.js +1 -1
- package/locales/csCZ.js +1 -4
- package/locales/daDK.js +1 -4
- package/locales/deDE.js +1 -4
- package/locales/huHU.js +1 -4
- package/locales/itIT.js +16 -20
- package/locales/jaJP.js +1 -4
- package/locales/roRO.js +1 -4
- package/locales/skSK.js +1 -4
- package/locales/zhHK.js +14 -17
- package/modern/AdapterLuxon/AdapterLuxon.js +9 -4
- package/modern/DateCalendar/DateCalendar.js +1 -1
- package/modern/DateField/DateField.js +1 -1
- package/modern/DatePicker/DatePicker.js +1 -1
- package/modern/DatePicker/DatePickerToolbar.js +11 -6
- package/modern/DateTimeField/DateTimeField.js +1 -1
- package/modern/DateTimePicker/DateTimePicker.js +1 -1
- package/modern/DateTimePicker/DateTimePickerToolbar.js +97 -45
- package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
- package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -1
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +64 -25
- package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +101 -0
- package/modern/DesktopDateTimePicker/index.js +2 -1
- package/modern/DigitalClock/DigitalClock.js +14 -6
- package/modern/MobileDatePicker/MobileDatePicker.js +1 -1
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
- package/modern/MonthCalendar/PickersMonth.js +12 -6
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -4
- package/modern/PickersCalendarHeader/PickersCalendarHeader.js +13 -9
- package/modern/PickersDay/PickersDay.js +30 -15
- package/modern/PickersLayout/PickersLayout.js +31 -17
- package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +137 -72
- package/modern/PickersTextField/PickersInput/PickersInput.js +76 -54
- package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +64 -24
- package/modern/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
- package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +31 -12
- package/modern/StaticDatePicker/StaticDatePicker.js +1 -1
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
- package/modern/TimeClock/Clock.js +48 -35
- package/modern/TimeClock/ClockNumber.js +12 -7
- package/modern/TimeClock/ClockPointer.js +23 -13
- package/modern/TimePicker/TimePickerToolbar.js +25 -16
- package/modern/YearCalendar/PickersYear.js +12 -6
- package/modern/index.js +1 -1
- package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -6
- package/modern/internals/components/PickersPopper.js +13 -9
- package/modern/internals/components/PickersToolbar.js +39 -18
- package/modern/internals/hooks/useField/buildSectionsFromFormat.js +34 -30
- package/modern/internals/hooks/useField/useField.js +4 -2
- package/modern/internals/hooks/useField/useFieldV6TextField.js +8 -3
- package/modern/internals/hooks/useField/useFieldV7TextField.js +1 -1
- package/modern/internals/hooks/useOpenState.js +1 -1
- package/modern/internals/utils/fields.js +1 -1
- package/modern/locales/itIT.js +16 -20
- package/modern/locales/zhHK.js +14 -17
- package/node/AdapterLuxon/AdapterLuxon.js +9 -4
- package/node/DateCalendar/DateCalendar.js +1 -1
- package/node/DateField/DateField.js +1 -1
- package/node/DatePicker/DatePicker.js +1 -1
- package/node/DatePicker/DatePickerToolbar.js +11 -6
- package/node/DateTimeField/DateTimeField.js +1 -1
- package/node/DateTimePicker/DateTimePicker.js +1 -1
- package/node/DateTimePicker/DateTimePickerToolbar.js +97 -45
- package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
- package/node/DesktopDatePicker/DesktopDatePicker.js +1 -1
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +63 -25
- package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +108 -0
- package/node/DesktopDateTimePicker/index.js +8 -1
- package/node/DigitalClock/DigitalClock.js +14 -6
- package/node/MobileDatePicker/MobileDatePicker.js +1 -1
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
- package/node/MonthCalendar/PickersMonth.js +12 -6
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -4
- package/node/PickersCalendarHeader/PickersCalendarHeader.js +13 -9
- package/node/PickersDay/PickersDay.js +30 -15
- package/node/PickersLayout/PickersLayout.js +31 -17
- package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +137 -72
- package/node/PickersTextField/PickersInput/PickersInput.js +76 -54
- package/node/PickersTextField/PickersInputBase/PickersInputBase.js +64 -24
- package/node/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
- package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +31 -12
- package/node/StaticDatePicker/StaticDatePicker.js +1 -1
- package/node/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
- package/node/TimeClock/Clock.js +48 -35
- package/node/TimeClock/ClockNumber.js +12 -7
- package/node/TimeClock/ClockPointer.js +23 -13
- package/node/TimePicker/TimePickerToolbar.js +25 -16
- package/node/YearCalendar/PickersYear.js +12 -6
- package/node/index.js +1 -1
- package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -6
- package/node/internals/components/PickersPopper.js +13 -9
- package/node/internals/components/PickersToolbar.js +39 -18
- package/node/internals/hooks/useField/buildSectionsFromFormat.js +34 -30
- package/node/internals/hooks/useField/useField.js +4 -2
- package/node/internals/hooks/useField/useFieldV6TextField.js +8 -3
- package/node/internals/hooks/useField/useFieldV7TextField.js +1 -1
- package/node/internals/hooks/useOpenState.js +1 -1
- package/node/internals/utils/fields.js +1 -1
- package/node/locales/itIT.js +16 -20
- package/node/locales/zhHK.js +14 -17
- package/package.json +5 -5
- package/timeViewRenderers/timeViewRenderers.js +1 -1
- package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +0 -15
- package/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -163
- package/dateTimeViewRenderers/index.d.ts +0 -2
- package/dateTimeViewRenderers/index.js +0 -1
- package/dateTimeViewRenderers/package.json +0 -6
- package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -162
- package/modern/dateTimeViewRenderers/index.js +0 -1
- package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -171
- package/node/dateTimeViewRenderers/index.js +0 -12
package/DateField/DateField.js
CHANGED
|
@@ -23,7 +23,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
23
23
|
* - [DateField API](https://mui.com/x/api/date-pickers/date-field/)
|
|
24
24
|
*/
|
|
25
25
|
const DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, inRef) {
|
|
26
|
-
var _slots$textField;
|
|
27
26
|
const themeProps = useThemeProps({
|
|
28
27
|
props: inProps,
|
|
29
28
|
name: 'MuiDateField'
|
|
@@ -36,10 +35,10 @@ const DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, inRe
|
|
|
36
35
|
} = themeProps,
|
|
37
36
|
other = _objectWithoutPropertiesLoose(themeProps, _excluded);
|
|
38
37
|
const ownerState = themeProps;
|
|
39
|
-
const TextField =
|
|
38
|
+
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure ? PickersTextField : MuiTextField);
|
|
40
39
|
const textFieldProps = useSlotProps({
|
|
41
40
|
elementType: TextField,
|
|
42
|
-
externalSlotProps: slotProps
|
|
41
|
+
externalSlotProps: slotProps?.textField,
|
|
43
42
|
externalForwardedProps: other,
|
|
44
43
|
additionalProps: {
|
|
45
44
|
ref: inRef
|
|
@@ -242,7 +241,7 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
|
|
|
242
241
|
/**
|
|
243
242
|
* Disable specific date.
|
|
244
243
|
*
|
|
245
|
-
* Warning: This function can be called multiple times (
|
|
244
|
+
* Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
|
|
246
245
|
*
|
|
247
246
|
* @template TDate
|
|
248
247
|
* @param {TDate} day The date to test.
|
package/DatePicker/DatePicker.js
CHANGED
|
@@ -266,7 +266,7 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
|
|
|
266
266
|
/**
|
|
267
267
|
* Disable specific date.
|
|
268
268
|
*
|
|
269
|
-
* Warning: This function can be called multiple times (
|
|
269
|
+
* Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
|
|
270
270
|
*
|
|
271
271
|
* @template TDate
|
|
272
272
|
* @param {TDate} day The date to test.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
const _excluded = ["value", "isLandscape", "onChange", "toolbarFormat", "toolbarPlaceholder", "views", "className", "onViewChange", "view"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import clsx from 'clsx';
|
|
@@ -31,11 +31,16 @@ const DatePickerToolbarTitle = styled(Typography, {
|
|
|
31
31
|
name: 'MuiDatePickerToolbar',
|
|
32
32
|
slot: 'Title',
|
|
33
33
|
overridesResolver: (_, styles) => styles.title
|
|
34
|
-
})(
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
34
|
+
})({
|
|
35
|
+
variants: [{
|
|
36
|
+
props: {
|
|
37
|
+
isLandscape: true
|
|
38
|
+
},
|
|
39
|
+
style: {
|
|
40
|
+
margin: 'auto 16px auto auto'
|
|
41
|
+
}
|
|
42
|
+
}]
|
|
43
|
+
});
|
|
39
44
|
/**
|
|
40
45
|
* Demos:
|
|
41
46
|
*
|
package/DatePicker/shared.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export interface BaseDatePickerSlots<TDate extends PickerValidDate> extends Date
|
|
|
18
18
|
export interface BaseDatePickerSlotProps<TDate extends PickerValidDate> extends DateCalendarSlotProps<TDate> {
|
|
19
19
|
toolbar?: ExportedDatePickerToolbarProps;
|
|
20
20
|
}
|
|
21
|
+
export type DatePickerViewRenderers<TDate extends PickerValidDate, TView extends DateView, TAdditionalProps extends {} = {}> = PickerViewRendererLookup<TDate | null, TView, DateViewRendererProps<TDate, TView>, TAdditionalProps>;
|
|
21
22
|
export interface BaseDatePickerProps<TDate extends PickerValidDate> extends BasePickerInputProps<TDate | null, TDate, DateView, DateValidationError>, ExportedDateCalendarProps<TDate> {
|
|
22
23
|
/**
|
|
23
24
|
* Overridable component slots.
|
|
@@ -34,7 +35,7 @@ export interface BaseDatePickerProps<TDate extends PickerValidDate> extends Base
|
|
|
34
35
|
* If `null`, the section will only have field editing.
|
|
35
36
|
* If `undefined`, internally defined view will be the used.
|
|
36
37
|
*/
|
|
37
|
-
viewRenderers?: Partial<
|
|
38
|
+
viewRenderers?: Partial<DatePickerViewRenderers<TDate, DateView>>;
|
|
38
39
|
}
|
|
39
40
|
type UseDatePickerDefaultizedProps<TDate extends PickerValidDate, Props extends BaseDatePickerProps<TDate>> = LocalizedComponent<TDate, DefaultizedProps<Props, 'views' | 'openTo' | keyof BaseDateValidationProps<TDate>>>;
|
|
40
41
|
export declare function useDatePickerDefaultizedProps<TDate extends PickerValidDate, Props extends BaseDatePickerProps<TDate>>(props: Props, name: string): UseDatePickerDefaultizedProps<TDate, Props>;
|
package/DatePicker/shared.js
CHANGED
|
@@ -6,7 +6,6 @@ import { applyDefaultViewProps } from '../internals/utils/views';
|
|
|
6
6
|
import { applyDefaultDate } from '../internals/utils/date-utils';
|
|
7
7
|
import { DatePickerToolbar } from './DatePickerToolbar';
|
|
8
8
|
export function useDatePickerDefaultizedProps(props, name) {
|
|
9
|
-
var _themeProps$disableFu, _themeProps$disablePa;
|
|
10
9
|
const utils = useUtils();
|
|
11
10
|
const defaultDates = useDefaultDates();
|
|
12
11
|
const themeProps = useThemeProps({
|
|
@@ -14,8 +13,7 @@ export function useDatePickerDefaultizedProps(props, name) {
|
|
|
14
13
|
name
|
|
15
14
|
});
|
|
16
15
|
const localeText = React.useMemo(() => {
|
|
17
|
-
|
|
18
|
-
if (((_themeProps$localeTex = themeProps.localeText) == null ? void 0 : _themeProps$localeTex.toolbarTitle) == null) {
|
|
16
|
+
if (themeProps.localeText?.toolbarTitle == null) {
|
|
19
17
|
return themeProps.localeText;
|
|
20
18
|
}
|
|
21
19
|
return _extends({}, themeProps.localeText, {
|
|
@@ -30,8 +28,8 @@ export function useDatePickerDefaultizedProps(props, name) {
|
|
|
30
28
|
defaultViews: ['year', 'day'],
|
|
31
29
|
defaultOpenTo: 'day'
|
|
32
30
|
}), {
|
|
33
|
-
disableFuture:
|
|
34
|
-
disablePast:
|
|
31
|
+
disableFuture: themeProps.disableFuture ?? false,
|
|
32
|
+
disablePast: themeProps.disablePast ?? false,
|
|
35
33
|
minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
|
|
36
34
|
maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate),
|
|
37
35
|
slots: _extends({
|
|
@@ -23,7 +23,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
23
23
|
* - [DateTimeField API](https://mui.com/x/api/date-pickers/date-time-field/)
|
|
24
24
|
*/
|
|
25
25
|
const DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps, inRef) {
|
|
26
|
-
var _slots$textField;
|
|
27
26
|
const themeProps = useThemeProps({
|
|
28
27
|
props: inProps,
|
|
29
28
|
name: 'MuiDateTimeField'
|
|
@@ -36,10 +35,10 @@ const DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inPro
|
|
|
36
35
|
} = themeProps,
|
|
37
36
|
other = _objectWithoutPropertiesLoose(themeProps, _excluded);
|
|
38
37
|
const ownerState = themeProps;
|
|
39
|
-
const TextField =
|
|
38
|
+
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure ? PickersTextField : MuiTextField);
|
|
40
39
|
const textFieldProps = useSlotProps({
|
|
41
40
|
elementType: TextField,
|
|
42
|
-
externalSlotProps: slotProps
|
|
41
|
+
externalSlotProps: slotProps?.textField,
|
|
43
42
|
externalForwardedProps: other,
|
|
44
43
|
ownerState,
|
|
45
44
|
additionalProps: {
|
|
@@ -275,7 +274,7 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
|
|
|
275
274
|
/**
|
|
276
275
|
* Disable specific date.
|
|
277
276
|
*
|
|
278
|
-
* Warning: This function can be called multiple times (
|
|
277
|
+
* Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
|
|
279
278
|
*
|
|
280
279
|
* @template TDate
|
|
281
280
|
* @param {TDate} day The date to test.
|
|
@@ -304,7 +304,7 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
|
|
|
304
304
|
/**
|
|
305
305
|
* Disable specific date.
|
|
306
306
|
*
|
|
307
|
-
* Warning: This function can be called multiple times (
|
|
307
|
+
* Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
|
|
308
308
|
*
|
|
309
309
|
* @template TDate
|
|
310
310
|
* @param {TDate} day The date to test.
|
|
@@ -40,20 +40,41 @@ const DateTimePickerToolbarRoot = styled(PickersToolbar, {
|
|
|
40
40
|
slot: 'Root',
|
|
41
41
|
overridesResolver: (props, styles) => styles.root
|
|
42
42
|
})(({
|
|
43
|
-
theme
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
paddingRight: ownerState.toolbarVariant === 'desktop' && !ownerState.isLandscape ? 0 : 16,
|
|
48
|
-
borderBottom: ownerState.toolbarVariant === 'desktop' ? `1px solid ${(theme.vars || theme).palette.divider}` : undefined,
|
|
49
|
-
borderRight: ownerState.toolbarVariant === 'desktop' && ownerState.isLandscape ? `1px solid ${(theme.vars || theme).palette.divider}` : undefined,
|
|
43
|
+
theme
|
|
44
|
+
}) => ({
|
|
45
|
+
paddingLeft: 16,
|
|
46
|
+
paddingRight: 16,
|
|
50
47
|
justifyContent: 'space-around',
|
|
51
|
-
position: 'relative'
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
48
|
+
position: 'relative',
|
|
49
|
+
variants: [{
|
|
50
|
+
props: {
|
|
51
|
+
toolbarVariant: 'desktop'
|
|
52
|
+
},
|
|
53
|
+
style: {
|
|
54
|
+
borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`,
|
|
55
|
+
[`& .${pickersToolbarClasses.content} .${pickersToolbarTextClasses.selected}`]: {
|
|
56
|
+
color: (theme.vars || theme).palette.primary.main,
|
|
57
|
+
fontWeight: theme.typography.fontWeightBold
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}, {
|
|
61
|
+
props: {
|
|
62
|
+
toolbarVariant: 'desktop',
|
|
63
|
+
isLandscape: true
|
|
64
|
+
},
|
|
65
|
+
style: {
|
|
66
|
+
borderRight: `1px solid ${(theme.vars || theme).palette.divider}`
|
|
67
|
+
}
|
|
68
|
+
}, {
|
|
69
|
+
props: {
|
|
70
|
+
toolbarVariant: 'desktop',
|
|
71
|
+
isLandscape: false
|
|
72
|
+
},
|
|
73
|
+
style: {
|
|
74
|
+
paddingLeft: 24,
|
|
75
|
+
paddingRight: 0
|
|
76
|
+
}
|
|
77
|
+
}]
|
|
57
78
|
}));
|
|
58
79
|
DateTimePickerToolbarRoot.propTypes = {
|
|
59
80
|
// ----------------------------- Warning --------------------------------
|
|
@@ -86,19 +107,35 @@ const DateTimePickerToolbarTimeContainer = styled('div', {
|
|
|
86
107
|
slot: 'TimeContainer',
|
|
87
108
|
overridesResolver: (props, styles) => styles.timeContainer
|
|
88
109
|
})(({
|
|
89
|
-
theme
|
|
90
|
-
ownerState
|
|
110
|
+
theme
|
|
91
111
|
}) => {
|
|
92
|
-
const direction = ownerState.isLandscape && ownerState.toolbarVariant !== 'desktop' ? 'column' : 'row';
|
|
93
112
|
return _extends({
|
|
94
113
|
display: 'flex',
|
|
95
|
-
flexDirection:
|
|
96
|
-
},
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
114
|
+
flexDirection: 'row'
|
|
115
|
+
}, theme.direction === 'rtl' && {
|
|
116
|
+
flexDirection: 'row-reverse'
|
|
117
|
+
}, {
|
|
118
|
+
variants: [{
|
|
119
|
+
props: ({
|
|
120
|
+
isLandscape,
|
|
121
|
+
toolbarVariant
|
|
122
|
+
}) => isLandscape && toolbarVariant !== 'desktop',
|
|
123
|
+
style: _extends({
|
|
124
|
+
flexDirection: 'column'
|
|
125
|
+
}, theme.direction === 'rtl' && {
|
|
126
|
+
flexDirection: 'column-reverse'
|
|
127
|
+
})
|
|
128
|
+
}, {
|
|
129
|
+
props: {
|
|
130
|
+
toolbarVariant: 'desktop',
|
|
131
|
+
isLandscape: false
|
|
132
|
+
},
|
|
133
|
+
style: {
|
|
134
|
+
gap: 9,
|
|
135
|
+
marginRight: 4,
|
|
136
|
+
alignSelf: 'flex-end'
|
|
137
|
+
}
|
|
138
|
+
}]
|
|
102
139
|
});
|
|
103
140
|
});
|
|
104
141
|
const DateTimePickerToolbarTimeDigitsContainer = styled('div', {
|
|
@@ -106,14 +143,20 @@ const DateTimePickerToolbarTimeDigitsContainer = styled('div', {
|
|
|
106
143
|
slot: 'TimeDigitsContainer',
|
|
107
144
|
overridesResolver: (props, styles) => styles.timeDigitsContainer
|
|
108
145
|
})(({
|
|
109
|
-
theme
|
|
110
|
-
ownerState
|
|
146
|
+
theme
|
|
111
147
|
}) => _extends({
|
|
112
148
|
display: 'flex'
|
|
113
|
-
}, ownerState.toolbarVariant === 'desktop' && {
|
|
114
|
-
gap: 1.5
|
|
115
149
|
}, theme.direction === 'rtl' && {
|
|
116
150
|
flexDirection: 'row-reverse'
|
|
151
|
+
}, {
|
|
152
|
+
variants: [{
|
|
153
|
+
props: {
|
|
154
|
+
toolbarVariant: 'desktop'
|
|
155
|
+
},
|
|
156
|
+
style: {
|
|
157
|
+
gap: 1.5
|
|
158
|
+
}
|
|
159
|
+
}]
|
|
117
160
|
}));
|
|
118
161
|
DateTimePickerToolbarTimeContainer.propTypes = {
|
|
119
162
|
// ----------------------------- Warning --------------------------------
|
|
@@ -128,12 +171,18 @@ const DateTimePickerToolbarSeparator = styled(PickersToolbarText, {
|
|
|
128
171
|
name: 'MuiDateTimePickerToolbar',
|
|
129
172
|
slot: 'Separator',
|
|
130
173
|
overridesResolver: (props, styles) => styles.separator
|
|
131
|
-
})(
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
174
|
+
})({
|
|
175
|
+
margin: '0 4px 0 2px',
|
|
176
|
+
cursor: 'default',
|
|
177
|
+
variants: [{
|
|
178
|
+
props: {
|
|
179
|
+
toolbarVariant: 'desktop'
|
|
180
|
+
},
|
|
181
|
+
style: {
|
|
182
|
+
margin: 0
|
|
183
|
+
}
|
|
184
|
+
}]
|
|
185
|
+
});
|
|
137
186
|
|
|
138
187
|
// Taken from TimePickerToolbar
|
|
139
188
|
const DateTimePickerToolbarAmPmSelection = styled('div', {
|
|
@@ -144,23 +193,26 @@ const DateTimePickerToolbarAmPmSelection = styled('div', {
|
|
|
144
193
|
}, {
|
|
145
194
|
[`&.${dateTimePickerToolbarClasses.ampmLandscape}`]: styles.ampmLandscape
|
|
146
195
|
}, styles.ampmSelection]
|
|
147
|
-
})(
|
|
148
|
-
ownerState
|
|
149
|
-
}) => _extends({
|
|
196
|
+
})({
|
|
150
197
|
display: 'flex',
|
|
151
198
|
flexDirection: 'column',
|
|
152
199
|
marginRight: 'auto',
|
|
153
|
-
marginLeft: 12
|
|
154
|
-
}, ownerState.isLandscape && {
|
|
155
|
-
margin: '4px 0 auto',
|
|
156
|
-
flexDirection: 'row',
|
|
157
|
-
justifyContent: 'space-around',
|
|
158
|
-
width: '100%'
|
|
159
|
-
}, {
|
|
200
|
+
marginLeft: 12,
|
|
160
201
|
[`& .${dateTimePickerToolbarClasses.ampmLabel}`]: {
|
|
161
202
|
fontSize: 17
|
|
162
|
-
}
|
|
163
|
-
|
|
203
|
+
},
|
|
204
|
+
variants: [{
|
|
205
|
+
props: {
|
|
206
|
+
isLandscape: true
|
|
207
|
+
},
|
|
208
|
+
style: {
|
|
209
|
+
margin: '4px 0 auto',
|
|
210
|
+
flexDirection: 'row',
|
|
211
|
+
justifyContent: 'space-around',
|
|
212
|
+
width: '100%'
|
|
213
|
+
}
|
|
214
|
+
}]
|
|
215
|
+
});
|
|
164
216
|
|
|
165
217
|
/**
|
|
166
218
|
* Demos:
|
|
@@ -208,7 +260,7 @@ function DateTimePickerToolbar(inProps) {
|
|
|
208
260
|
const classes = useUtilityClasses(_extends({}, ownerState, {
|
|
209
261
|
theme
|
|
210
262
|
}));
|
|
211
|
-
const toolbarTitle = inToolbarTitle
|
|
263
|
+
const toolbarTitle = inToolbarTitle ?? localeText.dateTimePickerToolbarTitle;
|
|
212
264
|
const formatHours = time => ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');
|
|
213
265
|
const dateText = React.useMemo(() => {
|
|
214
266
|
if (!value) {
|
|
@@ -35,6 +35,7 @@ export interface BaseDateTimePickerSlotProps<TDate extends PickerValidDate> exte
|
|
|
35
35
|
*/
|
|
36
36
|
toolbar?: ExportedDateTimePickerToolbarProps;
|
|
37
37
|
}
|
|
38
|
+
export type DateTimePickerViewRenderers<TDate extends PickerValidDate, TView extends DateOrTimeViewWithMeridiem, TAdditionalProps extends {} = {}> = PickerViewRendererLookup<TDate | null, TView, Omit<DateViewRendererProps<TDate, TView>, 'slots' | 'slotProps'> & Omit<TimeViewRendererProps<TimeViewWithMeridiem, BaseClockProps<TDate, TimeViewWithMeridiem>>, 'slots' | 'slotProps'>, TAdditionalProps>;
|
|
38
39
|
export interface BaseDateTimePickerProps<TDate extends PickerValidDate, TView extends DateOrTimeViewWithMeridiem> extends BasePickerInputProps<TDate | null, TDate, TView, DateTimeValidationError>, Omit<ExportedDateCalendarProps<TDate>, 'onViewChange'>, ExportedBaseClockProps<TDate>, DateTimeValidationProps<TDate> {
|
|
39
40
|
/**
|
|
40
41
|
* Display ampm controls under the clock (instead of in the toolbar).
|
|
@@ -56,7 +57,7 @@ export interface BaseDateTimePickerProps<TDate extends PickerValidDate, TView ex
|
|
|
56
57
|
* If `null`, the section will only have field editing.
|
|
57
58
|
* If `undefined`, internally defined view will be the used.
|
|
58
59
|
*/
|
|
59
|
-
viewRenderers?: Partial<
|
|
60
|
+
viewRenderers?: Partial<DateTimePickerViewRenderers<TDate, TView>>;
|
|
60
61
|
}
|
|
61
62
|
type UseDateTimePickerDefaultizedProps<TDate extends PickerValidDate, TView extends DateOrTimeViewWithMeridiem, Props extends BaseDateTimePickerProps<TDate, TView>> = LocalizedComponent<TDate, DefaultizedProps<Props, 'views' | 'openTo' | 'orientation' | 'ampm' | keyof BaseDateValidationProps<TDate> | keyof BaseTimeValidationProps>>;
|
|
62
63
|
export declare function useDateTimePickerDefaultizedProps<TDate extends PickerValidDate, TView extends DateOrTimeViewWithMeridiem, Props extends BaseDateTimePickerProps<TDate, TView>>(props: Props, name: string): UseDateTimePickerDefaultizedProps<TDate, TView, Props>;
|
package/DateTimePicker/shared.js
CHANGED
|
@@ -7,17 +7,15 @@ import { DateTimePickerTabs } from './DateTimePickerTabs';
|
|
|
7
7
|
import { DateTimePickerToolbar } from './DateTimePickerToolbar';
|
|
8
8
|
import { applyDefaultViewProps } from '../internals/utils/views';
|
|
9
9
|
export function useDateTimePickerDefaultizedProps(props, name) {
|
|
10
|
-
var _themeProps$ampm, _themeProps$orientati, _themeProps$disableIg, _themeProps$disableFu, _themeProps$disablePa, _themeProps$minDateTi, _themeProps$maxDateTi, _themeProps$minDateTi2, _themeProps$maxDateTi2, _themeProps$slotProps;
|
|
11
10
|
const utils = useUtils();
|
|
12
11
|
const defaultDates = useDefaultDates();
|
|
13
12
|
const themeProps = useThemeProps({
|
|
14
13
|
props,
|
|
15
14
|
name
|
|
16
15
|
});
|
|
17
|
-
const ampm =
|
|
16
|
+
const ampm = themeProps.ampm ?? utils.is12HourCycleInCurrentLocale();
|
|
18
17
|
const localeText = React.useMemo(() => {
|
|
19
|
-
|
|
20
|
-
if (((_themeProps$localeTex = themeProps.localeText) == null ? void 0 : _themeProps$localeTex.toolbarTitle) == null) {
|
|
18
|
+
if (themeProps.localeText?.toolbarTitle == null) {
|
|
21
19
|
return themeProps.localeText;
|
|
22
20
|
}
|
|
23
21
|
return _extends({}, themeProps.localeText, {
|
|
@@ -32,17 +30,17 @@ export function useDateTimePickerDefaultizedProps(props, name) {
|
|
|
32
30
|
}), {
|
|
33
31
|
ampm,
|
|
34
32
|
localeText,
|
|
35
|
-
orientation:
|
|
33
|
+
orientation: themeProps.orientation ?? 'portrait',
|
|
36
34
|
// TODO: Remove from public API
|
|
37
|
-
disableIgnoringDatePartForTimeValidation:
|
|
35
|
+
disableIgnoringDatePartForTimeValidation: themeProps.disableIgnoringDatePartForTimeValidation ?? Boolean(themeProps.minDateTime || themeProps.maxDateTime ||
|
|
38
36
|
// allow time clock to correctly check time validity: https://github.com/mui/mui-x/issues/8520
|
|
39
37
|
themeProps.disablePast || themeProps.disableFuture),
|
|
40
|
-
disableFuture:
|
|
41
|
-
disablePast:
|
|
42
|
-
minDate: applyDefaultDate(utils,
|
|
43
|
-
maxDate: applyDefaultDate(utils,
|
|
44
|
-
minTime:
|
|
45
|
-
maxTime:
|
|
38
|
+
disableFuture: themeProps.disableFuture ?? false,
|
|
39
|
+
disablePast: themeProps.disablePast ?? false,
|
|
40
|
+
minDate: applyDefaultDate(utils, themeProps.minDateTime ?? themeProps.minDate, defaultDates.minDate),
|
|
41
|
+
maxDate: applyDefaultDate(utils, themeProps.maxDateTime ?? themeProps.maxDate, defaultDates.maxDate),
|
|
42
|
+
minTime: themeProps.minDateTime ?? themeProps.minTime,
|
|
43
|
+
maxTime: themeProps.maxDateTime ?? themeProps.maxTime,
|
|
46
44
|
slots: _extends({
|
|
47
45
|
toolbar: DateTimePickerToolbar,
|
|
48
46
|
tabs: DateTimePickerTabs
|
|
@@ -50,7 +48,7 @@ export function useDateTimePickerDefaultizedProps(props, name) {
|
|
|
50
48
|
slotProps: _extends({}, themeProps.slotProps, {
|
|
51
49
|
toolbar: _extends({
|
|
52
50
|
ampm
|
|
53
|
-
},
|
|
51
|
+
}, themeProps.slotProps?.toolbar)
|
|
54
52
|
})
|
|
55
53
|
});
|
|
56
54
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
const _excluded = ["className"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
@@ -41,13 +41,17 @@ const DayCalendarSkeletonDay = styled(Skeleton, {
|
|
|
41
41
|
name: 'MuiDayCalendarSkeleton',
|
|
42
42
|
slot: 'DaySkeleton',
|
|
43
43
|
overridesResolver: (props, styles) => styles.daySkeleton
|
|
44
|
-
})(
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
})({
|
|
45
|
+
margin: `0 ${DAY_MARGIN}px`,
|
|
46
|
+
variants: [{
|
|
47
|
+
props: {
|
|
48
|
+
day: 0
|
|
49
|
+
},
|
|
50
|
+
style: {
|
|
51
|
+
visibility: 'hidden'
|
|
52
|
+
}
|
|
53
|
+
}]
|
|
54
|
+
});
|
|
51
55
|
DayCalendarSkeletonDay.propTypes = {
|
|
52
56
|
// ----------------------------- Warning --------------------------------
|
|
53
57
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
@@ -24,7 +24,6 @@ import { resolveDateFormat } from '../internals/utils/date-utils';
|
|
|
24
24
|
* - [DesktopDatePicker API](https://mui.com/x/api/date-pickers/desktop-date-picker/)
|
|
25
25
|
*/
|
|
26
26
|
const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePicker(inProps, ref) {
|
|
27
|
-
var _defaultizedProps$yea, _defaultizedProps$slo2, _props$localeText$ope, _props$localeText;
|
|
28
27
|
const localeText = useLocaleText();
|
|
29
28
|
const utils = useUtils();
|
|
30
29
|
|
|
@@ -40,21 +39,18 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
|
|
|
40
39
|
const props = _extends({}, defaultizedProps, {
|
|
41
40
|
viewRenderers,
|
|
42
41
|
format: resolveDateFormat(utils, defaultizedProps, false),
|
|
43
|
-
yearsPerRow:
|
|
42
|
+
yearsPerRow: defaultizedProps.yearsPerRow ?? 4,
|
|
44
43
|
slots: _extends({
|
|
45
44
|
openPickerIcon: CalendarIcon,
|
|
46
45
|
field: DateField
|
|
47
46
|
}, defaultizedProps.slots),
|
|
48
47
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
49
|
-
field: ownerState => {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
ref
|
|
53
|
-
});
|
|
54
|
-
},
|
|
48
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {
|
|
49
|
+
ref
|
|
50
|
+
}),
|
|
55
51
|
toolbar: _extends({
|
|
56
52
|
hidden: true
|
|
57
|
-
},
|
|
53
|
+
}, defaultizedProps.slotProps?.toolbar)
|
|
58
54
|
})
|
|
59
55
|
});
|
|
60
56
|
const {
|
|
@@ -63,7 +59,7 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
|
|
|
63
59
|
props,
|
|
64
60
|
valueManager: singleItemValueManager,
|
|
65
61
|
valueType: 'date',
|
|
66
|
-
getOpenDialogAriaText:
|
|
62
|
+
getOpenDialogAriaText: props.localeText?.openDatePickerDialogue ?? localeText.openDatePickerDialogue,
|
|
67
63
|
validator: validateDate
|
|
68
64
|
});
|
|
69
65
|
return renderPicker();
|
|
@@ -285,7 +281,7 @@ DesktopDatePicker.propTypes = {
|
|
|
285
281
|
/**
|
|
286
282
|
* Disable specific date.
|
|
287
283
|
*
|
|
288
|
-
* Warning: This function can be called multiple times (
|
|
284
|
+
* Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
|
|
289
285
|
*
|
|
290
286
|
* @template TDate
|
|
291
287
|
* @param {TDate} day The date to test.
|