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.
- package/CHANGELOG.md +53 -0
- package/LICENSE +1 -2
- package/lib/daypicker.js +258 -410
- package/lib/daypicker.js.map +1 -1
- package/lib/daypicker.min.js +1 -1
- package/lib/daypicker.min.js.map +1 -1
- package/lib/src/Caption.js +6 -6
- package/lib/src/Caption.js.map +1 -1
- package/lib/src/DateUtils.js +2 -2
- package/lib/src/DateUtils.js.map +1 -1
- package/lib/src/Day.js +11 -11
- package/lib/src/Day.js.map +1 -1
- package/lib/src/DayPicker.js +65 -36
- package/lib/src/DayPicker.js.map +1 -1
- package/lib/src/DayPickerInput.js +71 -56
- package/lib/src/DayPickerInput.js.map +1 -1
- package/lib/src/Helpers.js.map +1 -1
- package/lib/src/Month.js +6 -5
- package/lib/src/Month.js.map +1 -1
- package/lib/src/Navbar.js +15 -14
- package/lib/src/Navbar.js.map +1 -1
- package/lib/src/PropTypes.js.map +1 -1
- package/lib/src/Weekday.js +3 -3
- package/lib/src/Weekday.js.map +1 -1
- package/lib/src/Weekdays.js +3 -3
- package/lib/src/Weekdays.js.map +1 -1
- package/lib/src/addons/MomentLocaleUtils.js.map +1 -1
- package/moment.d.ts +2 -0
- package/package.json +5 -4
- package/types/DayPicker.d.ts +5 -4
- package/types/DayPickerInput.d.ts +1 -2
- package/types/README.md +5 -0
- package/types/common.d.ts +11 -3
- package/types/index.d.ts +3 -4
- package/types/moment.d.ts +5 -0
- package/types/props.d.ts +24 -26
- package/types/tsconfig.json +1 -1
- package/types/utils.d.ts +17 -13
package/lib/src/Caption.js
CHANGED
|
@@ -78,11 +78,7 @@ var Caption = function (_Component) {
|
|
|
78
78
|
return Caption;
|
|
79
79
|
}(_react.Component);
|
|
80
80
|
|
|
81
|
-
Caption.
|
|
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
|
package/lib/src/Caption.js.map
CHANGED
|
@@ -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","
|
|
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"]}
|
package/lib/src/DateUtils.js
CHANGED
package/lib/src/DateUtils.js.map
CHANGED
|
@@ -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":";;;;;QAOgBA,K,GAAAA,K;QAWAC,M,GAAAA,M;QAWAC,S,GAAAA,S;QAcAC,S,GAAAA,S;QAmBAC,W,GAAAA,W;QAiBAC,W,GAAAA,W;QAcAC,U,GAAAA,U;QAcAC,S,GAAAA,S;QAcAC,W,GAAAA,W;QAgBAC,Y,GAAAA,Y;QAkBAC,a,GAAAA,a;QA+BAC,Y,GAAAA,Y;QAiBAC,a,GAAAA,a;AA3MhB;;;;;;;AAOO,SAASZ,KAAT,CAAea,CAAf,EAAkB;AACvB,SAAO,IAAIC,IAAJ,CAASD,EAAEE,OAAF,EAAT,CAAP;AACD;;AAED;;;;;;;AAOO,SAASd,MAAT,CAAgBe,KAAhB,EAAuB;AAC5B,SAAOA,iBAAiBF,IAAjB,IAAyB,CAACG,MAAMD,MAAME,OAAN,EAAN,CAAjC;AACD;;AAED;;;;;;;AAOO,SAAShB,SAAT,CAAmBW,CAAnB,EAAsBM,CAAtB,EAAyB;AAC9B,MAAMC,UAAUpB,MAAMa,CAAN,CAAhB;AACAO,UAAQC,QAAR,CAAiBR,EAAES,QAAF,KAAeH,CAAhC;AACA,SAAOC,OAAP;AACD;;AAED;;;;;;;;AAQO,SAASjB,SAAT,CAAmBoB,EAAnB,EAAuBC,EAAvB,EAA2B;AAChC,MAAI,CAACD,EAAD,IAAO,CAACC,EAAZ,EAAgB;AACd,WAAO,KAAP;AACD;AACD,SACED,GAAGE,OAAH,OAAiBD,GAAGC,OAAH,EAAjB,IACAF,GAAGD,QAAH,OAAkBE,GAAGF,QAAH,EADlB,IAEAC,GAAGG,WAAH,OAAqBF,GAAGE,WAAH,EAHvB;AAKD;;AAED;;;;;;;;AAQO,SAAStB,WAAT,CAAqBmB,EAArB,EAAyBC,EAAzB,EAA6B;AAClC,MAAI,CAACD,EAAD,IAAO,CAACC,EAAZ,EAAgB;AACd,WAAO,KAAP;AACD;AACD,SACED,GAAGD,QAAH,OAAkBE,GAAGF,QAAH,EAAlB,IAAmCC,GAAGG,WAAH,OAAqBF,GAAGE,WAAH,EAD1D;AAGD;;AAED;;;;;;;;AAQO,SAASrB,WAAT,CAAqBkB,EAArB,EAAyBC,EAAzB,EAA6B;AAClC,MAAMG,OAAO3B,MAAMuB,EAAN,EAAUK,QAAV,CAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,EAA4B,CAA5B,CAAb;AACA,MAAMC,OAAO7B,MAAMwB,EAAN,EAAUI,QAAV,CAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,EAA4B,CAA5B,CAAb;AACA,SAAOD,OAAOE,IAAd;AACD;;AAED;;;;;;;;AAQO,SAASvB,UAAT,CAAoBiB,EAApB,EAAwBC,EAAxB,EAA4B;AACjC,MAAMG,OAAO3B,MAAMuB,EAAN,EAAUK,QAAV,CAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,EAA4B,CAA5B,CAAb;AACA,MAAMC,OAAO7B,MAAMwB,EAAN,EAAUI,QAAV,CAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,EAA4B,CAA5B,CAAb;AACA,SAAOD,OAAOE,IAAd;AACD;;AAED;;;;;;;;AAQO,SAAStB,SAAT,CAAmBM,CAAnB,EAAsB;AAC3B,MAAMiB,QAAQ,IAAIhB,IAAJ,EAAd;AACAgB,QAAMF,QAAN,CAAe,CAAf,EAAkB,CAAlB,EAAqB,CAArB,EAAwB,CAAxB;AACA,SAAOvB,YAAYQ,CAAZ,EAAeiB,KAAf,CAAP;AACD;;AAED;;;;;;;;AAQO,SAAStB,WAAT,CAAqBK,CAArB,EAAwB;AAC7B,MAAMkB,WAAW,IAAIjB,IAAJ,CAAS,IAAIA,IAAJ,GAAWC,OAAX,KAAuB,KAAK,EAAL,GAAU,EAAV,GAAe,IAA/C,CAAjB;AACAgB,WAASH,QAAT,CAAkB,CAAlB,EAAqB,CAArB,EAAwB,CAAxB,EAA2B,CAA3B;AACA,SAAOf,KAAKkB,QAAZ;AACD;;AAED;;;;;;;;;;AAUO,SAAStB,YAAT,CAAsBI,CAAtB,EAAyBU,EAAzB,EAA6BC,EAA7B,EAAiC;AACtC,MAAMQ,OAAOhC,MAAMa,CAAN,CAAb;AACAmB,OAAKJ,QAAL,CAAc,CAAd,EAAiB,CAAjB,EAAoB,CAApB,EAAuB,CAAvB;AACA,SACGtB,WAAW0B,IAAX,EAAiBT,EAAjB,KAAwBlB,YAAY2B,IAAZ,EAAkBR,EAAlB,CAAzB,IACClB,WAAW0B,IAAX,EAAiBR,EAAjB,KAAwBnB,YAAY2B,IAAZ,EAAkBT,EAAlB,CAF3B;AAID;;AAED;;;;;;;;;AASO,SAASb,aAAT,CAAuBuB,GAAvB,EAA8D;AAAA,MAAlCC,KAAkC,uEAA1B,EAAEC,MAAM,IAAR,EAAcC,IAAI,IAAlB,EAA0B;AAAA,MAC7DD,IAD6D,GAChDD,KADgD,CAC7DC,IAD6D;AAAA,MACvDC,EADuD,GAChDF,KADgD,CACvDE,EADuD;;AAEnE,MAAI,CAACD,IAAL,EAAW;AACTA,WAAOF,GAAP;AACD,GAFD,MAEO,IAAIE,QAAQC,EAAR,IAAcjC,UAAUgC,IAAV,EAAgBC,EAAhB,CAAd,IAAqCjC,UAAU8B,GAAV,EAAeE,IAAf,CAAzC,EAA+D;AACpEA,WAAO,IAAP;AACAC,SAAK,IAAL;AACD,GAHM,MAGA,IAAIA,MAAM/B,YAAY4B,GAAZ,EAAiBE,IAAjB,CAAV,EAAkC;AACvCA,WAAOF,GAAP;AACD,GAFM,MAEA,IAAIG,MAAMjC,UAAU8B,GAAV,EAAeG,EAAf,CAAV,EAA8B;AACnCD,WAAOF,GAAP;AACAG,SAAKH,GAAL;AACD,GAHM,MAGA;AACLG,SAAKH,GAAL;AACA,QAAI5B,YAAY+B,EAAZ,EAAgBD,IAAhB,CAAJ,EAA2B;AACzBC,WAAKD,IAAL;AACAA,aAAOF,GAAP;AACD;AACF;;AAED,SAAO,EAAEE,UAAF,EAAQC,MAAR,EAAP;AACD;;AAED;;;;;;;;AAQO,SAASzB,YAAT,CAAsBsB,GAAtB,EAA2BC,KAA3B,EAAkC;AAAA,MAC/BC,IAD+B,GAClBD,KADkB,CAC/BC,IAD+B;AAAA,MACzBC,EADyB,GAClBF,KADkB,CACzBE,EADyB;;AAEvC,SACGD,QAAQhC,UAAU8B,GAAV,EAAeE,IAAf,CAAT,IACCC,MAAMjC,UAAU8B,GAAV,EAAeG,EAAf,CADP,IAECD,QAAQC,EAAR,IAAc3B,aAAawB,GAAb,EAAkBE,IAAlB,EAAwBC,EAAxB,CAHjB;AAKD;;AAED;;;;;;;;AAQO,SAASxB,aAAT,CAAuBqB,GAAvB,EAA4B;AACjC,MAAMD,OAAOhC,MAAMiC,GAAN,CAAb;AACAD,OAAKJ,QAAL,CAAc,CAAd,EAAiB,CAAjB,EAAoB,CAApB;AACAI,OAAKK,OAAL,CAAaL,KAAKP,OAAL,KAAiB,CAAjB,IAAsBO,KAAKM,MAAL,MAAiB,CAAvC,CAAb;AACA,SAAOC,KAAKC,IAAL,CACL,CAAC,CAACR,OAAO,IAAIlB,IAAJ,CAASkB,KAAKN,WAAL,EAAT,EAA6B,CAA7B,EAAgC,CAAhC,CAAR,IAA8C,MAA9C,GAAuD,CAAxD,IAA6D,CADxD,CAAP;AAGD;;kBAEc;AACbhB,8BADa;AAEbR,sBAFa;AAGbF,cAHa;AAIbY,8BAJa;AAKbX,gBALa;AAMbK,wBANa;AAObD,0BAPa;AAQbI,4BARa;AASbE,4BATa;AAUbH,0BAVa;AAWbD,sBAXa;AAYbJ,sBAZa;AAabC;AAba,C","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 {
|
|
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.
|
|
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
|
package/lib/src/Day.js.map
CHANGED
|
@@ -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","
|
|
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"]}
|
package/lib/src/DayPicker.js
CHANGED
|
@@ -100,16 +100,28 @@ var DayPicker = exports.DayPicker = function (_Component) {
|
|
|
100
100
|
|
|
101
101
|
switch (e.keyCode) {
|
|
102
102
|
case _keys.LEFT:
|
|
103
|
-
_this.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
518
|
-
DayPicker.
|
|
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;
|
package/lib/src/DayPicker.js.map
CHANGED
|
@@ -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":"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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.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"]}
|