@mui/x-date-pickers-pro 7.0.0-beta.7 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +195 -12
- package/DateRangeCalendar/DateRangeCalendar.js +17 -22
- package/DateRangeCalendar/useDragRange.js +1 -2
- package/DateRangePicker/DateRangePicker.js +1 -1
- package/DateRangePicker/shared.js +3 -5
- package/DateTimeRangePicker/DateTimeRangePicker.d.ts +10 -0
- package/DateTimeRangePicker/DateTimeRangePicker.js +11 -1
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.d.ts +4 -5
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +2 -3
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +2 -2
- package/DateTimeRangePicker/shared.d.ts +5 -4
- package/DateTimeRangePicker/shared.js +9 -10
- package/DesktopDateRangePicker/DesktopDateRangePicker.js +6 -10
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.d.ts +10 -0
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +31 -28
- package/MobileDateRangePicker/MobileDateRangePicker.js +5 -9
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.d.ts +10 -0
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -14
- package/MultiInputDateRangeField/MultiInputDateRangeField.js +17 -15
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +17 -15
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +16 -14
- package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +1 -1
- package/README.md +1 -1
- package/SingleInputDateRangeField/SingleInputDateRangeField.js +8 -4
- package/SingleInputDateRangeField/useSingleInputDateRangeField.js +6 -2
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +8 -4
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +6 -2
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +7 -3
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +6 -2
- package/StaticDateRangePicker/StaticDateRangePicker.js +4 -5
- package/index.js +1 -1
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +9 -11
- package/internals/hooks/useEnrichedRangePickerFieldProps.js +25 -31
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +9 -10
- package/internals/hooks/useMultiInputFieldSelectedSections.js +3 -6
- package/internals/hooks/useRangePosition.js +3 -5
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +14 -18
- package/internals/models/dateRange.d.ts +3 -3
- package/internals/models/dateTimeRange.d.ts +2 -2
- package/internals/models/timeRange.d.ts +2 -2
- package/internals/utils/releaseInfo.js +1 -1
- package/internals/utils/validation/validateDateRange.js +2 -2
- package/internals/utils/validation/validateDateTimeRange.js +2 -2
- package/internals/utils/valueManagers.d.ts +3 -1
- package/internals/utils/valueManagers.js +9 -7
- package/models/fields.d.ts +8 -1
- package/modern/DateRangeCalendar/DateRangeCalendar.js +1 -1
- package/modern/DateRangePicker/DateRangePicker.js +1 -1
- package/modern/DateTimeRangePicker/DateTimeRangePicker.js +11 -1
- package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +1 -1
- package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -9
- package/modern/MobileDateRangePicker/MobileDateRangePicker.js +1 -1
- package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -5
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +10 -4
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +10 -4
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +9 -3
- package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +6 -1
- package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +6 -2
- package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +6 -1
- package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +6 -2
- package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +5 -0
- package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +6 -2
- package/modern/StaticDateRangePicker/StaticDateRangePicker.js +1 -1
- package/modern/index.js +1 -1
- package/modern/internals/utils/releaseInfo.js +1 -1
- package/modern/internals/utils/valueManagers.js +7 -5
- package/node/DateRangeCalendar/DateRangeCalendar.js +1 -1
- package/node/DateRangePicker/DateRangePicker.js +1 -1
- package/node/DateTimeRangePicker/DateTimeRangePicker.js +11 -1
- package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +1 -1
- package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -9
- package/node/MobileDateRangePicker/MobileDateRangePicker.js +1 -1
- package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -5
- package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +10 -4
- package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +10 -4
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +9 -3
- package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +6 -1
- package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +7 -1
- package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +6 -1
- package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +7 -1
- package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +5 -0
- package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +7 -1
- package/node/StaticDateRangePicker/StaticDateRangePicker.js +1 -1
- package/node/index.js +1 -1
- package/node/internals/utils/releaseInfo.js +1 -1
- package/node/internals/utils/valueManagers.js +9 -6
- package/package.json +7 -7
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePickerLayout.d.ts +0 -9
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePickerLayout.js +0 -52
- package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePickerLayout.js +0 -51
- package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePickerLayout.js +0 -59
|
@@ -21,7 +21,6 @@ import { validateDateRange } from '../internals/utils/validation/validateDateRan
|
|
|
21
21
|
* - [DesktopDateRangePicker API](https://mui.com/x/api/date-pickers/desktop-date-range-picker/)
|
|
22
22
|
*/
|
|
23
23
|
const DesktopDateRangePicker = /*#__PURE__*/React.forwardRef(function DesktopDateRangePicker(inProps, ref) {
|
|
24
|
-
var _defaultizedProps$cal, _defaultizedProps$slo2;
|
|
25
24
|
// Props with the default values common to all date time pickers
|
|
26
25
|
const defaultizedProps = useDateRangePickerDefaultizedProps(inProps, 'MuiDesktopDateRangePicker');
|
|
27
26
|
const viewRenderers = _extends({
|
|
@@ -29,22 +28,19 @@ const DesktopDateRangePicker = /*#__PURE__*/React.forwardRef(function DesktopDat
|
|
|
29
28
|
}, defaultizedProps.viewRenderers);
|
|
30
29
|
const props = _extends({}, defaultizedProps, {
|
|
31
30
|
viewRenderers,
|
|
32
|
-
calendars:
|
|
31
|
+
calendars: defaultizedProps.calendars ?? 2,
|
|
33
32
|
views: ['day'],
|
|
34
33
|
openTo: 'day',
|
|
35
34
|
slots: _extends({
|
|
36
35
|
field: MultiInputDateRangeField
|
|
37
36
|
}, defaultizedProps.slots),
|
|
38
37
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
39
|
-
field: ownerState => {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
ref
|
|
43
|
-
});
|
|
44
|
-
},
|
|
38
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {
|
|
39
|
+
ref
|
|
40
|
+
}),
|
|
45
41
|
toolbar: _extends({
|
|
46
42
|
hidden: true
|
|
47
|
-
},
|
|
43
|
+
}, defaultizedProps.slotProps?.toolbar)
|
|
48
44
|
})
|
|
49
45
|
});
|
|
50
46
|
const {
|
|
@@ -286,7 +282,7 @@ DesktopDateRangePicker.propTypes = {
|
|
|
286
282
|
/**
|
|
287
283
|
* Disable specific date.
|
|
288
284
|
*
|
|
289
|
-
* Warning: This function can be called multiple times (
|
|
285
|
+
* 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.
|
|
290
286
|
*
|
|
291
287
|
* @template TDate
|
|
292
288
|
* @param {TDate} day The date to test.
|
|
@@ -4,5 +4,15 @@ import { DesktopDateTimeRangePickerProps } from './DesktopDateTimeRangePicker.ty
|
|
|
4
4
|
type DesktopDateRangePickerComponent = (<TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean = false>(props: DesktopDateTimeRangePickerProps<TDate, TEnableAccessibleFieldDOMStructure> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
|
|
5
5
|
propTypes?: any;
|
|
6
6
|
};
|
|
7
|
+
/**
|
|
8
|
+
* Demos:
|
|
9
|
+
*
|
|
10
|
+
* - [DateTimeRangePicker](https://mui.com/x/react-date-pickers/date-time-range-picker/)
|
|
11
|
+
* - [Validation](https://mui.com/x/react-date-pickers/validation/)
|
|
12
|
+
*
|
|
13
|
+
* API:
|
|
14
|
+
*
|
|
15
|
+
* - [DesktopDateTimeRangePicker API](https://mui.com/x/api/date-pickers/desktop-date-time-range-picker/)
|
|
16
|
+
*/
|
|
7
17
|
declare const DesktopDateTimeRangePicker: DesktopDateRangePickerComponent;
|
|
8
18
|
export { DesktopDateTimeRangePicker };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["openTo", "rangePosition"
|
|
3
|
+
const _excluded = ["openTo", "rangePosition"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { extractValidationProps, isDatePickerView, isInternalTimeView } from '@mui/x-date-pickers/internals';
|
|
@@ -10,6 +10,7 @@ import { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView } fr
|
|
|
10
10
|
import { multiSectionDigitalClockClasses, multiSectionDigitalClockSectionClasses } from '@mui/x-date-pickers/MultiSectionDigitalClock';
|
|
11
11
|
import Divider from '@mui/material/Divider';
|
|
12
12
|
import { digitalClockClasses } from '@mui/x-date-pickers/DigitalClock';
|
|
13
|
+
import { DesktopDateTimePickerLayout } from '@mui/x-date-pickers/DesktopDateTimePicker';
|
|
13
14
|
import { rangeValueManager } from '../internals/utils/valueManagers';
|
|
14
15
|
import { renderDateRangeViewCalendar } from '../dateRangeViewRenderers';
|
|
15
16
|
import { useDesktopRangePicker } from '../internals/hooks/useDesktopRangePicker';
|
|
@@ -18,31 +19,29 @@ import { useDateTimeRangePickerDefaultizedProps } from '../DateTimeRangePicker/s
|
|
|
18
19
|
import { MultiInputDateTimeRangeField } from '../MultiInputDateTimeRangeField';
|
|
19
20
|
import { DateTimeRangePickerTimeWrapper } from '../DateTimeRangePicker/DateTimeRangePickerTimeWrapper';
|
|
20
21
|
import { RANGE_VIEW_HEIGHT } from '../internals/constants/dimensions';
|
|
21
|
-
import { DesktopDateTimeRangePickerLayout } from './DesktopDateTimeRangePickerLayout';
|
|
22
22
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
23
23
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
24
|
const rendererInterceptor = function rendererInterceptor(inViewRenderers, popperView, rendererProps) {
|
|
25
|
-
var _inViewRenderers$day;
|
|
26
25
|
const {
|
|
27
26
|
openTo,
|
|
28
|
-
rangePosition
|
|
29
|
-
sx
|
|
27
|
+
rangePosition
|
|
30
28
|
} = rendererProps,
|
|
31
29
|
otherProps = _objectWithoutPropertiesLoose(rendererProps, _excluded);
|
|
32
30
|
const finalProps = _extends({}, otherProps, {
|
|
33
31
|
rangePosition,
|
|
34
32
|
focusedView: null,
|
|
35
33
|
sx: [{
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
[`&.${multiSectionDigitalClockClasses.root}`]: {
|
|
35
|
+
borderBottom: 0
|
|
36
|
+
},
|
|
38
37
|
[`&.${multiSectionDigitalClockClasses.root}, .${multiSectionDigitalClockSectionClasses.root}, &.${digitalClockClasses.root}`]: {
|
|
39
38
|
maxHeight: RANGE_VIEW_HEIGHT
|
|
40
39
|
}
|
|
41
|
-
}
|
|
40
|
+
}]
|
|
42
41
|
});
|
|
43
42
|
const isTimeViewActive = isInternalTimeView(popperView);
|
|
44
43
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
45
|
-
children: [
|
|
44
|
+
children: [inViewRenderers.day?.(_extends({}, rendererProps, {
|
|
46
45
|
availableRangePositions: [rangePosition],
|
|
47
46
|
view: !isTimeViewActive ? popperView : 'day',
|
|
48
47
|
views: rendererProps.views.filter(isDatePickerView)
|
|
@@ -50,13 +49,23 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
50
49
|
orientation: "vertical"
|
|
51
50
|
}), /*#__PURE__*/_jsx(DateTimeRangePickerTimeWrapper, _extends({}, finalProps, {
|
|
52
51
|
view: isTimeViewActive ? popperView : 'hours',
|
|
52
|
+
views: finalProps.views.filter(isInternalTimeView),
|
|
53
53
|
openTo: isInternalTimeView(openTo) ? openTo : 'hours',
|
|
54
54
|
viewRenderer: inViewRenderers[isTimeViewActive ? popperView : 'hours']
|
|
55
55
|
}))]
|
|
56
56
|
});
|
|
57
57
|
};
|
|
58
|
+
/**
|
|
59
|
+
* Demos:
|
|
60
|
+
*
|
|
61
|
+
* - [DateTimeRangePicker](https://mui.com/x/react-date-pickers/date-time-range-picker/)
|
|
62
|
+
* - [Validation](https://mui.com/x/react-date-pickers/validation/)
|
|
63
|
+
*
|
|
64
|
+
* API:
|
|
65
|
+
*
|
|
66
|
+
* - [DesktopDateTimeRangePicker API](https://mui.com/x/api/date-pickers/desktop-date-time-range-picker/)
|
|
67
|
+
*/
|
|
58
68
|
const DesktopDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function DesktopDateTimeRangePicker(inProps, ref) {
|
|
59
|
-
var _viewRenderers$hours, _defaultizedProps$cal, _defaultizedProps$slo2, _defaultizedProps$slo3;
|
|
60
69
|
// Props with the default values common to all date time range pickers
|
|
61
70
|
const defaultizedProps = useDateTimeRangePickerDefaultizedProps(inProps, 'MuiDesktopDateTimeRangePicker');
|
|
62
71
|
const renderTimeView = defaultizedProps.shouldRenderTimeInASingleColumn ? renderDigitalClockTimeView : renderMultiSectionDigitalClockTimeView;
|
|
@@ -69,7 +78,7 @@ const DesktopDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
|
|
|
69
78
|
}, defaultizedProps.viewRenderers);
|
|
70
79
|
|
|
71
80
|
// Need to avoid adding the `meridiem` view when unexpected renderer is specified
|
|
72
|
-
const shouldHoursRendererContainMeridiemView =
|
|
81
|
+
const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === renderMultiSectionDigitalClockTimeView.name;
|
|
73
82
|
const views = !shouldHoursRendererContainMeridiemView ? defaultizedProps.views.filter(view => view !== 'meridiem') : defaultizedProps.views;
|
|
74
83
|
const actionBarActions = defaultizedProps.shouldRenderTimeInASingleColumn ? [] : ['accept'];
|
|
75
84
|
const props = _extends({}, defaultizedProps, {
|
|
@@ -77,31 +86,25 @@ const DesktopDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
|
|
|
77
86
|
viewRenderers,
|
|
78
87
|
// force true to correctly handle `renderTimeViewClock` as a renderer
|
|
79
88
|
ampmInClock: true,
|
|
80
|
-
calendars:
|
|
89
|
+
calendars: defaultizedProps.calendars ?? 1,
|
|
81
90
|
slots: _extends({
|
|
82
91
|
field: MultiInputDateTimeRangeField,
|
|
83
|
-
layout:
|
|
92
|
+
layout: DesktopDateTimePickerLayout
|
|
84
93
|
}, defaultizedProps.slots),
|
|
85
94
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
86
|
-
field: ownerState => {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
ref
|
|
90
|
-
});
|
|
91
|
-
},
|
|
95
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {
|
|
96
|
+
ref
|
|
97
|
+
}),
|
|
92
98
|
tabs: _extends({
|
|
93
99
|
hidden: true
|
|
94
|
-
},
|
|
100
|
+
}, defaultizedProps.slotProps?.tabs),
|
|
95
101
|
toolbar: _extends({
|
|
96
102
|
hidden: true,
|
|
97
103
|
toolbarVariant: 'desktop'
|
|
98
|
-
},
|
|
99
|
-
actionBar: ownerState => {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
actions: actionBarActions
|
|
103
|
-
}, resolveComponentProps((_defaultizedProps$slo4 = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo4.actionBar, ownerState));
|
|
104
|
-
}
|
|
104
|
+
}, defaultizedProps.slotProps?.toolbar),
|
|
105
|
+
actionBar: ownerState => _extends({
|
|
106
|
+
actions: actionBarActions
|
|
107
|
+
}, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))
|
|
105
108
|
})
|
|
106
109
|
});
|
|
107
110
|
const {
|
|
@@ -389,7 +392,7 @@ DesktopDateTimeRangePicker.propTypes = {
|
|
|
389
392
|
/**
|
|
390
393
|
* Disable specific date.
|
|
391
394
|
*
|
|
392
|
-
* Warning: This function can be called multiple times (
|
|
395
|
+
* 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.
|
|
393
396
|
*
|
|
394
397
|
* @template TDate
|
|
395
398
|
* @param {TDate} day The date to test.
|
|
@@ -21,7 +21,6 @@ import { validateDateRange } from '../internals/utils/validation/validateDateRan
|
|
|
21
21
|
* - [MobileDateRangePicker API](https://mui.com/x/api/date-pickers/mobile-date-range-picker/)
|
|
22
22
|
*/
|
|
23
23
|
const MobileDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileDateRangePicker(inProps, ref) {
|
|
24
|
-
var _defaultizedProps$slo2;
|
|
25
24
|
// Props with the default values common to all date time pickers
|
|
26
25
|
const defaultizedProps = useDateRangePickerDefaultizedProps(inProps, 'MuiMobileDateRangePicker');
|
|
27
26
|
const viewRenderers = _extends({
|
|
@@ -37,15 +36,12 @@ const MobileDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileDateR
|
|
|
37
36
|
field: MultiInputDateRangeField
|
|
38
37
|
}, defaultizedProps.slots),
|
|
39
38
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
40
|
-
field: ownerState => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
ref
|
|
44
|
-
});
|
|
45
|
-
},
|
|
39
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {
|
|
40
|
+
ref
|
|
41
|
+
}),
|
|
46
42
|
toolbar: _extends({
|
|
47
43
|
hidden: false
|
|
48
|
-
},
|
|
44
|
+
}, defaultizedProps.slotProps?.toolbar)
|
|
49
45
|
})
|
|
50
46
|
});
|
|
51
47
|
const {
|
|
@@ -282,7 +278,7 @@ MobileDateRangePicker.propTypes = {
|
|
|
282
278
|
/**
|
|
283
279
|
* Disable specific date.
|
|
284
280
|
*
|
|
285
|
-
* Warning: This function can be called multiple times (
|
|
281
|
+
* 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.
|
|
286
282
|
*
|
|
287
283
|
* @template TDate
|
|
288
284
|
* @param {TDate} day The date to test.
|
|
@@ -4,5 +4,15 @@ import { MobileDateTimeRangePickerProps } from './MobileDateTimeRangePicker.type
|
|
|
4
4
|
type MobileDateRangePickerComponent = (<TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean = false>(props: MobileDateTimeRangePickerProps<TDate, TEnableAccessibleFieldDOMStructure> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
|
|
5
5
|
propTypes?: any;
|
|
6
6
|
};
|
|
7
|
+
/**
|
|
8
|
+
* Demos:
|
|
9
|
+
*
|
|
10
|
+
* - [DateTimeRangePicker](https://mui.com/x/react-date-pickers/date-time-range-picker/)
|
|
11
|
+
* - [Validation](https://mui.com/x/react-date-pickers/validation/)
|
|
12
|
+
*
|
|
13
|
+
* API:
|
|
14
|
+
*
|
|
15
|
+
* - [MobileDateTimeRangePicker API](https://mui.com/x/api/date-pickers/mobile-date-time-range-picker/)
|
|
16
|
+
*/
|
|
7
17
|
declare const MobileDateTimeRangePicker: MobileDateRangePickerComponent;
|
|
8
18
|
export { MobileDateTimeRangePicker };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["view", "openTo", "rangePosition"
|
|
3
|
+
const _excluded = ["view", "openTo", "rangePosition"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { refType } from '@mui/utils';
|
|
@@ -22,8 +22,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
22
22
|
const {
|
|
23
23
|
view,
|
|
24
24
|
openTo,
|
|
25
|
-
rangePosition
|
|
26
|
-
sx
|
|
25
|
+
rangePosition
|
|
27
26
|
} = rendererProps,
|
|
28
27
|
otherRendererProps = _objectWithoutPropertiesLoose(rendererProps, _excluded);
|
|
29
28
|
const finalProps = _extends({}, otherRendererProps, {
|
|
@@ -48,7 +47,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
48
47
|
[`&.${multiSectionDigitalClockClasses.root}, .${multiSectionDigitalClockSectionClasses.root}`]: {
|
|
49
48
|
maxHeight: RANGE_VIEW_HEIGHT - 1
|
|
50
49
|
}
|
|
51
|
-
}
|
|
50
|
+
}]
|
|
52
51
|
});
|
|
53
52
|
const isTimeView = isInternalTimeView(popperView);
|
|
54
53
|
const viewRenderer = inViewRenderers[popperView];
|
|
@@ -59,6 +58,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
59
58
|
return /*#__PURE__*/_jsx(DateTimeRangePickerTimeWrapper, _extends({}, finalProps, {
|
|
60
59
|
viewRenderer: viewRenderer,
|
|
61
60
|
view: view && isInternalTimeView(view) ? view : 'hours',
|
|
61
|
+
views: finalProps.views,
|
|
62
62
|
openTo: isInternalTimeView(openTo) ? openTo : 'hours'
|
|
63
63
|
}));
|
|
64
64
|
}
|
|
@@ -71,8 +71,17 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
|
|
|
71
71
|
openTo: isDatePickerView(openTo) ? openTo : 'day'
|
|
72
72
|
}));
|
|
73
73
|
};
|
|
74
|
+
/**
|
|
75
|
+
* Demos:
|
|
76
|
+
*
|
|
77
|
+
* - [DateTimeRangePicker](https://mui.com/x/react-date-pickers/date-time-range-picker/)
|
|
78
|
+
* - [Validation](https://mui.com/x/react-date-pickers/validation/)
|
|
79
|
+
*
|
|
80
|
+
* API:
|
|
81
|
+
*
|
|
82
|
+
* - [MobileDateTimeRangePicker API](https://mui.com/x/api/date-pickers/mobile-date-time-range-picker/)
|
|
83
|
+
*/
|
|
74
84
|
const MobileDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function MobileDateTimeRangePicker(inProps, ref) {
|
|
75
|
-
var _defaultizedProps$slo2, _defaultizedProps$slo3;
|
|
76
85
|
// Props with the default values common to all date time range pickers
|
|
77
86
|
const defaultizedProps = useDateTimeRangePickerDefaultizedProps(inProps, 'MuiMobileDateTimeRangePicker');
|
|
78
87
|
const renderTimeView = defaultizedProps.shouldRenderTimeInASingleColumn ? renderDigitalClockTimeView : renderMultiSectionDigitalClockTimeView;
|
|
@@ -93,19 +102,16 @@ const MobileDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function MobileD
|
|
|
93
102
|
field: MultiInputDateTimeRangeField
|
|
94
103
|
}, defaultizedProps.slots),
|
|
95
104
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
96
|
-
field: ownerState => {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
ref
|
|
100
|
-
});
|
|
101
|
-
},
|
|
105
|
+
field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {
|
|
106
|
+
ref
|
|
107
|
+
}),
|
|
102
108
|
tabs: _extends({
|
|
103
109
|
hidden: false
|
|
104
|
-
},
|
|
110
|
+
}, defaultizedProps.slotProps?.tabs),
|
|
105
111
|
toolbar: _extends({
|
|
106
112
|
hidden: false,
|
|
107
113
|
toolbarVariant: 'mobile'
|
|
108
|
-
},
|
|
114
|
+
}, defaultizedProps.slotProps?.toolbar)
|
|
109
115
|
})
|
|
110
116
|
});
|
|
111
117
|
const {
|
|
@@ -388,7 +394,7 @@ MobileDateTimeRangePicker.propTypes = {
|
|
|
388
394
|
/**
|
|
389
395
|
* Disable specific date.
|
|
390
396
|
*
|
|
391
|
-
* Warning: This function can be called multiple times (
|
|
397
|
+
* 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.
|
|
392
398
|
*
|
|
393
399
|
* @template TDate
|
|
394
400
|
* @param {TDate} day The date to test.
|
|
@@ -37,12 +37,7 @@ const MultiInputDateRangeFieldRoot = styled( /*#__PURE__*/React.forwardRef((prop
|
|
|
37
37
|
slot: 'Root',
|
|
38
38
|
overridesResolver: (props, styles) => styles.root
|
|
39
39
|
})({});
|
|
40
|
-
const MultiInputDateRangeFieldSeparator = styled(
|
|
41
|
-
var _props$children;
|
|
42
|
-
return /*#__PURE__*/_jsx(Typography, _extends({}, props, {
|
|
43
|
-
children: (_props$children = props.children) != null ? _props$children : ' – '
|
|
44
|
-
}));
|
|
45
|
-
}, {
|
|
40
|
+
const MultiInputDateRangeFieldSeparator = styled(Typography, {
|
|
46
41
|
name: 'MuiMultiInputDateRangeField',
|
|
47
42
|
slot: 'Separator',
|
|
48
43
|
overridesResolver: (props, styles) => styles.separator
|
|
@@ -60,7 +55,6 @@ const MultiInputDateRangeFieldSeparator = styled(props => {
|
|
|
60
55
|
* - [MultiInputDateRangeField API](https://mui.com/x/api/multi-input-date-range-field/)
|
|
61
56
|
*/
|
|
62
57
|
const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInputDateRangeField(inProps, ref) {
|
|
63
|
-
var _slots$root, _slots$textField, _slots$separator;
|
|
64
58
|
const themeProps = useThemeProps({
|
|
65
59
|
props: inProps,
|
|
66
60
|
name: 'MuiMultiInputDateRangeField'
|
|
@@ -79,10 +73,10 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
|
|
|
79
73
|
otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
|
|
80
74
|
const ownerState = themeProps;
|
|
81
75
|
const classes = useUtilityClasses(ownerState);
|
|
82
|
-
const Root =
|
|
76
|
+
const Root = slots?.root ?? MultiInputDateRangeFieldRoot;
|
|
83
77
|
const rootProps = useSlotProps({
|
|
84
78
|
elementType: Root,
|
|
85
|
-
externalSlotProps: slotProps
|
|
79
|
+
externalSlotProps: slotProps?.root,
|
|
86
80
|
externalForwardedProps: otherForwardedProps,
|
|
87
81
|
additionalProps: {
|
|
88
82
|
ref
|
|
@@ -90,25 +84,28 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
|
|
|
90
84
|
ownerState,
|
|
91
85
|
className: clsx(className, classes.root)
|
|
92
86
|
});
|
|
93
|
-
const TextField =
|
|
87
|
+
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure ? PickersTextField : MuiTextField);
|
|
94
88
|
const startTextFieldProps = useSlotProps({
|
|
95
89
|
elementType: TextField,
|
|
96
|
-
externalSlotProps: slotProps
|
|
90
|
+
externalSlotProps: slotProps?.textField,
|
|
97
91
|
ownerState: _extends({}, ownerState, {
|
|
98
92
|
position: 'start'
|
|
99
93
|
})
|
|
100
94
|
});
|
|
101
95
|
const endTextFieldProps = useSlotProps({
|
|
102
96
|
elementType: TextField,
|
|
103
|
-
externalSlotProps: slotProps
|
|
97
|
+
externalSlotProps: slotProps?.textField,
|
|
104
98
|
ownerState: _extends({}, ownerState, {
|
|
105
99
|
position: 'end'
|
|
106
100
|
})
|
|
107
101
|
});
|
|
108
|
-
const Separator =
|
|
102
|
+
const Separator = slots?.separator ?? MultiInputDateRangeFieldSeparator;
|
|
109
103
|
const separatorProps = useSlotProps({
|
|
110
104
|
elementType: Separator,
|
|
111
|
-
externalSlotProps: slotProps
|
|
105
|
+
externalSlotProps: slotProps?.separator,
|
|
106
|
+
additionalProps: {
|
|
107
|
+
children: ` ${internalProps.dateSeparator ?? '–'} `
|
|
108
|
+
},
|
|
112
109
|
ownerState,
|
|
113
110
|
className: classes.separator
|
|
114
111
|
});
|
|
@@ -144,6 +141,11 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
|
|
|
144
141
|
classes: PropTypes.object,
|
|
145
142
|
className: PropTypes.string,
|
|
146
143
|
component: PropTypes.elementType,
|
|
144
|
+
/**
|
|
145
|
+
* String displayed between the start and the end dates.
|
|
146
|
+
* @default "–"
|
|
147
|
+
*/
|
|
148
|
+
dateSeparator: PropTypes.string,
|
|
147
149
|
/**
|
|
148
150
|
* The default value. Use when the component is not controlled.
|
|
149
151
|
*/
|
|
@@ -241,7 +243,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
|
|
|
241
243
|
/**
|
|
242
244
|
* Disable specific date.
|
|
243
245
|
*
|
|
244
|
-
* Warning: This function can be called multiple times (
|
|
246
|
+
* 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.
|
|
245
247
|
*
|
|
246
248
|
* @template TDate
|
|
247
249
|
* @param {TDate} day The date to test.
|
|
@@ -37,12 +37,7 @@ const MultiInputDateTimeRangeFieldRoot = styled( /*#__PURE__*/React.forwardRef((
|
|
|
37
37
|
slot: 'Root',
|
|
38
38
|
overridesResolver: (props, styles) => styles.root
|
|
39
39
|
})({});
|
|
40
|
-
const MultiInputDateTimeRangeFieldSeparator = styled(
|
|
41
|
-
var _props$children;
|
|
42
|
-
return /*#__PURE__*/_jsx(Typography, _extends({}, props, {
|
|
43
|
-
children: (_props$children = props.children) != null ? _props$children : ' – '
|
|
44
|
-
}));
|
|
45
|
-
}, {
|
|
40
|
+
const MultiInputDateTimeRangeFieldSeparator = styled(Typography, {
|
|
46
41
|
name: 'MuiMultiInputDateTimeRangeField',
|
|
47
42
|
slot: 'Separator',
|
|
48
43
|
overridesResolver: (props, styles) => styles.separator
|
|
@@ -60,7 +55,6 @@ const MultiInputDateTimeRangeFieldSeparator = styled(props => {
|
|
|
60
55
|
* - [MultiInputDateTimeRangeField API](https://mui.com/x/api/multi-input-date-time-range-field/)
|
|
61
56
|
*/
|
|
62
57
|
const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInputDateTimeRangeField(inProps, ref) {
|
|
63
|
-
var _slots$root, _slots$textField, _slots$separator;
|
|
64
58
|
const themeProps = useThemeProps({
|
|
65
59
|
props: inProps,
|
|
66
60
|
name: 'MuiMultiInputDateTimeRangeField'
|
|
@@ -79,10 +73,10 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
|
|
|
79
73
|
otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
|
|
80
74
|
const ownerState = themeProps;
|
|
81
75
|
const classes = useUtilityClasses(ownerState);
|
|
82
|
-
const Root =
|
|
76
|
+
const Root = slots?.root ?? MultiInputDateTimeRangeFieldRoot;
|
|
83
77
|
const rootProps = useSlotProps({
|
|
84
78
|
elementType: Root,
|
|
85
|
-
externalSlotProps: slotProps
|
|
79
|
+
externalSlotProps: slotProps?.root,
|
|
86
80
|
externalForwardedProps: otherForwardedProps,
|
|
87
81
|
additionalProps: {
|
|
88
82
|
ref
|
|
@@ -90,25 +84,28 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
|
|
|
90
84
|
ownerState,
|
|
91
85
|
className: clsx(className, classes.root)
|
|
92
86
|
});
|
|
93
|
-
const TextField =
|
|
87
|
+
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure ? PickersTextField : MuiTextField);
|
|
94
88
|
const startTextFieldProps = useSlotProps({
|
|
95
89
|
elementType: TextField,
|
|
96
|
-
externalSlotProps: slotProps
|
|
90
|
+
externalSlotProps: slotProps?.textField,
|
|
97
91
|
ownerState: _extends({}, ownerState, {
|
|
98
92
|
position: 'start'
|
|
99
93
|
})
|
|
100
94
|
});
|
|
101
95
|
const endTextFieldProps = useSlotProps({
|
|
102
96
|
elementType: TextField,
|
|
103
|
-
externalSlotProps: slotProps
|
|
97
|
+
externalSlotProps: slotProps?.textField,
|
|
104
98
|
ownerState: _extends({}, ownerState, {
|
|
105
99
|
position: 'end'
|
|
106
100
|
})
|
|
107
101
|
});
|
|
108
|
-
const Separator =
|
|
102
|
+
const Separator = slots?.separator ?? MultiInputDateTimeRangeFieldSeparator;
|
|
109
103
|
const separatorProps = useSlotProps({
|
|
110
104
|
elementType: Separator,
|
|
111
|
-
externalSlotProps: slotProps
|
|
105
|
+
externalSlotProps: slotProps?.separator,
|
|
106
|
+
additionalProps: {
|
|
107
|
+
children: ` ${internalProps.dateSeparator ?? '–'} `
|
|
108
|
+
},
|
|
112
109
|
ownerState,
|
|
113
110
|
className: classes.separator
|
|
114
111
|
});
|
|
@@ -149,6 +146,11 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
|
|
|
149
146
|
classes: PropTypes.object,
|
|
150
147
|
className: PropTypes.string,
|
|
151
148
|
component: PropTypes.elementType,
|
|
149
|
+
/**
|
|
150
|
+
* String displayed between the start and the end dates.
|
|
151
|
+
* @default "–"
|
|
152
|
+
*/
|
|
153
|
+
dateSeparator: PropTypes.string,
|
|
152
154
|
/**
|
|
153
155
|
* The default value. Use when the component is not controlled.
|
|
154
156
|
*/
|
|
@@ -274,7 +276,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
|
|
|
274
276
|
/**
|
|
275
277
|
* Disable specific date.
|
|
276
278
|
*
|
|
277
|
-
* Warning: This function can be called multiple times (
|
|
279
|
+
* 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.
|
|
278
280
|
*
|
|
279
281
|
* @template TDate
|
|
280
282
|
* @param {TDate} day The date to test.
|
|
@@ -37,12 +37,7 @@ const MultiInputTimeRangeFieldRoot = styled( /*#__PURE__*/React.forwardRef((prop
|
|
|
37
37
|
slot: 'Root',
|
|
38
38
|
overridesResolver: (props, styles) => styles.root
|
|
39
39
|
})({});
|
|
40
|
-
const MultiInputTimeRangeFieldSeparator = styled(
|
|
41
|
-
var _props$children;
|
|
42
|
-
return /*#__PURE__*/_jsx(Typography, _extends({}, props, {
|
|
43
|
-
children: (_props$children = props.children) != null ? _props$children : ' – '
|
|
44
|
-
}));
|
|
45
|
-
}, {
|
|
40
|
+
const MultiInputTimeRangeFieldSeparator = styled(Typography, {
|
|
46
41
|
name: 'MuiMultiInputTimeRangeField',
|
|
47
42
|
slot: 'Separator',
|
|
48
43
|
overridesResolver: (props, styles) => styles.separator
|
|
@@ -60,7 +55,6 @@ const MultiInputTimeRangeFieldSeparator = styled(props => {
|
|
|
60
55
|
* - [MultiInputTimeRangeField API](https://mui.com/x/api/multi-input-time-range-field/)
|
|
61
56
|
*/
|
|
62
57
|
const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInputTimeRangeField(inProps, ref) {
|
|
63
|
-
var _slots$root, _slots$textField, _slots$separator;
|
|
64
58
|
const themeProps = useThemeProps({
|
|
65
59
|
props: inProps,
|
|
66
60
|
name: 'MuiMultiInputTimeRangeField'
|
|
@@ -79,10 +73,10 @@ const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
|
|
|
79
73
|
otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
|
|
80
74
|
const ownerState = themeProps;
|
|
81
75
|
const classes = useUtilityClasses(ownerState);
|
|
82
|
-
const Root =
|
|
76
|
+
const Root = slots?.root ?? MultiInputTimeRangeFieldRoot;
|
|
83
77
|
const rootProps = useSlotProps({
|
|
84
78
|
elementType: Root,
|
|
85
|
-
externalSlotProps: slotProps
|
|
79
|
+
externalSlotProps: slotProps?.root,
|
|
86
80
|
externalForwardedProps: otherForwardedProps,
|
|
87
81
|
additionalProps: {
|
|
88
82
|
ref
|
|
@@ -90,25 +84,28 @@ const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
|
|
|
90
84
|
ownerState,
|
|
91
85
|
className: clsx(className, classes.root)
|
|
92
86
|
});
|
|
93
|
-
const TextField =
|
|
87
|
+
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure ? PickersTextField : MuiTextField);
|
|
94
88
|
const startTextFieldProps = useSlotProps({
|
|
95
89
|
elementType: TextField,
|
|
96
|
-
externalSlotProps: slotProps
|
|
90
|
+
externalSlotProps: slotProps?.textField,
|
|
97
91
|
ownerState: _extends({}, ownerState, {
|
|
98
92
|
position: 'start'
|
|
99
93
|
})
|
|
100
94
|
});
|
|
101
95
|
const endTextFieldProps = useSlotProps({
|
|
102
96
|
elementType: TextField,
|
|
103
|
-
externalSlotProps: slotProps
|
|
97
|
+
externalSlotProps: slotProps?.textField,
|
|
104
98
|
ownerState: _extends({}, ownerState, {
|
|
105
99
|
position: 'end'
|
|
106
100
|
})
|
|
107
101
|
});
|
|
108
|
-
const Separator =
|
|
102
|
+
const Separator = slots?.separator ?? MultiInputTimeRangeFieldSeparator;
|
|
109
103
|
const separatorProps = useSlotProps({
|
|
110
104
|
elementType: Separator,
|
|
111
|
-
externalSlotProps: slotProps
|
|
105
|
+
externalSlotProps: slotProps?.separator,
|
|
106
|
+
additionalProps: {
|
|
107
|
+
children: ` ${internalProps.dateSeparator ?? '–'} `
|
|
108
|
+
},
|
|
112
109
|
ownerState,
|
|
113
110
|
className: classes.separator
|
|
114
111
|
});
|
|
@@ -149,6 +146,11 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
|
|
|
149
146
|
classes: PropTypes.object,
|
|
150
147
|
className: PropTypes.string,
|
|
151
148
|
component: PropTypes.elementType,
|
|
149
|
+
/**
|
|
150
|
+
* String displayed between the start and the end dates.
|
|
151
|
+
* @default "–"
|
|
152
|
+
*/
|
|
153
|
+
dateSeparator: PropTypes.string,
|
|
152
154
|
/**
|
|
153
155
|
* The default value. Use when the component is not controlled.
|
|
154
156
|
*/
|
|
@@ -63,7 +63,7 @@ const PickersRangeCalendarHeader = /*#__PURE__*/React.forwardRef(function Picker
|
|
|
63
63
|
nextLabel: localeText.nextMonth,
|
|
64
64
|
slots: slots,
|
|
65
65
|
slotProps: slotProps,
|
|
66
|
-
children: utils.formatByString(month, format
|
|
66
|
+
children: utils.formatByString(month, format ?? `${utils.formats.month} ${utils.formats.year}`)
|
|
67
67
|
});
|
|
68
68
|
});
|
|
69
69
|
process.env.NODE_ENV !== "production" ? PickersRangeCalendarHeader.propTypes = {
|
package/README.md
CHANGED