react-day-picker 7.3.2 → 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.
@@ -312,6 +312,11 @@ var DayPicker = exports.DayPicker = function (_Component) {
312
312
  var nextMonth = DateUtils.addMonths(this.state.currentMonth, -12);
313
313
  this.showMonth(nextMonth);
314
314
  }
315
+ }, {
316
+ key: 'focus',
317
+ value: function focus() {
318
+ this.wrapper.focus();
319
+ }
315
320
  }, {
316
321
  key: 'focusFirstDayOfMonth',
317
322
  value: function focusFirstDayOfMonth() {
@@ -515,6 +520,9 @@ var DayPicker = exports.DayPicker = function (_Component) {
515
520
  'div',
516
521
  {
517
522
  className: this.props.classNames.wrapper,
523
+ ref: function ref(el) {
524
+ return _this7.wrapper = el;
525
+ },
518
526
  tabIndex: this.props.canChangeMonth && typeof this.props.tabIndex !== 'undefined' ? this.props.tabIndex : -1,
519
527
  onKeyDown: this.handleKeyDown,
520
528
  onFocus: this.props.onFocus,
@@ -535,7 +543,7 @@ var DayPicker = exports.DayPicker = function (_Component) {
535
543
  return DayPicker;
536
544
  }(_react.Component);
537
545
 
538
- DayPicker.VERSION = '7.3.2';
546
+ DayPicker.VERSION = '7.4.0';
539
547
  DayPicker.propTypes = {
540
548
  // Rendering months
541
549
  initialMonth: _propTypes2.default.instanceOf(Date),
@@ -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","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","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","React","isValidElement","cloneElement","createElement","months","firstDayOfWeek","getFirstDayOfWeekFromProps","i","push","reverseMonths","reverse","todayButton","footer","renderTodayButton","container","interactionDisabled","containerProps","el","wrapper","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":";;;;;;;;;;;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,aAAKC,UAAL;AACE,cAAI,MAAKpB,KAAL,CAAWqB,GAAX,KAAmB,KAAvB,EAA8B;AAC5B,kBAAKnB,aAAL;AACD,WAFD,MAEO;AACL,kBAAKW,iBAAL;AACD;AACDlB,kBAAQ2B,WAAR,CAAoBL,CAApB;AACA;AACF,aAAKM,WAAL;AACE,cAAI,MAAKvB,KAAL,CAAWqB,GAAX,KAAmB,KAAvB,EAA8B;AAC5B,kBAAKR,iBAAL;AACD,WAFD,MAEO;AACL,kBAAKX,aAAL;AACD;AACDP,kBAAQ2B,WAAR,CAAoBL,CAApB;AACA;AACF,aAAKO,QAAL;AACE,gBAAKC,gBAAL;AACA9B,kBAAQ2B,WAAR,CAAoBL,CAApB;AACA;AACF,aAAKS,UAAL;AACE,gBAAKC,YAAL;AACAhC,kBAAQ2B,WAAR,CAAoBL,CAApB;AACA;AACF;AACE;AA1BJ;;AA6BA,UAAI,MAAKjB,KAAL,CAAW4B,SAAf,EAA0B;AACxB,cAAK5B,KAAL,CAAW4B,SAAX,CAAqBX,CAArB;AACD;AACF,KA9PkB;;AAAA,UAgQnBY,gBAhQmB,GAgQA,UAACC,GAAD,EAAMC,SAAN,EAAiBd,CAAjB,EAAuB;AACxCA,QAAEC,OAAF;;AAEA,cAAQD,EAAEE,OAAV;AACE,aAAKC,UAAL;AACEzB,kBAAQ2B,WAAR,CAAoBL,CAApB;AACA,cAAI,MAAKjB,KAAL,CAAWqB,GAAX,KAAmB,KAAvB,EAA8B;AAC5B,kBAAKW,YAAL,CAAkBf,EAAEgB,MAApB;AACD,WAFD,MAEO;AACL,kBAAKC,gBAAL,CAAsBjB,EAAEgB,MAAxB;AACD;AACD;AACF,aAAKV,WAAL;AACE5B,kBAAQ2B,WAAR,CAAoBL,CAApB;AACA,cAAI,MAAKjB,KAAL,CAAWqB,GAAX,KAAmB,KAAvB,EAA8B;AAC5B,kBAAKa,gBAAL,CAAsBjB,EAAEgB,MAAxB;AACD,WAFD,MAEO;AACL,kBAAKD,YAAL,CAAkBf,EAAEgB,MAApB;AACD;AACD;AACF,aAAKT,QAAL;AACE7B,kBAAQ2B,WAAR,CAAoBL,CAApB;AACA,gBAAKkB,iBAAL,CAAuBlB,EAAEgB,MAAzB;AACA;AACF,aAAKP,UAAL;AACE/B,kBAAQ2B,WAAR,CAAoBL,CAApB;AACA,gBAAKmB,aAAL,CAAmBnB,EAAEgB,MAArB;AACA;AACF,aAAKI,WAAL;AACA,aAAKC,WAAL;AACE3C,kBAAQ2B,WAAR,CAAoBL,CAApB;AACA,cAAI,MAAKjB,KAAL,CAAWuC,UAAf,EAA2B;AACzB,kBAAKC,cAAL,CAAoBV,GAApB,EAAyBC,SAAzB,EAAoCd,CAApC;AACD;AACD;AACF;AACE;AAjCJ;AAmCA,UAAI,MAAKjB,KAAL,CAAWyC,YAAf,EAA6B;AAC3B,cAAKzC,KAAL,CAAWyC,YAAX,CAAwBX,GAAxB,EAA6BC,SAA7B,EAAwCd,CAAxC;AACD;AACF,KAzSkB;;AAAA,UA2SnBuB,cA3SmB,GA2SF,UAACV,GAAD,EAAMC,SAAN,EAAiBd,CAAjB,EAAuB;AACtCA,QAAEC,OAAF;;AAEA,UACEa,UAAU,MAAK/B,KAAL,CAAW0C,UAAX,CAAsBC,OAAhC,KACA,MAAK3C,KAAL,CAAW4C,sBAFb,EAGE;AACA,cAAKC,qBAAL,CAA2Bf,GAA3B;AACD;AACD,UAAI,MAAK9B,KAAL,CAAWuC,UAAf,EAA2B;AACzB,cAAKvC,KAAL,CAAWuC,UAAX,CAAsBT,GAAtB,EAA2BC,SAA3B,EAAsCd,CAAtC;AACD;AACF,KAvTkB;;AAAA,UAoUnB6B,sBApUmB,GAoUM,aAAK;AAC5B,UAAMC,QAAQ,IAAIC,IAAJ,EAAd;AACA,UAAMC,QAAQ,IAAID,IAAJ,CAASD,MAAMG,WAAN,EAAT,EAA8BH,MAAMI,QAAN,EAA9B,CAAd;AACA,YAAKxC,SAAL,CAAesC,KAAf;AACAhC,QAAEgB,MAAF,CAASmB,IAAT;AACA,UAAI,MAAKpD,KAAL,CAAWqD,kBAAf,EAAmC;AACjCpC,UAAEC,OAAF;AACA,cAAKlB,KAAL,CAAWqD,kBAAX,CACE,IAAIL,IAAJ,CAASD,MAAMG,WAAN,EAAT,EAA8BH,MAAMI,QAAN,EAA9B,EAAgDJ,MAAMO,OAAN,EAAhD,CADF,EAEExD,eAAeyD,kBAAf,CAAkCR,KAAlC,EAAyC,MAAK/C,KAAL,CAAW+B,SAApD,CAFF,EAGEd,CAHF;AAKD;AACF,KAjVkB;;AAGjB,QAAMP,eAAe,MAAK8C,wBAAL,CAA8BxD,KAA9B,CAArB;AACA,UAAKS,KAAL,GAAa,EAAEC,0BAAF,EAAb;AAJiB;AAKlB;;;;uCAEkB+C,S,EAAW;AAC5B;AACA,UACEA,UAAUR,KAAV,KAAoB,KAAKjD,KAAL,CAAWiD,KAA/B,IACA,CAACrD,UAAU8D,WAAV,CAAsBD,UAAUR,KAAhC,EAAuC,KAAKjD,KAAL,CAAWiD,KAAlD,CAFH,EAGE;AACA,YAAMvC,eAAe,KAAK8C,wBAAL,CAA8B,KAAKxD,KAAnC,CAArB;AACA;AACA,aAAK2D,QAAL,CAAc,EAAEjD,0BAAF,EAAd;AACD;AACF;;AAED;;;;;;;;;;;6CAQyBV,K,EAAO;AAC9B,UAAM4D,eAAejE,QAAQkE,YAAR,CACnB7D,MAAMiD,KAAN,IAAejD,MAAM4D,YADF,CAArB;AAGA,UAAIlD,eAAekD,YAAnB;;AAEA,UAAI5D,MAAMK,eAAN,IAAyBL,MAAMM,cAAN,GAAuB,CAAhD,IAAqDN,MAAM8D,SAA/D,EAA0E;AACxE,YAAMA,YAAYnE,QAAQkE,YAAR,CAAqB7D,MAAM8D,SAA3B,CAAlB;AACA,YAAMC,eAAepE,QAAQqE,aAAR,CAAsBF,SAAtB,EAAiCpD,YAAjC,CAArB;AACAA,uBAAed,UAAUY,SAAV,CACbsD,SADa,EAEbG,KAAKC,KAAL,CAAWH,eAAe/D,MAAMM,cAAhC,IAAkDN,MAAMM,cAF3C,CAAf;AAID,OAPD,MAOO,IACLN,MAAMmE,OAAN,IACAnE,MAAMM,cAAN,GAAuB,CADvB,IAEAX,QAAQqE,aAAR,CAAsBtD,YAAtB,EAAoCV,MAAMmE,OAA1C,KAAsD,CAHjD,EAIL;AACAzD,uBAAed,UAAUY,SAAV,CACbb,QAAQkE,YAAR,CAAqB7D,MAAMmE,OAA3B,CADa,EAEb,IAAI,KAAKnE,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,KAAK0D,UAAL,CAAgBrD,aAAhB,CAAP;AACD;;;qCAEgB;AACf,UAAMR,YAAYX,UAAUY,SAAV,CAChB,KAAKC,KAAL,CAAWC,YADK,EAEhB,KAAKV,KAAL,CAAWM,cAFK,CAAlB;AAIA,aAAO,KAAK8D,UAAL,CAAgB7D,SAAhB,CAAP;AACD;;;+BAEU8D,C,EAAG;AAAA,mBACmC,KAAKrE,KADxC;AAAA,UACJ8D,SADI,UACJA,SADI;AAAA,UACOK,OADP,UACOA,OADP;AAAA,UACgBG,cADhB,UACgBA,cADhB;;AAEZ,UACE,CAACA,cAAD,IACCR,aAAanE,QAAQqE,aAAR,CAAsBF,SAAtB,EAAiCO,CAAjC,IAAsC,CADpD,IAECF,WAAWxE,QAAQqE,aAAR,CAAsBG,OAAtB,EAA+BE,CAA/B,IAAoC,CAHlD,EAIE;AACA,eAAO,KAAP;AACD;AACD,aAAO,IAAP;AACD;;;sCAEiB;AAChB,aAAO,KAAKrE,KAAL,CAAWsE,cAAlB;AACD;;;8BAESD,C,EAAGzD,Q,EAAU;AAAA;;AACrB,UAAI,CAAC,KAAKwD,UAAL,CAAgBC,CAAhB,CAAL,EAAyB;AACvB;AACD;AACD,WAAKV,QAAL,CAAc,EAAEjD,cAAcf,QAAQkE,YAAR,CAAqBQ,CAArB,CAAhB,EAAd,EAAyD,YAAM;AAC7D,YAAIzD,QAAJ,EAAc;AACZA;AACD;AACD,YAAI,OAAKZ,KAAL,CAAWuE,aAAf,EAA8B;AAC5B,iBAAKvE,KAAL,CAAWuE,aAAX,CAAyB,OAAK9D,KAAL,CAAWC,YAApC;AACD;AACF,OAPD;AAQD;;;mCA2Bc;AACb,UAAI,CAAC,KAAK8D,eAAL,EAAL,EAA6B;AAC3B;AACD;AACD,UAAMjE,YAAYX,UAAUY,SAAV,CAAoB,KAAKC,KAAL,CAAWC,YAA/B,EAA6C,EAA7C,CAAlB;AACA,WAAKC,SAAL,CAAeJ,SAAf;AACD;;;uCAEkB;AACjB,UAAI,CAAC,KAAKiE,eAAL,EAAL,EAA6B;AAC3B;AACD;AACD,UAAMjE,YAAYX,UAAUY,SAAV,CAAoB,KAAKC,KAAL,CAAWC,YAA/B,EAA6C,CAAC,EAA9C,CAAlB;AACA,WAAKC,SAAL,CAAeJ,SAAf;AACD;;;2CAEsB;AACrBZ,cAAQ8E,WAAR,CAAoB,KAAKxE,SAAzB,EAAoC,KAAKD,KAAL,CAAW0C,UAA/C,EAA2D,CAA3D,EAA8DgC,KAA9D;AACD;;;0CAEqB;AACpB,UAAMC,WAAWhF,QAAQ8E,WAAR,CAAoB,KAAKxE,SAAzB,EAAoC,KAAKD,KAAL,CAAW0C,UAA/C,CAAjB;AACAiC,eAASA,SAASC,MAAT,GAAkB,CAA3B,EAA8BF,KAA9B;AACD;;;qCAEgBG,O,EAAS;AAAA;;AACxB,UAAMF,WAAWhF,QAAQ8E,WAAR,CAAoB,KAAKxE,SAAzB,EAAoC,KAAKD,KAAL,CAAW0C,UAA/C,CAAjB;AACA,UAAMoC,eAAenF,QAAQoF,eAAR,CAAwBJ,QAAxB,EAAkCK,OAAlC,CAA0CH,OAA1C,CAArB;AACA,UAAIC,iBAAiB,CAAC,CAAtB,EAAyB;AACzB,UAAIA,iBAAiB,CAArB,EAAwB;AACtB,aAAKjE,iBAAL,CAAuB;AAAA,iBAAM,OAAKoE,mBAAL,EAAN;AAAA,SAAvB;AACD,OAFD,MAEO;AACLN,iBAASG,eAAe,CAAxB,EAA2BJ,KAA3B;AACD;AACF;;;iCAEYG,O,EAAS;AAAA;;AACpB,UAAMF,WAAWhF,QAAQ8E,WAAR,CAAoB,KAAKxE,SAAzB,EAAoC,KAAKD,KAAL,CAAW0C,UAA/C,CAAjB;AACA,UAAMoC,eAAenF,QAAQoF,eAAR,CAAwBJ,QAAxB,EAAkCK,OAAlC,CAA0CH,OAA1C,CAArB;AACA,UAAIC,iBAAiB,CAAC,CAAtB,EAAyB;AACzB,UAAIA,iBAAiBH,SAASC,MAAT,GAAkB,CAAvC,EAA0C;AACxC,aAAK1E,aAAL,CAAmB;AAAA,iBAAM,OAAKgF,oBAAL,EAAN;AAAA,SAAnB;AACD,OAFD,MAEO;AACLP,iBAASG,eAAe,CAAxB,EAA2BJ,KAA3B;AACD;AACF;;;kCAEaG,O,EAAS;AAAA;;AACrB,UAAMF,WAAWhF,QAAQ8E,WAAR,CAAoB,KAAKxE,SAAzB,EAAoC,KAAKD,KAAL,CAAW0C,UAA/C,CAAjB;AACA,UAAMoC,eAAenF,QAAQoF,eAAR,CAAwBJ,QAAxB,EAAkCK,OAAlC,CAA0CH,OAA1C,CAArB;AACA,UAAMM,sBAAsBL,eAAeH,SAASC,MAAT,GAAkB,CAA7D;;AAEA,UAAIO,mBAAJ,EAAyB;AACvB,aAAKjF,aAAL,CAAmB,YAAM;AACvB,cAAMkF,iBAAiBT,SAASC,MAAT,GAAkBE,YAAzC;AACA,cAAMO,wBAAwB,IAAID,cAAlC;AACAzF,kBAAQ8E,WAAR,CAAoB,OAAKxE,SAAzB,EAAoC,OAAKD,KAAL,CAAW0C,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,WAAWhF,QAAQ8E,WAAR,CAAoB,KAAKxE,SAAzB,EAAoC,KAAKD,KAAL,CAAW0C,UAA/C,CAAjB;AACA,UAAMoC,eAAenF,QAAQoF,eAAR,CAAwBJ,QAAxB,EAAkCK,OAAlC,CAA0CH,OAA1C,CAArB;AACA,UAAMS,uBAAuBR,gBAAgB,CAA7C;;AAEA,UAAIQ,oBAAJ,EAA0B;AACxB,aAAKzE,iBAAL,CAAuB,YAAM;AAC3B,cAAM0E,wBAAwB5F,QAAQ8E,WAAR,CAC5B,OAAKxE,SADuB,EAE5B,OAAKD,KAAL,CAAW0C,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;;;;0CAgGsB5C,G,EAAK;AAAA,UACjBpB,YADiB,GACA,KAAKD,KADL,CACjBC,YADiB;AAAA,UAEjBJ,cAFiB,GAEE,KAAKN,KAFP,CAEjBM,cAFiB;;AAGzB,UAAMyD,eAAepE,QAAQqE,aAAR,CAAsBtD,YAAtB,EAAoCoB,GAApC,CAArB;AACA,UAAIiC,eAAe,CAAf,IAAoBA,gBAAgBzD,cAAxC,EAAwD;AACtD,aAAKJ,aAAL;AACD,OAFD,MAEO,IAAI6D,eAAe,CAAnB,EAAsB;AAC3B,aAAKlD,iBAAL;AACD;AACF;;;mCAiBc;AAAA,oBAQT,KAAKb,KARI;AAAA,UAEX0F,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,UAAMtE,QAAQ;AACZiD,eAAO,KAAKxC,KAAL,CAAWC,YADN;AAEZgC,oBAAY,KAAK1C,KAAL,CAAW0C,UAFX;AAGZqD,mBAAW,KAAK/F,KAAL,CAAW0C,UAAX,CAAsBsD,MAHrB;AAIZzF,mBAAW,KAAK0F,qBAAL,EAJC;AAKZlF,uBAAe,KAAKmF,yBAAL,EALH;AAMZC,4BAAoB,KAAKrF,kBAAL,EANR;AAOZsF,wBAAgB,KAAKjG,cAAL,EAPJ;AAQZkG,qBAAa,KAAKnG,aARN;AASZoG,yBAAiB,KAAKzF,iBATV;AAUZQ,aAAKyE,WAAWzE,GAVJ;AAWZqE,sBAXY;AAYZC,sBAZY;AAaZC;AAbY,OAAd;AAeA,aAAOW,gBAAMC,cAAN,CAAqBX,aAArB,IACHU,gBAAME,YAAN,CAAmBZ,aAAnB,EAAkC7F,KAAlC,CADG,GAEHuG,gBAAMG,aAAN,CAAoBb,aAApB,EAAmC7F,KAAnC,CAFJ;AAGD;;;mCAEc;AACb,UAAM2G,SAAS,EAAf;AACA,UAAMC,iBAAiBjH,QAAQkH,0BAAR,CAAmC,KAAK7G,KAAxC,CAAvB;AACA,WAAK,IAAI8G,IAAI,CAAb,EAAgBA,IAAI,KAAK9G,KAAL,CAAWM,cAA/B,EAA+CwG,KAAK,CAApD,EAAuD;AACrD,YAAM7D,QAAQrD,UAAUY,SAAV,CAAoB,KAAKC,KAAL,CAAWC,YAA/B,EAA6CoG,CAA7C,CAAd;AACAH,eAAOI,IAAP,CACE,8BAAC,eAAD;AACE,eAAKD;AADP,WAEM,KAAK9G,KAFX;AAGE,iBAAOiD,KAHT;AAIE,0BAAgB2D,cAJlB;AAKE,wBAAc,KAAK/E,gBALrB;AAME,sBAAY,KAAKW;AANnB,WADF;AAUD;;AAED,UAAI,KAAKxC,KAAL,CAAWgH,aAAf,EAA8B;AAC5BL,eAAOM,OAAP;AACD;AACD,aAAON,MAAP;AACD;;;mCAEc;AACb,UAAI,KAAK3G,KAAL,CAAWkH,WAAf,EAA4B;AAC1B,eACE;AAAA;AAAA,YAAK,WAAW,KAAKlH,KAAL,CAAW0C,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,KAAKpH,KAAL,CAAW0C,UAAX,CAAsBwE,WAHnC;AAIE,wBAAY,KAAKlH,KAAL,CAAWkH,WAJzB;AAKE,mBAAS,KAAKpE;AALhB;AAOG,aAAK9C,KAAL,CAAWkH;AAPd,OADF;AAWD;;;6BAEQ;AAAA;;AACP,UAAInB,YAAY,KAAK/F,KAAL,CAAW0C,UAAX,CAAsB2E,SAAtC;;AAEA,UAAI,CAAC,KAAKrH,KAAL,CAAWuC,UAAhB,EAA4B;AAC1BwD,oBAAeA,SAAf,SAA4B,KAAK/F,KAAL,CAAW0C,UAAX,CAAsB4E,mBAAlD;AACD;AACD,UAAI,KAAKtH,KAAL,CAAW+F,SAAf,EAA0B;AACxBA,oBAAeA,SAAf,SAA4B,KAAK/F,KAAL,CAAW+F,SAAvC;AACD;AACD,aACE;AAAA;AAAA,qBACM,KAAK/F,KAAL,CAAWuH,cADjB;AAEE,qBAAWxB,SAFb;AAGE,eAAK;AAAA,mBAAO,OAAK9F,SAAL,GAAiBuH,EAAxB;AAAA,WAHP;AAIE,gBAAM,KAAKxH,KAAL,CAAW2F;AAJnB;AAME;AAAA;AAAA;AACE,uBAAW,KAAK3F,KAAL,CAAW0C,UAAX,CAAsB+E,OADnC;AAEE,sBACE,KAAKzH,KAAL,CAAWsE,cAAX,IACA,OAAO,KAAKtE,KAAL,CAAW0H,QAAlB,KAA+B,WAD/B,GAEI,KAAK1H,KAAL,CAAW0H,QAFf,GAGI,CAAC,CANT;AAQE,uBAAW,KAAK1G,aARlB;AASE,qBAAS,KAAKhB,KAAL,CAAW2H,OATtB;AAUE,oBAAQ,KAAK3H,KAAL,CAAW4H;AAVrB;AAYG,eAAKC,YAAL,EAZH;AAaE;AAAA;AAAA,cAAK,WAAW,KAAK7H,KAAL,CAAW0C,UAAX,CAAsBiE,MAAtC;AACG,iBAAKmB,YAAL;AADH,WAbF;AAgBG,eAAKC,YAAL;AAhBH;AANF,OADF;AA2BD;;;;EAtlB4BC,gB;;AAAlBjI,S,CACJkI,O,GAAU,O;AADNlI,S,CAGJmI,S,GAAY;AACjB;AACAtE,gBAAcuE,oBAAUC,UAAV,CAAqBpF,IAArB,CAFG;AAGjBC,SAAOkF,oBAAUC,UAAV,CAAqBpF,IAArB,CAHU;AAIjB1C,kBAAgB6H,oBAAUE,MAJT;AAKjBvE,aAAWqE,oBAAUC,UAAV,CAAqBpF,IAArB,CALM;AAMjBmB,WAASgE,oBAAUC,UAAV,CAAqBpF,IAArB,CANQ;AAOjBsB,kBAAgB6D,oBAAUG,IAPT;AAQjBtB,iBAAemB,oBAAUG,IARR;AASjBjI,mBAAiB8H,oBAAUG,IATV;AAUjBpB,eAAaiB,oBAAUI,MAVN;AAWjBC,mBAAiBL,oBAAUG,IAXV;AAYjBG,gBAAcN,oBAAUG,IAZP;;AAcjB;AACAI,gBAAcP,oBAAUQ,SAAV,CAAoB,CAChCR,oBAAUS,MADsB,EAEhCT,oBAAUU,IAFsB,EAGhCV,oBAAUW,KAHsB,CAApB,CAfG;AAoBjBC,gBAAcZ,oBAAUQ,SAAV,CAAoB,CAChCR,oBAAUS,MADsB,EAEhCT,oBAAUU,IAFsB,EAGhCV,oBAAUW,KAHsB,CAApB,CApBG;;AA0BjB/G,aAAWoG,oBAAUS,MA1BJ;AA2BjBI,mBAAiBb,oBAAUS,MA3BV;;AA6BjB;AACAvH,OAAK8G,oBAAUI,MA9BE;AA+BjB3B,kBAAgBuB,oBAAUc,KAAV,CAAgB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,CAAhB,CA/BC;AAgCjBvD,UAAQyC,oBAAUe,KAAV,CAAgB;AACtB3I,eAAW4H,oBAAUI,MAAV,CAAiBY,UADN;AAEtBpI,mBAAeoH,oBAAUI,MAAV,CAAiBY;AAFV,GAAhB,CAhCS;AAoCjBxD,UAAQwC,oBAAUI,MApCD;AAqCjB3C,eAAauC,oBAAUe,KAAV,CAAgB;AAC3BE,sBAAkBjB,oBAAUU,IADD;AAE3BQ,wBAAoBlB,oBAAUU,IAFH;AAG3BS,uBAAmBnB,oBAAUU,IAHF;AAI3BU,uBAAmBpB,oBAAUU;AAJF,GAAhB,CArCI;AA2CjBlC,UAAQwB,oBAAUqB,OAAV,CAAkBrB,oBAAUI,MAA5B,CA3CS;AA4CjBkB,gBAActB,oBAAUqB,OAAV,CAAkBrB,oBAAUI,MAA5B,CA5CG;AA6CjBmB,iBAAevB,oBAAUqB,OAAV,CAAkBrB,oBAAUI,MAA5B,CA7CE;;AA+CjB;AACAoB,mBAAiBxB,oBAAUG,IAhDV;AAiDjB1F,0BAAwBuF,oBAAUG,IAjDjB;AAkDjBsB,cAAYzB,oBAAUG,IAlDL;;AAoDjB;AACA5F,cAAYyF,oBAAUe,KAAV,CAAgB;AAC1BW,UAAM1B,oBAAUI,MADU;AAE1BlB,eAAWc,oBAAUI,MAFK;AAG1BzG,SAAKqG,oBAAUI,MAAV,CAAiBY,UAHI;AAI1BW,cAAU3B,oBAAUI,MAAV,CAAiBY,UAJD;AAK1BhC,YAAQgB,oBAAUI,MALQ;AAM1BjB,yBAAqBa,oBAAUI,MANL;AAO1B5B,YAAQwB,oBAAUI,MAPQ;AAQ1BtF,WAAOkF,oBAAUI,MARS;AAS1BvC,YAAQmC,oBAAUI,MATQ;AAU1B5F,aAASwF,oBAAUI,MAAV,CAAiBY,UAVA;AAW1BY,cAAU5B,oBAAUI,MAAV,CAAiBY,UAXD;AAY1BpG,WAAOoF,oBAAUI,MAAV,CAAiBY,UAZE;AAa1BjC,iBAAaiB,oBAAUI,MAbG;AAc1ByB,UAAM7B,oBAAUI,MAdU;AAe1Bd,aAASU,oBAAUI;AAfO,GAAhB,CArDK;AAsEjBxC,aAAWoC,oBAAUI,MAtEJ;AAuEjBhB,kBAAgBY,oBAAUS,MAvET;AAwEjBlB,YAAUS,oBAAUE,MAxEH;;AA0EjB;AACA4B,aAAW9B,oBAAUU,IA3EJ;AA4EjBqB,cAAY/B,oBAAUU,IA5EL;AA6EjBsB,kBAAgBhC,oBAAUQ,SAAV,CAAoB,CAClCR,oBAAUiC,OADwB,EAElCjC,oBAAUU,IAFwB,EAGlCV,oBAAUC,UAAV,CAAqBJ,gBAArB,CAHkC,CAApB,CA7EC;AAkFjBnC,iBAAesC,oBAAUQ,SAAV,CAAoB,CACjCR,oBAAUiC,OADuB,EAEjCjC,oBAAUU,IAFuB,EAGjCV,oBAAUC,UAAV,CAAqBJ,gBAArB,CAHiC,CAApB,CAlFE;AAuFjBqC,kBAAgBlC,oBAAUQ,SAAV,CAAoB,CAClCR,oBAAUiC,OADwB,EAElCjC,oBAAUU,IAFwB,EAGlCV,oBAAUC,UAAV,CAAqBJ,gBAArB,CAHkC,CAApB,CAvFC;;AA6FjB;AACAJ,UAAQO,oBAAUU,IA9FD;AA+FjBlB,WAASQ,oBAAUU,IA/FF;AAgGjBjH,aAAWuG,oBAAUU,IAhGJ;AAiGjBtG,cAAY4F,oBAAUU,IAjGL;AAkGjBpG,gBAAc0F,oBAAUU,IAlGP;AAmGjByB,mBAAiBnC,oBAAUU,IAnGV;AAoGjB0B,mBAAiBpC,oBAAUU,IApGV;AAqGjB2B,kBAAgBrC,oBAAUU,IArGT;AAsGjB4B,gBAActC,oBAAUU,IAtGP;AAuGjB6B,mBAAiBvC,oBAAUU,IAvGV;AAwGjB8B,iBAAexC,oBAAUU,IAxGR;AAyGjB+B,cAAYzC,oBAAUU,IAzGL;AA0GjBtE,iBAAe4D,oBAAUU,IA1GR;AA2GjBgC,kBAAgB1C,oBAAUU,IA3GT;AA4GjBiC,eAAa3C,oBAAUU,IA5GN;AA6GjBxF,sBAAoB8E,oBAAUU;AA7Gb,C;AAHR9I,S,CAmHJgL,Y,GAAe;AACpBrI,kCADoB;AAEpBgF,YAAU,CAFU;AAGpB9D,gBAAc,IAAIZ,IAAJ,EAHM;AAIpB1C,kBAAgB,CAJI;AAKpBoF,UAAQ;AACN3E,mBAAe,gBADT;AAENR,eAAW;AAFL,GALY;AASpBoF,UAAQ,IATY;AAUpBC,eAAa/F,WAVO;AAWpB8J,mBAAiB,KAXG;AAYpB/G,0BAAwB,IAZJ;AAapBgH,cAAY,KAbQ;AAcpBtF,kBAAgB,IAdI;AAepB0C,iBAAe,KAfK;AAgBpB3G,mBAAiB,KAhBG;AAiBpBmI,mBAAiB,KAjBG;AAkBpBC,gBAAc,IAlBM;AAmBpBwB,aAAW;AAAA,WAAOnI,IAAIwB,OAAJ,EAAP;AAAA,GAnBS;AAoBpB4G,cAAY;AAAA,WAAcc,UAAd;AAAA,GApBQ;AAqBpBb,kBAAgB,8BAAC,iBAAD,OArBI;AAsBpBtE,iBAAe,8BAAC,gBAAD,IAAQ,YAAYnD,oBAApB,GAtBK;AAuBpB2H,kBAAgB,8BAAC,iBAAD,IAAS,YAAY3H,oBAArB;AAvBI,C;;;AAsexB3C,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.3.2';\n\n static propTypes = {\n // Rendering months\n initialMonth: PropTypes.instanceOf(Date),\n month: PropTypes.instanceOf(Date),\n numberOfMonths: PropTypes.number,\n fromMonth: PropTypes.instanceOf(Date),\n toMonth: PropTypes.instanceOf(Date),\n canChangeMonth: PropTypes.bool,\n reverseMonths: PropTypes.bool,\n pagedNavigation: PropTypes.bool,\n 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 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 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"]}
@@ -163,9 +163,10 @@ var DayPickerInput = function (_React$Component) {
163
163
  format = _props.format,
164
164
  dayPickerProps = _props.dayPickerProps;
165
165
 
166
- // Update the input value if the `value` prop has changed
166
+ // Update the input value if `value`, `dayPickerProps.locale` or `format`
167
+ // props have changed
167
168
 
168
- if (value !== prevProps.value) {
169
+ if (value !== prevProps.value || dayPickerProps.locale !== prevProps.dayPickerProps.locale || format !== prevProps.format) {
169
170
  if ((0, _DateUtils.isDate)(value)) {
170
171
  newState.value = formatDate(value, format, dayPickerProps.locale);
171
172
  } else {
@@ -219,14 +220,17 @@ var DayPickerInput = function (_React$Component) {
219
220
  value: function getInitialStateFromProps(props) {
220
221
  var dayPickerProps = props.dayPickerProps,
221
222
  formatDate = props.formatDate,
222
- format = props.format;
223
+ format = props.format,
224
+ typedValue = props.typedValue;
223
225
  var value = props.value;
224
226
 
225
227
  if (props.value && (0, _DateUtils.isDate)(props.value)) {
226
228
  value = formatDate(props.value, format, dayPickerProps.locale);
227
229
  }
230
+
228
231
  return {
229
232
  value: value,
233
+ typedValue: typedValue,
230
234
  month: this.getInitialMonthFromProps(props),
231
235
  selectedDays: dayPickerProps.selectedDays
232
236
  };
@@ -260,7 +264,7 @@ var DayPickerInput = function (_React$Component) {
260
264
  dayPickerProps = _props2.dayPickerProps,
261
265
  onDayChange = _props2.onDayChange;
262
266
 
263
- this.setState({ month: day, value: value, typedValue: undefined }, function () {
267
+ this.setState({ month: day, value: value, typedValue: '' }, function () {
264
268
  if (callback) {
265
269
  callback();
266
270
  }
@@ -340,7 +344,8 @@ var DayPickerInput = function (_React$Component) {
340
344
  return;
341
345
  }
342
346
  this.hideTimeout = setTimeout(function () {
343
- return _this5.hideDayPicker();
347
+ _this5.overlayHasFocus = false;
348
+ _this5.hideDayPicker();
344
349
  }, HIDE_TIMEOUT);
345
350
  }
346
351
  }, {
@@ -429,7 +434,7 @@ var DayPickerInput = function (_React$Component) {
429
434
  var value = e.target.value;
430
435
 
431
436
  if (value.trim() === '') {
432
- this.setState({ value: value, typedValue: undefined });
437
+ this.setState({ value: value, typedValue: '' });
433
438
  if (onDayChange) onDayChange(undefined, {}, this);
434
439
  return;
435
440
  }
@@ -512,7 +517,9 @@ var DayPickerInput = function (_React$Component) {
512
517
  } else if (selectedDays) {
513
518
  selectedDays = null;
514
519
  }
515
- this.setState({ value: '', typedValue: undefined, selectedDays: selectedDays }, this.hideAfterDayClick);
520
+
521
+ this.setState({ value: '', typedValue: '', selectedDays: selectedDays }, this.hideAfterDayClick);
522
+
516
523
  if (onDayChange) {
517
524
  onDayChange(undefined, modifiers, this);
518
525
  }
@@ -600,7 +607,7 @@ var DayPickerInput = function (_React$Component) {
600
607
  },
601
608
  placeholder: this.props.placeholder
602
609
  }, inputProps, {
603
- value: this.state.typedValue || this.state.value,
610
+ value: this.state.value || this.state.typedValue,
604
611
  onChange: this.handleInputChange,
605
612
  onFocus: this.handleInputFocus,
606
613
  onBlur: this.handleInputBlur,
@@ -625,6 +632,7 @@ DayPickerInput.propTypes = {
625
632
 
626
633
  formatDate: _propTypes2.default.func,
627
634
  parseDate: _propTypes2.default.func,
635
+ typedValue: _propTypes2.default.string,
628
636
 
629
637
  showOverlay: _propTypes2.default.bool,
630
638
  dayPickerProps: _propTypes2.default.object,
@@ -653,6 +661,7 @@ DayPickerInput.propTypes = {
653
661
  DayPickerInput.defaultProps = {
654
662
  dayPickerProps: {},
655
663
  value: '',
664
+ typedValue: '',
656
665
  placeholder: 'YYYY-M-D',
657
666
  format: 'L',
658
667
  formatDate: defaultFormat,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/DayPickerInput.js"],"names":["OverlayComponent","defaultFormat","defaultParse","HIDE_TIMEOUT","input","selectedDay","month","children","classNames","props","overlayWrapper","overlay","propTypes","PropTypes","any","instanceOf","Date","node","object","d","year","getFullYear","getMonth","day","getDate","str","undefined","split","length","parseInt","isNaN","String","DayPickerInput","daypicker","clickTimeout","hideTimeout","inputBlurTimeout","inputFocusTimeout","state","getInitialStateFromProps","showOverlay","hideAfterDayClick","bind","handleInputClick","handleInputFocus","handleInputBlur","handleInputChange","handleInputKeyDown","handleInputKeyUp","handleDayClick","handleMonthChange","handleOverlayFocus","handleOverlayBlur","prevProps","newState","value","formatDate","format","dayPickerProps","locale","prevMonth","selectedDays","Object","keys","setState","clearTimeout","overlayBlurTimeout","parseDate","initialMonth","getInitialMonthFromProps","callback","onDayChange","typedValue","modifiersObj","disabled","disabledDays","selected","modifiers","reduce","obj","modifier","onDayPickerShow","onDayPickerHide","hideOnDayClick","setTimeout","hideDayPicker","e","showDayPicker","inputProps","onClick","persist","overlayHasFocus","onFocus","onBlur","preventDefault","keepFocus","focus","onChange","target","trim","updateState","keyCode","TAB","onKeyDown","ESC","onKeyUp","onMonthChange","clickUnselectsDay","onDayClick","Array","isArray","slice","selectedDayIdx","indexOf","splice","onTodayButtonClick","todayButton","Overlay","overlayComponent","el","Input","component","container","style","placeholder","renderOverlay","React","Component","oneOfType","string","arrayOf","func","bool","shape","isRequired","defaultProps"],"mappings":"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","file":"DayPickerInput.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport DayPicker from './DayPicker';\nimport { isSameMonth, isDate } from './DateUtils';\nimport { getModifiersForDay } from './ModifiersUtils';\nimport { ESC, TAB } from './keys';\n\n// When clicking on a day cell, overlay will be hidden after this timeout\nexport const HIDE_TIMEOUT = 100;\n\n/**\n * The default component used as Overlay.\n *\n * @param {Object} props\n */\nexport function OverlayComponent({\n input,\n selectedDay,\n month,\n children,\n classNames,\n ...props\n}) {\n return (\n <div className={classNames.overlayWrapper} {...props}>\n <div className={classNames.overlay}>{children}</div>\n </div>\n );\n}\n\nOverlayComponent.propTypes = {\n input: PropTypes.any,\n selectedDay: PropTypes.any,\n month: PropTypes.instanceOf(Date),\n children: PropTypes.node,\n classNames: PropTypes.object,\n};\n\n/**\n * The default function used to format a Date to String, passed to the `format`\n * prop.\n * @param {Date} d\n * @return {String}\n */\nexport function defaultFormat(d) {\n if (isDate(d)) {\n const year = d.getFullYear();\n const month = `${d.getMonth() + 1}`;\n const day = `${d.getDate()}`;\n return `${year}-${month}-${day}`;\n }\n return '';\n}\n\n/**\n * The default function used to parse a String as Date, passed to the `parse`\n * prop.\n * @param {String} str\n * @return {Date}\n */\nexport function defaultParse(str) {\n if (typeof str !== 'string') {\n return undefined;\n }\n const split = str.split('-');\n if (split.length !== 3) {\n return undefined;\n }\n const year = parseInt(split[0], 10);\n const month = parseInt(split[1], 10) - 1;\n const day = parseInt(split[2], 10);\n if (\n isNaN(year) ||\n String(year).length > 4 ||\n isNaN(month) ||\n isNaN(day) ||\n day <= 0 ||\n day > 31 ||\n month < 0 ||\n month >= 12\n ) {\n return undefined;\n }\n\n return new Date(year, month, day, 12, 0, 0, 0); // always set noon to avoid time zone issues\n}\n\nexport default class DayPickerInput extends React.Component {\n static propTypes = {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(Date)]),\n inputProps: PropTypes.object,\n placeholder: PropTypes.string,\n\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n\n formatDate: PropTypes.func,\n parseDate: PropTypes.func,\n\n showOverlay: PropTypes.bool,\n dayPickerProps: PropTypes.object,\n hideOnDayClick: PropTypes.bool,\n clickUnselectsDay: PropTypes.bool,\n keepFocus: PropTypes.bool,\n component: PropTypes.any,\n overlayComponent: PropTypes.any,\n\n style: PropTypes.object,\n classNames: PropTypes.shape({\n container: PropTypes.string,\n overlayWrapper: PropTypes.string,\n overlay: PropTypes.string.isRequired,\n }),\n\n onDayChange: PropTypes.func,\n onDayPickerHide: PropTypes.func,\n onDayPickerShow: PropTypes.func,\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onKeyUp: PropTypes.func,\n };\n\n static defaultProps = {\n dayPickerProps: {},\n value: '',\n placeholder: 'YYYY-M-D',\n format: 'L',\n formatDate: defaultFormat,\n parseDate: defaultParse,\n showOverlay: false,\n hideOnDayClick: true,\n clickUnselectsDay: false,\n keepFocus: true,\n component: 'input',\n inputProps: {},\n overlayComponent: OverlayComponent,\n classNames: {\n container: 'DayPickerInput',\n overlayWrapper: 'DayPickerInput-OverlayWrapper',\n overlay: 'DayPickerInput-Overlay',\n },\n };\n\n input = null;\n\n daypicker = null;\n\n clickTimeout = null;\n\n hideTimeout = null;\n\n inputBlurTimeout = null;\n\n inputFocusTimeout = null;\n\n constructor(props) {\n super(props);\n\n this.state = this.getInitialStateFromProps(props);\n this.state.showOverlay = props.showOverlay;\n\n this.hideAfterDayClick = this.hideAfterDayClick.bind(this);\n this.handleInputClick = this.handleInputClick.bind(this);\n this.handleInputFocus = this.handleInputFocus.bind(this);\n this.handleInputBlur = this.handleInputBlur.bind(this);\n this.handleInputChange = this.handleInputChange.bind(this);\n this.handleInputKeyDown = this.handleInputKeyDown.bind(this);\n this.handleInputKeyUp = this.handleInputKeyUp.bind(this);\n this.handleDayClick = this.handleDayClick.bind(this);\n this.handleMonthChange = this.handleMonthChange.bind(this);\n this.handleOverlayFocus = this.handleOverlayFocus.bind(this);\n this.handleOverlayBlur = this.handleOverlayBlur.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const newState = {};\n\n // Current props\n const { value, formatDate, format, dayPickerProps } = this.props;\n\n // Update the input value if the `value` prop has changed\n if (value !== prevProps.value) {\n if (isDate(value)) {\n newState.value = formatDate(value, format, dayPickerProps.locale);\n } else {\n newState.value = value;\n }\n }\n\n // Update the month if the months from props changed\n const prevMonth = prevProps.dayPickerProps.month;\n if (\n dayPickerProps.month &&\n dayPickerProps.month !== prevMonth &&\n !isSameMonth(dayPickerProps.month, prevMonth)\n ) {\n newState.month = dayPickerProps.month;\n }\n\n // Updated the selected days from props if they changed\n if (prevProps.dayPickerProps.selectedDays !== dayPickerProps.selectedDays) {\n newState.selectedDays = dayPickerProps.selectedDays;\n }\n\n if (Object.keys(newState).length > 0) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this.clickTimeout);\n clearTimeout(this.hideTimeout);\n clearTimeout(this.inputFocusTimeout);\n clearTimeout(this.inputBlurTimeout);\n clearTimeout(this.overlayBlurTimeout);\n }\n\n getInitialMonthFromProps(props) {\n const { dayPickerProps, format } = props;\n let day;\n if (props.value) {\n if (isDate(props.value)) {\n day = props.value;\n } else {\n day = props.parseDate(props.value, format, dayPickerProps.locale);\n }\n }\n return (\n dayPickerProps.initialMonth || dayPickerProps.month || day || new Date()\n );\n }\n\n getInitialStateFromProps(props) {\n const { dayPickerProps, formatDate, format } = props;\n let { value } = props;\n if (props.value && isDate(props.value)) {\n value = formatDate(props.value, format, dayPickerProps.locale);\n }\n return {\n value,\n month: this.getInitialMonthFromProps(props),\n selectedDays: dayPickerProps.selectedDays,\n };\n }\n\n getInput() {\n return this.input;\n }\n\n getDayPicker() {\n return this.daypicker;\n }\n\n /**\n * Update the component's state and fire the `onDayChange` event passing the\n * day's modifiers to it.\n *\n * @param {Date} day - Will be used for changing the month\n * @param {String} value - Input field value\n * @private\n */\n updateState(day, value, callback) {\n const { dayPickerProps, onDayChange } = this.props;\n this.setState({ month: day, value, typedValue: undefined }, () => {\n if (callback) {\n callback();\n }\n if (!onDayChange) {\n return;\n }\n const modifiersObj = {\n disabled: dayPickerProps.disabledDays,\n selected: dayPickerProps.selectedDays,\n ...dayPickerProps.modifiers,\n };\n const modifiers = getModifiersForDay(day, modifiersObj).reduce(\n (obj, modifier) => ({\n ...obj,\n [modifier]: true,\n }),\n {}\n );\n onDayChange(day, modifiers, this);\n });\n }\n\n /**\n * Show the Day Picker overlay.\n *\n * @memberof DayPickerInput\n */\n showDayPicker() {\n const { parseDate, format, dayPickerProps } = this.props;\n const { value, showOverlay } = this.state;\n if (showOverlay) {\n return;\n }\n // Reset the current displayed month when showing the overlay\n const month = value\n ? parseDate(value, format, dayPickerProps.locale) // Use the month in the input field\n : this.getInitialMonthFromProps(this.props); // Restore the month from the props\n this.setState(\n state => ({\n showOverlay: true,\n month: month || state.month,\n }),\n () => {\n if (this.props.onDayPickerShow) this.props.onDayPickerShow();\n }\n );\n }\n\n /**\n * Hide the Day Picker overlay\n *\n * @memberof DayPickerInput\n */\n hideDayPicker() {\n if (this.state.showOverlay === false) {\n return;\n }\n this.setState({ showOverlay: false }, () => {\n if (this.props.onDayPickerHide) this.props.onDayPickerHide();\n });\n }\n\n hideAfterDayClick() {\n if (!this.props.hideOnDayClick) {\n return;\n }\n this.hideTimeout = setTimeout(() => this.hideDayPicker(), HIDE_TIMEOUT);\n }\n\n handleInputClick(e) {\n this.showDayPicker();\n if (this.props.inputProps.onClick) {\n e.persist();\n this.props.inputProps.onClick(e);\n }\n }\n\n handleInputFocus(e) {\n this.showDayPicker();\n // Set `overlayHasFocus` after a timeout so the overlay can be hidden when\n // the input is blurred\n this.inputFocusTimeout = setTimeout(() => {\n this.overlayHasFocus = false;\n }, 2);\n if (this.props.inputProps.onFocus) {\n e.persist();\n this.props.inputProps.onFocus(e);\n }\n }\n\n // When the input is blurred, the overlay should disappear. However the input\n // is blurred also when the user interacts with the overlay (e.g. the overlay\n // get the focus by clicking it). In these cases, the overlay should not be\n // hidden. There are different approaches to avoid hiding the overlay when\n // this happens, but the only cross-browser hack we’ve found is to set all\n // these timeouts in code before changing `overlayHasFocus`.\n handleInputBlur(e) {\n this.inputBlurTimeout = setTimeout(() => {\n if (!this.overlayHasFocus) {\n this.hideDayPicker();\n }\n }, 1);\n if (this.props.inputProps.onBlur) {\n e.persist();\n this.props.inputProps.onBlur(e);\n }\n }\n\n handleOverlayFocus(e) {\n e.preventDefault();\n this.overlayHasFocus = true;\n if (\n !this.props.keepFocus ||\n !this.input ||\n typeof this.input.focus !== 'function'\n ) {\n return;\n }\n this.input.focus();\n }\n\n handleOverlayBlur() {\n // We need to set a timeout otherwise IE11 will hide the overlay when\n // focusing it\n this.overlayBlurTimeout = setTimeout(() => {\n this.overlayHasFocus = false;\n }, 3);\n }\n\n handleInputChange(e) {\n const {\n dayPickerProps,\n format,\n inputProps,\n onDayChange,\n parseDate,\n } = this.props;\n if (inputProps.onChange) {\n e.persist();\n inputProps.onChange(e);\n }\n const { value } = e.target;\n if (value.trim() === '') {\n this.setState({ value, typedValue: undefined });\n if (onDayChange) onDayChange(undefined, {}, this);\n return;\n }\n const day = parseDate(value, format, dayPickerProps.locale);\n if (!day) {\n // Day is invalid: we save the value in the typedValue state\n this.setState({ value, typedValue: value });\n if (onDayChange) onDayChange(undefined, {}, this);\n return;\n }\n this.updateState(day, value);\n }\n\n handleInputKeyDown(e) {\n if (e.keyCode === TAB) {\n this.hideDayPicker();\n } else {\n this.showDayPicker();\n }\n if (this.props.inputProps.onKeyDown) {\n e.persist();\n this.props.inputProps.onKeyDown(e);\n }\n }\n\n handleInputKeyUp(e) {\n if (e.keyCode === ESC) {\n this.hideDayPicker();\n } else {\n this.showDayPicker();\n }\n if (this.props.inputProps.onKeyUp) {\n e.persist();\n this.props.inputProps.onKeyUp(e);\n }\n }\n\n handleMonthChange(month) {\n this.setState({ month }, () => {\n if (\n this.props.dayPickerProps &&\n this.props.dayPickerProps.onMonthChange\n ) {\n this.props.dayPickerProps.onMonthChange(month);\n }\n });\n }\n\n handleDayClick(day, modifiers, e) {\n const {\n clickUnselectsDay,\n dayPickerProps,\n onDayChange,\n formatDate,\n format,\n } = this.props;\n if (dayPickerProps.onDayClick) {\n dayPickerProps.onDayClick(day, modifiers, e);\n }\n\n // Do nothing if the day is disabled\n if (\n modifiers.disabled ||\n (dayPickerProps &&\n dayPickerProps.classNames &&\n modifiers[dayPickerProps.classNames.disabled])\n ) {\n return;\n }\n\n // If the clicked day is already selected, remove the clicked day\n // from the selected days and empty the field value\n if (modifiers.selected && clickUnselectsDay) {\n let { selectedDays } = this.state;\n if (Array.isArray(selectedDays)) {\n selectedDays = selectedDays.slice(0);\n const selectedDayIdx = selectedDays.indexOf(day);\n selectedDays.splice(selectedDayIdx, 1);\n } else if (selectedDays) {\n selectedDays = null;\n }\n this.setState(\n { value: '', typedValue: undefined, selectedDays },\n this.hideAfterDayClick\n );\n if (onDayChange) {\n onDayChange(undefined, modifiers, this);\n }\n return;\n }\n\n const value = formatDate(day, format, dayPickerProps.locale);\n this.setState({ value, typedValue: undefined, month: day }, () => {\n if (onDayChange) {\n onDayChange(day, modifiers, this);\n }\n this.hideAfterDayClick();\n });\n }\n\n renderOverlay() {\n const {\n classNames,\n dayPickerProps,\n parseDate,\n formatDate,\n format,\n } = this.props;\n const { selectedDays, value } = this.state;\n let selectedDay;\n if (!selectedDays && value) {\n const day = parseDate(value, format, dayPickerProps.locale);\n if (day) {\n selectedDay = day;\n }\n } else if (selectedDays) {\n selectedDay = selectedDays;\n }\n let onTodayButtonClick;\n if (dayPickerProps.todayButton) {\n // Set the current day when clicking the today button\n onTodayButtonClick = () =>\n this.updateState(\n new Date(),\n formatDate(new Date(), format, dayPickerProps.locale),\n this.hideAfterDayClick\n );\n }\n const Overlay = this.props.overlayComponent;\n return (\n <Overlay\n classNames={classNames}\n month={this.state.month}\n selectedDay={selectedDay}\n input={this.input}\n tabIndex={0} // tabIndex is necessary to catch focus/blur events on Safari\n onFocus={this.handleOverlayFocus}\n onBlur={this.handleOverlayBlur}\n >\n <DayPicker\n ref={el => (this.daypicker = el)}\n onTodayButtonClick={onTodayButtonClick}\n {...dayPickerProps}\n month={this.state.month}\n selectedDays={selectedDay}\n onDayClick={this.handleDayClick}\n onMonthChange={this.handleMonthChange}\n />\n </Overlay>\n );\n }\n\n render() {\n const Input = this.props.component;\n const { inputProps } = this.props;\n return (\n <div className={this.props.classNames.container} style={this.props.style}>\n <Input\n ref={el => (this.input = el)}\n placeholder={this.props.placeholder}\n {...inputProps}\n value={this.state.typedValue || this.state.value}\n onChange={this.handleInputChange}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n onKeyDown={this.handleInputKeyDown}\n onKeyUp={this.handleInputKeyUp}\n onClick={!inputProps.disabled ? this.handleInputClick : undefined}\n />\n {this.state.showOverlay && this.renderOverlay()}\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/DayPickerInput.js"],"names":["OverlayComponent","defaultFormat","defaultParse","HIDE_TIMEOUT","input","selectedDay","month","children","classNames","props","overlayWrapper","overlay","propTypes","PropTypes","any","instanceOf","Date","node","object","d","year","getFullYear","getMonth","day","getDate","str","undefined","split","length","parseInt","isNaN","String","DayPickerInput","daypicker","clickTimeout","hideTimeout","inputBlurTimeout","inputFocusTimeout","state","getInitialStateFromProps","showOverlay","hideAfterDayClick","bind","handleInputClick","handleInputFocus","handleInputBlur","handleInputChange","handleInputKeyDown","handleInputKeyUp","handleDayClick","handleMonthChange","handleOverlayFocus","handleOverlayBlur","prevProps","newState","value","formatDate","format","dayPickerProps","locale","prevMonth","selectedDays","Object","keys","setState","clearTimeout","overlayBlurTimeout","parseDate","initialMonth","typedValue","getInitialMonthFromProps","callback","onDayChange","modifiersObj","disabled","disabledDays","selected","modifiers","reduce","obj","modifier","onDayPickerShow","onDayPickerHide","hideOnDayClick","setTimeout","overlayHasFocus","hideDayPicker","e","showDayPicker","inputProps","onClick","persist","onFocus","onBlur","preventDefault","keepFocus","focus","onChange","target","trim","updateState","keyCode","TAB","onKeyDown","ESC","onKeyUp","onMonthChange","clickUnselectsDay","onDayClick","Array","isArray","slice","selectedDayIdx","indexOf","splice","onTodayButtonClick","todayButton","Overlay","overlayComponent","el","Input","component","container","style","placeholder","renderOverlay","React","Component","oneOfType","string","arrayOf","func","bool","shape","isRequired","defaultProps"],"mappings":"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","file":"DayPickerInput.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport DayPicker from './DayPicker';\nimport { isSameMonth, isDate } from './DateUtils';\nimport { getModifiersForDay } from './ModifiersUtils';\nimport { ESC, TAB } from './keys';\n\n// When clicking on a day cell, overlay will be hidden after this timeout\nexport const HIDE_TIMEOUT = 100;\n\n/**\n * The default component used as Overlay.\n *\n * @param {Object} props\n */\nexport function OverlayComponent({\n input,\n selectedDay,\n month,\n children,\n classNames,\n ...props\n}) {\n return (\n <div className={classNames.overlayWrapper} {...props}>\n <div className={classNames.overlay}>{children}</div>\n </div>\n );\n}\n\nOverlayComponent.propTypes = {\n input: PropTypes.any,\n selectedDay: PropTypes.any,\n month: PropTypes.instanceOf(Date),\n children: PropTypes.node,\n classNames: PropTypes.object,\n};\n\n/**\n * The default function used to format a Date to String, passed to the `format`\n * prop.\n * @param {Date} d\n * @return {String}\n */\nexport function defaultFormat(d) {\n if (isDate(d)) {\n const year = d.getFullYear();\n const month = `${d.getMonth() + 1}`;\n const day = `${d.getDate()}`;\n return `${year}-${month}-${day}`;\n }\n return '';\n}\n\n/**\n * The default function used to parse a String as Date, passed to the `parse`\n * prop.\n * @param {String} str\n * @return {Date}\n */\nexport function defaultParse(str) {\n if (typeof str !== 'string') {\n return undefined;\n }\n const split = str.split('-');\n if (split.length !== 3) {\n return undefined;\n }\n const year = parseInt(split[0], 10);\n const month = parseInt(split[1], 10) - 1;\n const day = parseInt(split[2], 10);\n if (\n isNaN(year) ||\n String(year).length > 4 ||\n isNaN(month) ||\n isNaN(day) ||\n day <= 0 ||\n day > 31 ||\n month < 0 ||\n month >= 12\n ) {\n return undefined;\n }\n\n return new Date(year, month, day, 12, 0, 0, 0); // always set noon to avoid time zone issues\n}\n\nexport default class DayPickerInput extends React.Component {\n static propTypes = {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(Date)]),\n inputProps: PropTypes.object,\n placeholder: PropTypes.string,\n\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n\n formatDate: PropTypes.func,\n parseDate: PropTypes.func,\n typedValue: PropTypes.string,\n\n showOverlay: PropTypes.bool,\n dayPickerProps: PropTypes.object,\n hideOnDayClick: PropTypes.bool,\n clickUnselectsDay: PropTypes.bool,\n keepFocus: PropTypes.bool,\n component: PropTypes.any,\n overlayComponent: PropTypes.any,\n\n style: PropTypes.object,\n classNames: PropTypes.shape({\n container: PropTypes.string,\n overlayWrapper: PropTypes.string,\n overlay: PropTypes.string.isRequired,\n }),\n\n onDayChange: PropTypes.func,\n onDayPickerHide: PropTypes.func,\n onDayPickerShow: PropTypes.func,\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onKeyUp: PropTypes.func,\n };\n\n static defaultProps = {\n dayPickerProps: {},\n value: '',\n typedValue: '',\n placeholder: 'YYYY-M-D',\n format: 'L',\n formatDate: defaultFormat,\n parseDate: defaultParse,\n showOverlay: false,\n hideOnDayClick: true,\n clickUnselectsDay: false,\n keepFocus: true,\n component: 'input',\n inputProps: {},\n overlayComponent: OverlayComponent,\n classNames: {\n container: 'DayPickerInput',\n overlayWrapper: 'DayPickerInput-OverlayWrapper',\n overlay: 'DayPickerInput-Overlay',\n },\n };\n\n input = null;\n\n daypicker = null;\n\n clickTimeout = null;\n\n hideTimeout = null;\n\n inputBlurTimeout = null;\n\n inputFocusTimeout = null;\n\n constructor(props) {\n super(props);\n\n this.state = this.getInitialStateFromProps(props);\n this.state.showOverlay = props.showOverlay;\n\n this.hideAfterDayClick = this.hideAfterDayClick.bind(this);\n this.handleInputClick = this.handleInputClick.bind(this);\n this.handleInputFocus = this.handleInputFocus.bind(this);\n this.handleInputBlur = this.handleInputBlur.bind(this);\n this.handleInputChange = this.handleInputChange.bind(this);\n this.handleInputKeyDown = this.handleInputKeyDown.bind(this);\n this.handleInputKeyUp = this.handleInputKeyUp.bind(this);\n this.handleDayClick = this.handleDayClick.bind(this);\n this.handleMonthChange = this.handleMonthChange.bind(this);\n this.handleOverlayFocus = this.handleOverlayFocus.bind(this);\n this.handleOverlayBlur = this.handleOverlayBlur.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const newState = {};\n\n // Current props\n const { value, formatDate, format, dayPickerProps } = this.props;\n\n // Update the input value if `value`, `dayPickerProps.locale` or `format`\n // props have changed\n if (\n value !== prevProps.value ||\n dayPickerProps.locale !== prevProps.dayPickerProps.locale ||\n format !== prevProps.format\n ) {\n if (isDate(value)) {\n newState.value = formatDate(value, format, dayPickerProps.locale);\n } else {\n newState.value = value;\n }\n }\n\n // Update the month if the months from props changed\n const prevMonth = prevProps.dayPickerProps.month;\n if (\n dayPickerProps.month &&\n dayPickerProps.month !== prevMonth &&\n !isSameMonth(dayPickerProps.month, prevMonth)\n ) {\n newState.month = dayPickerProps.month;\n }\n\n // Updated the selected days from props if they changed\n if (prevProps.dayPickerProps.selectedDays !== dayPickerProps.selectedDays) {\n newState.selectedDays = dayPickerProps.selectedDays;\n }\n\n if (Object.keys(newState).length > 0) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this.clickTimeout);\n clearTimeout(this.hideTimeout);\n clearTimeout(this.inputFocusTimeout);\n clearTimeout(this.inputBlurTimeout);\n clearTimeout(this.overlayBlurTimeout);\n }\n\n getInitialMonthFromProps(props) {\n const { dayPickerProps, format } = props;\n let day;\n if (props.value) {\n if (isDate(props.value)) {\n day = props.value;\n } else {\n day = props.parseDate(props.value, format, dayPickerProps.locale);\n }\n }\n return (\n dayPickerProps.initialMonth || dayPickerProps.month || day || new Date()\n );\n }\n\n getInitialStateFromProps(props) {\n const { dayPickerProps, formatDate, format, typedValue } = props;\n let { value } = props;\n if (props.value && isDate(props.value)) {\n value = formatDate(props.value, format, dayPickerProps.locale);\n }\n\n return {\n value,\n typedValue,\n month: this.getInitialMonthFromProps(props),\n selectedDays: dayPickerProps.selectedDays,\n };\n }\n\n getInput() {\n return this.input;\n }\n\n getDayPicker() {\n return this.daypicker;\n }\n\n /**\n * Update the component's state and fire the `onDayChange` event passing the\n * day's modifiers to it.\n *\n * @param {Date} day - Will be used for changing the month\n * @param {String} value - Input field value\n * @private\n */\n updateState(day, value, callback) {\n const { dayPickerProps, onDayChange } = this.props;\n this.setState({ month: day, value, typedValue: '' }, () => {\n if (callback) {\n callback();\n }\n if (!onDayChange) {\n return;\n }\n const modifiersObj = {\n disabled: dayPickerProps.disabledDays,\n selected: dayPickerProps.selectedDays,\n ...dayPickerProps.modifiers,\n };\n const modifiers = getModifiersForDay(day, modifiersObj).reduce(\n (obj, modifier) => ({\n ...obj,\n [modifier]: true,\n }),\n {}\n );\n onDayChange(day, modifiers, this);\n });\n }\n\n /**\n * Show the Day Picker overlay.\n *\n * @memberof DayPickerInput\n */\n showDayPicker() {\n const { parseDate, format, dayPickerProps } = this.props;\n const { value, showOverlay } = this.state;\n if (showOverlay) {\n return;\n }\n // Reset the current displayed month when showing the overlay\n const month = value\n ? parseDate(value, format, dayPickerProps.locale) // Use the month in the input field\n : this.getInitialMonthFromProps(this.props); // Restore the month from the props\n this.setState(\n state => ({\n showOverlay: true,\n month: month || state.month,\n }),\n () => {\n if (this.props.onDayPickerShow) this.props.onDayPickerShow();\n }\n );\n }\n\n /**\n * Hide the Day Picker overlay\n *\n * @memberof DayPickerInput\n */\n hideDayPicker() {\n if (this.state.showOverlay === false) {\n return;\n }\n this.setState({ showOverlay: false }, () => {\n if (this.props.onDayPickerHide) this.props.onDayPickerHide();\n });\n }\n\n hideAfterDayClick() {\n if (!this.props.hideOnDayClick) {\n return;\n }\n this.hideTimeout = setTimeout(() => {\n this.overlayHasFocus = false;\n this.hideDayPicker();\n }, HIDE_TIMEOUT);\n }\n\n handleInputClick(e) {\n this.showDayPicker();\n if (this.props.inputProps.onClick) {\n e.persist();\n this.props.inputProps.onClick(e);\n }\n }\n\n handleInputFocus(e) {\n this.showDayPicker();\n // Set `overlayHasFocus` after a timeout so the overlay can be hidden when\n // the input is blurred\n this.inputFocusTimeout = setTimeout(() => {\n this.overlayHasFocus = false;\n }, 2);\n if (this.props.inputProps.onFocus) {\n e.persist();\n this.props.inputProps.onFocus(e);\n }\n }\n\n // When the input is blurred, the overlay should disappear. However the input\n // is blurred also when the user interacts with the overlay (e.g. the overlay\n // get the focus by clicking it). In these cases, the overlay should not be\n // hidden. There are different approaches to avoid hiding the overlay when\n // this happens, but the only cross-browser hack we’ve found is to set all\n // these timeouts in code before changing `overlayHasFocus`.\n handleInputBlur(e) {\n this.inputBlurTimeout = setTimeout(() => {\n if (!this.overlayHasFocus) {\n this.hideDayPicker();\n }\n }, 1);\n if (this.props.inputProps.onBlur) {\n e.persist();\n this.props.inputProps.onBlur(e);\n }\n }\n\n handleOverlayFocus(e) {\n e.preventDefault();\n this.overlayHasFocus = true;\n if (\n !this.props.keepFocus ||\n !this.input ||\n typeof this.input.focus !== 'function'\n ) {\n return;\n }\n this.input.focus();\n }\n\n handleOverlayBlur() {\n // We need to set a timeout otherwise IE11 will hide the overlay when\n // focusing it\n this.overlayBlurTimeout = setTimeout(() => {\n this.overlayHasFocus = false;\n }, 3);\n }\n\n handleInputChange(e) {\n const {\n dayPickerProps,\n format,\n inputProps,\n onDayChange,\n parseDate,\n } = this.props;\n if (inputProps.onChange) {\n e.persist();\n inputProps.onChange(e);\n }\n const { value } = e.target;\n if (value.trim() === '') {\n this.setState({ value, typedValue: '' });\n if (onDayChange) onDayChange(undefined, {}, this);\n return;\n }\n const day = parseDate(value, format, dayPickerProps.locale);\n if (!day) {\n // Day is invalid: we save the value in the typedValue state\n this.setState({ value, typedValue: value });\n if (onDayChange) onDayChange(undefined, {}, this);\n return;\n }\n this.updateState(day, value);\n }\n\n handleInputKeyDown(e) {\n if (e.keyCode === TAB) {\n this.hideDayPicker();\n } else {\n this.showDayPicker();\n }\n if (this.props.inputProps.onKeyDown) {\n e.persist();\n this.props.inputProps.onKeyDown(e);\n }\n }\n\n handleInputKeyUp(e) {\n if (e.keyCode === ESC) {\n this.hideDayPicker();\n } else {\n this.showDayPicker();\n }\n if (this.props.inputProps.onKeyUp) {\n e.persist();\n this.props.inputProps.onKeyUp(e);\n }\n }\n\n handleMonthChange(month) {\n this.setState({ month }, () => {\n if (\n this.props.dayPickerProps &&\n this.props.dayPickerProps.onMonthChange\n ) {\n this.props.dayPickerProps.onMonthChange(month);\n }\n });\n }\n\n handleDayClick(day, modifiers, e) {\n const {\n clickUnselectsDay,\n dayPickerProps,\n onDayChange,\n formatDate,\n format,\n } = this.props;\n if (dayPickerProps.onDayClick) {\n dayPickerProps.onDayClick(day, modifiers, e);\n }\n\n // Do nothing if the day is disabled\n if (\n modifiers.disabled ||\n (dayPickerProps &&\n dayPickerProps.classNames &&\n modifiers[dayPickerProps.classNames.disabled])\n ) {\n return;\n }\n\n // If the clicked day is already selected, remove the clicked day\n // from the selected days and empty the field value\n if (modifiers.selected && clickUnselectsDay) {\n let { selectedDays } = this.state;\n if (Array.isArray(selectedDays)) {\n selectedDays = selectedDays.slice(0);\n const selectedDayIdx = selectedDays.indexOf(day);\n selectedDays.splice(selectedDayIdx, 1);\n } else if (selectedDays) {\n selectedDays = null;\n }\n\n this.setState(\n { value: '', typedValue: '', selectedDays },\n this.hideAfterDayClick\n );\n\n if (onDayChange) {\n onDayChange(undefined, modifiers, this);\n }\n return;\n }\n\n const value = formatDate(day, format, dayPickerProps.locale);\n this.setState({ value, typedValue: undefined, month: day }, () => {\n if (onDayChange) {\n onDayChange(day, modifiers, this);\n }\n this.hideAfterDayClick();\n });\n }\n\n renderOverlay() {\n const {\n classNames,\n dayPickerProps,\n parseDate,\n formatDate,\n format,\n } = this.props;\n const { selectedDays, value } = this.state;\n let selectedDay;\n if (!selectedDays && value) {\n const day = parseDate(value, format, dayPickerProps.locale);\n if (day) {\n selectedDay = day;\n }\n } else if (selectedDays) {\n selectedDay = selectedDays;\n }\n let onTodayButtonClick;\n if (dayPickerProps.todayButton) {\n // Set the current day when clicking the today button\n onTodayButtonClick = () =>\n this.updateState(\n new Date(),\n formatDate(new Date(), format, dayPickerProps.locale),\n this.hideAfterDayClick\n );\n }\n const Overlay = this.props.overlayComponent;\n return (\n <Overlay\n classNames={classNames}\n month={this.state.month}\n selectedDay={selectedDay}\n input={this.input}\n tabIndex={0} // tabIndex is necessary to catch focus/blur events on Safari\n onFocus={this.handleOverlayFocus}\n onBlur={this.handleOverlayBlur}\n >\n <DayPicker\n ref={el => (this.daypicker = el)}\n onTodayButtonClick={onTodayButtonClick}\n {...dayPickerProps}\n month={this.state.month}\n selectedDays={selectedDay}\n onDayClick={this.handleDayClick}\n onMonthChange={this.handleMonthChange}\n />\n </Overlay>\n );\n }\n\n render() {\n const Input = this.props.component;\n const { inputProps } = this.props;\n return (\n <div className={this.props.classNames.container} style={this.props.style}>\n <Input\n ref={el => (this.input = el)}\n placeholder={this.props.placeholder}\n {...inputProps}\n value={this.state.value || this.state.typedValue}\n onChange={this.handleInputChange}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n onKeyDown={this.handleInputKeyDown}\n onKeyUp={this.handleInputKeyUp}\n onClick={!inputProps.disabled ? this.handleInputClick : undefined}\n />\n {this.state.showOverlay && this.renderOverlay()}\n </div>\n );\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-day-picker",
3
- "version": "7.3.2",
3
+ "version": "7.4.0",
4
4
  "description": "Flexible date picker component for React",
5
5
  "main": "DayPicker.js",
6
6
  "style": "lib/style.css",
@@ -23,6 +23,7 @@
23
23
  "lint": "eslint src test",
24
24
  "dtslint": "dtslint types",
25
25
  "test": "jest",
26
+ "coverage": "jest --coverage",
26
27
  "check": "npm run lint && npm run dtslint && npm run test",
27
28
  "prerelease": "npm run check && npm run build",
28
29
  "build": "rimraf lib && npm run build:node && npm run build:production && npm run build:development",
@@ -57,6 +58,7 @@
57
58
  "react": "~0.13.x || ~0.14.x || ^15.0.0 || ^16.0.0"
58
59
  },
59
60
  "devDependencies": {
61
+ "@types/react": "^16.9.2",
60
62
  "autoprefixer": "^8.4.1",
61
63
  "babel-cli": "^6.26.0",
62
64
  "babel-core": "^6.26.3",
@@ -97,7 +99,6 @@
97
99
  "react-dom": "^16.4.2",
98
100
  "react-test-renderer": "^16.4.2",
99
101
  "rimraf": "^2.6.2",
100
- "typescript": "^3.0.1",
101
102
  "webpack": "^3.10.0"
102
103
  },
103
104
  "dependencies": {
@@ -1,4 +1,4 @@
1
- // TypeScript Version: 2.3
1
+ // TypeScript Version: 3.1
2
2
 
3
3
  import * as React from 'react';
4
4
  import { LocaleUtils, ModifiersUtils, DateUtils } from './utils';
@@ -18,6 +18,7 @@ export default class DayPicker extends React.Component<DayPickerProps, any> {
18
18
  static DayModifiers: DayModifiers;
19
19
  static Modifiers: Modifiers;
20
20
  readonly dayPicker: HTMLDivElement;
21
+ focus(): void;
21
22
  showMonth(month: Date): void;
22
23
  showPreviousMonth(): void;
23
24
  showNextMonth(): void;
@@ -1,4 +1,4 @@
1
- // TypeScript Version: 2.3
1
+ // TypeScript Version: 3.1
2
2
 
3
3
  import * as React from 'react';
4
4
  import { DayPickerInputProps } from './props';
@@ -0,0 +1,5 @@
1
+ # TypeScript Definitions
2
+
3
+ react-day-picker includes type definitions which the TypeScript compiler and language services can use to check your usage of the library.
4
+
5
+ Note that _only exports from the root of the package_ (`import { ... } from "react-day-picker"`) are considered part of the public API.
package/types/common.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- // TypeScript Version: 2.3
1
+ // TypeScript Version: 3.1
2
2
 
3
3
  export interface ClassNames {
4
4
  container: string;
package/types/index.d.ts CHANGED
@@ -1,12 +1,6 @@
1
- // TypeScript Version: 2.3
1
+ // TypeScript Version: 3.1
2
2
 
3
3
  export { default } from './DayPicker';
4
-
5
- import * as UtilTypes from './utils';
6
4
  export * from './common';
7
5
  export * from './props';
8
6
  export * from './utils';
9
-
10
- export const DateUtils: typeof UtilTypes.DateUtils;
11
- export const LocaleUtils: typeof UtilTypes.LocaleUtils;
12
- export const ModifiersUtils: typeof UtilTypes.ModifiersUtils;
package/types/moment.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- // TypeScript Version: 2.3
1
+ // TypeScript Version: 3.1
2
2
 
3
3
  import { LocaleUtils } from './utils';
4
4
 
package/types/props.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- // TypeScript Version: 2.3
1
+ // TypeScript Version: 3.1
2
2
 
3
3
  import * as React from 'react';
4
4
  import {
@@ -152,7 +152,7 @@ export interface DayPickerProps {
152
152
 
153
153
  export interface DayPickerInputProps {
154
154
  value?: string | Date;
155
- format: string | string[];
155
+ format?: string | string[];
156
156
  placeholder?: string;
157
157
 
158
158
  dayPickerProps?: DayPickerProps;
@@ -5,7 +5,7 @@
5
5
  "es6",
6
6
  "dom"
7
7
  ],
8
- "noImplicitAny": false,
8
+ "noImplicitAny": true,
9
9
  "noImplicitThis": true,
10
10
  "strictNullChecks": true,
11
11
  "noEmit": true,
package/types/utils.d.ts CHANGED
@@ -1,8 +1,9 @@
1
- // TypeScript Version: 2.3
1
+ // TypeScript Version: 3.1
2
2
 
3
3
  import { RangeModifier, Modifier } from './common';
4
4
 
5
- export const LocaleUtils: {
5
+ export interface LocaleUtils {
6
+ formatDate(date: Date, format?: string | string[], locale?: string): string;
6
7
  formatDay(day: Date, locale?: string): string;
7
8
  formatMonthTitle(month: Date, locale?: string): string;
8
9
  formatWeekdayLong(weekday: number, locale?: string): string;
@@ -24,6 +25,7 @@ export const LocaleUtils: {
24
25
  string,
25
26
  string
26
27
  ];
28
+ parseDate(str: string, format?: string, locale?: string): Date;
27
29
  };
28
30
 
29
31
  export const DateUtils: {