1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = void 0;
|
7 |
|
8 | var React = _interopRequireWildcard(require("react"));
|
9 |
|
10 | var _arrowRight = _interopRequireDefault(require("../icon/arrow-right.js"));
|
11 |
|
12 | var _arrowLeft = _interopRequireDefault(require("../icon/arrow-left.js"));
|
13 |
|
14 | var _triangleDown = _interopRequireDefault(require("../icon/triangle-down.js"));
|
15 |
|
16 | var _dateFnsAdapter = _interopRequireDefault(require("./utils/date-fns-adapter.js"));
|
17 |
|
18 | var _dateHelpers = _interopRequireDefault(require("./utils/date-helpers.js"));
|
19 |
|
20 | var _index = require("../menu/index.js");
|
21 |
|
22 | var _index2 = require("../popover/index.js");
|
23 |
|
24 | var _index3 = require("../locale/index.js");
|
25 |
|
26 | var _themeProvider = require("../styles/theme-provider.js");
|
27 |
|
28 | var _styledComponents = require("./styled-components.js");
|
29 |
|
30 | var _constants = require("./constants.js");
|
31 |
|
32 | var _overrides = require("../helpers/overrides.js");
|
33 |
|
34 | var _focusVisible = require("../utils/focusVisible.js");
|
35 |
|
36 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
37 |
|
38 | function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
39 |
|
40 | function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
|
41 |
|
42 | function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
43 |
|
44 | function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
45 |
|
46 | function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
47 |
|
48 | function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
49 |
|
50 | function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
51 |
|
52 | function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
53 |
|
54 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
55 |
|
56 | function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
57 |
|
58 | function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
59 |
|
60 | function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
61 |
|
62 | function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
63 |
|
64 | function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
65 |
|
66 | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
67 |
|
68 | function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
69 |
|
70 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
71 |
|
72 | var navBtnStyle = function navBtnStyle(_ref) {
|
73 | var $theme = _ref.$theme;
|
74 | return {
|
75 | cursor: 'pointer'
|
76 | };
|
77 | };
|
78 |
|
79 | var MIN_YEAR = 2000;
|
80 | var MAX_YEAR = 2030;
|
81 | var MIN_MONTH = 0;
|
82 | var MAX_MONTH = 11;
|
83 | var DIRECTION = {
|
84 | NEXT: 'next',
|
85 | PREVIOUS: 'previous'
|
86 | };
|
87 |
|
88 | function yearMonthToId(year, month) {
|
89 | return "".concat(year, "-").concat(month);
|
90 | }
|
91 |
|
92 | function idToYearMonth(id) {
|
93 | return id.split('-').map(Number);
|
94 | }
|
95 |
|
96 | var CalendarHeader =
|
97 |
|
98 | function (_React$Component) {
|
99 | _inherits(CalendarHeader, _React$Component);
|
100 |
|
101 | function CalendarHeader(props) {
|
102 | var _this;
|
103 |
|
104 | _classCallCheck(this, CalendarHeader);
|
105 |
|
106 | _this = _possibleConstructorReturn(this, _getPrototypeOf(CalendarHeader).call(this, props));
|
107 |
|
108 | _defineProperty(_assertThisInitialized(_this), "dateHelpers", void 0);
|
109 |
|
110 | _defineProperty(_assertThisInitialized(_this), "state", {
|
111 | isMonthYearDropdownOpen: false,
|
112 | isFocusVisible: false
|
113 | });
|
114 |
|
115 | _defineProperty(_assertThisInitialized(_this), "getDateProp", function () {
|
116 | return _this.props.date || _this.dateHelpers.date();
|
117 | });
|
118 |
|
119 | _defineProperty(_assertThisInitialized(_this), "handleMonthChange", function (_ref2) {
|
120 | var value = _ref2.value;
|
121 |
|
122 | if (_this.props.onMonthChange) {
|
123 |
|
124 | _this.props.onMonthChange({
|
125 | date: _this.dateHelpers.setMonth(_this.getDateProp(), value[0].id)
|
126 | });
|
127 | }
|
128 | });
|
129 |
|
130 | _defineProperty(_assertThisInitialized(_this), "handleYearChange", function (_ref3) {
|
131 | var value = _ref3.value;
|
132 |
|
133 | if (_this.props.onYearChange) {
|
134 |
|
135 | _this.props.onYearChange({
|
136 | date: _this.dateHelpers.setYear(_this.getDateProp(), value[0].id)
|
137 | });
|
138 | }
|
139 | });
|
140 |
|
141 | _defineProperty(_assertThisInitialized(_this), "increaseMonth", function () {
|
142 | if (_this.props.onMonthChange) {
|
143 |
|
144 | _this.props.onMonthChange({
|
145 | date: _this.dateHelpers.addMonths(_this.getDateProp(), 1)
|
146 | });
|
147 | }
|
148 | });
|
149 |
|
150 | _defineProperty(_assertThisInitialized(_this), "decreaseMonth", function () {
|
151 | if (_this.props.onMonthChange) {
|
152 |
|
153 | _this.props.onMonthChange({
|
154 | date: _this.dateHelpers.subMonths(_this.getDateProp(), 1)
|
155 | });
|
156 | }
|
157 | });
|
158 |
|
159 | _defineProperty(_assertThisInitialized(_this), "isMultiMonthHorizontal", function () {
|
160 | var _this$props = _this.props,
|
161 | monthsShown = _this$props.monthsShown,
|
162 | orientation = _this$props.orientation;
|
163 |
|
164 | if (!monthsShown) {
|
165 | return false;
|
166 | }
|
167 |
|
168 | return orientation === _constants.ORIENTATION.horizontal && monthsShown > 1;
|
169 | });
|
170 |
|
171 | _defineProperty(_assertThisInitialized(_this), "isHiddenPaginationButton", function (direction) {
|
172 | var _this$props2 = _this.props,
|
173 | monthsShown = _this$props2.monthsShown,
|
174 | order = _this$props2.order;
|
175 |
|
176 | if (monthsShown && _this.isMultiMonthHorizontal()) {
|
177 | if (direction === DIRECTION.NEXT) {
|
178 | var isLastMonth = order === monthsShown - 1;
|
179 | return !isLastMonth;
|
180 | } else {
|
181 | var isFirstMonth = order === 0;
|
182 | return !isFirstMonth;
|
183 | }
|
184 | }
|
185 |
|
186 | return false;
|
187 | });
|
188 |
|
189 | _defineProperty(_assertThisInitialized(_this), "handleFocus", function (event) {
|
190 | if ((0, _focusVisible.isFocusVisible)(event)) {
|
191 | _this.setState({
|
192 | isFocusVisible: true
|
193 | });
|
194 | }
|
195 | });
|
196 |
|
197 | _defineProperty(_assertThisInitialized(_this), "handleBlur", function (event) {
|
198 | if (_this.state.isFocusVisible !== false) {
|
199 | _this.setState({
|
200 | isFocusVisible: false
|
201 | });
|
202 | }
|
203 | });
|
204 |
|
205 | _defineProperty(_assertThisInitialized(_this), "renderPreviousMonthButton", function (_ref4) {
|
206 | var locale = _ref4.locale,
|
207 | theme = _ref4.theme;
|
208 |
|
209 | var date = _this.getDateProp();
|
210 |
|
211 | var _this$props$overrides = _this.props.overrides,
|
212 | overrides = _this$props$overrides === void 0 ? {} : _this$props$overrides;
|
213 |
|
214 | var allPrevDaysDisabled = _this.dateHelpers.monthDisabledBefore(date, _this.props);
|
215 |
|
216 | var isDisabled = false;
|
217 |
|
218 | if (allPrevDaysDisabled) {
|
219 | isDisabled = true;
|
220 | }
|
221 |
|
222 | var nextMonth = _this.dateHelpers.subMonths(date, 1);
|
223 |
|
224 | var minYear = _this.props.minDate ? _this.dateHelpers.getYear(_this.props.minDate) : MIN_YEAR;
|
225 |
|
226 | if (_this.dateHelpers.getYear(nextMonth) < minYear) {
|
227 | isDisabled = true;
|
228 | }
|
229 |
|
230 | var isHidden = _this.isHiddenPaginationButton(DIRECTION.PREVIOUS);
|
231 |
|
232 | if (isHidden) {
|
233 | isDisabled = true;
|
234 | }
|
235 |
|
236 | var _getOverrides = (0, _overrides.getOverrides)(overrides.PrevButton, _styledComponents.StyledPrevButton),
|
237 | _getOverrides2 = _slicedToArray(_getOverrides, 2),
|
238 | PrevButton = _getOverrides2[0],
|
239 | prevButtonProps = _getOverrides2[1];
|
240 |
|
241 | var _getOverrides3 = (0, _overrides.getOverrides)(overrides.PrevButtonIcon, theme.direction === 'rtl' ? _arrowRight.default : _arrowLeft.default),
|
242 | _getOverrides4 = _slicedToArray(_getOverrides3, 2),
|
243 | PrevButtonIcon = _getOverrides4[0],
|
244 | prevButtonIconProps = _getOverrides4[1];
|
245 |
|
246 | var clickHandler = _this.decreaseMonth;
|
247 |
|
248 | if (allPrevDaysDisabled) {
|
249 | clickHandler = null;
|
250 | }
|
251 |
|
252 | return React.createElement(PrevButton, _extends({
|
253 | "aria-label": locale.datepicker.previousMonth,
|
254 | tabIndex: 0,
|
255 | onClick: clickHandler,
|
256 | disabled: isDisabled,
|
257 | $isFocusVisible: _this.state.isFocusVisible,
|
258 | type: "button",
|
259 | $disabled: isDisabled
|
260 | }, prevButtonProps), isHidden ? null : React.createElement(PrevButtonIcon, _extends({
|
261 | size: '24px',
|
262 | overrides: {
|
263 | Svg: {
|
264 | style: navBtnStyle
|
265 | }
|
266 | }
|
267 | }, prevButtonIconProps)));
|
268 | });
|
269 |
|
270 | _defineProperty(_assertThisInitialized(_this), "renderNextMonthButton", function (_ref5) {
|
271 | var locale = _ref5.locale,
|
272 | theme = _ref5.theme;
|
273 |
|
274 | var date = _this.getDateProp();
|
275 |
|
276 | var _this$props$overrides2 = _this.props.overrides,
|
277 | overrides = _this$props$overrides2 === void 0 ? {} : _this$props$overrides2;
|
278 |
|
279 | var allNextDaysDisabled = _this.dateHelpers.monthDisabledAfter(date, _this.props);
|
280 |
|
281 | var isDisabled = false;
|
282 |
|
283 | if (allNextDaysDisabled) {
|
284 | isDisabled = true;
|
285 | }
|
286 |
|
287 | var nextMonth = _this.dateHelpers.addMonths(date, 1);
|
288 |
|
289 | var maxYear = _this.props.maxDate ? _this.dateHelpers.getYear(_this.props.maxDate) : MAX_YEAR;
|
290 |
|
291 | if (_this.dateHelpers.getYear(nextMonth) > maxYear) {
|
292 | isDisabled = true;
|
293 | }
|
294 |
|
295 | var isHidden = _this.isHiddenPaginationButton(DIRECTION.NEXT);
|
296 |
|
297 | if (isHidden) {
|
298 | isDisabled = true;
|
299 | }
|
300 |
|
301 | var _getOverrides5 = (0, _overrides.getOverrides)(overrides.NextButton, _styledComponents.StyledNextButton),
|
302 | _getOverrides6 = _slicedToArray(_getOverrides5, 2),
|
303 | NextButton = _getOverrides6[0],
|
304 | nextButtonProps = _getOverrides6[1];
|
305 |
|
306 | var _getOverrides7 = (0, _overrides.getOverrides)(overrides.NextButtonIcon, theme.direction === 'rtl' ? _arrowLeft.default : _arrowRight.default),
|
307 | _getOverrides8 = _slicedToArray(_getOverrides7, 2),
|
308 | NextButtonIcon = _getOverrides8[0],
|
309 | nextButtonIconProps = _getOverrides8[1];
|
310 |
|
311 | var clickHandler = _this.increaseMonth;
|
312 |
|
313 |
|
314 |
|
315 |
|
316 |
|
317 | if (allNextDaysDisabled) {
|
318 | clickHandler = null;
|
319 | }
|
320 |
|
321 | return React.createElement(NextButton, _extends({
|
322 | "aria-label": locale.datepicker.nextMonth,
|
323 | tabIndex: 0,
|
324 | onClick: clickHandler,
|
325 | disabled: isDisabled,
|
326 | type: "button",
|
327 | $disabled: isDisabled,
|
328 | $isFocusVisible: _this.state.isFocusVisible
|
329 | }, nextButtonProps), isHidden ? null : React.createElement(NextButtonIcon, _extends({
|
330 | size: '24px',
|
331 | overrides: {
|
332 | Svg: {
|
333 | style: navBtnStyle
|
334 | }
|
335 | }
|
336 | }, nextButtonIconProps)));
|
337 | });
|
338 |
|
339 | _defineProperty(_assertThisInitialized(_this), "canArrowsOpenDropdown", function (event) {
|
340 | if (!_this.state.isMonthYearDropdownOpen) {
|
341 | if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
|
342 | return true;
|
343 | }
|
344 | }
|
345 |
|
346 | return false;
|
347 | });
|
348 |
|
349 | _defineProperty(_assertThisInitialized(_this), "renderMonthYearDropdown", function () {
|
350 | var date = _this.getDateProp();
|
351 |
|
352 | var _this$props3 = _this.props,
|
353 | locale = _this$props3.locale,
|
354 | maxDate = _this$props3.maxDate,
|
355 | minDate = _this$props3.minDate,
|
356 | _this$props3$override = _this$props3.overrides,
|
357 | overrides = _this$props3$override === void 0 ? {} : _this$props3$override;
|
358 |
|
359 | var _getOverrides9 = (0, _overrides.getOverrides)(overrides.MonthYearSelectButton, _styledComponents.StyledMonthYearSelectButton),
|
360 | _getOverrides10 = _slicedToArray(_getOverrides9, 2),
|
361 | MonthYearSelectButton = _getOverrides10[0],
|
362 | monthYearSelectButtonProps = _getOverrides10[1];
|
363 |
|
364 | var _getOverrides11 = (0, _overrides.getOverrides)(overrides.MonthYearSelectIconContainer, _styledComponents.StyledMonthYearSelectIconContainer),
|
365 | _getOverrides12 = _slicedToArray(_getOverrides11, 2),
|
366 | MonthYearSelectIconContainer = _getOverrides12[0],
|
367 | monthYearSelectIconContainerProps = _getOverrides12[1];
|
368 |
|
369 | var _getOverrides13 = (0, _overrides.getOverrides)(overrides.MonthYearSelectPopover, _index2.Popover),
|
370 | _getOverrides14 = _slicedToArray(_getOverrides13, 2),
|
371 | OverriddenPopover = _getOverrides14[0],
|
372 | popoverProps = _getOverrides14[1];
|
373 |
|
374 | var _getOverrides15 = (0, _overrides.getOverrides)(overrides.MonthYearSelectStatefulMenu, _index.StatefulMenu),
|
375 | _getOverrides16 = _slicedToArray(_getOverrides15, 2),
|
376 | OverriddenStatefulMenu = _getOverrides16[0],
|
377 | menuProps = _getOverrides16[1];
|
378 |
|
379 | var menuOverrides = (0, _overrides.mergeOverrides)({
|
380 | List: {
|
381 | style: {
|
382 | height: 'auto',
|
383 | maxHeight: '257px'
|
384 | }
|
385 | }
|
386 | },
|
387 | menuProps && menuProps.overrides);
|
388 |
|
389 | menuProps.overrides = menuOverrides;
|
390 | var defaultMonths = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
391 | var maxYear = maxDate ? _this.dateHelpers.getYear(maxDate) : MAX_YEAR;
|
392 | var minYear = minDate ? _this.dateHelpers.getYear(minDate) : MIN_YEAR;
|
393 | var maxDateMonth = maxDate ? _this.dateHelpers.getMonth(maxDate) : MAX_MONTH;
|
394 |
|
395 | var maxYearMonths = Array.from({
|
396 | length: maxDateMonth + 1
|
397 | }, function (x, i) {
|
398 | return i;
|
399 | });
|
400 | var minDateMonth = minDate ? _this.dateHelpers.getMonth(minDate) : MIN_MONTH;
|
401 |
|
402 | var minYearMonths = Array.from({
|
403 | length: 12 - minDateMonth
|
404 | }, function (x, i) {
|
405 | return i + minDateMonth;
|
406 | });
|
407 | var items = [];
|
408 |
|
409 | var _loop = function _loop(i) {
|
410 | var months = void 0;
|
411 |
|
412 | if (i === minYear && i === maxYear) {
|
413 | months = maxYearMonths.filter(function (month) {
|
414 | return minYearMonths.includes(month);
|
415 | });
|
416 | } else if (i === minYear) {
|
417 | months = minYearMonths;
|
418 | } else if (i === maxYear) {
|
419 | months = maxYearMonths;
|
420 | } else {
|
421 | months = defaultMonths;
|
422 | }
|
423 |
|
424 | months.forEach(function (month) {
|
425 | items.push({
|
426 | id: yearMonthToId(i, month),
|
427 | label: "".concat(_this.dateHelpers.getMonthInLocale(month, locale), " ").concat(i)
|
428 | });
|
429 | });
|
430 | };
|
431 |
|
432 | for (var i = minYear; i <= maxYear; i++) {
|
433 | _loop(i);
|
434 | }
|
435 |
|
436 | var initialIndex = items.findIndex(function (item) {
|
437 | return item.id === yearMonthToId(_this.dateHelpers.getYear(date), _this.dateHelpers.getMonth(date));
|
438 | });
|
439 | var monthYearTitle = "".concat(_this.dateHelpers.getMonthInLocale(_this.dateHelpers.getMonth(date), locale), " ").concat(_this.dateHelpers.getYear(date));
|
440 | return _this.isMultiMonthHorizontal() ? React.createElement("div", null, monthYearTitle) : React.createElement(OverriddenPopover, _extends({
|
441 | placement: "bottom"
|
442 | ,
|
443 | autoFocus: true,
|
444 | focusLock: true,
|
445 | isOpen: _this.state.isMonthYearDropdownOpen,
|
446 | onClick: function onClick() {
|
447 | _this.setState(function (prev) {
|
448 | return {
|
449 | isMonthYearDropdownOpen: !prev.isMonthYearDropdownOpen
|
450 | };
|
451 | });
|
452 | },
|
453 | onClickOutside: function onClickOutside() {
|
454 | return _this.setState({
|
455 | isMonthYearDropdownOpen: false
|
456 | });
|
457 | },
|
458 | onEsc: function onEsc() {
|
459 | return _this.setState({
|
460 | isMonthYearDropdownOpen: false
|
461 | });
|
462 | },
|
463 | content: function content() {
|
464 | return React.createElement(OverriddenStatefulMenu, _extends({
|
465 | initialState: {
|
466 | highlightedIndex: initialIndex,
|
467 | isFocused: true
|
468 | },
|
469 | items: items,
|
470 | onItemSelect: function onItemSelect(_ref6) {
|
471 | var item = _ref6.item,
|
472 | event = _ref6.event;
|
473 | event.preventDefault();
|
474 |
|
475 | var _idToYearMonth = idToYearMonth(item.id),
|
476 | _idToYearMonth2 = _slicedToArray(_idToYearMonth, 2),
|
477 | year = _idToYearMonth2[0],
|
478 | month = _idToYearMonth2[1];
|
479 |
|
480 | var updatedDate = _this.dateHelpers.set(date, {
|
481 | year: year,
|
482 | month: month
|
483 | });
|
484 |
|
485 | _this.props.onMonthChange && _this.props.onMonthChange({
|
486 | date: updatedDate
|
487 | });
|
488 | _this.props.onYearChange && _this.props.onYearChange({
|
489 | date: updatedDate
|
490 | });
|
491 |
|
492 | _this.setState({
|
493 | isMonthYearDropdownOpen: false
|
494 | });
|
495 | }
|
496 | }, menuProps));
|
497 | }
|
498 | }, popoverProps), React.createElement(MonthYearSelectButton, _extends({
|
499 | "aria-live": "polite",
|
500 | type: "button",
|
501 | $isFocusVisible: _this.state.isFocusVisible,
|
502 | onKeyUp: function onKeyUp(event) {
|
503 | if (_this.canArrowsOpenDropdown(event)) {
|
504 | _this.setState({
|
505 | isMonthYearDropdownOpen: true
|
506 | });
|
507 | }
|
508 | },
|
509 | onKeyDown: function onKeyDown(event) {
|
510 | if (_this.canArrowsOpenDropdown(event)) {
|
511 |
|
512 | event.preventDefault();
|
513 | }
|
514 |
|
515 | if (event.key === 'Tab') {
|
516 | _this.setState({
|
517 | isMonthYearDropdownOpen: false
|
518 | });
|
519 | }
|
520 | }
|
521 | }, monthYearSelectButtonProps), monthYearTitle, React.createElement(MonthYearSelectIconContainer, monthYearSelectIconContainerProps, React.createElement(_triangleDown.default, {
|
522 | title: "",
|
523 | overrides: {
|
524 | Svg: {
|
525 | props: {
|
526 | role: 'presentation'
|
527 | }
|
528 | }
|
529 | }
|
530 | }))));
|
531 | });
|
532 |
|
533 | _this.dateHelpers = new _dateHelpers.default(props.adapter);
|
534 | return _this;
|
535 | }
|
536 |
|
537 | _createClass(CalendarHeader, [{
|
538 | key: "render",
|
539 | value: function render() {
|
540 | var _this2 = this;
|
541 |
|
542 | var _this$props$overrides3 = this.props.overrides,
|
543 | overrides = _this$props$overrides3 === void 0 ? {} : _this$props$overrides3;
|
544 |
|
545 | var _getOverrides17 = (0, _overrides.getOverrides)(overrides.CalendarHeader, _styledComponents.StyledCalendarHeader),
|
546 | _getOverrides18 = _slicedToArray(_getOverrides17, 2),
|
547 | CalendarHeader = _getOverrides18[0],
|
548 | calendarHeaderProps = _getOverrides18[1];
|
549 |
|
550 | var _getOverrides19 = (0, _overrides.getOverrides)(overrides.MonthHeader, _styledComponents.StyledMonthHeader),
|
551 | _getOverrides20 = _slicedToArray(_getOverrides19, 2),
|
552 | MonthHeader = _getOverrides20[0],
|
553 | monthHeaderProps = _getOverrides20[1];
|
554 |
|
555 | var _getOverrides21 = (0, _overrides.getOverrides)(overrides.WeekdayHeader, _styledComponents.StyledWeekdayHeader),
|
556 | _getOverrides22 = _slicedToArray(_getOverrides21, 2),
|
557 | WeekdayHeader = _getOverrides22[0],
|
558 | weekdayHeaderProps = _getOverrides22[1];
|
559 |
|
560 | var startOfWeek = this.dateHelpers.getStartOfWeek(this.getDateProp(), this.props.locale);
|
561 | return React.createElement(_themeProvider.ThemeContext.Consumer, null, function (theme) {
|
562 | return React.createElement(_index3.LocaleContext.Consumer, null, function (locale) {
|
563 | return React.createElement(React.Fragment, null, React.createElement(CalendarHeader, _extends({}, calendarHeaderProps, {
|
564 | onFocus: (0, _focusVisible.forkFocus)(calendarHeaderProps, _this2.handleFocus),
|
565 | onBlur: (0, _focusVisible.forkBlur)(calendarHeaderProps, _this2.handleBlur)
|
566 | }), _this2.renderPreviousMonthButton({
|
567 | locale: locale,
|
568 | theme: theme
|
569 | }), _this2.renderMonthYearDropdown(), _this2.renderNextMonthButton({
|
570 | locale: locale,
|
571 | theme: theme
|
572 | })), React.createElement(MonthHeader, _extends({
|
573 | role: "presentation"
|
574 | }, monthHeaderProps), _constants.WEEKDAYS.map(function (offset) {
|
575 | var day = _this2.dateHelpers.addDays(startOfWeek, offset);
|
576 |
|
577 | return React.createElement(WeekdayHeader, _extends({
|
578 | key: offset,
|
579 | alt: _this2.dateHelpers.getWeekdayInLocale(day, _this2.props.locale)
|
580 | }, weekdayHeaderProps), _this2.dateHelpers.getWeekdayMinInLocale(day, _this2.props.locale));
|
581 | })));
|
582 | });
|
583 | });
|
584 | }
|
585 | }]);
|
586 |
|
587 | return CalendarHeader;
|
588 | }(React.Component);
|
589 |
|
590 | exports.default = CalendarHeader;
|
591 |
|
592 | _defineProperty(CalendarHeader, "defaultProps", {
|
593 | adapter: _dateFnsAdapter.default,
|
594 | locale: null,
|
595 | maxDate: null,
|
596 | minDate: null,
|
597 | onYearChange: function onYearChange() {},
|
598 | overrides: {}
|
599 | }); |
\ | No newline at end of file |