@mui/x-date-pickers-pro 5.0.0-alpha.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.
Files changed (137) hide show
  1. package/CHANGELOG.md +3785 -0
  2. package/DateRangePicker/DateRangePicker.d.ts +66 -0
  3. package/DateRangePicker/DateRangePicker.js +519 -0
  4. package/DateRangePicker/DateRangePickerInput.d.ts +37 -0
  5. package/DateRangePicker/DateRangePickerInput.js +128 -0
  6. package/DateRangePicker/DateRangePickerToolbar.d.ts +15 -0
  7. package/DateRangePicker/DateRangePickerToolbar.js +59 -0
  8. package/DateRangePicker/DateRangePickerView.d.ts +41 -0
  9. package/DateRangePicker/DateRangePickerView.js +179 -0
  10. package/DateRangePicker/DateRangePickerViewDesktop.d.ts +30 -0
  11. package/DateRangePicker/DateRangePickerViewDesktop.js +154 -0
  12. package/DateRangePicker/DateRangePickerViewMobile.d.ts +15 -0
  13. package/DateRangePicker/DateRangePickerViewMobile.js +60 -0
  14. package/DateRangePicker/date-range-manager.d.ts +14 -0
  15. package/DateRangePicker/date-range-manager.js +43 -0
  16. package/DateRangePicker/index.d.ts +3 -0
  17. package/DateRangePicker/index.js +1 -0
  18. package/DateRangePicker/package.json +6 -0
  19. package/DateRangePickerDay/DateRangePickerDay.d.ts +52 -0
  20. package/DateRangePickerDay/DateRangePickerDay.js +290 -0
  21. package/DateRangePickerDay/dateRangePickerDayClasses.d.ts +29 -0
  22. package/DateRangePickerDay/dateRangePickerDayClasses.js +5 -0
  23. package/DateRangePickerDay/index.d.ts +4 -0
  24. package/DateRangePickerDay/index.js +2 -0
  25. package/DateRangePickerDay/package.json +6 -0
  26. package/DesktopDateRangePicker/DesktopDateRangePicker.d.ts +66 -0
  27. package/DesktopDateRangePicker/DesktopDateRangePicker.js +485 -0
  28. package/DesktopDateRangePicker/index.d.ts +2 -0
  29. package/DesktopDateRangePicker/index.js +1 -0
  30. package/DesktopDateRangePicker/package.json +6 -0
  31. package/MobileDateRangePicker/MobileDateRangePicker.d.ts +66 -0
  32. package/MobileDateRangePicker/MobileDateRangePicker.js +495 -0
  33. package/MobileDateRangePicker/index.d.ts +2 -0
  34. package/MobileDateRangePicker/index.js +1 -0
  35. package/MobileDateRangePicker/package.json +6 -0
  36. package/README.md +29 -0
  37. package/StaticDateRangePicker/StaticDateRangePicker.d.ts +69 -0
  38. package/StaticDateRangePicker/StaticDateRangePicker.js +455 -0
  39. package/StaticDateRangePicker/index.d.ts +2 -0
  40. package/StaticDateRangePicker/index.js +1 -0
  41. package/StaticDateRangePicker/package.json +6 -0
  42. package/index.d.ts +7 -0
  43. package/index.js +12 -0
  44. package/internal/hooks/validation/useDateRangeValidation.d.ts +12 -0
  45. package/internal/hooks/validation/useDateRangeValidation.js +27 -0
  46. package/internal/models/dateRange.d.ts +8 -0
  47. package/internal/models/dateRange.js +1 -0
  48. package/internal/models/index.d.ts +1 -0
  49. package/internal/models/index.js +1 -0
  50. package/internal/utils/date-utils.d.ts +7 -0
  51. package/internal/utils/date-utils.js +19 -0
  52. package/internal/utils/releaseInfo.d.ts +1 -0
  53. package/internal/utils/releaseInfo.js +15 -0
  54. package/internal/utils/utils.d.ts +1 -0
  55. package/internal/utils/utils.js +1 -0
  56. package/legacy/DateRangePicker/DateRangePicker.js +528 -0
  57. package/legacy/DateRangePicker/DateRangePickerInput.js +141 -0
  58. package/legacy/DateRangePicker/DateRangePickerToolbar.js +66 -0
  59. package/legacy/DateRangePicker/DateRangePickerView.js +184 -0
  60. package/legacy/DateRangePicker/DateRangePickerViewDesktop.js +172 -0
  61. package/legacy/DateRangePicker/DateRangePickerViewMobile.js +63 -0
  62. package/legacy/DateRangePicker/date-range-manager.js +51 -0
  63. package/legacy/DateRangePicker/index.js +1 -0
  64. package/legacy/DateRangePickerDay/DateRangePickerDay.js +296 -0
  65. package/legacy/DateRangePickerDay/dateRangePickerDayClasses.js +5 -0
  66. package/legacy/DateRangePickerDay/index.js +2 -0
  67. package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.js +494 -0
  68. package/legacy/DesktopDateRangePicker/index.js +1 -0
  69. package/legacy/MobileDateRangePicker/MobileDateRangePicker.js +504 -0
  70. package/legacy/MobileDateRangePicker/index.js +1 -0
  71. package/legacy/StaticDateRangePicker/StaticDateRangePicker.js +465 -0
  72. package/legacy/StaticDateRangePicker/index.js +1 -0
  73. package/legacy/index.js +12 -0
  74. package/legacy/internal/hooks/validation/useDateRangeValidation.js +33 -0
  75. package/legacy/internal/models/dateRange.js +1 -0
  76. package/legacy/internal/models/index.js +1 -0
  77. package/legacy/internal/utils/date-utils.js +22 -0
  78. package/legacy/internal/utils/releaseInfo.js +15 -0
  79. package/legacy/internal/utils/utils.js +1 -0
  80. package/legacy/themeAugmentation/index.js +3 -0
  81. package/modern/DateRangePicker/DateRangePicker.js +519 -0
  82. package/modern/DateRangePicker/DateRangePickerInput.js +124 -0
  83. package/modern/DateRangePicker/DateRangePickerToolbar.js +59 -0
  84. package/modern/DateRangePicker/DateRangePickerView.js +179 -0
  85. package/modern/DateRangePicker/DateRangePickerViewDesktop.js +154 -0
  86. package/modern/DateRangePicker/DateRangePickerViewMobile.js +60 -0
  87. package/modern/DateRangePicker/date-range-manager.js +43 -0
  88. package/modern/DateRangePicker/index.js +1 -0
  89. package/modern/DateRangePickerDay/DateRangePickerDay.js +290 -0
  90. package/modern/DateRangePickerDay/dateRangePickerDayClasses.js +5 -0
  91. package/modern/DateRangePickerDay/index.js +2 -0
  92. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +485 -0
  93. package/modern/DesktopDateRangePicker/index.js +1 -0
  94. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +495 -0
  95. package/modern/MobileDateRangePicker/index.js +1 -0
  96. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +455 -0
  97. package/modern/StaticDateRangePicker/index.js +1 -0
  98. package/modern/index.js +12 -0
  99. package/modern/internal/hooks/validation/useDateRangeValidation.js +27 -0
  100. package/modern/internal/models/dateRange.js +1 -0
  101. package/modern/internal/models/index.js +1 -0
  102. package/modern/internal/utils/date-utils.js +19 -0
  103. package/modern/internal/utils/releaseInfo.js +15 -0
  104. package/modern/internal/utils/utils.js +1 -0
  105. package/modern/themeAugmentation/index.js +3 -0
  106. package/node/DateRangePicker/DateRangePicker.js +540 -0
  107. package/node/DateRangePicker/DateRangePickerInput.js +148 -0
  108. package/node/DateRangePicker/DateRangePickerToolbar.js +79 -0
  109. package/node/DateRangePicker/DateRangePickerView.js +206 -0
  110. package/node/DateRangePicker/DateRangePickerViewDesktop.js +175 -0
  111. package/node/DateRangePicker/DateRangePickerViewMobile.js +80 -0
  112. package/node/DateRangePicker/date-range-manager.js +52 -0
  113. package/node/DateRangePicker/index.js +13 -0
  114. package/node/DateRangePickerDay/DateRangePickerDay.js +315 -0
  115. package/node/DateRangePickerDay/dateRangePickerDayClasses.js +16 -0
  116. package/node/DateRangePickerDay/index.js +27 -0
  117. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +506 -0
  118. package/node/DesktopDateRangePicker/index.js +13 -0
  119. package/node/MobileDateRangePicker/MobileDateRangePicker.js +516 -0
  120. package/node/MobileDateRangePicker/index.js +13 -0
  121. package/node/StaticDateRangePicker/StaticDateRangePicker.js +475 -0
  122. package/node/StaticDateRangePicker/index.js +13 -0
  123. package/node/index.js +105 -0
  124. package/node/internal/hooks/validation/useDateRangeValidation.js +40 -0
  125. package/node/internal/models/dateRange.js +5 -0
  126. package/node/internal/models/index.js +18 -0
  127. package/node/internal/utils/date-utils.js +40 -0
  128. package/node/internal/utils/releaseInfo.js +25 -0
  129. package/node/internal/utils/utils.js +10 -0
  130. package/node/themeAugmentation/index.js +44 -0
  131. package/package.json +77 -0
  132. package/themeAugmentation/components.d.ts +13 -0
  133. package/themeAugmentation/index.d.ts +3 -0
  134. package/themeAugmentation/index.js +3 -0
  135. package/themeAugmentation/overrides.d.ts +13 -0
  136. package/themeAugmentation/package.json +6 -0
  137. package/themeAugmentation/props.d.ts +12 -0
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.DateRangePickerToolbar = void 0;
9
+
10
+ var React = _interopRequireWildcard(require("react"));
11
+
12
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
13
+
14
+ var _styles = require("@mui/material/styles");
15
+
16
+ var _material = require("@mui/material");
17
+
18
+ var _internals = require("@mui/x-date-pickers/internals");
19
+
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
26
+ const classes = (0, _material.generateUtilityClasses)('PrivateDateRangePickerToolbar', ['penIcon']);
27
+ const DateRangePickerToolbarRoot = (0, _styles.styled)(_internals.PickersToolbar)({
28
+ [`& .${classes.penIcon}`]: {
29
+ position: 'relative',
30
+ top: 4
31
+ }
32
+ });
33
+ const DateRangePickerToolbarContainer = (0, _styles.styled)('div')({
34
+ display: 'flex'
35
+ });
36
+ /**
37
+ * @ignore - internal component.
38
+ */
39
+
40
+ const DateRangePickerToolbar = ({
41
+ currentlySelectingRangeEnd,
42
+ date: [start, end],
43
+ endText,
44
+ isMobileKeyboardViewOpen,
45
+ setCurrentlySelectingRangeEnd,
46
+ startText,
47
+ toggleMobileKeyboardView,
48
+ toolbarFormat,
49
+ toolbarTitle = 'Select date range'
50
+ }) => {
51
+ const utils = (0, _internals.useUtils)();
52
+ const startDateValue = start ? utils.formatByString(start, toolbarFormat || utils.formats.shortDate) : startText;
53
+ const endDateValue = end ? utils.formatByString(end, toolbarFormat || utils.formats.shortDate) : endText;
54
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(DateRangePickerToolbarRoot, {
55
+ toolbarTitle: toolbarTitle,
56
+ isMobileKeyboardViewOpen: isMobileKeyboardViewOpen,
57
+ toggleMobileKeyboardView: toggleMobileKeyboardView,
58
+ isLandscape: false,
59
+ penIconClassName: classes.penIcon,
60
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(DateRangePickerToolbarContainer, {
61
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickersToolbarButton, {
62
+ variant: start !== null ? 'h5' : 'h6',
63
+ value: startDateValue,
64
+ selected: currentlySelectingRangeEnd === 'start',
65
+ onClick: () => setCurrentlySelectingRangeEnd('start')
66
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {
67
+ variant: "h5",
68
+ children: ["\xA0", '–', "\xA0"]
69
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickersToolbarButton, {
70
+ variant: end !== null ? 'h5' : 'h6',
71
+ value: endDateValue,
72
+ selected: currentlySelectingRangeEnd === 'end',
73
+ onClick: () => setCurrentlySelectingRangeEnd('end')
74
+ })]
75
+ })
76
+ });
77
+ };
78
+
79
+ exports.DateRangePickerToolbar = DateRangePickerToolbar;
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.DateRangePickerView = DateRangePickerView;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
13
+
14
+ var React = _interopRequireWildcard(require("react"));
15
+
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+
18
+ var _xLicensePro = require("@mui/x-license-pro");
19
+
20
+ var _internals = require("@mui/x-date-pickers/internals");
21
+
22
+ var _dateUtils = require("../internal/utils/date-utils");
23
+
24
+ var _dateRangeManager = require("./date-range-manager");
25
+
26
+ var _DateRangePickerToolbar = require("./DateRangePickerToolbar");
27
+
28
+ var _DateRangePickerViewMobile = require("./DateRangePickerViewMobile");
29
+
30
+ var _DateRangePickerInput = require("./DateRangePickerInput");
31
+
32
+ var _DateRangePickerViewDesktop = require("./DateRangePickerViewDesktop");
33
+
34
+ var _releaseInfo = require("../internal/utils/releaseInfo");
35
+
36
+ var _jsxRuntime = require("react/jsx-runtime");
37
+
38
+ const _excluded = ["calendars", "className", "currentlySelectingRangeEnd", "date", "DateInputProps", "defaultCalendarMonth", "disableAutoMonthSwitching", "disableFuture", "disableHighlightToday", "disablePast", "endText", "isMobileKeyboardViewOpen", "maxDate", "minDate", "onDateChange", "onMonthChange", "open", "reduceAnimations", "setCurrentlySelectingRangeEnd", "shouldDisableDate", "showToolbar", "startText", "toggleMobileKeyboardView", "toolbarFormat", "toolbarTitle"];
39
+
40
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
41
+
42
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
+
44
+ const releaseInfo = (0, _releaseInfo.getReleaseInfo)();
45
+
46
+ /**
47
+ * @ignore - internal component.
48
+ */
49
+ function DateRangePickerView(props) {
50
+ const {
51
+ calendars,
52
+ className,
53
+ currentlySelectingRangeEnd,
54
+ date,
55
+ DateInputProps,
56
+ defaultCalendarMonth,
57
+ disableAutoMonthSwitching = false,
58
+ disableFuture,
59
+ disableHighlightToday,
60
+ disablePast,
61
+ endText,
62
+ isMobileKeyboardViewOpen,
63
+ maxDate,
64
+ minDate,
65
+ onDateChange,
66
+ onMonthChange,
67
+ open,
68
+ reduceAnimations = _internals.defaultReduceAnimations,
69
+ setCurrentlySelectingRangeEnd,
70
+ shouldDisableDate,
71
+ showToolbar,
72
+ startText,
73
+ toggleMobileKeyboardView,
74
+ toolbarFormat,
75
+ toolbarTitle
76
+ } = props,
77
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
78
+ const utils = (0, _internals.useUtils)();
79
+ const wrapperVariant = React.useContext(_internals.WrapperVariantContext);
80
+ const [start, end] = date;
81
+ const {
82
+ changeMonth,
83
+ calendarState,
84
+ isDateDisabled,
85
+ onMonthSwitchingAnimationEnd,
86
+ changeFocusedDay
87
+ } = (0, _internals.useCalendarState)({
88
+ date: start || end,
89
+ defaultCalendarMonth,
90
+ disableFuture,
91
+ disablePast,
92
+ disableSwitchToMonthOnDayFocus: true,
93
+ maxDate,
94
+ minDate,
95
+ onMonthChange,
96
+ reduceAnimations,
97
+ shouldDisableDate
98
+ });
99
+ const toShowToolbar = showToolbar != null ? showToolbar : wrapperVariant !== 'desktop';
100
+
101
+ const scrollToDayIfNeeded = day => {
102
+ if (!day || !utils.isValid(day) || isDateDisabled(day)) {
103
+ return;
104
+ }
105
+
106
+ const currentlySelectedDate = currentlySelectingRangeEnd === 'start' ? start : end;
107
+
108
+ if (currentlySelectedDate === null) {
109
+ // do not scroll if one of ages is not selected
110
+ return;
111
+ }
112
+
113
+ const displayingMonthRange = wrapperVariant === 'mobile' ? 0 : calendars - 1;
114
+ const currentMonthNumber = utils.getMonth(calendarState.currentMonth);
115
+ const requestedMonthNumber = utils.getMonth(day);
116
+
117
+ if (!utils.isSameYear(calendarState.currentMonth, day) || requestedMonthNumber < currentMonthNumber || requestedMonthNumber > currentMonthNumber + displayingMonthRange) {
118
+ const newMonth = currentlySelectingRangeEnd === 'start' ? currentlySelectedDate : // If need to focus end, scroll to the state when "end" is displaying in the last calendar
119
+ utils.addMonths(currentlySelectedDate, -displayingMonthRange);
120
+ changeMonth(newMonth);
121
+ }
122
+ };
123
+
124
+ React.useEffect(() => {
125
+ if (disableAutoMonthSwitching || !open) {
126
+ return;
127
+ }
128
+
129
+ scrollToDayIfNeeded(currentlySelectingRangeEnd === 'start' ? start : end);
130
+ }, [currentlySelectingRangeEnd, date]); // eslint-disable-line
131
+
132
+ const handleChange = React.useCallback(newDate => {
133
+ const {
134
+ nextSelection,
135
+ newRange
136
+ } = (0, _dateRangeManager.calculateRangeChange)({
137
+ newDate,
138
+ utils,
139
+ range: date,
140
+ currentlySelectingRangeEnd
141
+ });
142
+ setCurrentlySelectingRangeEnd(nextSelection);
143
+ const isFullRangeSelected = currentlySelectingRangeEnd === 'end' && (0, _dateUtils.isRangeValid)(utils, newRange);
144
+ onDateChange(newRange, wrapperVariant, isFullRangeSelected ? 'finish' : 'partial');
145
+ }, [currentlySelectingRangeEnd, date, onDateChange, setCurrentlySelectingRangeEnd, utils, wrapperVariant]);
146
+
147
+ const renderView = () => {
148
+ const sharedCalendarProps = (0, _extends2.default)({
149
+ date,
150
+ isDateDisabled,
151
+ changeFocusedDay,
152
+ onChange: handleChange,
153
+ reduceAnimations,
154
+ disableHighlightToday,
155
+ onMonthSwitchingAnimationEnd,
156
+ changeMonth,
157
+ currentlySelectingRangeEnd,
158
+ disableFuture,
159
+ disablePast,
160
+ minDate,
161
+ maxDate
162
+ }, calendarState, other);
163
+
164
+ switch (wrapperVariant) {
165
+ case 'desktop':
166
+ {
167
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DateRangePickerViewDesktop.DateRangePickerViewDesktop, (0, _extends2.default)({
168
+ calendars: calendars
169
+ }, sharedCalendarProps));
170
+ }
171
+
172
+ default:
173
+ {
174
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DateRangePickerViewMobile.DateRangePickerViewMobile, (0, _extends2.default)({}, sharedCalendarProps));
175
+ }
176
+ }
177
+ };
178
+
179
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
180
+ className: className,
181
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_xLicensePro.Watermark, {
182
+ packageName: "x-date-pickers-pro",
183
+ releaseInfo: releaseInfo
184
+ }), toShowToolbar && /*#__PURE__*/(0, _jsxRuntime.jsx)(_DateRangePickerToolbar.DateRangePickerToolbar, {
185
+ date: date,
186
+ isMobileKeyboardViewOpen: isMobileKeyboardViewOpen,
187
+ toggleMobileKeyboardView: toggleMobileKeyboardView,
188
+ currentlySelectingRangeEnd: currentlySelectingRangeEnd,
189
+ setCurrentlySelectingRangeEnd: setCurrentlySelectingRangeEnd,
190
+ startText: startText,
191
+ endText: endText,
192
+ toolbarTitle: toolbarTitle,
193
+ toolbarFormat: toolbarFormat
194
+ }), isMobileKeyboardViewOpen ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.MobileKeyboardInputView, {
195
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_DateRangePickerInput.DateRangePickerInput, (0, _extends2.default)({
196
+ disableOpenPicker: true,
197
+ ignoreInvalidInputs: true
198
+ }, DateInputProps))
199
+ }) : renderView()]
200
+ });
201
+ }
202
+
203
+ process.env.NODE_ENV !== "production" ? DateRangePickerView.propTypes = {
204
+ calendars: _propTypes.default.oneOf([1, 2, 3]),
205
+ disableAutoMonthSwitching: _propTypes.default.bool
206
+ } : void 0;
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.DateRangePickerViewDesktop = DateRangePickerViewDesktop;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
13
+
14
+ var React = _interopRequireWildcard(require("react"));
15
+
16
+ var _styles = require("@mui/material/styles");
17
+
18
+ var _internals = require("@mui/x-date-pickers/internals");
19
+
20
+ var _dateRangeManager = require("./date-range-manager");
21
+
22
+ var _DateRangePickerDay = require("../DateRangePickerDay");
23
+
24
+ var _dateUtils = require("../internal/utils/date-utils");
25
+
26
+ var _utils = require("../internal/utils/utils");
27
+
28
+ var _jsxRuntime = require("react/jsx-runtime");
29
+
30
+ const _excluded = ["calendars", "changeMonth", "components", "componentsProps", "currentlySelectingRangeEnd", "currentMonth", "date", "disableFuture", "disablePast", "leftArrowButtonText", "maxDate", "minDate", "onChange", "renderDay", "rightArrowButtonText"];
31
+
32
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
+
34
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
+
36
+ const DateRangePickerViewDesktopRoot = (0, _styles.styled)('div')({
37
+ display: 'flex',
38
+ flexDirection: 'row'
39
+ });
40
+ const DateRangePickerViewDesktopContainer = (0, _styles.styled)('div')(({
41
+ theme
42
+ }) => ({
43
+ '&:not(:last-of-type)': {
44
+ borderRight: `2px solid ${theme.palette.divider}`
45
+ }
46
+ }));
47
+ const DateRangePickerViewDesktopCalendar = (0, _styles.styled)(_internals.DayPicker)({
48
+ minWidth: 312,
49
+ minHeight: 288
50
+ });
51
+ const DateRangePickerViewDesktopArrowSwitcher = (0, _styles.styled)(_internals.PickersArrowSwitcher)({
52
+ padding: '16px 16px 8px 16px',
53
+ display: 'flex',
54
+ alignItems: 'center',
55
+ justifyContent: 'space-between'
56
+ });
57
+
58
+ function getCalendarsArray(calendars) {
59
+ switch (calendars) {
60
+ case 1:
61
+ return [0];
62
+
63
+ case 2:
64
+ return [0, 0];
65
+
66
+ case 3:
67
+ return [0, 0, 0];
68
+ // this will not work in IE11, but allows to support any amount of calendars
69
+
70
+ default:
71
+ return new Array(calendars).fill(0);
72
+ }
73
+ }
74
+ /**
75
+ * @ignore - internal component.
76
+ */
77
+
78
+
79
+ function DateRangePickerViewDesktop(props) {
80
+ const {
81
+ calendars,
82
+ changeMonth,
83
+ components,
84
+ componentsProps,
85
+ currentlySelectingRangeEnd,
86
+ currentMonth,
87
+ date,
88
+ disableFuture,
89
+ disablePast,
90
+ leftArrowButtonText = 'Previous month',
91
+ maxDate: maxDateProp,
92
+ minDate: minDateProp,
93
+ onChange,
94
+ renderDay = (_, dateRangeProps) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_DateRangePickerDay.DateRangePickerDay, (0, _extends2.default)({}, dateRangeProps)),
95
+ rightArrowButtonText = 'Next month'
96
+ } = props,
97
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
98
+ const utils = (0, _internals.useUtils)();
99
+ const defaultDates = (0, _internals.useDefaultDates)();
100
+ const minDate = minDateProp != null ? minDateProp : defaultDates.minDate;
101
+ const maxDate = maxDateProp != null ? maxDateProp : defaultDates.maxDate;
102
+ const [rangePreviewDay, setRangePreviewDay] = React.useState(null);
103
+ const isNextMonthDisabled = (0, _internals.useNextMonthDisabled)(currentMonth, {
104
+ disableFuture,
105
+ maxDate
106
+ });
107
+ const isPreviousMonthDisabled = (0, _internals.usePreviousMonthDisabled)(currentMonth, {
108
+ disablePast,
109
+ minDate
110
+ });
111
+ const previewingRange = (0, _dateRangeManager.calculateRangePreview)({
112
+ utils,
113
+ range: date,
114
+ newDate: rangePreviewDay,
115
+ currentlySelectingRangeEnd
116
+ });
117
+ const handleDayChange = React.useCallback(day => {
118
+ setRangePreviewDay(null);
119
+ onChange(day);
120
+ }, [onChange]);
121
+
122
+ const handlePreviewDayChange = newPreviewRequest => {
123
+ if (!(0, _dateUtils.isWithinRange)(utils, newPreviewRequest, date)) {
124
+ setRangePreviewDay(newPreviewRequest);
125
+ } else {
126
+ setRangePreviewDay(null);
127
+ }
128
+ };
129
+
130
+ const CalendarTransitionProps = React.useMemo(() => ({
131
+ onMouseLeave: () => setRangePreviewDay(null)
132
+ }), []);
133
+ const selectNextMonth = React.useCallback(() => {
134
+ changeMonth(utils.getNextMonth(currentMonth));
135
+ }, [changeMonth, currentMonth, utils]);
136
+ const selectPreviousMonth = React.useCallback(() => {
137
+ changeMonth(utils.getPreviousMonth(currentMonth));
138
+ }, [changeMonth, currentMonth, utils]);
139
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(DateRangePickerViewDesktopRoot, {
140
+ children: getCalendarsArray(calendars).map((_, index) => {
141
+ const monthOnIteration = utils.setMonth(currentMonth, utils.getMonth(currentMonth) + index);
142
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(DateRangePickerViewDesktopContainer, {
143
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(DateRangePickerViewDesktopArrowSwitcher, {
144
+ onLeftClick: selectPreviousMonth,
145
+ onRightClick: selectNextMonth,
146
+ isLeftHidden: index !== 0,
147
+ isRightHidden: index !== calendars - 1,
148
+ isLeftDisabled: isPreviousMonthDisabled,
149
+ isRightDisabled: isNextMonthDisabled,
150
+ leftArrowButtonText: leftArrowButtonText,
151
+ components: components,
152
+ componentsProps: componentsProps,
153
+ rightArrowButtonText: rightArrowButtonText,
154
+ children: utils.format(monthOnIteration, 'monthAndYear')
155
+ }), /*#__PURE__*/(0, React.createElement)(DateRangePickerViewDesktopCalendar, (0, _extends2.default)({}, other, {
156
+ key: index,
157
+ date: date,
158
+ onFocusedDayChange: _utils.doNothing,
159
+ onChange: handleDayChange,
160
+ currentMonth: monthOnIteration,
161
+ TransitionProps: CalendarTransitionProps,
162
+ renderDay: (day, __, DayProps) => renderDay(day, (0, _extends2.default)({
163
+ isPreviewing: (0, _dateUtils.isWithinRange)(utils, day, previewingRange),
164
+ isStartOfPreviewing: (0, _dateUtils.isStartOfRange)(utils, day, previewingRange),
165
+ isEndOfPreviewing: (0, _dateUtils.isEndOfRange)(utils, day, previewingRange),
166
+ isHighlighting: (0, _dateUtils.isWithinRange)(utils, day, date),
167
+ isStartOfHighlighting: (0, _dateUtils.isStartOfRange)(utils, day, date),
168
+ isEndOfHighlighting: (0, _dateUtils.isEndOfRange)(utils, day, date),
169
+ onMouseEnter: () => handlePreviewDayChange(day)
170
+ }, DayProps))
171
+ }))]
172
+ }, index);
173
+ })
174
+ });
175
+ }
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.DateRangePickerViewMobile = DateRangePickerViewMobile;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
13
+
14
+ var React = _interopRequireWildcard(require("react"));
15
+
16
+ var _internals = require("@mui/x-date-pickers/internals");
17
+
18
+ var _utils = require("../internal/utils/utils");
19
+
20
+ var _DateRangePickerDay = require("../DateRangePickerDay");
21
+
22
+ var _dateUtils = require("../internal/utils/date-utils");
23
+
24
+ var _jsxRuntime = require("react/jsx-runtime");
25
+
26
+ const _excluded = ["changeMonth", "components", "componentsProps", "date", "leftArrowButtonText", "maxDate", "minDate", "onChange", "renderDay", "rightArrowButtonText"];
27
+
28
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
+
30
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+
32
+ const onlyDayView = ['day'];
33
+ /**
34
+ * @ignore - internal component.
35
+ */
36
+
37
+ function DateRangePickerViewMobile(props) {
38
+ const {
39
+ changeMonth,
40
+ components,
41
+ componentsProps,
42
+ date,
43
+ leftArrowButtonText,
44
+ maxDate: maxDateProp,
45
+ minDate: minDateProp,
46
+ onChange,
47
+ renderDay = (_, dayProps) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_DateRangePickerDay.DateRangePickerDay, (0, _extends2.default)({}, dayProps)),
48
+ rightArrowButtonText
49
+ } = props,
50
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
51
+ const utils = (0, _internals.useUtils)();
52
+ const defaultDates = (0, _internals.useDefaultDates)();
53
+ const minDate = minDateProp != null ? minDateProp : defaultDates.minDate;
54
+ const maxDate = maxDateProp != null ? maxDateProp : defaultDates.maxDate;
55
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
56
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickersCalendarHeader, (0, _extends2.default)({
57
+ components: components,
58
+ componentsProps: componentsProps,
59
+ leftArrowButtonText: leftArrowButtonText,
60
+ maxDate: maxDate,
61
+ minDate: minDate,
62
+ onMonthChange: changeMonth,
63
+ openView: "day",
64
+ rightArrowButtonText: rightArrowButtonText,
65
+ views: onlyDayView
66
+ }, other)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.DayPicker, (0, _extends2.default)({}, other, {
67
+ date: date,
68
+ onChange: onChange,
69
+ onFocusedDayChange: _utils.doNothing,
70
+ renderDay: (day, _, DayProps) => renderDay(day, (0, _extends2.default)({
71
+ isPreviewing: false,
72
+ isStartOfPreviewing: false,
73
+ isEndOfPreviewing: false,
74
+ isHighlighting: (0, _dateUtils.isWithinRange)(utils, day, date),
75
+ isStartOfHighlighting: (0, _dateUtils.isStartOfRange)(utils, day, date),
76
+ isEndOfHighlighting: (0, _dateUtils.isEndOfRange)(utils, day, date)
77
+ }, DayProps))
78
+ }))]
79
+ });
80
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.calculateRangeChange = calculateRangeChange;
7
+ exports.calculateRangePreview = calculateRangePreview;
8
+
9
+ function calculateRangeChange({
10
+ utils,
11
+ range,
12
+ newDate: selectedDate,
13
+ currentlySelectingRangeEnd
14
+ }) {
15
+ const [start, end] = range;
16
+
17
+ if (currentlySelectingRangeEnd === 'start') {
18
+ return Boolean(end) && utils.isAfter(selectedDate, end) ? {
19
+ nextSelection: 'end',
20
+ newRange: [selectedDate, null]
21
+ } : {
22
+ nextSelection: 'end',
23
+ newRange: [selectedDate, end]
24
+ };
25
+ }
26
+
27
+ return Boolean(start) && utils.isBefore(selectedDate, start) ? {
28
+ nextSelection: 'end',
29
+ newRange: [selectedDate, null]
30
+ } : {
31
+ nextSelection: 'start',
32
+ newRange: [start, selectedDate]
33
+ };
34
+ }
35
+
36
+ function calculateRangePreview(options) {
37
+ if (!options.newDate) {
38
+ return [null, null];
39
+ }
40
+
41
+ const [start, end] = options.range;
42
+ const {
43
+ newRange
44
+ } = calculateRangeChange(options);
45
+
46
+ if (!start || !end) {
47
+ return newRange;
48
+ }
49
+
50
+ const [previewStart, previewEnd] = newRange;
51
+ return options.currentlySelectingRangeEnd === 'end' ? [end, previewEnd] : [previewStart, start];
52
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "DateRangePicker", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _DateRangePicker.DateRangePicker;
10
+ }
11
+ });
12
+
13
+ var _DateRangePicker = require("./DateRangePicker");