@mui/x-date-pickers 8.0.0-beta.0 → 8.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +171 -0
- package/DateCalendar/DateCalendar.js +4 -8
- package/DateCalendar/DayCalendar.d.ts +3 -7
- package/DateCalendar/DayCalendar.js +18 -10
- package/DateCalendar/index.d.ts +0 -1
- package/DateField/useDateField.d.ts +1 -1
- package/DateField/useDateField.js +2 -16
- package/DatePicker/DatePicker.js +1 -0
- package/DatePicker/shared.js +3 -9
- package/DateTimeField/useDateTimeField.d.ts +1 -1
- package/DateTimeField/useDateTimeField.js +2 -16
- package/DateTimePicker/DateTimePicker.js +1 -0
- package/DateTimePicker/shared.js +3 -13
- package/DesktopDatePicker/DesktopDatePicker.js +1 -0
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
- package/DesktopTimePicker/DesktopTimePicker.js +1 -0
- package/MobileDatePicker/MobileDatePicker.js +1 -0
- package/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
- package/MobileTimePicker/MobileTimePicker.js +1 -0
- package/MonthCalendar/MonthCalendar.js +4 -9
- package/PickersDay/PickersDay.d.ts +1 -72
- package/PickersDay/PickersDay.js +30 -28
- package/PickersDay/PickersDay.types.d.ts +114 -0
- package/PickersDay/PickersDay.types.js +5 -0
- package/PickersDay/index.d.ts +1 -1
- package/PickersDay/usePickerDayOwnerState.d.ts +14 -0
- package/PickersDay/usePickerDayOwnerState.js +40 -0
- package/PickersSectionList/PickersSectionList.d.ts +1 -1
- package/PickersSectionList/PickersSectionList.types.d.ts +2 -6
- package/TimeField/useTimeField.d.ts +1 -1
- package/TimeField/useTimeField.js +2 -16
- package/TimePicker/TimePicker.js +1 -0
- package/TimePicker/shared.js +3 -3
- package/YearCalendar/YearCalendar.js +4 -10
- package/esm/DateCalendar/DateCalendar.js +6 -10
- package/esm/DateCalendar/DayCalendar.d.ts +3 -7
- package/esm/DateCalendar/DayCalendar.js +18 -10
- package/esm/DateCalendar/index.d.ts +0 -1
- package/esm/DateField/useDateField.d.ts +1 -1
- package/esm/DateField/useDateField.js +3 -17
- package/esm/DatePicker/DatePicker.js +1 -0
- package/esm/DatePicker/shared.js +3 -9
- package/esm/DateTimeField/useDateTimeField.d.ts +1 -1
- package/esm/DateTimeField/useDateTimeField.js +3 -17
- package/esm/DateTimePicker/DateTimePicker.js +1 -0
- package/esm/DateTimePicker/shared.js +4 -14
- package/esm/DesktopDatePicker/DesktopDatePicker.js +1 -0
- package/esm/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
- package/esm/DesktopTimePicker/DesktopTimePicker.js +1 -0
- package/esm/MobileDatePicker/MobileDatePicker.js +1 -0
- package/esm/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
- package/esm/MobileTimePicker/MobileTimePicker.js +1 -0
- package/esm/MonthCalendar/MonthCalendar.js +6 -11
- package/esm/PickersDay/PickersDay.d.ts +1 -72
- package/esm/PickersDay/PickersDay.js +30 -28
- package/esm/PickersDay/PickersDay.types.d.ts +114 -0
- package/esm/PickersDay/PickersDay.types.js +1 -0
- package/esm/PickersDay/index.d.ts +1 -1
- package/esm/PickersDay/usePickerDayOwnerState.d.ts +14 -0
- package/esm/PickersDay/usePickerDayOwnerState.js +32 -0
- package/esm/PickersSectionList/PickersSectionList.d.ts +1 -1
- package/esm/PickersSectionList/PickersSectionList.types.d.ts +2 -6
- package/esm/TimeField/useTimeField.d.ts +1 -1
- package/esm/TimeField/useTimeField.js +3 -17
- package/esm/TimePicker/TimePicker.js +1 -0
- package/esm/TimePicker/shared.js +3 -3
- package/esm/YearCalendar/YearCalendar.js +5 -11
- package/esm/hooks/useSplitFieldProps.d.ts +1 -1
- package/esm/index.js +1 -1
- package/esm/internals/components/PickerFieldUI.d.ts +5 -5
- package/esm/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
- package/esm/internals/hooks/useField/buildSectionsFromFormat.js +9 -9
- package/esm/internals/hooks/useField/index.d.ts +1 -1
- package/esm/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
- package/esm/internals/hooks/useField/syncSelectionToDOM.js +50 -0
- package/esm/internals/hooks/useField/useField.d.ts +2 -4
- package/esm/internals/hooks/useField/useField.js +5 -229
- package/esm/internals/hooks/useField/useField.types.d.ts +55 -68
- package/esm/internals/hooks/useField/useField.utils.d.ts +3 -8
- package/esm/internals/hooks/useField/useField.utils.js +7 -149
- package/esm/internals/hooks/useField/useFieldCharacterEditing.d.ts +19 -26
- package/esm/internals/hooks/useField/useFieldCharacterEditing.js +42 -60
- package/esm/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
- package/esm/internals/hooks/useField/useFieldHiddenInputProps.js +31 -0
- package/esm/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
- package/esm/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +16 -0
- package/esm/internals/hooks/useField/useFieldRootHandleKeyDown.js +205 -0
- package/esm/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
- package/esm/internals/hooks/useField/useFieldRootProps.js +150 -0
- package/esm/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
- package/esm/internals/hooks/useField/useFieldSectionContainerProps.js +29 -0
- package/esm/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
- package/esm/internals/hooks/useField/useFieldSectionContentProps.js +226 -0
- package/esm/internals/hooks/useField/useFieldState.d.ts +23 -13
- package/esm/internals/hooks/useField/useFieldState.js +103 -30
- package/esm/internals/hooks/useField/useFieldV6TextField.d.ts +3 -3
- package/esm/internals/hooks/useField/useFieldV6TextField.js +202 -135
- package/esm/internals/hooks/useField/useFieldV7TextField.d.ts +3 -2
- package/esm/internals/hooks/useField/useFieldV7TextField.js +200 -367
- package/esm/internals/hooks/usePicker/usePicker.types.d.ts +1 -0
- package/esm/internals/index.d.ts +6 -5
- package/esm/internals/index.js +4 -3
- package/esm/locales/deDE.js +2 -3
- package/esm/managers/useDateManager.d.ts +4 -13
- package/esm/managers/useDateManager.js +21 -31
- package/esm/managers/useDateTimeManager.d.ts +4 -13
- package/esm/managers/useDateTimeManager.js +26 -36
- package/esm/managers/useTimeManager.d.ts +4 -13
- package/esm/managers/useTimeManager.js +17 -27
- package/esm/models/fields.d.ts +2 -2
- package/esm/models/manager.d.ts +6 -10
- package/esm/validation/validateDate.js +3 -4
- package/hooks/useSplitFieldProps.d.ts +1 -1
- package/index.js +1 -1
- package/internals/components/PickerFieldUI.d.ts +5 -5
- package/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
- package/internals/hooks/useField/buildSectionsFromFormat.js +9 -9
- package/internals/hooks/useField/index.d.ts +1 -1
- package/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
- package/internals/hooks/useField/syncSelectionToDOM.js +56 -0
- package/internals/hooks/useField/useField.d.ts +2 -4
- package/internals/hooks/useField/useField.js +5 -231
- package/internals/hooks/useField/useField.types.d.ts +55 -68
- package/internals/hooks/useField/useField.utils.d.ts +3 -8
- package/internals/hooks/useField/useField.utils.js +9 -154
- package/internals/hooks/useField/useFieldCharacterEditing.d.ts +19 -26
- package/internals/hooks/useField/useFieldCharacterEditing.js +41 -59
- package/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
- package/internals/hooks/useField/useFieldHiddenInputProps.js +39 -0
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
- package/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +16 -0
- package/internals/hooks/useField/useFieldRootHandleKeyDown.js +211 -0
- package/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
- package/internals/hooks/useField/useFieldRootProps.js +156 -0
- package/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
- package/internals/hooks/useField/useFieldSectionContainerProps.js +37 -0
- package/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
- package/internals/hooks/useField/useFieldSectionContentProps.js +234 -0
- package/internals/hooks/useField/useFieldState.d.ts +23 -13
- package/internals/hooks/useField/useFieldState.js +102 -29
- package/internals/hooks/useField/useFieldV6TextField.d.ts +3 -3
- package/internals/hooks/useField/useFieldV6TextField.js +202 -135
- package/internals/hooks/useField/useFieldV7TextField.d.ts +3 -2
- package/internals/hooks/useField/useFieldV7TextField.js +200 -367
- package/internals/hooks/usePicker/usePicker.types.d.ts +1 -0
- package/internals/index.d.ts +6 -5
- package/internals/index.js +25 -18
- package/locales/deDE.js +2 -3
- package/managers/useDateManager.d.ts +4 -13
- package/managers/useDateManager.js +21 -31
- package/managers/useDateTimeManager.d.ts +4 -13
- package/managers/useDateTimeManager.js +26 -36
- package/managers/useTimeManager.d.ts +4 -13
- package/managers/useTimeManager.js +18 -28
- package/models/fields.d.ts +2 -2
- package/models/manager.d.ts +6 -10
- package/modern/DateCalendar/DateCalendar.js +6 -10
- package/modern/DateCalendar/DayCalendar.d.ts +3 -7
- package/modern/DateCalendar/DayCalendar.js +18 -10
- package/modern/DateCalendar/index.d.ts +0 -1
- package/modern/DateField/useDateField.d.ts +1 -1
- package/modern/DateField/useDateField.js +3 -17
- package/modern/DatePicker/DatePicker.js +1 -0
- package/modern/DatePicker/shared.js +3 -9
- package/modern/DateTimeField/useDateTimeField.d.ts +1 -1
- package/modern/DateTimeField/useDateTimeField.js +3 -17
- package/modern/DateTimePicker/DateTimePicker.js +1 -0
- package/modern/DateTimePicker/shared.js +4 -14
- package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -0
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
- package/modern/DesktopTimePicker/DesktopTimePicker.js +1 -0
- package/modern/MobileDatePicker/MobileDatePicker.js +1 -0
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
- package/modern/MobileTimePicker/MobileTimePicker.js +1 -0
- package/modern/MonthCalendar/MonthCalendar.js +6 -11
- package/modern/PickersDay/PickersDay.d.ts +1 -72
- package/modern/PickersDay/PickersDay.js +30 -28
- package/modern/PickersDay/PickersDay.types.d.ts +114 -0
- package/modern/PickersDay/PickersDay.types.js +1 -0
- package/modern/PickersDay/index.d.ts +1 -1
- package/modern/PickersDay/usePickerDayOwnerState.d.ts +14 -0
- package/modern/PickersDay/usePickerDayOwnerState.js +32 -0
- package/modern/PickersSectionList/PickersSectionList.d.ts +1 -1
- package/modern/PickersSectionList/PickersSectionList.types.d.ts +2 -6
- package/modern/TimeField/useTimeField.d.ts +1 -1
- package/modern/TimeField/useTimeField.js +3 -17
- package/modern/TimePicker/TimePicker.js +1 -0
- package/modern/TimePicker/shared.js +3 -3
- package/modern/YearCalendar/YearCalendar.js +5 -11
- package/modern/hooks/useSplitFieldProps.d.ts +1 -1
- package/modern/index.js +1 -1
- package/modern/internals/components/PickerFieldUI.d.ts +5 -5
- package/modern/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
- package/modern/internals/hooks/useField/buildSectionsFromFormat.js +9 -9
- package/modern/internals/hooks/useField/index.d.ts +1 -1
- package/modern/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
- package/modern/internals/hooks/useField/syncSelectionToDOM.js +50 -0
- package/modern/internals/hooks/useField/useField.d.ts +2 -4
- package/modern/internals/hooks/useField/useField.js +5 -229
- package/modern/internals/hooks/useField/useField.types.d.ts +55 -68
- package/modern/internals/hooks/useField/useField.utils.d.ts +3 -8
- package/modern/internals/hooks/useField/useField.utils.js +7 -149
- package/modern/internals/hooks/useField/useFieldCharacterEditing.d.ts +19 -26
- package/modern/internals/hooks/useField/useFieldCharacterEditing.js +42 -60
- package/modern/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
- package/modern/internals/hooks/useField/useFieldHiddenInputProps.js +31 -0
- package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
- package/modern/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +16 -0
- package/modern/internals/hooks/useField/useFieldRootHandleKeyDown.js +205 -0
- package/modern/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
- package/modern/internals/hooks/useField/useFieldRootProps.js +150 -0
- package/modern/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
- package/modern/internals/hooks/useField/useFieldSectionContainerProps.js +29 -0
- package/modern/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
- package/modern/internals/hooks/useField/useFieldSectionContentProps.js +226 -0
- package/modern/internals/hooks/useField/useFieldState.d.ts +23 -13
- package/modern/internals/hooks/useField/useFieldState.js +103 -30
- package/modern/internals/hooks/useField/useFieldV6TextField.d.ts +3 -3
- package/modern/internals/hooks/useField/useFieldV6TextField.js +202 -135
- package/modern/internals/hooks/useField/useFieldV7TextField.d.ts +3 -2
- package/modern/internals/hooks/useField/useFieldV7TextField.js +200 -367
- package/modern/internals/hooks/usePicker/usePicker.types.d.ts +1 -0
- package/modern/internals/index.d.ts +6 -5
- package/modern/internals/index.js +4 -3
- package/modern/locales/deDE.js +2 -3
- package/modern/managers/useDateManager.d.ts +4 -13
- package/modern/managers/useDateManager.js +21 -31
- package/modern/managers/useDateTimeManager.d.ts +4 -13
- package/modern/managers/useDateTimeManager.js +26 -36
- package/modern/managers/useTimeManager.d.ts +4 -13
- package/modern/managers/useTimeManager.js +17 -27
- package/modern/models/fields.d.ts +2 -2
- package/modern/models/manager.d.ts +6 -10
- package/modern/validation/validateDate.js +3 -4
- package/package.json +2 -2
- package/tsconfig.build.tsbuildinfo +1 -1
- package/validation/validateDate.js +3 -4
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { DateCalendar } from "./DateCalendar.js";
|
|
2
2
|
export type { DateCalendarProps, DateCalendarSlots, DateCalendarSlotProps } from './DateCalendar.types';
|
|
3
|
-
export type { PickerDayOwnerState } from './DayCalendar';
|
|
4
3
|
export { getDateCalendarUtilityClass, dateCalendarClasses } from "./dateCalendarClasses.js";
|
|
5
4
|
export type { DateCalendarClassKey, DateCalendarClasses } from './dateCalendarClasses';
|
|
6
5
|
export { dayCalendarClasses } from "./dayCalendarClasses.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { UseDateFieldProps } from "./DateField.types.js";
|
|
2
|
-
export declare const useDateField: <TEnableAccessibleFieldDOMStructure extends boolean,
|
|
2
|
+
export declare const useDateField: <TEnableAccessibleFieldDOMStructure extends boolean, TProps extends UseDateFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TProps) => import("../internals").UseFieldReturnValue<TEnableAccessibleFieldDOMStructure, TProps>;
|
|
@@ -1,25 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { useField
|
|
4
|
-
import { useSplitFieldProps } from "../hooks/index.js";
|
|
3
|
+
import { useField } from "../internals/hooks/useField/index.js";
|
|
5
4
|
import { useDateManager } from "../managers/index.js";
|
|
6
5
|
export const useDateField = props => {
|
|
7
6
|
const manager = useDateManager(props);
|
|
8
|
-
const {
|
|
9
|
-
forwardedProps,
|
|
10
|
-
internalProps
|
|
11
|
-
} = useSplitFieldProps(props, 'date');
|
|
12
|
-
const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
|
|
13
|
-
manager,
|
|
14
|
-
internalProps
|
|
15
|
-
});
|
|
16
7
|
return useField({
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
valueManager: manager.internal_valueManager,
|
|
20
|
-
fieldValueManager: manager.internal_fieldValueManager,
|
|
21
|
-
validator: manager.validator,
|
|
22
|
-
valueType: manager.valueType,
|
|
23
|
-
getOpenPickerButtonAriaLabel: manager.internal_useOpenPickerButtonAriaLabel()
|
|
8
|
+
manager,
|
|
9
|
+
props
|
|
24
10
|
});
|
|
25
11
|
};
|
|
@@ -99,6 +99,7 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
|
|
|
99
99
|
disableHighlightToday: PropTypes.bool,
|
|
100
100
|
/**
|
|
101
101
|
* If `true`, the button to open the Picker will not be rendered (it will only render the field).
|
|
102
|
+
* @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
|
|
102
103
|
* @default false
|
|
103
104
|
*/
|
|
104
105
|
disableOpenPicker: PropTypes.bool,
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useThemeProps } from '@mui/material/styles';
|
|
4
|
-
import { useDefaultDates, useUtils } from "../internals/hooks/useUtils.js";
|
|
5
4
|
import { applyDefaultViewProps } from "../internals/utils/views.js";
|
|
6
|
-
import { applyDefaultDate } from "../internals/utils/date-utils.js";
|
|
7
5
|
import { DatePickerToolbar } from "./DatePickerToolbar.js";
|
|
6
|
+
import { useApplyDefaultValuesToDateValidationProps } from "../managers/useDateManager.js";
|
|
8
7
|
export function useDatePickerDefaultizedProps(props, name) {
|
|
9
|
-
const utils = useUtils();
|
|
10
|
-
const defaultDates = useDefaultDates();
|
|
11
8
|
const themeProps = useThemeProps({
|
|
12
9
|
props,
|
|
13
10
|
name
|
|
14
11
|
});
|
|
12
|
+
const validationProps = useApplyDefaultValuesToDateValidationProps(themeProps);
|
|
15
13
|
const localeText = React.useMemo(() => {
|
|
16
14
|
if (themeProps.localeText?.toolbarTitle == null) {
|
|
17
15
|
return themeProps.localeText;
|
|
@@ -20,7 +18,7 @@ export function useDatePickerDefaultizedProps(props, name) {
|
|
|
20
18
|
datePickerToolbarTitle: themeProps.localeText.toolbarTitle
|
|
21
19
|
});
|
|
22
20
|
}, [themeProps.localeText]);
|
|
23
|
-
return _extends({}, themeProps, {
|
|
21
|
+
return _extends({}, themeProps, validationProps, {
|
|
24
22
|
localeText
|
|
25
23
|
}, applyDefaultViewProps({
|
|
26
24
|
views: themeProps.views,
|
|
@@ -28,10 +26,6 @@ export function useDatePickerDefaultizedProps(props, name) {
|
|
|
28
26
|
defaultViews: ['year', 'day'],
|
|
29
27
|
defaultOpenTo: 'day'
|
|
30
28
|
}), {
|
|
31
|
-
disableFuture: themeProps.disableFuture ?? false,
|
|
32
|
-
disablePast: themeProps.disablePast ?? false,
|
|
33
|
-
minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
|
|
34
|
-
maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate),
|
|
35
29
|
slots: _extends({
|
|
36
30
|
toolbar: DatePickerToolbar
|
|
37
31
|
}, themeProps.slots)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { UseDateTimeFieldProps } from "./DateTimeField.types.js";
|
|
2
|
-
export declare const useDateTimeField: <TEnableAccessibleFieldDOMStructure extends boolean,
|
|
2
|
+
export declare const useDateTimeField: <TEnableAccessibleFieldDOMStructure extends boolean, TProps extends UseDateTimeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TProps) => import("../internals").UseFieldReturnValue<TEnableAccessibleFieldDOMStructure, TProps>;
|
|
@@ -1,25 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { useField
|
|
4
|
-
import { useSplitFieldProps } from "../hooks/index.js";
|
|
3
|
+
import { useField } from "../internals/hooks/useField/index.js";
|
|
5
4
|
import { useDateTimeManager } from "../managers/index.js";
|
|
6
5
|
export const useDateTimeField = props => {
|
|
7
6
|
const manager = useDateTimeManager(props);
|
|
8
|
-
const {
|
|
9
|
-
forwardedProps,
|
|
10
|
-
internalProps
|
|
11
|
-
} = useSplitFieldProps(props, 'date-time');
|
|
12
|
-
const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
|
|
13
|
-
manager,
|
|
14
|
-
internalProps
|
|
15
|
-
});
|
|
16
7
|
return useField({
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
valueManager: manager.internal_valueManager,
|
|
20
|
-
fieldValueManager: manager.internal_fieldValueManager,
|
|
21
|
-
validator: manager.validator,
|
|
22
|
-
valueType: manager.valueType,
|
|
23
|
-
getOpenPickerButtonAriaLabel: manager.internal_useOpenPickerButtonAriaLabel()
|
|
8
|
+
manager,
|
|
9
|
+
props
|
|
24
10
|
});
|
|
25
11
|
};
|
|
@@ -114,6 +114,7 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
|
|
|
114
114
|
disableIgnoringDatePartForTimeValidation: PropTypes.bool,
|
|
115
115
|
/**
|
|
116
116
|
* If `true`, the button to open the Picker will not be rendered (it will only render the field).
|
|
117
|
+
* @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
|
|
117
118
|
* @default false
|
|
118
119
|
*/
|
|
119
120
|
disableOpenPicker: PropTypes.bool,
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useThemeProps } from '@mui/material/styles';
|
|
4
|
-
import {
|
|
5
|
-
import { applyDefaultDate } from "../internals/utils/date-utils.js";
|
|
4
|
+
import { useUtils } from "../internals/hooks/useUtils.js";
|
|
6
5
|
import { DateTimePickerTabs } from "./DateTimePickerTabs.js";
|
|
7
6
|
import { DateTimePickerToolbar } from "./DateTimePickerToolbar.js";
|
|
8
7
|
import { applyDefaultViewProps } from "../internals/utils/views.js";
|
|
9
8
|
import { resolveTimeViewsResponse } from "../internals/utils/date-time-utils.js";
|
|
9
|
+
import { useApplyDefaultValuesToDateTimeValidationProps } from "../managers/useDateTimeManager.js";
|
|
10
10
|
export function useDateTimePickerDefaultizedProps(props, name) {
|
|
11
11
|
const utils = useUtils();
|
|
12
|
-
const defaultDates = useDefaultDates();
|
|
13
12
|
const themeProps = useThemeProps({
|
|
14
13
|
props,
|
|
15
14
|
name
|
|
16
15
|
});
|
|
16
|
+
const validationProps = useApplyDefaultValuesToDateTimeValidationProps(themeProps);
|
|
17
17
|
const ampm = themeProps.ampm ?? utils.is12HourCycleInCurrentLocale();
|
|
18
18
|
const localeText = React.useMemo(() => {
|
|
19
19
|
if (themeProps.localeText?.toolbarTitle == null) {
|
|
@@ -43,7 +43,7 @@ export function useDateTimePickerDefaultizedProps(props, name) {
|
|
|
43
43
|
timeSteps: themeProps.timeSteps,
|
|
44
44
|
views: defaultViews
|
|
45
45
|
});
|
|
46
|
-
return _extends({}, themeProps, {
|
|
46
|
+
return _extends({}, themeProps, validationProps, {
|
|
47
47
|
timeSteps,
|
|
48
48
|
openTo,
|
|
49
49
|
shouldRenderTimeInASingleColumn,
|
|
@@ -52,16 +52,6 @@ export function useDateTimePickerDefaultizedProps(props, name) {
|
|
|
52
52
|
ampm,
|
|
53
53
|
localeText,
|
|
54
54
|
orientation: themeProps.orientation ?? 'portrait',
|
|
55
|
-
// TODO: Remove from public API
|
|
56
|
-
disableIgnoringDatePartForTimeValidation: themeProps.disableIgnoringDatePartForTimeValidation ?? Boolean(themeProps.minDateTime || themeProps.maxDateTime ||
|
|
57
|
-
// allow time clock to correctly check time validity: https://github.com/mui/mui-x/issues/8520
|
|
58
|
-
themeProps.disablePast || themeProps.disableFuture),
|
|
59
|
-
disableFuture: themeProps.disableFuture ?? false,
|
|
60
|
-
disablePast: themeProps.disablePast ?? false,
|
|
61
|
-
minDate: applyDefaultDate(utils, themeProps.minDateTime ?? themeProps.minDate, defaultDates.minDate),
|
|
62
|
-
maxDate: applyDefaultDate(utils, themeProps.maxDateTime ?? themeProps.maxDate, defaultDates.maxDate),
|
|
63
|
-
minTime: themeProps.minDateTime ?? themeProps.minTime,
|
|
64
|
-
maxTime: themeProps.maxDateTime ?? themeProps.maxTime,
|
|
65
55
|
slots: _extends({
|
|
66
56
|
toolbar: DateTimePickerToolbar,
|
|
67
57
|
tabs: DateTimePickerTabs
|
|
@@ -114,6 +114,7 @@ DesktopDatePicker.propTypes = {
|
|
|
114
114
|
disableHighlightToday: PropTypes.bool,
|
|
115
115
|
/**
|
|
116
116
|
* If `true`, the button to open the Picker will not be rendered (it will only render the field).
|
|
117
|
+
* @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
|
|
117
118
|
* @default false
|
|
118
119
|
*/
|
|
119
120
|
disableOpenPicker: PropTypes.bool,
|
|
@@ -203,6 +203,7 @@ DesktopDateTimePicker.propTypes = {
|
|
|
203
203
|
disableIgnoringDatePartForTimeValidation: PropTypes.bool,
|
|
204
204
|
/**
|
|
205
205
|
* If `true`, the button to open the Picker will not be rendered (it will only render the field).
|
|
206
|
+
* @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
|
|
206
207
|
* @default false
|
|
207
208
|
*/
|
|
208
209
|
disableOpenPicker: PropTypes.bool,
|
|
@@ -128,6 +128,7 @@ DesktopTimePicker.propTypes = {
|
|
|
128
128
|
disableIgnoringDatePartForTimeValidation: PropTypes.bool,
|
|
129
129
|
/**
|
|
130
130
|
* If `true`, the button to open the Picker will not be rendered (it will only render the field).
|
|
131
|
+
* @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
|
|
131
132
|
* @default false
|
|
132
133
|
*/
|
|
133
134
|
disableOpenPicker: PropTypes.bool,
|
|
@@ -107,6 +107,7 @@ MobileDatePicker.propTypes = {
|
|
|
107
107
|
disableHighlightToday: PropTypes.bool,
|
|
108
108
|
/**
|
|
109
109
|
* If `true`, the button to open the Picker will not be rendered (it will only render the field).
|
|
110
|
+
* @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
|
|
110
111
|
* @default false
|
|
111
112
|
*/
|
|
112
113
|
disableOpenPicker: PropTypes.bool,
|
|
@@ -165,6 +165,7 @@ MobileDateTimePicker.propTypes = {
|
|
|
165
165
|
disableIgnoringDatePartForTimeValidation: PropTypes.bool,
|
|
166
166
|
/**
|
|
167
167
|
* If `true`, the button to open the Picker will not be rendered (it will only render the field).
|
|
168
|
+
* @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
|
|
168
169
|
* @default false
|
|
169
170
|
*/
|
|
170
171
|
disableOpenPicker: PropTypes.bool,
|
|
@@ -113,6 +113,7 @@ MobileTimePicker.propTypes = {
|
|
|
113
113
|
disableIgnoringDatePartForTimeValidation: PropTypes.bool,
|
|
114
114
|
/**
|
|
115
115
|
* If `true`, the button to open the Picker will not be rendered (it will only render the field).
|
|
116
|
+
* @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
|
|
116
117
|
* @default false
|
|
117
118
|
*/
|
|
118
119
|
disableOpenPicker: PropTypes.bool,
|
|
@@ -11,14 +11,15 @@ import { shouldForwardProp } from '@mui/system/createStyled';
|
|
|
11
11
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
12
12
|
import { unstable_useControlled as useControlled, unstable_composeClasses as composeClasses, unstable_useEventCallback as useEventCallback } from '@mui/utils';
|
|
13
13
|
import { MonthCalendarButton } from "./MonthCalendarButton.js";
|
|
14
|
-
import { useUtils, useNow
|
|
14
|
+
import { useUtils, useNow } from "../internals/hooks/useUtils.js";
|
|
15
15
|
import { getMonthCalendarUtilityClass } from "./monthCalendarClasses.js";
|
|
16
|
-
import {
|
|
16
|
+
import { getMonthsInYear } from "../internals/utils/date-utils.js";
|
|
17
17
|
import { singleItemValueManager } from "../internals/utils/valueManagers.js";
|
|
18
18
|
import { SECTION_TYPE_GRANULARITY } from "../internals/utils/getDefaultReferenceDate.js";
|
|
19
19
|
import { useControlledValue } from "../internals/hooks/useControlledValue.js";
|
|
20
20
|
import { DIALOG_WIDTH } from "../internals/constants/dimensions.js";
|
|
21
21
|
import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
|
|
22
|
+
import { useApplyDefaultValuesToDateValidationProps } from "../managers/useDateManager.js";
|
|
22
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
23
24
|
const useUtilityClasses = classes => {
|
|
24
25
|
const slots = {
|
|
@@ -27,19 +28,13 @@ const useUtilityClasses = classes => {
|
|
|
27
28
|
return composeClasses(slots, getMonthCalendarUtilityClass, classes);
|
|
28
29
|
};
|
|
29
30
|
export function useMonthCalendarDefaultizedProps(props, name) {
|
|
30
|
-
const utils = useUtils();
|
|
31
|
-
const defaultDates = useDefaultDates();
|
|
32
31
|
const themeProps = useThemeProps({
|
|
33
32
|
props,
|
|
34
33
|
name
|
|
35
34
|
});
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}, themeProps, {
|
|
40
|
-
monthsPerRow: themeProps.monthsPerRow ?? 3,
|
|
41
|
-
minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
|
|
42
|
-
maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)
|
|
35
|
+
const validationProps = useApplyDefaultValuesToDateValidationProps(themeProps);
|
|
36
|
+
return _extends({}, themeProps, validationProps, {
|
|
37
|
+
monthsPerRow: themeProps.monthsPerRow ?? 3
|
|
43
38
|
});
|
|
44
39
|
}
|
|
45
40
|
const MonthCalendarRoot = styled('div', {
|
|
@@ -1,76 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import { ExtendMui } from "../internals/models/helpers.js";
|
|
4
|
-
import { PickersDayClasses } from "./pickersDayClasses.js";
|
|
5
|
-
import { PickerValidDate } from "../models/index.js";
|
|
6
|
-
export interface ExportedPickersDayProps {
|
|
7
|
-
/**
|
|
8
|
-
* If `true`, today's date is rendering without highlighting with circle.
|
|
9
|
-
* @default false
|
|
10
|
-
*/
|
|
11
|
-
disableHighlightToday?: boolean;
|
|
12
|
-
/**
|
|
13
|
-
* If `true`, days outside the current month are rendered:
|
|
14
|
-
*
|
|
15
|
-
* - if `fixedWeekNumber` is defined, renders days to have the weeks requested.
|
|
16
|
-
*
|
|
17
|
-
* - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.
|
|
18
|
-
*
|
|
19
|
-
* - ignored if `calendars` equals more than `1` on range pickers.
|
|
20
|
-
* @default false
|
|
21
|
-
*/
|
|
22
|
-
showDaysOutsideCurrentMonth?: boolean;
|
|
23
|
-
}
|
|
24
|
-
export interface PickersDayProps extends ExportedPickersDayProps, Omit<ExtendMui<ButtonBaseProps>, 'onKeyDown' | 'onFocus' | 'onBlur' | 'onMouseEnter' | 'LinkComponent'> {
|
|
25
|
-
/**
|
|
26
|
-
* Override or extend the styles applied to the component.
|
|
27
|
-
*/
|
|
28
|
-
classes?: Partial<PickersDayClasses>;
|
|
29
|
-
/**
|
|
30
|
-
* The date to show.
|
|
31
|
-
*/
|
|
32
|
-
day: PickerValidDate;
|
|
33
|
-
/**
|
|
34
|
-
* If `true`, renders as disabled.
|
|
35
|
-
* @default false
|
|
36
|
-
*/
|
|
37
|
-
disabled?: boolean;
|
|
38
|
-
/**
|
|
39
|
-
* If `true`, days are rendering without margin. Useful for displaying linked range of days.
|
|
40
|
-
* @default false
|
|
41
|
-
*/
|
|
42
|
-
disableMargin?: boolean;
|
|
43
|
-
isAnimating?: boolean;
|
|
44
|
-
onFocus?: (event: React.FocusEvent<HTMLButtonElement>, day: PickerValidDate) => void;
|
|
45
|
-
onBlur?: (event: React.FocusEvent<HTMLButtonElement>, day: PickerValidDate) => void;
|
|
46
|
-
onKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>, day: PickerValidDate) => void;
|
|
47
|
-
onMouseEnter?: (event: React.MouseEvent<HTMLButtonElement>, day: PickerValidDate) => void;
|
|
48
|
-
onDaySelect: (day: PickerValidDate) => void;
|
|
49
|
-
/**
|
|
50
|
-
* If `true`, day is outside of month and will be hidden.
|
|
51
|
-
*/
|
|
52
|
-
outsideCurrentMonth: boolean;
|
|
53
|
-
/**
|
|
54
|
-
* If `true`, day is the first visible cell of the month.
|
|
55
|
-
* Either the first day of the month or the first day of the week depending on `showDaysOutsideCurrentMonth`.
|
|
56
|
-
*/
|
|
57
|
-
isFirstVisibleCell: boolean;
|
|
58
|
-
/**
|
|
59
|
-
* If `true`, day is the last visible cell of the month.
|
|
60
|
-
* Either the last day of the month or the last day of the week depending on `showDaysOutsideCurrentMonth`.
|
|
61
|
-
*/
|
|
62
|
-
isLastVisibleCell: boolean;
|
|
63
|
-
/**
|
|
64
|
-
* If `true`, renders as selected.
|
|
65
|
-
* @default false
|
|
66
|
-
*/
|
|
67
|
-
selected?: boolean;
|
|
68
|
-
/**
|
|
69
|
-
* If `true`, renders as today date.
|
|
70
|
-
* @default false
|
|
71
|
-
*/
|
|
72
|
-
today?: boolean;
|
|
73
|
-
}
|
|
2
|
+
import { PickersDayProps } from "./PickersDay.types.js";
|
|
74
3
|
type PickersDayComponent = ((props: PickersDayProps & React.RefAttributes<HTMLButtonElement>) => React.JSX.Element) & {
|
|
75
4
|
propTypes?: any;
|
|
76
5
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
4
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
5
|
-
const _excluded = ["autoFocus", "className", "
|
|
5
|
+
const _excluded = ["autoFocus", "className", "classes", "hidden", "isAnimating", "onClick", "onDaySelect", "onFocus", "onBlur", "onKeyDown", "onMouseDown", "onMouseEnter", "children", "isFirstVisibleCell", "isLastVisibleCell", "day", "selected", "disabled", "today", "outsideCurrentMonth", "disableMargin", "disableHighlightToday", "showDaysOutsideCurrentMonth"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import clsx from 'clsx';
|
|
@@ -12,21 +12,21 @@ import { alpha, styled, useThemeProps } from '@mui/material/styles';
|
|
|
12
12
|
import { useUtils } from "../internals/hooks/useUtils.js";
|
|
13
13
|
import { DAY_SIZE, DAY_MARGIN } from "../internals/constants/dimensions.js";
|
|
14
14
|
import { getPickersDayUtilityClass, pickersDayClasses } from "./pickersDayClasses.js";
|
|
15
|
+
import { usePickerDayOwnerState } from "./usePickerDayOwnerState.js";
|
|
15
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
|
-
const useUtilityClasses = ownerState => {
|
|
17
|
+
const useUtilityClasses = (classes, ownerState) => {
|
|
17
18
|
const {
|
|
18
|
-
|
|
19
|
+
isDaySelected,
|
|
20
|
+
isDayDisabled,
|
|
21
|
+
isDayCurrent,
|
|
22
|
+
isDayOutsideMonth,
|
|
19
23
|
disableMargin,
|
|
20
24
|
disableHighlightToday,
|
|
21
|
-
|
|
22
|
-
disabled,
|
|
23
|
-
outsideCurrentMonth,
|
|
24
|
-
showDaysOutsideCurrentMonth,
|
|
25
|
-
classes
|
|
25
|
+
showDaysOutsideCurrentMonth
|
|
26
26
|
} = ownerState;
|
|
27
|
-
const isHiddenDaySpacingFiller =
|
|
27
|
+
const isHiddenDaySpacingFiller = isDayOutsideMonth && !showDaysOutsideCurrentMonth;
|
|
28
28
|
const slots = {
|
|
29
|
-
root: ['root',
|
|
29
|
+
root: ['root', isDaySelected && !isHiddenDaySpacingFiller && 'selected', isDayDisabled && 'disabled', !disableMargin && 'dayWithMargin', !disableHighlightToday && isDayCurrent && 'today', isDayOutsideMonth && showDaysOutsideCurrentMonth && 'dayOutsideMonth', isHiddenDaySpacingFiller && 'hiddenDaySpacingFiller'],
|
|
30
30
|
hiddenDaySpacingFiller: ['hiddenDaySpacingFiller']
|
|
31
31
|
};
|
|
32
32
|
return composeClasses(slots, getPickersDayUtilityClass, classes);
|
|
@@ -80,7 +80,7 @@ const styleArg = ({
|
|
|
80
80
|
}
|
|
81
81
|
}, {
|
|
82
82
|
props: {
|
|
83
|
-
|
|
83
|
+
isDayOutsideMonth: true,
|
|
84
84
|
showDaysOutsideCurrentMonth: true
|
|
85
85
|
},
|
|
86
86
|
style: {
|
|
@@ -89,7 +89,7 @@ const styleArg = ({
|
|
|
89
89
|
}, {
|
|
90
90
|
props: {
|
|
91
91
|
disableHighlightToday: false,
|
|
92
|
-
|
|
92
|
+
isDayCurrent: true
|
|
93
93
|
},
|
|
94
94
|
style: {
|
|
95
95
|
[`&:not(.${pickersDayClasses.selected})`]: {
|
|
@@ -102,7 +102,7 @@ const overridesResolver = (props, styles) => {
|
|
|
102
102
|
const {
|
|
103
103
|
ownerState
|
|
104
104
|
} = props;
|
|
105
|
-
return [styles.root, !ownerState.disableMargin && styles.dayWithMargin, !ownerState.disableHighlightToday && ownerState.
|
|
105
|
+
return [styles.root, !ownerState.disableMargin && styles.dayWithMargin, !ownerState.disableHighlightToday && ownerState.isDayCurrent && styles.today, !ownerState.isDayOutsideMonth && ownerState.showDaysOutsideCurrentMonth && styles.dayOutsideMonth, ownerState.isDayOutsideMonth && !ownerState.showDaysOutsideCurrentMonth && styles.hiddenDaySpacingFiller];
|
|
106
106
|
};
|
|
107
107
|
const PickersDayRoot = styled(ButtonBase, {
|
|
108
108
|
name: 'MuiPickersDay',
|
|
@@ -131,10 +131,7 @@ const PickersDayRaw = /*#__PURE__*/React.forwardRef(function PickersDay(inProps,
|
|
|
131
131
|
const {
|
|
132
132
|
autoFocus = false,
|
|
133
133
|
className,
|
|
134
|
-
|
|
135
|
-
disabled = false,
|
|
136
|
-
disableHighlightToday = false,
|
|
137
|
-
disableMargin = false,
|
|
134
|
+
classes: classesProp,
|
|
138
135
|
isAnimating,
|
|
139
136
|
onClick,
|
|
140
137
|
onDaySelect,
|
|
@@ -143,23 +140,28 @@ const PickersDayRaw = /*#__PURE__*/React.forwardRef(function PickersDay(inProps,
|
|
|
143
140
|
onKeyDown = noop,
|
|
144
141
|
onMouseDown = noop,
|
|
145
142
|
onMouseEnter = noop,
|
|
146
|
-
outsideCurrentMonth,
|
|
147
|
-
selected = false,
|
|
148
|
-
showDaysOutsideCurrentMonth = false,
|
|
149
143
|
children,
|
|
150
|
-
|
|
144
|
+
day,
|
|
145
|
+
selected,
|
|
146
|
+
disabled,
|
|
147
|
+
today,
|
|
148
|
+
outsideCurrentMonth,
|
|
149
|
+
disableMargin,
|
|
150
|
+
disableHighlightToday,
|
|
151
|
+
showDaysOutsideCurrentMonth
|
|
151
152
|
} = props,
|
|
152
153
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
153
|
-
const ownerState =
|
|
154
|
-
|
|
154
|
+
const ownerState = usePickerDayOwnerState({
|
|
155
|
+
day,
|
|
156
|
+
selected,
|
|
155
157
|
disabled,
|
|
156
|
-
|
|
158
|
+
today,
|
|
159
|
+
outsideCurrentMonth,
|
|
157
160
|
disableMargin,
|
|
158
|
-
|
|
159
|
-
showDaysOutsideCurrentMonth
|
|
160
|
-
today: isToday
|
|
161
|
+
disableHighlightToday,
|
|
162
|
+
showDaysOutsideCurrentMonth
|
|
161
163
|
});
|
|
162
|
-
const classes = useUtilityClasses(ownerState);
|
|
164
|
+
const classes = useUtilityClasses(classesProp, ownerState);
|
|
163
165
|
const utils = useUtils();
|
|
164
166
|
const ref = React.useRef(null);
|
|
165
167
|
const handleRef = useForkRef(ref, forwardedRef);
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { ButtonBaseProps } from '@mui/material/ButtonBase';
|
|
2
|
+
import { PickerOwnerState, PickerValidDate } from "../models/pickers.js";
|
|
3
|
+
import { ExtendMui } from "../internals/models/helpers.js";
|
|
4
|
+
import { PickersDayClasses } from "./pickersDayClasses.js";
|
|
5
|
+
export interface PickerDayOwnerState extends PickerOwnerState {
|
|
6
|
+
/**
|
|
7
|
+
* The object representing the day.
|
|
8
|
+
*/
|
|
9
|
+
day: PickerValidDate;
|
|
10
|
+
/**
|
|
11
|
+
* Whether the day is selected.
|
|
12
|
+
*/
|
|
13
|
+
isDaySelected: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Whether the day is disabled.
|
|
16
|
+
*/
|
|
17
|
+
isDayDisabled: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Whether the day is equal to today.
|
|
20
|
+
*/
|
|
21
|
+
isDayCurrent: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Whether the day is outside the month it's being rendered in.
|
|
24
|
+
*/
|
|
25
|
+
isDayOutsideMonth: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Whether the day is the first day of the week.
|
|
28
|
+
*/
|
|
29
|
+
isDayStartOfWeek: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Whether the day is the last day of the week.
|
|
32
|
+
*/
|
|
33
|
+
isDayEndOfWeek: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Whether the margin around the day should be removed.
|
|
36
|
+
*/
|
|
37
|
+
disableMargin: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Whether the visual indication around the current day should be removed.
|
|
40
|
+
*/
|
|
41
|
+
disableHighlightToday: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Whether the day outside of the month they are being rendered in should be visible.
|
|
44
|
+
*/
|
|
45
|
+
showDaysOutsideCurrentMonth: boolean;
|
|
46
|
+
}
|
|
47
|
+
export interface ExportedPickersDayProps {
|
|
48
|
+
/**
|
|
49
|
+
* If `true`, today's date is rendering without highlighting with circle.
|
|
50
|
+
* @default false
|
|
51
|
+
*/
|
|
52
|
+
disableHighlightToday?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* If `true`, days outside the current month are rendered:
|
|
55
|
+
*
|
|
56
|
+
* - if `fixedWeekNumber` is defined, renders days to have the weeks requested.
|
|
57
|
+
*
|
|
58
|
+
* - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.
|
|
59
|
+
*
|
|
60
|
+
* - ignored if `calendars` equals more than `1` on range pickers.
|
|
61
|
+
* @default false
|
|
62
|
+
*/
|
|
63
|
+
showDaysOutsideCurrentMonth?: boolean;
|
|
64
|
+
}
|
|
65
|
+
export interface PickersDayProps extends ExportedPickersDayProps, Omit<ExtendMui<ButtonBaseProps>, 'onKeyDown' | 'onFocus' | 'onBlur' | 'onMouseEnter' | 'LinkComponent'> {
|
|
66
|
+
/**
|
|
67
|
+
* Override or extend the styles applied to the component.
|
|
68
|
+
*/
|
|
69
|
+
classes?: Partial<PickersDayClasses>;
|
|
70
|
+
/**
|
|
71
|
+
* The date to show.
|
|
72
|
+
*/
|
|
73
|
+
day: PickerValidDate;
|
|
74
|
+
/**
|
|
75
|
+
* If `true`, renders as disabled.
|
|
76
|
+
* @default false
|
|
77
|
+
*/
|
|
78
|
+
disabled?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* If `true`, days are rendering without margin. Useful for displaying linked range of days.
|
|
81
|
+
* @default false
|
|
82
|
+
*/
|
|
83
|
+
disableMargin?: boolean;
|
|
84
|
+
isAnimating?: boolean;
|
|
85
|
+
onFocus?: (event: React.FocusEvent<HTMLButtonElement>, day: PickerValidDate) => void;
|
|
86
|
+
onBlur?: (event: React.FocusEvent<HTMLButtonElement>, day: PickerValidDate) => void;
|
|
87
|
+
onKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>, day: PickerValidDate) => void;
|
|
88
|
+
onMouseEnter?: (event: React.MouseEvent<HTMLButtonElement>, day: PickerValidDate) => void;
|
|
89
|
+
onDaySelect: (day: PickerValidDate) => void;
|
|
90
|
+
/**
|
|
91
|
+
* If `true`, day is outside of month and will be hidden.
|
|
92
|
+
*/
|
|
93
|
+
outsideCurrentMonth: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* If `true`, day is the first visible cell of the month.
|
|
96
|
+
* Either the first day of the month or the first day of the week depending on `showDaysOutsideCurrentMonth`.
|
|
97
|
+
*/
|
|
98
|
+
isFirstVisibleCell: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* If `true`, day is the last visible cell of the month.
|
|
101
|
+
* Either the last day of the month or the last day of the week depending on `showDaysOutsideCurrentMonth`.
|
|
102
|
+
*/
|
|
103
|
+
isLastVisibleCell: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* If `true`, renders as selected.
|
|
106
|
+
* @default false
|
|
107
|
+
*/
|
|
108
|
+
selected?: boolean;
|
|
109
|
+
/**
|
|
110
|
+
* If `true`, renders as today date.
|
|
111
|
+
* @default false
|
|
112
|
+
*/
|
|
113
|
+
today?: boolean;
|
|
114
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { PickersDay } from "./PickersDay.js";
|
|
2
|
-
export type { PickersDayProps } from './PickersDay';
|
|
2
|
+
export type { PickersDayProps, PickerDayOwnerState } from './PickersDay.types';
|
|
3
3
|
export { pickersDayClasses, getPickersDayUtilityClass } from "./pickersDayClasses.js";
|
|
4
4
|
export type { PickersDayClasses, PickersDayClassKey } from './pickersDayClasses';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PickerDayOwnerState } from "./PickersDay.types.js";
|
|
2
|
+
import { PickerValidDate } from "../models/pickers.js";
|
|
3
|
+
export declare function usePickerDayOwnerState(parameters: UsePickerDayOwnerStateParameters): PickerDayOwnerState;
|
|
4
|
+
interface UsePickerDayOwnerStateParameters {
|
|
5
|
+
day: PickerValidDate;
|
|
6
|
+
disabled: boolean | undefined;
|
|
7
|
+
selected: boolean | undefined;
|
|
8
|
+
today: boolean | undefined;
|
|
9
|
+
outsideCurrentMonth: boolean | undefined;
|
|
10
|
+
disableMargin: boolean | undefined;
|
|
11
|
+
disableHighlightToday: boolean | undefined;
|
|
12
|
+
showDaysOutsideCurrentMonth: boolean | undefined;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
|
|
4
|
+
import { useUtils } from "../internals/hooks/useUtils.js";
|
|
5
|
+
export function usePickerDayOwnerState(parameters) {
|
|
6
|
+
const {
|
|
7
|
+
disabled,
|
|
8
|
+
selected,
|
|
9
|
+
today,
|
|
10
|
+
outsideCurrentMonth,
|
|
11
|
+
day,
|
|
12
|
+
disableMargin,
|
|
13
|
+
disableHighlightToday,
|
|
14
|
+
showDaysOutsideCurrentMonth
|
|
15
|
+
} = parameters;
|
|
16
|
+
const utils = useUtils();
|
|
17
|
+
const {
|
|
18
|
+
ownerState: pickerOwnerState
|
|
19
|
+
} = usePickerPrivateContext();
|
|
20
|
+
return React.useMemo(() => _extends({}, pickerOwnerState, {
|
|
21
|
+
day,
|
|
22
|
+
isDaySelected: selected ?? false,
|
|
23
|
+
isDayDisabled: disabled ?? false,
|
|
24
|
+
isDayCurrent: today ?? false,
|
|
25
|
+
isDayOutsideMonth: outsideCurrentMonth ?? false,
|
|
26
|
+
isDayStartOfWeek: utils.isSameDay(day, utils.startOfWeek(day)),
|
|
27
|
+
isDayEndOfWeek: utils.isSameDay(day, utils.endOfWeek(day)),
|
|
28
|
+
disableMargin: disableMargin ?? false,
|
|
29
|
+
disableHighlightToday: disableHighlightToday ?? false,
|
|
30
|
+
showDaysOutsideCurrentMonth: showDaysOutsideCurrentMonth ?? false
|
|
31
|
+
}), [utils, pickerOwnerState, day, selected, disabled, today, outsideCurrentMonth, disableMargin, disableHighlightToday, showDaysOutsideCurrentMonth]);
|
|
32
|
+
}
|