@mui/x-date-pickers-pro 8.0.0-alpha.5 → 8.0.0-alpha.7
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/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.d.ts +1 -1
- package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
- package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/package.json +1 -1
- package/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.d.ts +1 -1
- package/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
- package/{AdapterDateFnsV3 → AdapterDateFnsV2}/package.json +1 -1
- package/CHANGELOG.md +206 -1
- package/DateRangeCalendar/DateRangeCalendar.js +9 -7
- package/DateRangePicker/DateRangePicker.js +1 -1
- package/DateRangePicker/DateRangePicker.types.d.ts +5 -0
- package/DateRangePicker/DateRangePickerToolbar.d.ts +2 -3
- package/DateRangePicker/DateRangePickerToolbar.js +25 -31
- package/DateRangePicker/shared.d.ts +1 -1
- package/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
- package/DateTimeRangePicker/DateTimeRangePickerTabs.d.ts +4 -5
- package/DateTimeRangePicker/DateTimeRangePickerTabs.js +25 -24
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.d.ts +8 -10
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +7 -5
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.d.ts +2 -4
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +66 -69
- package/DateTimeRangePicker/shared.d.ts +2 -2
- package/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -3
- package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +7 -2
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +17 -14
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.d.ts +2 -3
- package/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +2 -2
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -8
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.d.ts +2 -3
- package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
- package/SingleInputDateRangeField/useSingleInputDateRangeField.js +13 -14
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +13 -14
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +13 -14
- package/StaticDateRangePicker/StaticDateRangePicker.types.d.ts +2 -2
- package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +2 -2
- package/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
- package/hooks/index.d.ts +1 -0
- package/hooks/index.js +1 -0
- package/hooks/package.json +6 -0
- package/hooks/usePickerRangePositionContext.d.ts +7 -0
- package/hooks/usePickerRangePositionContext.js +15 -0
- package/index.d.ts +2 -0
- package/index.js +4 -2
- package/internals/hooks/models/useRangePicker.d.ts +4 -4
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +35 -53
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +7 -9
- package/internals/hooks/useEnrichedRangePickerFieldProps.d.ts +6 -6
- package/internals/hooks/useEnrichedRangePickerFieldProps.js +11 -8
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +24 -40
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +7 -9
- package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +10 -12
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +1 -1
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +11 -6
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +2 -2
- package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +12 -7
- package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +2 -2
- package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +13 -8
- package/internals/hooks/useNullablePickerRangePositionContext.d.ts +5 -0
- package/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
- package/internals/hooks/useRangePosition.d.ts +1 -1
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +14 -24
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +6 -6
- package/internals/utils/date-range-manager.js +2 -1
- package/internals/utils/releaseInfo.js +1 -1
- package/internals/utils/valueManagers.js +7 -7
- package/managers/index.d.ts +6 -0
- package/managers/index.js +3 -0
- package/managers/package.json +6 -0
- package/managers/useDateRangeManager.d.ts +15 -0
- package/managers/useDateRangeManager.js +31 -0
- package/managers/useDateTimeRangeManager.d.ts +15 -0
- package/managers/useDateTimeRangeManager.js +31 -0
- package/managers/useTimeRangeManager.d.ts +15 -0
- package/managers/useTimeRangeManager.js +29 -0
- package/models/range.d.ts +0 -1
- package/modern/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
- package/modern/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
- package/modern/DateRangeCalendar/DateRangeCalendar.js +9 -7
- package/modern/DateRangePicker/DateRangePicker.js +1 -1
- package/modern/DateRangePicker/DateRangePickerToolbar.js +25 -31
- package/modern/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
- package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +25 -24
- package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +7 -5
- package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +66 -69
- package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -3
- package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +17 -14
- package/modern/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -8
- package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +13 -14
- package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +13 -14
- package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +13 -14
- package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
- package/modern/hooks/index.js +1 -0
- package/modern/hooks/usePickerRangePositionContext.js +15 -0
- package/modern/index.js +4 -2
- package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +35 -53
- package/modern/internals/hooks/useEnrichedRangePickerFieldProps.js +11 -8
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +24 -40
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +11 -6
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +12 -7
- package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +13 -8
- package/modern/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
- package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +14 -24
- package/modern/internals/utils/date-range-manager.js +2 -1
- package/modern/internals/utils/releaseInfo.js +1 -1
- package/modern/internals/utils/valueManagers.js +7 -7
- package/modern/managers/index.js +3 -0
- package/modern/managers/useDateRangeManager.js +31 -0
- package/modern/managers/useDateTimeRangeManager.js +31 -0
- package/modern/managers/useTimeRangeManager.js +29 -0
- package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
- package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
- package/node/DateRangeCalendar/DateRangeCalendar.js +9 -7
- package/node/DateRangePicker/DateRangePicker.js +1 -1
- package/node/DateRangePicker/DateRangePickerToolbar.js +24 -30
- package/node/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
- package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +24 -23
- package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +7 -5
- package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +65 -68
- package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -3
- package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +17 -14
- package/node/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -8
- package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +12 -14
- package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +12 -14
- package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +12 -14
- package/node/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
- package/node/hooks/index.js +12 -0
- package/node/hooks/usePickerRangePositionContext.js +22 -0
- package/node/index.js +23 -1
- package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +35 -53
- package/node/internals/hooks/useEnrichedRangePickerFieldProps.js +11 -8
- package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +24 -40
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +10 -5
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +11 -6
- package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +12 -7
- package/node/internals/hooks/useNullablePickerRangePositionContext.js +16 -0
- package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +14 -24
- package/node/internals/utils/date-range-manager.js +2 -1
- package/node/internals/utils/releaseInfo.js +1 -1
- package/node/internals/utils/valueManagers.js +7 -7
- package/node/managers/index.js +26 -0
- package/node/managers/useDateRangeManager.js +38 -0
- package/node/managers/useDateTimeRangeManager.js +38 -0
- package/node/managers/useTimeRangeManager.js +36 -0
- package/package.json +5 -5
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
import { DefaultizedProps } from '@mui/x-internals/types';
|
|
3
2
|
import { PickerSelectionState, PickerViewRenderer, TimeViewWithMeridiem, BaseClockProps, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
view:
|
|
7
|
-
|
|
8
|
-
views: readonly TView[];
|
|
3
|
+
export type DateTimeRangePickerTimeWrapperProps<TComponentProps extends DefaultizedProps<Omit<BaseClockProps<TimeViewWithMeridiem>, 'value' | 'defaultValue' | 'onChange'>, 'views'>> = Omit<TComponentProps, 'views' | 'view' | 'onViewChange' | 'value' | 'defaultValue' | 'onChange'> & {
|
|
4
|
+
view: TimeViewWithMeridiem;
|
|
5
|
+
onViewChange?: (view: TimeViewWithMeridiem) => void;
|
|
6
|
+
views: readonly TimeViewWithMeridiem[];
|
|
9
7
|
value?: PickerRangeValue;
|
|
10
8
|
defaultValue?: PickerRangeValue;
|
|
11
|
-
onChange?: (value: PickerRangeValue, selectionState: PickerSelectionState, selectedView:
|
|
12
|
-
viewRenderer?: PickerViewRenderer<PickerRangeValue,
|
|
13
|
-
openTo?:
|
|
9
|
+
onChange?: (value: PickerRangeValue, selectionState: PickerSelectionState, selectedView: TimeViewWithMeridiem) => void;
|
|
10
|
+
viewRenderer?: PickerViewRenderer<PickerRangeValue, TComponentProps> | null;
|
|
11
|
+
openTo?: TimeViewWithMeridiem;
|
|
14
12
|
};
|
|
15
13
|
/**
|
|
16
14
|
* @ignore - internal component.
|
|
17
15
|
*/
|
|
18
|
-
declare function DateTimeRangePickerTimeWrapper<
|
|
16
|
+
declare function DateTimeRangePickerTimeWrapper<TComponentProps extends DefaultizedProps<Omit<BaseClockProps<TimeViewWithMeridiem>, 'value' | 'defaultValue' | 'onChange'>, 'views'>>(props: DateTimeRangePickerTimeWrapperProps<TComponentProps>): import("react").ReactNode;
|
|
19
17
|
export { DateTimeRangePickerTimeWrapper };
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["
|
|
3
|
+
const _excluded = ["viewRenderer", "value", "onChange", "defaultValue", "onViewChange", "views", "className"];
|
|
4
4
|
import { isInternalTimeView, useUtils } from '@mui/x-date-pickers/internals';
|
|
5
5
|
import { isRangeValid } from "../internals/utils/date-utils.js";
|
|
6
6
|
import { calculateRangeChange } from "../internals/utils/date-range-manager.js";
|
|
7
|
+
import { usePickerRangePositionContext } from "../hooks/index.js";
|
|
7
8
|
/**
|
|
8
9
|
* @ignore - internal component.
|
|
9
10
|
*/
|
|
10
|
-
function DateTimeRangePickerTimeWrapper(props
|
|
11
|
+
function DateTimeRangePickerTimeWrapper(props) {
|
|
11
12
|
const utils = useUtils();
|
|
12
13
|
const {
|
|
13
|
-
rangePosition,
|
|
14
|
-
onRangePositionChange,
|
|
15
14
|
viewRenderer,
|
|
16
15
|
value,
|
|
17
16
|
onChange,
|
|
@@ -20,6 +19,10 @@ function DateTimeRangePickerTimeWrapper(props, ref) {
|
|
|
20
19
|
views
|
|
21
20
|
} = props,
|
|
22
21
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
22
|
+
const {
|
|
23
|
+
rangePosition,
|
|
24
|
+
onRangePositionChange
|
|
25
|
+
} = usePickerRangePositionContext();
|
|
23
26
|
if (!viewRenderer) {
|
|
24
27
|
return null;
|
|
25
28
|
}
|
|
@@ -47,7 +50,6 @@ function DateTimeRangePickerTimeWrapper(props, ref) {
|
|
|
47
50
|
onChange(newRange, isFullRangeSelected ? 'finish' : 'partial', selectedView);
|
|
48
51
|
};
|
|
49
52
|
return viewRenderer(_extends({}, other, {
|
|
50
|
-
ref,
|
|
51
53
|
views,
|
|
52
54
|
onViewChange,
|
|
53
55
|
value: currentValue,
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { BaseToolbarProps, ExportedBaseToolbarProps
|
|
3
|
-
import { UseRangePositionResponse } from '../internals/hooks/useRangePosition';
|
|
2
|
+
import { BaseToolbarProps, ExportedBaseToolbarProps } from '@mui/x-date-pickers/internals';
|
|
4
3
|
import { DateTimeRangePickerToolbarClasses } from './dateTimeRangePickerToolbarClasses';
|
|
5
|
-
|
|
6
|
-
export interface DateTimeRangePickerToolbarProps extends BaseToolbarProps<PickerRangeValue, DateTimeRangeViews>, Pick<UseRangePositionResponse, 'rangePosition' | 'onRangePositionChange'>, ExportedDateTimeRangePickerToolbarProps {
|
|
4
|
+
export interface DateTimeRangePickerToolbarProps extends BaseToolbarProps, ExportedDateTimeRangePickerToolbarProps {
|
|
7
5
|
ampm?: boolean;
|
|
8
6
|
}
|
|
9
7
|
export interface ExportedDateTimeRangePickerToolbarProps extends ExportedBaseToolbarProps {
|
|
@@ -2,17 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["
|
|
5
|
+
const _excluded = ["className", "classes", "classes", "ampm", "hidden", "toolbarFormat", "toolbarPlaceholder", "titleId", "sx"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import clsx from 'clsx';
|
|
9
9
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
10
10
|
import composeClasses from '@mui/utils/composeClasses';
|
|
11
|
-
import { useUtils, useToolbarOwnerState,
|
|
11
|
+
import { useUtils, useToolbarOwnerState, DateTimePickerToolbarOverrideContext } from '@mui/x-date-pickers/internals';
|
|
12
12
|
import { usePickerContext, usePickerTranslations } from '@mui/x-date-pickers/hooks';
|
|
13
13
|
import { DateTimePickerToolbar } from '@mui/x-date-pickers/DateTimePicker';
|
|
14
14
|
import { getDateTimeRangePickerToolbarUtilityClass } from "./dateTimeRangePickerToolbarClasses.js";
|
|
15
15
|
import { calculateRangeChange } from "../internals/utils/date-range-manager.js";
|
|
16
|
+
import { usePickerRangePositionContext } from "../hooks/index.js";
|
|
16
17
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
18
|
const useUtilityClasses = classes => {
|
|
18
19
|
const slots = {
|
|
@@ -50,16 +51,8 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
|
|
|
50
51
|
});
|
|
51
52
|
const utils = useUtils();
|
|
52
53
|
const {
|
|
53
|
-
value: [start, end],
|
|
54
|
-
rangePosition,
|
|
55
|
-
onRangePositionChange,
|
|
56
54
|
className,
|
|
57
55
|
classes: classesProp,
|
|
58
|
-
onViewChange,
|
|
59
|
-
onChange,
|
|
60
|
-
view,
|
|
61
|
-
isLandscape,
|
|
62
|
-
views,
|
|
63
56
|
ampm,
|
|
64
57
|
hidden,
|
|
65
58
|
toolbarFormat,
|
|
@@ -69,14 +62,22 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
|
|
|
69
62
|
} = props,
|
|
70
63
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
71
64
|
const {
|
|
65
|
+
value,
|
|
66
|
+
setValue,
|
|
72
67
|
disabled,
|
|
73
|
-
readOnly
|
|
68
|
+
readOnly,
|
|
69
|
+
view,
|
|
70
|
+
setView,
|
|
71
|
+
views
|
|
74
72
|
} = usePickerContext();
|
|
75
73
|
const translations = usePickerTranslations();
|
|
76
74
|
const ownerState = useToolbarOwnerState();
|
|
75
|
+
const {
|
|
76
|
+
rangePosition,
|
|
77
|
+
onRangePositionChange
|
|
78
|
+
} = usePickerRangePositionContext();
|
|
77
79
|
const classes = useUtilityClasses(classesProp);
|
|
78
80
|
const commonToolbarProps = {
|
|
79
|
-
isLandscape,
|
|
80
81
|
views,
|
|
81
82
|
ampm,
|
|
82
83
|
disabled,
|
|
@@ -85,69 +86,84 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
|
|
|
85
86
|
toolbarFormat,
|
|
86
87
|
toolbarPlaceholder
|
|
87
88
|
};
|
|
88
|
-
const
|
|
89
|
-
if (newView === 'year' || newView === 'month') {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
if (rangePosition !== 'start') {
|
|
93
|
-
onRangePositionChange('start');
|
|
94
|
-
}
|
|
95
|
-
onViewChange(newView);
|
|
96
|
-
}, [onRangePositionChange, onViewChange, rangePosition]);
|
|
97
|
-
const handleEndRangeViewChange = React.useCallback(newView => {
|
|
98
|
-
if (newView === 'year' || newView === 'month') {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
if (rangePosition !== 'end') {
|
|
102
|
-
onRangePositionChange('end');
|
|
103
|
-
}
|
|
104
|
-
onViewChange(newView);
|
|
105
|
-
}, [onRangePositionChange, onViewChange, rangePosition]);
|
|
106
|
-
const handleOnChange = React.useCallback(newDate => {
|
|
89
|
+
const wrappedSetValue = React.useCallback(newDate => {
|
|
107
90
|
const {
|
|
108
91
|
nextSelection,
|
|
109
92
|
newRange
|
|
110
93
|
} = calculateRangeChange({
|
|
111
94
|
newDate,
|
|
112
95
|
utils,
|
|
113
|
-
range:
|
|
96
|
+
range: value,
|
|
114
97
|
rangePosition,
|
|
115
98
|
allowRangeFlip: true
|
|
116
99
|
});
|
|
117
100
|
onRangePositionChange(nextSelection);
|
|
118
|
-
|
|
119
|
-
|
|
101
|
+
setValue(newRange, {
|
|
102
|
+
changeImportance: 'set'
|
|
103
|
+
});
|
|
104
|
+
}, [setValue, onRangePositionChange, value, rangePosition, utils]);
|
|
105
|
+
const startOverrides = React.useMemo(() => {
|
|
106
|
+
const handleStartRangeViewChange = newView => {
|
|
107
|
+
if (newView === 'year' || newView === 'month') {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (rangePosition !== 'start') {
|
|
111
|
+
onRangePositionChange('start');
|
|
112
|
+
}
|
|
113
|
+
setView(newView);
|
|
114
|
+
};
|
|
115
|
+
return {
|
|
116
|
+
value: value[0],
|
|
117
|
+
setValue: wrappedSetValue,
|
|
118
|
+
forceDesktopVariant: true,
|
|
119
|
+
setView: handleStartRangeViewChange,
|
|
120
|
+
view: rangePosition === 'start' ? view : null
|
|
121
|
+
};
|
|
122
|
+
}, [value, wrappedSetValue, rangePosition, view, onRangePositionChange, setView]);
|
|
123
|
+
const endOverrides = React.useMemo(() => {
|
|
124
|
+
const handleEndRangeViewChange = newView => {
|
|
125
|
+
if (newView === 'year' || newView === 'month') {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (rangePosition !== 'end') {
|
|
129
|
+
onRangePositionChange('end');
|
|
130
|
+
}
|
|
131
|
+
setView(newView);
|
|
132
|
+
};
|
|
133
|
+
return {
|
|
134
|
+
value: value[1],
|
|
135
|
+
setValue: wrappedSetValue,
|
|
136
|
+
forceDesktopVariant: true,
|
|
137
|
+
setView: handleEndRangeViewChange,
|
|
138
|
+
view: rangePosition === 'end' ? view : null
|
|
139
|
+
};
|
|
140
|
+
}, [value, wrappedSetValue, rangePosition, view, onRangePositionChange, setView]);
|
|
120
141
|
if (hidden) {
|
|
121
142
|
return null;
|
|
122
143
|
}
|
|
123
|
-
return /*#__PURE__*/
|
|
144
|
+
return /*#__PURE__*/_jsxs(DateTimeRangePickerToolbarRoot, _extends({
|
|
124
145
|
className: clsx(classes.root, className),
|
|
125
146
|
ownerState: ownerState,
|
|
126
147
|
ref: ref,
|
|
127
148
|
sx: sx
|
|
128
149
|
}, other, {
|
|
129
|
-
children: /*#__PURE__*/
|
|
130
|
-
value:
|
|
131
|
-
children:
|
|
132
|
-
value: start,
|
|
133
|
-
onViewChange: handleStartRangeViewChange,
|
|
150
|
+
children: [/*#__PURE__*/_jsx(DateTimePickerToolbarOverrideContext.Provider, {
|
|
151
|
+
value: startOverrides,
|
|
152
|
+
children: /*#__PURE__*/_jsx(DateTimeRangePickerToolbarStart, _extends({
|
|
134
153
|
toolbarTitle: translations.start,
|
|
135
154
|
ownerState: ownerState,
|
|
136
|
-
view: rangePosition === 'start' ? view : undefined,
|
|
137
155
|
className: classes.startToolbar,
|
|
138
|
-
onChange: handleOnChange,
|
|
139
156
|
titleId: titleId ? `${titleId}-start-toolbar` : undefined
|
|
140
|
-
}, commonToolbarProps))
|
|
141
|
-
|
|
142
|
-
|
|
157
|
+
}, commonToolbarProps))
|
|
158
|
+
}), /*#__PURE__*/_jsx(DateTimePickerToolbarOverrideContext.Provider, {
|
|
159
|
+
value: endOverrides,
|
|
160
|
+
children: /*#__PURE__*/_jsx(DateTimeRangePickerToolbarEnd, _extends({
|
|
143
161
|
toolbarTitle: translations.end,
|
|
144
162
|
ownerState: ownerState,
|
|
145
|
-
view: rangePosition === 'end' ? view : undefined,
|
|
146
163
|
className: classes.endToolbar,
|
|
147
|
-
onChange: handleOnChange,
|
|
148
164
|
titleId: titleId ? `${titleId}-end-toolbar` : undefined
|
|
149
|
-
}, commonToolbarProps))
|
|
150
|
-
})
|
|
165
|
+
}, commonToolbarProps))
|
|
166
|
+
})]
|
|
151
167
|
}));
|
|
152
168
|
});
|
|
153
169
|
process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
|
|
@@ -166,16 +182,6 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
|
|
|
166
182
|
* @default `true` for Desktop, `false` for Mobile.
|
|
167
183
|
*/
|
|
168
184
|
hidden: PropTypes.bool,
|
|
169
|
-
isLandscape: PropTypes.bool.isRequired,
|
|
170
|
-
onChange: PropTypes.func.isRequired,
|
|
171
|
-
onRangePositionChange: PropTypes.func.isRequired,
|
|
172
|
-
/**
|
|
173
|
-
* Callback called when a toolbar is clicked
|
|
174
|
-
* @template TView
|
|
175
|
-
* @param {TView} view The view to open
|
|
176
|
-
*/
|
|
177
|
-
onViewChange: PropTypes.func.isRequired,
|
|
178
|
-
rangePosition: PropTypes.oneOf(['end', 'start']).isRequired,
|
|
179
185
|
/**
|
|
180
186
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
181
187
|
*/
|
|
@@ -189,15 +195,6 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
|
|
|
189
195
|
* Toolbar value placeholder—it is displayed when the value is empty.
|
|
190
196
|
* @default "––"
|
|
191
197
|
*/
|
|
192
|
-
toolbarPlaceholder: PropTypes.node
|
|
193
|
-
value: PropTypes.arrayOf(PropTypes.object).isRequired,
|
|
194
|
-
/**
|
|
195
|
-
* Currently visible picker view.
|
|
196
|
-
*/
|
|
197
|
-
view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'seconds']).isRequired,
|
|
198
|
-
/**
|
|
199
|
-
* Available views.
|
|
200
|
-
*/
|
|
201
|
-
views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'seconds']).isRequired).isRequired
|
|
198
|
+
toolbarPlaceholder: PropTypes.node
|
|
202
199
|
} : void 0;
|
|
203
200
|
export { DateTimeRangePickerToolbar };
|
|
@@ -34,9 +34,9 @@ export interface BaseDateTimeRangePickerSlotProps extends DateRangeCalendarSlotP
|
|
|
34
34
|
*/
|
|
35
35
|
toolbar?: ExportedDateTimeRangePickerToolbarProps;
|
|
36
36
|
}
|
|
37
|
-
export type DateTimeRangePickerRenderers<TView extends DateOrTimeViewWithMeridiem
|
|
37
|
+
export type DateTimeRangePickerRenderers<TView extends DateOrTimeViewWithMeridiem> = PickerViewRendererLookup<PickerRangeValue, TView, Omit<DateRangeViewRendererProps<'day'>, 'view' | 'slots' | 'slotProps'> & Omit<TimeViewRendererProps<TimeViewWithMeridiem, BaseClockProps<TimeViewWithMeridiem>>, 'view' | 'slots' | 'slotProps'> & {
|
|
38
38
|
view: TView;
|
|
39
|
-
}
|
|
39
|
+
}>;
|
|
40
40
|
export interface BaseDateTimeRangePickerProps extends Omit<BasePickerInputProps<PickerRangeValue, DateTimeRangePickerView, DateTimeRangeValidationError>, 'orientation' | 'views' | 'openTo'>, ExportedDateRangeCalendarProps, ExportedValidateDateTimeRangeProps, DesktopOnlyTimePickerProps, Partial<Pick<UseViewsOptions<PickerRangeValue, DateTimeRangePickerViewExternal>, 'openTo' | 'views'>> {
|
|
41
41
|
/**
|
|
42
42
|
* Overridable component slots.
|
|
@@ -13,6 +13,8 @@ import { renderDateRangeViewCalendar } from "../dateRangeViewRenderers/index.js"
|
|
|
13
13
|
import { MultiInputDateRangeField } from "../MultiInputDateRangeField/index.js";
|
|
14
14
|
import { useDesktopRangePicker } from "../internals/hooks/useDesktopRangePicker/index.js";
|
|
15
15
|
import { validateDateRange } from "../validation/index.js";
|
|
16
|
+
const emptyActions = [];
|
|
17
|
+
|
|
16
18
|
/**
|
|
17
19
|
* Demos:
|
|
18
20
|
*
|
|
@@ -32,6 +34,7 @@ const DesktopDateRangePicker = /*#__PURE__*/React.forwardRef(function DesktopDat
|
|
|
32
34
|
day: renderDateRangeViewCalendar
|
|
33
35
|
}, defaultizedProps.viewRenderers);
|
|
34
36
|
const props = _extends({}, defaultizedProps, {
|
|
37
|
+
closeOnSelect: defaultizedProps.closeOnSelect ?? true,
|
|
35
38
|
viewRenderers,
|
|
36
39
|
format: utils.formats.keyboardDate,
|
|
37
40
|
calendars: defaultizedProps.calendars ?? 2,
|
|
@@ -46,7 +49,10 @@ const DesktopDateRangePicker = /*#__PURE__*/React.forwardRef(function DesktopDat
|
|
|
46
49
|
}),
|
|
47
50
|
toolbar: _extends({
|
|
48
51
|
hidden: true
|
|
49
|
-
}, defaultizedProps.slotProps?.toolbar)
|
|
52
|
+
}, defaultizedProps.slotProps?.toolbar),
|
|
53
|
+
actionBar: ownerState => _extends({
|
|
54
|
+
actions: emptyActions
|
|
55
|
+
}, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))
|
|
50
56
|
})
|
|
51
57
|
});
|
|
52
58
|
const {
|
|
@@ -78,8 +84,8 @@ DesktopDateRangePicker.propTypes = {
|
|
|
78
84
|
calendars: PropTypes.oneOf([1, 2, 3]),
|
|
79
85
|
className: PropTypes.string,
|
|
80
86
|
/**
|
|
81
|
-
* If `true`, the
|
|
82
|
-
* @default
|
|
87
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
88
|
+
* @default true
|
|
83
89
|
*/
|
|
84
90
|
closeOnSelect: PropTypes.bool,
|
|
85
91
|
/**
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
2
2
|
import { UseDesktopRangePickerSlots, UseDesktopRangePickerSlotProps, DesktopRangeOnlyPickerProps } from '../internals/hooks/useDesktopRangePicker';
|
|
3
3
|
import { BaseDateRangePickerProps, BaseDateRangePickerSlots, BaseDateRangePickerSlotProps } from '../DateRangePicker/shared';
|
|
4
|
-
export interface DesktopDateRangePickerSlots extends BaseDateRangePickerSlots, MakeOptional<UseDesktopRangePickerSlots
|
|
4
|
+
export interface DesktopDateRangePickerSlots extends BaseDateRangePickerSlots, MakeOptional<UseDesktopRangePickerSlots, 'field'> {
|
|
5
5
|
}
|
|
6
|
-
export interface DesktopDateRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateRangePickerSlotProps, Omit<UseDesktopRangePickerSlotProps<
|
|
6
|
+
export interface DesktopDateRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateRangePickerSlotProps, Omit<UseDesktopRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>, 'tabs' | 'toolbar'> {
|
|
7
7
|
}
|
|
8
8
|
export interface DesktopDateRangePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDateRangePickerProps, DesktopRangeOnlyPickerProps {
|
|
9
9
|
/**
|
|
@@ -21,4 +21,9 @@ export interface DesktopDateRangePickerProps<TEnableAccessibleFieldDOMStructure
|
|
|
21
21
|
* @default {}
|
|
22
22
|
*/
|
|
23
23
|
slotProps?: DesktopDateRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>;
|
|
24
|
+
/**
|
|
25
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
26
|
+
* @default true
|
|
27
|
+
*/
|
|
28
|
+
closeOnSelect?: boolean;
|
|
24
29
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["openTo"
|
|
5
|
+
const _excluded = ["openTo"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import { isDatePickerView, isInternalTimeView, resolveDateTimeFormat, useUtils } from '@mui/x-date-pickers/internals';
|
|
@@ -22,15 +22,22 @@ import { useDateTimeRangePickerDefaultizedProps } from "../DateTimeRangePicker/s
|
|
|
22
22
|
import { MultiInputDateTimeRangeField } from "../MultiInputDateTimeRangeField/index.js";
|
|
23
23
|
import { DateTimeRangePickerTimeWrapper } from "../DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js";
|
|
24
24
|
import { RANGE_VIEW_HEIGHT } from "../internals/constants/dimensions.js";
|
|
25
|
+
import { usePickerRangePositionContext } from "../hooks/index.js";
|
|
25
26
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
26
|
-
const rendererInterceptor = function
|
|
27
|
+
const rendererInterceptor = function RendererInterceptor(props) {
|
|
27
28
|
const {
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
viewRenderers,
|
|
30
|
+
popperView,
|
|
31
|
+
rendererProps
|
|
32
|
+
} = props;
|
|
33
|
+
const {
|
|
34
|
+
openTo
|
|
30
35
|
} = rendererProps,
|
|
31
36
|
otherProps = _objectWithoutPropertiesLoose(rendererProps, _excluded);
|
|
37
|
+
const {
|
|
38
|
+
rangePosition
|
|
39
|
+
} = usePickerRangePositionContext();
|
|
32
40
|
const finalProps = _extends({}, otherProps, {
|
|
33
|
-
rangePosition,
|
|
34
41
|
focusedView: null,
|
|
35
42
|
sx: [{
|
|
36
43
|
[`&.${multiSectionDigitalClockClasses.root}`]: {
|
|
@@ -43,7 +50,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
43
50
|
});
|
|
44
51
|
const isTimeViewActive = isInternalTimeView(popperView);
|
|
45
52
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
46
|
-
children: [
|
|
53
|
+
children: [viewRenderers.day?.(_extends({}, rendererProps, {
|
|
47
54
|
availableRangePositions: [rangePosition],
|
|
48
55
|
view: !isTimeViewActive ? popperView : 'day',
|
|
49
56
|
views: rendererProps.views.filter(isDatePickerView),
|
|
@@ -59,7 +66,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
59
66
|
view: isTimeViewActive ? popperView : 'hours',
|
|
60
67
|
views: finalProps.views.filter(isInternalTimeView),
|
|
61
68
|
openTo: isInternalTimeView(openTo) ? openTo : 'hours',
|
|
62
|
-
viewRenderer:
|
|
69
|
+
viewRenderer: viewRenderers[isTimeViewActive ? popperView : 'hours'],
|
|
63
70
|
sx: [{
|
|
64
71
|
gridColumn: 3
|
|
65
72
|
}, ...finalProps.sx]
|
|
@@ -92,7 +99,6 @@ const DesktopDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
|
|
|
92
99
|
// Need to avoid adding the `meridiem` view when unexpected renderer is specified
|
|
93
100
|
const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === renderMultiSectionDigitalClockTimeView.name;
|
|
94
101
|
const views = !shouldHoursRendererContainMeridiemView ? defaultizedProps.views.filter(view => view !== 'meridiem') : defaultizedProps.views;
|
|
95
|
-
const actionBarActions = defaultizedProps.shouldRenderTimeInASingleColumn ? [] : ['accept'];
|
|
96
102
|
const props = _extends({}, defaultizedProps, {
|
|
97
103
|
views,
|
|
98
104
|
viewRenderers,
|
|
@@ -113,10 +119,7 @@ const DesktopDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
|
|
|
113
119
|
}, defaultizedProps.slotProps?.tabs),
|
|
114
120
|
toolbar: _extends({
|
|
115
121
|
hidden: true
|
|
116
|
-
}, defaultizedProps.slotProps?.toolbar)
|
|
117
|
-
actionBar: ownerState => _extends({
|
|
118
|
-
actions: actionBarActions
|
|
119
|
-
}, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))
|
|
122
|
+
}, defaultizedProps.slotProps?.toolbar)
|
|
120
123
|
})
|
|
121
124
|
});
|
|
122
125
|
const {
|
|
@@ -154,8 +157,8 @@ DesktopDateTimeRangePicker.propTypes = {
|
|
|
154
157
|
calendars: PropTypes.oneOf([1, 2, 3]),
|
|
155
158
|
className: PropTypes.string,
|
|
156
159
|
/**
|
|
157
|
-
* If `true`, the
|
|
158
|
-
* @default
|
|
160
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
161
|
+
* @default false
|
|
159
162
|
*/
|
|
160
163
|
closeOnSelect: PropTypes.bool,
|
|
161
164
|
/**
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
2
2
|
import { UseDesktopRangePickerSlots, UseDesktopRangePickerSlotProps, DesktopRangeOnlyPickerProps } from '../internals/hooks/useDesktopRangePicker';
|
|
3
3
|
import { BaseDateTimeRangePickerProps, BaseDateTimeRangePickerSlots, BaseDateTimeRangePickerSlotProps } from '../DateTimeRangePicker/shared';
|
|
4
|
-
|
|
5
|
-
export interface DesktopDateTimeRangePickerSlots extends BaseDateTimeRangePickerSlots, MakeOptional<UseDesktopRangePickerSlots<DateTimeRangePickerView>, 'field'> {
|
|
4
|
+
export interface DesktopDateTimeRangePickerSlots extends BaseDateTimeRangePickerSlots, MakeOptional<UseDesktopRangePickerSlots, 'field'> {
|
|
6
5
|
}
|
|
7
|
-
export interface DesktopDateTimeRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimeRangePickerSlotProps, Omit<UseDesktopRangePickerSlotProps<
|
|
6
|
+
export interface DesktopDateTimeRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimeRangePickerSlotProps, Omit<UseDesktopRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>, 'tabs' | 'toolbar'> {
|
|
8
7
|
}
|
|
9
8
|
export interface DesktopDateTimeRangePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDateTimeRangePickerProps, DesktopRangeOnlyPickerProps {
|
|
10
9
|
/**
|
|
@@ -74,8 +74,8 @@ MobileDateRangePicker.propTypes = {
|
|
|
74
74
|
autoFocus: PropTypes.bool,
|
|
75
75
|
className: PropTypes.string,
|
|
76
76
|
/**
|
|
77
|
-
* If `true`, the
|
|
78
|
-
* @default
|
|
77
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
78
|
+
* @default false
|
|
79
79
|
*/
|
|
80
80
|
closeOnSelect: PropTypes.bool,
|
|
81
81
|
/**
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
2
2
|
import { UseMobileRangePickerSlots, UseMobileRangePickerSlotProps, MobileRangeOnlyPickerProps } from '../internals/hooks/useMobileRangePicker';
|
|
3
3
|
import { BaseDateRangePickerProps, BaseDateRangePickerSlots, BaseDateRangePickerSlotProps } from '../DateRangePicker/shared';
|
|
4
|
-
export interface MobileDateRangePickerSlots extends BaseDateRangePickerSlots, MakeOptional<UseMobileRangePickerSlots
|
|
4
|
+
export interface MobileDateRangePickerSlots extends BaseDateRangePickerSlots, MakeOptional<UseMobileRangePickerSlots, 'field'> {
|
|
5
5
|
}
|
|
6
|
-
export interface MobileDateRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateRangePickerSlotProps, Omit<UseMobileRangePickerSlotProps<
|
|
6
|
+
export interface MobileDateRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateRangePickerSlotProps, Omit<UseMobileRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>, 'tabs' | 'toolbar'> {
|
|
7
7
|
}
|
|
8
8
|
export interface MobileDateRangePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDateRangePickerProps, MobileRangeOnlyPickerProps {
|
|
9
9
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["view", "openTo"
|
|
5
|
+
const _excluded = ["view", "openTo"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import { refType } from '@mui/utils';
|
|
@@ -20,16 +20,23 @@ import { useDateTimeRangePickerDefaultizedProps } from "../DateTimeRangePicker/s
|
|
|
20
20
|
import { MultiInputDateTimeRangeField } from "../MultiInputDateTimeRangeField/index.js";
|
|
21
21
|
import { DateTimeRangePickerTimeWrapper } from "../DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js";
|
|
22
22
|
import { RANGE_VIEW_HEIGHT } from "../internals/constants/dimensions.js";
|
|
23
|
+
import { usePickerRangePositionContext } from "../hooks/index.js";
|
|
23
24
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
|
-
const rendererInterceptor = function
|
|
25
|
+
const rendererInterceptor = function RendererInterceptor(props) {
|
|
26
|
+
const {
|
|
27
|
+
viewRenderers,
|
|
28
|
+
popperView,
|
|
29
|
+
rendererProps
|
|
30
|
+
} = props;
|
|
31
|
+
const {
|
|
32
|
+
rangePosition
|
|
33
|
+
} = usePickerRangePositionContext();
|
|
25
34
|
const {
|
|
26
35
|
view,
|
|
27
|
-
openTo
|
|
28
|
-
rangePosition
|
|
36
|
+
openTo
|
|
29
37
|
} = rendererProps,
|
|
30
38
|
otherRendererProps = _objectWithoutPropertiesLoose(rendererProps, _excluded);
|
|
31
39
|
const finalProps = _extends({}, otherRendererProps, {
|
|
32
|
-
rangePosition,
|
|
33
40
|
focusedView: null,
|
|
34
41
|
sx: [{
|
|
35
42
|
width: DIALOG_WIDTH,
|
|
@@ -53,7 +60,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
53
60
|
}]
|
|
54
61
|
});
|
|
55
62
|
const isTimeView = isInternalTimeView(popperView);
|
|
56
|
-
const viewRenderer =
|
|
63
|
+
const viewRenderer = viewRenderers[popperView];
|
|
57
64
|
if (!viewRenderer) {
|
|
58
65
|
return null;
|
|
59
66
|
}
|
|
@@ -148,8 +155,8 @@ MobileDateTimeRangePicker.propTypes = {
|
|
|
148
155
|
autoFocus: PropTypes.bool,
|
|
149
156
|
className: PropTypes.string,
|
|
150
157
|
/**
|
|
151
|
-
* If `true`, the
|
|
152
|
-
* @default
|
|
158
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
159
|
+
* @default false
|
|
153
160
|
*/
|
|
154
161
|
closeOnSelect: PropTypes.bool,
|
|
155
162
|
/**
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
2
2
|
import { UseMobileRangePickerSlots, UseMobileRangePickerSlotProps, MobileRangeOnlyPickerProps } from '../internals/hooks/useMobileRangePicker';
|
|
3
3
|
import { BaseDateTimeRangePickerProps, BaseDateTimeRangePickerSlots, BaseDateTimeRangePickerSlotProps } from '../DateTimeRangePicker/shared';
|
|
4
|
-
|
|
5
|
-
export interface MobileDateTimeRangePickerSlots extends BaseDateTimeRangePickerSlots, MakeOptional<UseMobileRangePickerSlots<DateTimeRangePickerView>, 'field'> {
|
|
4
|
+
export interface MobileDateTimeRangePickerSlots extends BaseDateTimeRangePickerSlots, MakeOptional<UseMobileRangePickerSlots, 'field'> {
|
|
6
5
|
}
|
|
7
|
-
export interface MobileDateTimeRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimeRangePickerSlotProps, Omit<UseMobileRangePickerSlotProps<
|
|
6
|
+
export interface MobileDateTimeRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimeRangePickerSlotProps, Omit<UseMobileRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>, 'tabs' | 'toolbar'> {
|
|
8
7
|
}
|
|
9
8
|
export interface MobileDateTimeRangePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDateTimeRangePickerProps, MobileRangeOnlyPickerProps {
|
|
10
9
|
/**
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { UseSingleInputDateRangeFieldProps } from './SingleInputDateRangeField.types';
|
|
2
|
-
export declare const useSingleInputDateRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(
|
|
2
|
+
export declare const useSingleInputDateRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "onChange" | "onError" | "format" | "referenceDate" | "timezone" | "formatDensity" | "enableAccessibleFieldDOMStructure" | "selectedSections" | "onSelectedSectionsChange" | "shouldRespectLeadingZeros" | "unstableFieldRef" | keyof import("@mui/x-date-pickers/internals").BaseDateValidationProps | "shouldDisableDate" | "shouldDisableMonth" | "shouldDisableYear" | "dateSeparator">>;
|
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import { useField, useDefaultizedDateField } from '@mui/x-date-pickers/internals';
|
|
3
|
+
import { useField, useFieldInternalPropsWithDefaults } from '@mui/x-date-pickers/internals';
|
|
5
4
|
import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const props = useDefaultizedDateField(inProps);
|
|
5
|
+
import { useDateRangeManager } from "../managers/index.js";
|
|
6
|
+
export const useSingleInputDateRangeField = props => {
|
|
7
|
+
const manager = useDateRangeManager(props);
|
|
10
8
|
const {
|
|
11
9
|
forwardedProps,
|
|
12
10
|
internalProps
|
|
13
11
|
} = useSplitFieldProps(props, 'date');
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
|
|
13
|
+
manager,
|
|
14
|
+
internalProps
|
|
15
|
+
});
|
|
17
16
|
return useField({
|
|
18
17
|
forwardedProps,
|
|
19
|
-
internalProps,
|
|
20
|
-
valueManager:
|
|
21
|
-
fieldValueManager,
|
|
22
|
-
validator:
|
|
23
|
-
valueType:
|
|
18
|
+
internalProps: internalPropsWithDefaults,
|
|
19
|
+
valueManager: manager.internal_valueManager,
|
|
20
|
+
fieldValueManager: manager.internal_fieldValueManager,
|
|
21
|
+
validator: manager.validator,
|
|
22
|
+
valueType: manager.valueType
|
|
24
23
|
});
|
|
25
24
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { UseSingleInputDateTimeRangeFieldProps } from './SingleInputDateTimeRangeField.types';
|
|
2
|
-
export declare const useSingleInputDateTimeRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(
|
|
2
|
+
export declare const useSingleInputDateTimeRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "onChange" | "onError" | "format" | "referenceDate" | "timezone" | "formatDensity" | "enableAccessibleFieldDOMStructure" | "selectedSections" | "onSelectedSectionsChange" | "shouldRespectLeadingZeros" | "unstableFieldRef" | "ampm" | "disableFuture" | "maxDate" | "disablePast" | "minDate" | "minTime" | "maxTime" | "minutesStep" | "shouldDisableTime" | "disableIgnoringDatePartForTimeValidation" | "shouldDisableDate" | "shouldDisableMonth" | "shouldDisableYear" | "minDateTime" | "maxDateTime" | "dateSeparator">>;
|