From c7e865670cb10bb93fe04b555b74fd335e72d481 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sat, 6 May 2017 08:29:45 -0500 Subject: [PATCH] Build v5.4.3 --- lib/daypicker.js | 10 ++++++---- lib/daypicker.min.js | 20 ++++++++++--------- lib/src/DateUtils.js | 43 ++++++++++++++++++++++++++-------------- lib/src/DateUtils.js.map | 2 +- lib/src/DayPicker.js | 2 +- lib/src/DayPicker.js.map | 2 +- 6 files changed, 48 insertions(+), 31 deletions(-) diff --git a/lib/daypicker.js b/lib/daypicker.js index 31c76bf1fc..19dc1b8400 100644 --- a/lib/daypicker.js +++ b/lib/daypicker.js @@ -537,11 +537,13 @@ addDayToRange: addDayToRange, addMonths: addMonths, clone: clone, - isSameDay: isSameDay, - isDayInRange: isDayInRange, + isDayAfter: isDayAfter, + isDayBefore: isDayBefore, isDayBetween: isDayBetween, - isPastDay: isPastDay, + isDayInRange: isDayInRange, isFutureDay: isFutureDay, + isPastDay: isPastDay, + isSameDay: isSameDay, }; //# sourceMappingURL=DateUtils.js.map @@ -2044,7 +2046,7 @@ return DayPicker; })(_react.Component); - DayPicker.VERSION = '5.4.2'; + DayPicker.VERSION = '5.4.3'; DayPicker.propTypes = { // Rendering months initialMonth: _PropTypes2.default.instanceOf(Date), diff --git a/lib/daypicker.min.js b/lib/daypicker.min.js index f869b3bedf..27d2431ef6 100644 --- a/lib/daypicker.min.js +++ b/lib/daypicker.min.js @@ -146,11 +146,13 @@ addDayToRange: d, addMonths: o, clone: n, - isSameDay: r, - isDayInRange: c, + isDayAfter: i, + isDayBefore: s, isDayBetween: f, - isPastDay: u, + isDayInRange: c, isFutureDay: l, + isPastDay: u, + isSameDay: r, }); }, function(e, t, a) { @@ -589,14 +591,14 @@ j = o(W), F = a(0), q = o(F), - U = (function(e) { + B = (function(e) { function t(e) { i(this, t); var a = u( this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e) ); - return B.call(a), (a.renderDayInMonth = a.renderDayInMonth.bind( + return U.call(a), (a.renderDayInMonth = a.renderDayInMonth.bind( a )), (a.showNextMonth = a.showNextMonth.bind( a @@ -1017,7 +1019,7 @@ }, ]), t; })(c.Component); - (U.VERSION = '5.4.2'), (U.propTypes = { + (B.VERSION = '5.4.3'), (B.propTypes = { initialMonth: q.default.instanceOf(Date), month: q.default.instanceOf(Date), numberOfMonths: q.default.number, @@ -1093,7 +1095,7 @@ onDayFocus: q.default.func, onMonthChange: q.default.func, onCaptionClick: q.default.func, - }), (U.defaultProps = { + }), (B.defaultProps = { classNames: S.default, tabIndex: 0, initialMonth: new Date(), @@ -1117,7 +1119,7 @@ classNames: S.default, }), }); - var B = function() { + var U = function() { (this.getStateFromProps = function(e) { var t = N.startOfMonth(e.month || e.initialMonth), a = t; if (e.pagedNavigation && e.numberOfMonths > 1 && e.fromMonth) { @@ -1130,7 +1132,7 @@ return { currentMonth: a }; }), (this.dayPicker = null); }; - t.default = U; + t.default = B; }, function(e, t, a) { var n = a(9), o = a(2), r = a(3), s = a(6), i = a(8), u = a(7), l = a(0); diff --git a/lib/src/DateUtils.js b/lib/src/DateUtils.js index 2e6513d587..3b556aa053 100644 --- a/lib/src/DateUtils.js +++ b/lib/src/DateUtils.js @@ -1,7 +1,7 @@ -"use strict"; +'use strict'; -Object.defineProperty(exports, "__esModule", { - value: true +Object.defineProperty(exports, '__esModule', { + value: true, }); exports.clone = clone; exports.addMonths = addMonths; @@ -45,7 +45,11 @@ function isSameDay(d1, d2) { if (!d1 || !d2) { return false; } - return d1.getDate() === d2.getDate() && d1.getMonth() === d2.getMonth() && d1.getFullYear() === d2.getFullYear(); + return ( + d1.getDate() === d2.getDate() && + d1.getMonth() === d2.getMonth() && + d1.getFullYear() === d2.getFullYear() + ); } /** @@ -114,7 +118,10 @@ function isFutureDay(d) { function isDayBetween(d, d1, d2) { var date = clone(d); date.setHours(0, 0, 0, 0); - return isDayAfter(date, d1) && isDayBefore(date, d2) || isDayAfter(date, d2) && isDayBefore(date, d1); + return ( + (isDayAfter(date, d1) && isDayBefore(date, d2)) || + (isDayAfter(date, d2) && isDayBefore(date, d1)) + ); } /** @@ -126,9 +133,10 @@ function isDayBetween(d, d1, d2) { * @return {Object} Returns a new range object */ function addDayToRange(day) { - var range = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { from: null, to: null }; - var from = range.from, - to = range.to; + var range = arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : { from: null, to: null }; + var from = range.from, to = range.to; if (!from) { from = day; @@ -159,20 +167,25 @@ function addDayToRange(day) { * @return {Boolean} */ function isDayInRange(day, range) { - var from = range.from, - to = range.to; + var from = range.from, to = range.to; - return from && isSameDay(day, from) || to && isSameDay(day, to) || from && to && isDayBetween(day, from, to); + return ( + (from && isSameDay(day, from)) || + (to && isSameDay(day, to)) || + (from && to && isDayBetween(day, from, to)) + ); } exports.default = { addDayToRange: addDayToRange, addMonths: addMonths, clone: clone, - isSameDay: isSameDay, - isDayInRange: isDayInRange, + isDayAfter: isDayAfter, + isDayBefore: isDayBefore, isDayBetween: isDayBetween, + isDayInRange: isDayInRange, + isFutureDay: isFutureDay, isPastDay: isPastDay, - isFutureDay: isFutureDay + isSameDay: isSameDay, }; -//# sourceMappingURL=DateUtils.js.map \ No newline at end of file +//# sourceMappingURL=DateUtils.js.map diff --git a/lib/src/DateUtils.js.map b/lib/src/DateUtils.js.map index 3496d2b989..ed9135c525 100644 --- a/lib/src/DateUtils.js.map +++ b/lib/src/DateUtils.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../src/DateUtils.js"],"names":["clone","addMonths","isSameDay","isDayBefore","isDayAfter","isPastDay","isFutureDay","isDayBetween","addDayToRange","isDayInRange","d","Date","getTime","n","newDate","setMonth","getMonth","d1","d2","getDate","getFullYear","day1","setHours","day2","today","tomorrow","date","day","range","from","to"],"mappings":"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","file":"DateUtils.js","sourcesContent":["/**\n * Clone a date object.\n *\n * @param {Date} d The date to clone\n * @return {Date} The cloned date\n */\nexport function clone(d) {\n return new Date(d.getTime());\n}\n\n/**\n * Return `d` as a new date with `n` months added.\n * @param {[type]} d\n * @param {[type]} n\n */\nexport function addMonths(d, n) {\n const newDate = clone(d);\n newDate.setMonth(d.getMonth() + n);\n return newDate;\n}\n\n/**\n * Return `true` if two dates are the same day, ignoring the time.\n *\n * @param {Date} d1\n * @param {Date} d2\n * @return {Boolean}\n */\nexport function isSameDay(d1, d2) {\n if (!d1 || !d2) {\n return false;\n }\n return (\n d1.getDate() === d2.getDate() &&\n d1.getMonth() === d2.getMonth() &&\n d1.getFullYear() === d2.getFullYear()\n );\n}\n\n/**\n * Returns `true` if the first day is before the second day.\n * \n * @export\n * @param {Date} d1 \n * @param {Date} d2 \n * @returns {Boolean}\n */\nexport function isDayBefore(d1, d2) {\n const day1 = clone(d1).setHours(0, 0, 0, 0);\n const day2 = clone(d2).setHours(0, 0, 0, 0);\n return day1 < day2;\n}\n\n/**\n * Returns `true` if the first day is after the second day.\n * \n * @export\n * @param {Date} d1 \n * @param {Date} d2 \n * @returns {Boolean}\n */\nexport function isDayAfter(d1, d2) {\n const day1 = clone(d1).setHours(0, 0, 0, 0);\n const day2 = clone(d2).setHours(0, 0, 0, 0);\n return day1 > day2;\n}\n\n/**\n * Return `true` if a day is in the past, e.g. yesterday or any day\n * before yesterday.\n *\n * @param {Date} d\n * @return {Boolean}\n */\nexport function isPastDay(d) {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return isDayBefore(d, today);\n}\n\n/**\n * Return `true` if a day is in the future, e.g. tomorrow or any day\n * after tomorrow.\n *\n * @param {Date} d\n * @return {Boolean}\n */\nexport function isFutureDay(d) {\n const tomorrow = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);\n tomorrow.setHours(0, 0, 0, 0);\n return d >= tomorrow;\n}\n\n/**\n * Return `true` if day `d` is between days `d1` and `d2`,\n * without including them.\n *\n * @param {Date} d\n * @param {Date} d1\n * @param {Date} d2\n * @return {Boolean}\n */\nexport function isDayBetween(d, d1, d2) {\n const date = clone(d);\n date.setHours(0, 0, 0, 0);\n return (\n (isDayAfter(date, d1) && isDayBefore(date, d2)) ||\n (isDayAfter(date, d2) && isDayBefore(date, d1))\n );\n}\n\n/**\n * Add a day to a range and return a new range. A range is an object with\n * `from` and `to` days.\n *\n * @param {Date} day\n * @param {Object} range\n * @return {Object} Returns a new range object\n */\nexport function addDayToRange(day, range = { from: null, to: null }) {\n let { from, to } = range;\n if (!from) {\n from = day;\n } else if (from && to && isSameDay(from, to) && isSameDay(day, from)) {\n from = null;\n to = null;\n } else if (to && isDayBefore(day, from)) {\n from = day;\n } else if (to && isSameDay(day, to)) {\n from = day;\n to = day;\n } else {\n to = day;\n if (isDayBefore(to, from)) {\n to = from;\n from = day;\n }\n }\n\n return { from, to };\n}\n\n/**\n * Return `true` if a day is included in a range of days.\n *\n * @param {Date} day\n * @param {Object} range\n * @return {Boolean}\n */\nexport function isDayInRange(day, range) {\n const { from, to } = range;\n return (\n (from && isSameDay(day, from)) ||\n (to && isSameDay(day, to)) ||\n (from && to && isDayBetween(day, from, to))\n );\n}\n\nexport default {\n addDayToRange,\n addMonths,\n clone,\n isSameDay,\n isDayInRange,\n isDayBetween,\n isPastDay,\n isFutureDay,\n};\n"]} \ No newline at end of file +{"version":3,"sources":["../../src/DateUtils.js"],"names":["clone","addMonths","isSameDay","isDayBefore","isDayAfter","isPastDay","isFutureDay","isDayBetween","addDayToRange","isDayInRange","d","Date","getTime","n","newDate","setMonth","getMonth","d1","d2","getDate","getFullYear","day1","setHours","day2","today","tomorrow","date","day","range","from","to"],"mappings":"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","file":"DateUtils.js","sourcesContent":["/**\n * Clone a date object.\n *\n * @param {Date} d The date to clone\n * @return {Date} The cloned date\n */\nexport function clone(d) {\n return new Date(d.getTime());\n}\n\n/**\n * Return `d` as a new date with `n` months added.\n * @param {[type]} d\n * @param {[type]} n\n */\nexport function addMonths(d, n) {\n const newDate = clone(d);\n newDate.setMonth(d.getMonth() + n);\n return newDate;\n}\n\n/**\n * Return `true` if two dates are the same day, ignoring the time.\n *\n * @param {Date} d1\n * @param {Date} d2\n * @return {Boolean}\n */\nexport function isSameDay(d1, d2) {\n if (!d1 || !d2) {\n return false;\n }\n return (\n d1.getDate() === d2.getDate() &&\n d1.getMonth() === d2.getMonth() &&\n d1.getFullYear() === d2.getFullYear()\n );\n}\n\n/**\n * Returns `true` if the first day is before the second day.\n * \n * @export\n * @param {Date} d1 \n * @param {Date} d2 \n * @returns {Boolean}\n */\nexport function isDayBefore(d1, d2) {\n const day1 = clone(d1).setHours(0, 0, 0, 0);\n const day2 = clone(d2).setHours(0, 0, 0, 0);\n return day1 < day2;\n}\n\n/**\n * Returns `true` if the first day is after the second day.\n * \n * @export\n * @param {Date} d1 \n * @param {Date} d2 \n * @returns {Boolean}\n */\nexport function isDayAfter(d1, d2) {\n const day1 = clone(d1).setHours(0, 0, 0, 0);\n const day2 = clone(d2).setHours(0, 0, 0, 0);\n return day1 > day2;\n}\n\n/**\n * Return `true` if a day is in the past, e.g. yesterday or any day\n * before yesterday.\n *\n * @param {Date} d\n * @return {Boolean}\n */\nexport function isPastDay(d) {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return isDayBefore(d, today);\n}\n\n/**\n * Return `true` if a day is in the future, e.g. tomorrow or any day\n * after tomorrow.\n *\n * @param {Date} d\n * @return {Boolean}\n */\nexport function isFutureDay(d) {\n const tomorrow = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);\n tomorrow.setHours(0, 0, 0, 0);\n return d >= tomorrow;\n}\n\n/**\n * Return `true` if day `d` is between days `d1` and `d2`,\n * without including them.\n *\n * @param {Date} d\n * @param {Date} d1\n * @param {Date} d2\n * @return {Boolean}\n */\nexport function isDayBetween(d, d1, d2) {\n const date = clone(d);\n date.setHours(0, 0, 0, 0);\n return (\n (isDayAfter(date, d1) && isDayBefore(date, d2)) ||\n (isDayAfter(date, d2) && isDayBefore(date, d1))\n );\n}\n\n/**\n * Add a day to a range and return a new range. A range is an object with\n * `from` and `to` days.\n *\n * @param {Date} day\n * @param {Object} range\n * @return {Object} Returns a new range object\n */\nexport function addDayToRange(day, range = { from: null, to: null }) {\n let { from, to } = range;\n if (!from) {\n from = day;\n } else if (from && to && isSameDay(from, to) && isSameDay(day, from)) {\n from = null;\n to = null;\n } else if (to && isDayBefore(day, from)) {\n from = day;\n } else if (to && isSameDay(day, to)) {\n from = day;\n to = day;\n } else {\n to = day;\n if (isDayBefore(to, from)) {\n to = from;\n from = day;\n }\n }\n\n return { from, to };\n}\n\n/**\n * Return `true` if a day is included in a range of days.\n *\n * @param {Date} day\n * @param {Object} range\n * @return {Boolean}\n */\nexport function isDayInRange(day, range) {\n const { from, to } = range;\n return (\n (from && isSameDay(day, from)) ||\n (to && isSameDay(day, to)) ||\n (from && to && isDayBetween(day, from, to))\n );\n}\n\nexport default {\n addDayToRange,\n addMonths,\n clone,\n isDayAfter,\n isDayBefore,\n isDayBetween,\n isDayInRange,\n isFutureDay,\n isPastDay,\n isSameDay,\n};\n"]} \ No newline at end of file diff --git a/lib/src/DayPicker.js b/lib/src/DayPicker.js index 5f77819ef0..dde5f5c47c 100644 --- a/lib/src/DayPicker.js +++ b/lib/src/DayPicker.js @@ -711,7 +711,7 @@ var DayPicker = (function(_Component) { return DayPicker; })(_react.Component); -DayPicker.VERSION = '5.4.2'; +DayPicker.VERSION = '5.4.3'; DayPicker.propTypes = { // Rendering months initialMonth: _PropTypes2.default.instanceOf(Date), diff --git a/lib/src/DayPicker.js.map b/lib/src/DayPicker.js.map index 8a1d30e606..5074b9bee7 100644 --- a/lib/src/DayPicker.js.map +++ b/lib/src/DayPicker.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../src/DayPicker.js"],"names":["Helpers","DateUtils","LocaleUtils","ModifiersUtils","DayPicker","props","renderDayInMonth","bind","showNextMonth","showPreviousMonth","handleKeyDown","handleDayClick","handleDayKeyDown","state","getStateFromProps","nextProps","month","setState","outsideClassName","classNames","day","outside","dayQuery","replace","outsideDayQuery","selector","dayPicker","querySelectorAll","addMonths","currentMonth","numberOfMonths","previousMonth","allowMonth","nextMonth","d","fromMonth","toMonth","canChangeMonth","getMonthsDiff","callback","startOfMonth","onMonthChange","allowNextMonth","deltaMonths","pagedNavigation","showMonth","allowPreviousMonth","allowYearChange","getDayNodes","focus","dayNodes","length","dayNode","dayNodeIndex","indexOf","focusLastDayOfMonth","focusFirstDayOfMonth","isInLastWeekOfMonth","daysAfterIndex","nextMonthDayNodeIndex","isInFirstWeekOfMonth","previousMonthDayNodes","startOfLastWeekOfMonth","previousMonthDayNodeIndex","e","persist","keyCode","LEFT","RIGHT","UP","showPreviousYear","DOWN","showNextYear","onKeyDown","modifiers","cancelEvent","focusPreviousDay","target","focusNextDay","focusPreviousWeek","focusNextWeek","ENTER","SPACE","onDayClick","onDayKeyDown","handleOutsideDayClick","diffInMonths","labels","locale","localeUtils","navbarElement","attributes","className","navBar","getNextNavigableMonth","getPreviousNavigableMonth","showPreviousButton","showNextButton","onNextClick","onPreviousClick","dir","isValidElement","cloneElement","createElement","propModifiers","getModifiersFromProps","dayModifiers","getModifiersForDay","isSameDay","Date","Object","prototype","hasOwnProperty","call","today","push","getMonth","isOutside","tabIndex","getDate","key","getFullYear","forEach","modifier","modifiersStyles","enableOutsideDays","fixedWeeks","formatDay","onDayMouseEnter","onDayMouseLeave","onDayTouchStart","onDayTouchEnd","onDayFocus","undefined","renderDay","months","firstDayOfWeek","getFirstDayOfWeekFromProps","i","weekdayElement","captionElement","weekdaysShort","weekdaysLong","onCaptionClick","reverseMonths","reverse","container","interactionDisabled","containerProps","el","onFocus","onBlur","renderNavbar","renderMonths","VERSION","propTypes","initialMonth","instanceOf","number","bool","selectedDays","oneOfType","arrayOf","disabledDays","object","string","oneOf","shape","isRequired","body","disabled","selected","week","func","element","defaultProps","Math","floor"],"mappings":"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","file":"DayPicker.js","sourcesContent":["import React, { Component } from 'react';\nimport Caption from './Caption';\nimport Navbar from './Navbar';\nimport Month from './Month';\nimport Day from './Day';\nimport Weekday from './Weekday';\n\nimport * as Helpers from './Helpers';\nimport * as DateUtils from './DateUtils';\nimport * as LocaleUtils from './LocaleUtils';\nimport * as ModifiersUtils from './ModifiersUtils';\nimport classNames from './classNames';\n\nimport keys from './keys';\nimport PropTypes, { ModifierPropType } from './PropTypes';\n\nexport default class DayPicker extends Component {\n static VERSION = '5.4.2';\n\n static propTypes = {\n // Rendering months\n initialMonth: PropTypes.instanceOf(Date),\n month: PropTypes.instanceOf(Date),\n numberOfMonths: PropTypes.number,\n fromMonth: PropTypes.instanceOf(Date),\n toMonth: PropTypes.instanceOf(Date),\n canChangeMonth: PropTypes.bool,\n reverseMonths: PropTypes.bool,\n pagedNavigation: PropTypes.bool,\n\n // Modifiers\n selectedDays: PropTypes.oneOfType([\n ModifierPropType,\n PropTypes.arrayOf(ModifierPropType),\n ]),\n disabledDays: PropTypes.oneOfType([\n ModifierPropType,\n PropTypes.arrayOf(ModifierPropType),\n ]),\n\n modifiers: PropTypes.object,\n modifiersStyles: PropTypes.object,\n\n // Localization\n dir: PropTypes.string,\n firstDayOfWeek: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6]),\n labels: PropTypes.shape({\n nextMonth: PropTypes.string.isRequired,\n previousMonth: PropTypes.string.isRequired,\n }).isRequired,\n locale: PropTypes.string,\n localeUtils: PropTypes.localeUtils,\n months: PropTypes.arrayOf(PropTypes.string),\n weekdaysLong: PropTypes.arrayOf(PropTypes.string),\n weekdaysShort: PropTypes.arrayOf(PropTypes.string),\n\n // Customization\n enableOutsideDays: PropTypes.bool,\n fixedWeeks: PropTypes.bool,\n\n // CSS and HTML\n classNames: PropTypes.shape({\n body: PropTypes.string,\n container: PropTypes.string,\n day: PropTypes.string.isRequired,\n disabled: PropTypes.string.isRequired,\n interactionDisabled: PropTypes.string,\n month: PropTypes.string,\n navBar: PropTypes.string,\n outside: PropTypes.string.isRequired,\n selected: PropTypes.string.isRequired,\n today: PropTypes.string.isRequired,\n week: PropTypes.string,\n }),\n className: PropTypes.string,\n containerProps: PropTypes.object,\n tabIndex: PropTypes.number,\n\n // Custom elements\n renderDay: PropTypes.func,\n weekdayElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(Component),\n ]),\n navbarElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(Component),\n ]),\n captionElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(Component),\n ]),\n\n // Events\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n onKeyDown: PropTypes.func,\n onDayClick: PropTypes.func,\n onDayKeyDown: PropTypes.func,\n onDayMouseEnter: PropTypes.func,\n onDayMouseLeave: PropTypes.func,\n onDayTouchStart: PropTypes.func,\n onDayTouchEnd: PropTypes.func,\n onDayFocus: PropTypes.func,\n onMonthChange: PropTypes.func,\n onCaptionClick: PropTypes.func,\n };\n\n static defaultProps = {\n classNames,\n tabIndex: 0,\n initialMonth: new Date(),\n numberOfMonths: 1,\n labels: {\n previousMonth: 'Previous Month',\n nextMonth: 'Next Month',\n },\n locale: 'en',\n localeUtils: LocaleUtils,\n enableOutsideDays: false,\n fixedWeeks: false,\n canChangeMonth: true,\n reverseMonths: false,\n pagedNavigation: false,\n renderDay: day => day.getDate(),\n weekdayElement: ,\n navbarElement: ,\n captionElement: ,\n };\n\n constructor(props) {\n super(props);\n /* istanbul ignore next */\n // for the ignore above see: https://github.com/gotwarlost/istanbul/issues/690\n\n this.renderDayInMonth = this.renderDayInMonth.bind(this);\n this.showNextMonth = this.showNextMonth.bind(this);\n this.showPreviousMonth = this.showPreviousMonth.bind(this);\n\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleDayClick = this.handleDayClick.bind(this);\n this.handleDayKeyDown = this.handleDayKeyDown.bind(this);\n\n this.state = this.getStateFromProps(props);\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.month !== nextProps.month) {\n this.setState(this.getStateFromProps(nextProps));\n }\n }\n\n getStateFromProps = props => {\n const initialMonth = Helpers.startOfMonth(\n props.month || props.initialMonth\n );\n let currentMonth = initialMonth;\n\n if (props.pagedNavigation && props.numberOfMonths > 1 && props.fromMonth) {\n const diffInMonths = Helpers.getMonthsDiff(props.fromMonth, currentMonth);\n currentMonth = DateUtils.addMonths(\n props.fromMonth,\n Math.floor(diffInMonths / props.numberOfMonths) * props.numberOfMonths\n );\n }\n return { currentMonth };\n };\n\n getDayNodes() {\n let outsideClassName;\n if (this.props.classNames === classNames) {\n // When using CSS modules prefix the modifier as required by the BEM syntax\n outsideClassName = `${this.props.classNames.day}--${this.props.classNames.outside}`;\n } else {\n outsideClassName = `${this.props.classNames.outside}`;\n }\n const dayQuery = this.props.classNames.day.replace(/ /g, '.');\n const outsideDayQuery = outsideClassName.replace(/ /g, '.');\n const selector = `.${dayQuery}:not(.${outsideDayQuery})`;\n return this.dayPicker.querySelectorAll(selector);\n }\n\n getNextNavigableMonth() {\n return DateUtils.addMonths(\n this.state.currentMonth,\n this.props.numberOfMonths\n );\n }\n\n getPreviousNavigableMonth() {\n return DateUtils.addMonths(this.state.currentMonth, -1);\n }\n\n dayPicker = null;\n\n allowPreviousMonth() {\n const previousMonth = DateUtils.addMonths(this.state.currentMonth, -1);\n return this.allowMonth(previousMonth);\n }\n\n allowNextMonth() {\n const nextMonth = DateUtils.addMonths(\n this.state.currentMonth,\n this.props.numberOfMonths\n );\n return this.allowMonth(nextMonth);\n }\n\n allowMonth(d) {\n const { fromMonth, toMonth, canChangeMonth } = this.props;\n if (\n !canChangeMonth ||\n (fromMonth && Helpers.getMonthsDiff(fromMonth, d) < 0) ||\n (toMonth && Helpers.getMonthsDiff(toMonth, d) > 0)\n ) {\n return false;\n }\n return true;\n }\n\n allowYearChange() {\n return this.props.canChangeMonth;\n }\n\n showMonth(d, callback) {\n if (!this.allowMonth(d)) {\n return;\n }\n this.setState({ currentMonth: Helpers.startOfMonth(d) }, () => {\n if (callback) {\n callback();\n }\n if (this.props.onMonthChange) {\n this.props.onMonthChange(this.state.currentMonth);\n }\n });\n }\n\n showNextMonth(callback) {\n if (!this.allowNextMonth()) {\n return;\n }\n const deltaMonths = this.props.pagedNavigation\n ? this.props.numberOfMonths\n : 1;\n const nextMonth = DateUtils.addMonths(this.state.currentMonth, deltaMonths);\n this.showMonth(nextMonth, callback);\n }\n\n showPreviousMonth(callback) {\n if (!this.allowPreviousMonth()) {\n return;\n }\n const deltaMonths = this.props.pagedNavigation\n ? this.props.numberOfMonths\n : 1;\n const previousMonth = DateUtils.addMonths(\n this.state.currentMonth,\n -deltaMonths\n );\n this.showMonth(previousMonth, callback);\n }\n\n showNextYear() {\n if (!this.allowYearChange()) {\n return;\n }\n const nextMonth = DateUtils.addMonths(this.state.currentMonth, 12);\n this.showMonth(nextMonth);\n }\n\n showPreviousYear() {\n if (!this.allowYearChange()) {\n return;\n }\n const nextMonth = DateUtils.addMonths(this.state.currentMonth, -12);\n this.showMonth(nextMonth);\n }\n\n focusFirstDayOfMonth() {\n this.getDayNodes()[0].focus();\n }\n\n focusLastDayOfMonth() {\n const dayNodes = this.getDayNodes();\n dayNodes[dayNodes.length - 1].focus();\n }\n\n focusPreviousDay(dayNode) {\n const dayNodes = this.getDayNodes();\n const dayNodeIndex = [...dayNodes].indexOf(dayNode);\n\n if (dayNodeIndex === 0) {\n this.showPreviousMonth(() => this.focusLastDayOfMonth());\n } else {\n dayNodes[dayNodeIndex - 1].focus();\n }\n }\n\n focusNextDay(dayNode) {\n const dayNodes = this.getDayNodes();\n const dayNodeIndex = [...dayNodes].indexOf(dayNode);\n\n if (dayNodeIndex === dayNodes.length - 1) {\n this.showNextMonth(() => this.focusFirstDayOfMonth());\n } else {\n dayNodes[dayNodeIndex + 1].focus();\n }\n }\n\n focusNextWeek(dayNode) {\n const dayNodes = this.getDayNodes();\n const dayNodeIndex = [...dayNodes].indexOf(dayNode);\n const isInLastWeekOfMonth = dayNodeIndex > dayNodes.length - 8;\n\n if (isInLastWeekOfMonth) {\n this.showNextMonth(() => {\n const daysAfterIndex = dayNodes.length - dayNodeIndex;\n const nextMonthDayNodeIndex = 7 - daysAfterIndex;\n this.getDayNodes()[nextMonthDayNodeIndex].focus();\n });\n } else {\n dayNodes[dayNodeIndex + 7].focus();\n }\n }\n\n focusPreviousWeek(dayNode) {\n const dayNodes = this.getDayNodes();\n const dayNodeIndex = [...dayNodes].indexOf(dayNode);\n const isInFirstWeekOfMonth = dayNodeIndex <= 6;\n\n if (isInFirstWeekOfMonth) {\n this.showPreviousMonth(() => {\n const previousMonthDayNodes = this.getDayNodes();\n const startOfLastWeekOfMonth = previousMonthDayNodes.length - 7;\n const previousMonthDayNodeIndex = startOfLastWeekOfMonth + dayNodeIndex;\n previousMonthDayNodes[previousMonthDayNodeIndex].focus();\n });\n } else {\n dayNodes[dayNodeIndex - 7].focus();\n }\n }\n\n // Event handlers\n\n handleKeyDown(e) {\n e.persist();\n\n switch (e.keyCode) {\n case keys.LEFT:\n this.showPreviousMonth();\n break;\n case keys.RIGHT:\n this.showNextMonth();\n break;\n case keys.UP:\n this.showPreviousYear();\n break;\n case keys.DOWN:\n this.showNextYear();\n break;\n default:\n break;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n }\n\n handleDayKeyDown(day, modifiers, e) {\n e.persist();\n switch (e.keyCode) {\n case keys.LEFT:\n Helpers.cancelEvent(e);\n this.focusPreviousDay(e.target);\n break;\n case keys.RIGHT:\n Helpers.cancelEvent(e);\n this.focusNextDay(e.target);\n break;\n case keys.UP:\n Helpers.cancelEvent(e);\n this.focusPreviousWeek(e.target);\n break;\n case keys.DOWN:\n Helpers.cancelEvent(e);\n this.focusNextWeek(e.target);\n break;\n case keys.ENTER:\n case keys.SPACE:\n Helpers.cancelEvent(e);\n if (this.props.onDayClick) {\n this.handleDayClick(day, modifiers, e);\n }\n break;\n default:\n break;\n }\n if (this.props.onDayKeyDown) {\n this.props.onDayKeyDown(day, modifiers, e);\n }\n }\n\n handleDayClick(day, modifiers, e) {\n e.persist();\n if (modifiers.outside) {\n this.handleOutsideDayClick(day);\n }\n this.props.onDayClick(day, modifiers, e);\n }\n\n handleOutsideDayClick(day) {\n const { currentMonth } = this.state;\n const { numberOfMonths } = this.props;\n const diffInMonths = Helpers.getMonthsDiff(currentMonth, day);\n if (diffInMonths > 0 && diffInMonths >= numberOfMonths) {\n this.showNextMonth();\n } else if (diffInMonths < 0) {\n this.showPreviousMonth();\n }\n }\n renderNavbar() {\n const {\n labels,\n locale,\n localeUtils,\n canChangeMonth,\n navbarElement,\n ...attributes\n } = this.props;\n\n if (!canChangeMonth) return null;\n\n const props = {\n classNames: this.props.classNames,\n className: this.props.classNames.navBar,\n nextMonth: this.getNextNavigableMonth(),\n previousMonth: this.getPreviousNavigableMonth(),\n showPreviousButton: this.allowPreviousMonth(),\n showNextButton: this.allowNextMonth(),\n onNextClick: this.showNextMonth,\n onPreviousClick: this.showPreviousMonth,\n dir: attributes.dir,\n labels,\n locale,\n localeUtils,\n };\n return React.isValidElement(navbarElement)\n ? React.cloneElement(navbarElement, props)\n : React.createElement(navbarElement, props);\n }\n renderDayInMonth(day, month) {\n const propModifiers = Helpers.getModifiersFromProps(this.props);\n const dayModifiers = ModifiersUtils.getModifiersForDay(day, propModifiers);\n if (\n DateUtils.isSameDay(day, new Date()) &&\n !Object.prototype.hasOwnProperty.call(\n propModifiers,\n this.props.classNames.today\n )\n ) {\n dayModifiers.push(this.props.classNames.today);\n }\n if (day.getMonth() !== month.getMonth()) {\n dayModifiers.push(this.props.classNames.outside);\n }\n\n const isOutside = day.getMonth() !== month.getMonth();\n let tabIndex = null;\n if (this.props.onDayClick && !isOutside) {\n tabIndex = -1;\n // Focus on the first day of the month\n if (day.getDate() === 1) {\n tabIndex = this.props.tabIndex;\n }\n }\n const key = `${day.getFullYear()}${day.getMonth()}${day.getDate()}`;\n const modifiers = {};\n dayModifiers.forEach(modifier => {\n modifiers[modifier] = true;\n });\n\n return (\n -1}\n ariaSelected={dayModifiers.indexOf('selected') > -1}\n onMouseEnter={this.props.onDayMouseEnter}\n onMouseLeave={this.props.onDayMouseLeave}\n onKeyDown={this.handleDayKeyDown}\n onTouchStart={this.props.onDayTouchStart}\n onTouchEnd={this.props.onDayTouchEnd}\n onFocus={this.props.onDayFocus}\n onClick={this.props.onDayClick ? this.handleDayClick : undefined}\n >\n {this.props.renderDay(day, modifiers)}\n \n );\n }\n\n renderMonths() {\n const months = [];\n const firstDayOfWeek = Helpers.getFirstDayOfWeekFromProps(this.props);\n\n for (let i = 0; i < this.props.numberOfMonths; i += 1) {\n const month = DateUtils.addMonths(this.state.currentMonth, i);\n\n months.push(\n \n {this.renderDayInMonth}\n \n );\n }\n\n if (this.props.reverseMonths) {\n months.reverse();\n }\n return months;\n }\n\n render() {\n let className = this.props.classNames.container;\n\n if (!this.props.onDayClick) {\n className = `${className} ${this.props.classNames.interactionDisabled}`;\n }\n if (this.props.className) {\n className = `${className} ${this.props.className}`;\n }\n\n return (\n {\n this.dayPicker = el;\n }}\n role=\"application\"\n lang={this.props.locale}\n tabIndex={this.props.canChangeMonth && this.props.tabIndex}\n onKeyDown={this.handleKeyDown}\n onFocus={this.props.onFocus}\n onBlur={this.props.onBlur}\n >\n {this.renderNavbar()}\n {this.renderMonths()}\n \n );\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../src/DayPicker.js"],"names":["Helpers","DateUtils","LocaleUtils","ModifiersUtils","DayPicker","props","renderDayInMonth","bind","showNextMonth","showPreviousMonth","handleKeyDown","handleDayClick","handleDayKeyDown","state","getStateFromProps","nextProps","month","setState","outsideClassName","classNames","day","outside","dayQuery","replace","outsideDayQuery","selector","dayPicker","querySelectorAll","addMonths","currentMonth","numberOfMonths","previousMonth","allowMonth","nextMonth","d","fromMonth","toMonth","canChangeMonth","getMonthsDiff","callback","startOfMonth","onMonthChange","allowNextMonth","deltaMonths","pagedNavigation","showMonth","allowPreviousMonth","allowYearChange","getDayNodes","focus","dayNodes","length","dayNode","dayNodeIndex","indexOf","focusLastDayOfMonth","focusFirstDayOfMonth","isInLastWeekOfMonth","daysAfterIndex","nextMonthDayNodeIndex","isInFirstWeekOfMonth","previousMonthDayNodes","startOfLastWeekOfMonth","previousMonthDayNodeIndex","e","persist","keyCode","LEFT","RIGHT","UP","showPreviousYear","DOWN","showNextYear","onKeyDown","modifiers","cancelEvent","focusPreviousDay","target","focusNextDay","focusPreviousWeek","focusNextWeek","ENTER","SPACE","onDayClick","onDayKeyDown","handleOutsideDayClick","diffInMonths","labels","locale","localeUtils","navbarElement","attributes","className","navBar","getNextNavigableMonth","getPreviousNavigableMonth","showPreviousButton","showNextButton","onNextClick","onPreviousClick","dir","isValidElement","cloneElement","createElement","propModifiers","getModifiersFromProps","dayModifiers","getModifiersForDay","isSameDay","Date","Object","prototype","hasOwnProperty","call","today","push","getMonth","isOutside","tabIndex","getDate","key","getFullYear","forEach","modifier","modifiersStyles","enableOutsideDays","fixedWeeks","formatDay","onDayMouseEnter","onDayMouseLeave","onDayTouchStart","onDayTouchEnd","onDayFocus","undefined","renderDay","months","firstDayOfWeek","getFirstDayOfWeekFromProps","i","weekdayElement","captionElement","weekdaysShort","weekdaysLong","onCaptionClick","reverseMonths","reverse","container","interactionDisabled","containerProps","el","onFocus","onBlur","renderNavbar","renderMonths","VERSION","propTypes","initialMonth","instanceOf","number","bool","selectedDays","oneOfType","arrayOf","disabledDays","object","string","oneOf","shape","isRequired","body","disabled","selected","week","func","element","defaultProps","Math","floor"],"mappings":"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","file":"DayPicker.js","sourcesContent":["import React, { Component } from 'react';\nimport Caption from './Caption';\nimport Navbar from './Navbar';\nimport Month from './Month';\nimport Day from './Day';\nimport Weekday from './Weekday';\n\nimport * as Helpers from './Helpers';\nimport * as DateUtils from './DateUtils';\nimport * as LocaleUtils from './LocaleUtils';\nimport * as ModifiersUtils from './ModifiersUtils';\nimport classNames from './classNames';\n\nimport keys from './keys';\nimport PropTypes, { ModifierPropType } from './PropTypes';\n\nexport default class DayPicker extends Component {\n static VERSION = '5.4.3';\n\n static propTypes = {\n // Rendering months\n initialMonth: PropTypes.instanceOf(Date),\n month: PropTypes.instanceOf(Date),\n numberOfMonths: PropTypes.number,\n fromMonth: PropTypes.instanceOf(Date),\n toMonth: PropTypes.instanceOf(Date),\n canChangeMonth: PropTypes.bool,\n reverseMonths: PropTypes.bool,\n pagedNavigation: PropTypes.bool,\n\n // Modifiers\n selectedDays: PropTypes.oneOfType([\n ModifierPropType,\n PropTypes.arrayOf(ModifierPropType),\n ]),\n disabledDays: PropTypes.oneOfType([\n ModifierPropType,\n PropTypes.arrayOf(ModifierPropType),\n ]),\n\n modifiers: PropTypes.object,\n modifiersStyles: PropTypes.object,\n\n // Localization\n dir: PropTypes.string,\n firstDayOfWeek: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6]),\n labels: PropTypes.shape({\n nextMonth: PropTypes.string.isRequired,\n previousMonth: PropTypes.string.isRequired,\n }).isRequired,\n locale: PropTypes.string,\n localeUtils: PropTypes.localeUtils,\n months: PropTypes.arrayOf(PropTypes.string),\n weekdaysLong: PropTypes.arrayOf(PropTypes.string),\n weekdaysShort: PropTypes.arrayOf(PropTypes.string),\n\n // Customization\n enableOutsideDays: PropTypes.bool,\n fixedWeeks: PropTypes.bool,\n\n // CSS and HTML\n classNames: PropTypes.shape({\n body: PropTypes.string,\n container: PropTypes.string,\n day: PropTypes.string.isRequired,\n disabled: PropTypes.string.isRequired,\n interactionDisabled: PropTypes.string,\n month: PropTypes.string,\n navBar: PropTypes.string,\n outside: PropTypes.string.isRequired,\n selected: PropTypes.string.isRequired,\n today: PropTypes.string.isRequired,\n week: PropTypes.string,\n }),\n className: PropTypes.string,\n containerProps: PropTypes.object,\n tabIndex: PropTypes.number,\n\n // Custom elements\n renderDay: PropTypes.func,\n weekdayElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(Component),\n ]),\n navbarElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(Component),\n ]),\n captionElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(Component),\n ]),\n\n // Events\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n onKeyDown: PropTypes.func,\n onDayClick: PropTypes.func,\n onDayKeyDown: PropTypes.func,\n onDayMouseEnter: PropTypes.func,\n onDayMouseLeave: PropTypes.func,\n onDayTouchStart: PropTypes.func,\n onDayTouchEnd: PropTypes.func,\n onDayFocus: PropTypes.func,\n onMonthChange: PropTypes.func,\n onCaptionClick: PropTypes.func,\n };\n\n static defaultProps = {\n classNames,\n tabIndex: 0,\n initialMonth: new Date(),\n numberOfMonths: 1,\n labels: {\n previousMonth: 'Previous Month',\n nextMonth: 'Next Month',\n },\n locale: 'en',\n localeUtils: LocaleUtils,\n enableOutsideDays: false,\n fixedWeeks: false,\n canChangeMonth: true,\n reverseMonths: false,\n pagedNavigation: false,\n renderDay: day => day.getDate(),\n weekdayElement: ,\n navbarElement: ,\n captionElement: ,\n };\n\n constructor(props) {\n super(props);\n /* istanbul ignore next */\n // for the ignore above see: https://github.com/gotwarlost/istanbul/issues/690\n\n this.renderDayInMonth = this.renderDayInMonth.bind(this);\n this.showNextMonth = this.showNextMonth.bind(this);\n this.showPreviousMonth = this.showPreviousMonth.bind(this);\n\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleDayClick = this.handleDayClick.bind(this);\n this.handleDayKeyDown = this.handleDayKeyDown.bind(this);\n\n this.state = this.getStateFromProps(props);\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.month !== nextProps.month) {\n this.setState(this.getStateFromProps(nextProps));\n }\n }\n\n getStateFromProps = props => {\n const initialMonth = Helpers.startOfMonth(\n props.month || props.initialMonth\n );\n let currentMonth = initialMonth;\n\n if (props.pagedNavigation && props.numberOfMonths > 1 && props.fromMonth) {\n const diffInMonths = Helpers.getMonthsDiff(props.fromMonth, currentMonth);\n currentMonth = DateUtils.addMonths(\n props.fromMonth,\n Math.floor(diffInMonths / props.numberOfMonths) * props.numberOfMonths\n );\n }\n return { currentMonth };\n };\n\n getDayNodes() {\n let outsideClassName;\n if (this.props.classNames === classNames) {\n // When using CSS modules prefix the modifier as required by the BEM syntax\n outsideClassName = `${this.props.classNames.day}--${this.props.classNames.outside}`;\n } else {\n outsideClassName = `${this.props.classNames.outside}`;\n }\n const dayQuery = this.props.classNames.day.replace(/ /g, '.');\n const outsideDayQuery = outsideClassName.replace(/ /g, '.');\n const selector = `.${dayQuery}:not(.${outsideDayQuery})`;\n return this.dayPicker.querySelectorAll(selector);\n }\n\n getNextNavigableMonth() {\n return DateUtils.addMonths(\n this.state.currentMonth,\n this.props.numberOfMonths\n );\n }\n\n getPreviousNavigableMonth() {\n return DateUtils.addMonths(this.state.currentMonth, -1);\n }\n\n dayPicker = null;\n\n allowPreviousMonth() {\n const previousMonth = DateUtils.addMonths(this.state.currentMonth, -1);\n return this.allowMonth(previousMonth);\n }\n\n allowNextMonth() {\n const nextMonth = DateUtils.addMonths(\n this.state.currentMonth,\n this.props.numberOfMonths\n );\n return this.allowMonth(nextMonth);\n }\n\n allowMonth(d) {\n const { fromMonth, toMonth, canChangeMonth } = this.props;\n if (\n !canChangeMonth ||\n (fromMonth && Helpers.getMonthsDiff(fromMonth, d) < 0) ||\n (toMonth && Helpers.getMonthsDiff(toMonth, d) > 0)\n ) {\n return false;\n }\n return true;\n }\n\n allowYearChange() {\n return this.props.canChangeMonth;\n }\n\n showMonth(d, callback) {\n if (!this.allowMonth(d)) {\n return;\n }\n this.setState({ currentMonth: Helpers.startOfMonth(d) }, () => {\n if (callback) {\n callback();\n }\n if (this.props.onMonthChange) {\n this.props.onMonthChange(this.state.currentMonth);\n }\n });\n }\n\n showNextMonth(callback) {\n if (!this.allowNextMonth()) {\n return;\n }\n const deltaMonths = this.props.pagedNavigation\n ? this.props.numberOfMonths\n : 1;\n const nextMonth = DateUtils.addMonths(this.state.currentMonth, deltaMonths);\n this.showMonth(nextMonth, callback);\n }\n\n showPreviousMonth(callback) {\n if (!this.allowPreviousMonth()) {\n return;\n }\n const deltaMonths = this.props.pagedNavigation\n ? this.props.numberOfMonths\n : 1;\n const previousMonth = DateUtils.addMonths(\n this.state.currentMonth,\n -deltaMonths\n );\n this.showMonth(previousMonth, callback);\n }\n\n showNextYear() {\n if (!this.allowYearChange()) {\n return;\n }\n const nextMonth = DateUtils.addMonths(this.state.currentMonth, 12);\n this.showMonth(nextMonth);\n }\n\n showPreviousYear() {\n if (!this.allowYearChange()) {\n return;\n }\n const nextMonth = DateUtils.addMonths(this.state.currentMonth, -12);\n this.showMonth(nextMonth);\n }\n\n focusFirstDayOfMonth() {\n this.getDayNodes()[0].focus();\n }\n\n focusLastDayOfMonth() {\n const dayNodes = this.getDayNodes();\n dayNodes[dayNodes.length - 1].focus();\n }\n\n focusPreviousDay(dayNode) {\n const dayNodes = this.getDayNodes();\n const dayNodeIndex = [...dayNodes].indexOf(dayNode);\n\n if (dayNodeIndex === 0) {\n this.showPreviousMonth(() => this.focusLastDayOfMonth());\n } else {\n dayNodes[dayNodeIndex - 1].focus();\n }\n }\n\n focusNextDay(dayNode) {\n const dayNodes = this.getDayNodes();\n const dayNodeIndex = [...dayNodes].indexOf(dayNode);\n\n if (dayNodeIndex === dayNodes.length - 1) {\n this.showNextMonth(() => this.focusFirstDayOfMonth());\n } else {\n dayNodes[dayNodeIndex + 1].focus();\n }\n }\n\n focusNextWeek(dayNode) {\n const dayNodes = this.getDayNodes();\n const dayNodeIndex = [...dayNodes].indexOf(dayNode);\n const isInLastWeekOfMonth = dayNodeIndex > dayNodes.length - 8;\n\n if (isInLastWeekOfMonth) {\n this.showNextMonth(() => {\n const daysAfterIndex = dayNodes.length - dayNodeIndex;\n const nextMonthDayNodeIndex = 7 - daysAfterIndex;\n this.getDayNodes()[nextMonthDayNodeIndex].focus();\n });\n } else {\n dayNodes[dayNodeIndex + 7].focus();\n }\n }\n\n focusPreviousWeek(dayNode) {\n const dayNodes = this.getDayNodes();\n const dayNodeIndex = [...dayNodes].indexOf(dayNode);\n const isInFirstWeekOfMonth = dayNodeIndex <= 6;\n\n if (isInFirstWeekOfMonth) {\n this.showPreviousMonth(() => {\n const previousMonthDayNodes = this.getDayNodes();\n const startOfLastWeekOfMonth = previousMonthDayNodes.length - 7;\n const previousMonthDayNodeIndex = startOfLastWeekOfMonth + dayNodeIndex;\n previousMonthDayNodes[previousMonthDayNodeIndex].focus();\n });\n } else {\n dayNodes[dayNodeIndex - 7].focus();\n }\n }\n\n // Event handlers\n\n handleKeyDown(e) {\n e.persist();\n\n switch (e.keyCode) {\n case keys.LEFT:\n this.showPreviousMonth();\n break;\n case keys.RIGHT:\n this.showNextMonth();\n break;\n case keys.UP:\n this.showPreviousYear();\n break;\n case keys.DOWN:\n this.showNextYear();\n break;\n default:\n break;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n }\n\n handleDayKeyDown(day, modifiers, e) {\n e.persist();\n switch (e.keyCode) {\n case keys.LEFT:\n Helpers.cancelEvent(e);\n this.focusPreviousDay(e.target);\n break;\n case keys.RIGHT:\n Helpers.cancelEvent(e);\n this.focusNextDay(e.target);\n break;\n case keys.UP:\n Helpers.cancelEvent(e);\n this.focusPreviousWeek(e.target);\n break;\n case keys.DOWN:\n Helpers.cancelEvent(e);\n this.focusNextWeek(e.target);\n break;\n case keys.ENTER:\n case keys.SPACE:\n Helpers.cancelEvent(e);\n if (this.props.onDayClick) {\n this.handleDayClick(day, modifiers, e);\n }\n break;\n default:\n break;\n }\n if (this.props.onDayKeyDown) {\n this.props.onDayKeyDown(day, modifiers, e);\n }\n }\n\n handleDayClick(day, modifiers, e) {\n e.persist();\n if (modifiers.outside) {\n this.handleOutsideDayClick(day);\n }\n this.props.onDayClick(day, modifiers, e);\n }\n\n handleOutsideDayClick(day) {\n const { currentMonth } = this.state;\n const { numberOfMonths } = this.props;\n const diffInMonths = Helpers.getMonthsDiff(currentMonth, day);\n if (diffInMonths > 0 && diffInMonths >= numberOfMonths) {\n this.showNextMonth();\n } else if (diffInMonths < 0) {\n this.showPreviousMonth();\n }\n }\n renderNavbar() {\n const {\n labels,\n locale,\n localeUtils,\n canChangeMonth,\n navbarElement,\n ...attributes\n } = this.props;\n\n if (!canChangeMonth) return null;\n\n const props = {\n classNames: this.props.classNames,\n className: this.props.classNames.navBar,\n nextMonth: this.getNextNavigableMonth(),\n previousMonth: this.getPreviousNavigableMonth(),\n showPreviousButton: this.allowPreviousMonth(),\n showNextButton: this.allowNextMonth(),\n onNextClick: this.showNextMonth,\n onPreviousClick: this.showPreviousMonth,\n dir: attributes.dir,\n labels,\n locale,\n localeUtils,\n };\n return React.isValidElement(navbarElement)\n ? React.cloneElement(navbarElement, props)\n : React.createElement(navbarElement, props);\n }\n renderDayInMonth(day, month) {\n const propModifiers = Helpers.getModifiersFromProps(this.props);\n const dayModifiers = ModifiersUtils.getModifiersForDay(day, propModifiers);\n if (\n DateUtils.isSameDay(day, new Date()) &&\n !Object.prototype.hasOwnProperty.call(\n propModifiers,\n this.props.classNames.today\n )\n ) {\n dayModifiers.push(this.props.classNames.today);\n }\n if (day.getMonth() !== month.getMonth()) {\n dayModifiers.push(this.props.classNames.outside);\n }\n\n const isOutside = day.getMonth() !== month.getMonth();\n let tabIndex = null;\n if (this.props.onDayClick && !isOutside) {\n tabIndex = -1;\n // Focus on the first day of the month\n if (day.getDate() === 1) {\n tabIndex = this.props.tabIndex;\n }\n }\n const key = `${day.getFullYear()}${day.getMonth()}${day.getDate()}`;\n const modifiers = {};\n dayModifiers.forEach(modifier => {\n modifiers[modifier] = true;\n });\n\n return (\n -1}\n ariaSelected={dayModifiers.indexOf('selected') > -1}\n onMouseEnter={this.props.onDayMouseEnter}\n onMouseLeave={this.props.onDayMouseLeave}\n onKeyDown={this.handleDayKeyDown}\n onTouchStart={this.props.onDayTouchStart}\n onTouchEnd={this.props.onDayTouchEnd}\n onFocus={this.props.onDayFocus}\n onClick={this.props.onDayClick ? this.handleDayClick : undefined}\n >\n {this.props.renderDay(day, modifiers)}\n \n );\n }\n\n renderMonths() {\n const months = [];\n const firstDayOfWeek = Helpers.getFirstDayOfWeekFromProps(this.props);\n\n for (let i = 0; i < this.props.numberOfMonths; i += 1) {\n const month = DateUtils.addMonths(this.state.currentMonth, i);\n\n months.push(\n \n {this.renderDayInMonth}\n \n );\n }\n\n if (this.props.reverseMonths) {\n months.reverse();\n }\n return months;\n }\n\n render() {\n let className = this.props.classNames.container;\n\n if (!this.props.onDayClick) {\n className = `${className} ${this.props.classNames.interactionDisabled}`;\n }\n if (this.props.className) {\n className = `${className} ${this.props.className}`;\n }\n\n return (\n {\n this.dayPicker = el;\n }}\n role=\"application\"\n lang={this.props.locale}\n tabIndex={this.props.canChangeMonth && this.props.tabIndex}\n onKeyDown={this.handleKeyDown}\n onFocus={this.props.onFocus}\n onBlur={this.props.onBlur}\n >\n {this.renderNavbar()}\n {this.renderMonths()}\n \n );\n }\n}\n"]} \ No newline at end of file