@mui/x-date-pickers-pro 7.0.0-beta.6 → 7.0.0-beta.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/CHANGELOG.md +117 -1
- package/DateRangeCalendar/DateRangeCalendar.js +18 -53
- package/DateRangeCalendar/DateRangeCalendar.types.d.ts +3 -2
- package/MultiInputDateRangeField/MultiInputDateRangeField.js +4 -2
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +4 -2
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +4 -2
- package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.d.ts +8 -0
- package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +124 -0
- package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.types.d.ts +18 -0
- package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.types.js +1 -0
- package/PickersRangeCalendarHeader/index.d.ts +2 -0
- package/PickersRangeCalendarHeader/index.js +1 -0
- package/PickersRangeCalendarHeader/package.json +6 -0
- package/index.d.ts +1 -0
- package/index.js +2 -1
- package/internals/utils/releaseInfo.js +1 -1
- package/modern/DateRangeCalendar/DateRangeCalendar.js +39 -71
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +4 -2
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +4 -2
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +4 -2
- package/modern/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +124 -0
- package/modern/PickersRangeCalendarHeader/PickersRangeCalendarHeader.types.js +1 -0
- package/modern/PickersRangeCalendarHeader/index.js +1 -0
- package/modern/index.js +2 -1
- package/modern/internals/utils/releaseInfo.js +1 -1
- package/node/DateRangeCalendar/DateRangeCalendar.js +38 -70
- package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +4 -2
- package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +4 -2
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +4 -2
- package/node/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +132 -0
- package/node/PickersRangeCalendarHeader/PickersRangeCalendarHeader.types.js +5 -0
- package/node/PickersRangeCalendarHeader/index.js +12 -0
- package/node/index.js +13 -1
- package/node/internals/utils/releaseInfo.js +1 -1
- package/package.json +2 -2
- package/themeAugmentation/components.d.ts +3 -0
- package/themeAugmentation/props.d.ts +2 -0
|
@@ -11,8 +11,7 @@ import { resolveComponentProps, useSlotProps } from '@mui/base/utils';
|
|
|
11
11
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
12
12
|
import { unstable_composeClasses as composeClasses } from '@mui/utils';
|
|
13
13
|
import { Watermark } from '@mui/x-license';
|
|
14
|
-
import {
|
|
15
|
-
import { applyDefaultDate, DayCalendar, useDefaultReduceAnimations, PickersArrowSwitcher, useCalendarState, useDefaultDates, useLocaleText, useNextMonthDisabled, usePreviousMonthDisabled, useUtils, useNow, DEFAULT_DESKTOP_MODE_MEDIA_QUERY, buildWarning, useControlledValueWithTimezone, useViews } from '@mui/x-date-pickers/internals';
|
|
14
|
+
import { applyDefaultDate, DayCalendar, useDefaultReduceAnimations, useCalendarState, useDefaultDates, useUtils, useNow, DEFAULT_DESKTOP_MODE_MEDIA_QUERY, buildWarning, useControlledValueWithTimezone, useViews } from '@mui/x-date-pickers/internals';
|
|
16
15
|
import { getReleaseInfo } from '../internals/utils/releaseInfo';
|
|
17
16
|
import { dateRangeCalendarClasses, getDateRangeCalendarUtilityClass } from './dateRangeCalendarClasses';
|
|
18
17
|
import { isEndOfRange, isRangeValid, isStartOfRange, isWithinRange } from '../internals/utils/date-utils';
|
|
@@ -22,6 +21,7 @@ import { rangeValueManager } from '../internals/utils/valueManagers';
|
|
|
22
21
|
import { useDragRange } from './useDragRange';
|
|
23
22
|
import { useRangePosition } from '../internals/hooks/useRangePosition';
|
|
24
23
|
import { DAY_RANGE_SIZE, DAY_MARGIN } from '../internals/constants/dimensions';
|
|
24
|
+
import { PickersRangeCalendarHeader } from '../PickersRangeCalendarHeader';
|
|
25
25
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
26
26
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
27
27
|
const releaseInfo = getReleaseInfo();
|
|
@@ -44,12 +44,6 @@ const DateRangeCalendarMonthContainer = styled('div', {
|
|
|
44
44
|
borderRight: `1px solid ${(theme.vars || theme).palette.divider}`
|
|
45
45
|
}
|
|
46
46
|
}));
|
|
47
|
-
const DateRangeCalendarArrowSwitcher = styled(PickersArrowSwitcher)({
|
|
48
|
-
padding: '12px 16px 4px 16px',
|
|
49
|
-
display: 'flex',
|
|
50
|
-
alignItems: 'center',
|
|
51
|
-
justifyContent: 'space-between'
|
|
52
|
-
});
|
|
53
47
|
const weeksContainerHeight = (DAY_RANGE_SIZE + DAY_MARGIN * 2) * 6;
|
|
54
48
|
const warnInvalidCurrentMonthCalendarPosition = buildWarning(['The `currentMonthCalendarPosition` prop must be an integer between `1` and the amount of calendars rendered.', 'For example if you have 2 calendars rendered, it should be equal to either 1 or 2.']);
|
|
55
49
|
const DayCalendarForRange = styled(DayCalendar)(({
|
|
@@ -190,7 +184,6 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
|
|
|
190
184
|
autoFocus
|
|
191
185
|
});
|
|
192
186
|
const utils = useUtils();
|
|
193
|
-
const localeText = useLocaleText();
|
|
194
187
|
const now = useNow(timezone);
|
|
195
188
|
const {
|
|
196
189
|
rangePosition,
|
|
@@ -288,15 +281,12 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
|
|
|
288
281
|
shouldDisableDate: wrappedShouldDisableDate,
|
|
289
282
|
timezone
|
|
290
283
|
});
|
|
291
|
-
|
|
292
|
-
// When disabled, limit the view to the selected date
|
|
293
|
-
const minDateWithDisabled = disabled && value[0] || minDate;
|
|
294
|
-
const maxDateWithDisabled = disabled && value[1] || maxDate;
|
|
295
|
-
const CalendarHeader = slots?.calendarHeader ?? PickersCalendarHeader;
|
|
284
|
+
const CalendarHeader = slots?.calendarHeader ?? PickersRangeCalendarHeader;
|
|
296
285
|
const calendarHeaderProps = useSlotProps({
|
|
297
286
|
elementType: CalendarHeader,
|
|
298
287
|
externalSlotProps: slotProps?.calendarHeader,
|
|
299
288
|
additionalProps: {
|
|
289
|
+
calendars,
|
|
300
290
|
views: ['day'],
|
|
301
291
|
view: 'day',
|
|
302
292
|
currentMonth: calendarState.currentMonth,
|
|
@@ -304,15 +294,15 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
|
|
|
304
294
|
newMonth,
|
|
305
295
|
direction
|
|
306
296
|
}),
|
|
307
|
-
minDate
|
|
308
|
-
maxDate
|
|
297
|
+
minDate,
|
|
298
|
+
maxDate,
|
|
309
299
|
disabled,
|
|
310
300
|
disablePast,
|
|
311
301
|
disableFuture,
|
|
312
302
|
reduceAnimations,
|
|
303
|
+
timezone,
|
|
313
304
|
slots,
|
|
314
|
-
slotProps
|
|
315
|
-
timezone
|
|
305
|
+
slotProps
|
|
316
306
|
},
|
|
317
307
|
ownerState: props
|
|
318
308
|
});
|
|
@@ -341,22 +331,6 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
|
|
|
341
331
|
}
|
|
342
332
|
}, [rangePosition, value]); // eslint-disable-line
|
|
343
333
|
|
|
344
|
-
const selectNextMonth = React.useCallback(() => {
|
|
345
|
-
changeMonth(utils.addMonths(calendarState.currentMonth, 1));
|
|
346
|
-
}, [changeMonth, calendarState.currentMonth, utils]);
|
|
347
|
-
const selectPreviousMonth = React.useCallback(() => {
|
|
348
|
-
changeMonth(utils.addMonths(calendarState.currentMonth, -1));
|
|
349
|
-
}, [changeMonth, calendarState.currentMonth, utils]);
|
|
350
|
-
const isNextMonthDisabled = useNextMonthDisabled(calendarState.currentMonth, {
|
|
351
|
-
disableFuture,
|
|
352
|
-
maxDate,
|
|
353
|
-
timezone
|
|
354
|
-
});
|
|
355
|
-
const isPreviousMonthDisabled = usePreviousMonthDisabled(calendarState.currentMonth, {
|
|
356
|
-
disablePast,
|
|
357
|
-
minDate,
|
|
358
|
-
timezone
|
|
359
|
-
});
|
|
360
334
|
const baseDateValidationProps = {
|
|
361
335
|
disablePast,
|
|
362
336
|
disableFuture,
|
|
@@ -462,43 +436,37 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
|
|
|
462
436
|
children: [/*#__PURE__*/_jsx(Watermark, {
|
|
463
437
|
packageName: "x-date-pickers-pro",
|
|
464
438
|
releaseInfo: releaseInfo
|
|
465
|
-
}), calendarMonths.map(
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
autoFocus: visibleMonths[month] === focusedMonth,
|
|
497
|
-
fixedWeekNumber: fixedWeekNumber,
|
|
498
|
-
displayWeekNumber: displayWeekNumber,
|
|
499
|
-
timezone: timezone
|
|
500
|
-
}), index)]
|
|
501
|
-
}, month))]
|
|
439
|
+
}), calendarMonths.map(monthIndex => {
|
|
440
|
+
const month = visibleMonths[monthIndex];
|
|
441
|
+
return /*#__PURE__*/_jsxs(DateRangeCalendarMonthContainer, {
|
|
442
|
+
className: classes.monthContainer,
|
|
443
|
+
children: [/*#__PURE__*/_jsx(CalendarHeader, _extends({}, calendarHeaderProps, {
|
|
444
|
+
month: month,
|
|
445
|
+
monthIndex: monthIndex
|
|
446
|
+
})), /*#__PURE__*/_jsx(DayCalendarForRange, _extends({
|
|
447
|
+
className: classes.dayCalendar
|
|
448
|
+
}, calendarState, baseDateValidationProps, commonViewProps, {
|
|
449
|
+
onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,
|
|
450
|
+
onFocusedDayChange: changeFocusedDay,
|
|
451
|
+
reduceAnimations: reduceAnimations,
|
|
452
|
+
selectedDays: value,
|
|
453
|
+
onSelectedDaysChange: handleSelectedDayChange,
|
|
454
|
+
currentMonth: month,
|
|
455
|
+
TransitionProps: CalendarTransitionProps,
|
|
456
|
+
shouldDisableDate: wrappedShouldDisableDate,
|
|
457
|
+
showDaysOutsideCurrentMonth: calendars === 1 && showDaysOutsideCurrentMonth,
|
|
458
|
+
dayOfWeekFormatter: dayOfWeekFormatter,
|
|
459
|
+
loading: loading,
|
|
460
|
+
renderLoading: renderLoading,
|
|
461
|
+
slots: slotsForDayCalendar,
|
|
462
|
+
slotProps: slotPropsForDayCalendar,
|
|
463
|
+
autoFocus: month === focusedMonth,
|
|
464
|
+
fixedWeekNumber: fixedWeekNumber,
|
|
465
|
+
displayWeekNumber: displayWeekNumber,
|
|
466
|
+
timezone: timezone
|
|
467
|
+
}))]
|
|
468
|
+
}, monthIndex);
|
|
469
|
+
})]
|
|
502
470
|
}));
|
|
503
471
|
});
|
|
504
472
|
process.env.NODE_ENV !== "production" ? DateRangeCalendar.propTypes = {
|
|
@@ -31,7 +31,7 @@ const MultiInputDateRangeFieldRoot = styled( /*#__PURE__*/React.forwardRef((prop
|
|
|
31
31
|
ref: ref,
|
|
32
32
|
spacing: 2,
|
|
33
33
|
direction: "row",
|
|
34
|
-
alignItems: "
|
|
34
|
+
alignItems: "center"
|
|
35
35
|
}, props))), {
|
|
36
36
|
name: 'MuiMultiInputDateRangeField',
|
|
37
37
|
slot: 'Root',
|
|
@@ -43,7 +43,9 @@ const MultiInputDateRangeFieldSeparator = styled(props => /*#__PURE__*/_jsx(Typo
|
|
|
43
43
|
name: 'MuiMultiInputDateRangeField',
|
|
44
44
|
slot: 'Separator',
|
|
45
45
|
overridesResolver: (props, styles) => styles.separator
|
|
46
|
-
})({
|
|
46
|
+
})({
|
|
47
|
+
lineHeight: '1.4375em' // 23px
|
|
48
|
+
});
|
|
47
49
|
/**
|
|
48
50
|
* Demos:
|
|
49
51
|
*
|
|
@@ -31,7 +31,7 @@ const MultiInputDateTimeRangeFieldRoot = styled( /*#__PURE__*/React.forwardRef((
|
|
|
31
31
|
ref: ref,
|
|
32
32
|
spacing: 2,
|
|
33
33
|
direction: "row",
|
|
34
|
-
alignItems: "
|
|
34
|
+
alignItems: "center"
|
|
35
35
|
}, props))), {
|
|
36
36
|
name: 'MuiMultiInputDateTimeRangeField',
|
|
37
37
|
slot: 'Root',
|
|
@@ -43,7 +43,9 @@ const MultiInputDateTimeRangeFieldSeparator = styled(props => /*#__PURE__*/_jsx(
|
|
|
43
43
|
name: 'MuiMultiInputDateTimeRangeField',
|
|
44
44
|
slot: 'Separator',
|
|
45
45
|
overridesResolver: (props, styles) => styles.separator
|
|
46
|
-
})({
|
|
46
|
+
})({
|
|
47
|
+
lineHeight: '1.4375em' // 23px
|
|
48
|
+
});
|
|
47
49
|
/**
|
|
48
50
|
* Demos:
|
|
49
51
|
*
|
|
@@ -31,7 +31,7 @@ const MultiInputTimeRangeFieldRoot = styled( /*#__PURE__*/React.forwardRef((prop
|
|
|
31
31
|
ref: ref,
|
|
32
32
|
spacing: 2,
|
|
33
33
|
direction: "row",
|
|
34
|
-
alignItems: "
|
|
34
|
+
alignItems: "center"
|
|
35
35
|
}, props))), {
|
|
36
36
|
name: 'MuiMultiInputTimeRangeField',
|
|
37
37
|
slot: 'Root',
|
|
@@ -43,7 +43,9 @@ const MultiInputTimeRangeFieldSeparator = styled(props => /*#__PURE__*/_jsx(Typo
|
|
|
43
43
|
name: 'MuiMultiInputTimeRangeField',
|
|
44
44
|
slot: 'Separator',
|
|
45
45
|
overridesResolver: (props, styles) => styles.separator
|
|
46
|
-
})({
|
|
46
|
+
})({
|
|
47
|
+
lineHeight: '1.4375em' // 23px
|
|
48
|
+
});
|
|
47
49
|
/**
|
|
48
50
|
* Demos:
|
|
49
51
|
*
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["calendars", "month", "monthIndex"];
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import { styled } from '@mui/material/styles';
|
|
7
|
+
import { PickersCalendarHeader } from '@mui/x-date-pickers/PickersCalendarHeader';
|
|
8
|
+
import { PickersArrowSwitcher, useLocaleText, useNextMonthDisabled, usePreviousMonthDisabled, useUtils } from '@mui/x-date-pickers/internals';
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
const PickersRangeCalendarHeaderContentMultipleCalendars = styled(PickersArrowSwitcher)({
|
|
11
|
+
padding: '12px 16px 4px 16px',
|
|
12
|
+
display: 'flex',
|
|
13
|
+
alignItems: 'center',
|
|
14
|
+
justifyContent: 'space-between'
|
|
15
|
+
});
|
|
16
|
+
const PickersRangeCalendarHeader = /*#__PURE__*/React.forwardRef(function PickersRangeCalendarHeader(props, ref) {
|
|
17
|
+
const utils = useUtils();
|
|
18
|
+
const localeText = useLocaleText();
|
|
19
|
+
const {
|
|
20
|
+
calendars,
|
|
21
|
+
month,
|
|
22
|
+
monthIndex
|
|
23
|
+
} = props,
|
|
24
|
+
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
25
|
+
const {
|
|
26
|
+
format,
|
|
27
|
+
slots,
|
|
28
|
+
slotProps,
|
|
29
|
+
currentMonth,
|
|
30
|
+
onMonthChange,
|
|
31
|
+
disableFuture,
|
|
32
|
+
disablePast,
|
|
33
|
+
minDate,
|
|
34
|
+
maxDate,
|
|
35
|
+
timezone
|
|
36
|
+
} = props;
|
|
37
|
+
const isNextMonthDisabled = useNextMonthDisabled(currentMonth, {
|
|
38
|
+
disableFuture,
|
|
39
|
+
maxDate,
|
|
40
|
+
timezone
|
|
41
|
+
});
|
|
42
|
+
const isPreviousMonthDisabled = usePreviousMonthDisabled(currentMonth, {
|
|
43
|
+
disablePast,
|
|
44
|
+
minDate,
|
|
45
|
+
timezone
|
|
46
|
+
});
|
|
47
|
+
if (calendars === 1) {
|
|
48
|
+
return /*#__PURE__*/_jsx(PickersCalendarHeader, _extends({}, other, {
|
|
49
|
+
ref: ref
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
const selectNextMonth = () => onMonthChange(utils.addMonths(currentMonth, 1), 'left');
|
|
53
|
+
const selectPreviousMonth = () => onMonthChange(utils.addMonths(currentMonth, -1), 'right');
|
|
54
|
+
return /*#__PURE__*/_jsx(PickersRangeCalendarHeaderContentMultipleCalendars, {
|
|
55
|
+
ref: ref,
|
|
56
|
+
onGoToPrevious: selectPreviousMonth,
|
|
57
|
+
onGoToNext: selectNextMonth,
|
|
58
|
+
isPreviousHidden: monthIndex !== 0,
|
|
59
|
+
isPreviousDisabled: isPreviousMonthDisabled,
|
|
60
|
+
previousLabel: localeText.previousMonth,
|
|
61
|
+
isNextHidden: monthIndex !== calendars - 1,
|
|
62
|
+
isNextDisabled: isNextMonthDisabled,
|
|
63
|
+
nextLabel: localeText.nextMonth,
|
|
64
|
+
slots: slots,
|
|
65
|
+
slotProps: slotProps,
|
|
66
|
+
children: utils.formatByString(month, format ?? `${utils.formats.month} ${utils.formats.year}`)
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
process.env.NODE_ENV !== "production" ? PickersRangeCalendarHeader.propTypes = {
|
|
70
|
+
// ----------------------------- Warning --------------------------------
|
|
71
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
72
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
73
|
+
// ----------------------------------------------------------------------
|
|
74
|
+
/**
|
|
75
|
+
* The number of calendars rendered.
|
|
76
|
+
*/
|
|
77
|
+
calendars: PropTypes.oneOf([1, 2, 3]).isRequired,
|
|
78
|
+
/**
|
|
79
|
+
* Override or extend the styles applied to the component.
|
|
80
|
+
*/
|
|
81
|
+
classes: PropTypes.object,
|
|
82
|
+
className: PropTypes.string,
|
|
83
|
+
currentMonth: PropTypes.object.isRequired,
|
|
84
|
+
disabled: PropTypes.bool,
|
|
85
|
+
disableFuture: PropTypes.bool,
|
|
86
|
+
disablePast: PropTypes.bool,
|
|
87
|
+
/**
|
|
88
|
+
* Format used to display the date.
|
|
89
|
+
* @default `${adapter.formats.month} ${adapter.formats.year}`
|
|
90
|
+
*/
|
|
91
|
+
format: PropTypes.string,
|
|
92
|
+
labelId: PropTypes.string,
|
|
93
|
+
maxDate: PropTypes.object.isRequired,
|
|
94
|
+
minDate: PropTypes.object.isRequired,
|
|
95
|
+
/**
|
|
96
|
+
* Month used for this header.
|
|
97
|
+
*/
|
|
98
|
+
month: PropTypes.object.isRequired,
|
|
99
|
+
/**
|
|
100
|
+
* Index of the month used for this header.
|
|
101
|
+
*/
|
|
102
|
+
monthIndex: PropTypes.number.isRequired,
|
|
103
|
+
onMonthChange: PropTypes.func.isRequired,
|
|
104
|
+
onViewChange: PropTypes.func,
|
|
105
|
+
reduceAnimations: PropTypes.bool.isRequired,
|
|
106
|
+
/**
|
|
107
|
+
* The props used for each component slot.
|
|
108
|
+
* @default {}
|
|
109
|
+
*/
|
|
110
|
+
slotProps: PropTypes.object,
|
|
111
|
+
/**
|
|
112
|
+
* Overridable component slots.
|
|
113
|
+
* @default {}
|
|
114
|
+
*/
|
|
115
|
+
slots: PropTypes.object,
|
|
116
|
+
/**
|
|
117
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
118
|
+
*/
|
|
119
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
120
|
+
timezone: PropTypes.string.isRequired,
|
|
121
|
+
view: PropTypes.oneOf(['day', 'month', 'year']).isRequired,
|
|
122
|
+
views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired).isRequired
|
|
123
|
+
} : void 0;
|
|
124
|
+
export { PickersRangeCalendarHeader };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PickersRangeCalendarHeader } from './PickersRangeCalendarHeader';
|
package/modern/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @mui/x-date-pickers-pro v7.0.0-beta.
|
|
2
|
+
* @mui/x-date-pickers-pro v7.0.0-beta.7
|
|
3
3
|
*
|
|
4
4
|
* @license MUI X Commercial
|
|
5
5
|
* This source code is licensed under the commercial license found in the
|
|
@@ -24,6 +24,7 @@ export * from './SingleInputDateTimeRangeField';
|
|
|
24
24
|
|
|
25
25
|
// Calendars
|
|
26
26
|
export * from './DateRangeCalendar';
|
|
27
|
+
export * from './PickersRangeCalendarHeader';
|
|
27
28
|
|
|
28
29
|
// New pickers
|
|
29
30
|
export * from './DateRangePicker';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ponyfillGlobal } from '@mui/utils';
|
|
2
2
|
export const getReleaseInfo = () => {
|
|
3
|
-
const releaseInfo = "
|
|
3
|
+
const releaseInfo = "MTcxMDM3MDgwMDAwMA==";
|
|
4
4
|
if (process.env.NODE_ENV !== 'production') {
|
|
5
5
|
// A simple hack to set the value in the test environment (has no build step).
|
|
6
6
|
// eslint-disable-next-line no-useless-concat
|
|
@@ -16,7 +16,6 @@ var _utils = require("@mui/base/utils");
|
|
|
16
16
|
var _styles = require("@mui/material/styles");
|
|
17
17
|
var _utils2 = require("@mui/utils");
|
|
18
18
|
var _xLicense = require("@mui/x-license");
|
|
19
|
-
var _PickersCalendarHeader = require("@mui/x-date-pickers/PickersCalendarHeader");
|
|
20
19
|
var _internals = require("@mui/x-date-pickers/internals");
|
|
21
20
|
var _releaseInfo = require("../internals/utils/releaseInfo");
|
|
22
21
|
var _dateRangeCalendarClasses = require("./dateRangeCalendarClasses");
|
|
@@ -27,6 +26,7 @@ var _valueManagers = require("../internals/utils/valueManagers");
|
|
|
27
26
|
var _useDragRange2 = require("./useDragRange");
|
|
28
27
|
var _useRangePosition = require("../internals/hooks/useRangePosition");
|
|
29
28
|
var _dimensions = require("../internals/constants/dimensions");
|
|
29
|
+
var _PickersRangeCalendarHeader = require("../PickersRangeCalendarHeader");
|
|
30
30
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
31
31
|
const _excluded = ["value", "defaultValue", "referenceDate", "onChange", "className", "disableFuture", "disablePast", "minDate", "maxDate", "shouldDisableDate", "reduceAnimations", "onMonthChange", "rangePosition", "defaultRangePosition", "onRangePositionChange", "calendars", "currentMonthCalendarPosition", "slots", "slotProps", "loading", "renderLoading", "disableHighlightToday", "readOnly", "disabled", "showDaysOutsideCurrentMonth", "dayOfWeekFormatter", "disableAutoMonthSwitching", "autoFocus", "fixedWeekNumber", "disableDragEditing", "displayWeekNumber", "timezone", "availableRangePositions", "views", "view", "openTo", "onViewChange"],
|
|
32
32
|
_excluded2 = ["isDragging", "rangeDragDay", "draggingDatePosition"];
|
|
@@ -52,12 +52,6 @@ const DateRangeCalendarMonthContainer = (0, _styles.styled)('div', {
|
|
|
52
52
|
borderRight: `1px solid ${(theme.vars || theme).palette.divider}`
|
|
53
53
|
}
|
|
54
54
|
}));
|
|
55
|
-
const DateRangeCalendarArrowSwitcher = (0, _styles.styled)(_internals.PickersArrowSwitcher)({
|
|
56
|
-
padding: '12px 16px 4px 16px',
|
|
57
|
-
display: 'flex',
|
|
58
|
-
alignItems: 'center',
|
|
59
|
-
justifyContent: 'space-between'
|
|
60
|
-
});
|
|
61
55
|
const weeksContainerHeight = (_dimensions.DAY_RANGE_SIZE + _dimensions.DAY_MARGIN * 2) * 6;
|
|
62
56
|
const warnInvalidCurrentMonthCalendarPosition = (0, _internals.buildWarning)(['The `currentMonthCalendarPosition` prop must be an integer between `1` and the amount of calendars rendered.', 'For example if you have 2 calendars rendered, it should be equal to either 1 or 2.']);
|
|
63
57
|
const DayCalendarForRange = (0, _styles.styled)(_internals.DayCalendar)(({
|
|
@@ -198,7 +192,6 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
198
192
|
autoFocus
|
|
199
193
|
});
|
|
200
194
|
const utils = (0, _internals.useUtils)();
|
|
201
|
-
const localeText = (0, _internals.useLocaleText)();
|
|
202
195
|
const now = (0, _internals.useNow)(timezone);
|
|
203
196
|
const {
|
|
204
197
|
rangePosition,
|
|
@@ -296,15 +289,12 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
296
289
|
shouldDisableDate: wrappedShouldDisableDate,
|
|
297
290
|
timezone
|
|
298
291
|
});
|
|
299
|
-
|
|
300
|
-
// When disabled, limit the view to the selected date
|
|
301
|
-
const minDateWithDisabled = disabled && value[0] || minDate;
|
|
302
|
-
const maxDateWithDisabled = disabled && value[1] || maxDate;
|
|
303
|
-
const CalendarHeader = slots?.calendarHeader ?? _PickersCalendarHeader.PickersCalendarHeader;
|
|
292
|
+
const CalendarHeader = slots?.calendarHeader ?? _PickersRangeCalendarHeader.PickersRangeCalendarHeader;
|
|
304
293
|
const calendarHeaderProps = (0, _utils.useSlotProps)({
|
|
305
294
|
elementType: CalendarHeader,
|
|
306
295
|
externalSlotProps: slotProps?.calendarHeader,
|
|
307
296
|
additionalProps: {
|
|
297
|
+
calendars,
|
|
308
298
|
views: ['day'],
|
|
309
299
|
view: 'day',
|
|
310
300
|
currentMonth: calendarState.currentMonth,
|
|
@@ -312,15 +302,15 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
312
302
|
newMonth,
|
|
313
303
|
direction
|
|
314
304
|
}),
|
|
315
|
-
minDate
|
|
316
|
-
maxDate
|
|
305
|
+
minDate,
|
|
306
|
+
maxDate,
|
|
317
307
|
disabled,
|
|
318
308
|
disablePast,
|
|
319
309
|
disableFuture,
|
|
320
310
|
reduceAnimations,
|
|
311
|
+
timezone,
|
|
321
312
|
slots,
|
|
322
|
-
slotProps
|
|
323
|
-
timezone
|
|
313
|
+
slotProps
|
|
324
314
|
},
|
|
325
315
|
ownerState: props
|
|
326
316
|
});
|
|
@@ -349,22 +339,6 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
349
339
|
}
|
|
350
340
|
}, [rangePosition, value]); // eslint-disable-line
|
|
351
341
|
|
|
352
|
-
const selectNextMonth = React.useCallback(() => {
|
|
353
|
-
changeMonth(utils.addMonths(calendarState.currentMonth, 1));
|
|
354
|
-
}, [changeMonth, calendarState.currentMonth, utils]);
|
|
355
|
-
const selectPreviousMonth = React.useCallback(() => {
|
|
356
|
-
changeMonth(utils.addMonths(calendarState.currentMonth, -1));
|
|
357
|
-
}, [changeMonth, calendarState.currentMonth, utils]);
|
|
358
|
-
const isNextMonthDisabled = (0, _internals.useNextMonthDisabled)(calendarState.currentMonth, {
|
|
359
|
-
disableFuture,
|
|
360
|
-
maxDate,
|
|
361
|
-
timezone
|
|
362
|
-
});
|
|
363
|
-
const isPreviousMonthDisabled = (0, _internals.usePreviousMonthDisabled)(calendarState.currentMonth, {
|
|
364
|
-
disablePast,
|
|
365
|
-
minDate,
|
|
366
|
-
timezone
|
|
367
|
-
});
|
|
368
342
|
const baseDateValidationProps = {
|
|
369
343
|
disablePast,
|
|
370
344
|
disableFuture,
|
|
@@ -470,43 +444,37 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
470
444
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_xLicense.Watermark, {
|
|
471
445
|
packageName: "x-date-pickers-pro",
|
|
472
446
|
releaseInfo: releaseInfo
|
|
473
|
-
}), calendarMonths.map(
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
autoFocus: visibleMonths[month] === focusedMonth,
|
|
505
|
-
fixedWeekNumber: fixedWeekNumber,
|
|
506
|
-
displayWeekNumber: displayWeekNumber,
|
|
507
|
-
timezone: timezone
|
|
508
|
-
}), index)]
|
|
509
|
-
}, month))]
|
|
447
|
+
}), calendarMonths.map(monthIndex => {
|
|
448
|
+
const month = visibleMonths[monthIndex];
|
|
449
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(DateRangeCalendarMonthContainer, {
|
|
450
|
+
className: classes.monthContainer,
|
|
451
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(CalendarHeader, (0, _extends2.default)({}, calendarHeaderProps, {
|
|
452
|
+
month: month,
|
|
453
|
+
monthIndex: monthIndex
|
|
454
|
+
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(DayCalendarForRange, (0, _extends2.default)({
|
|
455
|
+
className: classes.dayCalendar
|
|
456
|
+
}, calendarState, baseDateValidationProps, commonViewProps, {
|
|
457
|
+
onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,
|
|
458
|
+
onFocusedDayChange: changeFocusedDay,
|
|
459
|
+
reduceAnimations: reduceAnimations,
|
|
460
|
+
selectedDays: value,
|
|
461
|
+
onSelectedDaysChange: handleSelectedDayChange,
|
|
462
|
+
currentMonth: month,
|
|
463
|
+
TransitionProps: CalendarTransitionProps,
|
|
464
|
+
shouldDisableDate: wrappedShouldDisableDate,
|
|
465
|
+
showDaysOutsideCurrentMonth: calendars === 1 && showDaysOutsideCurrentMonth,
|
|
466
|
+
dayOfWeekFormatter: dayOfWeekFormatter,
|
|
467
|
+
loading: loading,
|
|
468
|
+
renderLoading: renderLoading,
|
|
469
|
+
slots: slotsForDayCalendar,
|
|
470
|
+
slotProps: slotPropsForDayCalendar,
|
|
471
|
+
autoFocus: month === focusedMonth,
|
|
472
|
+
fixedWeekNumber: fixedWeekNumber,
|
|
473
|
+
displayWeekNumber: displayWeekNumber,
|
|
474
|
+
timezone: timezone
|
|
475
|
+
}))]
|
|
476
|
+
}, monthIndex);
|
|
477
|
+
})]
|
|
510
478
|
}));
|
|
511
479
|
});
|
|
512
480
|
process.env.NODE_ENV !== "production" ? DateRangeCalendar.propTypes = {
|
|
@@ -40,7 +40,7 @@ const MultiInputDateRangeFieldRoot = (0, _styles.styled)( /*#__PURE__*/React.for
|
|
|
40
40
|
ref: ref,
|
|
41
41
|
spacing: 2,
|
|
42
42
|
direction: "row",
|
|
43
|
-
alignItems: "
|
|
43
|
+
alignItems: "center"
|
|
44
44
|
}, props))), {
|
|
45
45
|
name: 'MuiMultiInputDateRangeField',
|
|
46
46
|
slot: 'Root',
|
|
@@ -52,7 +52,9 @@ const MultiInputDateRangeFieldSeparator = (0, _styles.styled)(props => /*#__PURE
|
|
|
52
52
|
name: 'MuiMultiInputDateRangeField',
|
|
53
53
|
slot: 'Separator',
|
|
54
54
|
overridesResolver: (props, styles) => styles.separator
|
|
55
|
-
})({
|
|
55
|
+
})({
|
|
56
|
+
lineHeight: '1.4375em' // 23px
|
|
57
|
+
});
|
|
56
58
|
/**
|
|
57
59
|
* Demos:
|
|
58
60
|
*
|
|
@@ -40,7 +40,7 @@ const MultiInputDateTimeRangeFieldRoot = (0, _styles.styled)( /*#__PURE__*/React
|
|
|
40
40
|
ref: ref,
|
|
41
41
|
spacing: 2,
|
|
42
42
|
direction: "row",
|
|
43
|
-
alignItems: "
|
|
43
|
+
alignItems: "center"
|
|
44
44
|
}, props))), {
|
|
45
45
|
name: 'MuiMultiInputDateTimeRangeField',
|
|
46
46
|
slot: 'Root',
|
|
@@ -52,7 +52,9 @@ const MultiInputDateTimeRangeFieldSeparator = (0, _styles.styled)(props => /*#__
|
|
|
52
52
|
name: 'MuiMultiInputDateTimeRangeField',
|
|
53
53
|
slot: 'Separator',
|
|
54
54
|
overridesResolver: (props, styles) => styles.separator
|
|
55
|
-
})({
|
|
55
|
+
})({
|
|
56
|
+
lineHeight: '1.4375em' // 23px
|
|
57
|
+
});
|
|
56
58
|
/**
|
|
57
59
|
* Demos:
|
|
58
60
|
*
|
|
@@ -40,7 +40,7 @@ const MultiInputTimeRangeFieldRoot = (0, _styles.styled)( /*#__PURE__*/React.for
|
|
|
40
40
|
ref: ref,
|
|
41
41
|
spacing: 2,
|
|
42
42
|
direction: "row",
|
|
43
|
-
alignItems: "
|
|
43
|
+
alignItems: "center"
|
|
44
44
|
}, props))), {
|
|
45
45
|
name: 'MuiMultiInputTimeRangeField',
|
|
46
46
|
slot: 'Root',
|
|
@@ -52,7 +52,9 @@ const MultiInputTimeRangeFieldSeparator = (0, _styles.styled)(props => /*#__PURE
|
|
|
52
52
|
name: 'MuiMultiInputTimeRangeField',
|
|
53
53
|
slot: 'Separator',
|
|
54
54
|
overridesResolver: (props, styles) => styles.separator
|
|
55
|
-
})({
|
|
55
|
+
})({
|
|
56
|
+
lineHeight: '1.4375em' // 23px
|
|
57
|
+
});
|
|
56
58
|
/**
|
|
57
59
|
* Demos:
|
|
58
60
|
*
|