react-day-picker 7.2.4 → 7.4.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.
@@ -78,11 +78,7 @@ var Caption = function (_Component) {
78
78
  return Caption;
79
79
  }(_react.Component);
80
80
 
81
- Caption.defaultProps = {
82
- localeUtils: _LocaleUtils2.default
83
- };
84
- exports.default = Caption;
85
- Caption.propTypes = process.env.NODE_ENV !== "production" ? {
81
+ Caption.propTypes = {
86
82
  date: _propTypes2.default.instanceOf(Date),
87
83
  months: _propTypes2.default.arrayOf(_propTypes2.default.string),
88
84
  locale: _propTypes2.default.string,
@@ -91,5 +87,9 @@ Caption.propTypes = process.env.NODE_ENV !== "production" ? {
91
87
  classNames: _propTypes2.default.shape({
92
88
  caption: _propTypes2.default.string.isRequired
93
89
  }).isRequired
94
- } : {};
90
+ };
91
+ Caption.defaultProps = {
92
+ localeUtils: _LocaleUtils2.default
93
+ };
94
+ exports.default = Caption;
95
95
  //# sourceMappingURL=Caption.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Caption.js"],"names":["Caption","props","handleKeyUp","bind","nextProps","locale","classNames","date","getMonth","getFullYear","e","keyCode","onClick","months","localeUtils","caption","formatMonthTitle","defaultProps","propTypes","instanceOf","Date","arrayOf","string","object","func","shape","isRequired"],"mappings":";;;;;;;;AAAA;;;;AACA;;;;AAEA;;;;AAEA;;;;;;;;;;IAEqBA,O;;;AAgBnB,mBAAYC,KAAZ,EAAmB;AAAA;;AAAA,kHACXA,KADW;;AAEjB,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBC,IAAjB,OAAnB;AAFiB;AAGlB;;;;0CAEqBC,S,EAAW;AAC/B,aACEA,UAAUC,MAAV,KAAqB,KAAKJ,KAAL,CAAWI,MAAhC,IACAD,UAAUE,UAAV,KAAyB,KAAKL,KAAL,CAAWK,UADpC,IAEAF,UAAUG,IAAV,CAAeC,QAAf,OAA8B,KAAKP,KAAL,CAAWM,IAAX,CAAgBC,QAAhB,EAF9B,IAGAJ,UAAUG,IAAV,CAAeE,WAAf,OAAiC,KAAKR,KAAL,CAAWM,IAAX,CAAgBE,WAAhB,EAJnC;AAMD;;;gCAEWC,C,EAAG;AACb,UAAIA,EAAEC,OAAF,gBAAJ,EAAyB;AACvB,aAAKV,KAAL,CAAWW,OAAX,CAAmBF,CAAnB;AACD;AACF;;;6BAEQ;AAAA,mBAQH,KAAKT,KARF;AAAA,UAELK,UAFK,UAELA,UAFK;AAAA,UAGLC,IAHK,UAGLA,IAHK;AAAA,UAILM,MAJK,UAILA,MAJK;AAAA,UAKLR,MALK,UAKLA,MALK;AAAA,UAMLS,WANK,UAMLA,WANK;AAAA,UAOLF,OAPK,UAOLA,OAPK;;AASP,aACE;AAAA;AAAA,UAAK,WAAWN,WAAWS,OAA3B,EAAoC,MAAK,SAAzC;AACE;AAAA;AAAA,YAAK,SAASH,OAAd,EAAuB,SAAS,KAAKV,WAArC;AACGW,mBACMA,OAAON,KAAKC,QAAL,EAAP,CADN,SACiCD,KAAKE,WAAL,EADjC,GAEGK,YAAYE,gBAAZ,CAA6BT,IAA7B,EAAmCF,MAAnC;AAHN;AADF,OADF;AASD;;;;;;AAtDkBL,O,CAYZiB,Y,GAAe;AACpBH;AADoB,C;kBAZHd,O;AAAAA,O,CACZkB,S,2CAAY;AACjBX,QAAM,oBAAUY,UAAV,CAAqBC,IAArB,CADW;AAEjBP,UAAQ,oBAAUQ,OAAV,CAAkB,oBAAUC,MAA5B,CAFS;AAGjBjB,UAAQ,oBAAUiB,MAHD;AAIjBR,eAAa,oBAAUS,MAJN;AAKjBX,WAAS,oBAAUY,IALF;AAMjBlB,cAAY,oBAAUmB,KAAV,CAAgB;AAC1BV,aAAS,oBAAUO,MAAV,CAAiBI;AADA,GAAhB,EAETA;AARc,C","file":"Caption.js","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport LocaleUtils from './LocaleUtils';\n\nimport { ENTER } from './keys';\n\nexport default class Caption extends Component {\n static propTypes = {\n date: PropTypes.instanceOf(Date),\n months: PropTypes.arrayOf(PropTypes.string),\n locale: PropTypes.string,\n localeUtils: PropTypes.object,\n onClick: PropTypes.func,\n classNames: PropTypes.shape({\n caption: PropTypes.string.isRequired,\n }).isRequired,\n };\n\n static defaultProps = {\n localeUtils: LocaleUtils,\n };\n\n constructor(props) {\n super(props);\n this.handleKeyUp = this.handleKeyUp.bind(this);\n }\n\n shouldComponentUpdate(nextProps) {\n return (\n nextProps.locale !== this.props.locale ||\n nextProps.classNames !== this.props.classNames ||\n nextProps.date.getMonth() !== this.props.date.getMonth() ||\n nextProps.date.getFullYear() !== this.props.date.getFullYear()\n );\n }\n\n handleKeyUp(e) {\n if (e.keyCode === ENTER) {\n this.props.onClick(e);\n }\n }\n\n render() {\n const {\n classNames,\n date,\n months,\n locale,\n localeUtils,\n onClick,\n } = this.props;\n return (\n <div className={classNames.caption} role=\"heading\">\n <div onClick={onClick} onKeyUp={this.handleKeyUp}>\n {months\n ? `${months[date.getMonth()]} ${date.getFullYear()}`\n : localeUtils.formatMonthTitle(date, locale)}\n </div>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/Caption.js"],"names":["Caption","props","handleKeyUp","bind","nextProps","locale","classNames","date","getMonth","getFullYear","e","keyCode","ENTER","onClick","months","localeUtils","caption","formatMonthTitle","Component","propTypes","PropTypes","instanceOf","Date","arrayOf","string","object","func","shape","isRequired","defaultProps","LocaleUtils"],"mappings":";;;;;;;;AAAA;;;;AACA;;;;AAEA;;;;AAEA;;;;;;;;;;IAEqBA,O;;;AAgBnB,mBAAYC,KAAZ,EAAmB;AAAA;;AAAA,kHACXA,KADW;;AAEjB,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBC,IAAjB,OAAnB;AAFiB;AAGlB;;;;0CAEqBC,S,EAAW;AAC/B,aACEA,UAAUC,MAAV,KAAqB,KAAKJ,KAAL,CAAWI,MAAhC,IACAD,UAAUE,UAAV,KAAyB,KAAKL,KAAL,CAAWK,UADpC,IAEAF,UAAUG,IAAV,CAAeC,QAAf,OAA8B,KAAKP,KAAL,CAAWM,IAAX,CAAgBC,QAAhB,EAF9B,IAGAJ,UAAUG,IAAV,CAAeE,WAAf,OAAiC,KAAKR,KAAL,CAAWM,IAAX,CAAgBE,WAAhB,EAJnC;AAMD;;;gCAEWC,C,EAAG;AACb,UAAIA,EAAEC,OAAF,KAAcC,WAAlB,EAAyB;AACvB,aAAKX,KAAL,CAAWY,OAAX,CAAmBH,CAAnB;AACD;AACF;;;6BAEQ;AAAA,mBAQH,KAAKT,KARF;AAAA,UAELK,UAFK,UAELA,UAFK;AAAA,UAGLC,IAHK,UAGLA,IAHK;AAAA,UAILO,MAJK,UAILA,MAJK;AAAA,UAKLT,MALK,UAKLA,MALK;AAAA,UAMLU,WANK,UAMLA,WANK;AAAA,UAOLF,OAPK,UAOLA,OAPK;;AASP,aACE;AAAA;AAAA,UAAK,WAAWP,WAAWU,OAA3B,EAAoC,MAAK,SAAzC;AACE;AAAA;AAAA,YAAK,SAASH,OAAd,EAAuB,SAAS,KAAKX,WAArC;AACGY,mBACMA,OAAOP,KAAKC,QAAL,EAAP,CADN,SACiCD,KAAKE,WAAL,EADjC,GAEGM,YAAYE,gBAAZ,CAA6BV,IAA7B,EAAmCF,MAAnC;AAHN;AADF,OADF;AASD;;;;EAtDkCa,gB;;AAAhBlB,O,CACZmB,S,GAAY;AACjBZ,QAAMa,oBAAUC,UAAV,CAAqBC,IAArB,CADW;AAEjBR,UAAQM,oBAAUG,OAAV,CAAkBH,oBAAUI,MAA5B,CAFS;AAGjBnB,UAAQe,oBAAUI,MAHD;AAIjBT,eAAaK,oBAAUK,MAJN;AAKjBZ,WAASO,oBAAUM,IALF;AAMjBpB,cAAYc,oBAAUO,KAAV,CAAgB;AAC1BX,aAASI,oBAAUI,MAAV,CAAiBI;AADA,GAAhB,EAETA;AARc,C;AADA5B,O,CAYZ6B,Y,GAAe;AACpBd,eAAae;AADO,C;kBAZH9B,O","file":"Caption.js","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport LocaleUtils from './LocaleUtils';\n\nimport { ENTER } from './keys';\n\nexport default class Caption extends Component {\n static propTypes = {\n date: PropTypes.instanceOf(Date),\n months: PropTypes.arrayOf(PropTypes.string),\n locale: PropTypes.string,\n localeUtils: PropTypes.object,\n onClick: PropTypes.func,\n classNames: PropTypes.shape({\n caption: PropTypes.string.isRequired,\n }).isRequired,\n };\n\n static defaultProps = {\n localeUtils: LocaleUtils,\n };\n\n constructor(props) {\n super(props);\n this.handleKeyUp = this.handleKeyUp.bind(this);\n }\n\n shouldComponentUpdate(nextProps) {\n return (\n nextProps.locale !== this.props.locale ||\n nextProps.classNames !== this.props.classNames ||\n nextProps.date.getMonth() !== this.props.date.getMonth() ||\n nextProps.date.getFullYear() !== this.props.date.getFullYear()\n );\n }\n\n handleKeyUp(e) {\n if (e.keyCode === ENTER) {\n this.props.onClick(e);\n }\n }\n\n render() {\n const {\n classNames,\n date,\n months,\n locale,\n localeUtils,\n onClick,\n } = this.props;\n return (\n <div className={classNames.caption} role=\"heading\">\n <div onClick={onClick} onKeyUp={this.handleKeyUp}>\n {months\n ? `${months[date.getMonth()]} ${date.getFullYear()}`\n : localeUtils.formatMonthTitle(date, locale)}\n </div>\n </div>\n );\n }\n}\n"]}
@@ -42,8 +42,8 @@ function isDate(value) {
42
42
  * Return `d` as a new date with `n` months added.
43
43
  *
44
44
  * @export
45
- * @param {[type]} d
46
- * @param {[type]} n
45
+ * @param {Date} d
46
+ * @param {number} n
47
47
  */
48
48
  function addMonths(d, n) {
49
49
  var newDate = clone(d);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/DateUtils.js"],"names":["clone","isDate","addMonths","isSameDay","isSameMonth","isDayBefore","isDayAfter","isPastDay","isFutureDay","isDayBetween","addDayToRange","isDayInRange","getWeekNumber","d","Date","getTime","value","isNaN","valueOf","n","newDate","setMonth","getMonth","d1","d2","getDate","getFullYear","day1","setHours","day2","today","tomorrow","date","day","range","from","to","setDate","getDay","Math","ceil"],"mappings":"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","file":"DateUtils.js","sourcesContent":["/**\n * Clone a date object.\n *\n * @export\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 `true` if the passed value is a valid JavaScript Date object.\n *\n * @export\n * @param {any} value\n * @returns {Boolean}\n */\nexport function isDate(value) {\n return value instanceof Date && !isNaN(value.valueOf());\n}\n\n/**\n * Return `d` as a new date with `n` months added.\n *\n * @export\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 * @export\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 * Return `true` if two dates fall in the same month.\n *\n * @export\n * @param {Date} d1\n * @param {Date} d2\n * @return {Boolean}\n */\nexport function isSameMonth(d1, d2) {\n if (!d1 || !d2) {\n return false;\n }\n return (\n d1.getMonth() === d2.getMonth() && 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 * @export\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 * @export\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 * @export\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 * @export\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 * @export\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\n/**\n * Return the year's week number (as per ISO, i.e. with the week starting from monday)\n * for the given day.\n *\n * @export\n * @param {Date} day\n * @returns {Number}\n */\nexport function getWeekNumber(day) {\n const date = clone(day);\n date.setHours(0, 0, 0);\n date.setDate(date.getDate() + 4 - (date.getDay() || 7));\n return Math.ceil(\n ((date - new Date(date.getFullYear(), 0, 1)) / 8.64e7 + 1) / 7\n );\n}\n\nexport default {\n addDayToRange,\n addMonths,\n clone,\n getWeekNumber,\n isDate,\n isDayAfter,\n isDayBefore,\n isDayBetween,\n isDayInRange,\n isFutureDay,\n isPastDay,\n isSameDay,\n isSameMonth,\n};\n"]}
1
+ {"version":3,"sources":["../../src/DateUtils.js"],"names":["clone","isDate","addMonths","isSameDay","isSameMonth","isDayBefore","isDayAfter","isPastDay","isFutureDay","isDayBetween","addDayToRange","isDayInRange","getWeekNumber","d","Date","getTime","value","isNaN","valueOf","n","newDate","setMonth","getMonth","d1","d2","getDate","getFullYear","day1","setHours","day2","today","tomorrow","date","day","range","from","to","setDate","getDay","Math","ceil"],"mappings":"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","file":"DateUtils.js","sourcesContent":["/**\n * Clone a date object.\n *\n * @export\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 `true` if the passed value is a valid JavaScript Date object.\n *\n * @export\n * @param {any} value\n * @returns {Boolean}\n */\nexport function isDate(value) {\n return value instanceof Date && !isNaN(value.valueOf());\n}\n\n/**\n * Return `d` as a new date with `n` months added.\n *\n * @export\n * @param {Date} d\n * @param {number} 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 * @export\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 * Return `true` if two dates fall in the same month.\n *\n * @export\n * @param {Date} d1\n * @param {Date} d2\n * @return {Boolean}\n */\nexport function isSameMonth(d1, d2) {\n if (!d1 || !d2) {\n return false;\n }\n return (\n d1.getMonth() === d2.getMonth() && 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 * @export\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 * @export\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 * @export\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 * @export\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 * @export\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\n/**\n * Return the year's week number (as per ISO, i.e. with the week starting from monday)\n * for the given day.\n *\n * @export\n * @param {Date} day\n * @returns {Number}\n */\nexport function getWeekNumber(day) {\n const date = clone(day);\n date.setHours(0, 0, 0);\n date.setDate(date.getDate() + 4 - (date.getDay() || 7));\n return Math.ceil(\n ((date - new Date(date.getFullYear(), 0, 1)) / 8.64e7 + 1) / 7\n );\n}\n\nexport default {\n addDayToRange,\n addMonths,\n clone,\n getWeekNumber,\n isDate,\n isDayAfter,\n isDayBefore,\n isDayBetween,\n isDayInRange,\n isFutureDay,\n isPastDay,\n isSameDay,\n isSameMonth,\n};\n"]}
package/lib/src/Day.js CHANGED
@@ -155,16 +155,7 @@ var Day = function (_Component) {
155
155
  return Day;
156
156
  }(_react.Component);
157
157
 
158
- Day.defaultProps = {
159
- tabIndex: -1
160
- };
161
- Day.defaultProps = {
162
- modifiers: {},
163
- modifiersStyles: {},
164
- empty: false
165
- };
166
- exports.default = Day;
167
- Day.propTypes = process.env.NODE_ENV !== "production" ? {
158
+ Day.propTypes = {
168
159
  classNames: _propTypes2.default.shape({
169
160
  day: _propTypes2.default.string.isRequired
170
161
  }).isRequired,
@@ -188,5 +179,14 @@ Day.propTypes = process.env.NODE_ENV !== "production" ? {
188
179
  onTouchStart: _propTypes2.default.func,
189
180
  onFocus: _propTypes2.default.func,
190
181
  tabIndex: _propTypes2.default.number
191
- } : {};
182
+ };
183
+ Day.defaultProps = {
184
+ tabIndex: -1
185
+ };
186
+ Day.defaultProps = {
187
+ modifiers: {},
188
+ modifiersStyles: {},
189
+ empty: false
190
+ };
191
+ exports.default = Day;
192
192
  //# sourceMappingURL=Day.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Day.js"],"names":["handleEvent","handler","day","modifiers","undefined","e","persist","Day","nextProps","propNames","Object","keys","props","nextPropNames","length","some","name","prop","nextProp","nextModifiers","mod","classNames","modifiersStyles","tabIndex","empty","onMouseEnter","onMouseLeave","onMouseUp","onMouseDown","onClick","onKeyDown","onTouchStart","onTouchEnd","onFocus","ariaLabel","ariaDisabled","ariaSelected","children","className","join","map","modifier","style","filter","forEach","defaultProps","propTypes","shape","string","isRequired","instanceOf","Date","node","bool","object","func","number"],"mappings":"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","file":"Day.js","sourcesContent":["/* eslint-disable jsx-a11y/no-static-element-interactions, react/forbid-prop-types */\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { isSameDay } from './DateUtils';\nimport { hasOwnProp } from './Helpers';\n\nimport defaultClassNames from './classNames';\n\nfunction handleEvent(handler, day, modifiers) {\n if (!handler) {\n return undefined;\n }\n return e => {\n e.persist();\n handler(day, modifiers, e);\n };\n}\n\nexport default class Day extends Component {\n static propTypes = {\n classNames: PropTypes.shape({\n day: PropTypes.string.isRequired,\n }).isRequired,\n\n day: PropTypes.instanceOf(Date).isRequired,\n children: PropTypes.node.isRequired,\n\n ariaDisabled: PropTypes.bool,\n ariaLabel: PropTypes.string,\n ariaSelected: PropTypes.bool,\n empty: PropTypes.bool,\n modifiers: PropTypes.object,\n modifiersStyles: PropTypes.object,\n onClick: PropTypes.func,\n onKeyDown: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onTouchStart: PropTypes.func,\n onFocus: PropTypes.func,\n tabIndex: PropTypes.number,\n };\n\n static defaultProps = {\n tabIndex: -1,\n };\n\n static defaultProps = {\n modifiers: {},\n modifiersStyles: {},\n empty: false,\n };\n\n shouldComponentUpdate(nextProps) {\n const propNames = Object.keys(this.props);\n const nextPropNames = Object.keys(nextProps);\n if (propNames.length !== nextPropNames.length) {\n return true;\n }\n return propNames.some(name => {\n if (\n name === 'modifiers' ||\n name === 'modifiersStyles' ||\n name === 'classNames'\n ) {\n const prop = this.props[name];\n const nextProp = nextProps[name];\n const modifiers = Object.keys(prop);\n const nextModifiers = Object.keys(nextProp);\n if (modifiers.length !== nextModifiers.length) {\n return true;\n }\n return modifiers.some(\n mod => !hasOwnProp(nextProp, mod) || prop[mod] !== nextProp[mod]\n );\n }\n if (name === 'day') {\n return !isSameDay(this.props[name], nextProps[name]);\n }\n return (\n !hasOwnProp(nextProps, name) || this.props[name] !== nextProps[name]\n );\n });\n }\n\n render() {\n const {\n classNames,\n modifiersStyles,\n day,\n tabIndex,\n empty,\n modifiers,\n onMouseEnter,\n onMouseLeave,\n onMouseUp,\n onMouseDown,\n onClick,\n onKeyDown,\n onTouchStart,\n onTouchEnd,\n onFocus,\n ariaLabel,\n ariaDisabled,\n ariaSelected,\n children,\n } = this.props;\n\n let className = classNames.day;\n if (classNames !== defaultClassNames) {\n // When using CSS modules prefix the modifier as required by the BEM syntax\n className += ` ${Object.keys(modifiers).join(' ')}`;\n } else {\n className += Object.keys(modifiers)\n .map(modifier => ` ${className}--${modifier}`)\n .join('');\n }\n\n let style;\n if (modifiersStyles) {\n Object.keys(modifiers)\n .filter(modifier => !!modifiersStyles[modifier])\n .forEach(modifier => {\n style = { ...style, ...modifiersStyles[modifier] };\n });\n }\n\n if (empty) {\n return <div aria-disabled className={className} style={style} />;\n }\n return (\n <div\n className={className}\n tabIndex={tabIndex}\n style={style}\n role=\"gridcell\"\n aria-label={ariaLabel}\n aria-disabled={ariaDisabled}\n aria-selected={ariaSelected}\n onClick={handleEvent(onClick, day, modifiers)}\n onKeyDown={handleEvent(onKeyDown, day, modifiers)}\n onMouseEnter={handleEvent(onMouseEnter, day, modifiers)}\n onMouseLeave={handleEvent(onMouseLeave, day, modifiers)}\n onMouseUp={handleEvent(onMouseUp, day, modifiers)}\n onMouseDown={handleEvent(onMouseDown, day, modifiers)}\n onTouchEnd={handleEvent(onTouchEnd, day, modifiers)}\n onTouchStart={handleEvent(onTouchStart, day, modifiers)}\n onFocus={handleEvent(onFocus, day, modifiers)}\n >\n {children}\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/Day.js"],"names":["handleEvent","handler","day","modifiers","undefined","e","persist","Day","nextProps","propNames","Object","keys","props","nextPropNames","length","some","name","prop","nextProp","nextModifiers","mod","classNames","modifiersStyles","tabIndex","empty","onMouseEnter","onMouseLeave","onMouseUp","onMouseDown","onClick","onKeyDown","onTouchStart","onTouchEnd","onFocus","ariaLabel","ariaDisabled","ariaSelected","children","className","defaultClassNames","join","map","modifier","style","filter","forEach","Component","propTypes","PropTypes","shape","string","isRequired","instanceOf","Date","node","bool","object","func","number","defaultProps"],"mappings":"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","file":"Day.js","sourcesContent":["/* eslint-disable jsx-a11y/no-static-element-interactions, react/forbid-prop-types */\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { isSameDay } from './DateUtils';\nimport { hasOwnProp } from './Helpers';\n\nimport defaultClassNames from './classNames';\n\nfunction handleEvent(handler, day, modifiers) {\n if (!handler) {\n return undefined;\n }\n return e => {\n e.persist();\n handler(day, modifiers, e);\n };\n}\n\nexport default class Day extends Component {\n static propTypes = {\n classNames: PropTypes.shape({\n day: PropTypes.string.isRequired,\n }).isRequired,\n\n day: PropTypes.instanceOf(Date).isRequired,\n children: PropTypes.node.isRequired,\n\n ariaDisabled: PropTypes.bool,\n ariaLabel: PropTypes.string,\n ariaSelected: PropTypes.bool,\n empty: PropTypes.bool,\n modifiers: PropTypes.object,\n modifiersStyles: PropTypes.object,\n onClick: PropTypes.func,\n onKeyDown: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onTouchStart: PropTypes.func,\n onFocus: PropTypes.func,\n tabIndex: PropTypes.number,\n };\n\n static defaultProps = {\n tabIndex: -1,\n };\n\n static defaultProps = {\n modifiers: {},\n modifiersStyles: {},\n empty: false,\n };\n\n shouldComponentUpdate(nextProps) {\n const propNames = Object.keys(this.props);\n const nextPropNames = Object.keys(nextProps);\n if (propNames.length !== nextPropNames.length) {\n return true;\n }\n return propNames.some(name => {\n if (\n name === 'modifiers' ||\n name === 'modifiersStyles' ||\n name === 'classNames'\n ) {\n const prop = this.props[name];\n const nextProp = nextProps[name];\n const modifiers = Object.keys(prop);\n const nextModifiers = Object.keys(nextProp);\n if (modifiers.length !== nextModifiers.length) {\n return true;\n }\n return modifiers.some(\n mod => !hasOwnProp(nextProp, mod) || prop[mod] !== nextProp[mod]\n );\n }\n if (name === 'day') {\n return !isSameDay(this.props[name], nextProps[name]);\n }\n return (\n !hasOwnProp(nextProps, name) || this.props[name] !== nextProps[name]\n );\n });\n }\n\n render() {\n const {\n classNames,\n modifiersStyles,\n day,\n tabIndex,\n empty,\n modifiers,\n onMouseEnter,\n onMouseLeave,\n onMouseUp,\n onMouseDown,\n onClick,\n onKeyDown,\n onTouchStart,\n onTouchEnd,\n onFocus,\n ariaLabel,\n ariaDisabled,\n ariaSelected,\n children,\n } = this.props;\n\n let className = classNames.day;\n if (classNames !== defaultClassNames) {\n // When using CSS modules prefix the modifier as required by the BEM syntax\n className += ` ${Object.keys(modifiers).join(' ')}`;\n } else {\n className += Object.keys(modifiers)\n .map(modifier => ` ${className}--${modifier}`)\n .join('');\n }\n\n let style;\n if (modifiersStyles) {\n Object.keys(modifiers)\n .filter(modifier => !!modifiersStyles[modifier])\n .forEach(modifier => {\n style = { ...style, ...modifiersStyles[modifier] };\n });\n }\n\n if (empty) {\n return <div aria-disabled className={className} style={style} />;\n }\n return (\n <div\n className={className}\n tabIndex={tabIndex}\n style={style}\n role=\"gridcell\"\n aria-label={ariaLabel}\n aria-disabled={ariaDisabled}\n aria-selected={ariaSelected}\n onClick={handleEvent(onClick, day, modifiers)}\n onKeyDown={handleEvent(onKeyDown, day, modifiers)}\n onMouseEnter={handleEvent(onMouseEnter, day, modifiers)}\n onMouseLeave={handleEvent(onMouseLeave, day, modifiers)}\n onMouseUp={handleEvent(onMouseUp, day, modifiers)}\n onMouseDown={handleEvent(onMouseDown, day, modifiers)}\n onTouchEnd={handleEvent(onTouchEnd, day, modifiers)}\n onTouchStart={handleEvent(onTouchStart, day, modifiers)}\n onFocus={handleEvent(onFocus, day, modifiers)}\n >\n {children}\n </div>\n );\n }\n}\n"]}
@@ -100,16 +100,28 @@ var DayPicker = exports.DayPicker = function (_Component) {
100
100
 
101
101
  switch (e.keyCode) {
102
102
  case _keys.LEFT:
103
- _this.showPreviousMonth();
103
+ if (_this.props.dir === 'rtl') {
104
+ _this.showNextMonth();
105
+ } else {
106
+ _this.showPreviousMonth();
107
+ }
108
+ Helpers.cancelEvent(e);
104
109
  break;
105
110
  case _keys.RIGHT:
106
- _this.showNextMonth();
111
+ if (_this.props.dir === 'rtl') {
112
+ _this.showPreviousMonth();
113
+ } else {
114
+ _this.showNextMonth();
115
+ }
116
+ Helpers.cancelEvent(e);
107
117
  break;
108
118
  case _keys.UP:
109
119
  _this.showPreviousYear();
120
+ Helpers.cancelEvent(e);
110
121
  break;
111
122
  case _keys.DOWN:
112
123
  _this.showNextYear();
124
+ Helpers.cancelEvent(e);
113
125
  break;
114
126
  default:
115
127
  break;
@@ -122,14 +134,23 @@ var DayPicker = exports.DayPicker = function (_Component) {
122
134
 
123
135
  _this.handleDayKeyDown = function (day, modifiers, e) {
124
136
  e.persist();
137
+
125
138
  switch (e.keyCode) {
126
139
  case _keys.LEFT:
127
140
  Helpers.cancelEvent(e);
128
- _this.focusPreviousDay(e.target);
141
+ if (_this.props.dir === 'rtl') {
142
+ _this.focusNextDay(e.target);
143
+ } else {
144
+ _this.focusPreviousDay(e.target);
145
+ }
129
146
  break;
130
147
  case _keys.RIGHT:
131
148
  Helpers.cancelEvent(e);
132
- _this.focusNextDay(e.target);
149
+ if (_this.props.dir === 'rtl') {
150
+ _this.focusPreviousDay(e.target);
151
+ } else {
152
+ _this.focusNextDay(e.target);
153
+ }
133
154
  break;
134
155
  case _keys.UP:
135
156
  Helpers.cancelEvent(e);
@@ -291,6 +312,11 @@ var DayPicker = exports.DayPicker = function (_Component) {
291
312
  var nextMonth = DateUtils.addMonths(this.state.currentMonth, -12);
292
313
  this.showMonth(nextMonth);
293
314
  }
315
+ }, {
316
+ key: 'focus',
317
+ value: function focus() {
318
+ this.wrapper.focus();
319
+ }
294
320
  }, {
295
321
  key: 'focusFirstDayOfMonth',
296
322
  value: function focusFirstDayOfMonth() {
@@ -494,6 +520,9 @@ var DayPicker = exports.DayPicker = function (_Component) {
494
520
  'div',
495
521
  {
496
522
  className: this.props.classNames.wrapper,
523
+ ref: function ref(el) {
524
+ return _this7.wrapper = el;
525
+ },
497
526
  tabIndex: this.props.canChangeMonth && typeof this.props.tabIndex !== 'undefined' ? this.props.tabIndex : -1,
498
527
  onKeyDown: this.handleKeyDown,
499
528
  onFocus: this.props.onFocus,
@@ -514,37 +543,8 @@ var DayPicker = exports.DayPicker = function (_Component) {
514
543
  return DayPicker;
515
544
  }(_react.Component);
516
545
 
517
- DayPicker.VERSION = '7.2.4';
518
- DayPicker.defaultProps = {
519
- classNames: _classNames2.default,
520
- tabIndex: 0,
521
- initialMonth: new Date(),
522
- numberOfMonths: 1,
523
- labels: {
524
- previousMonth: 'Previous Month',
525
- nextMonth: 'Next Month'
526
- },
527
- locale: 'en',
528
- localeUtils: LocaleUtils,
529
- showOutsideDays: false,
530
- enableOutsideDaysClick: true,
531
- fixedWeeks: false,
532
- canChangeMonth: true,
533
- reverseMonths: false,
534
- pagedNavigation: false,
535
- showWeekNumbers: false,
536
- showWeekDays: true,
537
- renderDay: function renderDay(day) {
538
- return day.getDate();
539
- },
540
- renderWeek: function renderWeek(weekNumber) {
541
- return weekNumber;
542
- },
543
- weekdayElement: _react2.default.createElement(_Weekday2.default, null),
544
- navbarElement: _react2.default.createElement(_Navbar2.default, { classNames: _classNames2.default }),
545
- captionElement: _react2.default.createElement(_Caption2.default, { classNames: _classNames2.default })
546
- };
547
- DayPicker.propTypes = process.env.NODE_ENV !== "production" ? {
546
+ DayPicker.VERSION = '7.4.0';
547
+ DayPicker.propTypes = {
548
548
  // Rendering months
549
549
  initialMonth: _propTypes2.default.instanceOf(Date),
550
550
  month: _propTypes2.default.instanceOf(Date),
@@ -634,7 +634,36 @@ DayPicker.propTypes = process.env.NODE_ENV !== "production" ? {
634
634
  onCaptionClick: _propTypes2.default.func,
635
635
  onWeekClick: _propTypes2.default.func,
636
636
  onTodayButtonClick: _propTypes2.default.func
637
- } : {};
637
+ };
638
+ DayPicker.defaultProps = {
639
+ classNames: _classNames2.default,
640
+ tabIndex: 0,
641
+ initialMonth: new Date(),
642
+ numberOfMonths: 1,
643
+ labels: {
644
+ previousMonth: 'Previous Month',
645
+ nextMonth: 'Next Month'
646
+ },
647
+ locale: 'en',
648
+ localeUtils: LocaleUtils,
649
+ showOutsideDays: false,
650
+ enableOutsideDaysClick: true,
651
+ fixedWeeks: false,
652
+ canChangeMonth: true,
653
+ reverseMonths: false,
654
+ pagedNavigation: false,
655
+ showWeekNumbers: false,
656
+ showWeekDays: true,
657
+ renderDay: function renderDay(day) {
658
+ return day.getDate();
659
+ },
660
+ renderWeek: function renderWeek(weekNumber) {
661
+ return weekNumber;
662
+ },
663
+ weekdayElement: _react2.default.createElement(_Weekday2.default, null),
664
+ navbarElement: _react2.default.createElement(_Navbar2.default, { classNames: _classNames2.default }),
665
+ captionElement: _react2.default.createElement(_Caption2.default, { classNames: _classNames2.default })
666
+ };
638
667
 
639
668
 
640
669
  DayPicker.DateUtils = DateUtils;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/DayPicker.js"],"names":["Helpers","DateUtils","LocaleUtils","ModifiersUtils","DayPicker","props","dayPicker","showNextMonth","allowNextMonth","deltaMonths","pagedNavigation","numberOfMonths","nextMonth","addMonths","state","currentMonth","showMonth","callback","showPreviousMonth","allowPreviousMonth","previousMonth","handleKeyDown","e","persist","keyCode","showPreviousYear","showNextYear","onKeyDown","handleDayKeyDown","day","modifiers","cancelEvent","focusPreviousDay","target","focusNextDay","focusPreviousWeek","focusNextWeek","onDayClick","handleDayClick","onDayKeyDown","classNames","outside","enableOutsideDaysClick","handleOutsideDayClick","handleTodayButtonClick","today","Date","month","getFullYear","getMonth","blur","onTodayButtonClick","getDate","getModifiersForDay","getCurrentMonthFromProps","prevProps","isSameMonth","setState","initialMonth","startOfMonth","fromMonth","diffInMonths","getMonthsDiff","Math","floor","toMonth","allowMonth","d","canChangeMonth","onMonthChange","allowYearChange","getDayNodes","focus","dayNodes","length","dayNode","dayNodeIndex","nodeListToArray","indexOf","focusLastDayOfMonth","focusFirstDayOfMonth","isInLastWeekOfMonth","daysAfterIndex","nextMonthDayNodeIndex","isInFirstWeekOfMonth","previousMonthDayNodes","startOfLastWeekOfMonth","previousMonthDayNodeIndex","labels","locale","localeUtils","navbarElement","attributes","className","navBar","getNextNavigableMonth","getPreviousNavigableMonth","showPreviousButton","showNextButton","onNextClick","onPreviousClick","dir","isValidElement","cloneElement","createElement","months","firstDayOfWeek","getFirstDayOfWeekFromProps","i","push","reverseMonths","reverse","todayButton","footer","renderTodayButton","container","interactionDisabled","containerProps","el","wrapper","tabIndex","onFocus","onBlur","renderNavbar","renderMonths","renderFooter","VERSION","defaultProps","showOutsideDays","fixedWeeks","showWeekNumbers","showWeekDays","renderDay","renderWeek","weekNumber","weekdayElement","captionElement","propTypes","instanceOf","number","bool","string","selectedDays","oneOfType","object","func","array","disabledDays","modifiersStyles","oneOf","shape","isRequired","formatMonthTitle","formatWeekdayShort","formatWeekdayLong","getFirstDayOfWeek","arrayOf","weekdaysLong","weekdaysShort","body","disabled","selected","week","element","onDayMouseEnter","onDayMouseLeave","onDayMouseDown","onDayMouseUp","onDayTouchStart","onDayTouchEnd","onDayFocus","onCaptionClick","onWeekClick"],"mappings":";;;;;;;;;;;AAAA;;;;AACA;;;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AAEA;;IAAYA,O;;AACZ;;IAAYC,S;;AACZ;;IAAYC,W;;AACZ;;IAAYC,c;;AACZ;;;;AAEA;;;;;;;;;;;;;;IAEaC,S,WAAAA,S;;;AA+IX,qBAAYC,KAAZ,EAAmB;AAAA;;AAAA,sHACXA,KADW;;AAAA,UAFnBC,SAEmB,GAFP,IAEO;;AAAA,UA2GnBC,aA3GmB,GA2GH,oBAAY;AAC1B,UAAI,CAAC,MAAKC,cAAL,EAAL,EAA4B;AAC1B;AACD;AACD,UAAMC,cAAc,MAAKJ,KAAL,CAAWK,eAAX,GAChB,MAAKL,KAAL,CAAWM,cADK,GAEhB,CAFJ;AAGA,UAAMC,YAAYX,UAAUY,SAAV,CAAoB,MAAKC,KAAL,CAAWC,YAA/B,EAA6CN,WAA7C,CAAlB;AACA,YAAKO,SAAL,CAAeJ,SAAf,EAA0BK,QAA1B;AACD,KApHkB;;AAAA,UAsHnBC,iBAtHmB,GAsHC,oBAAY;AAC9B,UAAI,CAAC,MAAKC,kBAAL,EAAL,EAAgC;AAC9B;AACD;AACD,UAAMV,cAAc,MAAKJ,KAAL,CAAWK,eAAX,GAChB,MAAKL,KAAL,CAAWM,cADK,GAEhB,CAFJ;AAGA,UAAMS,gBAAgBnB,UAAUY,SAAV,CACpB,MAAKC,KAAL,CAAWC,YADS,EAEpB,CAACN,WAFmB,CAAtB;AAIA,YAAKO,SAAL,CAAeI,aAAf,EAA8BH,QAA9B;AACD,KAlIkB;;AAAA,UA2NnBI,aA3NmB,GA2NH,aAAK;AACnBC,QAAEC,OAAF;;AAEA,cAAQD,EAAEE,OAAV;AACE;AACE,gBAAKN,iBAAL;AACA;AACF;AACE,gBAAKX,aAAL;AACA;AACF;AACE,gBAAKkB,gBAAL;AACA;AACF;AACE,gBAAKC,YAAL;AACA;AACF;AACE;AAdJ;;AAiBA,UAAI,MAAKrB,KAAL,CAAWsB,SAAf,EAA0B;AACxB,cAAKtB,KAAL,CAAWsB,SAAX,CAAqBL,CAArB;AACD;AACF,KAlPkB;;AAAA,UAoPnBM,gBApPmB,GAoPA,UAACC,GAAD,EAAMC,SAAN,EAAiBR,CAAjB,EAAuB;AACxCA,QAAEC,OAAF;AACA,cAAQD,EAAEE,OAAV;AACE;AACExB,kBAAQ+B,WAAR,CAAoBT,CAApB;AACA,gBAAKU,gBAAL,CAAsBV,EAAEW,MAAxB;AACA;AACF;AACEjC,kBAAQ+B,WAAR,CAAoBT,CAApB;AACA,gBAAKY,YAAL,CAAkBZ,EAAEW,MAApB;AACA;AACF;AACEjC,kBAAQ+B,WAAR,CAAoBT,CAApB;AACA,gBAAKa,iBAAL,CAAuBb,EAAEW,MAAzB;AACA;AACF;AACEjC,kBAAQ+B,WAAR,CAAoBT,CAApB;AACA,gBAAKc,aAAL,CAAmBd,EAAEW,MAArB;AACA;AACF;AACA;AACEjC,kBAAQ+B,WAAR,CAAoBT,CAApB;AACA,cAAI,MAAKjB,KAAL,CAAWgC,UAAf,EAA2B;AACzB,kBAAKC,cAAL,CAAoBT,GAApB,EAAyBC,SAAzB,EAAoCR,CAApC;AACD;AACD;AACF;AACE;AAzBJ;AA2BA,UAAI,MAAKjB,KAAL,CAAWkC,YAAf,EAA6B;AAC3B,cAAKlC,KAAL,CAAWkC,YAAX,CAAwBV,GAAxB,EAA6BC,SAA7B,EAAwCR,CAAxC;AACD;AACF,KApRkB;;AAAA,UAsRnBgB,cAtRmB,GAsRF,UAACT,GAAD,EAAMC,SAAN,EAAiBR,CAAjB,EAAuB;AACtCA,QAAEC,OAAF;;AAEA,UACEO,UAAU,MAAKzB,KAAL,CAAWmC,UAAX,CAAsBC,OAAhC,KACA,MAAKpC,KAAL,CAAWqC,sBAFb,EAGE;AACA,cAAKC,qBAAL,CAA2Bd,GAA3B;AACD;AACD,UAAI,MAAKxB,KAAL,CAAWgC,UAAf,EAA2B;AACzB,cAAKhC,KAAL,CAAWgC,UAAX,CAAsBR,GAAtB,EAA2BC,SAA3B,EAAsCR,CAAtC;AACD;AACF,KAlSkB;;AAAA,UA+SnBsB,sBA/SmB,GA+SM,aAAK;AAC5B,UAAMC,QAAQ,IAAIC,IAAJ,EAAd;AACA,UAAMC,QAAQ,IAAID,IAAJ,CAASD,MAAMG,WAAN,EAAT,EAA8BH,MAAMI,QAAN,EAA9B,CAAd;AACA,YAAKjC,SAAL,CAAe+B,KAAf;AACAzB,QAAEW,MAAF,CAASiB,IAAT;AACA,UAAI,MAAK7C,KAAL,CAAW8C,kBAAf,EAAmC;AACjC7B,UAAEC,OAAF;AACA,cAAKlB,KAAL,CAAW8C,kBAAX,CACE,IAAIL,IAAJ,CAASD,MAAMG,WAAN,EAAT,EAA8BH,MAAMI,QAAN,EAA9B,EAAgDJ,MAAMO,OAAN,EAAhD,CADF,EAEEjD,eAAekD,kBAAf,CAAkCR,KAAlC,EAAyC,MAAKxC,KAAL,CAAWyB,SAApD,CAFF,EAGER,CAHF;AAKD;AACF,KA5TkB;;AAGjB,QAAMP,eAAe,MAAKuC,wBAAL,CAA8BjD,KAA9B,CAArB;AACA,UAAKS,KAAL,GAAa,EAAEC,0BAAF,EAAb;AAJiB;AAKlB;;;;uCAEkBwC,S,EAAW;AAC5B;AACA,UACEA,UAAUR,KAAV,KAAoB,KAAK1C,KAAL,CAAW0C,KAA/B,IACA,CAAC9C,UAAUuD,WAAV,CAAsBD,UAAUR,KAAhC,EAAuC,KAAK1C,KAAL,CAAW0C,KAAlD,CAFH,EAGE;AACA,YAAMhC,eAAe,KAAKuC,wBAAL,CAA8B,KAAKjD,KAAnC,CAArB;AACA;AACA,aAAKoD,QAAL,CAAc,EAAE1C,0BAAF,EAAd;AACD;AACF;;AAED;;;;;;;;;;;6CAQyBV,K,EAAO;AAC9B,UAAMqD,eAAe1D,QAAQ2D,YAAR,CACnBtD,MAAM0C,KAAN,IAAe1C,MAAMqD,YADF,CAArB;AAGA,UAAI3C,eAAe2C,YAAnB;;AAEA,UAAIrD,MAAMK,eAAN,IAAyBL,MAAMM,cAAN,GAAuB,CAAhD,IAAqDN,MAAMuD,SAA/D,EAA0E;AACxE,YAAMA,YAAY5D,QAAQ2D,YAAR,CAAqBtD,MAAMuD,SAA3B,CAAlB;AACA,YAAMC,eAAe7D,QAAQ8D,aAAR,CAAsBF,SAAtB,EAAiC7C,YAAjC,CAArB;AACAA,uBAAed,UAAUY,SAAV,CACb+C,SADa,EAEbG,KAAKC,KAAL,CAAWH,eAAexD,MAAMM,cAAhC,IAAkDN,MAAMM,cAF3C,CAAf;AAID,OAPD,MAOO,IACLN,MAAM4D,OAAN,IACA5D,MAAMM,cAAN,GAAuB,CADvB,IAEAX,QAAQ8D,aAAR,CAAsB/C,YAAtB,EAAoCV,MAAM4D,OAA1C,KAAsD,CAHjD,EAIL;AACAlD,uBAAed,UAAUY,SAAV,CACbb,QAAQ2D,YAAR,CAAqBtD,MAAM4D,OAA3B,CADa,EAEb,IAAI,KAAK5D,KAAL,CAAWM,cAFF,CAAf;AAID;AACD,aAAOI,YAAP;AACD;;;4CAEuB;AACtB,aAAOd,UAAUY,SAAV,CACL,KAAKC,KAAL,CAAWC,YADN,EAEL,KAAKV,KAAL,CAAWM,cAFN,CAAP;AAID;;;gDAE2B;AAC1B,aAAOV,UAAUY,SAAV,CAAoB,KAAKC,KAAL,CAAWC,YAA/B,EAA6C,CAAC,CAA9C,CAAP;AACD;;;yCAEoB;AACnB,UAAMK,gBAAgBnB,UAAUY,SAAV,CAAoB,KAAKC,KAAL,CAAWC,YAA/B,EAA6C,CAAC,CAA9C,CAAtB;AACA,aAAO,KAAKmD,UAAL,CAAgB9C,aAAhB,CAAP;AACD;;;qCAEgB;AACf,UAAMR,YAAYX,UAAUY,SAAV,CAChB,KAAKC,KAAL,CAAWC,YADK,EAEhB,KAAKV,KAAL,CAAWM,cAFK,CAAlB;AAIA,aAAO,KAAKuD,UAAL,CAAgBtD,SAAhB,CAAP;AACD;;;+BAEUuD,C,EAAG;AAAA,mBACmC,KAAK9D,KADxC;AAAA,UACJuD,SADI,UACJA,SADI;AAAA,UACOK,OADP,UACOA,OADP;AAAA,UACgBG,cADhB,UACgBA,cADhB;;AAEZ,UACE,CAACA,cAAD,IACCR,aAAa5D,QAAQ8D,aAAR,CAAsBF,SAAtB,EAAiCO,CAAjC,IAAsC,CADpD,IAECF,WAAWjE,QAAQ8D,aAAR,CAAsBG,OAAtB,EAA+BE,CAA/B,IAAoC,CAHlD,EAIE;AACA,eAAO,KAAP;AACD;AACD,aAAO,IAAP;AACD;;;sCAEiB;AAChB,aAAO,KAAK9D,KAAL,CAAW+D,cAAlB;AACD;;;8BAESD,C,EAAGlD,Q,EAAU;AAAA;;AACrB,UAAI,CAAC,KAAKiD,UAAL,CAAgBC,CAAhB,CAAL,EAAyB;AACvB;AACD;AACD,WAAKV,QAAL,CAAc,EAAE1C,cAAcf,QAAQ2D,YAAR,CAAqBQ,CAArB,CAAhB,EAAd,EAAyD,YAAM;AAC7D,YAAIlD,QAAJ,EAAc;AACZA;AACD;AACD,YAAI,OAAKZ,KAAL,CAAWgE,aAAf,EAA8B;AAC5B,iBAAKhE,KAAL,CAAWgE,aAAX,CAAyB,OAAKvD,KAAL,CAAWC,YAApC;AACD;AACF,OAPD;AAQD;;;mCA2Bc;AACb,UAAI,CAAC,KAAKuD,eAAL,EAAL,EAA6B;AAC3B;AACD;AACD,UAAM1D,YAAYX,UAAUY,SAAV,CAAoB,KAAKC,KAAL,CAAWC,YAA/B,EAA6C,EAA7C,CAAlB;AACA,WAAKC,SAAL,CAAeJ,SAAf;AACD;;;uCAEkB;AACjB,UAAI,CAAC,KAAK0D,eAAL,EAAL,EAA6B;AAC3B;AACD;AACD,UAAM1D,YAAYX,UAAUY,SAAV,CAAoB,KAAKC,KAAL,CAAWC,YAA/B,EAA6C,CAAC,EAA9C,CAAlB;AACA,WAAKC,SAAL,CAAeJ,SAAf;AACD;;;2CAEsB;AACrBZ,cAAQuE,WAAR,CAAoB,KAAKjE,SAAzB,EAAoC,KAAKD,KAAL,CAAWmC,UAA/C,EAA2D,CAA3D,EAA8DgC,KAA9D;AACD;;;0CAEqB;AACpB,UAAMC,WAAWzE,QAAQuE,WAAR,CAAoB,KAAKjE,SAAzB,EAAoC,KAAKD,KAAL,CAAWmC,UAA/C,CAAjB;AACAiC,eAASA,SAASC,MAAT,GAAkB,CAA3B,EAA8BF,KAA9B;AACD;;;qCAEgBG,O,EAAS;AAAA;;AACxB,UAAMF,WAAWzE,QAAQuE,WAAR,CAAoB,KAAKjE,SAAzB,EAAoC,KAAKD,KAAL,CAAWmC,UAA/C,CAAjB;AACA,UAAMoC,eAAe5E,QAAQ6E,eAAR,CAAwBJ,QAAxB,EAAkCK,OAAlC,CAA0CH,OAA1C,CAArB;AACA,UAAIC,iBAAiB,CAAC,CAAtB,EAAyB;AACzB,UAAIA,iBAAiB,CAArB,EAAwB;AACtB,aAAK1D,iBAAL,CAAuB;AAAA,iBAAM,OAAK6D,mBAAL,EAAN;AAAA,SAAvB;AACD,OAFD,MAEO;AACLN,iBAASG,eAAe,CAAxB,EAA2BJ,KAA3B;AACD;AACF;;;iCAEYG,O,EAAS;AAAA;;AACpB,UAAMF,WAAWzE,QAAQuE,WAAR,CAAoB,KAAKjE,SAAzB,EAAoC,KAAKD,KAAL,CAAWmC,UAA/C,CAAjB;AACA,UAAMoC,eAAe5E,QAAQ6E,eAAR,CAAwBJ,QAAxB,EAAkCK,OAAlC,CAA0CH,OAA1C,CAArB;AACA,UAAIC,iBAAiB,CAAC,CAAtB,EAAyB;AACzB,UAAIA,iBAAiBH,SAASC,MAAT,GAAkB,CAAvC,EAA0C;AACxC,aAAKnE,aAAL,CAAmB;AAAA,iBAAM,OAAKyE,oBAAL,EAAN;AAAA,SAAnB;AACD,OAFD,MAEO;AACLP,iBAASG,eAAe,CAAxB,EAA2BJ,KAA3B;AACD;AACF;;;kCAEaG,O,EAAS;AAAA;;AACrB,UAAMF,WAAWzE,QAAQuE,WAAR,CAAoB,KAAKjE,SAAzB,EAAoC,KAAKD,KAAL,CAAWmC,UAA/C,CAAjB;AACA,UAAMoC,eAAe5E,QAAQ6E,eAAR,CAAwBJ,QAAxB,EAAkCK,OAAlC,CAA0CH,OAA1C,CAArB;AACA,UAAMM,sBAAsBL,eAAeH,SAASC,MAAT,GAAkB,CAA7D;;AAEA,UAAIO,mBAAJ,EAAyB;AACvB,aAAK1E,aAAL,CAAmB,YAAM;AACvB,cAAM2E,iBAAiBT,SAASC,MAAT,GAAkBE,YAAzC;AACA,cAAMO,wBAAwB,IAAID,cAAlC;AACAlF,kBAAQuE,WAAR,CAAoB,OAAKjE,SAAzB,EAAoC,OAAKD,KAAL,CAAWmC,UAA/C,EACE2C,qBADF,EAEEX,KAFF;AAGD,SAND;AAOD,OARD,MAQO;AACLC,iBAASG,eAAe,CAAxB,EAA2BJ,KAA3B;AACD;AACF;;;sCAEiBG,O,EAAS;AAAA;;AACzB,UAAMF,WAAWzE,QAAQuE,WAAR,CAAoB,KAAKjE,SAAzB,EAAoC,KAAKD,KAAL,CAAWmC,UAA/C,CAAjB;AACA,UAAMoC,eAAe5E,QAAQ6E,eAAR,CAAwBJ,QAAxB,EAAkCK,OAAlC,CAA0CH,OAA1C,CAArB;AACA,UAAMS,uBAAuBR,gBAAgB,CAA7C;;AAEA,UAAIQ,oBAAJ,EAA0B;AACxB,aAAKlE,iBAAL,CAAuB,YAAM;AAC3B,cAAMmE,wBAAwBrF,QAAQuE,WAAR,CAC5B,OAAKjE,SADuB,EAE5B,OAAKD,KAAL,CAAWmC,UAFiB,CAA9B;AAIA,cAAM8C,yBAAyBD,sBAAsBX,MAAtB,GAA+B,CAA9D;AACA,cAAMa,4BAA4BD,yBAAyBV,YAA3D;AACAS,gCAAsBE,yBAAtB,EAAiDf,KAAjD;AACD,SARD;AASD,OAVD,MAUO;AACLC,iBAASG,eAAe,CAAxB,EAA2BJ,KAA3B;AACD;AACF;;AAED;;;;0CA2EsB3C,G,EAAK;AAAA,UACjBd,YADiB,GACA,KAAKD,KADL,CACjBC,YADiB;AAAA,UAEjBJ,cAFiB,GAEE,KAAKN,KAFP,CAEjBM,cAFiB;;AAGzB,UAAMkD,eAAe7D,QAAQ8D,aAAR,CAAsB/C,YAAtB,EAAoCc,GAApC,CAArB;AACA,UAAIgC,eAAe,CAAf,IAAoBA,gBAAgBlD,cAAxC,EAAwD;AACtD,aAAKJ,aAAL;AACD,OAFD,MAEO,IAAIsD,eAAe,CAAnB,EAAsB;AAC3B,aAAK3C,iBAAL;AACD;AACF;;;mCAiBc;AAAA,oBAQT,KAAKb,KARI;AAAA,UAEXmF,MAFW,WAEXA,MAFW;AAAA,UAGXC,MAHW,WAGXA,MAHW;AAAA,UAIXC,WAJW,WAIXA,WAJW;AAAA,UAKXtB,cALW,WAKXA,cALW;AAAA,UAMXuB,aANW,WAMXA,aANW;AAAA,UAORC,UAPQ;;AAUb,UAAI,CAACxB,cAAL,EAAqB,OAAO,IAAP;;AAErB,UAAM/D,QAAQ;AACZ0C,eAAO,KAAKjC,KAAL,CAAWC,YADN;AAEZyB,oBAAY,KAAKnC,KAAL,CAAWmC,UAFX;AAGZqD,mBAAW,KAAKxF,KAAL,CAAWmC,UAAX,CAAsBsD,MAHrB;AAIZlF,mBAAW,KAAKmF,qBAAL,EAJC;AAKZ3E,uBAAe,KAAK4E,yBAAL,EALH;AAMZC,4BAAoB,KAAK9E,kBAAL,EANR;AAOZ+E,wBAAgB,KAAK1F,cAAL,EAPJ;AAQZ2F,qBAAa,KAAK5F,aARN;AASZ6F,yBAAiB,KAAKlF,iBATV;AAUZmF,aAAKT,WAAWS,GAVJ;AAWZb,sBAXY;AAYZC,sBAZY;AAaZC;AAbY,OAAd;AAeA,aAAO,gBAAMY,cAAN,CAAqBX,aAArB,IACH,gBAAMY,YAAN,CAAmBZ,aAAnB,EAAkCtF,KAAlC,CADG,GAEH,gBAAMmG,aAAN,CAAoBb,aAApB,EAAmCtF,KAAnC,CAFJ;AAGD;;;mCAEc;AACb,UAAMoG,SAAS,EAAf;AACA,UAAMC,iBAAiB1G,QAAQ2G,0BAAR,CAAmC,KAAKtG,KAAxC,CAAvB;AACA,WAAK,IAAIuG,IAAI,CAAb,EAAgBA,IAAI,KAAKvG,KAAL,CAAWM,cAA/B,EAA+CiG,KAAK,CAApD,EAAuD;AACrD,YAAM7D,QAAQ9C,UAAUY,SAAV,CAAoB,KAAKC,KAAL,CAAWC,YAA/B,EAA6C6F,CAA7C,CAAd;AACAH,eAAOI,IAAP,CACE;AACE,eAAKD;AADP,WAEM,KAAKvG,KAFX;AAGE,iBAAO0C,KAHT;AAIE,0BAAgB2D,cAJlB;AAKE,wBAAc,KAAK9E,gBALrB;AAME,sBAAY,KAAKU;AANnB,WADF;AAUD;;AAED,UAAI,KAAKjC,KAAL,CAAWyG,aAAf,EAA8B;AAC5BL,eAAOM,OAAP;AACD;AACD,aAAON,MAAP;AACD;;;mCAEc;AACb,UAAI,KAAKpG,KAAL,CAAW2G,WAAf,EAA4B;AAC1B,eACE;AAAA;AAAA,YAAK,WAAW,KAAK3G,KAAL,CAAWmC,UAAX,CAAsByE,MAAtC;AACG,eAAKC,iBAAL;AADH,SADF;AAKD;AACD,aAAO,IAAP;AACD;;;wCAEmB;AAClB,aACE;AAAA;AAAA;AACE,gBAAK,QADP;AAEE,oBAAU,CAFZ;AAGE,qBAAW,KAAK7G,KAAL,CAAWmC,UAAX,CAAsBwE,WAHnC;AAIE,wBAAY,KAAK3G,KAAL,CAAW2G,WAJzB;AAKE,mBAAS,KAAKpE;AALhB;AAOG,aAAKvC,KAAL,CAAW2G;AAPd,OADF;AAWD;;;6BAEQ;AAAA;;AACP,UAAInB,YAAY,KAAKxF,KAAL,CAAWmC,UAAX,CAAsB2E,SAAtC;;AAEA,UAAI,CAAC,KAAK9G,KAAL,CAAWgC,UAAhB,EAA4B;AAC1BwD,oBAAeA,SAAf,SAA4B,KAAKxF,KAAL,CAAWmC,UAAX,CAAsB4E,mBAAlD;AACD;AACD,UAAI,KAAK/G,KAAL,CAAWwF,SAAf,EAA0B;AACxBA,oBAAeA,SAAf,SAA4B,KAAKxF,KAAL,CAAWwF,SAAvC;AACD;AACD,aACE;AAAA;AAAA,qBACM,KAAKxF,KAAL,CAAWgH,cADjB;AAEE,qBAAWxB,SAFb;AAGE,eAAK;AAAA,mBAAO,OAAKvF,SAAL,GAAiBgH,EAAxB;AAAA,WAHP;AAIE,gBAAM,KAAKjH,KAAL,CAAWoF;AAJnB;AAME;AAAA;AAAA;AACE,uBAAW,KAAKpF,KAAL,CAAWmC,UAAX,CAAsB+E,OADnC;AAEE,sBACE,KAAKlH,KAAL,CAAW+D,cAAX,IACA,OAAO,KAAK/D,KAAL,CAAWmH,QAAlB,KAA+B,WAD/B,GAEI,KAAKnH,KAAL,CAAWmH,QAFf,GAGI,CAAC,CANT;AAQE,uBAAW,KAAKnG,aARlB;AASE,qBAAS,KAAKhB,KAAL,CAAWoH,OATtB;AAUE,oBAAQ,KAAKpH,KAAL,CAAWqH;AAVrB;AAYG,eAAKC,YAAL,EAZH;AAaE;AAAA;AAAA,cAAK,WAAW,KAAKtH,KAAL,CAAWmC,UAAX,CAAsBiE,MAAtC;AACG,iBAAKmB,YAAL;AADH,WAbF;AAgBG,eAAKC,YAAL;AAhBH;AANF,OADF;AA2BD;;;;;;AAjkBUzH,S,CACJ0H,O,GAAU,O;AADN1H,S,CAmHJ2H,Y,GAAe;AACpBvF,kCADoB;AAEpBgF,YAAU,CAFU;AAGpB9D,gBAAc,IAAIZ,IAAJ,EAHM;AAIpBnC,kBAAgB,CAJI;AAKpB6E,UAAQ;AACNpE,mBAAe,gBADT;AAENR,eAAW;AAFL,GALY;AASpB6E,UAAQ,IATY;AAUpBC,eAAaxF,WAVO;AAWpB8H,mBAAiB,KAXG;AAYpBtF,0BAAwB,IAZJ;AAapBuF,cAAY,KAbQ;AAcpB7D,kBAAgB,IAdI;AAepB0C,iBAAe,KAfK;AAgBpBpG,mBAAiB,KAhBG;AAiBpBwH,mBAAiB,KAjBG;AAkBpBC,gBAAc,IAlBM;AAmBpBC,aAAW;AAAA,WAAOvG,IAAIuB,OAAJ,EAAP;AAAA,GAnBS;AAoBpBiF,cAAY;AAAA,WAAcC,UAAd;AAAA,GApBQ;AAqBpBC,kBAAgB,sDArBI;AAsBpB5C,iBAAe,kDAAQ,gCAAR,GAtBK;AAuBpB6C,kBAAgB,mDAAS,gCAAT;AAvBI,C;AAnHXpI,S,CAGJqI,S,2CAAY;AACjB;AACA/E,gBAAc,oBAAUgF,UAAV,CAAqB5F,IAArB,CAFG;AAGjBC,SAAO,oBAAU2F,UAAV,CAAqB5F,IAArB,CAHU;AAIjBnC,kBAAgB,oBAAUgI,MAJT;AAKjB/E,aAAW,oBAAU8E,UAAV,CAAqB5F,IAArB,CALM;AAMjBmB,WAAS,oBAAUyE,UAAV,CAAqB5F,IAArB,CANQ;AAOjBsB,kBAAgB,oBAAUwE,IAPT;AAQjB9B,iBAAe,oBAAU8B,IARR;AASjBlI,mBAAiB,oBAAUkI,IATV;AAUjB5B,eAAa,oBAAU6B,MAVN;AAWjBX,mBAAiB,oBAAUU,IAXV;AAYjBT,gBAAc,oBAAUS,IAZP;;AAcjB;AACAE,gBAAc,oBAAUC,SAAV,CAAoB,CAChC,oBAAUC,MADsB,EAEhC,oBAAUC,IAFsB,EAGhC,oBAAUC,KAHsB,CAApB,CAfG;AAoBjBC,gBAAc,oBAAUJ,SAAV,CAAoB,CAChC,oBAAUC,MADsB,EAEhC,oBAAUC,IAFsB,EAGhC,oBAAUC,KAHsB,CAApB,CApBG;;AA0BjBpH,aAAW,oBAAUkH,MA1BJ;AA2BjBI,mBAAiB,oBAAUJ,MA3BV;;AA6BjB;AACA3C,OAAK,oBAAUwC,MA9BE;AA+BjBnC,kBAAgB,oBAAU2C,KAAV,CAAgB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,CAAhB,CA/BC;AAgCjB7D,UAAQ,oBAAU8D,KAAV,CAAgB;AACtB1I,eAAW,oBAAUiI,MAAV,CAAiBU,UADN;AAEtBnI,mBAAe,oBAAUyH,MAAV,CAAiBU;AAFV,GAAhB,CAhCS;AAoCjB9D,UAAQ,oBAAUoD,MApCD;AAqCjBnD,eAAa,oBAAU4D,KAAV,CAAgB;AAC3BE,sBAAkB,oBAAUP,IADD;AAE3BQ,wBAAoB,oBAAUR,IAFH;AAG3BS,uBAAmB,oBAAUT,IAHF;AAI3BU,uBAAmB,oBAAUV;AAJF,GAAhB,CArCI;AA2CjBxC,UAAQ,oBAAUmD,OAAV,CAAkB,oBAAUf,MAA5B,CA3CS;AA4CjBgB,gBAAc,oBAAUD,OAAV,CAAkB,oBAAUf,MAA5B,CA5CG;AA6CjBiB,iBAAe,oBAAUF,OAAV,CAAkB,oBAAUf,MAA5B,CA7CE;;AA+CjB;AACAb,mBAAiB,oBAAUY,IAhDV;AAiDjBlG,0BAAwB,oBAAUkG,IAjDjB;AAkDjBX,cAAY,oBAAUW,IAlDL;;AAoDjB;AACApG,cAAY,oBAAU8G,KAAV,CAAgB;AAC1BS,UAAM,oBAAUlB,MADU;AAE1B1B,eAAW,oBAAU0B,MAFK;AAG1BhH,SAAK,oBAAUgH,MAAV,CAAiBU,UAHI;AAI1BS,cAAU,oBAAUnB,MAAV,CAAiBU,UAJD;AAK1BtC,YAAQ,oBAAU4B,MALQ;AAM1BzB,yBAAqB,oBAAUyB,MANL;AAO1BpC,YAAQ,oBAAUoC,MAPQ;AAQ1B9F,WAAO,oBAAU8F,MARS;AAS1B/C,YAAQ,oBAAU+C,MATQ;AAU1BpG,aAAS,oBAAUoG,MAAV,CAAiBU,UAVA;AAW1BU,cAAU,oBAAUpB,MAAV,CAAiBU,UAXD;AAY1B1G,WAAO,oBAAUgG,MAAV,CAAiBU,UAZE;AAa1BvC,iBAAa,oBAAU6B,MAbG;AAc1BqB,UAAM,oBAAUrB,MAdU;AAe1BtB,aAAS,oBAAUsB;AAfO,GAAhB,CArDK;AAsEjBhD,aAAW,oBAAUgD,MAtEJ;AAuEjBxB,kBAAgB,oBAAU2B,MAvET;AAwEjBxB,YAAU,oBAAUmB,MAxEH;;AA0EjB;AACAP,aAAW,oBAAUa,IA3EJ;AA4EjBZ,cAAY,oBAAUY,IA5EL;AA6EjBV,kBAAgB,oBAAUQ,SAAV,CAAoB,CAClC,oBAAUoB,OADwB,EAElC,oBAAUlB,IAFwB,EAGlC,oBAAUP,UAAV,kBAHkC,CAApB,CA7EC;AAkFjB/C,iBAAe,oBAAUoD,SAAV,CAAoB,CACjC,oBAAUoB,OADuB,EAEjC,oBAAUlB,IAFuB,EAGjC,oBAAUP,UAAV,kBAHiC,CAApB,CAlFE;AAuFjBF,kBAAgB,oBAAUO,SAAV,CAAoB,CAClC,oBAAUoB,OADwB,EAElC,oBAAUlB,IAFwB,EAGlC,oBAAUP,UAAV,kBAHkC,CAApB,CAvFC;;AA6FjB;AACAhB,UAAQ,oBAAUuB,IA9FD;AA+FjBxB,WAAS,oBAAUwB,IA/FF;AAgGjBtH,aAAW,oBAAUsH,IAhGJ;AAiGjB5G,cAAY,oBAAU4G,IAjGL;AAkGjB1G,gBAAc,oBAAU0G,IAlGP;AAmGjBmB,mBAAiB,oBAAUnB,IAnGV;AAoGjBoB,mBAAiB,oBAAUpB,IApGV;AAqGjBqB,kBAAgB,oBAAUrB,IArGT;AAsGjBsB,gBAAc,oBAAUtB,IAtGP;AAuGjBuB,mBAAiB,oBAAUvB,IAvGV;AAwGjBwB,iBAAe,oBAAUxB,IAxGR;AAyGjByB,cAAY,oBAAUzB,IAzGL;AA0GjB5E,iBAAe,oBAAU4E,IA1GR;AA2GjB0B,kBAAgB,oBAAU1B,IA3GT;AA4GjB2B,eAAa,oBAAU3B,IA5GN;AA6GjB9F,sBAAoB,oBAAU8F;AA7Gb,C;;;AAikBrB7I,UAAUH,SAAV,GAAsBA,SAAtB;AACAG,UAAUF,WAAV,GAAwBA,WAAxB;AACAE,UAAUD,cAAV,GAA2BA,cAA3B;;QAESF,S,GAAAA,S;QAAWC,W,GAAAA,W;QAAaC,c,GAAAA,c;kBAElBC,S","file":"DayPicker.js","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Caption from './Caption';\nimport Navbar from './Navbar';\nimport Month from './Month';\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 { ENTER, SPACE, LEFT, UP, DOWN, RIGHT } from './keys';\n\nexport class DayPicker extends Component {\n static VERSION = '7.2.4';\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 todayButton: PropTypes.string,\n showWeekNumbers: PropTypes.bool,\n showWeekDays: PropTypes.bool,\n\n // Modifiers\n selectedDays: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.array,\n ]),\n disabledDays: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.array,\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 }),\n locale: PropTypes.string,\n localeUtils: PropTypes.shape({\n formatMonthTitle: PropTypes.func,\n formatWeekdayShort: PropTypes.func,\n formatWeekdayLong: PropTypes.func,\n getFirstDayOfWeek: PropTypes.func,\n }),\n months: PropTypes.arrayOf(PropTypes.string),\n weekdaysLong: PropTypes.arrayOf(PropTypes.string),\n weekdaysShort: PropTypes.arrayOf(PropTypes.string),\n\n // Customization\n showOutsideDays: PropTypes.bool,\n enableOutsideDaysClick: 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 footer: PropTypes.string,\n interactionDisabled: PropTypes.string,\n months: 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 todayButton: PropTypes.string,\n week: PropTypes.string,\n wrapper: PropTypes.string,\n }),\n className: PropTypes.string,\n containerProps: PropTypes.object,\n tabIndex: PropTypes.number,\n\n // Custom elements\n renderDay: PropTypes.func,\n renderWeek: 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 onDayMouseDown: PropTypes.func,\n onDayMouseUp: PropTypes.func,\n onDayTouchStart: PropTypes.func,\n onDayTouchEnd: PropTypes.func,\n onDayFocus: PropTypes.func,\n onMonthChange: PropTypes.func,\n onCaptionClick: PropTypes.func,\n onWeekClick: PropTypes.func,\n onTodayButtonClick: 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 showOutsideDays: false,\n enableOutsideDaysClick: true,\n fixedWeeks: false,\n canChangeMonth: true,\n reverseMonths: false,\n pagedNavigation: false,\n showWeekNumbers: false,\n showWeekDays: true,\n renderDay: day => day.getDate(),\n renderWeek: weekNumber => weekNumber,\n weekdayElement: <Weekday />,\n navbarElement: <Navbar classNames={classNames} />,\n captionElement: <Caption classNames={classNames} />,\n };\n\n dayPicker = null;\n\n constructor(props) {\n super(props);\n\n const currentMonth = this.getCurrentMonthFromProps(props);\n this.state = { currentMonth };\n }\n\n componentDidUpdate(prevProps) {\n // Changing the `month` props means changing the current displayed month\n if (\n prevProps.month !== this.props.month &&\n !DateUtils.isSameMonth(prevProps.month, this.props.month)\n ) {\n const currentMonth = this.getCurrentMonthFromProps(this.props);\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ currentMonth });\n }\n }\n\n /**\n * Return the month to be shown in the calendar based on the component props.\n *\n * @param {Object} props\n * @returns Date\n * @memberof DayPicker\n * @private\n */\n getCurrentMonthFromProps(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 fromMonth = Helpers.startOfMonth(props.fromMonth);\n const diffInMonths = Helpers.getMonthsDiff(fromMonth, currentMonth);\n currentMonth = DateUtils.addMonths(\n fromMonth,\n Math.floor(diffInMonths / props.numberOfMonths) * props.numberOfMonths\n );\n } else if (\n props.toMonth &&\n props.numberOfMonths > 1 &&\n Helpers.getMonthsDiff(currentMonth, props.toMonth) <= 0\n ) {\n currentMonth = DateUtils.addMonths(\n Helpers.startOfMonth(props.toMonth),\n 1 - this.props.numberOfMonths\n );\n }\n return currentMonth;\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 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 Helpers.getDayNodes(this.dayPicker, this.props.classNames)[0].focus();\n }\n\n focusLastDayOfMonth() {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n dayNodes[dayNodes.length - 1].focus();\n }\n\n focusPreviousDay(dayNode) {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n if (dayNodeIndex === -1) return;\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 = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n if (dayNodeIndex === -1) return;\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 = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(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 Helpers.getDayNodes(this.dayPicker, this.props.classNames)[\n nextMonthDayNodeIndex\n ].focus();\n });\n } else {\n dayNodes[dayNodeIndex + 7].focus();\n }\n }\n\n focusPreviousWeek(dayNode) {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n const isInFirstWeekOfMonth = dayNodeIndex <= 6;\n\n if (isInFirstWeekOfMonth) {\n this.showPreviousMonth(() => {\n const previousMonthDayNodes = Helpers.getDayNodes(\n this.dayPicker,\n this.props.classNames\n );\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 LEFT:\n this.showPreviousMonth();\n break;\n case RIGHT:\n this.showNextMonth();\n break;\n case UP:\n this.showPreviousYear();\n break;\n case 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 LEFT:\n Helpers.cancelEvent(e);\n this.focusPreviousDay(e.target);\n break;\n case RIGHT:\n Helpers.cancelEvent(e);\n this.focusNextDay(e.target);\n break;\n case UP:\n Helpers.cancelEvent(e);\n this.focusPreviousWeek(e.target);\n break;\n case DOWN:\n Helpers.cancelEvent(e);\n this.focusNextWeek(e.target);\n break;\n case ENTER:\n case 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\n if (\n modifiers[this.props.classNames.outside] &&\n this.props.enableOutsideDaysClick\n ) {\n this.handleOutsideDayClick(day);\n }\n if (this.props.onDayClick) {\n this.props.onDayClick(day, modifiers, e);\n }\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\n handleTodayButtonClick = e => {\n const today = new Date();\n const month = new Date(today.getFullYear(), today.getMonth());\n this.showMonth(month);\n e.target.blur();\n if (this.props.onTodayButtonClick) {\n e.persist();\n this.props.onTodayButtonClick(\n new Date(today.getFullYear(), today.getMonth(), today.getDate()),\n ModifiersUtils.getModifiersForDay(today, this.props.modifiers),\n e\n );\n }\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 month: this.state.currentMonth,\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\n renderMonths() {\n const months = [];\n const firstDayOfWeek = Helpers.getFirstDayOfWeekFromProps(this.props);\n for (let i = 0; i < this.props.numberOfMonths; i += 1) {\n const month = DateUtils.addMonths(this.state.currentMonth, i);\n months.push(\n <Month\n key={i}\n {...this.props}\n month={month}\n firstDayOfWeek={firstDayOfWeek}\n onDayKeyDown={this.handleDayKeyDown}\n onDayClick={this.handleDayClick}\n />\n );\n }\n\n if (this.props.reverseMonths) {\n months.reverse();\n }\n return months;\n }\n\n renderFooter() {\n if (this.props.todayButton) {\n return (\n <div className={this.props.classNames.footer}>\n {this.renderTodayButton()}\n </div>\n );\n }\n return null;\n }\n\n renderTodayButton() {\n return (\n <button\n type=\"button\"\n tabIndex={0}\n className={this.props.classNames.todayButton}\n aria-label={this.props.todayButton}\n onClick={this.handleTodayButtonClick}\n >\n {this.props.todayButton}\n </button>\n );\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 return (\n <div\n {...this.props.containerProps}\n className={className}\n ref={el => (this.dayPicker = el)}\n lang={this.props.locale}\n >\n <div\n className={this.props.classNames.wrapper}\n tabIndex={\n this.props.canChangeMonth &&\n typeof this.props.tabIndex !== 'undefined'\n ? this.props.tabIndex\n : -1\n }\n onKeyDown={this.handleKeyDown}\n onFocus={this.props.onFocus}\n onBlur={this.props.onBlur}\n >\n {this.renderNavbar()}\n <div className={this.props.classNames.months}>\n {this.renderMonths()}\n </div>\n {this.renderFooter()}\n </div>\n </div>\n );\n }\n}\n\nDayPicker.DateUtils = DateUtils;\nDayPicker.LocaleUtils = LocaleUtils;\nDayPicker.ModifiersUtils = ModifiersUtils;\n\nexport { DateUtils, LocaleUtils, ModifiersUtils };\n\nexport default DayPicker;\n"]}
1
+ {"version":3,"sources":["../../src/DayPicker.js"],"names":["Helpers","DateUtils","LocaleUtils","ModifiersUtils","DayPicker","props","dayPicker","showNextMonth","allowNextMonth","deltaMonths","pagedNavigation","numberOfMonths","nextMonth","addMonths","state","currentMonth","showMonth","callback","showPreviousMonth","allowPreviousMonth","previousMonth","handleKeyDown","e","persist","keyCode","LEFT","dir","cancelEvent","RIGHT","UP","showPreviousYear","DOWN","showNextYear","onKeyDown","handleDayKeyDown","day","modifiers","focusNextDay","target","focusPreviousDay","focusPreviousWeek","focusNextWeek","ENTER","SPACE","onDayClick","handleDayClick","onDayKeyDown","classNames","outside","enableOutsideDaysClick","handleOutsideDayClick","handleTodayButtonClick","today","Date","month","getFullYear","getMonth","blur","onTodayButtonClick","getDate","getModifiersForDay","getCurrentMonthFromProps","prevProps","isSameMonth","setState","initialMonth","startOfMonth","fromMonth","diffInMonths","getMonthsDiff","Math","floor","toMonth","allowMonth","d","canChangeMonth","onMonthChange","allowYearChange","wrapper","focus","getDayNodes","dayNodes","length","dayNode","dayNodeIndex","nodeListToArray","indexOf","focusLastDayOfMonth","focusFirstDayOfMonth","isInLastWeekOfMonth","daysAfterIndex","nextMonthDayNodeIndex","isInFirstWeekOfMonth","previousMonthDayNodes","startOfLastWeekOfMonth","previousMonthDayNodeIndex","labels","locale","localeUtils","navbarElement","attributes","className","navBar","getNextNavigableMonth","getPreviousNavigableMonth","showPreviousButton","showNextButton","onNextClick","onPreviousClick","React","isValidElement","cloneElement","createElement","months","firstDayOfWeek","getFirstDayOfWeekFromProps","i","push","reverseMonths","reverse","todayButton","footer","renderTodayButton","container","interactionDisabled","containerProps","el","tabIndex","onFocus","onBlur","renderNavbar","renderMonths","renderFooter","Component","VERSION","propTypes","PropTypes","instanceOf","number","bool","string","showWeekNumbers","showWeekDays","selectedDays","oneOfType","object","func","array","disabledDays","modifiersStyles","oneOf","shape","isRequired","formatMonthTitle","formatWeekdayShort","formatWeekdayLong","getFirstDayOfWeek","arrayOf","weekdaysLong","weekdaysShort","showOutsideDays","fixedWeeks","body","disabled","selected","week","renderDay","renderWeek","weekdayElement","element","captionElement","onDayMouseEnter","onDayMouseLeave","onDayMouseDown","onDayMouseUp","onDayTouchStart","onDayTouchEnd","onDayFocus","onCaptionClick","onWeekClick","defaultProps","weekNumber"],"mappings":"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","file":"DayPicker.js","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Caption from './Caption';\nimport Navbar from './Navbar';\nimport Month from './Month';\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 { ENTER, SPACE, LEFT, UP, DOWN, RIGHT } from './keys';\n\nexport class DayPicker extends Component {\n static VERSION = '7.4.0';\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 todayButton: PropTypes.string,\n showWeekNumbers: PropTypes.bool,\n showWeekDays: PropTypes.bool,\n\n // Modifiers\n selectedDays: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.array,\n ]),\n disabledDays: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.array,\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 }),\n locale: PropTypes.string,\n localeUtils: PropTypes.shape({\n formatMonthTitle: PropTypes.func,\n formatWeekdayShort: PropTypes.func,\n formatWeekdayLong: PropTypes.func,\n getFirstDayOfWeek: PropTypes.func,\n }),\n months: PropTypes.arrayOf(PropTypes.string),\n weekdaysLong: PropTypes.arrayOf(PropTypes.string),\n weekdaysShort: PropTypes.arrayOf(PropTypes.string),\n\n // Customization\n showOutsideDays: PropTypes.bool,\n enableOutsideDaysClick: 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 footer: PropTypes.string,\n interactionDisabled: PropTypes.string,\n months: 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 todayButton: PropTypes.string,\n week: PropTypes.string,\n wrapper: PropTypes.string,\n }),\n className: PropTypes.string,\n containerProps: PropTypes.object,\n tabIndex: PropTypes.number,\n\n // Custom elements\n renderDay: PropTypes.func,\n renderWeek: 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 onDayMouseDown: PropTypes.func,\n onDayMouseUp: PropTypes.func,\n onDayTouchStart: PropTypes.func,\n onDayTouchEnd: PropTypes.func,\n onDayFocus: PropTypes.func,\n onMonthChange: PropTypes.func,\n onCaptionClick: PropTypes.func,\n onWeekClick: PropTypes.func,\n onTodayButtonClick: 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 showOutsideDays: false,\n enableOutsideDaysClick: true,\n fixedWeeks: false,\n canChangeMonth: true,\n reverseMonths: false,\n pagedNavigation: false,\n showWeekNumbers: false,\n showWeekDays: true,\n renderDay: day => day.getDate(),\n renderWeek: weekNumber => weekNumber,\n weekdayElement: <Weekday />,\n navbarElement: <Navbar classNames={classNames} />,\n captionElement: <Caption classNames={classNames} />,\n };\n\n dayPicker = null;\n\n constructor(props) {\n super(props);\n\n const currentMonth = this.getCurrentMonthFromProps(props);\n this.state = { currentMonth };\n }\n\n componentDidUpdate(prevProps) {\n // Changing the `month` props means changing the current displayed month\n if (\n prevProps.month !== this.props.month &&\n !DateUtils.isSameMonth(prevProps.month, this.props.month)\n ) {\n const currentMonth = this.getCurrentMonthFromProps(this.props);\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ currentMonth });\n }\n }\n\n /**\n * Return the month to be shown in the calendar based on the component props.\n *\n * @param {Object} props\n * @returns Date\n * @memberof DayPicker\n * @private\n */\n getCurrentMonthFromProps(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 fromMonth = Helpers.startOfMonth(props.fromMonth);\n const diffInMonths = Helpers.getMonthsDiff(fromMonth, currentMonth);\n currentMonth = DateUtils.addMonths(\n fromMonth,\n Math.floor(diffInMonths / props.numberOfMonths) * props.numberOfMonths\n );\n } else if (\n props.toMonth &&\n props.numberOfMonths > 1 &&\n Helpers.getMonthsDiff(currentMonth, props.toMonth) <= 0\n ) {\n currentMonth = DateUtils.addMonths(\n Helpers.startOfMonth(props.toMonth),\n 1 - this.props.numberOfMonths\n );\n }\n return currentMonth;\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 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 focus() {\n this.wrapper.focus();\n }\n\n focusFirstDayOfMonth() {\n Helpers.getDayNodes(this.dayPicker, this.props.classNames)[0].focus();\n }\n\n focusLastDayOfMonth() {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n dayNodes[dayNodes.length - 1].focus();\n }\n\n focusPreviousDay(dayNode) {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n if (dayNodeIndex === -1) return;\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 = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n if (dayNodeIndex === -1) return;\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 = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(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 Helpers.getDayNodes(this.dayPicker, this.props.classNames)[\n nextMonthDayNodeIndex\n ].focus();\n });\n } else {\n dayNodes[dayNodeIndex + 7].focus();\n }\n }\n\n focusPreviousWeek(dayNode) {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n const isInFirstWeekOfMonth = dayNodeIndex <= 6;\n\n if (isInFirstWeekOfMonth) {\n this.showPreviousMonth(() => {\n const previousMonthDayNodes = Helpers.getDayNodes(\n this.dayPicker,\n this.props.classNames\n );\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 LEFT:\n if (this.props.dir === 'rtl') {\n this.showNextMonth();\n } else {\n this.showPreviousMonth();\n }\n Helpers.cancelEvent(e);\n break;\n case RIGHT:\n if (this.props.dir === 'rtl') {\n this.showPreviousMonth();\n } else {\n this.showNextMonth();\n }\n Helpers.cancelEvent(e);\n break;\n case UP:\n this.showPreviousYear();\n Helpers.cancelEvent(e);\n break;\n case DOWN:\n this.showNextYear();\n Helpers.cancelEvent(e);\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\n switch (e.keyCode) {\n case LEFT:\n Helpers.cancelEvent(e);\n if (this.props.dir === 'rtl') {\n this.focusNextDay(e.target);\n } else {\n this.focusPreviousDay(e.target);\n }\n break;\n case RIGHT:\n Helpers.cancelEvent(e);\n if (this.props.dir === 'rtl') {\n this.focusPreviousDay(e.target);\n } else {\n this.focusNextDay(e.target);\n }\n break;\n case UP:\n Helpers.cancelEvent(e);\n this.focusPreviousWeek(e.target);\n break;\n case DOWN:\n Helpers.cancelEvent(e);\n this.focusNextWeek(e.target);\n break;\n case ENTER:\n case 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\n if (\n modifiers[this.props.classNames.outside] &&\n this.props.enableOutsideDaysClick\n ) {\n this.handleOutsideDayClick(day);\n }\n if (this.props.onDayClick) {\n this.props.onDayClick(day, modifiers, e);\n }\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\n handleTodayButtonClick = e => {\n const today = new Date();\n const month = new Date(today.getFullYear(), today.getMonth());\n this.showMonth(month);\n e.target.blur();\n if (this.props.onTodayButtonClick) {\n e.persist();\n this.props.onTodayButtonClick(\n new Date(today.getFullYear(), today.getMonth(), today.getDate()),\n ModifiersUtils.getModifiersForDay(today, this.props.modifiers),\n e\n );\n }\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 month: this.state.currentMonth,\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\n renderMonths() {\n const months = [];\n const firstDayOfWeek = Helpers.getFirstDayOfWeekFromProps(this.props);\n for (let i = 0; i < this.props.numberOfMonths; i += 1) {\n const month = DateUtils.addMonths(this.state.currentMonth, i);\n months.push(\n <Month\n key={i}\n {...this.props}\n month={month}\n firstDayOfWeek={firstDayOfWeek}\n onDayKeyDown={this.handleDayKeyDown}\n onDayClick={this.handleDayClick}\n />\n );\n }\n\n if (this.props.reverseMonths) {\n months.reverse();\n }\n return months;\n }\n\n renderFooter() {\n if (this.props.todayButton) {\n return (\n <div className={this.props.classNames.footer}>\n {this.renderTodayButton()}\n </div>\n );\n }\n return null;\n }\n\n renderTodayButton() {\n return (\n <button\n type=\"button\"\n tabIndex={0}\n className={this.props.classNames.todayButton}\n aria-label={this.props.todayButton}\n onClick={this.handleTodayButtonClick}\n >\n {this.props.todayButton}\n </button>\n );\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 return (\n <div\n {...this.props.containerProps}\n className={className}\n ref={el => (this.dayPicker = el)}\n lang={this.props.locale}\n >\n <div\n className={this.props.classNames.wrapper}\n ref={el => (this.wrapper = el)}\n tabIndex={\n this.props.canChangeMonth &&\n typeof this.props.tabIndex !== 'undefined'\n ? this.props.tabIndex\n : -1\n }\n onKeyDown={this.handleKeyDown}\n onFocus={this.props.onFocus}\n onBlur={this.props.onBlur}\n >\n {this.renderNavbar()}\n <div className={this.props.classNames.months}>\n {this.renderMonths()}\n </div>\n {this.renderFooter()}\n </div>\n </div>\n );\n }\n}\n\nDayPicker.DateUtils = DateUtils;\nDayPicker.LocaleUtils = LocaleUtils;\nDayPicker.ModifiersUtils = ModifiersUtils;\n\nexport { DateUtils, LocaleUtils, ModifiersUtils };\n\nexport default DayPicker;\n"]}