[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

/wp-includes/js/dist/ -> components.js (source)

   1  this["wp"] = this["wp"] || {}; this["wp"]["components"] =
   2  /******/ (function(modules) { // webpackBootstrap
   3  /******/     // The module cache
   4  /******/     var installedModules = {};
   5  /******/
   6  /******/     // The require function
   7  /******/ 	function __webpack_require__(moduleId) {
   8  /******/
   9  /******/         // Check if module is in cache
  10  /******/         if(installedModules[moduleId]) {
  11  /******/             return installedModules[moduleId].exports;
  12  /******/         }
  13  /******/         // Create a new module (and put it into the cache)
  14  /******/         var module = installedModules[moduleId] = {
  15  /******/             i: moduleId,
  16  /******/             l: false,
  17  /******/             exports: {}
  18  /******/         };
  19  /******/
  20  /******/         // Execute the module function
  21  /******/         modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  22  /******/
  23  /******/         // Flag the module as loaded
  24  /******/         module.l = true;
  25  /******/
  26  /******/         // Return the exports of the module
  27  /******/         return module.exports;
  28  /******/     }
  29  /******/
  30  /******/
  31  /******/     // expose the modules object (__webpack_modules__)
  32  /******/     __webpack_require__.m = modules;
  33  /******/
  34  /******/     // expose the module cache
  35  /******/     __webpack_require__.c = installedModules;
  36  /******/
  37  /******/     // define getter function for harmony exports
  38  /******/     __webpack_require__.d = function(exports, name, getter) {
  39  /******/         if(!__webpack_require__.o(exports, name)) {
  40  /******/             Object.defineProperty(exports, name, { enumerable: true, get: getter });
  41  /******/         }
  42  /******/     };
  43  /******/
  44  /******/     // define __esModule on exports
  45  /******/     __webpack_require__.r = function(exports) {
  46  /******/         if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  47  /******/             Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  48  /******/         }
  49  /******/         Object.defineProperty(exports, '__esModule', { value: true });
  50  /******/     };
  51  /******/
  52  /******/     // create a fake namespace object
  53  /******/     // mode & 1: value is a module id, require it
  54  /******/     // mode & 2: merge all properties of value into the ns
  55  /******/     // mode & 4: return value when already ns object
  56  /******/     // mode & 8|1: behave like require
  57  /******/     __webpack_require__.t = function(value, mode) {
  58  /******/         if(mode & 1) value = __webpack_require__(value);
  59  /******/         if(mode & 8) return value;
  60  /******/         if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
  61  /******/         var ns = Object.create(null);
  62  /******/         __webpack_require__.r(ns);
  63  /******/         Object.defineProperty(ns, 'default', { enumerable: true, value: value });
  64  /******/         if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
  65  /******/         return ns;
  66  /******/     };
  67  /******/
  68  /******/     // getDefaultExport function for compatibility with non-harmony modules
  69  /******/     __webpack_require__.n = function(module) {
  70  /******/         var getter = module && module.__esModule ?
  71  /******/ 			function getDefault() { return module['default']; } :
  72  /******/ 			function getModuleExports() { return module; };
  73  /******/         __webpack_require__.d(getter, 'a', getter);
  74  /******/         return getter;
  75  /******/     };
  76  /******/
  77  /******/     // Object.prototype.hasOwnProperty.call
  78  /******/     __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  79  /******/
  80  /******/     // __webpack_public_path__
  81  /******/     __webpack_require__.p = "";
  82  /******/
  83  /******/
  84  /******/     // Load entry module and return exports
  85  /******/     return __webpack_require__(__webpack_require__.s = 345);
  86  /******/ })
  87  /************************************************************************/
  88  /******/ ([
  89  /* 0 */
  90  /***/ (function(module, exports) {
  91  
  92  (function() { module.exports = this["wp"]["element"]; }());
  93  
  94  /***/ }),
  95  /* 1 */
  96  /***/ (function(module, exports) {
  97  
  98  (function() { module.exports = this["wp"]["i18n"]; }());
  99  
 100  /***/ }),
 101  /* 2 */
 102  /***/ (function(module, exports) {
 103  
 104  (function() { module.exports = this["lodash"]; }());
 105  
 106  /***/ }),
 107  /* 3 */
 108  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 109  
 110  "use strict";
 111  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _assertThisInitialized; });
 112  function _assertThisInitialized(self) {
 113    if (self === void 0) {
 114      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
 115    }
 116  
 117    return self;
 118  }
 119  
 120  /***/ }),
 121  /* 4 */,
 122  /* 5 */,
 123  /* 6 */
 124  /***/ (function(module, exports) {
 125  
 126  (function() { module.exports = this["wp"]["compose"]; }());
 127  
 128  /***/ }),
 129  /* 7 */
 130  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 131  
 132  "use strict";
 133  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectSpread; });
 134  /* harmony import */ var _defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15);
 135  
 136  function _objectSpread(target) {
 137    for (var i = 1; i < arguments.length; i++) {
 138      var source = arguments[i] != null ? arguments[i] : {};
 139      var ownKeys = Object.keys(source);
 140  
 141      if (typeof Object.getOwnPropertySymbols === 'function') {
 142        ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
 143          return Object.getOwnPropertyDescriptor(source, sym).enumerable;
 144        }));
 145      }
 146  
 147      ownKeys.forEach(function (key) {
 148        Object(_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(target, key, source[key]);
 149      });
 150    }
 151  
 152    return target;
 153  }
 154  
 155  /***/ }),
 156  /* 8 */,
 157  /* 9 */
 158  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 159  
 160  "use strict";
 161  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _createClass; });
 162  function _defineProperties(target, props) {
 163    for (var i = 0; i < props.length; i++) {
 164      var descriptor = props[i];
 165      descriptor.enumerable = descriptor.enumerable || false;
 166      descriptor.configurable = true;
 167      if ("value" in descriptor) descriptor.writable = true;
 168      Object.defineProperty(target, descriptor.key, descriptor);
 169    }
 170  }
 171  
 172  function _createClass(Constructor, protoProps, staticProps) {
 173    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
 174    if (staticProps) _defineProperties(Constructor, staticProps);
 175    return Constructor;
 176  }
 177  
 178  /***/ }),
 179  /* 10 */
 180  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 181  
 182  "use strict";
 183  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _classCallCheck; });
 184  function _classCallCheck(instance, Constructor) {
 185    if (!(instance instanceof Constructor)) {
 186      throw new TypeError("Cannot call a class as a function");
 187    }
 188  }
 189  
 190  /***/ }),
 191  /* 11 */
 192  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 193  
 194  "use strict";
 195  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _possibleConstructorReturn; });
 196  /* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32);
 197  /* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
 198  
 199  
 200  function _possibleConstructorReturn(self, call) {
 201    if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(call) === "object" || typeof call === "function")) {
 202      return call;
 203    }
 204  
 205    return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(self);
 206  }
 207  
 208  /***/ }),
 209  /* 12 */
 210  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 211  
 212  "use strict";
 213  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _getPrototypeOf; });
 214  function _getPrototypeOf(o) {
 215    _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
 216      return o.__proto__ || Object.getPrototypeOf(o);
 217    };
 218    return _getPrototypeOf(o);
 219  }
 220  
 221  /***/ }),
 222  /* 13 */
 223  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 224  
 225  "use strict";
 226  
 227  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
 228  function _setPrototypeOf(o, p) {
 229    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
 230      o.__proto__ = p;
 231      return o;
 232    };
 233  
 234    return _setPrototypeOf(o, p);
 235  }
 236  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js
 237  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _inherits; });
 238  
 239  function _inherits(subClass, superClass) {
 240    if (typeof superClass !== "function" && superClass !== null) {
 241      throw new TypeError("Super expression must either be null or a function");
 242    }
 243  
 244    subClass.prototype = Object.create(superClass && superClass.prototype, {
 245      constructor: {
 246        value: subClass,
 247        writable: true,
 248        configurable: true
 249      }
 250    });
 251    if (superClass) _setPrototypeOf(subClass, superClass);
 252  }
 253  
 254  /***/ }),
 255  /* 14 */,
 256  /* 15 */
 257  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 258  
 259  "use strict";
 260  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _defineProperty; });
 261  function _defineProperty(obj, key, value) {
 262    if (key in obj) {
 263      Object.defineProperty(obj, key, {
 264        value: value,
 265        enumerable: true,
 266        configurable: true,
 267        writable: true
 268      });
 269    } else {
 270      obj[key] = value;
 271    }
 272  
 273    return obj;
 274  }
 275  
 276  /***/ }),
 277  /* 16 */
 278  /***/ (function(module, exports, __webpack_require__) {
 279  
 280  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
 281    Copyright (c) 2017 Jed Watson.
 282    Licensed under the MIT License (MIT), see
 283    http://jedwatson.github.io/classnames
 284  */
 285  /* global define */
 286  
 287  (function () {
 288      'use strict';
 289  
 290      var hasOwn = {}.hasOwnProperty;
 291  
 292  	function classNames () {
 293          var classes = [];
 294  
 295          for (var i = 0; i < arguments.length; i++) {
 296              var arg = arguments[i];
 297              if (!arg) continue;
 298  
 299              var argType = typeof arg;
 300  
 301              if (argType === 'string' || argType === 'number') {
 302                  classes.push(arg);
 303              } else if (Array.isArray(arg) && arg.length) {
 304                  var inner = classNames.apply(null, arg);
 305                  if (inner) {
 306                      classes.push(inner);
 307                  }
 308              } else if (argType === 'object') {
 309                  for (var key in arg) {
 310                      if (hasOwn.call(arg, key) && arg[key]) {
 311                          classes.push(key);
 312                      }
 313                  }
 314              }
 315          }
 316  
 317          return classes.join(' ');
 318      }
 319  
 320      if ( true && module.exports) {
 321          classNames.default = classNames;
 322          module.exports = classNames;
 323      } else if (true) {
 324          // register as 'classnames', consistent with npm package name
 325          !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
 326              return classNames;
 327          }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
 328                  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
 329      } else {}
 330  }());
 331  
 332  
 333  /***/ }),
 334  /* 17 */
 335  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 336  
 337  "use strict";
 338  
 339  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
 340  function _arrayWithoutHoles(arr) {
 341    if (Array.isArray(arr)) {
 342      for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {
 343        arr2[i] = arr[i];
 344      }
 345  
 346      return arr2;
 347    }
 348  }
 349  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
 350  var iterableToArray = __webpack_require__(34);
 351  
 352  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
 353  function _nonIterableSpread() {
 354    throw new TypeError("Invalid attempt to spread non-iterable instance");
 355  }
 356  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
 357  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _toConsumableArray; });
 358  
 359  
 360  
 361  function _toConsumableArray(arr) {
 362    return _arrayWithoutHoles(arr) || Object(iterableToArray["a" /* default */])(arr) || _nonIterableSpread();
 363  }
 364  
 365  /***/ }),
 366  /* 18 */
 367  /***/ (function(module, exports) {
 368  
 369  (function() { module.exports = this["wp"]["keycodes"]; }());
 370  
 371  /***/ }),
 372  /* 19 */
 373  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 374  
 375  "use strict";
 376  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _extends; });
 377  function _extends() {
 378    _extends = Object.assign || function (target) {
 379      for (var i = 1; i < arguments.length; i++) {
 380        var source = arguments[i];
 381  
 382        for (var key in source) {
 383          if (Object.prototype.hasOwnProperty.call(source, key)) {
 384            target[key] = source[key];
 385          }
 386        }
 387      }
 388  
 389      return target;
 390    };
 391  
 392    return _extends.apply(this, arguments);
 393  }
 394  
 395  /***/ }),
 396  /* 20 */
 397  /***/ (function(module, exports) {
 398  
 399  (function() { module.exports = this["wp"]["richText"]; }());
 400  
 401  /***/ }),
 402  /* 21 */
 403  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 404  
 405  "use strict";
 406  
 407  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
 408  function _objectWithoutPropertiesLoose(source, excluded) {
 409    if (source == null) return {};
 410    var target = {};
 411    var sourceKeys = Object.keys(source);
 412    var key, i;
 413  
 414    for (i = 0; i < sourceKeys.length; i++) {
 415      key = sourceKeys[i];
 416      if (excluded.indexOf(key) >= 0) continue;
 417      target[key] = source[key];
 418    }
 419  
 420    return target;
 421  }
 422  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
 423  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutProperties; });
 424  
 425  function _objectWithoutProperties(source, excluded) {
 426    if (source == null) return {};
 427    var target = _objectWithoutPropertiesLoose(source, excluded);
 428    var key, i;
 429  
 430    if (Object.getOwnPropertySymbols) {
 431      var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
 432  
 433      for (i = 0; i < sourceSymbolKeys.length; i++) {
 434        key = sourceSymbolKeys[i];
 435        if (excluded.indexOf(key) >= 0) continue;
 436        if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
 437        target[key] = source[key];
 438      }
 439    }
 440  
 441    return target;
 442  }
 443  
 444  /***/ }),
 445  /* 22 */,
 446  /* 23 */,
 447  /* 24 */
 448  /***/ (function(module, exports) {
 449  
 450  (function() { module.exports = this["wp"]["dom"]; }());
 451  
 452  /***/ }),
 453  /* 25 */
 454  /***/ (function(module, exports) {
 455  
 456  (function() { module.exports = this["wp"]["url"]; }());
 457  
 458  /***/ }),
 459  /* 26 */
 460  /***/ (function(module, exports) {
 461  
 462  (function() { module.exports = this["wp"]["hooks"]; }());
 463  
 464  /***/ }),
 465  /* 27 */
 466  /***/ (function(module, exports) {
 467  
 468  (function() { module.exports = this["React"]; }());
 469  
 470  /***/ }),
 471  /* 28 */
 472  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 473  
 474  "use strict";
 475  
 476  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
 477  var arrayWithHoles = __webpack_require__(37);
 478  
 479  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
 480  function _iterableToArrayLimit(arr, i) {
 481    var _arr = [];
 482    var _n = true;
 483    var _d = false;
 484    var _e = undefined;
 485  
 486    try {
 487      for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
 488        _arr.push(_s.value);
 489  
 490        if (i && _arr.length === i) break;
 491      }
 492    } catch (err) {
 493      _d = true;
 494      _e = err;
 495    } finally {
 496      try {
 497        if (!_n && _i["return"] != null) _i["return"]();
 498      } finally {
 499        if (_d) throw _e;
 500      }
 501    }
 502  
 503    return _arr;
 504  }
 505  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
 506  var nonIterableRest = __webpack_require__(38);
 507  
 508  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
 509  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _slicedToArray; });
 510  
 511  
 512  
 513  function _slicedToArray(arr, i) {
 514    return Object(arrayWithHoles["a" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(nonIterableRest["a" /* default */])();
 515  }
 516  
 517  /***/ }),
 518  /* 29 */
 519  /***/ (function(module, exports) {
 520  
 521  (function() { module.exports = this["moment"]; }());
 522  
 523  /***/ }),
 524  /* 30 */,
 525  /* 31 */
 526  /***/ (function(module, exports, __webpack_require__) {
 527  
 528  /**
 529   * Copyright (c) 2013-present, Facebook, Inc.
 530   *
 531   * This source code is licensed under the MIT license found in the
 532   * LICENSE file in the root directory of this source tree.
 533   */
 534  
 535  if (false) { var throwOnDirectAccess, ReactIs; } else {
 536    // By explicitly using `prop-types` you are opting into new production behavior.
 537    // http://fb.me/prop-types-in-prod
 538    module.exports = __webpack_require__(88)();
 539  }
 540  
 541  
 542  /***/ }),
 543  /* 32 */
 544  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 545  
 546  "use strict";
 547  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _typeof; });
 548  function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
 549  
 550  function _typeof(obj) {
 551    if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") {
 552      _typeof = function _typeof(obj) {
 553        return _typeof2(obj);
 554      };
 555    } else {
 556      _typeof = function _typeof(obj) {
 557        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj);
 558      };
 559    }
 560  
 561    return _typeof(obj);
 562  }
 563  
 564  /***/ }),
 565  /* 33 */
 566  /***/ (function(module, exports) {
 567  
 568  (function() { module.exports = this["wp"]["apiFetch"]; }());
 569  
 570  /***/ }),
 571  /* 34 */
 572  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 573  
 574  "use strict";
 575  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _iterableToArray; });
 576  function _iterableToArray(iter) {
 577    if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
 578  }
 579  
 580  /***/ }),
 581  /* 35 */,
 582  /* 36 */,
 583  /* 37 */
 584  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 585  
 586  "use strict";
 587  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _arrayWithHoles; });
 588  function _arrayWithHoles(arr) {
 589    if (Array.isArray(arr)) return arr;
 590  }
 591  
 592  /***/ }),
 593  /* 38 */
 594  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 595  
 596  "use strict";
 597  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _nonIterableRest; });
 598  function _nonIterableRest() {
 599    throw new TypeError("Invalid attempt to destructure non-iterable instance");
 600  }
 601  
 602  /***/ }),
 603  /* 39 */
 604  /***/ (function(module, exports, __webpack_require__) {
 605  
 606  "use strict";
 607  
 608  
 609  Object.defineProperty(exports, "__esModule", {
 610    value: true
 611  });
 612  var DISPLAY_FORMAT = exports.DISPLAY_FORMAT = 'L';
 613  var ISO_FORMAT = exports.ISO_FORMAT = 'YYYY-MM-DD';
 614  var ISO_MONTH_FORMAT = exports.ISO_MONTH_FORMAT = 'YYYY-MM';
 615  
 616  var START_DATE = exports.START_DATE = 'startDate';
 617  var END_DATE = exports.END_DATE = 'endDate';
 618  
 619  var HORIZONTAL_ORIENTATION = exports.HORIZONTAL_ORIENTATION = 'horizontal';
 620  var VERTICAL_ORIENTATION = exports.VERTICAL_ORIENTATION = 'vertical';
 621  var VERTICAL_SCROLLABLE = exports.VERTICAL_SCROLLABLE = 'verticalScrollable';
 622  
 623  var ICON_BEFORE_POSITION = exports.ICON_BEFORE_POSITION = 'before';
 624  var ICON_AFTER_POSITION = exports.ICON_AFTER_POSITION = 'after';
 625  
 626  var INFO_POSITION_TOP = exports.INFO_POSITION_TOP = 'top';
 627  var INFO_POSITION_BOTTOM = exports.INFO_POSITION_BOTTOM = 'bottom';
 628  var INFO_POSITION_BEFORE = exports.INFO_POSITION_BEFORE = 'before';
 629  var INFO_POSITION_AFTER = exports.INFO_POSITION_AFTER = 'after';
 630  
 631  var ANCHOR_LEFT = exports.ANCHOR_LEFT = 'left';
 632  var ANCHOR_RIGHT = exports.ANCHOR_RIGHT = 'right';
 633  
 634  var OPEN_DOWN = exports.OPEN_DOWN = 'down';
 635  var OPEN_UP = exports.OPEN_UP = 'up';
 636  
 637  var DAY_SIZE = exports.DAY_SIZE = 39;
 638  var BLOCKED_MODIFIER = exports.BLOCKED_MODIFIER = 'blocked';
 639  var WEEKDAYS = exports.WEEKDAYS = [0, 1, 2, 3, 4, 5, 6];
 640  
 641  var FANG_WIDTH_PX = exports.FANG_WIDTH_PX = 20;
 642  var FANG_HEIGHT_PX = exports.FANG_HEIGHT_PX = 10;
 643  var DEFAULT_VERTICAL_SPACING = exports.DEFAULT_VERTICAL_SPACING = 22;
 644  
 645  var MODIFIER_KEY_NAMES = exports.MODIFIER_KEY_NAMES = new Set(['Shift', 'Control', 'Alt', 'Meta']);
 646  
 647  /***/ }),
 648  /* 40 */,
 649  /* 41 */,
 650  /* 42 */
 651  /***/ (function(module, exports) {
 652  
 653  (function() { module.exports = this["wp"]["isShallowEqual"]; }());
 654  
 655  /***/ }),
 656  /* 43 */
 657  /***/ (function(module, exports, __webpack_require__) {
 658  
 659  module.exports =  true ? __webpack_require__(284) : undefined;
 660  
 661  
 662  
 663  /***/ }),
 664  /* 44 */,
 665  /* 45 */
 666  /***/ (function(module, exports, __webpack_require__) {
 667  
 668  var __WEBPACK_AMD_DEFINE_RESULT__;// TinyColor v1.4.1
 669  // https://github.com/bgrins/TinyColor
 670  // Brian Grinstead, MIT License
 671  
 672  (function(Math) {
 673  
 674  var trimLeft = /^\s+/,
 675      trimRight = /\s+$/,
 676      tinyCounter = 0,
 677      mathRound = Math.round,
 678      mathMin = Math.min,
 679      mathMax = Math.max,
 680      mathRandom = Math.random;
 681  
 682  function tinycolor (color, opts) {
 683  
 684      color = (color) ? color : '';
 685      opts = opts || { };
 686  
 687      // If input is already a tinycolor, return itself
 688      if (color instanceof tinycolor) {
 689         return color;
 690      }
 691      // If we are called as a function, call using new instead
 692      if (!(this instanceof tinycolor)) {
 693          return new tinycolor(color, opts);
 694      }
 695  
 696      var rgb = inputToRGB(color);
 697      this._originalInput = color,
 698      this._r = rgb.r,
 699      this._g = rgb.g,
 700      this._b = rgb.b,
 701      this._a = rgb.a,
 702      this._roundA = mathRound(100*this._a) / 100,
 703      this._format = opts.format || rgb.format;
 704      this._gradientType = opts.gradientType;
 705  
 706      // Don't let the range of [0,255] come back in [0,1].
 707      // Potentially lose a little bit of precision here, but will fix issues where
 708      // .5 gets interpreted as half of the total, instead of half of 1
 709      // If it was supposed to be 128, this was already taken care of by `inputToRgb`
 710      if (this._r < 1) { this._r = mathRound(this._r); }
 711      if (this._g < 1) { this._g = mathRound(this._g); }
 712      if (this._b < 1) { this._b = mathRound(this._b); }
 713  
 714      this._ok = rgb.ok;
 715      this._tc_id = tinyCounter++;
 716  }
 717  
 718  tinycolor.prototype = {
 719      isDark: function() {
 720          return this.getBrightness() < 128;
 721      },
 722      isLight: function() {
 723          return !this.isDark();
 724      },
 725      isValid: function() {
 726          return this._ok;
 727      },
 728      getOriginalInput: function() {
 729        return this._originalInput;
 730      },
 731      getFormat: function() {
 732          return this._format;
 733      },
 734      getAlpha: function() {
 735          return this._a;
 736      },
 737      getBrightness: function() {
 738          //http://www.w3.org/TR/AERT#color-contrast
 739          var rgb = this.toRgb();
 740          return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;
 741      },
 742      getLuminance: function() {
 743          //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
 744          var rgb = this.toRgb();
 745          var RsRGB, GsRGB, BsRGB, R, G, B;
 746          RsRGB = rgb.r/255;
 747          GsRGB = rgb.g/255;
 748          BsRGB = rgb.b/255;
 749  
 750          if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}
 751          if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}
 752          if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}
 753          return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);
 754      },
 755      setAlpha: function(value) {
 756          this._a = boundAlpha(value);
 757          this._roundA = mathRound(100*this._a) / 100;
 758          return this;
 759      },
 760      toHsv: function() {
 761          var hsv = rgbToHsv(this._r, this._g, this._b);
 762          return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };
 763      },
 764      toHsvString: function() {
 765          var hsv = rgbToHsv(this._r, this._g, this._b);
 766          var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);
 767          return (this._a == 1) ?
 768            "hsv("  + h + ", " + s + "%, " + v + "%)" :
 769            "hsva(" + h + ", " + s + "%, " + v + "%, "+ this._roundA + ")";
 770      },
 771      toHsl: function() {
 772          var hsl = rgbToHsl(this._r, this._g, this._b);
 773          return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };
 774      },
 775      toHslString: function() {
 776          var hsl = rgbToHsl(this._r, this._g, this._b);
 777          var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);
 778          return (this._a == 1) ?
 779            "hsl("  + h + ", " + s + "%, " + l + "%)" :
 780            "hsla(" + h + ", " + s + "%, " + l + "%, "+ this._roundA + ")";
 781      },
 782      toHex: function(allow3Char) {
 783          return rgbToHex(this._r, this._g, this._b, allow3Char);
 784      },
 785      toHexString: function(allow3Char) {
 786          return '#' + this.toHex(allow3Char);
 787      },
 788      toHex8: function(allow4Char) {
 789          return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);
 790      },
 791      toHex8String: function(allow4Char) {
 792          return '#' + this.toHex8(allow4Char);
 793      },
 794      toRgb: function() {
 795          return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };
 796      },
 797      toRgbString: function() {
 798          return (this._a == 1) ?
 799            "rgb("  + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" :
 800            "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")";
 801      },
 802      toPercentageRgb: function() {
 803          return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a };
 804      },
 805      toPercentageRgbString: function() {
 806          return (this._a == 1) ?
 807            "rgb("  + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" :
 808            "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")";
 809      },
 810      toName: function() {
 811          if (this._a === 0) {
 812              return "transparent";
 813          }
 814  
 815          if (this._a < 1) {
 816              return false;
 817          }
 818  
 819          return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;
 820      },
 821      toFilter: function(secondColor) {
 822          var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);
 823          var secondHex8String = hex8String;
 824          var gradientType = this._gradientType ? "GradientType = 1, " : "";
 825  
 826          if (secondColor) {
 827              var s = tinycolor(secondColor);
 828              secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);
 829          }
 830  
 831          return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")";
 832      },
 833      toString: function(format) {
 834          var formatSet = !!format;
 835          format = format || this._format;
 836  
 837          var formattedString = false;
 838          var hasAlpha = this._a < 1 && this._a >= 0;
 839          var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "hex4" || format === "hex8" || format === "name");
 840  
 841          if (needsAlphaFormat) {
 842              // Special case for "transparent", all other non-alpha formats
 843              // will return rgba when there is transparency.
 844              if (format === "name" && this._a === 0) {
 845                  return this.toName();
 846              }
 847              return this.toRgbString();
 848          }
 849          if (format === "rgb") {
 850              formattedString = this.toRgbString();
 851          }
 852          if (format === "prgb") {
 853              formattedString = this.toPercentageRgbString();
 854          }
 855          if (format === "hex" || format === "hex6") {
 856              formattedString = this.toHexString();
 857          }
 858          if (format === "hex3") {
 859              formattedString = this.toHexString(true);
 860          }
 861          if (format === "hex4") {
 862              formattedString = this.toHex8String(true);
 863          }
 864          if (format === "hex8") {
 865              formattedString = this.toHex8String();
 866          }
 867          if (format === "name") {
 868              formattedString = this.toName();
 869          }
 870          if (format === "hsl") {
 871              formattedString = this.toHslString();
 872          }
 873          if (format === "hsv") {
 874              formattedString = this.toHsvString();
 875          }
 876  
 877          return formattedString || this.toHexString();
 878      },
 879      clone: function() {
 880          return tinycolor(this.toString());
 881      },
 882  
 883      _applyModification: function(fn, args) {
 884          var color = fn.apply(null, [this].concat([].slice.call(args)));
 885          this._r = color._r;
 886          this._g = color._g;
 887          this._b = color._b;
 888          this.setAlpha(color._a);
 889          return this;
 890      },
 891      lighten: function() {
 892          return this._applyModification(lighten, arguments);
 893      },
 894      brighten: function() {
 895          return this._applyModification(brighten, arguments);
 896      },
 897      darken: function() {
 898          return this._applyModification(darken, arguments);
 899      },
 900      desaturate: function() {
 901          return this._applyModification(desaturate, arguments);
 902      },
 903      saturate: function() {
 904          return this._applyModification(saturate, arguments);
 905      },
 906      greyscale: function() {
 907          return this._applyModification(greyscale, arguments);
 908      },
 909      spin: function() {
 910          return this._applyModification(spin, arguments);
 911      },
 912  
 913      _applyCombination: function(fn, args) {
 914          return fn.apply(null, [this].concat([].slice.call(args)));
 915      },
 916      analogous: function() {
 917          return this._applyCombination(analogous, arguments);
 918      },
 919      complement: function() {
 920          return this._applyCombination(complement, arguments);
 921      },
 922      monochromatic: function() {
 923          return this._applyCombination(monochromatic, arguments);
 924      },
 925      splitcomplement: function() {
 926          return this._applyCombination(splitcomplement, arguments);
 927      },
 928      triad: function() {
 929          return this._applyCombination(triad, arguments);
 930      },
 931      tetrad: function() {
 932          return this._applyCombination(tetrad, arguments);
 933      }
 934  };
 935  
 936  // If input is an object, force 1 into "1.0" to handle ratios properly
 937  // String input requires "1.0" as input, so 1 will be treated as 1
 938  tinycolor.fromRatio = function(color, opts) {
 939      if (typeof color == "object") {
 940          var newColor = {};
 941          for (var i in color) {
 942              if (color.hasOwnProperty(i)) {
 943                  if (i === "a") {
 944                      newColor[i] = color[i];
 945                  }
 946                  else {
 947                      newColor[i] = convertToPercentage(color[i]);
 948                  }
 949              }
 950          }
 951          color = newColor;
 952      }
 953  
 954      return tinycolor(color, opts);
 955  };
 956  
 957  // Given a string or object, convert that input to RGB
 958  // Possible string inputs:
 959  //
 960  //     "red"
 961  //     "#f00" or "f00"
 962  //     "#ff0000" or "ff0000"
 963  //     "#ff000000" or "ff000000"
 964  //     "rgb 255 0 0" or "rgb (255, 0, 0)"
 965  //     "rgb 1.0 0 0" or "rgb (1, 0, 0)"
 966  //     "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1"
 967  //     "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1"
 968  //     "hsl(0, 100%, 50%)" or "hsl 0 100% 50%"
 969  //     "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1"
 970  //     "hsv(0, 100%, 100%)" or "hsv 0 100% 100%"
 971  //
 972  function inputToRGB(color) {
 973  
 974      var rgb = { r: 0, g: 0, b: 0 };
 975      var a = 1;
 976      var s = null;
 977      var v = null;
 978      var l = null;
 979      var ok = false;
 980      var format = false;
 981  
 982      if (typeof color == "string") {
 983          color = stringInputToObject(color);
 984      }
 985  
 986      if (typeof color == "object") {
 987          if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {
 988              rgb = rgbToRgb(color.r, color.g, color.b);
 989              ok = true;
 990              format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb";
 991          }
 992          else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {
 993              s = convertToPercentage(color.s);
 994              v = convertToPercentage(color.v);
 995              rgb = hsvToRgb(color.h, s, v);
 996              ok = true;
 997              format = "hsv";
 998          }
 999          else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {
1000              s = convertToPercentage(color.s);
1001              l = convertToPercentage(color.l);
1002              rgb = hslToRgb(color.h, s, l);
1003              ok = true;
1004              format = "hsl";
1005          }
1006  
1007          if (color.hasOwnProperty("a")) {
1008              a = color.a;
1009          }
1010      }
1011  
1012      a = boundAlpha(a);
1013  
1014      return {
1015          ok: ok,
1016          format: color.format || format,
1017          r: mathMin(255, mathMax(rgb.r, 0)),
1018          g: mathMin(255, mathMax(rgb.g, 0)),
1019          b: mathMin(255, mathMax(rgb.b, 0)),
1020          a: a
1021      };
1022  }
1023  
1024  
1025  // Conversion Functions
1026  // --------------------
1027  
1028  // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:
1029  // <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>
1030  
1031  // `rgbToRgb`
1032  // Handle bounds / percentage checking to conform to CSS color spec
1033  // <http://www.w3.org/TR/css3-color/>
1034  // *Assumes:* r, g, b in [0, 255] or [0, 1]
1035  // *Returns:* { r, g, b } in [0, 255]
1036  function rgbToRgb(r, g, b){
1037      return {
1038          r: bound01(r, 255) * 255,
1039          g: bound01(g, 255) * 255,
1040          b: bound01(b, 255) * 255
1041      };
1042  }
1043  
1044  // `rgbToHsl`
1045  // Converts an RGB color value to HSL.
1046  // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]
1047  // *Returns:* { h, s, l } in [0,1]
1048  function rgbToHsl(r, g, b) {
1049  
1050      r = bound01(r, 255);
1051      g = bound01(g, 255);
1052      b = bound01(b, 255);
1053  
1054      var max = mathMax(r, g, b), min = mathMin(r, g, b);
1055      var h, s, l = (max + min) / 2;
1056  
1057      if(max == min) {
1058          h = s = 0; // achromatic
1059      }
1060      else {
1061          var d = max - min;
1062          s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
1063          switch(max) {
1064              case r: h = (g - b) / d + (g < b ? 6 : 0); break;
1065              case g: h = (b - r) / d + 2; break;
1066              case b: h = (r - g) / d + 4; break;
1067          }
1068  
1069          h /= 6;
1070      }
1071  
1072      return { h: h, s: s, l: l };
1073  }
1074  
1075  // `hslToRgb`
1076  // Converts an HSL color value to RGB.
1077  // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]
1078  // *Returns:* { r, g, b } in the set [0, 255]
1079  function hslToRgb(h, s, l) {
1080      var r, g, b;
1081  
1082      h = bound01(h, 360);
1083      s = bound01(s, 100);
1084      l = bound01(l, 100);
1085  
1086      function hue2rgb(p, q, t) {
1087          if(t < 0) t += 1;
1088          if(t > 1) t -= 1;
1089          if(t < 1/6) return p + (q - p) * 6 * t;
1090          if(t < 1/2) return q;
1091          if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
1092          return p;
1093      }
1094  
1095      if(s === 0) {
1096          r = g = b = l; // achromatic
1097      }
1098      else {
1099          var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
1100          var p = 2 * l - q;
1101          r = hue2rgb(p, q, h + 1/3);
1102          g = hue2rgb(p, q, h);
1103          b = hue2rgb(p, q, h - 1/3);
1104      }
1105  
1106      return { r: r * 255, g: g * 255, b: b * 255 };
1107  }
1108  
1109  // `rgbToHsv`
1110  // Converts an RGB color value to HSV
1111  // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]
1112  // *Returns:* { h, s, v } in [0,1]
1113  function rgbToHsv(r, g, b) {
1114  
1115      r = bound01(r, 255);
1116      g = bound01(g, 255);
1117      b = bound01(b, 255);
1118  
1119      var max = mathMax(r, g, b), min = mathMin(r, g, b);
1120      var h, s, v = max;
1121  
1122      var d = max - min;
1123      s = max === 0 ? 0 : d / max;
1124  
1125      if(max == min) {
1126          h = 0; // achromatic
1127      }
1128      else {
1129          switch(max) {
1130              case r: h = (g - b) / d + (g < b ? 6 : 0); break;
1131              case g: h = (b - r) / d + 2; break;
1132              case b: h = (r - g) / d + 4; break;
1133          }
1134          h /= 6;
1135      }
1136      return { h: h, s: s, v: v };
1137  }
1138  
1139  // `hsvToRgb`
1140  // Converts an HSV color value to RGB.
1141  // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]
1142  // *Returns:* { r, g, b } in the set [0, 255]
1143   function hsvToRgb(h, s, v) {
1144  
1145      h = bound01(h, 360) * 6;
1146      s = bound01(s, 100);
1147      v = bound01(v, 100);
1148  
1149      var i = Math.floor(h),
1150          f = h - i,
1151          p = v * (1 - s),
1152          q = v * (1 - f * s),
1153          t = v * (1 - (1 - f) * s),
1154          mod = i % 6,
1155          r = [v, q, p, p, t, v][mod],
1156          g = [t, v, v, q, p, p][mod],
1157          b = [p, p, t, v, v, q][mod];
1158  
1159      return { r: r * 255, g: g * 255, b: b * 255 };
1160  }
1161  
1162  // `rgbToHex`
1163  // Converts an RGB color to hex
1164  // Assumes r, g, and b are contained in the set [0, 255]
1165  // Returns a 3 or 6 character hex
1166  function rgbToHex(r, g, b, allow3Char) {
1167  
1168      var hex = [
1169          pad2(mathRound(r).toString(16)),
1170          pad2(mathRound(g).toString(16)),
1171          pad2(mathRound(b).toString(16))
1172      ];
1173  
1174      // Return a 3 character hex if possible
1175      if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {
1176          return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);
1177      }
1178  
1179      return hex.join("");
1180  }
1181  
1182  // `rgbaToHex`
1183  // Converts an RGBA color plus alpha transparency to hex
1184  // Assumes r, g, b are contained in the set [0, 255] and
1185  // a in [0, 1]. Returns a 4 or 8 character rgba hex
1186  function rgbaToHex(r, g, b, a, allow4Char) {
1187  
1188      var hex = [
1189          pad2(mathRound(r).toString(16)),
1190          pad2(mathRound(g).toString(16)),
1191          pad2(mathRound(b).toString(16)),
1192          pad2(convertDecimalToHex(a))
1193      ];
1194  
1195      // Return a 4 character hex if possible
1196      if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {
1197          return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);
1198      }
1199  
1200      return hex.join("");
1201  }
1202  
1203  // `rgbaToArgbHex`
1204  // Converts an RGBA color to an ARGB Hex8 string
1205  // Rarely used, but required for "toFilter()"
1206  function rgbaToArgbHex(r, g, b, a) {
1207  
1208      var hex = [
1209          pad2(convertDecimalToHex(a)),
1210          pad2(mathRound(r).toString(16)),
1211          pad2(mathRound(g).toString(16)),
1212          pad2(mathRound(b).toString(16))
1213      ];
1214  
1215      return hex.join("");
1216  }
1217  
1218  // `equals`
1219  // Can be called with any tinycolor input
1220  tinycolor.equals = function (color1, color2) {
1221      if (!color1 || !color2) { return false; }
1222      return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();
1223  };
1224  
1225  tinycolor.random = function() {
1226      return tinycolor.fromRatio({
1227          r: mathRandom(),
1228          g: mathRandom(),
1229          b: mathRandom()
1230      });
1231  };
1232  
1233  
1234  // Modification Functions
1235  // ----------------------
1236  // Thanks to less.js for some of the basics here
1237  // <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>
1238  
1239  function desaturate(color, amount) {
1240      amount = (amount === 0) ? 0 : (amount || 10);
1241      var hsl = tinycolor(color).toHsl();
1242      hsl.s -= amount / 100;
1243      hsl.s = clamp01(hsl.s);
1244      return tinycolor(hsl);
1245  }
1246  
1247  function saturate(color, amount) {
1248      amount = (amount === 0) ? 0 : (amount || 10);
1249      var hsl = tinycolor(color).toHsl();
1250      hsl.s += amount / 100;
1251      hsl.s = clamp01(hsl.s);
1252      return tinycolor(hsl);
1253  }
1254  
1255  function greyscale(color) {
1256      return tinycolor(color).desaturate(100);
1257  }
1258  
1259  function lighten (color, amount) {
1260      amount = (amount === 0) ? 0 : (amount || 10);
1261      var hsl = tinycolor(color).toHsl();
1262      hsl.l += amount / 100;
1263      hsl.l = clamp01(hsl.l);
1264      return tinycolor(hsl);
1265  }
1266  
1267  function brighten(color, amount) {
1268      amount = (amount === 0) ? 0 : (amount || 10);
1269      var rgb = tinycolor(color).toRgb();
1270      rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));
1271      rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));
1272      rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));
1273      return tinycolor(rgb);
1274  }
1275  
1276  function darken (color, amount) {
1277      amount = (amount === 0) ? 0 : (amount || 10);
1278      var hsl = tinycolor(color).toHsl();
1279      hsl.l -= amount / 100;
1280      hsl.l = clamp01(hsl.l);
1281      return tinycolor(hsl);
1282  }
1283  
1284  // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.
1285  // Values outside of this range will be wrapped into this range.
1286  function spin(color, amount) {
1287      var hsl = tinycolor(color).toHsl();
1288      var hue = (hsl.h + amount) % 360;
1289      hsl.h = hue < 0 ? 360 + hue : hue;
1290      return tinycolor(hsl);
1291  }
1292  
1293  // Combination Functions
1294  // ---------------------
1295  // Thanks to jQuery xColor for some of the ideas behind these
1296  // <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>
1297  
1298  function complement(color) {
1299      var hsl = tinycolor(color).toHsl();
1300      hsl.h = (hsl.h + 180) % 360;
1301      return tinycolor(hsl);
1302  }
1303  
1304  function triad(color) {
1305      var hsl = tinycolor(color).toHsl();
1306      var h = hsl.h;
1307      return [
1308          tinycolor(color),
1309          tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),
1310          tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })
1311      ];
1312  }
1313  
1314  function tetrad(color) {
1315      var hsl = tinycolor(color).toHsl();
1316      var h = hsl.h;
1317      return [
1318          tinycolor(color),
1319          tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),
1320          tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),
1321          tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })
1322      ];
1323  }
1324  
1325  function splitcomplement(color) {
1326      var hsl = tinycolor(color).toHsl();
1327      var h = hsl.h;
1328      return [
1329          tinycolor(color),
1330          tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),
1331          tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})
1332      ];
1333  }
1334  
1335  function analogous(color, results, slices) {
1336      results = results || 6;
1337      slices = slices || 30;
1338  
1339      var hsl = tinycolor(color).toHsl();
1340      var part = 360 / slices;
1341      var ret = [tinycolor(color)];
1342  
1343      for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {
1344          hsl.h = (hsl.h + part) % 360;
1345          ret.push(tinycolor(hsl));
1346      }
1347      return ret;
1348  }
1349  
1350  function monochromatic(color, results) {
1351      results = results || 6;
1352      var hsv = tinycolor(color).toHsv();
1353      var h = hsv.h, s = hsv.s, v = hsv.v;
1354      var ret = [];
1355      var modification = 1 / results;
1356  
1357      while (results--) {
1358          ret.push(tinycolor({ h: h, s: s, v: v}));
1359          v = (v + modification) % 1;
1360      }
1361  
1362      return ret;
1363  }
1364  
1365  // Utility Functions
1366  // ---------------------
1367  
1368  tinycolor.mix = function(color1, color2, amount) {
1369      amount = (amount === 0) ? 0 : (amount || 50);
1370  
1371      var rgb1 = tinycolor(color1).toRgb();
1372      var rgb2 = tinycolor(color2).toRgb();
1373  
1374      var p = amount / 100;
1375  
1376      var rgba = {
1377          r: ((rgb2.r - rgb1.r) * p) + rgb1.r,
1378          g: ((rgb2.g - rgb1.g) * p) + rgb1.g,
1379          b: ((rgb2.b - rgb1.b) * p) + rgb1.b,
1380          a: ((rgb2.a - rgb1.a) * p) + rgb1.a
1381      };
1382  
1383      return tinycolor(rgba);
1384  };
1385  
1386  
1387  // Readability Functions
1388  // ---------------------
1389  // <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)
1390  
1391  // `contrast`
1392  // Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)
1393  tinycolor.readability = function(color1, color2) {
1394      var c1 = tinycolor(color1);
1395      var c2 = tinycolor(color2);
1396      return (Math.max(c1.getLuminance(),c2.getLuminance())+0.05) / (Math.min(c1.getLuminance(),c2.getLuminance())+0.05);
1397  };
1398  
1399  // `isReadable`
1400  // Ensure that foreground and background color combinations meet WCAG2 guidelines.
1401  // The third argument is an optional Object.
1402  //      the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';
1403  //      the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.
1404  // If the entire object is absent, isReadable defaults to {level:"AA",size:"small"}.
1405  
1406  // *Example*
1407  //    tinycolor.isReadable("#000", "#111") => false
1408  //    tinycolor.isReadable("#000", "#111",{level:"AA",size:"large"}) => false
1409  tinycolor.isReadable = function(color1, color2, wcag2) {
1410      var readability = tinycolor.readability(color1, color2);
1411      var wcag2Parms, out;
1412  
1413      out = false;
1414  
1415      wcag2Parms = validateWCAG2Parms(wcag2);
1416      switch (wcag2Parms.level + wcag2Parms.size) {
1417          case "AAsmall":
1418          case "AAAlarge":
1419              out = readability >= 4.5;
1420              break;
1421          case "AAlarge":
1422              out = readability >= 3;
1423              break;
1424          case "AAAsmall":
1425              out = readability >= 7;
1426              break;
1427      }
1428      return out;
1429  
1430  };
1431  
1432  // `mostReadable`
1433  // Given a base color and a list of possible foreground or background
1434  // colors for that base, returns the most readable color.
1435  // Optionally returns Black or White if the most readable color is unreadable.
1436  // *Example*
1437  //    tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:false}).toHexString(); // "#112255"
1438  //    tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:true}).toHexString();  // "#ffffff"
1439  //    tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"large"}).toHexString(); // "#faf3f3"
1440  //    tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"small"}).toHexString(); // "#ffffff"
1441  tinycolor.mostReadable = function(baseColor, colorList, args) {
1442      var bestColor = null;
1443      var bestScore = 0;
1444      var readability;
1445      var includeFallbackColors, level, size ;
1446      args = args || {};
1447      includeFallbackColors = args.includeFallbackColors ;
1448      level = args.level;
1449      size = args.size;
1450  
1451      for (var i= 0; i < colorList.length ; i++) {
1452          readability = tinycolor.readability(baseColor, colorList[i]);
1453          if (readability > bestScore) {
1454              bestScore = readability;
1455              bestColor = tinycolor(colorList[i]);
1456          }
1457      }
1458  
1459      if (tinycolor.isReadable(baseColor, bestColor, {"level":level,"size":size}) || !includeFallbackColors) {
1460          return bestColor;
1461      }
1462      else {
1463          args.includeFallbackColors=false;
1464          return tinycolor.mostReadable(baseColor,["#fff", "#000"],args);
1465      }
1466  };
1467  
1468  
1469  // Big List of Colors
1470  // ------------------
1471  // <http://www.w3.org/TR/css3-color/#svg-color>
1472  var names = tinycolor.names = {
1473      aliceblue: "f0f8ff",
1474      antiquewhite: "faebd7",
1475      aqua: "0ff",
1476      aquamarine: "7fffd4",
1477      azure: "f0ffff",
1478      beige: "f5f5dc",
1479      bisque: "ffe4c4",
1480      black: "000",
1481      blanchedalmond: "ffebcd",
1482      blue: "00f",
1483      blueviolet: "8a2be2",
1484      brown: "a52a2a",
1485      burlywood: "deb887",
1486      burntsienna: "ea7e5d",
1487      cadetblue: "5f9ea0",
1488      chartreuse: "7fff00",
1489      chocolate: "d2691e",
1490      coral: "ff7f50",
1491      cornflowerblue: "6495ed",
1492      cornsilk: "fff8dc",
1493      crimson: "dc143c",
1494      cyan: "0ff",
1495      darkblue: "00008b",
1496      darkcyan: "008b8b",
1497      darkgoldenrod: "b8860b",
1498      darkgray: "a9a9a9",
1499      darkgreen: "006400",
1500      darkgrey: "a9a9a9",
1501      darkkhaki: "bdb76b",
1502      darkmagenta: "8b008b",
1503      darkolivegreen: "556b2f",
1504      darkorange: "ff8c00",
1505      darkorchid: "9932cc",
1506      darkred: "8b0000",
1507      darksalmon: "e9967a",
1508      darkseagreen: "8fbc8f",
1509      darkslateblue: "483d8b",
1510      darkslategray: "2f4f4f",
1511      darkslategrey: "2f4f4f",
1512      darkturquoise: "00ced1",
1513      darkviolet: "9400d3",
1514      deeppink: "ff1493",
1515      deepskyblue: "00bfff",
1516      dimgray: "696969",
1517      dimgrey: "696969",
1518      dodgerblue: "1e90ff",
1519      firebrick: "b22222",
1520      floralwhite: "fffaf0",
1521      forestgreen: "228b22",
1522      fuchsia: "f0f",
1523      gainsboro: "dcdcdc",
1524      ghostwhite: "f8f8ff",
1525      gold: "ffd700",
1526      goldenrod: "daa520",
1527      gray: "808080",
1528      green: "008000",
1529      greenyellow: "adff2f",
1530      grey: "808080",
1531      honeydew: "f0fff0",
1532      hotpink: "ff69b4",
1533      indianred: "cd5c5c",
1534      indigo: "4b0082",
1535      ivory: "fffff0",
1536      khaki: "f0e68c",
1537      lavender: "e6e6fa",
1538      lavenderblush: "fff0f5",
1539      lawngreen: "7cfc00",
1540      lemonchiffon: "fffacd",
1541      lightblue: "add8e6",
1542      lightcoral: "f08080",
1543      lightcyan: "e0ffff",
1544      lightgoldenrodyellow: "fafad2",
1545      lightgray: "d3d3d3",
1546      lightgreen: "90ee90",
1547      lightgrey: "d3d3d3",
1548      lightpink: "ffb6c1",
1549      lightsalmon: "ffa07a",
1550      lightseagreen: "20b2aa",
1551      lightskyblue: "87cefa",
1552      lightslategray: "789",
1553      lightslategrey: "789",
1554      lightsteelblue: "b0c4de",
1555      lightyellow: "ffffe0",
1556      lime: "0f0",
1557      limegreen: "32cd32",
1558      linen: "faf0e6",
1559      magenta: "f0f",
1560      maroon: "800000",
1561      mediumaquamarine: "66cdaa",
1562      mediumblue: "0000cd",
1563      mediumorchid: "ba55d3",
1564      mediumpurple: "9370db",
1565      mediumseagreen: "3cb371",
1566      mediumslateblue: "7b68ee",
1567      mediumspringgreen: "00fa9a",
1568      mediumturquoise: "48d1cc",
1569      mediumvioletred: "c71585",
1570      midnightblue: "191970",
1571      mintcream: "f5fffa",
1572      mistyrose: "ffe4e1",
1573      moccasin: "ffe4b5",
1574      navajowhite: "ffdead",
1575      navy: "000080",
1576      oldlace: "fdf5e6",
1577      olive: "808000",
1578      olivedrab: "6b8e23",
1579      orange: "ffa500",
1580      orangered: "ff4500",
1581      orchid: "da70d6",
1582      palegoldenrod: "eee8aa",
1583      palegreen: "98fb98",
1584      paleturquoise: "afeeee",
1585      palevioletred: "db7093",
1586      papayawhip: "ffefd5",
1587      peachpuff: "ffdab9",
1588      peru: "cd853f",
1589      pink: "ffc0cb",
1590      plum: "dda0dd",
1591      powderblue: "b0e0e6",
1592      purple: "800080",
1593      rebeccapurple: "663399",
1594      red: "f00",
1595      rosybrown: "bc8f8f",
1596      royalblue: "4169e1",
1597      saddlebrown: "8b4513",
1598      salmon: "fa8072",
1599      sandybrown: "f4a460",
1600      seagreen: "2e8b57",
1601      seashell: "fff5ee",
1602      sienna: "a0522d",
1603      silver: "c0c0c0",
1604      skyblue: "87ceeb",
1605      slateblue: "6a5acd",
1606      slategray: "708090",
1607      slategrey: "708090",
1608      snow: "fffafa",
1609      springgreen: "00ff7f",
1610      steelblue: "4682b4",
1611      tan: "d2b48c",
1612      teal: "008080",
1613      thistle: "d8bfd8",
1614      tomato: "ff6347",
1615      turquoise: "40e0d0",
1616      violet: "ee82ee",
1617      wheat: "f5deb3",
1618      white: "fff",
1619      whitesmoke: "f5f5f5",
1620      yellow: "ff0",
1621      yellowgreen: "9acd32"
1622  };
1623  
1624  // Make it easy to access colors via `hexNames[hex]`
1625  var hexNames = tinycolor.hexNames = flip(names);
1626  
1627  
1628  // Utilities
1629  // ---------
1630  
1631  // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`
1632  function flip(o) {
1633      var flipped = { };
1634      for (var i in o) {
1635          if (o.hasOwnProperty(i)) {
1636              flipped[o[i]] = i;
1637          }
1638      }
1639      return flipped;
1640  }
1641  
1642  // Return a valid alpha value [0,1] with all invalid values being set to 1
1643  function boundAlpha(a) {
1644      a = parseFloat(a);
1645  
1646      if (isNaN(a) || a < 0 || a > 1) {
1647          a = 1;
1648      }
1649  
1650      return a;
1651  }
1652  
1653  // Take input from [0, n] and return it as [0, 1]
1654  function bound01(n, max) {
1655      if (isOnePointZero(n)) { n = "100%"; }
1656  
1657      var processPercent = isPercentage(n);
1658      n = mathMin(max, mathMax(0, parseFloat(n)));
1659  
1660      // Automatically convert percentage into number
1661      if (processPercent) {
1662          n = parseInt(n * max, 10) / 100;
1663      }
1664  
1665      // Handle floating point rounding errors
1666      if ((Math.abs(n - max) < 0.000001)) {
1667          return 1;
1668      }
1669  
1670      // Convert into [0, 1] range if it isn't already
1671      return (n % max) / parseFloat(max);
1672  }
1673  
1674  // Force a number between 0 and 1
1675  function clamp01(val) {
1676      return mathMin(1, mathMax(0, val));
1677  }
1678  
1679  // Parse a base-16 hex value into a base-10 integer
1680  function parseIntFromHex(val) {
1681      return parseInt(val, 16);
1682  }
1683  
1684  // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1
1685  // <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>
1686  function isOnePointZero(n) {
1687      return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1;
1688  }
1689  
1690  // Check to see if string passed in is a percentage
1691  function isPercentage(n) {
1692      return typeof n === "string" && n.indexOf('%') != -1;
1693  }
1694  
1695  // Force a hex value to have 2 characters
1696  function pad2(c) {
1697      return c.length == 1 ? '0' + c : '' + c;
1698  }
1699  
1700  // Replace a decimal with it's percentage value
1701  function convertToPercentage(n) {
1702      if (n <= 1) {
1703          n = (n * 100) + "%";
1704      }
1705  
1706      return n;
1707  }
1708  
1709  // Converts a decimal to a hex value
1710  function convertDecimalToHex(d) {
1711      return Math.round(parseFloat(d) * 255).toString(16);
1712  }
1713  // Converts a hex value to a decimal
1714  function convertHexToDecimal(h) {
1715      return (parseIntFromHex(h) / 255);
1716  }
1717  
1718  var matchers = (function() {
1719  
1720      // <http://www.w3.org/TR/css3-values/#integers>
1721      var CSS_INTEGER = "[-\\+]?\\d+%?";
1722  
1723      // <http://www.w3.org/TR/css3-values/#number-value>
1724      var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?";
1725  
1726      // Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.
1727      var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")";
1728  
1729      // Actual matching.
1730      // Parentheses and commas are optional, but not required.
1731      // Whitespace can take the place of commas or opening paren
1732      var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
1733      var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
1734  
1735      return {
1736          CSS_UNIT: new RegExp(CSS_UNIT),
1737          rgb: new RegExp("rgb" + PERMISSIVE_MATCH3),
1738          rgba: new RegExp("rgba" + PERMISSIVE_MATCH4),
1739          hsl: new RegExp("hsl" + PERMISSIVE_MATCH3),
1740          hsla: new RegExp("hsla" + PERMISSIVE_MATCH4),
1741          hsv: new RegExp("hsv" + PERMISSIVE_MATCH3),
1742          hsva: new RegExp("hsva" + PERMISSIVE_MATCH4),
1743          hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
1744          hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
1745          hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
1746          hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
1747      };
1748  })();
1749  
1750  // `isValidCSSUnit`
1751  // Take in a single string / number and check to see if it looks like a CSS unit
1752  // (see `matchers` above for definition).
1753  function isValidCSSUnit(color) {
1754      return !!matchers.CSS_UNIT.exec(color);
1755  }
1756  
1757  // `stringInputToObject`
1758  // Permissive string parsing.  Take in a number of formats, and output an object
1759  // based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`
1760  function stringInputToObject(color) {
1761  
1762      color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();
1763      var named = false;
1764      if (names[color]) {
1765          color = names[color];
1766          named = true;
1767      }
1768      else if (color == 'transparent') {
1769          return { r: 0, g: 0, b: 0, a: 0, format: "name" };
1770      }
1771  
1772      // Try to match string input using regular expressions.
1773      // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]
1774      // Just return an object and let the conversion functions handle that.
1775      // This way the result will be the same whether the tinycolor is initialized with string or object.
1776      var match;
1777      if ((match = matchers.rgb.exec(color))) {
1778          return { r: match[1], g: match[2], b: match[3] };
1779      }
1780      if ((match = matchers.rgba.exec(color))) {
1781          return { r: match[1], g: match[2], b: match[3], a: match[4] };
1782      }
1783      if ((match = matchers.hsl.exec(color))) {
1784          return { h: match[1], s: match[2], l: match[3] };
1785      }
1786      if ((match = matchers.hsla.exec(color))) {
1787          return { h: match[1], s: match[2], l: match[3], a: match[4] };
1788      }
1789      if ((match = matchers.hsv.exec(color))) {
1790          return { h: match[1], s: match[2], v: match[3] };
1791      }
1792      if ((match = matchers.hsva.exec(color))) {
1793          return { h: match[1], s: match[2], v: match[3], a: match[4] };
1794      }
1795      if ((match = matchers.hex8.exec(color))) {
1796          return {
1797              r: parseIntFromHex(match[1]),
1798              g: parseIntFromHex(match[2]),
1799              b: parseIntFromHex(match[3]),
1800              a: convertHexToDecimal(match[4]),
1801              format: named ? "name" : "hex8"
1802          };
1803      }
1804      if ((match = matchers.hex6.exec(color))) {
1805          return {
1806              r: parseIntFromHex(match[1]),
1807              g: parseIntFromHex(match[2]),
1808              b: parseIntFromHex(match[3]),
1809              format: named ? "name" : "hex"
1810          };
1811      }
1812      if ((match = matchers.hex4.exec(color))) {
1813          return {
1814              r: parseIntFromHex(match[1] + '' + match[1]),
1815              g: parseIntFromHex(match[2] + '' + match[2]),
1816              b: parseIntFromHex(match[3] + '' + match[3]),
1817              a: convertHexToDecimal(match[4] + '' + match[4]),
1818              format: named ? "name" : "hex8"
1819          };
1820      }
1821      if ((match = matchers.hex3.exec(color))) {
1822          return {
1823              r: parseIntFromHex(match[1] + '' + match[1]),
1824              g: parseIntFromHex(match[2] + '' + match[2]),
1825              b: parseIntFromHex(match[3] + '' + match[3]),
1826              format: named ? "name" : "hex"
1827          };
1828      }
1829  
1830      return false;
1831  }
1832  
1833  function validateWCAG2Parms(parms) {
1834      // return valid WCAG2 parms for isReadable.
1835      // If input parms are invalid, return {"level":"AA", "size":"small"}
1836      var level, size;
1837      parms = parms || {"level":"AA", "size":"small"};
1838      level = (parms.level || "AA").toUpperCase();
1839      size = (parms.size || "small").toLowerCase();
1840      if (level !== "AA" && level !== "AAA") {
1841          level = "AA";
1842      }
1843      if (size !== "small" && size !== "large") {
1844          size = "small";
1845      }
1846      return {"level":level, "size":size};
1847  }
1848  
1849  // Node: Export function
1850  if ( true && module.exports) {
1851      module.exports = tinycolor;
1852  }
1853  // AMD/requirejs: Define the module
1854  else if (true) {
1855      !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {return tinycolor;}).call(exports, __webpack_require__, exports, module),
1856                  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
1857  }
1858  // Browser: Expose to window
1859  else {}
1860  
1861  })(Math);
1862  
1863  
1864  /***/ }),
1865  /* 46 */
1866  /***/ (function(module, exports, __webpack_require__) {
1867  
1868  "use strict";
1869  
1870  
1871  var defineProperties = __webpack_require__(63);
1872  
1873  var implementation = __webpack_require__(157);
1874  var getPolyfill = __webpack_require__(158);
1875  var shim = __webpack_require__(280);
1876  
1877  var polyfill = getPolyfill();
1878  
1879  defineProperties(polyfill, {
1880      getPolyfill: getPolyfill,
1881      implementation: implementation,
1882      shim: shim
1883  });
1884  
1885  module.exports = polyfill;
1886  
1887  
1888  /***/ }),
1889  /* 47 */
1890  /***/ (function(module, exports, __webpack_require__) {
1891  
1892  "use strict";
1893  
1894  
1895  Object.defineProperty(exports, "__esModule", {
1896    value: true
1897  });
1898  var calendarLabel = 'Calendar';
1899  var closeDatePicker = 'Close';
1900  var focusStartDate = 'Interact with the calendar and add the check-in date for your trip.';
1901  var clearDate = 'Clear Date';
1902  var clearDates = 'Clear Dates';
1903  var jumpToPrevMonth = 'Move backward to switch to the previous month.';
1904  var jumpToNextMonth = 'Move forward to switch to the next month.';
1905  var keyboardShortcuts = 'Keyboard Shortcuts';
1906  var showKeyboardShortcutsPanel = 'Open the keyboard shortcuts panel.';
1907  var hideKeyboardShortcutsPanel = 'Close the shortcuts panel.';
1908  var openThisPanel = 'Open this panel.';
1909  var enterKey = 'Enter key';
1910  var leftArrowRightArrow = 'Right and left arrow keys';
1911  var upArrowDownArrow = 'up and down arrow keys';
1912  var pageUpPageDown = 'page up and page down keys';
1913  var homeEnd = 'Home and end keys';
1914  var escape = 'Escape key';
1915  var questionMark = 'Question mark';
1916  var selectFocusedDate = 'Select the date in focus.';
1917  var moveFocusByOneDay = 'Move backward (left) and forward (right) by one day.';
1918  var moveFocusByOneWeek = 'Move backward (up) and forward (down) by one week.';
1919  var moveFocusByOneMonth = 'Switch months.';
1920  var moveFocustoStartAndEndOfWeek = 'Go to the first or last day of a week.';
1921  var returnFocusToInput = 'Return to the date input field.';
1922  var keyboardNavigationInstructions = 'Press the down arrow key to interact with the calendar and\n  select a date. Press the question mark key to get the keyboard shortcuts for changing dates.';
1923  
1924  var chooseAvailableStartDate = function chooseAvailableStartDate(_ref) {
1925    var date = _ref.date;
1926    return 'Choose ' + String(date) + ' as your check-in date. It\u2019s available.';
1927  };
1928  var chooseAvailableEndDate = function chooseAvailableEndDate(_ref2) {
1929    var date = _ref2.date;
1930    return 'Choose ' + String(date) + ' as your check-out date. It\u2019s available.';
1931  };
1932  var chooseAvailableDate = function chooseAvailableDate(_ref3) {
1933    var date = _ref3.date;
1934    return date;
1935  };
1936  var dateIsUnavailable = function dateIsUnavailable(_ref4) {
1937    var date = _ref4.date;
1938    return 'Not available. ' + String(date);
1939  };
1940  var dateIsSelected = function dateIsSelected(_ref5) {
1941    var date = _ref5.date;
1942    return 'Selected. ' + String(date);
1943  };
1944  
1945  exports['default'] = {
1946    calendarLabel: calendarLabel,
1947    closeDatePicker: closeDatePicker,
1948    focusStartDate: focusStartDate,
1949    clearDate: clearDate,
1950    clearDates: clearDates,
1951    jumpToPrevMonth: jumpToPrevMonth,
1952    jumpToNextMonth: jumpToNextMonth,
1953    keyboardShortcuts: keyboardShortcuts,
1954    showKeyboardShortcutsPanel: showKeyboardShortcutsPanel,
1955    hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,
1956    openThisPanel: openThisPanel,
1957    enterKey: enterKey,
1958    leftArrowRightArrow: leftArrowRightArrow,
1959    upArrowDownArrow: upArrowDownArrow,
1960    pageUpPageDown: pageUpPageDown,
1961    homeEnd: homeEnd,
1962    escape: escape,
1963    questionMark: questionMark,
1964    selectFocusedDate: selectFocusedDate,
1965    moveFocusByOneDay: moveFocusByOneDay,
1966    moveFocusByOneWeek: moveFocusByOneWeek,
1967    moveFocusByOneMonth: moveFocusByOneMonth,
1968    moveFocustoStartAndEndOfWeek: moveFocustoStartAndEndOfWeek,
1969    returnFocusToInput: returnFocusToInput,
1970    keyboardNavigationInstructions: keyboardNavigationInstructions,
1971  
1972    chooseAvailableStartDate: chooseAvailableStartDate,
1973    chooseAvailableEndDate: chooseAvailableEndDate,
1974    dateIsUnavailable: dateIsUnavailable,
1975    dateIsSelected: dateIsSelected
1976  };
1977  var DateRangePickerPhrases = exports.DateRangePickerPhrases = {
1978    calendarLabel: calendarLabel,
1979    closeDatePicker: closeDatePicker,
1980    clearDates: clearDates,
1981    focusStartDate: focusStartDate,
1982    jumpToPrevMonth: jumpToPrevMonth,
1983    jumpToNextMonth: jumpToNextMonth,
1984    keyboardShortcuts: keyboardShortcuts,
1985    showKeyboardShortcutsPanel: showKeyboardShortcutsPanel,
1986    hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,
1987    openThisPanel: openThisPanel,
1988    enterKey: enterKey,
1989    leftArrowRightArrow: leftArrowRightArrow,
1990    upArrowDownArrow: upArrowDownArrow,
1991    pageUpPageDown: pageUpPageDown,
1992    homeEnd: homeEnd,
1993    escape: escape,
1994    questionMark: questionMark,
1995    selectFocusedDate: selectFocusedDate,
1996    moveFocusByOneDay: moveFocusByOneDay,
1997    moveFocusByOneWeek: moveFocusByOneWeek,
1998    moveFocusByOneMonth: moveFocusByOneMonth,
1999    moveFocustoStartAndEndOfWeek: moveFocustoStartAndEndOfWeek,
2000    returnFocusToInput: returnFocusToInput,
2001    keyboardNavigationInstructions: keyboardNavigationInstructions,
2002    chooseAvailableStartDate: chooseAvailableStartDate,
2003    chooseAvailableEndDate: chooseAvailableEndDate,
2004    dateIsUnavailable: dateIsUnavailable,
2005    dateIsSelected: dateIsSelected
2006  };
2007  
2008  var DateRangePickerInputPhrases = exports.DateRangePickerInputPhrases = {
2009    focusStartDate: focusStartDate,
2010    clearDates: clearDates,
2011    keyboardNavigationInstructions: keyboardNavigationInstructions
2012  };
2013  
2014  var SingleDatePickerPhrases = exports.SingleDatePickerPhrases = {
2015    calendarLabel: calendarLabel,
2016    closeDatePicker: closeDatePicker,
2017    clearDate: clearDate,
2018    jumpToPrevMonth: jumpToPrevMonth,
2019    jumpToNextMonth: jumpToNextMonth,
2020    keyboardShortcuts: keyboardShortcuts,
2021    showKeyboardShortcutsPanel: showKeyboardShortcutsPanel,
2022    hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,
2023    openThisPanel: openThisPanel,
2024    enterKey: enterKey,
2025    leftArrowRightArrow: leftArrowRightArrow,
2026    upArrowDownArrow: upArrowDownArrow,
2027    pageUpPageDown: pageUpPageDown,
2028    homeEnd: homeEnd,
2029    escape: escape,
2030    questionMark: questionMark,
2031    selectFocusedDate: selectFocusedDate,
2032    moveFocusByOneDay: moveFocusByOneDay,
2033    moveFocusByOneWeek: moveFocusByOneWeek,
2034    moveFocusByOneMonth: moveFocusByOneMonth,
2035    moveFocustoStartAndEndOfWeek: moveFocustoStartAndEndOfWeek,
2036    returnFocusToInput: returnFocusToInput,
2037    keyboardNavigationInstructions: keyboardNavigationInstructions,
2038    chooseAvailableDate: chooseAvailableDate,
2039    dateIsUnavailable: dateIsUnavailable,
2040    dateIsSelected: dateIsSelected
2041  };
2042  
2043  var SingleDatePickerInputPhrases = exports.SingleDatePickerInputPhrases = {
2044    clearDate: clearDate,
2045    keyboardNavigationInstructions: keyboardNavigationInstructions
2046  };
2047  
2048  var DayPickerPhrases = exports.DayPickerPhrases = {
2049    calendarLabel: calendarLabel,
2050    jumpToPrevMonth: jumpToPrevMonth,
2051    jumpToNextMonth: jumpToNextMonth,
2052    keyboardShortcuts: keyboardShortcuts,
2053    showKeyboardShortcutsPanel: showKeyboardShortcutsPanel,
2054    hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,
2055    openThisPanel: openThisPanel,
2056    enterKey: enterKey,
2057    leftArrowRightArrow: leftArrowRightArrow,
2058    upArrowDownArrow: upArrowDownArrow,
2059    pageUpPageDown: pageUpPageDown,
2060    homeEnd: homeEnd,
2061    escape: escape,
2062    questionMark: questionMark,
2063    selectFocusedDate: selectFocusedDate,
2064    moveFocusByOneDay: moveFocusByOneDay,
2065    moveFocusByOneWeek: moveFocusByOneWeek,
2066    moveFocusByOneMonth: moveFocusByOneMonth,
2067    moveFocustoStartAndEndOfWeek: moveFocustoStartAndEndOfWeek,
2068    returnFocusToInput: returnFocusToInput,
2069    chooseAvailableStartDate: chooseAvailableStartDate,
2070    chooseAvailableEndDate: chooseAvailableEndDate,
2071    chooseAvailableDate: chooseAvailableDate,
2072    dateIsUnavailable: dateIsUnavailable,
2073    dateIsSelected: dateIsSelected
2074  };
2075  
2076  var DayPickerKeyboardShortcutsPhrases = exports.DayPickerKeyboardShortcutsPhrases = {
2077    keyboardShortcuts: keyboardShortcuts,
2078    showKeyboardShortcutsPanel: showKeyboardShortcutsPanel,
2079    hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,
2080    openThisPanel: openThisPanel,
2081    enterKey: enterKey,
2082    leftArrowRightArrow: leftArrowRightArrow,
2083    upArrowDownArrow: upArrowDownArrow,
2084    pageUpPageDown: pageUpPageDown,
2085    homeEnd: homeEnd,
2086    escape: escape,
2087    questionMark: questionMark,
2088    selectFocusedDate: selectFocusedDate,
2089    moveFocusByOneDay: moveFocusByOneDay,
2090    moveFocusByOneWeek: moveFocusByOneWeek,
2091    moveFocusByOneMonth: moveFocusByOneMonth,
2092    moveFocustoStartAndEndOfWeek: moveFocustoStartAndEndOfWeek,
2093    returnFocusToInput: returnFocusToInput
2094  };
2095  
2096  var DayPickerNavigationPhrases = exports.DayPickerNavigationPhrases = {
2097    jumpToPrevMonth: jumpToPrevMonth,
2098    jumpToNextMonth: jumpToNextMonth
2099  };
2100  
2101  var CalendarDayPhrases = exports.CalendarDayPhrases = {
2102    chooseAvailableDate: chooseAvailableDate,
2103    dateIsUnavailable: dateIsUnavailable,
2104    dateIsSelected: dateIsSelected
2105  };
2106  
2107  /***/ }),
2108  /* 48 */
2109  /***/ (function(module, exports) {
2110  
2111  (function() { module.exports = this["wp"]["a11y"]; }());
2112  
2113  /***/ }),
2114  /* 49 */,
2115  /* 50 */,
2116  /* 51 */
2117  /***/ (function(module, exports, __webpack_require__) {
2118  
2119  "use strict";
2120  
2121  
2122  Object.defineProperty(exports, "__esModule", {
2123    value: true
2124  });
2125  exports['default'] = getPhrasePropTypes;
2126  
2127  var _object = __webpack_require__(46);
2128  
2129  var _object2 = _interopRequireDefault(_object);
2130  
2131  var _propTypes = __webpack_require__(31);
2132  
2133  var _propTypes2 = _interopRequireDefault(_propTypes);
2134  
2135  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
2136  
2137  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2138  
2139  function getPhrasePropTypes(defaultPhrases) {
2140    return Object.keys(defaultPhrases).reduce(function (phrases, key) {
2141      return (0, _object2['default'])({}, phrases, _defineProperty({}, key, _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func, _propTypes2['default'].node])));
2142    }, {});
2143  }
2144  
2145  /***/ }),
2146  /* 52 */
2147  /***/ (function(module, exports) {
2148  
2149  (function() { module.exports = this["ReactDOM"]; }());
2150  
2151  /***/ }),
2152  /* 53 */,
2153  /* 54 */,
2154  /* 55 */
2155  /***/ (function(module, exports, __webpack_require__) {
2156  
2157  Object.defineProperty(exports, "__esModule", {
2158    value: true
2159  });
2160  exports.withStylesPropTypes = exports.css = undefined;
2161  
2162  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
2163  
2164  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
2165  
2166  exports.withStyles = withStyles;
2167  
2168  var _react = __webpack_require__(27);
2169  
2170  var _react2 = _interopRequireDefault(_react);
2171  
2172  var _propTypes = __webpack_require__(31);
2173  
2174  var _propTypes2 = _interopRequireDefault(_propTypes);
2175  
2176  var _hoistNonReactStatics = __webpack_require__(142);
2177  
2178  var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);
2179  
2180  var _deepmerge = __webpack_require__(285);
2181  
2182  var _deepmerge2 = _interopRequireDefault(_deepmerge);
2183  
2184  var _constants = __webpack_require__(286);
2185  
2186  var _brcast = __webpack_require__(287);
2187  
2188  var _brcast2 = _interopRequireDefault(_brcast);
2189  
2190  var _ThemedStyleSheet = __webpack_require__(155);
2191  
2192  var _ThemedStyleSheet2 = _interopRequireDefault(_ThemedStyleSheet);
2193  
2194  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
2195  
2196  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2197  
2198  function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
2199  
2200  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
2201  
2202  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2203  
2204  // Add some named exports to assist in upgrading and for convenience
2205  var css = exports.css = _ThemedStyleSheet2['default'].resolveLTR;
2206  var withStylesPropTypes = exports.withStylesPropTypes = {
2207    styles: _propTypes2['default'].object.isRequired, // eslint-disable-line react/forbid-prop-types
2208    theme: _propTypes2['default'].object.isRequired, // eslint-disable-line react/forbid-prop-types
2209    css: _propTypes2['default'].func.isRequired
2210  };
2211  
2212  var EMPTY_STYLES = {};
2213  var EMPTY_STYLES_FN = function EMPTY_STYLES_FN() {
2214    return EMPTY_STYLES;
2215  };
2216  
2217  function baseClass(pureComponent) {
2218    if (pureComponent) {
2219      if (!_react2['default'].PureComponent) {
2220        throw new ReferenceError('withStyles() pureComponent option requires React 15.3.0 or later');
2221      }
2222  
2223      return _react2['default'].PureComponent;
2224    }
2225  
2226    return _react2['default'].Component;
2227  }
2228  
2229  var contextTypes = _defineProperty({}, _constants.CHANNEL, _brcast2['default']);
2230  
2231  var defaultDirection = _constants.DIRECTIONS.LTR;
2232  
2233  function withStyles(styleFn) {
2234    var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
2235        _ref$stylesPropName = _ref.stylesPropName,
2236        stylesPropName = _ref$stylesPropName === undefined ? 'styles' : _ref$stylesPropName,
2237        _ref$themePropName = _ref.themePropName,
2238        themePropName = _ref$themePropName === undefined ? 'theme' : _ref$themePropName,
2239        _ref$cssPropName = _ref.cssPropName,
2240        cssPropName = _ref$cssPropName === undefined ? 'css' : _ref$cssPropName,
2241        _ref$flushBefore = _ref.flushBefore,
2242        flushBefore = _ref$flushBefore === undefined ? false : _ref$flushBefore,
2243        _ref$pureComponent = _ref.pureComponent,
2244        pureComponent = _ref$pureComponent === undefined ? false : _ref$pureComponent;
2245  
2246    var styleDefLTR = void 0;
2247    var styleDefRTL = void 0;
2248    var currentThemeLTR = void 0;
2249    var currentThemeRTL = void 0;
2250    var BaseClass = baseClass(pureComponent);
2251  
2252    function getResolveMethod(direction) {
2253      return direction === _constants.DIRECTIONS.LTR ? _ThemedStyleSheet2['default'].resolveLTR : _ThemedStyleSheet2['default'].resolveRTL;
2254    }
2255  
2256    function getCurrentTheme(direction) {
2257      return direction === _constants.DIRECTIONS.LTR ? currentThemeLTR : currentThemeRTL;
2258    }
2259  
2260    function getStyleDef(direction, wrappedComponentName) {
2261      var currentTheme = getCurrentTheme(direction);
2262      var styleDef = direction === _constants.DIRECTIONS.LTR ? styleDefLTR : styleDefRTL;
2263  
2264      var registeredTheme = _ThemedStyleSheet2['default'].get();
2265  
2266      // Return the existing styles if they've already been defined
2267      // and if the theme used to create them corresponds to the theme
2268      // registered with ThemedStyleSheet
2269      if (styleDef && currentTheme === registeredTheme) {
2270        return styleDef;
2271      }
2272  
2273      if (false) {}
2274  
2275      var isRTL = direction === _constants.DIRECTIONS.RTL;
2276  
2277      if (isRTL) {
2278        styleDefRTL = styleFn ? _ThemedStyleSheet2['default'].createRTL(styleFn) : EMPTY_STYLES_FN;
2279  
2280        currentThemeRTL = registeredTheme;
2281        styleDef = styleDefRTL;
2282      } else {
2283        styleDefLTR = styleFn ? _ThemedStyleSheet2['default'].createLTR(styleFn) : EMPTY_STYLES_FN;
2284  
2285        currentThemeLTR = registeredTheme;
2286        styleDef = styleDefLTR;
2287      }
2288  
2289      if (false) {}
2290  
2291      return styleDef;
2292    }
2293  
2294    function getState(direction, wrappedComponentName) {
2295      return {
2296        resolveMethod: getResolveMethod(direction),
2297        styleDef: getStyleDef(direction, wrappedComponentName)
2298      };
2299    }
2300  
2301    return function () {
2302      function withStylesHOC(WrappedComponent) {
2303        var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
2304  
2305        // NOTE: Use a class here so components are ref-able if need be:
2306        // eslint-disable-next-line react/prefer-stateless-function
2307  
2308        var WithStyles = function (_BaseClass) {
2309          _inherits(WithStyles, _BaseClass);
2310  
2311          function WithStyles(props, context) {
2312            _classCallCheck(this, WithStyles);
2313  
2314            var _this = _possibleConstructorReturn(this, (WithStyles.__proto__ || Object.getPrototypeOf(WithStyles)).call(this, props, context));
2315  
2316            var direction = _this.context[_constants.CHANNEL] ? _this.context[_constants.CHANNEL].getState() : defaultDirection;
2317  
2318            _this.state = getState(direction, wrappedComponentName);
2319            return _this;
2320          }
2321  
2322          _createClass(WithStyles, [{
2323            key: 'componentDidMount',
2324            value: function () {
2325              function componentDidMount() {
2326                var _this2 = this;
2327  
2328                if (this.context[_constants.CHANNEL]) {
2329                  // subscribe to future direction changes
2330                  this.channelUnsubscribe = this.context[_constants.CHANNEL].subscribe(function (direction) {
2331                    _this2.setState(getState(direction, wrappedComponentName));
2332                  });
2333                }
2334              }
2335  
2336              return componentDidMount;
2337            }()
2338          }, {
2339            key: 'componentWillUnmount',
2340            value: function () {
2341              function componentWillUnmount() {
2342                if (this.channelUnsubscribe) {
2343                  this.channelUnsubscribe();
2344                }
2345              }
2346  
2347              return componentWillUnmount;
2348            }()
2349          }, {
2350            key: 'render',
2351            value: function () {
2352              function render() {
2353                var _ref2;
2354  
2355                // As some components will depend on previous styles in
2356                // the component tree, we provide the option of flushing the
2357                // buffered styles (i.e. to a style tag) **before** the rendering
2358                // cycle begins.
2359                //
2360                // The interfaces provide the optional "flush" method which
2361                // is run in turn by ThemedStyleSheet.flush.
2362                if (flushBefore) {
2363                  _ThemedStyleSheet2['default'].flush();
2364                }
2365  
2366                var _state = this.state,
2367                    resolveMethod = _state.resolveMethod,
2368                    styleDef = _state.styleDef;
2369  
2370  
2371                return _react2['default'].createElement(WrappedComponent, _extends({}, this.props, (_ref2 = {}, _defineProperty(_ref2, themePropName, _ThemedStyleSheet2['default'].get()), _defineProperty(_ref2, stylesPropName, styleDef()), _defineProperty(_ref2, cssPropName, resolveMethod), _ref2)));
2372              }
2373  
2374              return render;
2375            }()
2376          }]);
2377  
2378          return WithStyles;
2379        }(BaseClass);
2380  
2381        WithStyles.WrappedComponent = WrappedComponent;
2382        WithStyles.displayName = 'withStyles(' + String(wrappedComponentName) + ')';
2383        WithStyles.contextTypes = contextTypes;
2384        if (WrappedComponent.propTypes) {
2385          WithStyles.propTypes = (0, _deepmerge2['default'])({}, WrappedComponent.propTypes);
2386          delete WithStyles.propTypes[stylesPropName];
2387          delete WithStyles.propTypes[themePropName];
2388          delete WithStyles.propTypes[cssPropName];
2389        }
2390        if (WrappedComponent.defaultProps) {
2391          WithStyles.defaultProps = (0, _deepmerge2['default'])({}, WrappedComponent.defaultProps);
2392        }
2393  
2394        return (0, _hoistNonReactStatics2['default'])(WithStyles, WrappedComponent);
2395      }
2396  
2397      return withStylesHOC;
2398    }();
2399  }
2400  
2401  /***/ }),
2402  /* 56 */,
2403  /* 57 */,
2404  /* 58 */
2405  /***/ (function(module, exports) {
2406  
2407  var g;
2408  
2409  // This works in non-strict mode
2410  g = (function() {
2411      return this;
2412  })();
2413  
2414  try {
2415      // This works if eval is allowed (see CSP)
2416      g = g || new Function("return this")();
2417  } catch (e) {
2418      // This works if the window reference is available
2419      if (typeof window === "object") g = window;
2420  }
2421  
2422  // g can still be undefined, but nothing to do about it...
2423  // We return undefined, instead of nothing here, so it's
2424  // easier to handle this case. if(!global) { ...}
2425  
2426  module.exports = g;
2427  
2428  
2429  /***/ }),
2430  /* 59 */,
2431  /* 60 */,
2432  /* 61 */,
2433  /* 62 */,
2434  /* 63 */
2435  /***/ (function(module, exports, __webpack_require__) {
2436  
2437  "use strict";
2438  
2439  
2440  var keys = __webpack_require__(123);
2441  var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
2442  
2443  var toStr = Object.prototype.toString;
2444  var concat = Array.prototype.concat;
2445  var origDefineProperty = Object.defineProperty;
2446  
2447  var isFunction = function (fn) {
2448      return typeof fn === 'function' && toStr.call(fn) === '[object Function]';
2449  };
2450  
2451  var arePropertyDescriptorsSupported = function () {
2452      var obj = {};
2453      try {
2454          origDefineProperty(obj, 'x', { enumerable: false, value: obj });
2455          // eslint-disable-next-line no-unused-vars, no-restricted-syntax
2456          for (var _ in obj) { // jscs:ignore disallowUnusedVariables
2457              return false;
2458          }
2459          return obj.x === obj;
2460      } catch (e) { /* this is IE 8. */
2461          return false;
2462      }
2463  };
2464  var supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();
2465  
2466  var defineProperty = function (object, name, value, predicate) {
2467      if (name in object && (!isFunction(predicate) || !predicate())) {
2468          return;
2469      }
2470      if (supportsDescriptors) {
2471          origDefineProperty(object, name, {
2472              configurable: true,
2473              enumerable: false,
2474              value: value,
2475              writable: true
2476          });
2477      } else {
2478          object[name] = value;
2479      }
2480  };
2481  
2482  var defineProperties = function (object, map) {
2483      var predicates = arguments.length > 2 ? arguments[2] : {};
2484      var props = keys(map);
2485      if (hasSymbols) {
2486          props = concat.call(props, Object.getOwnPropertySymbols(map));
2487      }
2488      for (var i = 0; i < props.length; i += 1) {
2489          defineProperty(object, props[i], map[props[i]], predicates[props[i]]);
2490      }
2491  };
2492  
2493  defineProperties.supportsDescriptors = !!supportsDescriptors;
2494  
2495  module.exports = defineProperties;
2496  
2497  
2498  /***/ }),
2499  /* 64 */
2500  /***/ (function(module, exports, __webpack_require__) {
2501  
2502  var moment = __webpack_require__(29);
2503  var momentValidationWrapper = __webpack_require__(282);
2504  var core = __webpack_require__(283);
2505  
2506  module.exports = {
2507  
2508    momentObj : core.createMomentChecker(
2509      'object',
2510      function(obj) {
2511        return typeof obj === 'object';
2512      },
2513      function isValid(value) {
2514        return momentValidationWrapper.isValidMoment(value);
2515      },
2516      'Moment'
2517    ),
2518  
2519    momentString : core.createMomentChecker(
2520      'string',
2521      function(str) {
2522        return typeof str === 'string';
2523      },
2524      function isValid(value) {
2525        return momentValidationWrapper.isValidMoment(moment(value));
2526      },
2527      'Moment'
2528    ),
2529  
2530    momentDurationObj : core.createMomentChecker(
2531      'object',
2532      function(obj) {
2533        return typeof obj === 'object';
2534      },
2535      function isValid(value) {
2536        return moment.isDuration(value);
2537      },
2538      'Duration'
2539    ),
2540  
2541  };
2542  
2543  
2544  /***/ }),
2545  /* 65 */
2546  /***/ (function(module, exports, __webpack_require__) {
2547  
2548  var rng = __webpack_require__(86);
2549  var bytesToUuid = __webpack_require__(87);
2550  
2551  function v4(options, buf, offset) {
2552    var i = buf && offset || 0;
2553  
2554    if (typeof(options) == 'string') {
2555      buf = options === 'binary' ? new Array(16) : null;
2556      options = null;
2557    }
2558    options = options || {};
2559  
2560    var rnds = options.random || (options.rng || rng)();
2561  
2562    // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
2563    rnds[6] = (rnds[6] & 0x0f) | 0x40;
2564    rnds[8] = (rnds[8] & 0x3f) | 0x80;
2565  
2566    // Copy bytes to buffer, if provided
2567    if (buf) {
2568      for (var ii = 0; ii < 16; ++ii) {
2569        buf[i + ii] = rnds[ii];
2570      }
2571    }
2572  
2573    return buf || bytesToUuid(rnds);
2574  }
2575  
2576  module.exports = v4;
2577  
2578  
2579  /***/ }),
2580  /* 66 */,
2581  /* 67 */
2582  /***/ (function(module, exports, __webpack_require__) {
2583  
2584  "use strict";
2585  
2586  
2587  module.exports = __webpack_require__(115);
2588  
2589  /***/ }),
2590  /* 68 */,
2591  /* 69 */,
2592  /* 70 */,
2593  /* 71 */,
2594  /* 72 */,
2595  /* 73 */
2596  /***/ (function(module, exports, __webpack_require__) {
2597  
2598  "use strict";
2599  
2600  
2601  var implementation = __webpack_require__(261);
2602  
2603  module.exports = Function.prototype.bind || implementation;
2604  
2605  
2606  /***/ }),
2607  /* 74 */
2608  /***/ (function(module, exports, __webpack_require__) {
2609  
2610  "use strict";
2611  
2612  
2613  Object.defineProperty(exports, "__esModule", {
2614    value: true
2615  });
2616  
2617  var _propTypes = __webpack_require__(31);
2618  
2619  var _propTypes2 = _interopRequireDefault(_propTypes);
2620  
2621  var _constants = __webpack_require__(39);
2622  
2623  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
2624  
2625  exports['default'] = _propTypes2['default'].oneOf(_constants.WEEKDAYS);
2626  
2627  /***/ }),
2628  /* 75 */,
2629  /* 76 */,
2630  /* 77 */
2631  /***/ (function(module, exports, __webpack_require__) {
2632  
2633  "use strict";
2634  /**
2635   * Copyright (c) 2013-present, Facebook, Inc.
2636   *
2637   * This source code is licensed under the MIT license found in the
2638   * LICENSE file in the root directory of this source tree.
2639   *
2640   * @providesModule shallowCompare
2641   */
2642  
2643  
2644  
2645  var shallowEqual = __webpack_require__(281);
2646  
2647  /**
2648   * Does a shallow comparison for props and state.
2649   * See ReactComponentWithPureRenderMixin
2650   * See also https://facebook.github.io/react/docs/shallow-compare.html
2651   */
2652  function shallowCompare(instance, nextProps, nextState) {
2653    return (
2654      !shallowEqual(instance.props, nextProps) ||
2655      !shallowEqual(instance.state, nextState)
2656    );
2657  }
2658  
2659  module.exports = shallowCompare;
2660  
2661  
2662  /***/ }),
2663  /* 78 */
2664  /***/ (function(module, exports, __webpack_require__) {
2665  
2666  "use strict";
2667  
2668  
2669  Object.defineProperty(exports, "__esModule", {
2670    value: true
2671  });
2672  exports['default'] = isSameDay;
2673  
2674  var _moment = __webpack_require__(29);
2675  
2676  var _moment2 = _interopRequireDefault(_moment);
2677  
2678  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
2679  
2680  function isSameDay(a, b) {
2681    if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
2682    // Compare least significant, most likely to change units first
2683    // Moment's isSame clones moment inputs and is a tad slow
2684    return a.date() === b.date() && a.month() === b.month() && a.year() === b.year();
2685  }
2686  
2687  /***/ }),
2688  /* 79 */
2689  /***/ (function(module, exports, __webpack_require__) {
2690  
2691  "use strict";
2692  
2693  
2694  Object.defineProperty(exports, "__esModule", {
2695    value: true
2696  });
2697  exports['default'] = toMomentObject;
2698  
2699  var _moment = __webpack_require__(29);
2700  
2701  var _moment2 = _interopRequireDefault(_moment);
2702  
2703  var _constants = __webpack_require__(39);
2704  
2705  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
2706  
2707  function toMomentObject(dateString, customFormat) {
2708    var dateFormats = customFormat ? [customFormat, _constants.DISPLAY_FORMAT, _constants.ISO_FORMAT] : [_constants.DISPLAY_FORMAT, _constants.ISO_FORMAT];
2709  
2710    var date = (0, _moment2['default'])(dateString, dateFormats, true);
2711    return date.isValid() ? date.hour(12) : null;
2712  }
2713  
2714  /***/ }),
2715  /* 80 */
2716  /***/ (function(module, exports, __webpack_require__) {
2717  
2718  "use strict";
2719  
2720  
2721  Object.defineProperty(exports, "__esModule", {
2722    value: true
2723  });
2724  
2725  var _propTypes = __webpack_require__(31);
2726  
2727  var _propTypes2 = _interopRequireDefault(_propTypes);
2728  
2729  var _constants = __webpack_require__(39);
2730  
2731  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
2732  
2733  exports['default'] = _propTypes2['default'].oneOf([_constants.HORIZONTAL_ORIENTATION, _constants.VERTICAL_ORIENTATION, _constants.VERTICAL_SCROLLABLE]);
2734  
2735  /***/ }),
2736  /* 81 */
2737  /***/ (function(module, exports) {
2738  
2739  Object.defineProperty(exports, "__esModule", {
2740    value: true
2741  });
2742  exports['default'] = isTouchDevice;
2743  function isTouchDevice() {
2744    return !!(typeof window !== 'undefined' && ('ontouchstart' in window || window.DocumentTouch && typeof document !== 'undefined' && document instanceof window.DocumentTouch)) || !!(typeof navigator !== 'undefined' && (navigator.maxTouchPoints || navigator.msMaxTouchPoints));
2745  }
2746  module.exports = exports['default'];
2747  
2748  /***/ }),
2749  /* 82 */
2750  /***/ (function(module, exports, __webpack_require__) {
2751  
2752  "use strict";
2753  
2754  
2755  Object.defineProperty(exports, "__esModule", {
2756    value: true
2757  });
2758  
2759  var _propTypes = __webpack_require__(31);
2760  
2761  var _propTypes2 = _interopRequireDefault(_propTypes);
2762  
2763  var _constants = __webpack_require__(39);
2764  
2765  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
2766  
2767  exports['default'] = _propTypes2['default'].oneOf([_constants.OPEN_DOWN, _constants.OPEN_UP]);
2768  
2769  /***/ }),
2770  /* 83 */,
2771  /* 84 */,
2772  /* 85 */,
2773  /* 86 */
2774  /***/ (function(module, exports) {
2775  
2776  // Unique ID creation requires a high quality random # generator.  In the
2777  // browser this is a little complicated due to unknown quality of Math.random()
2778  // and inconsistent support for the `crypto` API.  We do the best we can via
2779  // feature-detection
2780  
2781  // getRandomValues needs to be invoked in a context where "this" is a Crypto
2782  // implementation. Also, find the complete implementation of crypto on IE11.
2783  var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||
2784                        (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));
2785  
2786  if (getRandomValues) {
2787    // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto
2788    var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef
2789  
2790    module.exports = function whatwgRNG() {
2791      getRandomValues(rnds8);
2792      return rnds8;
2793    };
2794  } else {
2795    // Math.random()-based (RNG)
2796    //
2797    // If all else fails, use Math.random().  It's fast, but is of unspecified
2798    // quality.
2799    var rnds = new Array(16);
2800  
2801    module.exports = function mathRNG() {
2802      for (var i = 0, r; i < 16; i++) {
2803        if ((i & 0x03) === 0) r = Math.random() * 0x100000000;
2804        rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;
2805      }
2806  
2807      return rnds;
2808    };
2809  }
2810  
2811  
2812  /***/ }),
2813  /* 87 */
2814  /***/ (function(module, exports) {
2815  
2816  /**
2817   * Convert array of 16 byte values to UUID string format of the form:
2818   * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
2819   */
2820  var byteToHex = [];
2821  for (var i = 0; i < 256; ++i) {
2822    byteToHex[i] = (i + 0x100).toString(16).substr(1);
2823  }
2824  
2825  function bytesToUuid(buf, offset) {
2826    var i = offset || 0;
2827    var bth = byteToHex;
2828    // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4
2829    return ([bth[buf[i++]], bth[buf[i++]], 
2830      bth[buf[i++]], bth[buf[i++]], '-',
2831      bth[buf[i++]], bth[buf[i++]], '-',
2832      bth[buf[i++]], bth[buf[i++]], '-',
2833      bth[buf[i++]], bth[buf[i++]], '-',
2834      bth[buf[i++]], bth[buf[i++]],
2835      bth[buf[i++]], bth[buf[i++]],
2836      bth[buf[i++]], bth[buf[i++]]]).join('');
2837  }
2838  
2839  module.exports = bytesToUuid;
2840  
2841  
2842  /***/ }),
2843  /* 88 */
2844  /***/ (function(module, exports, __webpack_require__) {
2845  
2846  "use strict";
2847  /**
2848   * Copyright (c) 2013-present, Facebook, Inc.
2849   *
2850   * This source code is licensed under the MIT license found in the
2851   * LICENSE file in the root directory of this source tree.
2852   */
2853  
2854  
2855  
2856  var ReactPropTypesSecret = __webpack_require__(89);
2857  
2858  function emptyFunction() {}
2859  function emptyFunctionWithReset() {}
2860  emptyFunctionWithReset.resetWarningCache = emptyFunction;
2861  
2862  module.exports = function() {
2863    function shim(props, propName, componentName, location, propFullName, secret) {
2864      if (secret === ReactPropTypesSecret) {
2865        // It is still safe when called from React.
2866        return;
2867      }
2868      var err = new Error(
2869        'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
2870        'Use PropTypes.checkPropTypes() to call them. ' +
2871        'Read more at http://fb.me/use-check-prop-types'
2872      );
2873      err.name = 'Invariant Violation';
2874      throw err;
2875    };
2876    shim.isRequired = shim;
2877    function getShim() {
2878      return shim;
2879    };
2880    // Important!
2881    // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
2882    var ReactPropTypes = {
2883      array: shim,
2884      bool: shim,
2885      func: shim,
2886      number: shim,
2887      object: shim,
2888      string: shim,
2889      symbol: shim,
2890  
2891      any: shim,
2892      arrayOf: getShim,
2893      element: shim,
2894      elementType: shim,
2895      instanceOf: getShim,
2896      node: shim,
2897      objectOf: getShim,
2898      oneOf: getShim,
2899      oneOfType: getShim,
2900      shape: getShim,
2901      exact: getShim,
2902  
2903      checkPropTypes: emptyFunctionWithReset,
2904      resetWarningCache: emptyFunction
2905    };
2906  
2907    ReactPropTypes.PropTypes = ReactPropTypes;
2908  
2909    return ReactPropTypes;
2910  };
2911  
2912  
2913  /***/ }),
2914  /* 89 */
2915  /***/ (function(module, exports, __webpack_require__) {
2916  
2917  "use strict";
2918  /**
2919   * Copyright (c) 2013-present, Facebook, Inc.
2920   *
2921   * This source code is licensed under the MIT license found in the
2922   * LICENSE file in the root directory of this source tree.
2923   */
2924  
2925  
2926  
2927  var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
2928  
2929  module.exports = ReactPropTypesSecret;
2930  
2931  
2932  /***/ }),
2933  /* 90 */
2934  /***/ (function(module, exports, __webpack_require__) {
2935  
2936  "use strict";
2937  
2938  
2939  var bind = __webpack_require__(73);
2940  
2941  module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);
2942  
2943  
2944  /***/ }),
2945  /* 91 */
2946  /***/ (function(module, exports, __webpack_require__) {
2947  
2948  "use strict";
2949  
2950  
2951  Object.defineProperty(exports, "__esModule", {
2952    value: true
2953  });
2954  
2955  var _propTypes = __webpack_require__(31);
2956  
2957  var _propTypes2 = _interopRequireDefault(_propTypes);
2958  
2959  var _constants = __webpack_require__(39);
2960  
2961  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
2962  
2963  exports['default'] = _propTypes2['default'].oneOf([_constants.ICON_BEFORE_POSITION, _constants.ICON_AFTER_POSITION]);
2964  
2965  /***/ }),
2966  /* 92 */
2967  /***/ (function(module, exports, __webpack_require__) {
2968  
2969  "use strict";
2970  
2971  
2972  Object.defineProperty(exports, "__esModule", {
2973    value: true
2974  });
2975  
2976  var _propTypes = __webpack_require__(31);
2977  
2978  var _propTypes2 = _interopRequireDefault(_propTypes);
2979  
2980  var _constants = __webpack_require__(39);
2981  
2982  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
2983  
2984  exports['default'] = _propTypes2['default'].oneOf([_constants.INFO_POSITION_TOP, _constants.INFO_POSITION_BOTTOM, _constants.INFO_POSITION_BEFORE, _constants.INFO_POSITION_AFTER]);
2985  
2986  /***/ }),
2987  /* 93 */
2988  /***/ (function(module, exports, __webpack_require__) {
2989  
2990  "use strict";
2991  
2992  
2993  Object.defineProperty(exports, "__esModule", {
2994    value: true
2995  });
2996  exports['default'] = isInclusivelyAfterDay;
2997  
2998  var _moment = __webpack_require__(29);
2999  
3000  var _moment2 = _interopRequireDefault(_moment);
3001  
3002  var _isBeforeDay = __webpack_require__(94);
3003  
3004  var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);
3005  
3006  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
3007  
3008  function isInclusivelyAfterDay(a, b) {
3009    if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
3010    return !(0, _isBeforeDay2['default'])(a, b);
3011  }
3012  
3013  /***/ }),
3014  /* 94 */
3015  /***/ (function(module, exports, __webpack_require__) {
3016  
3017  "use strict";
3018  
3019  
3020  Object.defineProperty(exports, "__esModule", {
3021    value: true
3022  });
3023  exports['default'] = isBeforeDay;
3024  
3025  var _moment = __webpack_require__(29);
3026  
3027  var _moment2 = _interopRequireDefault(_moment);
3028  
3029  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
3030  
3031  function isBeforeDay(a, b) {
3032    if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
3033  
3034    var aYear = a.year();
3035    var aMonth = a.month();
3036  
3037    var bYear = b.year();
3038    var bMonth = b.month();
3039  
3040    var isSameYear = aYear === bYear;
3041    var isSameMonth = aMonth === bMonth;
3042  
3043    if (isSameYear && isSameMonth) return a.date() < b.date();
3044    if (isSameYear) return aMonth < bMonth;
3045    return aYear < bYear;
3046  }
3047  
3048  /***/ }),
3049  /* 95 */
3050  /***/ (function(module, exports, __webpack_require__) {
3051  
3052  "use strict";
3053  
3054  
3055  Object.defineProperty(exports, "__esModule", {
3056    value: true
3057  });
3058  
3059  var _react = __webpack_require__(27);
3060  
3061  var _react2 = _interopRequireDefault(_react);
3062  
3063  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
3064  
3065  var CloseButton = function () {
3066    function CloseButton(props) {
3067      return _react2['default'].createElement(
3068        'svg',
3069        props,
3070        _react2['default'].createElement('path', {
3071          fillRule: 'evenodd',
3072          d: 'M11.53.47a.75.75 0 0 0-1.061 0l-4.47 4.47L1.529.47A.75.75 0 1 0 .468 1.531l4.47 4.47-4.47 4.47a.75.75 0 1 0 1.061 1.061l4.47-4.47 4.47 4.47a.75.75 0 1 0 1.061-1.061l-4.47-4.47 4.47-4.47a.75.75 0 0 0 0-1.061z'
3073        })
3074      );
3075    }
3076  
3077    return CloseButton;
3078  }();
3079  
3080  CloseButton.defaultProps = {
3081    viewBox: '0 0 12 12'
3082  };
3083  exports['default'] = CloseButton;
3084  
3085  /***/ }),
3086  /* 96 */,
3087  /* 97 */,
3088  /* 98 */,
3089  /* 99 */,
3090  /* 100 */
3091  /***/ (function(module, exports, __webpack_require__) {
3092  
3093  "use strict";
3094  
3095  
3096  /* globals
3097      Set,
3098      Map,
3099      WeakSet,
3100      WeakMap,
3101  
3102      Promise,
3103  
3104      Symbol,
3105      Proxy,
3106  
3107      Atomics,
3108      SharedArrayBuffer,
3109  
3110      ArrayBuffer,
3111      DataView,
3112      Uint8Array,
3113      Float32Array,
3114      Float64Array,
3115      Int8Array,
3116      Int16Array,
3117      Int32Array,
3118      Uint8ClampedArray,
3119      Uint16Array,
3120      Uint32Array,
3121  */
3122  
3123  var undefined; // eslint-disable-line no-shadow-restricted-names
3124  
3125  var ThrowTypeError = Object.getOwnPropertyDescriptor
3126      ? (function () { return Object.getOwnPropertyDescriptor(arguments, 'callee').get; }())
3127      : function () { throw new TypeError(); };
3128  
3129  var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';
3130  
3131  var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
3132  
3133  var generator; // = function * () {};
3134  var generatorFunction = generator ? getProto(generator) : undefined;
3135  var asyncFn; // async function() {};
3136  var asyncFunction = asyncFn ? asyncFn.constructor : undefined;
3137  var asyncGen; // async function * () {};
3138  var asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;
3139  var asyncGenIterator = asyncGen ? asyncGen() : undefined;
3140  
3141  var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
3142  
3143  var INTRINSICS = {
3144      '$ %Array%': Array,
3145      '$ %ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
3146      '$ %ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,
3147      '$ %ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
3148      '$ %ArrayPrototype%': Array.prototype,
3149      '$ %ArrayProto_entries%': Array.prototype.entries,
3150      '$ %ArrayProto_forEach%': Array.prototype.forEach,
3151      '$ %ArrayProto_keys%': Array.prototype.keys,
3152      '$ %ArrayProto_values%': Array.prototype.values,
3153      '$ %AsyncFromSyncIteratorPrototype%': undefined,
3154      '$ %AsyncFunction%': asyncFunction,
3155      '$ %AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,
3156      '$ %AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,
3157      '$ %AsyncGeneratorFunction%': asyncGenFunction,
3158      '$ %AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,
3159      '$ %AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,
3160      '$ %Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
3161      '$ %Boolean%': Boolean,
3162      '$ %BooleanPrototype%': Boolean.prototype,
3163      '$ %DataView%': typeof DataView === 'undefined' ? undefined : DataView,
3164      '$ %DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,
3165      '$ %Date%': Date,
3166      '$ %DatePrototype%': Date.prototype,
3167      '$ %decodeURI%': decodeURI,
3168      '$ %decodeURIComponent%': decodeURIComponent,
3169      '$ %encodeURI%': encodeURI,
3170      '$ %encodeURIComponent%': encodeURIComponent,
3171      '$ %Error%': Error,
3172      '$ %ErrorPrototype%': Error.prototype,
3173      '$ %eval%': eval, // eslint-disable-line no-eval
3174      '$ %EvalError%': EvalError,
3175      '$ %EvalErrorPrototype%': EvalError.prototype,
3176      '$ %Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
3177      '$ %Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,
3178      '$ %Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
3179      '$ %Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,
3180      '$ %Function%': Function,
3181      '$ %FunctionPrototype%': Function.prototype,
3182      '$ %Generator%': generator ? getProto(generator()) : undefined,
3183      '$ %GeneratorFunction%': generatorFunction,
3184      '$ %GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,
3185      '$ %Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
3186      '$ %Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,
3187      '$ %Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
3188      '$ %Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,
3189      '$ %Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
3190      '$ %Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,
3191      '$ %isFinite%': isFinite,
3192      '$ %isNaN%': isNaN,
3193      '$ %IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
3194      '$ %JSON%': JSON,
3195      '$ %JSONParse%': JSON.parse,
3196      '$ %Map%': typeof Map === 'undefined' ? undefined : Map,
3197      '$ %MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
3198      '$ %MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,
3199      '$ %Math%': Math,
3200      '$ %Number%': Number,
3201      '$ %NumberPrototype%': Number.prototype,
3202      '$ %Object%': Object,
3203      '$ %ObjectPrototype%': Object.prototype,
3204      '$ %ObjProto_toString%': Object.prototype.toString,
3205      '$ %ObjProto_valueOf%': Object.prototype.valueOf,
3206      '$ %parseFloat%': parseFloat,
3207      '$ %parseInt%': parseInt,
3208      '$ %Promise%': typeof Promise === 'undefined' ? undefined : Promise,
3209      '$ %PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,
3210      '$ %PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,
3211      '$ %Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,
3212      '$ %Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,
3213      '$ %Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,
3214      '$ %Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
3215      '$ %RangeError%': RangeError,
3216      '$ %RangeErrorPrototype%': RangeError.prototype,
3217      '$ %ReferenceError%': ReferenceError,
3218      '$ %ReferenceErrorPrototype%': ReferenceError.prototype,
3219      '$ %Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
3220      '$ %RegExp%': RegExp,
3221      '$ %RegExpPrototype%': RegExp.prototype,
3222      '$ %Set%': typeof Set === 'undefined' ? undefined : Set,
3223      '$ %SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
3224      '$ %SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,
3225      '$ %SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
3226      '$ %SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,
3227      '$ %String%': String,
3228      '$ %StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
3229      '$ %StringPrototype%': String.prototype,
3230      '$ %Symbol%': hasSymbols ? Symbol : undefined,
3231      '$ %SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,
3232      '$ %SyntaxError%': SyntaxError,
3233      '$ %SyntaxErrorPrototype%': SyntaxError.prototype,
3234      '$ %ThrowTypeError%': ThrowTypeError,
3235      '$ %TypedArray%': TypedArray,
3236      '$ %TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,
3237      '$ %TypeError%': TypeError,
3238      '$ %TypeErrorPrototype%': TypeError.prototype,
3239      '$ %Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
3240      '$ %Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,
3241      '$ %Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
3242      '$ %Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,
3243      '$ %Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
3244      '$ %Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,
3245      '$ %Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
3246      '$ %Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,
3247      '$ %URIError%': URIError,
3248      '$ %URIErrorPrototype%': URIError.prototype,
3249      '$ %WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
3250      '$ %WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,
3251      '$ %WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,
3252      '$ %WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype
3253  };
3254  
3255  module.exports = function GetIntrinsic(name, allowMissing) {
3256      if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
3257          throw new TypeError('"allowMissing" argument must be a boolean');
3258      }
3259  
3260      var key = '$ ' + name;
3261      if (!(key in INTRINSICS)) {
3262          throw new SyntaxError('intrinsic ' + name + ' does not exist!');
3263      }
3264  
3265      // istanbul ignore if // hopefully this is impossible to test :-)
3266      if (typeof INTRINSICS[key] === 'undefined' && !allowMissing) {
3267          throw new TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
3268      }
3269      return INTRINSICS[key];
3270  };
3271  
3272  
3273  /***/ }),
3274  /* 101 */
3275  /***/ (function(module, exports, __webpack_require__) {
3276  
3277  "use strict";
3278  
3279  
3280  Object.defineProperty(exports, "__esModule", {
3281    value: true
3282  });
3283  
3284  var _propTypes = __webpack_require__(31);
3285  
3286  var _propTypes2 = _interopRequireDefault(_propTypes);
3287  
3288  var _airbnbPropTypes = __webpack_require__(43);
3289  
3290  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
3291  
3292  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3293  
3294  function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
3295  
3296  exports['default'] = (0, _airbnbPropTypes.and)([_propTypes2['default'].instanceOf(Set), function () {
3297    function modifiers(props, propName) {
3298      for (var _len = arguments.length, rest = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
3299        rest[_key - 2] = arguments[_key];
3300      }
3301  
3302      var propValue = props[propName];
3303  
3304      var firstError = void 0;
3305      [].concat(_toConsumableArray(propValue)).some(function (v, i) {
3306        var _PropTypes$string;
3307  
3308        var fakePropName = String(propName) + ': index ' + String(i);
3309        firstError = (_PropTypes$string = _propTypes2['default'].string).isRequired.apply(_PropTypes$string, [_defineProperty({}, fakePropName, v), fakePropName].concat(rest));
3310        return firstError != null;
3311      });
3312      return firstError == null ? null : firstError;
3313    }
3314  
3315    return modifiers;
3316  }()], 'Modifiers (Set of Strings)');
3317  
3318  /***/ }),
3319  /* 102 */
3320  /***/ (function(module, exports, __webpack_require__) {
3321  
3322  "use strict";
3323  
3324  
3325  Object.defineProperty(exports, "__esModule", {
3326    value: true
3327  });
3328  exports['default'] = toISODateString;
3329  
3330  var _moment = __webpack_require__(29);
3331  
3332  var _moment2 = _interopRequireDefault(_moment);
3333  
3334  var _toMomentObject = __webpack_require__(79);
3335  
3336  var _toMomentObject2 = _interopRequireDefault(_toMomentObject);
3337  
3338  var _constants = __webpack_require__(39);
3339  
3340  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
3341  
3342  function toISODateString(date, currentFormat) {
3343    var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat);
3344    if (!dateObj) return null;
3345  
3346    return dateObj.format(_constants.ISO_FORMAT);
3347  }
3348  
3349  /***/ }),
3350  /* 103 */
3351  /***/ (function(module, __webpack_exports__, __webpack_require__) {
3352  
3353  "use strict";
3354  __webpack_require__.r(__webpack_exports__);
3355  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addEventListener", function() { return addEventListener; });
3356  var CAN_USE_DOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
3357  
3358  // Adapted from Modernizr
3359  // https://github.com/Modernizr/Modernizr/blob/acb3f0d9/feature-detects/dom/passiveeventlisteners.js#L26-L37
3360  function testPassiveEventListeners() {
3361    if (!CAN_USE_DOM) {
3362      return false;
3363    }
3364  
3365    if (!window.addEventListener || !window.removeEventListener || !Object.defineProperty) {
3366      return false;
3367    }
3368  
3369    var supportsPassiveOption = false;
3370    try {
3371      var opts = Object.defineProperty({}, 'passive', {
3372        // eslint-disable-next-line getter-return
3373        get: function () {
3374          function get() {
3375            supportsPassiveOption = true;
3376          }
3377  
3378          return get;
3379        }()
3380      });
3381      var noop = function noop() {};
3382      window.addEventListener('testPassiveEventSupport', noop, opts);
3383      window.removeEventListener('testPassiveEventSupport', noop, opts);
3384    } catch (e) {
3385      // do nothing
3386    }
3387  
3388    return supportsPassiveOption;
3389  }
3390  
3391  var memoized = void 0;
3392  
3393  function canUsePassiveEventListeners() {
3394    if (memoized === undefined) {
3395      memoized = testPassiveEventListeners();
3396    }
3397    return memoized;
3398  }
3399  
3400  function normalizeEventOptions(eventOptions) {
3401    if (!eventOptions) {
3402      return undefined;
3403    }
3404  
3405    if (!canUsePassiveEventListeners()) {
3406      // If the browser does not support the passive option, then it is expecting
3407      // a boolean for the options argument to specify whether it should use
3408      // capture or not. In more modern browsers, this is passed via the `capture`
3409      // option, so let's just hoist that value up.
3410      return !!eventOptions.capture;
3411    }
3412  
3413    return eventOptions;
3414  }
3415  
3416  /* eslint-disable no-bitwise */
3417  
3418  /**
3419   * Generate a unique key for any set of event options
3420   */
3421  function eventOptionsKey(normalizedEventOptions) {
3422    if (!normalizedEventOptions) {
3423      return 0;
3424    }
3425  
3426    // If the browser does not support passive event listeners, the normalized
3427    // event options will be a boolean.
3428    if (normalizedEventOptions === true) {
3429      return 100;
3430    }
3431  
3432    // At this point, the browser supports passive event listeners, so we expect
3433    // the event options to be an object with possible properties of capture,
3434    // passive, and once.
3435    //
3436    // We want to consistently return the same value, regardless of the order of
3437    // these properties, so let's use binary maths to assign each property to a
3438    // bit, and then add those together (with an offset to account for the
3439    // booleans at the beginning of this function).
3440    var capture = normalizedEventOptions.capture << 0;
3441    var passive = normalizedEventOptions.passive << 1;
3442    var once = normalizedEventOptions.once << 2;
3443    return capture + passive + once;
3444  }
3445  
3446  function ensureCanMutateNextEventHandlers(eventHandlers) {
3447    if (eventHandlers.handlers === eventHandlers.nextHandlers) {
3448      // eslint-disable-next-line no-param-reassign
3449      eventHandlers.nextHandlers = eventHandlers.handlers.slice();
3450    }
3451  }
3452  
3453  function TargetEventHandlers(target) {
3454    this.target = target;
3455    this.events = {};
3456  }
3457  
3458  TargetEventHandlers.prototype.getEventHandlers = function () {
3459    function getEventHandlers(eventName, options) {
3460      var key = String(eventName) + ' ' + String(eventOptionsKey(options));
3461  
3462      if (!this.events[key]) {
3463        this.events[key] = {
3464          handlers: [],
3465          handleEvent: undefined
3466        };
3467        this.events[key].nextHandlers = this.events[key].handlers;
3468      }
3469  
3470      return this.events[key];
3471    }
3472  
3473    return getEventHandlers;
3474  }();
3475  
3476  TargetEventHandlers.prototype.handleEvent = function () {
3477    function handleEvent(eventName, options, event) {
3478      var eventHandlers = this.getEventHandlers(eventName, options);
3479      eventHandlers.handlers = eventHandlers.nextHandlers;
3480      eventHandlers.handlers.forEach(function (handler) {
3481        if (handler) {
3482          // We need to check for presence here because a handler function may
3483          // cause later handlers to get removed. This can happen if you for
3484          // instance have a waypoint that unmounts another waypoint as part of an
3485          // onEnter/onLeave handler.
3486          handler(event);
3487        }
3488      });
3489    }
3490  
3491    return handleEvent;
3492  }();
3493  
3494  TargetEventHandlers.prototype.add = function () {
3495    function add(eventName, listener, options) {
3496      var _this = this;
3497  
3498      // options has already been normalized at this point.
3499      var eventHandlers = this.getEventHandlers(eventName, options);
3500  
3501      ensureCanMutateNextEventHandlers(eventHandlers);
3502  
3503      if (eventHandlers.nextHandlers.length === 0) {
3504        eventHandlers.handleEvent = this.handleEvent.bind(this, eventName, options);
3505  
3506        this.target.addEventListener(eventName, eventHandlers.handleEvent, options);
3507      }
3508  
3509      eventHandlers.nextHandlers.push(listener);
3510  
3511      var isSubscribed = true;
3512      var unsubscribe = function () {
3513        function unsubscribe() {
3514          if (!isSubscribed) {
3515            return;
3516          }
3517  
3518          isSubscribed = false;
3519  
3520          ensureCanMutateNextEventHandlers(eventHandlers);
3521          var index = eventHandlers.nextHandlers.indexOf(listener);
3522          eventHandlers.nextHandlers.splice(index, 1);
3523  
3524          if (eventHandlers.nextHandlers.length === 0) {
3525            // All event handlers have been removed, so we want to remove the event
3526            // listener from the target node.
3527  
3528            if (_this.target) {
3529              // There can be a race condition where the target may no longer exist
3530              // when this function is called, e.g. when a React component is
3531              // unmounting. Guarding against this prevents the following error:
3532              //
3533              //   Cannot read property 'removeEventListener' of undefined
3534              _this.target.removeEventListener(eventName, eventHandlers.handleEvent, options);
3535            }
3536  
3537            eventHandlers.handleEvent = undefined;
3538          }
3539        }
3540  
3541        return unsubscribe;
3542      }();
3543      return unsubscribe;
3544    }
3545  
3546    return add;
3547  }();
3548  
3549  var EVENT_HANDLERS_KEY = '__consolidated_events_handlers__';
3550  
3551  // eslint-disable-next-line import/prefer-default-export
3552  function addEventListener(target, eventName, listener, options) {
3553    if (!target[EVENT_HANDLERS_KEY]) {
3554      // eslint-disable-next-line no-param-reassign
3555      target[EVENT_HANDLERS_KEY] = new TargetEventHandlers(target);
3556    }
3557    var normalizedEventOptions = normalizeEventOptions(options);
3558    return target[EVENT_HANDLERS_KEY].add(eventName, listener, normalizedEventOptions);
3559  }
3560  
3561  
3562  
3563  
3564  /***/ }),
3565  /* 104 */
3566  /***/ (function(module, exports, __webpack_require__) {
3567  
3568  "use strict";
3569  
3570  
3571  Object.defineProperty(exports, "__esModule", {
3572    value: true
3573  });
3574  exports['default'] = toISOMonthString;
3575  
3576  var _moment = __webpack_require__(29);
3577  
3578  var _moment2 = _interopRequireDefault(_moment);
3579  
3580  var _toMomentObject = __webpack_require__(79);
3581  
3582  var _toMomentObject2 = _interopRequireDefault(_toMomentObject);
3583  
3584  var _constants = __webpack_require__(39);
3585  
3586  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
3587  
3588  function toISOMonthString(date, currentFormat) {
3589    var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat);
3590    if (!dateObj) return null;
3591  
3592    return dateObj.format(_constants.ISO_MONTH_FORMAT);
3593  }
3594  
3595  /***/ }),
3596  /* 105 */
3597  /***/ (function(module, exports, __webpack_require__) {
3598  
3599  "use strict";
3600  
3601  
3602  Object.defineProperty(exports, "__esModule", {
3603    value: true
3604  });
3605  
3606  var _propTypes = __webpack_require__(31);
3607  
3608  var _propTypes2 = _interopRequireDefault(_propTypes);
3609  
3610  var _constants = __webpack_require__(39);
3611  
3612  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
3613  
3614  exports['default'] = _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].oneOf([_constants.START_DATE, _constants.END_DATE])]);
3615  
3616  /***/ }),
3617  /* 106 */
3618  /***/ (function(module, exports, __webpack_require__) {
3619  
3620  "use strict";
3621  
3622  
3623  Object.defineProperty(exports, "__esModule", {
3624    value: true
3625  });
3626  exports['default'] = isAfterDay;
3627  
3628  var _moment = __webpack_require__(29);
3629  
3630  var _moment2 = _interopRequireDefault(_moment);
3631  
3632  var _isBeforeDay = __webpack_require__(94);
3633  
3634  var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);
3635  
3636  var _isSameDay = __webpack_require__(78);
3637  
3638  var _isSameDay2 = _interopRequireDefault(_isSameDay);
3639  
3640  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
3641  
3642  function isAfterDay(a, b) {
3643    if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;
3644    return !(0, _isBeforeDay2['default'])(a, b) && !(0, _isSameDay2['default'])(a, b);
3645  }
3646  
3647  /***/ }),
3648  /* 107 */,
3649  /* 108 */
3650  /***/ (function(module, exports, __webpack_require__) {
3651  
3652  "use strict";
3653  
3654  
3655  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
3656  
3657  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
3658  
3659  function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
3660  
3661  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3662  
3663  function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
3664  
3665  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
3666  
3667  var hoistNonReactStatic = __webpack_require__(142);
3668  var React = __webpack_require__(27);
3669  var ReactDOM = __webpack_require__(52);
3670  
3671  module.exports = function enhanceWithClickOutside(WrappedComponent) {
3672    var componentName = WrappedComponent.displayName || WrappedComponent.name;
3673  
3674    var EnhancedComponent = function (_React$Component) {
3675      _inherits(EnhancedComponent, _React$Component);
3676  
3677      function EnhancedComponent(props) {
3678        _classCallCheck(this, EnhancedComponent);
3679  
3680        var _this = _possibleConstructorReturn(this, (EnhancedComponent.__proto__ || Object.getPrototypeOf(EnhancedComponent)).call(this, props));
3681  
3682        _this.handleClickOutside = _this.handleClickOutside.bind(_this);
3683        return _this;
3684      }
3685  
3686      _createClass(EnhancedComponent, [{
3687        key: 'componentDidMount',
3688        value: function componentDidMount() {
3689          document.addEventListener('click', this.handleClickOutside, true);
3690        }
3691      }, {
3692        key: 'componentWillUnmount',
3693        value: function componentWillUnmount() {
3694          document.removeEventListener('click', this.handleClickOutside, true);
3695        }
3696      }, {
3697        key: 'handleClickOutside',
3698        value: function handleClickOutside(e) {
3699          var domNode = this.__domNode;
3700          if ((!domNode || !domNode.contains(e.target)) && this.__wrappedInstance && typeof this.__wrappedInstance.handleClickOutside === 'function') {
3701            this.__wrappedInstance.handleClickOutside(e);
3702          }
3703        }
3704      }, {
3705        key: 'render',
3706        value: function render() {
3707          var _this2 = this;
3708  
3709          var _props = this.props,
3710              wrappedRef = _props.wrappedRef,
3711              rest = _objectWithoutProperties(_props, ['wrappedRef']);
3712  
3713          return React.createElement(WrappedComponent, _extends({}, rest, {
3714            ref: function ref(c) {
3715              _this2.__wrappedInstance = c;
3716              _this2.__domNode = ReactDOM.findDOMNode(c);
3717              wrappedRef && wrappedRef(c);
3718            }
3719          }));
3720        }
3721      }]);
3722  
3723      return EnhancedComponent;
3724    }(React.Component);
3725  
3726    EnhancedComponent.displayName = 'clickOutside(' + componentName + ')';
3727  
3728    return hoistNonReactStatic(EnhancedComponent, WrappedComponent);
3729  };
3730  
3731  /***/ }),
3732  /* 109 */,
3733  /* 110 */,
3734  /* 111 */,
3735  /* 112 */,
3736  /* 113 */,
3737  /* 114 */,
3738  /* 115 */
3739  /***/ (function(module, exports, __webpack_require__) {
3740  
3741  "use strict";
3742  
3743  
3744  var util = __webpack_require__(116);
3745  
3746  function scrollIntoView(elem, container, config) {
3747    config = config || {};
3748    // document 归一化到 window
3749    if (container.nodeType === 9) {
3750      container = util.getWindow(container);
3751    }
3752  
3753    var allowHorizontalScroll = config.allowHorizontalScroll;
3754    var onlyScrollIfNeeded = config.onlyScrollIfNeeded;
3755    var alignWithTop = config.alignWithTop;
3756    var alignWithLeft = config.alignWithLeft;
3757    var offsetTop = config.offsetTop || 0;
3758    var offsetLeft = config.offsetLeft || 0;
3759    var offsetBottom = config.offsetBottom || 0;
3760    var offsetRight = config.offsetRight || 0;
3761  
3762    allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll;
3763  
3764    var isWin = util.isWindow(container);
3765    var elemOffset = util.offset(elem);
3766    var eh = util.outerHeight(elem);
3767    var ew = util.outerWidth(elem);
3768    var containerOffset = undefined;
3769    var ch = undefined;
3770    var cw = undefined;
3771    var containerScroll = undefined;
3772    var diffTop = undefined;
3773    var diffBottom = undefined;
3774    var win = undefined;
3775    var winScroll = undefined;
3776    var ww = undefined;
3777    var wh = undefined;
3778  
3779    if (isWin) {
3780      win = container;
3781      wh = util.height(win);
3782      ww = util.width(win);
3783      winScroll = {
3784        left: util.scrollLeft(win),
3785        top: util.scrollTop(win)
3786      };
3787      // elem 相对 container 可视视窗的距离
3788      diffTop = {
3789        left: elemOffset.left - winScroll.left - offsetLeft,
3790        top: elemOffset.top - winScroll.top - offsetTop
3791      };
3792      diffBottom = {
3793        left: elemOffset.left + ew - (winScroll.left + ww) + offsetRight,
3794        top: elemOffset.top + eh - (winScroll.top + wh) + offsetBottom
3795      };
3796      containerScroll = winScroll;
3797    } else {
3798      containerOffset = util.offset(container);
3799      ch = container.clientHeight;
3800      cw = container.clientWidth;
3801      containerScroll = {
3802        left: container.scrollLeft,
3803        top: container.scrollTop
3804      };
3805      // elem 相对 container 可视视窗的距离
3806      // 注意边框, offset 是边框到根节点
3807      diffTop = {
3808        left: elemOffset.left - (containerOffset.left + (parseFloat(util.css(container, 'borderLeftWidth')) || 0)) - offsetLeft,
3809        top: elemOffset.top - (containerOffset.top + (parseFloat(util.css(container, 'borderTopWidth')) || 0)) - offsetTop
3810      };
3811      diffBottom = {
3812        left: elemOffset.left + ew - (containerOffset.left + cw + (parseFloat(util.css(container, 'borderRightWidth')) || 0)) + offsetRight,
3813        top: elemOffset.top + eh - (containerOffset.top + ch + (parseFloat(util.css(container, 'borderBottomWidth')) || 0)) + offsetBottom
3814      };
3815    }
3816  
3817    if (diffTop.top < 0 || diffBottom.top > 0) {
3818      // 强制向上
3819      if (alignWithTop === true) {
3820        util.scrollTop(container, containerScroll.top + diffTop.top);
3821      } else if (alignWithTop === false) {
3822        util.scrollTop(container, containerScroll.top + diffBottom.top);
3823      } else {
3824        // 自动调整
3825        if (diffTop.top < 0) {
3826          util.scrollTop(container, containerScroll.top + diffTop.top);
3827        } else {
3828          util.scrollTop(container, containerScroll.top + diffBottom.top);
3829        }
3830      }
3831    } else {
3832      if (!onlyScrollIfNeeded) {
3833        alignWithTop = alignWithTop === undefined ? true : !!alignWithTop;
3834        if (alignWithTop) {
3835          util.scrollTop(container, containerScroll.top + diffTop.top);
3836        } else {
3837          util.scrollTop(container, containerScroll.top + diffBottom.top);
3838        }
3839      }
3840    }
3841  
3842    if (allowHorizontalScroll) {
3843      if (diffTop.left < 0 || diffBottom.left > 0) {
3844        // 强制向上
3845        if (alignWithLeft === true) {
3846          util.scrollLeft(container, containerScroll.left + diffTop.left);
3847        } else if (alignWithLeft === false) {
3848          util.scrollLeft(container, containerScroll.left + diffBottom.left);
3849        } else {
3850          // 自动调整
3851          if (diffTop.left < 0) {
3852            util.scrollLeft(container, containerScroll.left + diffTop.left);
3853          } else {
3854            util.scrollLeft(container, containerScroll.left + diffBottom.left);
3855          }
3856        }
3857      } else {
3858        if (!onlyScrollIfNeeded) {
3859          alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft;
3860          if (alignWithLeft) {
3861            util.scrollLeft(container, containerScroll.left + diffTop.left);
3862          } else {
3863            util.scrollLeft(container, containerScroll.left + diffBottom.left);
3864          }
3865        }
3866      }
3867    }
3868  }
3869  
3870  module.exports = scrollIntoView;
3871  
3872  /***/ }),
3873  /* 116 */
3874  /***/ (function(module, exports, __webpack_require__) {
3875  
3876  "use strict";
3877  
3878  
3879  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
3880  
3881  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
3882  
3883  var RE_NUM = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source;
3884  
3885  function getClientPosition(elem) {
3886    var box = undefined;
3887    var x = undefined;
3888    var y = undefined;
3889    var doc = elem.ownerDocument;
3890    var body = doc.body;
3891    var docElem = doc && doc.documentElement;
3892    // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式
3893    box = elem.getBoundingClientRect();
3894  
3895    // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop
3896    // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确
3897    // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin
3898  
3899    x = box.left;
3900    y = box.top;
3901  
3902    // In IE, most of the time, 2 extra pixels are added to the top and left
3903    // due to the implicit 2-pixel inset border.  In IE6/7 quirks mode and
3904    // IE6 standards mode, this border can be overridden by setting the
3905    // document element's border to zero -- thus, we cannot rely on the
3906    // offset always being 2 pixels.
3907  
3908    // In quirks mode, the offset can be determined by querying the body's
3909    // clientLeft/clientTop, but in standards mode, it is found by querying
3910    // the document element's clientLeft/clientTop.  Since we already called
3911    // getClientBoundingRect we have already forced a reflow, so it is not
3912    // too expensive just to query them all.
3913  
3914    // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的
3915    // 窗口边框标准是设 documentElement ,quirks 时设置 body
3916    // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去
3917    // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置
3918    // 标准 ie 下 docElem.clientTop 就是 border-top
3919    // ie7 html 即窗口边框改变不了。永远为 2
3920    // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0
3921  
3922    x -= docElem.clientLeft || body.clientLeft || 0;
3923    y -= docElem.clientTop || body.clientTop || 0;
3924  
3925    return {
3926      left: x,
3927      top: y
3928    };
3929  }
3930  
3931  function getScroll(w, top) {
3932    var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];
3933    var method = 'scroll' + (top ? 'Top' : 'Left');
3934    if (typeof ret !== 'number') {
3935      var d = w.document;
3936      // ie6,7,8 standard mode
3937      ret = d.documentElement[method];
3938      if (typeof ret !== 'number') {
3939        // quirks mode
3940        ret = d.body[method];
3941      }
3942    }
3943    return ret;
3944  }
3945  
3946  function getScrollLeft(w) {
3947    return getScroll(w);
3948  }
3949  
3950  function getScrollTop(w) {
3951    return getScroll(w, true);
3952  }
3953  
3954  function getOffset(el) {
3955    var pos = getClientPosition(el);
3956    var doc = el.ownerDocument;
3957    var w = doc.defaultView || doc.parentWindow;
3958    pos.left += getScrollLeft(w);
3959    pos.top += getScrollTop(w);
3960    return pos;
3961  }
3962  function _getComputedStyle(elem, name, computedStyle_) {
3963    var val = '';
3964    var d = elem.ownerDocument;
3965    var computedStyle = computedStyle_ || d.defaultView.getComputedStyle(elem, null);
3966  
3967    // https://github.com/kissyteam/kissy/issues/61
3968    if (computedStyle) {
3969      val = computedStyle.getPropertyValue(name) || computedStyle[name];
3970    }
3971  
3972    return val;
3973  }
3974  
3975  var _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');
3976  var RE_POS = /^(top|right|bottom|left)$/;
3977  var CURRENT_STYLE = 'currentStyle';
3978  var RUNTIME_STYLE = 'runtimeStyle';
3979  var LEFT = 'left';
3980  var PX = 'px';
3981  
3982  function _getComputedStyleIE(elem, name) {
3983    // currentStyle maybe null
3984    // http://msdn.microsoft.com/en-us/library/ms535231.aspx
3985    var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];
3986  
3987    // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值
3988    // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19
3989    // 在 ie 下不对,需要直接用 offset 方式
3990    // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了
3991  
3992    // From the awesome hack by Dean Edwards
3993    // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
3994    // If we're not dealing with a regular pixel number
3995    // but a number that has a weird ending, we need to convert it to pixels
3996    // exclude left right for relativity
3997    if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {
3998      // Remember the original values
3999      var style = elem.style;
4000      var left = style[LEFT];
4001      var rsLeft = elem[RUNTIME_STYLE][LEFT];
4002  
4003      // prevent flashing of content
4004      elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];
4005  
4006      // Put in the new values to get a computed value out
4007      style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;
4008      ret = style.pixelLeft + PX;
4009  
4010      // Revert the changed values
4011      style[LEFT] = left;
4012  
4013      elem[RUNTIME_STYLE][LEFT] = rsLeft;
4014    }
4015    return ret === '' ? 'auto' : ret;
4016  }
4017  
4018  var getComputedStyleX = undefined;
4019  if (typeof window !== 'undefined') {
4020    getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;
4021  }
4022  
4023  function each(arr, fn) {
4024    for (var i = 0; i < arr.length; i++) {
4025      fn(arr[i]);
4026    }
4027  }
4028  
4029  function isBorderBoxFn(elem) {
4030    return getComputedStyleX(elem, 'boxSizing') === 'border-box';
4031  }
4032  
4033  var BOX_MODELS = ['margin', 'border', 'padding'];
4034  var CONTENT_INDEX = -1;
4035  var PADDING_INDEX = 2;
4036  var BORDER_INDEX = 1;
4037  var MARGIN_INDEX = 0;
4038  
4039  function swap(elem, options, callback) {
4040    var old = {};
4041    var style = elem.style;
4042    var name = undefined;
4043  
4044    // Remember the old values, and insert the new ones
4045    for (name in options) {
4046      if (options.hasOwnProperty(name)) {
4047        old[name] = style[name];
4048        style[name] = options[name];
4049      }
4050    }
4051  
4052    callback.call(elem);
4053  
4054    // Revert the old values
4055    for (name in options) {
4056      if (options.hasOwnProperty(name)) {
4057        style[name] = old[name];
4058      }
4059    }
4060  }
4061  
4062  function getPBMWidth(elem, props, which) {
4063    var value = 0;
4064    var prop = undefined;
4065    var j = undefined;
4066    var i = undefined;
4067    for (j = 0; j < props.length; j++) {
4068      prop = props[j];
4069      if (prop) {
4070        for (i = 0; i < which.length; i++) {
4071          var cssProp = undefined;
4072          if (prop === 'border') {
4073            cssProp = prop + which[i] + 'Width';
4074          } else {
4075            cssProp = prop + which[i];
4076          }
4077          value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;
4078        }
4079      }
4080    }
4081    return value;
4082  }
4083  
4084  /**
4085   * A crude way of determining if an object is a window
4086   * @member util
4087   */
4088  function isWindow(obj) {
4089    // must use == for ie8
4090    /* eslint eqeqeq:0 */
4091    return obj != null && obj == obj.window;
4092  }
4093  
4094  var domUtils = {};
4095  
4096  each(['Width', 'Height'], function (name) {
4097    domUtils['doc' + name] = function (refWin) {
4098      var d = refWin.document;
4099      return Math.max(
4100      // firefox chrome documentElement.scrollHeight< body.scrollHeight
4101      // ie standard mode : documentElement.scrollHeight> body.scrollHeight
4102      d.documentElement['scroll' + name],
4103      // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?
4104      d.body['scroll' + name], domUtils['viewport' + name](d));
4105    };
4106  
4107    domUtils['viewport' + name] = function (win) {
4108      // pc browser includes scrollbar in window.innerWidth
4109      var prop = 'client' + name;
4110      var doc = win.document;
4111      var body = doc.body;
4112      var documentElement = doc.documentElement;
4113      var documentElementProp = documentElement[prop];
4114      // 标准模式取 documentElement
4115      // backcompat 取 body
4116      return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;
4117    };
4118  });
4119  
4120  /*
4121   得到元素的大小信息
4122   @param elem
4123   @param name
4124   @param {String} [extra]  'padding' : (css width) + padding
4125   'border' : (css width) + padding + border
4126   'margin' : (css width) + padding + border + margin
4127   */
4128  function getWH(elem, name, extra) {
4129    if (isWindow(elem)) {
4130      return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);
4131    } else if (elem.nodeType === 9) {
4132      return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);
4133    }
4134    var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
4135    var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;
4136    var computedStyle = getComputedStyleX(elem);
4137    var isBorderBox = isBorderBoxFn(elem, computedStyle);
4138    var cssBoxValue = 0;
4139    if (borderBoxValue == null || borderBoxValue <= 0) {
4140      borderBoxValue = undefined;
4141      // Fall back to computed then un computed css if necessary
4142      cssBoxValue = getComputedStyleX(elem, name);
4143      if (cssBoxValue == null || Number(cssBoxValue) < 0) {
4144        cssBoxValue = elem.style[name] || 0;
4145      }
4146      // Normalize '', auto, and prepare for extra
4147      cssBoxValue = parseFloat(cssBoxValue) || 0;
4148    }
4149    if (extra === undefined) {
4150      extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;
4151    }
4152    var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;
4153    var val = borderBoxValue || cssBoxValue;
4154    if (extra === CONTENT_INDEX) {
4155      if (borderBoxValueOrIsBorderBox) {
4156        return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle);
4157      }
4158      return cssBoxValue;
4159    }
4160    if (borderBoxValueOrIsBorderBox) {
4161      var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle);
4162      return val + (extra === BORDER_INDEX ? 0 : padding);
4163    }
4164    return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);
4165  }
4166  
4167  var cssShow = {
4168    position: 'absolute',
4169    visibility: 'hidden',
4170    display: 'block'
4171  };
4172  
4173  // fix #119 : https://github.com/kissyteam/kissy/issues/119
4174  function getWHIgnoreDisplay(elem) {
4175    var val = undefined;
4176    var args = arguments;
4177    // in case elem is window
4178    // elem.offsetWidth === undefined
4179    if (elem.offsetWidth !== 0) {
4180      val = getWH.apply(undefined, args);
4181    } else {
4182      swap(elem, cssShow, function () {
4183        val = getWH.apply(undefined, args);
4184      });
4185    }
4186    return val;
4187  }
4188  
4189  function css(el, name, v) {
4190    var value = v;
4191    if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {
4192      for (var i in name) {
4193        if (name.hasOwnProperty(i)) {
4194          css(el, i, name[i]);
4195        }
4196      }
4197      return undefined;
4198    }
4199    if (typeof value !== 'undefined') {
4200      if (typeof value === 'number') {
4201        value += 'px';
4202      }
4203      el.style[name] = value;
4204      return undefined;
4205    }
4206    return getComputedStyleX(el, name);
4207  }
4208  
4209  each(['width', 'height'], function (name) {
4210    var first = name.charAt(0).toUpperCase() + name.slice(1);
4211    domUtils['outer' + first] = function (el, includeMargin) {
4212      return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);
4213    };
4214    var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
4215  
4216    domUtils[name] = function (elem, val) {
4217      if (val !== undefined) {
4218        if (elem) {
4219          var computedStyle = getComputedStyleX(elem);
4220          var isBorderBox = isBorderBoxFn(elem);
4221          if (isBorderBox) {
4222            val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);
4223          }
4224          return css(elem, name, val);
4225        }
4226        return undefined;
4227      }
4228      return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);
4229    };
4230  });
4231  
4232  // 设置 elem 相对 elem.ownerDocument 的坐标
4233  function setOffset(elem, offset) {
4234    // set position first, in-case top/left are set even on static elem
4235    if (css(elem, 'position') === 'static') {
4236      elem.style.position = 'relative';
4237    }
4238  
4239    var old = getOffset(elem);
4240    var ret = {};
4241    var current = undefined;
4242    var key = undefined;
4243  
4244    for (key in offset) {
4245      if (offset.hasOwnProperty(key)) {
4246        current = parseFloat(css(elem, key)) || 0;
4247        ret[key] = current + offset[key] - old[key];
4248      }
4249    }
4250    css(elem, ret);
4251  }
4252  
4253  module.exports = _extends({
4254    getWindow: function getWindow(node) {
4255      var doc = node.ownerDocument || node;
4256      return doc.defaultView || doc.parentWindow;
4257    },
4258    offset: function offset(el, value) {
4259      if (typeof value !== 'undefined') {
4260        setOffset(el, value);
4261      } else {
4262        return getOffset(el);
4263      }
4264    },
4265  
4266    isWindow: isWindow,
4267    each: each,
4268    css: css,
4269    clone: function clone(obj) {
4270      var ret = {};
4271      for (var i in obj) {
4272        if (obj.hasOwnProperty(i)) {
4273          ret[i] = obj[i];
4274        }
4275      }
4276      var overflow = obj.overflow;
4277      if (overflow) {
4278        for (var i in obj) {
4279          if (obj.hasOwnProperty(i)) {
4280            ret.overflow[i] = obj.overflow[i];
4281          }
4282        }
4283      }
4284      return ret;
4285    },
4286    scrollLeft: function scrollLeft(w, v) {
4287      if (isWindow(w)) {
4288        if (v === undefined) {
4289          return getScrollLeft(w);
4290        }
4291        window.scrollTo(v, getScrollTop(w));
4292      } else {
4293        if (v === undefined) {
4294          return w.scrollLeft;
4295        }
4296        w.scrollLeft = v;
4297      }
4298    },
4299    scrollTop: function scrollTop(w, v) {
4300      if (isWindow(w)) {
4301        if (v === undefined) {
4302          return getScrollTop(w);
4303        }
4304        window.scrollTo(getScrollLeft(w), v);
4305      } else {
4306        if (v === undefined) {
4307          return w.scrollTop;
4308        }
4309        w.scrollTop = v;
4310      }
4311    },
4312  
4313    viewportWidth: 0,
4314    viewportHeight: 0
4315  }, domUtils);
4316  
4317  /***/ }),
4318  /* 117 */,
4319  /* 118 */,
4320  /* 119 */,
4321  /* 120 */,
4322  /* 121 */,
4323  /* 122 */,
4324  /* 123 */
4325  /***/ (function(module, exports, __webpack_require__) {
4326  
4327  "use strict";
4328  
4329  
4330  var slice = Array.prototype.slice;
4331  var isArgs = __webpack_require__(143);
4332  
4333  var origKeys = Object.keys;
4334  var keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__(260);
4335  
4336  var originalKeys = Object.keys;
4337  
4338  keysShim.shim = function shimObjectKeys() {
4339      if (Object.keys) {
4340          var keysWorksWithArguments = (function () {
4341              // Safari 5.0 bug
4342              var args = Object.keys(arguments);
4343              return args && args.length === arguments.length;
4344          }(1, 2));
4345          if (!keysWorksWithArguments) {
4346              Object.keys = function keys(object) { // eslint-disable-line func-name-matching
4347                  if (isArgs(object)) {
4348                      return originalKeys(slice.call(object));
4349                  }
4350                  return originalKeys(object);
4351              };
4352          }
4353      } else {
4354          Object.keys = keysShim;
4355      }
4356      return Object.keys || keysShim;
4357  };
4358  
4359  module.exports = keysShim;
4360  
4361  
4362  /***/ }),
4363  /* 124 */
4364  /***/ (function(module, exports, __webpack_require__) {
4365  
4366  "use strict";
4367  
4368  
4369  var fnToStr = Function.prototype.toString;
4370  
4371  var constructorRegex = /^\s*class\b/;
4372  var isES6ClassFn = function isES6ClassFunction(value) {
4373      try {
4374          var fnStr = fnToStr.call(value);
4375          return constructorRegex.test(fnStr);
4376      } catch (e) {
4377          return false; // not a function
4378      }
4379  };
4380  
4381  var tryFunctionObject = function tryFunctionToStr(value) {
4382      try {
4383          if (isES6ClassFn(value)) { return false; }
4384          fnToStr.call(value);
4385          return true;
4386      } catch (e) {
4387          return false;
4388      }
4389  };
4390  var toStr = Object.prototype.toString;
4391  var fnClass = '[object Function]';
4392  var genClass = '[object GeneratorFunction]';
4393  var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
4394  
4395  module.exports = function isCallable(value) {
4396      if (!value) { return false; }
4397      if (typeof value !== 'function' && typeof value !== 'object') { return false; }
4398      if (typeof value === 'function' && !value.prototype) { return true; }
4399      if (hasToStringTag) { return tryFunctionObject(value); }
4400      if (isES6ClassFn(value)) { return false; }
4401      var strClass = toStr.call(value);
4402      return strClass === fnClass || strClass === genClass;
4403  };
4404  
4405  
4406  /***/ }),
4407  /* 125 */
4408  /***/ (function(module, exports, __webpack_require__) {
4409  
4410  var bind = __webpack_require__(73);
4411  var has = bind.call(Function.call, Object.prototype.hasOwnProperty);
4412  
4413  var $assign = Object.assign;
4414  
4415  module.exports = function assign(target, source) {
4416      if ($assign) {
4417          return $assign(target, source);
4418      }
4419  
4420      for (var key in source) {
4421          if (has(source, key)) {
4422              target[key] = source[key];
4423          }
4424      }
4425      return target;
4426  };
4427  
4428  
4429  /***/ }),
4430  /* 126 */
4431  /***/ (function(module, exports, __webpack_require__) {
4432  
4433  "use strict";
4434  
4435  
4436  Object.defineProperty(exports, "__esModule", {
4437    value: true
4438  });
4439  exports.PureCalendarDay = undefined;
4440  
4441  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
4442  
4443  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
4444  
4445  var _object = __webpack_require__(46);
4446  
4447  var _object2 = _interopRequireDefault(_object);
4448  
4449  var _react = __webpack_require__(27);
4450  
4451  var _react2 = _interopRequireDefault(_react);
4452  
4453  var _propTypes = __webpack_require__(31);
4454  
4455  var _propTypes2 = _interopRequireDefault(_propTypes);
4456  
4457  var _reactAddonsShallowCompare = __webpack_require__(77);
4458  
4459  var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
4460  
4461  var _reactMomentProptypes = __webpack_require__(64);
4462  
4463  var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
4464  
4465  var _airbnbPropTypes = __webpack_require__(43);
4466  
4467  var _reactWithStyles = __webpack_require__(55);
4468  
4469  var _moment = __webpack_require__(29);
4470  
4471  var _moment2 = _interopRequireDefault(_moment);
4472  
4473  var _defaultPhrases = __webpack_require__(47);
4474  
4475  var _getPhrasePropTypes = __webpack_require__(51);
4476  
4477  var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
4478  
4479  var _getCalendarDaySettings = __webpack_require__(159);
4480  
4481  var _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings);
4482  
4483  var _ModifiersShape = __webpack_require__(101);
4484  
4485  var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
4486  
4487  var _constants = __webpack_require__(39);
4488  
4489  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
4490  
4491  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4492  
4493  function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
4494  
4495  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
4496  
4497  var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
4498    day: _reactMomentProptypes2['default'].momentObj,
4499    daySize: _airbnbPropTypes.nonNegativeInteger,
4500    isOutsideDay: _propTypes2['default'].bool,
4501    modifiers: _ModifiersShape2['default'],
4502    isFocused: _propTypes2['default'].bool,
4503    tabIndex: _propTypes2['default'].oneOf([0, -1]),
4504    onDayClick: _propTypes2['default'].func,
4505    onDayMouseEnter: _propTypes2['default'].func,
4506    onDayMouseLeave: _propTypes2['default'].func,
4507    renderDayContents: _propTypes2['default'].func,
4508    ariaLabelFormat: _propTypes2['default'].string,
4509  
4510    // internationalization
4511    phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases))
4512  }));
4513  
4514  var defaultProps = {
4515    day: (0, _moment2['default'])(),
4516    daySize: _constants.DAY_SIZE,
4517    isOutsideDay: false,
4518    modifiers: new Set(),
4519    isFocused: false,
4520    tabIndex: -1,
4521    onDayClick: function () {
4522      function onDayClick() {}
4523  
4524      return onDayClick;
4525    }(),
4526    onDayMouseEnter: function () {
4527      function onDayMouseEnter() {}
4528  
4529      return onDayMouseEnter;
4530    }(),
4531    onDayMouseLeave: function () {
4532      function onDayMouseLeave() {}
4533  
4534      return onDayMouseLeave;
4535    }(),
4536  
4537    renderDayContents: null,
4538    ariaLabelFormat: 'dddd, LL',
4539  
4540    // internationalization
4541    phrases: _defaultPhrases.CalendarDayPhrases
4542  };
4543  
4544  var CalendarDay = function (_React$Component) {
4545    _inherits(CalendarDay, _React$Component);
4546  
4547    function CalendarDay() {
4548      var _ref;
4549  
4550      _classCallCheck(this, CalendarDay);
4551  
4552      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
4553        args[_key] = arguments[_key];
4554      }
4555  
4556      var _this = _possibleConstructorReturn(this, (_ref = CalendarDay.__proto__ || Object.getPrototypeOf(CalendarDay)).call.apply(_ref, [this].concat(args)));
4557  
4558      _this.setButtonRef = _this.setButtonRef.bind(_this);
4559      return _this;
4560    }
4561  
4562    _createClass(CalendarDay, [{
4563      key: 'shouldComponentUpdate',
4564      value: function () {
4565        function shouldComponentUpdate(nextProps, nextState) {
4566          return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
4567        }
4568  
4569        return shouldComponentUpdate;
4570      }()
4571    }, {
4572      key: 'componentDidUpdate',
4573      value: function () {
4574        function componentDidUpdate(prevProps) {
4575          var _props = this.props,
4576              isFocused = _props.isFocused,
4577              tabIndex = _props.tabIndex;
4578  
4579          if (tabIndex === 0) {
4580            if (isFocused || tabIndex !== prevProps.tabIndex) {
4581              this.buttonRef.focus();
4582            }
4583          }
4584        }
4585  
4586        return componentDidUpdate;
4587      }()
4588    }, {
4589      key: 'onDayClick',
4590      value: function () {
4591        function onDayClick(day, e) {
4592          var onDayClick = this.props.onDayClick;
4593  
4594          onDayClick(day, e);
4595        }
4596  
4597        return onDayClick;
4598      }()
4599    }, {
4600      key: 'onDayMouseEnter',
4601      value: function () {
4602        function onDayMouseEnter(day, e) {
4603          var onDayMouseEnter = this.props.onDayMouseEnter;
4604  
4605          onDayMouseEnter(day, e);
4606        }
4607  
4608        return onDayMouseEnter;
4609      }()
4610    }, {
4611      key: 'onDayMouseLeave',
4612      value: function () {
4613        function onDayMouseLeave(day, e) {
4614          var onDayMouseLeave = this.props.onDayMouseLeave;
4615  
4616          onDayMouseLeave(day, e);
4617        }
4618  
4619        return onDayMouseLeave;
4620      }()
4621    }, {
4622      key: 'onKeyDown',
4623      value: function () {
4624        function onKeyDown(day, e) {
4625          var onDayClick = this.props.onDayClick;
4626          var key = e.key;
4627  
4628          if (key === 'Enter' || key === ' ') {
4629            onDayClick(day, e);
4630          }
4631        }
4632  
4633        return onKeyDown;
4634      }()
4635    }, {
4636      key: 'setButtonRef',
4637      value: function () {
4638        function setButtonRef(ref) {
4639          this.buttonRef = ref;
4640        }
4641  
4642        return setButtonRef;
4643      }()
4644    }, {
4645      key: 'render',
4646      value: function () {
4647        function render() {
4648          var _this2 = this;
4649  
4650          var _props2 = this.props,
4651              day = _props2.day,
4652              ariaLabelFormat = _props2.ariaLabelFormat,
4653              daySize = _props2.daySize,
4654              isOutsideDay = _props2.isOutsideDay,
4655              modifiers = _props2.modifiers,
4656              renderDayContents = _props2.renderDayContents,
4657              tabIndex = _props2.tabIndex,
4658              styles = _props2.styles,
4659              phrases = _props2.phrases;
4660  
4661  
4662          if (!day) return _react2['default'].createElement('td', null);
4663  
4664          var _getCalendarDaySettin = (0, _getCalendarDaySettings2['default'])(day, ariaLabelFormat, daySize, modifiers, phrases),
4665              daySizeStyles = _getCalendarDaySettin.daySizeStyles,
4666              useDefaultCursor = _getCalendarDaySettin.useDefaultCursor,
4667              selected = _getCalendarDaySettin.selected,
4668              hoveredSpan = _getCalendarDaySettin.hoveredSpan,
4669              isOutsideRange = _getCalendarDaySettin.isOutsideRange,
4670              ariaLabel = _getCalendarDaySettin.ariaLabel;
4671  
4672          return _react2['default'].createElement(
4673            'td',
4674            _extends({}, (0, _reactWithStyles.css)(styles.CalendarDay, useDefaultCursor && styles.CalendarDay__defaultCursor, styles.CalendarDay__default, isOutsideDay && styles.CalendarDay__outside, modifiers.has('today') && styles.CalendarDay__today, modifiers.has('first-day-of-week') && styles.CalendarDay__firstDayOfWeek, modifiers.has('last-day-of-week') && styles.CalendarDay__lastDayOfWeek, modifiers.has('hovered-offset') && styles.CalendarDay__hovered_offset, modifiers.has('highlighted-calendar') && styles.CalendarDay__highlighted_calendar, modifiers.has('blocked-minimum-nights') && styles.CalendarDay__blocked_minimum_nights, modifiers.has('blocked-calendar') && styles.CalendarDay__blocked_calendar, hoveredSpan && styles.CalendarDay__hovered_span, modifiers.has('selected-span') && styles.CalendarDay__selected_span, modifiers.has('last-in-range') && styles.CalendarDay__last_in_range, modifiers.has('selected-start') && styles.CalendarDay__selected_start, modifiers.has('selected-end') && styles.CalendarDay__selected_end, selected && styles.CalendarDay__selected, isOutsideRange && styles.CalendarDay__blocked_out_of_range, daySizeStyles), {
4675              role: 'button' // eslint-disable-line jsx-a11y/no-noninteractive-element-to-interactive-role
4676              , ref: this.setButtonRef,
4677              'aria-label': ariaLabel,
4678              onMouseEnter: function () {
4679                function onMouseEnter(e) {
4680                  _this2.onDayMouseEnter(day, e);
4681                }
4682  
4683                return onMouseEnter;
4684              }(),
4685              onMouseLeave: function () {
4686                function onMouseLeave(e) {
4687                  _this2.onDayMouseLeave(day, e);
4688                }
4689  
4690                return onMouseLeave;
4691              }(),
4692              onMouseUp: function () {
4693                function onMouseUp(e) {
4694                  e.currentTarget.blur();
4695                }
4696  
4697                return onMouseUp;
4698              }(),
4699              onClick: function () {
4700                function onClick(e) {
4701                  _this2.onDayClick(day, e);
4702                }
4703  
4704                return onClick;
4705              }(),
4706              onKeyDown: function () {
4707                function onKeyDown(e) {
4708                  _this2.onKeyDown(day, e);
4709                }
4710  
4711                return onKeyDown;
4712              }(),
4713              tabIndex: tabIndex
4714            }),
4715            renderDayContents ? renderDayContents(day, modifiers) : day.format('D')
4716          );
4717        }
4718  
4719        return render;
4720      }()
4721    }]);
4722  
4723    return CalendarDay;
4724  }(_react2['default'].Component);
4725  
4726  CalendarDay.propTypes = propTypes;
4727  CalendarDay.defaultProps = defaultProps;
4728  
4729  exports.PureCalendarDay = CalendarDay;
4730  exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {
4731    var _ref2$reactDates = _ref2.reactDates,
4732        color = _ref2$reactDates.color,
4733        font = _ref2$reactDates.font;
4734    return {
4735      CalendarDay: {
4736        boxSizing: 'border-box',
4737        cursor: 'pointer',
4738        fontSize: font.size,
4739        textAlign: 'center',
4740  
4741        ':active': {
4742          outline: 0
4743        }
4744      },
4745  
4746      CalendarDay__defaultCursor: {
4747        cursor: 'default'
4748      },
4749  
4750      CalendarDay__default: {
4751        border: '1px solid ' + String(color.core.borderLight),
4752        color: color.text,
4753        background: color.background,
4754  
4755        ':hover': {
4756          background: color.core.borderLight,
4757          border: '1px double ' + String(color.core.borderLight),
4758          color: 'inherit'
4759        }
4760      },
4761  
4762      CalendarDay__hovered_offset: {
4763        background: color.core.borderBright,
4764        border: '1px double ' + String(color.core.borderLight),
4765        color: 'inherit'
4766      },
4767  
4768      CalendarDay__outside: {
4769        border: 0,
4770        background: color.outside.backgroundColor,
4771        color: color.outside.color,
4772  
4773        ':hover': {
4774          border: 0
4775        }
4776      },
4777  
4778      CalendarDay__blocked_minimum_nights: {
4779        background: color.minimumNights.backgroundColor,
4780        border: '1px solid ' + String(color.minimumNights.borderColor),
4781        color: color.minimumNights.color,
4782  
4783        ':hover': {
4784          background: color.minimumNights.backgroundColor_hover,
4785          color: color.minimumNights.color_active
4786        },
4787  
4788        ':active': {
4789          background: color.minimumNights.backgroundColor_active,
4790          color: color.minimumNights.color_active
4791        }
4792      },
4793  
4794      CalendarDay__highlighted_calendar: {
4795        background: color.highlighted.backgroundColor,
4796        color: color.highlighted.color,
4797  
4798        ':hover': {
4799          background: color.highlighted.backgroundColor_hover,
4800          color: color.highlighted.color_active
4801        },
4802  
4803        ':active': {
4804          background: color.highlighted.backgroundColor_active,
4805          color: color.highlighted.color_active
4806        }
4807      },
4808  
4809      CalendarDay__selected_span: {
4810        background: color.selectedSpan.backgroundColor,
4811        border: '1px solid ' + String(color.selectedSpan.borderColor),
4812        color: color.selectedSpan.color,
4813  
4814        ':hover': {
4815          background: color.selectedSpan.backgroundColor_hover,
4816          border: '1px solid ' + String(color.selectedSpan.borderColor),
4817          color: color.selectedSpan.color_active
4818        },
4819  
4820        ':active': {
4821          background: color.selectedSpan.backgroundColor_active,
4822          border: '1px solid ' + String(color.selectedSpan.borderColor),
4823          color: color.selectedSpan.color_active
4824        }
4825      },
4826  
4827      CalendarDay__last_in_range: {
4828        borderRight: color.core.primary
4829      },
4830  
4831      CalendarDay__selected: {
4832        background: color.selected.backgroundColor,
4833        border: '1px solid ' + String(color.selected.borderColor),
4834        color: color.selected.color,
4835  
4836        ':hover': {
4837          background: color.selected.backgroundColor_hover,
4838          border: '1px solid ' + String(color.selected.borderColor),
4839          color: color.selected.color_active
4840        },
4841  
4842        ':active': {
4843          background: color.selected.backgroundColor_active,
4844          border: '1px solid ' + String(color.selected.borderColor),
4845          color: color.selected.color_active
4846        }
4847      },
4848  
4849      CalendarDay__hovered_span: {
4850        background: color.hoveredSpan.backgroundColor,
4851        border: '1px solid ' + String(color.hoveredSpan.borderColor),
4852        color: color.hoveredSpan.color,
4853  
4854        ':hover': {
4855          background: color.hoveredSpan.backgroundColor_hover,
4856          border: '1px solid ' + String(color.hoveredSpan.borderColor),
4857          color: color.hoveredSpan.color_active
4858        },
4859  
4860        ':active': {
4861          background: color.hoveredSpan.backgroundColor_active,
4862          border: '1px solid ' + String(color.hoveredSpan.borderColor),
4863          color: color.hoveredSpan.color_active
4864        }
4865      },
4866  
4867      CalendarDay__blocked_calendar: {
4868        background: color.blocked_calendar.backgroundColor,
4869        border: '1px solid ' + String(color.blocked_calendar.borderColor),
4870        color: color.blocked_calendar.color,
4871  
4872        ':hover': {
4873          background: color.blocked_calendar.backgroundColor_hover,
4874          border: '1px solid ' + String(color.blocked_calendar.borderColor),
4875          color: color.blocked_calendar.color_active
4876        },
4877  
4878        ':active': {
4879          background: color.blocked_calendar.backgroundColor_active,
4880          border: '1px solid ' + String(color.blocked_calendar.borderColor),
4881          color: color.blocked_calendar.color_active
4882        }
4883      },
4884  
4885      CalendarDay__blocked_out_of_range: {
4886        background: color.blocked_out_of_range.backgroundColor,
4887        border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
4888        color: color.blocked_out_of_range.color,
4889  
4890        ':hover': {
4891          background: color.blocked_out_of_range.backgroundColor_hover,
4892          border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
4893          color: color.blocked_out_of_range.color_active
4894        },
4895  
4896        ':active': {
4897          background: color.blocked_out_of_range.backgroundColor_active,
4898          border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
4899          color: color.blocked_out_of_range.color_active
4900        }
4901      },
4902  
4903      CalendarDay__selected_start: {},
4904      CalendarDay__selected_end: {},
4905      CalendarDay__today: {},
4906      CalendarDay__firstDayOfWeek: {},
4907      CalendarDay__lastDayOfWeek: {}
4908    };
4909  })(CalendarDay);
4910  
4911  /***/ }),
4912  /* 127 */
4913  /***/ (function(module, exports, __webpack_require__) {
4914  
4915  // eslint-disable-next-line import/no-unresolved
4916  module.exports = __webpack_require__(297);
4917  
4918  
4919  /***/ }),
4920  /* 128 */
4921  /***/ (function(module, exports, __webpack_require__) {
4922  
4923  "use strict";
4924  
4925  
4926  var define = __webpack_require__(63);
4927  
4928  var implementation = __webpack_require__(165);
4929  var getPolyfill = __webpack_require__(166);
4930  var shim = __webpack_require__(299);
4931  
4932  var polyfill = getPolyfill();
4933  
4934  define(polyfill, {
4935      getPolyfill: getPolyfill,
4936      implementation: implementation,
4937      shim: shim
4938  });
4939  
4940  module.exports = polyfill;
4941  
4942  
4943  /***/ }),
4944  /* 129 */
4945  /***/ (function(module, exports, __webpack_require__) {
4946  
4947  "use strict";
4948  
4949  
4950  Object.defineProperty(exports, "__esModule", {
4951    value: true
4952  });
4953  exports['default'] = getInputHeight;
4954  /* eslint-disable camelcase */
4955  
4956  function getPadding(vertical, top, bottom) {
4957    var isTopDefined = typeof top === 'number';
4958    var isBottomDefined = typeof bottom === 'number';
4959    var isVerticalDefined = typeof vertical === 'number';
4960  
4961    if (isTopDefined && isBottomDefined) {
4962      return top + bottom;
4963    }
4964  
4965    if (isTopDefined && isVerticalDefined) {
4966      return top + vertical;
4967    }
4968  
4969    if (isTopDefined) {
4970      return top;
4971    }
4972  
4973    if (isBottomDefined && isVerticalDefined) {
4974      return bottom + vertical;
4975    }
4976  
4977    if (isBottomDefined) {
4978      return bottom;
4979    }
4980  
4981    if (isVerticalDefined) {
4982      return 2 * vertical;
4983    }
4984  
4985    return 0;
4986  }
4987  
4988  function getInputHeight(_ref, small) {
4989    var _ref$font$input = _ref.font.input,
4990        lineHeight = _ref$font$input.lineHeight,
4991        lineHeight_small = _ref$font$input.lineHeight_small,
4992        _ref$spacing = _ref.spacing,
4993        inputPadding = _ref$spacing.inputPadding,
4994        displayTextPaddingVertical = _ref$spacing.displayTextPaddingVertical,
4995        displayTextPaddingTop = _ref$spacing.displayTextPaddingTop,
4996        displayTextPaddingBottom = _ref$spacing.displayTextPaddingBottom,
4997        displayTextPaddingVertical_small = _ref$spacing.displayTextPaddingVertical_small,
4998        displayTextPaddingTop_small = _ref$spacing.displayTextPaddingTop_small,
4999        displayTextPaddingBottom_small = _ref$spacing.displayTextPaddingBottom_small;
5000  
5001    var calcLineHeight = small ? lineHeight_small : lineHeight;
5002  
5003    var padding = small ? getPadding(displayTextPaddingVertical_small, displayTextPaddingTop_small, displayTextPaddingBottom_small) : getPadding(displayTextPaddingVertical, displayTextPaddingTop, displayTextPaddingBottom);
5004  
5005    return parseInt(calcLineHeight, 10) + 2 * inputPadding + padding;
5006  }
5007  
5008  /***/ }),
5009  /* 130 */
5010  /***/ (function(module, exports) {
5011  
5012  /**
5013   * Checks if `value` is the
5014   * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
5015   * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
5016   *
5017   * @static
5018   * @memberOf _
5019   * @since 0.1.0
5020   * @category Lang
5021   * @param {*} value The value to check.
5022   * @returns {boolean} Returns `true` if `value` is an object, else `false`.
5023   * @example
5024   *
5025   * _.isObject({});
5026   * // => true
5027   *
5028   * _.isObject([1, 2, 3]);
5029   * // => true
5030   *
5031   * _.isObject(_.noop);
5032   * // => true
5033   *
5034   * _.isObject(null);
5035   * // => false
5036   */
5037  function isObject(value) {
5038    var type = typeof value;
5039    return value != null && (type == 'object' || type == 'function');
5040  }
5041  
5042  module.exports = isObject;
5043  
5044  
5045  /***/ }),
5046  /* 131 */
5047  /***/ (function(module, exports, __webpack_require__) {
5048  
5049  "use strict";
5050  
5051  
5052  Object.defineProperty(exports, "__esModule", {
5053    value: true
5054  });
5055  exports['default'] = toLocalizedDateString;
5056  
5057  var _moment = __webpack_require__(29);
5058  
5059  var _moment2 = _interopRequireDefault(_moment);
5060  
5061  var _toMomentObject = __webpack_require__(79);
5062  
5063  var _toMomentObject2 = _interopRequireDefault(_toMomentObject);
5064  
5065  var _constants = __webpack_require__(39);
5066  
5067  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5068  
5069  function toLocalizedDateString(date, currentFormat) {
5070    var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat);
5071    if (!dateObj) return null;
5072  
5073    return dateObj.format(_constants.DISPLAY_FORMAT);
5074  }
5075  
5076  /***/ }),
5077  /* 132 */
5078  /***/ (function(module, exports, __webpack_require__) {
5079  
5080  "use strict";
5081  
5082  
5083  Object.defineProperty(exports, "__esModule", {
5084    value: true
5085  });
5086  exports['default'] = isDayVisible;
5087  
5088  var _isBeforeDay = __webpack_require__(94);
5089  
5090  var _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);
5091  
5092  var _isAfterDay = __webpack_require__(106);
5093  
5094  var _isAfterDay2 = _interopRequireDefault(_isAfterDay);
5095  
5096  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5097  
5098  function isDayVisible(day, month, numberOfMonths, enableOutsideDays) {
5099    var firstDayOfFirstMonth = month.clone().startOf('month');
5100    if (enableOutsideDays) firstDayOfFirstMonth = firstDayOfFirstMonth.startOf('week');
5101    if ((0, _isBeforeDay2['default'])(day, firstDayOfFirstMonth)) return false;
5102  
5103    var lastDayOfLastMonth = month.clone().add(numberOfMonths - 1, 'months').endOf('month');
5104    if (enableOutsideDays) lastDayOfLastMonth = lastDayOfLastMonth.endOf('week');
5105    return !(0, _isAfterDay2['default'])(day, lastDayOfLastMonth);
5106  }
5107  
5108  /***/ }),
5109  /* 133 */
5110  /***/ (function(module, exports, __webpack_require__) {
5111  
5112  "use strict";
5113  
5114  
5115  Object.defineProperty(exports, "__esModule", {
5116    value: true
5117  });
5118  exports.PureDayPicker = exports.defaultProps = undefined;
5119  
5120  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
5121  
5122  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
5123  
5124  var _object = __webpack_require__(46);
5125  
5126  var _object2 = _interopRequireDefault(_object);
5127  
5128  var _react = __webpack_require__(27);
5129  
5130  var _react2 = _interopRequireDefault(_react);
5131  
5132  var _propTypes = __webpack_require__(31);
5133  
5134  var _propTypes2 = _interopRequireDefault(_propTypes);
5135  
5136  var _reactAddonsShallowCompare = __webpack_require__(77);
5137  
5138  var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
5139  
5140  var _airbnbPropTypes = __webpack_require__(43);
5141  
5142  var _reactWithStyles = __webpack_require__(55);
5143  
5144  var _moment = __webpack_require__(29);
5145  
5146  var _moment2 = _interopRequireDefault(_moment);
5147  
5148  var _throttle = __webpack_require__(179);
5149  
5150  var _throttle2 = _interopRequireDefault(_throttle);
5151  
5152  var _isTouchDevice = __webpack_require__(81);
5153  
5154  var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);
5155  
5156  var _reactOutsideClickHandler = __webpack_require__(127);
5157  
5158  var _reactOutsideClickHandler2 = _interopRequireDefault(_reactOutsideClickHandler);
5159  
5160  var _defaultPhrases = __webpack_require__(47);
5161  
5162  var _getPhrasePropTypes = __webpack_require__(51);
5163  
5164  var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
5165  
5166  var _CalendarMonthGrid = __webpack_require__(162);
5167  
5168  var _CalendarMonthGrid2 = _interopRequireDefault(_CalendarMonthGrid);
5169  
5170  var _DayPickerNavigation = __webpack_require__(312);
5171  
5172  var _DayPickerNavigation2 = _interopRequireDefault(_DayPickerNavigation);
5173  
5174  var _DayPickerKeyboardShortcuts = __webpack_require__(315);
5175  
5176  var _DayPickerKeyboardShortcuts2 = _interopRequireDefault(_DayPickerKeyboardShortcuts);
5177  
5178  var _getNumberOfCalendarMonthWeeks = __webpack_require__(317);
5179  
5180  var _getNumberOfCalendarMonthWeeks2 = _interopRequireDefault(_getNumberOfCalendarMonthWeeks);
5181  
5182  var _getCalendarMonthWidth = __webpack_require__(163);
5183  
5184  var _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth);
5185  
5186  var _calculateDimension = __webpack_require__(161);
5187  
5188  var _calculateDimension2 = _interopRequireDefault(_calculateDimension);
5189  
5190  var _getActiveElement = __webpack_require__(318);
5191  
5192  var _getActiveElement2 = _interopRequireDefault(_getActiveElement);
5193  
5194  var _isDayVisible = __webpack_require__(132);
5195  
5196  var _isDayVisible2 = _interopRequireDefault(_isDayVisible);
5197  
5198  var _ModifiersShape = __webpack_require__(101);
5199  
5200  var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
5201  
5202  var _ScrollableOrientationShape = __webpack_require__(80);
5203  
5204  var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
5205  
5206  var _DayOfWeekShape = __webpack_require__(74);
5207  
5208  var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
5209  
5210  var _CalendarInfoPositionShape = __webpack_require__(92);
5211  
5212  var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);
5213  
5214  var _constants = __webpack_require__(39);
5215  
5216  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5217  
5218  function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
5219  
5220  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5221  
5222  function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
5223  
5224  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
5225  
5226  var MONTH_PADDING = 23;
5227  var PREV_TRANSITION = 'prev';
5228  var NEXT_TRANSITION = 'next';
5229  var MONTH_SELECTION_TRANSITION = 'month_selection';
5230  var YEAR_SELECTION_TRANSITION = 'year_selection';
5231  
5232  var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
5233  
5234    // calendar presentation props
5235    enableOutsideDays: _propTypes2['default'].bool,
5236    numberOfMonths: _propTypes2['default'].number,
5237    orientation: _ScrollableOrientationShape2['default'],
5238    withPortal: _propTypes2['default'].bool,
5239    onOutsideClick: _propTypes2['default'].func,
5240    hidden: _propTypes2['default'].bool,
5241    initialVisibleMonth: _propTypes2['default'].func,
5242    firstDayOfWeek: _DayOfWeekShape2['default'],
5243    renderCalendarInfo: _propTypes2['default'].func,
5244    calendarInfoPosition: _CalendarInfoPositionShape2['default'],
5245    hideKeyboardShortcutsPanel: _propTypes2['default'].bool,
5246    daySize: _airbnbPropTypes.nonNegativeInteger,
5247    isRTL: _propTypes2['default'].bool,
5248    verticalHeight: _airbnbPropTypes.nonNegativeInteger,
5249    noBorder: _propTypes2['default'].bool,
5250    transitionDuration: _airbnbPropTypes.nonNegativeInteger,
5251    verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,
5252    horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
5253  
5254    // navigation props
5255    navPrev: _propTypes2['default'].node,
5256    navNext: _propTypes2['default'].node,
5257    noNavButtons: _propTypes2['default'].bool,
5258    onPrevMonthClick: _propTypes2['default'].func,
5259    onNextMonthClick: _propTypes2['default'].func,
5260    onMonthChange: _propTypes2['default'].func,
5261    onYearChange: _propTypes2['default'].func,
5262    onMultiplyScrollableMonths: _propTypes2['default'].func, // VERTICAL_SCROLLABLE daypickers only
5263  
5264    // month props
5265    renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
5266    renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
5267  
5268    // day props
5269    modifiers: _propTypes2['default'].objectOf(_propTypes2['default'].objectOf(_ModifiersShape2['default'])),
5270    renderCalendarDay: _propTypes2['default'].func,
5271    renderDayContents: _propTypes2['default'].func,
5272    onDayClick: _propTypes2['default'].func,
5273    onDayMouseEnter: _propTypes2['default'].func,
5274    onDayMouseLeave: _propTypes2['default'].func,
5275  
5276    // accessibility props
5277    isFocused: _propTypes2['default'].bool,
5278    getFirstFocusableDay: _propTypes2['default'].func,
5279    onBlur: _propTypes2['default'].func,
5280    showKeyboardShortcuts: _propTypes2['default'].bool,
5281  
5282    // internationalization
5283    monthFormat: _propTypes2['default'].string,
5284    weekDayFormat: _propTypes2['default'].string,
5285    phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerPhrases)),
5286    dayAriaLabelFormat: _propTypes2['default'].string
5287  }));
5288  
5289  var defaultProps = exports.defaultProps = {
5290    // calendar presentation props
5291    enableOutsideDays: false,
5292    numberOfMonths: 2,
5293    orientation: _constants.HORIZONTAL_ORIENTATION,
5294    withPortal: false,
5295    onOutsideClick: function () {
5296      function onOutsideClick() {}
5297  
5298      return onOutsideClick;
5299    }(),
5300  
5301    hidden: false,
5302    initialVisibleMonth: function () {
5303      function initialVisibleMonth() {
5304        return (0, _moment2['default'])();
5305      }
5306  
5307      return initialVisibleMonth;
5308    }(),
5309    firstDayOfWeek: null,
5310    renderCalendarInfo: null,
5311    calendarInfoPosition: _constants.INFO_POSITION_BOTTOM,
5312    hideKeyboardShortcutsPanel: false,
5313    daySize: _constants.DAY_SIZE,
5314    isRTL: false,
5315    verticalHeight: null,
5316    noBorder: false,
5317    transitionDuration: undefined,
5318    verticalBorderSpacing: undefined,
5319    horizontalMonthPadding: 13,
5320  
5321    // navigation props
5322    navPrev: null,
5323    navNext: null,
5324    noNavButtons: false,
5325    onPrevMonthClick: function () {
5326      function onPrevMonthClick() {}
5327  
5328      return onPrevMonthClick;
5329    }(),
5330    onNextMonthClick: function () {
5331      function onNextMonthClick() {}
5332  
5333      return onNextMonthClick;
5334    }(),
5335    onMonthChange: function () {
5336      function onMonthChange() {}
5337  
5338      return onMonthChange;
5339    }(),
5340    onYearChange: function () {
5341      function onYearChange() {}
5342  
5343      return onYearChange;
5344    }(),
5345    onMultiplyScrollableMonths: function () {
5346      function onMultiplyScrollableMonths() {}
5347  
5348      return onMultiplyScrollableMonths;
5349    }(),
5350  
5351  
5352    // month props
5353    renderMonthText: null,
5354    renderMonthElement: null,
5355  
5356    // day props
5357    modifiers: {},
5358    renderCalendarDay: undefined,
5359    renderDayContents: null,
5360    onDayClick: function () {
5361      function onDayClick() {}
5362  
5363      return onDayClick;
5364    }(),
5365    onDayMouseEnter: function () {
5366      function onDayMouseEnter() {}
5367  
5368      return onDayMouseEnter;
5369    }(),
5370    onDayMouseLeave: function () {
5371      function onDayMouseLeave() {}
5372  
5373      return onDayMouseLeave;
5374    }(),
5375  
5376  
5377    // accessibility props
5378    isFocused: false,
5379    getFirstFocusableDay: null,
5380    onBlur: function () {
5381      function onBlur() {}
5382  
5383      return onBlur;
5384    }(),
5385  
5386    showKeyboardShortcuts: false,
5387  
5388    // internationalization
5389    monthFormat: 'MMMM YYYY',
5390    weekDayFormat: 'dd',
5391    phrases: _defaultPhrases.DayPickerPhrases,
5392    dayAriaLabelFormat: undefined
5393  };
5394  
5395  var DayPicker = function (_React$Component) {
5396    _inherits(DayPicker, _React$Component);
5397  
5398    function DayPicker(props) {
5399      _classCallCheck(this, DayPicker);
5400  
5401      var _this = _possibleConstructorReturn(this, (DayPicker.__proto__ || Object.getPrototypeOf(DayPicker)).call(this, props));
5402  
5403      var currentMonth = props.hidden ? (0, _moment2['default'])() : props.initialVisibleMonth();
5404  
5405      var focusedDate = currentMonth.clone().startOf('month');
5406      if (props.getFirstFocusableDay) {
5407        focusedDate = props.getFirstFocusableDay(currentMonth);
5408      }
5409  
5410      var horizontalMonthPadding = props.horizontalMonthPadding;
5411  
5412  
5413      var translationValue = props.isRTL && _this.isHorizontal() ? -(0, _getCalendarMonthWidth2['default'])(props.daySize, horizontalMonthPadding) : 0;
5414  
5415      _this.hasSetInitialVisibleMonth = !props.hidden;
5416      _this.state = {
5417        currentMonth: currentMonth,
5418        monthTransition: null,
5419        translationValue: translationValue,
5420        scrollableMonthMultiple: 1,
5421        calendarMonthWidth: (0, _getCalendarMonthWidth2['default'])(props.daySize, horizontalMonthPadding),
5422        focusedDate: !props.hidden || props.isFocused ? focusedDate : null,
5423        nextFocusedDate: null,
5424        showKeyboardShortcuts: props.showKeyboardShortcuts,
5425        onKeyboardShortcutsPanelClose: function () {
5426          function onKeyboardShortcutsPanelClose() {}
5427  
5428          return onKeyboardShortcutsPanelClose;
5429        }(),
5430  
5431        isTouchDevice: (0, _isTouchDevice2['default'])(),
5432        withMouseInteractions: true,
5433        calendarInfoWidth: 0,
5434        monthTitleHeight: null,
5435        hasSetHeight: false
5436      };
5437  
5438      _this.setCalendarMonthWeeks(currentMonth);
5439  
5440      _this.calendarMonthGridHeight = 0;
5441      _this.setCalendarInfoWidthTimeout = null;
5442  
5443      _this.onKeyDown = _this.onKeyDown.bind(_this);
5444      _this.throttledKeyDown = (0, _throttle2['default'])(_this.onFinalKeyDown, 200, { trailing: false });
5445      _this.onPrevMonthClick = _this.onPrevMonthClick.bind(_this);
5446      _this.onNextMonthClick = _this.onNextMonthClick.bind(_this);
5447      _this.onMonthChange = _this.onMonthChange.bind(_this);
5448      _this.onYearChange = _this.onYearChange.bind(_this);
5449  
5450      _this.multiplyScrollableMonths = _this.multiplyScrollableMonths.bind(_this);
5451      _this.updateStateAfterMonthTransition = _this.updateStateAfterMonthTransition.bind(_this);
5452  
5453      _this.openKeyboardShortcutsPanel = _this.openKeyboardShortcutsPanel.bind(_this);
5454      _this.closeKeyboardShortcutsPanel = _this.closeKeyboardShortcutsPanel.bind(_this);
5455  
5456      _this.setCalendarInfoRef = _this.setCalendarInfoRef.bind(_this);
5457      _this.setContainerRef = _this.setContainerRef.bind(_this);
5458      _this.setTransitionContainerRef = _this.setTransitionContainerRef.bind(_this);
5459      _this.setMonthTitleHeight = _this.setMonthTitleHeight.bind(_this);
5460      return _this;
5461    }
5462  
5463    _createClass(DayPicker, [{
5464      key: 'componentDidMount',
5465      value: function () {
5466        function componentDidMount() {
5467          var currentMonth = this.state.currentMonth;
5468  
5469          if (this.calendarInfo) {
5470            this.setState({
5471              isTouchDevice: (0, _isTouchDevice2['default'])(),
5472              calendarInfoWidth: (0, _calculateDimension2['default'])(this.calendarInfo, 'width', true, true)
5473            });
5474          } else {
5475            this.setState({ isTouchDevice: (0, _isTouchDevice2['default'])() });
5476          }
5477  
5478          this.setCalendarMonthWeeks(currentMonth);
5479        }
5480  
5481        return componentDidMount;
5482      }()
5483    }, {
5484      key: 'componentWillReceiveProps',
5485      value: function () {
5486        function componentWillReceiveProps(nextProps) {
5487          var hidden = nextProps.hidden,
5488              isFocused = nextProps.isFocused,
5489              showKeyboardShortcuts = nextProps.showKeyboardShortcuts,
5490              onBlur = nextProps.onBlur,
5491              renderMonthText = nextProps.renderMonthText,
5492              horizontalMonthPadding = nextProps.horizontalMonthPadding;
5493          var currentMonth = this.state.currentMonth;
5494  
5495  
5496          if (!hidden) {
5497            if (!this.hasSetInitialVisibleMonth) {
5498              this.hasSetInitialVisibleMonth = true;
5499              this.setState({
5500                currentMonth: nextProps.initialVisibleMonth()
5501              });
5502            }
5503          }
5504  
5505          var _props = this.props,
5506              daySize = _props.daySize,
5507              prevIsFocused = _props.isFocused,
5508              prevRenderMonthText = _props.renderMonthText;
5509  
5510  
5511          if (nextProps.daySize !== daySize) {
5512            this.setState({
5513              calendarMonthWidth: (0, _getCalendarMonthWidth2['default'])(nextProps.daySize, horizontalMonthPadding)
5514            });
5515          }
5516  
5517          if (isFocused !== prevIsFocused) {
5518            if (isFocused) {
5519              var focusedDate = this.getFocusedDay(currentMonth);
5520  
5521              var onKeyboardShortcutsPanelClose = this.state.onKeyboardShortcutsPanelClose;
5522  
5523              if (nextProps.showKeyboardShortcuts) {
5524                // the ? shortcut came from the input and we should return input there once it is close
5525                onKeyboardShortcutsPanelClose = onBlur;
5526              }
5527  
5528              this.setState({
5529                showKeyboardShortcuts: showKeyboardShortcuts,
5530                onKeyboardShortcutsPanelClose: onKeyboardShortcutsPanelClose,
5531                focusedDate: focusedDate,
5532                withMouseInteractions: false
5533              });
5534            } else {
5535              this.setState({ focusedDate: null });
5536            }
5537          }
5538  
5539          if (renderMonthText !== prevRenderMonthText) {
5540            this.setState({
5541              monthTitleHeight: null
5542            });
5543          }
5544        }
5545  
5546        return componentWillReceiveProps;
5547      }()
5548    }, {
5549      key: 'shouldComponentUpdate',
5550      value: function () {
5551        function shouldComponentUpdate(nextProps, nextState) {
5552          return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
5553        }
5554  
5555        return shouldComponentUpdate;
5556      }()
5557    }, {
5558      key: 'componentWillUpdate',
5559      value: function () {
5560        function componentWillUpdate() {
5561          var _this2 = this;
5562  
5563          var transitionDuration = this.props.transitionDuration;
5564  
5565          // Calculating the dimensions trigger a DOM repaint which
5566          // breaks the CSS transition.
5567          // The setTimeout will wait until the transition ends.
5568  
5569          if (this.calendarInfo) {
5570            this.setCalendarInfoWidthTimeout = setTimeout(function () {
5571              var calendarInfoWidth = _this2.state.calendarInfoWidth;
5572  
5573              var calendarInfoPanelWidth = (0, _calculateDimension2['default'])(_this2.calendarInfo, 'width', true, true);
5574              if (calendarInfoWidth !== calendarInfoPanelWidth) {
5575                _this2.setState({
5576                  calendarInfoWidth: calendarInfoPanelWidth
5577                });
5578              }
5579            }, transitionDuration);
5580          }
5581        }
5582  
5583        return componentWillUpdate;
5584      }()
5585    }, {
5586      key: 'componentDidUpdate',
5587      value: function () {
5588        function componentDidUpdate(prevProps) {
5589          var _props2 = this.props,
5590              orientation = _props2.orientation,
5591              daySize = _props2.daySize,
5592              isFocused = _props2.isFocused,
5593              numberOfMonths = _props2.numberOfMonths;
5594          var _state = this.state,
5595              focusedDate = _state.focusedDate,
5596              monthTitleHeight = _state.monthTitleHeight;
5597  
5598  
5599          if (this.isHorizontal() && (orientation !== prevProps.orientation || daySize !== prevProps.daySize)) {
5600            var visibleCalendarWeeks = this.calendarMonthWeeks.slice(1, numberOfMonths + 1);
5601            var calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);
5602            var newMonthHeight = monthTitleHeight + calendarMonthWeeksHeight + 1;
5603            this.adjustDayPickerHeight(newMonthHeight);
5604          }
5605  
5606          if (!prevProps.isFocused && isFocused && !focusedDate) {
5607            this.container.focus();
5608          }
5609        }
5610  
5611        return componentDidUpdate;
5612      }()
5613    }, {
5614      key: 'componentWillUnmount',
5615      value: function () {
5616        function componentWillUnmount() {
5617          clearTimeout(this.setCalendarInfoWidthTimeout);
5618        }
5619  
5620        return componentWillUnmount;
5621      }()
5622    }, {
5623      key: 'onKeyDown',
5624      value: function () {
5625        function onKeyDown(e) {
5626          e.stopPropagation();
5627          if (!_constants.MODIFIER_KEY_NAMES.has(e.key)) {
5628            this.throttledKeyDown(e);
5629          }
5630        }
5631  
5632        return onKeyDown;
5633      }()
5634    }, {
5635      key: 'onFinalKeyDown',
5636      value: function () {
5637        function onFinalKeyDown(e) {
5638          this.setState({ withMouseInteractions: false });
5639  
5640          var _props3 = this.props,
5641              onBlur = _props3.onBlur,
5642              isRTL = _props3.isRTL;
5643          var _state2 = this.state,
5644              focusedDate = _state2.focusedDate,
5645              showKeyboardShortcuts = _state2.showKeyboardShortcuts;
5646  
5647          if (!focusedDate) return;
5648  
5649          var newFocusedDate = focusedDate.clone();
5650  
5651          var didTransitionMonth = false;
5652  
5653          // focus might be anywhere when the keyboard shortcuts panel is opened so we want to
5654          // return it to wherever it was before when the panel was opened
5655          var activeElement = (0, _getActiveElement2['default'])();
5656          var onKeyboardShortcutsPanelClose = function () {
5657            function onKeyboardShortcutsPanelClose() {
5658              if (activeElement) activeElement.focus();
5659            }
5660  
5661            return onKeyboardShortcutsPanelClose;
5662          }();
5663  
5664          switch (e.key) {
5665            case 'ArrowUp':
5666              e.preventDefault();
5667              newFocusedDate.subtract(1, 'week');
5668              didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);
5669              break;
5670            case 'ArrowLeft':
5671              e.preventDefault();
5672              if (isRTL) {
5673                newFocusedDate.add(1, 'day');
5674              } else {
5675                newFocusedDate.subtract(1, 'day');
5676              }
5677              didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);
5678              break;
5679            case 'Home':
5680              e.preventDefault();
5681              newFocusedDate.startOf('week');
5682              didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);
5683              break;
5684            case 'PageUp':
5685              e.preventDefault();
5686              newFocusedDate.subtract(1, 'month');
5687              didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);
5688              break;
5689  
5690            case 'ArrowDown':
5691              e.preventDefault();
5692              newFocusedDate.add(1, 'week');
5693              didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);
5694              break;
5695            case 'ArrowRight':
5696              e.preventDefault();
5697              if (isRTL) {
5698                newFocusedDate.subtract(1, 'day');
5699              } else {
5700                newFocusedDate.add(1, 'day');
5701              }
5702              didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);
5703              break;
5704            case 'End':
5705              e.preventDefault();
5706              newFocusedDate.endOf('week');
5707              didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);
5708              break;
5709            case 'PageDown':
5710              e.preventDefault();
5711              newFocusedDate.add(1, 'month');
5712              didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);
5713              break;
5714  
5715            case '?':
5716              this.openKeyboardShortcutsPanel(onKeyboardShortcutsPanelClose);
5717              break;
5718  
5719            case 'Escape':
5720              if (showKeyboardShortcuts) {
5721                this.closeKeyboardShortcutsPanel();
5722              } else {
5723                onBlur();
5724              }
5725              break;
5726  
5727            default:
5728              break;
5729          }
5730  
5731          // If there was a month transition, do not update the focused date until the transition has
5732          // completed. Otherwise, attempting to focus on a DOM node may interrupt the CSS animation. If
5733          // didTransitionMonth is true, the focusedDate gets updated in #updateStateAfterMonthTransition
5734          if (!didTransitionMonth) {
5735            this.setState({
5736              focusedDate: newFocusedDate
5737            });
5738          }
5739        }
5740  
5741        return onFinalKeyDown;
5742      }()
5743    }, {
5744      key: 'onPrevMonthClick',
5745      value: function () {
5746        function onPrevMonthClick(nextFocusedDate, e) {
5747          var _props4 = this.props,
5748              daySize = _props4.daySize,
5749              isRTL = _props4.isRTL,
5750              numberOfMonths = _props4.numberOfMonths;
5751          var _state3 = this.state,
5752              calendarMonthWidth = _state3.calendarMonthWidth,
5753              monthTitleHeight = _state3.monthTitleHeight;
5754  
5755  
5756          if (e) e.preventDefault();
5757  
5758          var translationValue = void 0;
5759          if (this.isVertical()) {
5760            var calendarMonthWeeksHeight = this.calendarMonthWeeks[0] * (daySize - 1);
5761            translationValue = monthTitleHeight + calendarMonthWeeksHeight + 1;
5762          } else if (this.isHorizontal()) {
5763            translationValue = calendarMonthWidth;
5764            if (isRTL) {
5765              translationValue = -2 * calendarMonthWidth;
5766            }
5767  
5768            var visibleCalendarWeeks = this.calendarMonthWeeks.slice(0, numberOfMonths);
5769            var _calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);
5770            var newMonthHeight = monthTitleHeight + _calendarMonthWeeksHeight + 1;
5771            this.adjustDayPickerHeight(newMonthHeight);
5772          }
5773  
5774          this.setState({
5775            monthTransition: PREV_TRANSITION,
5776            translationValue: translationValue,
5777            focusedDate: null,
5778            nextFocusedDate: nextFocusedDate
5779          });
5780        }
5781  
5782        return onPrevMonthClick;
5783      }()
5784    }, {
5785      key: 'onMonthChange',
5786      value: function () {
5787        function onMonthChange(currentMonth) {
5788          this.setCalendarMonthWeeks(currentMonth);
5789          this.calculateAndSetDayPickerHeight();
5790  
5791          // Translation value is a hack to force an invisible transition that
5792          // properly rerenders the CalendarMonthGrid
5793          this.setState({
5794            monthTransition: MONTH_SELECTION_TRANSITION,
5795            translationValue: 0.00001,
5796            focusedDate: null,
5797            nextFocusedDate: currentMonth,
5798            currentMonth: currentMonth
5799          });
5800        }
5801  
5802        return onMonthChange;
5803      }()
5804    }, {
5805      key: 'onYearChange',
5806      value: function () {
5807        function onYearChange(currentMonth) {
5808          this.setCalendarMonthWeeks(currentMonth);
5809          this.calculateAndSetDayPickerHeight();
5810  
5811          // Translation value is a hack to force an invisible transition that
5812          // properly rerenders the CalendarMonthGrid
5813          this.setState({
5814            monthTransition: YEAR_SELECTION_TRANSITION,
5815            translationValue: 0.0001,
5816            focusedDate: null,
5817            nextFocusedDate: currentMonth,
5818            currentMonth: currentMonth
5819          });
5820        }
5821  
5822        return onYearChange;
5823      }()
5824    }, {
5825      key: 'onNextMonthClick',
5826      value: function () {
5827        function onNextMonthClick(nextFocusedDate, e) {
5828          var _props5 = this.props,
5829              isRTL = _props5.isRTL,
5830              numberOfMonths = _props5.numberOfMonths,
5831              daySize = _props5.daySize;
5832          var _state4 = this.state,
5833              calendarMonthWidth = _state4.calendarMonthWidth,
5834              monthTitleHeight = _state4.monthTitleHeight;
5835  
5836  
5837          if (e) e.preventDefault();
5838  
5839          var translationValue = void 0;
5840  
5841          if (this.isVertical()) {
5842            var firstVisibleMonthWeeks = this.calendarMonthWeeks[1];
5843            var calendarMonthWeeksHeight = firstVisibleMonthWeeks * (daySize - 1);
5844            translationValue = -(monthTitleHeight + calendarMonthWeeksHeight + 1);
5845          }
5846  
5847          if (this.isHorizontal()) {
5848            translationValue = -calendarMonthWidth;
5849            if (isRTL) {
5850              translationValue = 0;
5851            }
5852  
5853            var visibleCalendarWeeks = this.calendarMonthWeeks.slice(2, numberOfMonths + 2);
5854            var _calendarMonthWeeksHeight2 = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);
5855            var newMonthHeight = monthTitleHeight + _calendarMonthWeeksHeight2 + 1;
5856            this.adjustDayPickerHeight(newMonthHeight);
5857          }
5858  
5859          this.setState({
5860            monthTransition: NEXT_TRANSITION,
5861            translationValue: translationValue,
5862            focusedDate: null,
5863            nextFocusedDate: nextFocusedDate
5864          });
5865        }
5866  
5867        return onNextMonthClick;
5868      }()
5869    }, {
5870      key: 'getFirstDayOfWeek',
5871      value: function () {
5872        function getFirstDayOfWeek() {
5873          var firstDayOfWeek = this.props.firstDayOfWeek;
5874  
5875          if (firstDayOfWeek == null) {
5876            return _moment2['default'].localeData().firstDayOfWeek();
5877          }
5878  
5879          return firstDayOfWeek;
5880        }
5881  
5882        return getFirstDayOfWeek;
5883      }()
5884    }, {
5885      key: 'getFirstVisibleIndex',
5886      value: function () {
5887        function getFirstVisibleIndex() {
5888          var orientation = this.props.orientation;
5889          var monthTransition = this.state.monthTransition;
5890  
5891  
5892          if (orientation === _constants.VERTICAL_SCROLLABLE) return 0;
5893  
5894          var firstVisibleMonthIndex = 1;
5895          if (monthTransition === PREV_TRANSITION) {
5896            firstVisibleMonthIndex -= 1;
5897          } else if (monthTransition === NEXT_TRANSITION) {
5898            firstVisibleMonthIndex += 1;
5899          }
5900  
5901          return firstVisibleMonthIndex;
5902        }
5903  
5904        return getFirstVisibleIndex;
5905      }()
5906    }, {
5907      key: 'getFocusedDay',
5908      value: function () {
5909        function getFocusedDay(newMonth) {
5910          var _props6 = this.props,
5911              getFirstFocusableDay = _props6.getFirstFocusableDay,
5912              numberOfMonths = _props6.numberOfMonths;
5913  
5914  
5915          var focusedDate = void 0;
5916          if (getFirstFocusableDay) {
5917            focusedDate = getFirstFocusableDay(newMonth);
5918          }
5919  
5920          if (newMonth && (!focusedDate || !(0, _isDayVisible2['default'])(focusedDate, newMonth, numberOfMonths))) {
5921            focusedDate = newMonth.clone().startOf('month');
5922          }
5923  
5924          return focusedDate;
5925        }
5926  
5927        return getFocusedDay;
5928      }()
5929    }, {
5930      key: 'setMonthTitleHeight',
5931      value: function () {
5932        function setMonthTitleHeight(monthTitleHeight) {
5933          var _this3 = this;
5934  
5935          this.setState({
5936            monthTitleHeight: monthTitleHeight
5937          }, function () {
5938            _this3.calculateAndSetDayPickerHeight();
5939          });
5940        }
5941  
5942        return setMonthTitleHeight;
5943      }()
5944    }, {
5945      key: 'setCalendarMonthWeeks',
5946      value: function () {
5947        function setCalendarMonthWeeks(currentMonth) {
5948          var numberOfMonths = this.props.numberOfMonths;
5949  
5950  
5951          this.calendarMonthWeeks = [];
5952          var month = currentMonth.clone().subtract(1, 'months');
5953          var firstDayOfWeek = this.getFirstDayOfWeek();
5954          for (var i = 0; i < numberOfMonths + 2; i += 1) {
5955            var numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(month, firstDayOfWeek);
5956            this.calendarMonthWeeks.push(numberOfWeeks);
5957            month = month.add(1, 'months');
5958          }
5959        }
5960  
5961        return setCalendarMonthWeeks;
5962      }()
5963    }, {
5964      key: 'setContainerRef',
5965      value: function () {
5966        function setContainerRef(ref) {
5967          this.container = ref;
5968        }
5969  
5970        return setContainerRef;
5971      }()
5972    }, {
5973      key: 'setCalendarInfoRef',
5974      value: function () {
5975        function setCalendarInfoRef(ref) {
5976          this.calendarInfo = ref;
5977        }
5978  
5979        return setCalendarInfoRef;
5980      }()
5981    }, {
5982      key: 'setTransitionContainerRef',
5983      value: function () {
5984        function setTransitionContainerRef(ref) {
5985          this.transitionContainer = ref;
5986        }
5987  
5988        return setTransitionContainerRef;
5989      }()
5990    }, {
5991      key: 'maybeTransitionNextMonth',
5992      value: function () {
5993        function maybeTransitionNextMonth(newFocusedDate) {
5994          var numberOfMonths = this.props.numberOfMonths;
5995          var _state5 = this.state,
5996              currentMonth = _state5.currentMonth,
5997              focusedDate = _state5.focusedDate;
5998  
5999  
6000          var newFocusedDateMonth = newFocusedDate.month();
6001          var focusedDateMonth = focusedDate.month();
6002          var isNewFocusedDateVisible = (0, _isDayVisible2['default'])(newFocusedDate, currentMonth, numberOfMonths);
6003          if (newFocusedDateMonth !== focusedDateMonth && !isNewFocusedDateVisible) {
6004            this.onNextMonthClick(newFocusedDate);
6005            return true;
6006          }
6007  
6008          return false;
6009        }
6010  
6011        return maybeTransitionNextMonth;
6012      }()
6013    }, {
6014      key: 'maybeTransitionPrevMonth',
6015      value: function () {
6016        function maybeTransitionPrevMonth(newFocusedDate) {
6017          var numberOfMonths = this.props.numberOfMonths;
6018          var _state6 = this.state,
6019              currentMonth = _state6.currentMonth,
6020              focusedDate = _state6.focusedDate;
6021  
6022  
6023          var newFocusedDateMonth = newFocusedDate.month();
6024          var focusedDateMonth = focusedDate.month();
6025          var isNewFocusedDateVisible = (0, _isDayVisible2['default'])(newFocusedDate, currentMonth, numberOfMonths);
6026          if (newFocusedDateMonth !== focusedDateMonth && !isNewFocusedDateVisible) {
6027            this.onPrevMonthClick(newFocusedDate);
6028            return true;
6029          }
6030  
6031          return false;
6032        }
6033  
6034        return maybeTransitionPrevMonth;
6035      }()
6036    }, {
6037      key: 'multiplyScrollableMonths',
6038      value: function () {
6039        function multiplyScrollableMonths(e) {
6040          var onMultiplyScrollableMonths = this.props.onMultiplyScrollableMonths;
6041  
6042          if (e) e.preventDefault();
6043  
6044          if (onMultiplyScrollableMonths) onMultiplyScrollableMonths(e);
6045  
6046          this.setState(function (_ref) {
6047            var scrollableMonthMultiple = _ref.scrollableMonthMultiple;
6048            return {
6049              scrollableMonthMultiple: scrollableMonthMultiple + 1
6050            };
6051          });
6052        }
6053  
6054        return multiplyScrollableMonths;
6055      }()
6056    }, {
6057      key: 'isHorizontal',
6058      value: function () {
6059        function isHorizontal() {
6060          var orientation = this.props.orientation;
6061  
6062          return orientation === _constants.HORIZONTAL_ORIENTATION;
6063        }
6064  
6065        return isHorizontal;
6066      }()
6067    }, {
6068      key: 'isVertical',
6069      value: function () {
6070        function isVertical() {
6071          var orientation = this.props.orientation;
6072  
6073          return orientation === _constants.VERTICAL_ORIENTATION || orientation === _constants.VERTICAL_SCROLLABLE;
6074        }
6075  
6076        return isVertical;
6077      }()
6078    }, {
6079      key: 'updateStateAfterMonthTransition',
6080      value: function () {
6081        function updateStateAfterMonthTransition() {
6082          var _this4 = this;
6083  
6084          var _props7 = this.props,
6085              onPrevMonthClick = _props7.onPrevMonthClick,
6086              onNextMonthClick = _props7.onNextMonthClick,
6087              numberOfMonths = _props7.numberOfMonths,
6088              onMonthChange = _props7.onMonthChange,
6089              onYearChange = _props7.onYearChange,
6090              isRTL = _props7.isRTL;
6091          var _state7 = this.state,
6092              currentMonth = _state7.currentMonth,
6093              monthTransition = _state7.monthTransition,
6094              focusedDate = _state7.focusedDate,
6095              nextFocusedDate = _state7.nextFocusedDate,
6096              withMouseInteractions = _state7.withMouseInteractions,
6097              calendarMonthWidth = _state7.calendarMonthWidth;
6098  
6099  
6100          if (!monthTransition) return;
6101  
6102          var newMonth = currentMonth.clone();
6103          var firstDayOfWeek = this.getFirstDayOfWeek();
6104          if (monthTransition === PREV_TRANSITION) {
6105            newMonth.subtract(1, 'month');
6106            if (onPrevMonthClick) onPrevMonthClick(newMonth);
6107            var newInvisibleMonth = newMonth.clone().subtract(1, 'month');
6108            var numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(newInvisibleMonth, firstDayOfWeek);
6109            this.calendarMonthWeeks = [numberOfWeeks].concat(_toConsumableArray(this.calendarMonthWeeks.slice(0, -1)));
6110          } else if (monthTransition === NEXT_TRANSITION) {
6111            newMonth.add(1, 'month');
6112            if (onNextMonthClick) onNextMonthClick(newMonth);
6113            var _newInvisibleMonth = newMonth.clone().add(numberOfMonths, 'month');
6114            var _numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(_newInvisibleMonth, firstDayOfWeek);
6115            this.calendarMonthWeeks = [].concat(_toConsumableArray(this.calendarMonthWeeks.slice(1)), [_numberOfWeeks]);
6116          } else if (monthTransition === MONTH_SELECTION_TRANSITION) {
6117            if (onMonthChange) onMonthChange(newMonth);
6118          } else if (monthTransition === YEAR_SELECTION_TRANSITION) {
6119            if (onYearChange) onYearChange(newMonth);
6120          }
6121  
6122          var newFocusedDate = null;
6123          if (nextFocusedDate) {
6124            newFocusedDate = nextFocusedDate;
6125          } else if (!focusedDate && !withMouseInteractions) {
6126            newFocusedDate = this.getFocusedDay(newMonth);
6127          }
6128  
6129          this.setState({
6130            currentMonth: newMonth,
6131            monthTransition: null,
6132            translationValue: isRTL && this.isHorizontal() ? -calendarMonthWidth : 0,
6133            nextFocusedDate: null,
6134            focusedDate: newFocusedDate
6135          }, function () {
6136            // we don't want to focus on the relevant calendar day after a month transition
6137            // if the user is navigating around using a mouse
6138            if (withMouseInteractions) {
6139              var activeElement = (0, _getActiveElement2['default'])();
6140              if (activeElement && activeElement !== document.body && _this4.container.contains(activeElement)) {
6141                activeElement.blur();
6142              }
6143            }
6144          });
6145        }
6146  
6147        return updateStateAfterMonthTransition;
6148      }()
6149    }, {
6150      key: 'adjustDayPickerHeight',
6151      value: function () {
6152        function adjustDayPickerHeight(newMonthHeight) {
6153          var _this5 = this;
6154  
6155          var monthHeight = newMonthHeight + MONTH_PADDING;
6156          if (monthHeight !== this.calendarMonthGridHeight) {
6157            this.transitionContainer.style.height = String(monthHeight) + 'px';
6158            if (!this.calendarMonthGridHeight) {
6159              setTimeout(function () {
6160                _this5.setState({ hasSetHeight: true });
6161              }, 0);
6162            }
6163            this.calendarMonthGridHeight = monthHeight;
6164          }
6165        }
6166  
6167        return adjustDayPickerHeight;
6168      }()
6169    }, {
6170      key: 'calculateAndSetDayPickerHeight',
6171      value: function () {
6172        function calculateAndSetDayPickerHeight() {
6173          var _props8 = this.props,
6174              daySize = _props8.daySize,
6175              numberOfMonths = _props8.numberOfMonths;
6176          var monthTitleHeight = this.state.monthTitleHeight;
6177  
6178  
6179          var visibleCalendarWeeks = this.calendarMonthWeeks.slice(1, numberOfMonths + 1);
6180          var calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);
6181          var newMonthHeight = monthTitleHeight + calendarMonthWeeksHeight + 1;
6182  
6183          if (this.isHorizontal()) {
6184            this.adjustDayPickerHeight(newMonthHeight);
6185          }
6186        }
6187  
6188        return calculateAndSetDayPickerHeight;
6189      }()
6190    }, {
6191      key: 'openKeyboardShortcutsPanel',
6192      value: function () {
6193        function openKeyboardShortcutsPanel(onCloseCallBack) {
6194          this.setState({
6195            showKeyboardShortcuts: true,
6196            onKeyboardShortcutsPanelClose: onCloseCallBack
6197          });
6198        }
6199  
6200        return openKeyboardShortcutsPanel;
6201      }()
6202    }, {
6203      key: 'closeKeyboardShortcutsPanel',
6204      value: function () {
6205        function closeKeyboardShortcutsPanel() {
6206          var onKeyboardShortcutsPanelClose = this.state.onKeyboardShortcutsPanelClose;
6207  
6208  
6209          if (onKeyboardShortcutsPanelClose) {
6210            onKeyboardShortcutsPanelClose();
6211          }
6212  
6213          this.setState({
6214            onKeyboardShortcutsPanelClose: null,
6215            showKeyboardShortcuts: false
6216          });
6217        }
6218  
6219        return closeKeyboardShortcutsPanel;
6220      }()
6221    }, {
6222      key: 'renderNavigation',
6223      value: function () {
6224        function renderNavigation() {
6225          var _this6 = this;
6226  
6227          var _props9 = this.props,
6228              navPrev = _props9.navPrev,
6229              navNext = _props9.navNext,
6230              noNavButtons = _props9.noNavButtons,
6231              orientation = _props9.orientation,
6232              phrases = _props9.phrases,
6233              isRTL = _props9.isRTL;
6234  
6235  
6236          if (noNavButtons) {
6237            return null;
6238          }
6239  
6240          var onNextMonthClick = void 0;
6241          if (orientation === _constants.VERTICAL_SCROLLABLE) {
6242            onNextMonthClick = this.multiplyScrollableMonths;
6243          } else {
6244            onNextMonthClick = function () {
6245              function onNextMonthClick(e) {
6246                _this6.onNextMonthClick(null, e);
6247              }
6248  
6249              return onNextMonthClick;
6250            }();
6251          }
6252  
6253          return _react2['default'].createElement(_DayPickerNavigation2['default'], {
6254            onPrevMonthClick: function () {
6255              function onPrevMonthClick(e) {
6256                _this6.onPrevMonthClick(null, e);
6257              }
6258  
6259              return onPrevMonthClick;
6260            }(),
6261            onNextMonthClick: onNextMonthClick,
6262            navPrev: navPrev,
6263            navNext: navNext,
6264            orientation: orientation,
6265            phrases: phrases,
6266            isRTL: isRTL
6267          });
6268        }
6269  
6270        return renderNavigation;
6271      }()
6272    }, {
6273      key: 'renderWeekHeader',
6274      value: function () {
6275        function renderWeekHeader(index) {
6276          var _props10 = this.props,
6277              daySize = _props10.daySize,
6278              horizontalMonthPadding = _props10.horizontalMonthPadding,
6279              orientation = _props10.orientation,
6280              weekDayFormat = _props10.weekDayFormat,
6281              styles = _props10.styles;
6282          var calendarMonthWidth = this.state.calendarMonthWidth;
6283  
6284          var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;
6285          var horizontalStyle = {
6286            left: index * calendarMonthWidth
6287          };
6288          var verticalStyle = {
6289            marginLeft: -calendarMonthWidth / 2
6290          };
6291  
6292          var weekHeaderStyle = {}; // no styles applied to the vertical-scrollable orientation
6293          if (this.isHorizontal()) {
6294            weekHeaderStyle = horizontalStyle;
6295          } else if (this.isVertical() && !verticalScrollable) {
6296            weekHeaderStyle = verticalStyle;
6297          }
6298  
6299          var firstDayOfWeek = this.getFirstDayOfWeek();
6300  
6301          var header = [];
6302          for (var i = 0; i < 7; i += 1) {
6303            header.push(_react2['default'].createElement(
6304              'li',
6305              _extends({ key: i }, (0, _reactWithStyles.css)(styles.DayPicker_weekHeader_li, { width: daySize })),
6306              _react2['default'].createElement(
6307                'small',
6308                null,
6309                (0, _moment2['default'])().day((i + firstDayOfWeek) % 7).format(weekDayFormat)
6310              )
6311            ));
6312          }
6313  
6314          return _react2['default'].createElement(
6315            'div',
6316            _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_weekHeader, this.isVertical() && styles.DayPicker_weekHeader__vertical, verticalScrollable && styles.DayPicker_weekHeader__verticalScrollable, weekHeaderStyle, { padding: '0 ' + String(horizontalMonthPadding) + 'px' }), {
6317              key: 'week-' + String(index)
6318            }),
6319            _react2['default'].createElement(
6320              'ul',
6321              (0, _reactWithStyles.css)(styles.DayPicker_weekHeader_ul),
6322              header
6323            )
6324          );
6325        }
6326  
6327        return renderWeekHeader;
6328      }()
6329    }, {
6330      key: 'render',
6331      value: function () {
6332        function render() {
6333          var _this7 = this;
6334  
6335          var _state8 = this.state,
6336              calendarMonthWidth = _state8.calendarMonthWidth,
6337              currentMonth = _state8.currentMonth,
6338              monthTransition = _state8.monthTransition,
6339              translationValue = _state8.translationValue,
6340              scrollableMonthMultiple = _state8.scrollableMonthMultiple,
6341              focusedDate = _state8.focusedDate,
6342              showKeyboardShortcuts = _state8.showKeyboardShortcuts,
6343              isTouch = _state8.isTouchDevice,
6344              hasSetHeight = _state8.hasSetHeight,
6345              calendarInfoWidth = _state8.calendarInfoWidth,
6346              monthTitleHeight = _state8.monthTitleHeight;
6347          var _props11 = this.props,
6348              enableOutsideDays = _props11.enableOutsideDays,
6349              numberOfMonths = _props11.numberOfMonths,
6350              orientation = _props11.orientation,
6351              modifiers = _props11.modifiers,
6352              withPortal = _props11.withPortal,
6353              onDayClick = _props11.onDayClick,
6354              onDayMouseEnter = _props11.onDayMouseEnter,
6355              onDayMouseLeave = _props11.onDayMouseLeave,
6356              firstDayOfWeek = _props11.firstDayOfWeek,
6357              renderMonthText = _props11.renderMonthText,
6358              renderCalendarDay = _props11.renderCalendarDay,
6359              renderDayContents = _props11.renderDayContents,
6360              renderCalendarInfo = _props11.renderCalendarInfo,
6361              renderMonthElement = _props11.renderMonthElement,
6362              calendarInfoPosition = _props11.calendarInfoPosition,
6363              hideKeyboardShortcutsPanel = _props11.hideKeyboardShortcutsPanel,
6364              onOutsideClick = _props11.onOutsideClick,
6365              monthFormat = _props11.monthFormat,
6366              daySize = _props11.daySize,
6367              isFocused = _props11.isFocused,
6368              isRTL = _props11.isRTL,
6369              styles = _props11.styles,
6370              theme = _props11.theme,
6371              phrases = _props11.phrases,
6372              verticalHeight = _props11.verticalHeight,
6373              dayAriaLabelFormat = _props11.dayAriaLabelFormat,
6374              noBorder = _props11.noBorder,
6375              transitionDuration = _props11.transitionDuration,
6376              verticalBorderSpacing = _props11.verticalBorderSpacing,
6377              horizontalMonthPadding = _props11.horizontalMonthPadding;
6378          var dayPickerHorizontalPadding = theme.reactDates.spacing.dayPickerHorizontalPadding;
6379  
6380  
6381          var isHorizontal = this.isHorizontal();
6382  
6383          var numOfWeekHeaders = this.isVertical() ? 1 : numberOfMonths;
6384          var weekHeaders = [];
6385          for (var i = 0; i < numOfWeekHeaders; i += 1) {
6386            weekHeaders.push(this.renderWeekHeader(i));
6387          }
6388  
6389          var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;
6390          var height = void 0;
6391          if (isHorizontal) {
6392            height = this.calendarMonthGridHeight;
6393          } else if (this.isVertical() && !verticalScrollable && !withPortal) {
6394            // If the user doesn't set a desired height,
6395            // we default back to this kind of made-up value that generally looks good
6396            height = verticalHeight || 1.75 * calendarMonthWidth;
6397          }
6398  
6399          var isCalendarMonthGridAnimating = monthTransition !== null;
6400  
6401          var shouldFocusDate = !isCalendarMonthGridAnimating && isFocused;
6402  
6403          var keyboardShortcutButtonLocation = _DayPickerKeyboardShortcuts.BOTTOM_RIGHT;
6404          if (this.isVertical()) {
6405            keyboardShortcutButtonLocation = withPortal ? _DayPickerKeyboardShortcuts.TOP_LEFT : _DayPickerKeyboardShortcuts.TOP_RIGHT;
6406          }
6407  
6408          var shouldAnimateHeight = isHorizontal && hasSetHeight;
6409  
6410          var calendarInfoPositionTop = calendarInfoPosition === _constants.INFO_POSITION_TOP;
6411          var calendarInfoPositionBottom = calendarInfoPosition === _constants.INFO_POSITION_BOTTOM;
6412          var calendarInfoPositionBefore = calendarInfoPosition === _constants.INFO_POSITION_BEFORE;
6413          var calendarInfoPositionAfter = calendarInfoPosition === _constants.INFO_POSITION_AFTER;
6414          var calendarInfoIsInline = calendarInfoPositionBefore || calendarInfoPositionAfter;
6415  
6416          var calendarInfo = renderCalendarInfo && _react2['default'].createElement(
6417            'div',
6418            _extends({
6419              ref: this.setCalendarInfoRef
6420            }, (0, _reactWithStyles.css)(calendarInfoIsInline && styles.DayPicker_calendarInfo__horizontal)),
6421            renderCalendarInfo()
6422          );
6423  
6424          var calendarInfoPanelWidth = renderCalendarInfo && calendarInfoIsInline ? calendarInfoWidth : 0;
6425  
6426          var firstVisibleMonthIndex = this.getFirstVisibleIndex();
6427          var wrapperHorizontalWidth = calendarMonthWidth * numberOfMonths + 2 * dayPickerHorizontalPadding;
6428          // Adding `1px` because of whitespace between 2 inline-block
6429          var fullHorizontalWidth = wrapperHorizontalWidth + calendarInfoPanelWidth + 1;
6430  
6431          var transitionContainerStyle = {
6432            width: isHorizontal && wrapperHorizontalWidth,
6433            height: height
6434          };
6435  
6436          var dayPickerWrapperStyle = {
6437            width: isHorizontal && wrapperHorizontalWidth
6438          };
6439  
6440          var dayPickerStyle = {
6441            width: isHorizontal && fullHorizontalWidth,
6442  
6443            // These values are to center the datepicker (approximately) on the page
6444            marginLeft: isHorizontal && withPortal ? -fullHorizontalWidth / 2 : null,
6445            marginTop: isHorizontal && withPortal ? -calendarMonthWidth / 2 : null
6446          };
6447  
6448          return _react2['default'].createElement(
6449            'div',
6450            _extends({
6451              role: 'application',
6452              'aria-label': phrases.calendarLabel
6453            }, (0, _reactWithStyles.css)(styles.DayPicker, isHorizontal && styles.DayPicker__horizontal, verticalScrollable && styles.DayPicker__verticalScrollable, isHorizontal && withPortal && styles.DayPicker_portal__horizontal, this.isVertical() && withPortal && styles.DayPicker_portal__vertical, dayPickerStyle, !monthTitleHeight && styles.DayPicker__hidden, !noBorder && styles.DayPicker__withBorder)),
6454            _react2['default'].createElement(
6455              _reactOutsideClickHandler2['default'],
6456              { onOutsideClick: onOutsideClick },
6457              (calendarInfoPositionTop || calendarInfoPositionBefore) && calendarInfo,
6458              _react2['default'].createElement(
6459                'div',
6460                (0, _reactWithStyles.css)(dayPickerWrapperStyle, calendarInfoIsInline && isHorizontal && styles.DayPicker_wrapper__horizontal),
6461                _react2['default'].createElement(
6462                  'div',
6463                  _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_weekHeaders, isHorizontal && styles.DayPicker_weekHeaders__horizontal), {
6464                    'aria-hidden': 'true',
6465                    role: 'presentation'
6466                  }),
6467                  weekHeaders
6468                ),
6469                _react2['default'].createElement(
6470                  'div',
6471                  _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_focusRegion), {
6472                    ref: this.setContainerRef,
6473                    onClick: function () {
6474                      function onClick(e) {
6475                        e.stopPropagation();
6476                      }
6477  
6478                      return onClick;
6479                    }(),
6480                    onKeyDown: this.onKeyDown,
6481                    onMouseUp: function () {
6482                      function onMouseUp() {
6483                        _this7.setState({ withMouseInteractions: true });
6484                      }
6485  
6486                      return onMouseUp;
6487                    }(),
6488                    role: 'region',
6489                    tabIndex: -1
6490                  }),
6491                  !verticalScrollable && this.renderNavigation(),
6492                  _react2['default'].createElement(
6493                    'div',
6494                    _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_transitionContainer, shouldAnimateHeight && styles.DayPicker_transitionContainer__horizontal, this.isVertical() && styles.DayPicker_transitionContainer__vertical, verticalScrollable && styles.DayPicker_transitionContainer__verticalScrollable, transitionContainerStyle), {
6495                      ref: this.setTransitionContainerRef
6496                    }),
6497                    _react2['default'].createElement(_CalendarMonthGrid2['default'], {
6498                      setMonthTitleHeight: !monthTitleHeight ? this.setMonthTitleHeight : undefined,
6499                      translationValue: translationValue,
6500                      enableOutsideDays: enableOutsideDays,
6501                      firstVisibleMonthIndex: firstVisibleMonthIndex,
6502                      initialMonth: currentMonth,
6503                      isAnimating: isCalendarMonthGridAnimating,
6504                      modifiers: modifiers,
6505                      orientation: orientation,
6506                      numberOfMonths: numberOfMonths * scrollableMonthMultiple,
6507                      onDayClick: onDayClick,
6508                      onDayMouseEnter: onDayMouseEnter,
6509                      onDayMouseLeave: onDayMouseLeave,
6510                      onMonthChange: this.onMonthChange,
6511                      onYearChange: this.onYearChange,
6512                      renderMonthText: renderMonthText,
6513                      renderCalendarDay: renderCalendarDay,
6514                      renderDayContents: renderDayContents,
6515                      renderMonthElement: renderMonthElement,
6516                      onMonthTransitionEnd: this.updateStateAfterMonthTransition,
6517                      monthFormat: monthFormat,
6518                      daySize: daySize,
6519                      firstDayOfWeek: firstDayOfWeek,
6520                      isFocused: shouldFocusDate,
6521                      focusedDate: focusedDate,
6522                      phrases: phrases,
6523                      isRTL: isRTL,
6524                      dayAriaLabelFormat: dayAriaLabelFormat,
6525                      transitionDuration: transitionDuration,
6526                      verticalBorderSpacing: verticalBorderSpacing,
6527                      horizontalMonthPadding: horizontalMonthPadding
6528                    }),
6529                    verticalScrollable && this.renderNavigation()
6530                  ),
6531                  !isTouch && !hideKeyboardShortcutsPanel && _react2['default'].createElement(_DayPickerKeyboardShortcuts2['default'], {
6532                    block: this.isVertical() && !withPortal,
6533                    buttonLocation: keyboardShortcutButtonLocation,
6534                    showKeyboardShortcutsPanel: showKeyboardShortcuts,
6535                    openKeyboardShortcutsPanel: this.openKeyboardShortcutsPanel,
6536                    closeKeyboardShortcutsPanel: this.closeKeyboardShortcutsPanel,
6537                    phrases: phrases
6538                  })
6539                )
6540              ),
6541              (calendarInfoPositionBottom || calendarInfoPositionAfter) && calendarInfo
6542            )
6543          );
6544        }
6545  
6546        return render;
6547      }()
6548    }]);
6549  
6550    return DayPicker;
6551  }(_react2['default'].Component);
6552  
6553  DayPicker.propTypes = propTypes;
6554  DayPicker.defaultProps = defaultProps;
6555  
6556  exports.PureDayPicker = DayPicker;
6557  exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {
6558    var _ref2$reactDates = _ref2.reactDates,
6559        color = _ref2$reactDates.color,
6560        font = _ref2$reactDates.font,
6561        noScrollBarOnVerticalScrollable = _ref2$reactDates.noScrollBarOnVerticalScrollable,
6562        spacing = _ref2$reactDates.spacing,
6563        zIndex = _ref2$reactDates.zIndex;
6564    return {
6565      DayPicker: {
6566        background: color.background,
6567        position: 'relative',
6568        textAlign: 'left'
6569      },
6570  
6571      DayPicker__horizontal: {
6572        background: color.background
6573      },
6574  
6575      DayPicker__verticalScrollable: {
6576        height: '100%'
6577      },
6578  
6579      DayPicker__hidden: {
6580        visibility: 'hidden'
6581      },
6582  
6583      DayPicker__withBorder: {
6584        boxShadow: '0 2px 6px rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.07)',
6585        borderRadius: 3
6586      },
6587  
6588      DayPicker_portal__horizontal: {
6589        boxShadow: 'none',
6590        position: 'absolute',
6591        left: '50%',
6592        top: '50%'
6593      },
6594  
6595      DayPicker_portal__vertical: {
6596        position: 'initial'
6597      },
6598  
6599      DayPicker_focusRegion: {
6600        outline: 'none'
6601      },
6602  
6603      DayPicker_calendarInfo__horizontal: {
6604        display: 'inline-block',
6605        verticalAlign: 'top'
6606      },
6607  
6608      DayPicker_wrapper__horizontal: {
6609        display: 'inline-block',
6610        verticalAlign: 'top'
6611      },
6612  
6613      DayPicker_weekHeaders: {
6614        position: 'relative'
6615      },
6616  
6617      DayPicker_weekHeaders__horizontal: {
6618        marginLeft: spacing.dayPickerHorizontalPadding
6619      },
6620  
6621      DayPicker_weekHeader: {
6622        color: color.placeholderText,
6623        position: 'absolute',
6624        top: 62,
6625        zIndex: zIndex + 2,
6626        textAlign: 'left'
6627      },
6628  
6629      DayPicker_weekHeader__vertical: {
6630        left: '50%'
6631      },
6632  
6633      DayPicker_weekHeader__verticalScrollable: {
6634        top: 0,
6635        display: 'table-row',
6636        borderBottom: '1px solid ' + String(color.core.border),
6637        background: color.background,
6638        marginLeft: 0,
6639        left: 0,
6640        width: '100%',
6641        textAlign: 'center'
6642      },
6643  
6644      DayPicker_weekHeader_ul: {
6645        listStyle: 'none',
6646        margin: '1px 0',
6647        paddingLeft: 0,
6648        paddingRight: 0,
6649        fontSize: font.size
6650      },
6651  
6652      DayPicker_weekHeader_li: {
6653        display: 'inline-block',
6654        textAlign: 'center'
6655      },
6656  
6657      DayPicker_transitionContainer: {
6658        position: 'relative',
6659        overflow: 'hidden',
6660        borderRadius: 3
6661      },
6662  
6663      DayPicker_transitionContainer__horizontal: {
6664        transition: 'height 0.2s ease-in-out'
6665      },
6666  
6667      DayPicker_transitionContainer__vertical: {
6668        width: '100%'
6669      },
6670  
6671      DayPicker_transitionContainer__verticalScrollable: (0, _object2['default'])({
6672        paddingTop: 20,
6673        height: '100%',
6674        position: 'absolute',
6675        top: 0,
6676        bottom: 0,
6677        right: 0,
6678        left: 0,
6679        overflowY: 'scroll'
6680      }, noScrollBarOnVerticalScrollable && {
6681        '-webkitOverflowScrolling': 'touch',
6682        '::-webkit-scrollbar': {
6683          '-webkit-appearance': 'none',
6684          display: 'none'
6685        }
6686      })
6687    };
6688  })(DayPicker);
6689  
6690  /***/ }),
6691  /* 134 */,
6692  /* 135 */,
6693  /* 136 */,
6694  /* 137 */,
6695  /* 138 */,
6696  /* 139 */,
6697  /* 140 */,
6698  /* 141 */,
6699  /* 142 */
6700  /***/ (function(module, exports, __webpack_require__) {
6701  
6702  "use strict";
6703  
6704  
6705  /**
6706   * Copyright 2015, Yahoo! Inc.
6707   * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
6708   */
6709  var REACT_STATICS = {
6710      childContextTypes: true,
6711      contextTypes: true,
6712      defaultProps: true,
6713      displayName: true,
6714      getDefaultProps: true,
6715      getDerivedStateFromProps: true,
6716      mixins: true,
6717      propTypes: true,
6718      type: true
6719  };
6720  
6721  var KNOWN_STATICS = {
6722      name: true,
6723      length: true,
6724      prototype: true,
6725      caller: true,
6726      callee: true,
6727      arguments: true,
6728      arity: true
6729  };
6730  
6731  var defineProperty = Object.defineProperty;
6732  var getOwnPropertyNames = Object.getOwnPropertyNames;
6733  var getOwnPropertySymbols = Object.getOwnPropertySymbols;
6734  var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
6735  var getPrototypeOf = Object.getPrototypeOf;
6736  var objectPrototype = getPrototypeOf && getPrototypeOf(Object);
6737  
6738  function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
6739      if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components
6740  
6741          if (objectPrototype) {
6742              var inheritedComponent = getPrototypeOf(sourceComponent);
6743              if (inheritedComponent && inheritedComponent !== objectPrototype) {
6744                  hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
6745              }
6746          }
6747  
6748          var keys = getOwnPropertyNames(sourceComponent);
6749  
6750          if (getOwnPropertySymbols) {
6751              keys = keys.concat(getOwnPropertySymbols(sourceComponent));
6752          }
6753  
6754          for (var i = 0; i < keys.length; ++i) {
6755              var key = keys[i];
6756              if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {
6757                  var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
6758                  try { // Avoid failures from read-only properties
6759                      defineProperty(targetComponent, key, descriptor);
6760                  } catch (e) {}
6761              }
6762          }
6763  
6764          return targetComponent;
6765      }
6766  
6767      return targetComponent;
6768  }
6769  
6770  module.exports = hoistNonReactStatics;
6771  
6772  
6773  /***/ }),
6774  /* 143 */
6775  /***/ (function(module, exports, __webpack_require__) {
6776  
6777  "use strict";
6778  
6779  
6780  var toStr = Object.prototype.toString;
6781  
6782  module.exports = function isArguments(value) {
6783      var str = toStr.call(value);
6784      var isArgs = str === '[object Arguments]';
6785      if (!isArgs) {
6786          isArgs = str !== '[object Array]' &&
6787              value !== null &&
6788              typeof value === 'object' &&
6789              typeof value.length === 'number' &&
6790              value.length >= 0 &&
6791              toStr.call(value.callee) === '[object Function]';
6792      }
6793      return isArgs;
6794  };
6795  
6796  
6797  /***/ }),
6798  /* 144 */
6799  /***/ (function(module, exports, __webpack_require__) {
6800  
6801  "use strict";
6802  
6803  
6804  var ES = __webpack_require__(262);
6805  
6806  var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || (Math.pow(2, 53) - 1);
6807  
6808  // eslint-disable-next-line max-params, max-statements
6809  var FlattenIntoArray = function FlattenIntoArray(target, source, sourceLen, start, depth) {
6810      var targetIndex = start;
6811      var sourceIndex = 0;
6812  
6813      /*
6814      var mapperFunction;
6815      if (arguments.length > 5) {
6816          mapperFunction = arguments[5];
6817      }
6818      */
6819  
6820      while (sourceIndex < sourceLen) {
6821          var P = ES.ToString(sourceIndex);
6822          var exists = ES.HasProperty(source, P);
6823          if (exists) {
6824              var element = ES.Get(source, P);
6825              /*
6826              if (typeof mapperFunction !== 'undefined') {
6827                  if (arguments.length <= 6) {
6828                      throw new TypeError('Assertion failed: thisArg is required when mapperFunction is provided');
6829                  }
6830                  element = ES.Call(mapperFunction, arguments[6], [element, sourceIndex, source]);
6831              }
6832              */
6833              var shouldFlatten = false;
6834              if (depth > 0) {
6835                  shouldFlatten = ES.IsArray(element);
6836              }
6837              if (shouldFlatten) {
6838                  var elementLen = ES.ToLength(ES.Get(element, 'length'));
6839                  targetIndex = FlattenIntoArray(target, element, elementLen, targetIndex, depth - 1);
6840              } else {
6841                  if (targetIndex >= MAX_SAFE_INTEGER) {
6842                      throw new TypeError('index too large');
6843                  }
6844                  ES.CreateDataPropertyOrThrow(target, ES.ToString(targetIndex), element);
6845                  targetIndex += 1;
6846              }
6847          }
6848          sourceIndex += 1;
6849      }
6850  
6851      return targetIndex;
6852  };
6853  
6854  module.exports = function flat() {
6855      var O = ES.ToObject(this);
6856      var sourceLen = ES.ToLength(ES.Get(O, 'length'));
6857  
6858      var depthNum = 1;
6859      if (arguments.length > 0 && typeof arguments[0] !== 'undefined') {
6860          depthNum = ES.ToInteger(arguments[0]);
6861      }
6862  
6863      var A = ES.ArraySpeciesCreate(O, 0);
6864      FlattenIntoArray(A, O, sourceLen, 0, depthNum);
6865      return A;
6866  };
6867  
6868  
6869  /***/ }),
6870  /* 145 */
6871  /***/ (function(module, exports, __webpack_require__) {
6872  
6873  "use strict";
6874  
6875  
6876  var ES2015 = __webpack_require__(263);
6877  var assign = __webpack_require__(125);
6878  
6879  var ES2016 = assign(assign({}, ES2015), {
6880      // https://github.com/tc39/ecma262/pull/60
6881      SameValueNonNumber: function SameValueNonNumber(x, y) {
6882          if (typeof x === 'number' || typeof x !== typeof y) {
6883              throw new TypeError('SameValueNonNumber requires two non-number values of the same type.');
6884          }
6885          return this.SameValue(x, y);
6886      }
6887  });
6888  
6889  module.exports = ES2016;
6890  
6891  
6892  /***/ }),
6893  /* 146 */
6894  /***/ (function(module, exports) {
6895  
6896  module.exports = function isPrimitive(value) {
6897      return value === null || (typeof value !== 'function' && typeof value !== 'object');
6898  };
6899  
6900  
6901  /***/ }),
6902  /* 147 */
6903  /***/ (function(module, exports, __webpack_require__) {
6904  
6905  "use strict";
6906  
6907  
6908  var toStr = Object.prototype.toString;
6909  var hasSymbols = __webpack_require__(267)();
6910  
6911  if (hasSymbols) {
6912      var symToStr = Symbol.prototype.toString;
6913      var symStringRegex = /^Symbol\(.*\)$/;
6914      var isSymbolObject = function isRealSymbolObject(value) {
6915          if (typeof value.valueOf() !== 'symbol') {
6916              return false;
6917          }
6918          return symStringRegex.test(symToStr.call(value));
6919      };
6920  
6921      module.exports = function isSymbol(value) {
6922          if (typeof value === 'symbol') {
6923              return true;
6924          }
6925          if (toStr.call(value) !== '[object Symbol]') {
6926              return false;
6927          }
6928          try {
6929              return isSymbolObject(value);
6930          } catch (e) {
6931              return false;
6932          }
6933      };
6934  } else {
6935  
6936      module.exports = function isSymbol(value) {
6937          // this environment does not support Symbols.
6938          return  false && false;
6939      };
6940  }
6941  
6942  
6943  /***/ }),
6944  /* 148 */
6945  /***/ (function(module, exports, __webpack_require__) {
6946  
6947  "use strict";
6948  
6949  
6950  /* eslint complexity: [2, 17], max-statements: [2, 33] */
6951  module.exports = function hasSymbols() {
6952      if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
6953      if (typeof Symbol.iterator === 'symbol') { return true; }
6954  
6955      var obj = {};
6956      var sym = Symbol('test');
6957      var symObj = Object(sym);
6958      if (typeof sym === 'string') { return false; }
6959  
6960      if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
6961      if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
6962  
6963      // temp disabled per https://github.com/ljharb/object.assign/issues/17
6964      // if (sym instanceof Symbol) { return false; }
6965      // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
6966      // if (!(symObj instanceof Symbol)) { return false; }
6967  
6968      // if (typeof Symbol.prototype.toString !== 'function') { return false; }
6969      // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
6970  
6971      var symVal = 42;
6972      obj[sym] = symVal;
6973      for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax
6974      if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
6975  
6976      if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
6977  
6978      var syms = Object.getOwnPropertySymbols(obj);
6979      if (syms.length !== 1 || syms[0] !== sym) { return false; }
6980  
6981      if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
6982  
6983      if (typeof Object.getOwnPropertyDescriptor === 'function') {
6984          var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
6985          if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
6986      }
6987  
6988      return true;
6989  };
6990  
6991  
6992  /***/ }),
6993  /* 149 */
6994  /***/ (function(module, exports, __webpack_require__) {
6995  
6996  "use strict";
6997  
6998  
6999  var GetIntrinsic = __webpack_require__(100);
7000  
7001  var $TypeError = GetIntrinsic('%TypeError%');
7002  var $SyntaxError = GetIntrinsic('%SyntaxError%');
7003  
7004  var has = __webpack_require__(90);
7005  
7006  var predicates = {
7007    // https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type
7008    'Property Descriptor': function isPropertyDescriptor(ES, Desc) {
7009      if (ES.Type(Desc) !== 'Object') {
7010        return false;
7011      }
7012      var allowed = {
7013        '[[Configurable]]': true,
7014        '[[Enumerable]]': true,
7015        '[[Get]]': true,
7016        '[[Set]]': true,
7017        '[[Value]]': true,
7018        '[[Writable]]': true
7019      };
7020  
7021      for (var key in Desc) { // eslint-disable-line
7022        if (has(Desc, key) && !allowed[key]) {
7023          return false;
7024        }
7025      }
7026  
7027      var isData = has(Desc, '[[Value]]');
7028      var IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');
7029      if (isData && IsAccessor) {
7030        throw new $TypeError('Property Descriptors may not be both accessor and data descriptors');
7031      }
7032      return true;
7033    }
7034  };
7035  
7036  module.exports = function assertRecord(ES, recordType, argumentName, value) {
7037    var predicate = predicates[recordType];
7038    if (typeof predicate !== 'function') {
7039      throw new $SyntaxError('unknown record type: ' + recordType);
7040    }
7041    if (!predicate(ES, value)) {
7042      throw new $TypeError(argumentName + ' must be a ' + recordType);
7043    }
7044    console.log(predicate(ES, value), value);
7045  };
7046  
7047  
7048  /***/ }),
7049  /* 150 */
7050  /***/ (function(module, exports) {
7051  
7052  module.exports = Number.isNaN || function isNaN(a) {
7053      return a !== a;
7054  };
7055  
7056  
7057  /***/ }),
7058  /* 151 */
7059  /***/ (function(module, exports) {
7060  
7061  var $isNaN = Number.isNaN || function (a) { return a !== a; };
7062  
7063  module.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; };
7064  
7065  
7066  /***/ }),
7067  /* 152 */
7068  /***/ (function(module, exports) {
7069  
7070  module.exports = function sign(number) {
7071      return number >= 0 ? 1 : -1;
7072  };
7073  
7074  
7075  /***/ }),
7076  /* 153 */
7077  /***/ (function(module, exports) {
7078  
7079  module.exports = function mod(number, modulo) {
7080      var remain = number % modulo;
7081      return Math.floor(remain >= 0 ? remain : remain + modulo);
7082  };
7083  
7084  
7085  /***/ }),
7086  /* 154 */
7087  /***/ (function(module, exports, __webpack_require__) {
7088  
7089  "use strict";
7090  
7091  
7092  var implementation = __webpack_require__(144);
7093  
7094  module.exports = function getPolyfill() {
7095      return Array.prototype.flat || implementation;
7096  };
7097  
7098  
7099  /***/ }),
7100  /* 155 */
7101  /***/ (function(module, exports, __webpack_require__) {
7102  
7103  Object.defineProperty(exports, "__esModule", {
7104    value: true
7105  });
7106  var styleInterface = void 0;
7107  var styleTheme = void 0;
7108  
7109  function registerTheme(theme) {
7110    styleTheme = theme;
7111  }
7112  
7113  function registerInterface(interfaceToRegister) {
7114    styleInterface = interfaceToRegister;
7115  }
7116  
7117  function create(makeFromTheme, createWithDirection) {
7118    var styles = createWithDirection(makeFromTheme(styleTheme));
7119    return function () {
7120      return styles;
7121    };
7122  }
7123  
7124  function createLTR(makeFromTheme) {
7125    return create(makeFromTheme, styleInterface.createLTR || styleInterface.create);
7126  }
7127  
7128  function createRTL(makeFromTheme) {
7129    return create(makeFromTheme, styleInterface.createRTL || styleInterface.create);
7130  }
7131  
7132  function get() {
7133    return styleTheme;
7134  }
7135  
7136  function resolve() {
7137    if (false) {}
7138  
7139    for (var _len = arguments.length, styles = Array(_len), _key = 0; _key < _len; _key++) {
7140      styles[_key] = arguments[_key];
7141    }
7142  
7143    var result = styleInterface.resolve(styles);
7144  
7145    if (false) {}
7146  
7147    return result;
7148  }
7149  
7150  function resolveLTR() {
7151    for (var _len2 = arguments.length, styles = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
7152      styles[_key2] = arguments[_key2];
7153    }
7154  
7155    if (styleInterface.resolveLTR) {
7156      return styleInterface.resolveLTR(styles);
7157    }
7158  
7159    return resolve(styles);
7160  }
7161  
7162  function resolveRTL() {
7163    for (var _len3 = arguments.length, styles = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
7164      styles[_key3] = arguments[_key3];
7165    }
7166  
7167    if (styleInterface.resolveRTL) {
7168      return styleInterface.resolveRTL(styles);
7169    }
7170  
7171    return resolve(styles);
7172  }
7173  
7174  function flush() {
7175    if (styleInterface.flush) {
7176      styleInterface.flush();
7177    }
7178  }
7179  
7180  exports['default'] = {
7181    registerTheme: registerTheme,
7182    registerInterface: registerInterface,
7183    create: createLTR,
7184    createLTR: createLTR,
7185    createRTL: createRTL,
7186    get: get,
7187    resolve: resolveLTR,
7188    resolveLTR: resolveLTR,
7189    resolveRTL: resolveRTL,
7190    flush: flush
7191  };
7192  
7193  /***/ }),
7194  /* 156 */
7195  /***/ (function(module, exports, __webpack_require__) {
7196  
7197  "use strict";
7198  
7199  
7200  Object.defineProperty(exports, "__esModule", {
7201    value: true
7202  });
7203  var core = {
7204    white: '#fff',
7205    gray: '#484848',
7206    grayLight: '#82888a',
7207    grayLighter: '#cacccd',
7208    grayLightest: '#f2f2f2',
7209  
7210    borderMedium: '#c4c4c4',
7211    border: '#dbdbdb',
7212    borderLight: '#e4e7e7',
7213    borderLighter: '#eceeee',
7214    borderBright: '#f4f5f5',
7215  
7216    primary: '#00a699',
7217    primaryShade_1: '#33dacd',
7218    primaryShade_2: '#66e2da',
7219    primaryShade_3: '#80e8e0',
7220    primaryShade_4: '#b2f1ec',
7221    primary_dark: '#008489',
7222  
7223    secondary: '#007a87',
7224  
7225    yellow: '#ffe8bc',
7226    yellow_dark: '#ffce71'
7227  };
7228  
7229  exports['default'] = {
7230    reactDates: {
7231      zIndex: 0,
7232      border: {
7233        input: {
7234          border: 0,
7235          borderTop: 0,
7236          borderRight: 0,
7237          borderBottom: '2px solid transparent',
7238          borderLeft: 0,
7239          outlineFocused: 0,
7240          borderFocused: 0,
7241          borderTopFocused: 0,
7242          borderLeftFocused: 0,
7243          borderBottomFocused: '2px solid ' + String(core.primary_dark),
7244          borderRightFocused: 0,
7245          borderRadius: 0
7246        },
7247        pickerInput: {
7248          borderWidth: 1,
7249          borderStyle: 'solid',
7250          borderRadius: 2
7251        }
7252      },
7253  
7254      color: {
7255        core: core,
7256  
7257        disabled: core.grayLightest,
7258  
7259        background: core.white,
7260        backgroundDark: '#f2f2f2',
7261        backgroundFocused: core.white,
7262        border: 'rgb(219, 219, 219)',
7263        text: core.gray,
7264        textDisabled: core.border,
7265        textFocused: '#007a87',
7266        placeholderText: '#757575',
7267  
7268        outside: {
7269          backgroundColor: core.white,
7270          backgroundColor_active: core.white,
7271          backgroundColor_hover: core.white,
7272          color: core.gray,
7273          color_active: core.gray,
7274          color_hover: core.gray
7275        },
7276  
7277        highlighted: {
7278          backgroundColor: core.yellow,
7279          backgroundColor_active: core.yellow_dark,
7280          backgroundColor_hover: core.yellow_dark,
7281          color: core.gray,
7282          color_active: core.gray,
7283          color_hover: core.gray
7284        },
7285  
7286        minimumNights: {
7287          backgroundColor: core.white,
7288          backgroundColor_active: core.white,
7289          backgroundColor_hover: core.white,
7290          borderColor: core.borderLighter,
7291          color: core.grayLighter,
7292          color_active: core.grayLighter,
7293          color_hover: core.grayLighter
7294        },
7295  
7296        hoveredSpan: {
7297          backgroundColor: core.primaryShade_4,
7298          backgroundColor_active: core.primaryShade_3,
7299          backgroundColor_hover: core.primaryShade_4,
7300          borderColor: core.primaryShade_3,
7301          borderColor_active: core.primaryShade_3,
7302          borderColor_hover: core.primaryShade_3,
7303          color: core.secondary,
7304          color_active: core.secondary,
7305          color_hover: core.secondary
7306        },
7307  
7308        selectedSpan: {
7309          backgroundColor: core.primaryShade_2,
7310          backgroundColor_active: core.primaryShade_1,
7311          backgroundColor_hover: core.primaryShade_1,
7312          borderColor: core.primaryShade_1,
7313          borderColor_active: core.primary,
7314          borderColor_hover: core.primary,
7315          color: core.white,
7316          color_active: core.white,
7317          color_hover: core.white
7318        },
7319  
7320        selected: {
7321          backgroundColor: core.primary,
7322          backgroundColor_active: core.primary,
7323          backgroundColor_hover: core.primary,
7324          borderColor: core.primary,
7325          borderColor_active: core.primary,
7326          borderColor_hover: core.primary,
7327          color: core.white,
7328          color_active: core.white,
7329          color_hover: core.white
7330        },
7331  
7332        blocked_calendar: {
7333          backgroundColor: core.grayLighter,
7334          backgroundColor_active: core.grayLighter,
7335          backgroundColor_hover: core.grayLighter,
7336          borderColor: core.grayLighter,
7337          borderColor_active: core.grayLighter,
7338          borderColor_hover: core.grayLighter,
7339          color: core.grayLight,
7340          color_active: core.grayLight,
7341          color_hover: core.grayLight
7342        },
7343  
7344        blocked_out_of_range: {
7345          backgroundColor: core.white,
7346          backgroundColor_active: core.white,
7347          backgroundColor_hover: core.white,
7348          borderColor: core.borderLight,
7349          borderColor_active: core.borderLight,
7350          borderColor_hover: core.borderLight,
7351          color: core.grayLighter,
7352          color_active: core.grayLighter,
7353          color_hover: core.grayLighter
7354        }
7355      },
7356  
7357      spacing: {
7358        dayPickerHorizontalPadding: 9,
7359        captionPaddingTop: 22,
7360        captionPaddingBottom: 37,
7361        inputPadding: 0,
7362        displayTextPaddingVertical: undefined,
7363        displayTextPaddingTop: 11,
7364        displayTextPaddingBottom: 9,
7365        displayTextPaddingHorizontal: undefined,
7366        displayTextPaddingLeft: 11,
7367        displayTextPaddingRight: 11,
7368        displayTextPaddingVertical_small: undefined,
7369        displayTextPaddingTop_small: 7,
7370        displayTextPaddingBottom_small: 5,
7371        displayTextPaddingHorizontal_small: undefined,
7372        displayTextPaddingLeft_small: 7,
7373        displayTextPaddingRight_small: 7
7374      },
7375  
7376      sizing: {
7377        inputWidth: 130,
7378        inputWidth_small: 97,
7379        arrowWidth: 24
7380      },
7381  
7382      noScrollBarOnVerticalScrollable: false,
7383  
7384      font: {
7385        size: 14,
7386        captionSize: 18,
7387        input: {
7388          size: 19,
7389          lineHeight: '24px',
7390          size_small: 15,
7391          lineHeight_small: '18px',
7392          letterSpacing_small: '0.2px',
7393          styleDisabled: 'italic'
7394        }
7395      }
7396    }
7397  };
7398  
7399  /***/ }),
7400  /* 157 */
7401  /***/ (function(module, exports, __webpack_require__) {
7402  
7403  "use strict";
7404  
7405  
7406  // modified from https://github.com/es-shims/es6-shim
7407  var keys = __webpack_require__(123);
7408  var bind = __webpack_require__(73);
7409  var canBeObject = function (obj) {
7410      return typeof obj !== 'undefined' && obj !== null;
7411  };
7412  var hasSymbols = __webpack_require__(148)();
7413  var toObject = Object;
7414  var push = bind.call(Function.call, Array.prototype.push);
7415  var propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);
7416  var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;
7417  
7418  module.exports = function assign(target, source1) {
7419      if (!canBeObject(target)) { throw new TypeError('target must be an object'); }
7420      var objTarget = toObject(target);
7421      var s, source, i, props, syms, value, key;
7422      for (s = 1; s < arguments.length; ++s) {
7423          source = toObject(arguments[s]);
7424          props = keys(source);
7425          var getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);
7426          if (getSymbols) {
7427              syms = getSymbols(source);
7428              for (i = 0; i < syms.length; ++i) {
7429                  key = syms[i];
7430                  if (propIsEnumerable(source, key)) {
7431                      push(props, key);
7432                  }
7433              }
7434          }
7435          for (i = 0; i < props.length; ++i) {
7436              key = props[i];
7437              value = source[key];
7438              if (propIsEnumerable(source, key)) {
7439                  objTarget[key] = value;
7440              }
7441          }
7442      }
7443      return objTarget;
7444  };
7445  
7446  
7447  /***/ }),
7448  /* 158 */
7449  /***/ (function(module, exports, __webpack_require__) {
7450  
7451  "use strict";
7452  
7453  
7454  var implementation = __webpack_require__(157);
7455  
7456  var lacksProperEnumerationOrder = function () {
7457      if (!Object.assign) {
7458          return false;
7459      }
7460      // v8, specifically in node 4.x, has a bug with incorrect property enumeration order
7461      // note: this does not detect the bug unless there's 20 characters
7462      var str = 'abcdefghijklmnopqrst';
7463      var letters = str.split('');
7464      var map = {};
7465      for (var i = 0; i < letters.length; ++i) {
7466          map[letters[i]] = letters[i];
7467      }
7468      var obj = Object.assign({}, map);
7469      var actual = '';
7470      for (var k in obj) {
7471          actual += k;
7472      }
7473      return str !== actual;
7474  };
7475  
7476  var assignHasPendingExceptions = function () {
7477      if (!Object.assign || !Object.preventExtensions) {
7478          return false;
7479      }
7480      // Firefox 37 still has "pending exception" logic in its Object.assign implementation,
7481      // which is 72% slower than our shim, and Firefox 40's native implementation.
7482      var thrower = Object.preventExtensions({ 1: 2 });
7483      try {
7484          Object.assign(thrower, 'xy');
7485      } catch (e) {
7486          return thrower[1] === 'y';
7487      }
7488      return false;
7489  };
7490  
7491  module.exports = function getPolyfill() {
7492      if (!Object.assign) {
7493          return implementation;
7494      }
7495      if (lacksProperEnumerationOrder()) {
7496          return implementation;
7497      }
7498      if (assignHasPendingExceptions()) {
7499          return implementation;
7500      }
7501      return Object.assign;
7502  };
7503  
7504  
7505  /***/ }),
7506  /* 159 */
7507  /***/ (function(module, exports, __webpack_require__) {
7508  
7509  "use strict";
7510  
7511  
7512  Object.defineProperty(exports, "__esModule", {
7513    value: true
7514  });
7515  exports['default'] = getCalendarDaySettings;
7516  
7517  var _getPhrase = __webpack_require__(288);
7518  
7519  var _getPhrase2 = _interopRequireDefault(_getPhrase);
7520  
7521  var _constants = __webpack_require__(39);
7522  
7523  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
7524  
7525  function getCalendarDaySettings(day, ariaLabelFormat, daySize, modifiers, phrases) {
7526    var chooseAvailableDate = phrases.chooseAvailableDate,
7527        dateIsUnavailable = phrases.dateIsUnavailable,
7528        dateIsSelected = phrases.dateIsSelected;
7529  
7530  
7531    var daySizeStyles = {
7532      width: daySize,
7533      height: daySize - 1
7534    };
7535  
7536    var useDefaultCursor = modifiers.has('blocked-minimum-nights') || modifiers.has('blocked-calendar') || modifiers.has('blocked-out-of-range');
7537  
7538    var selected = modifiers.has('selected') || modifiers.has('selected-start') || modifiers.has('selected-end');
7539  
7540    var hoveredSpan = !selected && (modifiers.has('hovered-span') || modifiers.has('after-hovered-start'));
7541  
7542    var isOutsideRange = modifiers.has('blocked-out-of-range');
7543  
7544    var formattedDate = { date: day.format(ariaLabelFormat) };
7545  
7546    var ariaLabel = (0, _getPhrase2['default'])(chooseAvailableDate, formattedDate);
7547    if (modifiers.has(_constants.BLOCKED_MODIFIER)) {
7548      ariaLabel = (0, _getPhrase2['default'])(dateIsUnavailable, formattedDate);
7549    } else if (selected) {
7550      ariaLabel = (0, _getPhrase2['default'])(dateIsSelected, formattedDate);
7551    }
7552  
7553    return {
7554      daySizeStyles: daySizeStyles,
7555      useDefaultCursor: useDefaultCursor,
7556      selected: selected,
7557      hoveredSpan: hoveredSpan,
7558      isOutsideRange: isOutsideRange,
7559      ariaLabel: ariaLabel
7560    };
7561  }
7562  
7563  /***/ }),
7564  /* 160 */
7565  /***/ (function(module, exports, __webpack_require__) {
7566  
7567  "use strict";
7568  
7569  
7570  Object.defineProperty(exports, "__esModule", {
7571    value: true
7572  });
7573  
7574  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
7575  
7576  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
7577  
7578  var _object = __webpack_require__(46);
7579  
7580  var _object2 = _interopRequireDefault(_object);
7581  
7582  var _react = __webpack_require__(27);
7583  
7584  var _react2 = _interopRequireDefault(_react);
7585  
7586  var _propTypes = __webpack_require__(31);
7587  
7588  var _propTypes2 = _interopRequireDefault(_propTypes);
7589  
7590  var _reactAddonsShallowCompare = __webpack_require__(77);
7591  
7592  var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
7593  
7594  var _reactMomentProptypes = __webpack_require__(64);
7595  
7596  var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
7597  
7598  var _airbnbPropTypes = __webpack_require__(43);
7599  
7600  var _reactWithStyles = __webpack_require__(55);
7601  
7602  var _moment = __webpack_require__(29);
7603  
7604  var _moment2 = _interopRequireDefault(_moment);
7605  
7606  var _defaultPhrases = __webpack_require__(47);
7607  
7608  var _getPhrasePropTypes = __webpack_require__(51);
7609  
7610  var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
7611  
7612  var _CalendarWeek = __webpack_require__(289);
7613  
7614  var _CalendarWeek2 = _interopRequireDefault(_CalendarWeek);
7615  
7616  var _CalendarDay = __webpack_require__(126);
7617  
7618  var _CalendarDay2 = _interopRequireDefault(_CalendarDay);
7619  
7620  var _calculateDimension = __webpack_require__(161);
7621  
7622  var _calculateDimension2 = _interopRequireDefault(_calculateDimension);
7623  
7624  var _getCalendarMonthWeeks = __webpack_require__(291);
7625  
7626  var _getCalendarMonthWeeks2 = _interopRequireDefault(_getCalendarMonthWeeks);
7627  
7628  var _isSameDay = __webpack_require__(78);
7629  
7630  var _isSameDay2 = _interopRequireDefault(_isSameDay);
7631  
7632  var _toISODateString = __webpack_require__(102);
7633  
7634  var _toISODateString2 = _interopRequireDefault(_toISODateString);
7635  
7636  var _ModifiersShape = __webpack_require__(101);
7637  
7638  var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
7639  
7640  var _ScrollableOrientationShape = __webpack_require__(80);
7641  
7642  var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
7643  
7644  var _DayOfWeekShape = __webpack_require__(74);
7645  
7646  var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
7647  
7648  var _constants = __webpack_require__(39);
7649  
7650  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
7651  
7652  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7653  
7654  function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
7655  
7656  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint react/no-array-index-key: 0 */
7657  
7658  var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
7659    month: _reactMomentProptypes2['default'].momentObj,
7660    horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
7661    isVisible: _propTypes2['default'].bool,
7662    enableOutsideDays: _propTypes2['default'].bool,
7663    modifiers: _propTypes2['default'].objectOf(_ModifiersShape2['default']),
7664    orientation: _ScrollableOrientationShape2['default'],
7665    daySize: _airbnbPropTypes.nonNegativeInteger,
7666    onDayClick: _propTypes2['default'].func,
7667    onDayMouseEnter: _propTypes2['default'].func,
7668    onDayMouseLeave: _propTypes2['default'].func,
7669    onMonthSelect: _propTypes2['default'].func,
7670    onYearSelect: _propTypes2['default'].func,
7671    renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
7672    renderCalendarDay: _propTypes2['default'].func,
7673    renderDayContents: _propTypes2['default'].func,
7674    renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
7675    firstDayOfWeek: _DayOfWeekShape2['default'],
7676    setMonthTitleHeight: _propTypes2['default'].func,
7677    verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,
7678  
7679    focusedDate: _reactMomentProptypes2['default'].momentObj, // indicates focusable day
7680    isFocused: _propTypes2['default'].bool, // indicates whether or not to move focus to focusable day
7681  
7682    // i18n
7683    monthFormat: _propTypes2['default'].string,
7684    phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)),
7685    dayAriaLabelFormat: _propTypes2['default'].string
7686  }));
7687  
7688  var defaultProps = {
7689    month: (0, _moment2['default'])(),
7690    horizontalMonthPadding: 13,
7691    isVisible: true,
7692    enableOutsideDays: false,
7693    modifiers: {},
7694    orientation: _constants.HORIZONTAL_ORIENTATION,
7695    daySize: _constants.DAY_SIZE,
7696    onDayClick: function () {
7697      function onDayClick() {}
7698  
7699      return onDayClick;
7700    }(),
7701    onDayMouseEnter: function () {
7702      function onDayMouseEnter() {}
7703  
7704      return onDayMouseEnter;
7705    }(),
7706    onDayMouseLeave: function () {
7707      function onDayMouseLeave() {}
7708  
7709      return onDayMouseLeave;
7710    }(),
7711    onMonthSelect: function () {
7712      function onMonthSelect() {}
7713  
7714      return onMonthSelect;
7715    }(),
7716    onYearSelect: function () {
7717      function onYearSelect() {}
7718  
7719      return onYearSelect;
7720    }(),
7721  
7722    renderMonthText: null,
7723    renderCalendarDay: function () {
7724      function renderCalendarDay(props) {
7725        return _react2['default'].createElement(_CalendarDay2['default'], props);
7726      }
7727  
7728      return renderCalendarDay;
7729    }(),
7730    renderDayContents: null,
7731    renderMonthElement: null,
7732    firstDayOfWeek: null,
7733    setMonthTitleHeight: null,
7734  
7735    focusedDate: null,
7736    isFocused: false,
7737  
7738    // i18n
7739    monthFormat: 'MMMM YYYY', // english locale
7740    phrases: _defaultPhrases.CalendarDayPhrases,
7741    dayAriaLabelFormat: undefined,
7742    verticalBorderSpacing: undefined
7743  };
7744  
7745  var CalendarMonth = function (_React$Component) {
7746    _inherits(CalendarMonth, _React$Component);
7747  
7748    function CalendarMonth(props) {
7749      _classCallCheck(this, CalendarMonth);
7750  
7751      var _this = _possibleConstructorReturn(this, (CalendarMonth.__proto__ || Object.getPrototypeOf(CalendarMonth)).call(this, props));
7752  
7753      _this.state = {
7754        weeks: (0, _getCalendarMonthWeeks2['default'])(props.month, props.enableOutsideDays, props.firstDayOfWeek == null ? _moment2['default'].localeData().firstDayOfWeek() : props.firstDayOfWeek)
7755      };
7756  
7757      _this.setCaptionRef = _this.setCaptionRef.bind(_this);
7758      _this.setMonthTitleHeight = _this.setMonthTitleHeight.bind(_this);
7759      return _this;
7760    }
7761  
7762    _createClass(CalendarMonth, [{
7763      key: 'componentDidMount',
7764      value: function () {
7765        function componentDidMount() {
7766          this.setMonthTitleHeightTimeout = setTimeout(this.setMonthTitleHeight, 0);
7767        }
7768  
7769        return componentDidMount;
7770      }()
7771    }, {
7772      key: 'componentWillReceiveProps',
7773      value: function () {
7774        function componentWillReceiveProps(nextProps) {
7775          var month = nextProps.month,
7776              enableOutsideDays = nextProps.enableOutsideDays,
7777              firstDayOfWeek = nextProps.firstDayOfWeek;
7778          var _props = this.props,
7779              prevMonth = _props.month,
7780              prevEnableOutsideDays = _props.enableOutsideDays,
7781              prevFirstDayOfWeek = _props.firstDayOfWeek;
7782  
7783          if (!month.isSame(prevMonth) || enableOutsideDays !== prevEnableOutsideDays || firstDayOfWeek !== prevFirstDayOfWeek) {
7784            this.setState({
7785              weeks: (0, _getCalendarMonthWeeks2['default'])(month, enableOutsideDays, firstDayOfWeek == null ? _moment2['default'].localeData().firstDayOfWeek() : firstDayOfWeek)
7786            });
7787          }
7788        }
7789  
7790        return componentWillReceiveProps;
7791      }()
7792    }, {
7793      key: 'shouldComponentUpdate',
7794      value: function () {
7795        function shouldComponentUpdate(nextProps, nextState) {
7796          return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
7797        }
7798  
7799        return shouldComponentUpdate;
7800      }()
7801    }, {
7802      key: 'componentWillUnmount',
7803      value: function () {
7804        function componentWillUnmount() {
7805          if (this.setMonthTitleHeightTimeout) {
7806            clearTimeout(this.setMonthTitleHeightTimeout);
7807          }
7808        }
7809  
7810        return componentWillUnmount;
7811      }()
7812    }, {
7813      key: 'setMonthTitleHeight',
7814      value: function () {
7815        function setMonthTitleHeight() {
7816          var setMonthTitleHeight = this.props.setMonthTitleHeight;
7817  
7818          if (setMonthTitleHeight) {
7819            var captionHeight = (0, _calculateDimension2['default'])(this.captionRef, 'height', true, true);
7820            setMonthTitleHeight(captionHeight);
7821          }
7822        }
7823  
7824        return setMonthTitleHeight;
7825      }()
7826    }, {
7827      key: 'setCaptionRef',
7828      value: function () {
7829        function setCaptionRef(ref) {
7830          this.captionRef = ref;
7831        }
7832  
7833        return setCaptionRef;
7834      }()
7835    }, {
7836      key: 'render',
7837      value: function () {
7838        function render() {
7839          var _props2 = this.props,
7840              dayAriaLabelFormat = _props2.dayAriaLabelFormat,
7841              daySize = _props2.daySize,
7842              focusedDate = _props2.focusedDate,
7843              horizontalMonthPadding = _props2.horizontalMonthPadding,
7844              isFocused = _props2.isFocused,
7845              isVisible = _props2.isVisible,
7846              modifiers = _props2.modifiers,
7847              month = _props2.month,
7848              monthFormat = _props2.monthFormat,
7849              onDayClick = _props2.onDayClick,
7850              onDayMouseEnter = _props2.onDayMouseEnter,
7851              onDayMouseLeave = _props2.onDayMouseLeave,
7852              onMonthSelect = _props2.onMonthSelect,
7853              onYearSelect = _props2.onYearSelect,
7854              orientation = _props2.orientation,
7855              phrases = _props2.phrases,
7856              renderCalendarDay = _props2.renderCalendarDay,
7857              renderDayContents = _props2.renderDayContents,
7858              renderMonthElement = _props2.renderMonthElement,
7859              renderMonthText = _props2.renderMonthText,
7860              styles = _props2.styles,
7861              verticalBorderSpacing = _props2.verticalBorderSpacing;
7862          var weeks = this.state.weeks;
7863  
7864          var monthTitle = renderMonthText ? renderMonthText(month) : month.format(monthFormat);
7865  
7866          var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;
7867  
7868          return _react2['default'].createElement(
7869            'div',
7870            _extends({}, (0, _reactWithStyles.css)(styles.CalendarMonth, { padding: '0 ' + String(horizontalMonthPadding) + 'px' }), {
7871              'data-visible': isVisible
7872            }),
7873            _react2['default'].createElement(
7874              'div',
7875              _extends({
7876                ref: this.setCaptionRef
7877              }, (0, _reactWithStyles.css)(styles.CalendarMonth_caption, verticalScrollable && styles.CalendarMonth_caption__verticalScrollable)),
7878              renderMonthElement ? renderMonthElement({ month: month, onMonthSelect: onMonthSelect, onYearSelect: onYearSelect }) : _react2['default'].createElement(
7879                'strong',
7880                null,
7881                monthTitle
7882              )
7883            ),
7884            _react2['default'].createElement(
7885              'table',
7886              _extends({}, (0, _reactWithStyles.css)(!verticalBorderSpacing && styles.CalendarMonth_table, verticalBorderSpacing && styles.CalendarMonth_verticalSpacing, verticalBorderSpacing && { borderSpacing: '0px ' + String(verticalBorderSpacing) + 'px' }), {
7887                role: 'presentation'
7888              }),
7889              _react2['default'].createElement(
7890                'tbody',
7891                null,
7892                weeks.map(function (week, i) {
7893                  return _react2['default'].createElement(
7894                    _CalendarWeek2['default'],
7895                    { key: i },
7896                    week.map(function (day, dayOfWeek) {
7897                      return renderCalendarDay({
7898                        key: dayOfWeek,
7899                        day: day,
7900                        daySize: daySize,
7901                        isOutsideDay: !day || day.month() !== month.month(),
7902                        tabIndex: isVisible && (0, _isSameDay2['default'])(day, focusedDate) ? 0 : -1,
7903                        isFocused: isFocused,
7904                        onDayMouseEnter: onDayMouseEnter,
7905                        onDayMouseLeave: onDayMouseLeave,
7906                        onDayClick: onDayClick,
7907                        renderDayContents: renderDayContents,
7908                        phrases: phrases,
7909                        modifiers: modifiers[(0, _toISODateString2['default'])(day)],
7910                        ariaLabelFormat: dayAriaLabelFormat
7911                      });
7912                    })
7913                  );
7914                })
7915              )
7916            )
7917          );
7918        }
7919  
7920        return render;
7921      }()
7922    }]);
7923  
7924    return CalendarMonth;
7925  }(_react2['default'].Component);
7926  
7927  CalendarMonth.propTypes = propTypes;
7928  CalendarMonth.defaultProps = defaultProps;
7929  
7930  exports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) {
7931    var _ref$reactDates = _ref.reactDates,
7932        color = _ref$reactDates.color,
7933        font = _ref$reactDates.font,
7934        spacing = _ref$reactDates.spacing;
7935    return {
7936      CalendarMonth: {
7937        background: color.background,
7938        textAlign: 'center',
7939        verticalAlign: 'top',
7940        userSelect: 'none'
7941      },
7942  
7943      CalendarMonth_table: {
7944        borderCollapse: 'collapse',
7945        borderSpacing: 0
7946      },
7947  
7948      CalendarMonth_verticalSpacing: {
7949        borderCollapse: 'separate'
7950      },
7951  
7952      CalendarMonth_caption: {
7953        color: color.text,
7954        fontSize: font.captionSize,
7955        textAlign: 'center',
7956        paddingTop: spacing.captionPaddingTop,
7957        paddingBottom: spacing.captionPaddingBottom,
7958        captionSide: 'initial'
7959      },
7960  
7961      CalendarMonth_caption__verticalScrollable: {
7962        paddingTop: 12,
7963        paddingBottom: 7
7964      }
7965    };
7966  })(CalendarMonth);
7967  
7968  /***/ }),
7969  /* 161 */
7970  /***/ (function(module, exports, __webpack_require__) {
7971  
7972  "use strict";
7973  
7974  
7975  Object.defineProperty(exports, "__esModule", {
7976    value: true
7977  });
7978  exports['default'] = calculateDimension;
7979  function calculateDimension(el, axis) {
7980    var borderBox = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7981    var withMargin = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
7982  
7983    if (!el) {
7984      return 0;
7985    }
7986  
7987    var axisStart = axis === 'width' ? 'Left' : 'Top';
7988    var axisEnd = axis === 'width' ? 'Right' : 'Bottom';
7989  
7990    // Only read styles if we need to
7991    var style = !borderBox || withMargin ? window.getComputedStyle(el) : null;
7992  
7993    // Offset includes border and padding
7994    var offsetWidth = el.offsetWidth,
7995        offsetHeight = el.offsetHeight;
7996  
7997    var size = axis === 'width' ? offsetWidth : offsetHeight;
7998  
7999    // Get the inner size
8000    if (!borderBox) {
8001      size -= parseFloat(style['padding' + axisStart]) + parseFloat(style['padding' + axisEnd]) + parseFloat(style['border' + axisStart + 'Width']) + parseFloat(style['border' + axisEnd + 'Width']);
8002    }
8003  
8004    // Apply margin
8005    if (withMargin) {
8006      size += parseFloat(style['margin' + axisStart]) + parseFloat(style['margin' + axisEnd]);
8007    }
8008  
8009    return size;
8010  }
8011  
8012  /***/ }),
8013  /* 162 */
8014  /***/ (function(module, exports, __webpack_require__) {
8015  
8016  "use strict";
8017  
8018  
8019  Object.defineProperty(exports, "__esModule", {
8020    value: true
8021  });
8022  
8023  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
8024  
8025  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8026  
8027  var _object = __webpack_require__(46);
8028  
8029  var _object2 = _interopRequireDefault(_object);
8030  
8031  var _react = __webpack_require__(27);
8032  
8033  var _react2 = _interopRequireDefault(_react);
8034  
8035  var _propTypes = __webpack_require__(31);
8036  
8037  var _propTypes2 = _interopRequireDefault(_propTypes);
8038  
8039  var _reactAddonsShallowCompare = __webpack_require__(77);
8040  
8041  var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
8042  
8043  var _reactMomentProptypes = __webpack_require__(64);
8044  
8045  var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
8046  
8047  var _airbnbPropTypes = __webpack_require__(43);
8048  
8049  var _reactWithStyles = __webpack_require__(55);
8050  
8051  var _moment = __webpack_require__(29);
8052  
8053  var _moment2 = _interopRequireDefault(_moment);
8054  
8055  var _consolidatedEvents = __webpack_require__(103);
8056  
8057  var _defaultPhrases = __webpack_require__(47);
8058  
8059  var _getPhrasePropTypes = __webpack_require__(51);
8060  
8061  var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
8062  
8063  var _CalendarMonth = __webpack_require__(160);
8064  
8065  var _CalendarMonth2 = _interopRequireDefault(_CalendarMonth);
8066  
8067  var _isTransitionEndSupported = __webpack_require__(292);
8068  
8069  var _isTransitionEndSupported2 = _interopRequireDefault(_isTransitionEndSupported);
8070  
8071  var _getTransformStyles = __webpack_require__(293);
8072  
8073  var _getTransformStyles2 = _interopRequireDefault(_getTransformStyles);
8074  
8075  var _getCalendarMonthWidth = __webpack_require__(163);
8076  
8077  var _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth);
8078  
8079  var _toISOMonthString = __webpack_require__(104);
8080  
8081  var _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);
8082  
8083  var _isPrevMonth = __webpack_require__(294);
8084  
8085  var _isPrevMonth2 = _interopRequireDefault(_isPrevMonth);
8086  
8087  var _isNextMonth = __webpack_require__(295);
8088  
8089  var _isNextMonth2 = _interopRequireDefault(_isNextMonth);
8090  
8091  var _ModifiersShape = __webpack_require__(101);
8092  
8093  var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
8094  
8095  var _ScrollableOrientationShape = __webpack_require__(80);
8096  
8097  var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
8098  
8099  var _DayOfWeekShape = __webpack_require__(74);
8100  
8101  var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
8102  
8103  var _constants = __webpack_require__(39);
8104  
8105  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
8106  
8107  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8108  
8109  function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
8110  
8111  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
8112  
8113  var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
8114    enableOutsideDays: _propTypes2['default'].bool,
8115    firstVisibleMonthIndex: _propTypes2['default'].number,
8116    horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
8117    initialMonth: _reactMomentProptypes2['default'].momentObj,
8118    isAnimating: _propTypes2['default'].bool,
8119    numberOfMonths: _propTypes2['default'].number,
8120    modifiers: _propTypes2['default'].objectOf(_propTypes2['default'].objectOf(_ModifiersShape2['default'])),
8121    orientation: _ScrollableOrientationShape2['default'],
8122    onDayClick: _propTypes2['default'].func,
8123    onDayMouseEnter: _propTypes2['default'].func,
8124    onDayMouseLeave: _propTypes2['default'].func,
8125    onMonthTransitionEnd: _propTypes2['default'].func,
8126    onMonthChange: _propTypes2['default'].func,
8127    onYearChange: _propTypes2['default'].func,
8128    renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
8129    renderCalendarDay: _propTypes2['default'].func,
8130    renderDayContents: _propTypes2['default'].func,
8131    translationValue: _propTypes2['default'].number,
8132    renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
8133    daySize: _airbnbPropTypes.nonNegativeInteger,
8134    focusedDate: _reactMomentProptypes2['default'].momentObj, // indicates focusable day
8135    isFocused: _propTypes2['default'].bool, // indicates whether or not to move focus to focusable day
8136    firstDayOfWeek: _DayOfWeekShape2['default'],
8137    setMonthTitleHeight: _propTypes2['default'].func,
8138    isRTL: _propTypes2['default'].bool,
8139    transitionDuration: _airbnbPropTypes.nonNegativeInteger,
8140    verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,
8141  
8142    // i18n
8143    monthFormat: _propTypes2['default'].string,
8144    phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)),
8145    dayAriaLabelFormat: _propTypes2['default'].string
8146  }));
8147  
8148  var defaultProps = {
8149    enableOutsideDays: false,
8150    firstVisibleMonthIndex: 0,
8151    horizontalMonthPadding: 13,
8152    initialMonth: (0, _moment2['default'])(),
8153    isAnimating: false,
8154    numberOfMonths: 1,
8155    modifiers: {},
8156    orientation: _constants.HORIZONTAL_ORIENTATION,
8157    onDayClick: function () {
8158      function onDayClick() {}
8159  
8160      return onDayClick;
8161    }(),
8162    onDayMouseEnter: function () {
8163      function onDayMouseEnter() {}
8164  
8165      return onDayMouseEnter;
8166    }(),
8167    onDayMouseLeave: function () {
8168      function onDayMouseLeave() {}
8169  
8170      return onDayMouseLeave;
8171    }(),
8172    onMonthChange: function () {
8173      function onMonthChange() {}
8174  
8175      return onMonthChange;
8176    }(),
8177    onYearChange: function () {
8178      function onYearChange() {}
8179  
8180      return onYearChange;
8181    }(),
8182    onMonthTransitionEnd: function () {
8183      function onMonthTransitionEnd() {}
8184  
8185      return onMonthTransitionEnd;
8186    }(),
8187  
8188    renderMonthText: null,
8189    renderCalendarDay: undefined,
8190    renderDayContents: null,
8191    translationValue: null,
8192    renderMonthElement: null,
8193    daySize: _constants.DAY_SIZE,
8194    focusedDate: null,
8195    isFocused: false,
8196    firstDayOfWeek: null,
8197    setMonthTitleHeight: null,
8198    isRTL: false,
8199    transitionDuration: 200,
8200    verticalBorderSpacing: undefined,
8201  
8202    // i18n
8203    monthFormat: 'MMMM YYYY', // english locale
8204    phrases: _defaultPhrases.CalendarDayPhrases,
8205    dayAriaLabelFormat: undefined
8206  };
8207  
8208  function getMonths(initialMonth, numberOfMonths, withoutTransitionMonths) {
8209    var month = initialMonth.clone();
8210    if (!withoutTransitionMonths) month = month.subtract(1, 'month');
8211  
8212    var months = [];
8213    for (var i = 0; i < (withoutTransitionMonths ? numberOfMonths : numberOfMonths + 2); i += 1) {
8214      months.push(month);
8215      month = month.clone().add(1, 'month');
8216    }
8217  
8218    return months;
8219  }
8220  
8221  var CalendarMonthGrid = function (_React$Component) {
8222    _inherits(CalendarMonthGrid, _React$Component);
8223  
8224    function CalendarMonthGrid(props) {
8225      _classCallCheck(this, CalendarMonthGrid);
8226  
8227      var _this = _possibleConstructorReturn(this, (CalendarMonthGrid.__proto__ || Object.getPrototypeOf(CalendarMonthGrid)).call(this, props));
8228  
8229      var withoutTransitionMonths = props.orientation === _constants.VERTICAL_SCROLLABLE;
8230      _this.state = {
8231        months: getMonths(props.initialMonth, props.numberOfMonths, withoutTransitionMonths)
8232      };
8233  
8234      _this.isTransitionEndSupported = (0, _isTransitionEndSupported2['default'])();
8235      _this.onTransitionEnd = _this.onTransitionEnd.bind(_this);
8236      _this.setContainerRef = _this.setContainerRef.bind(_this);
8237  
8238      _this.locale = _moment2['default'].locale();
8239      _this.onMonthSelect = _this.onMonthSelect.bind(_this);
8240      _this.onYearSelect = _this.onYearSelect.bind(_this);
8241      return _this;
8242    }
8243  
8244    _createClass(CalendarMonthGrid, [{
8245      key: 'componentDidMount',
8246      value: function () {
8247        function componentDidMount() {
8248          this.removeEventListener = (0, _consolidatedEvents.addEventListener)(this.container, 'transitionend', this.onTransitionEnd);
8249        }
8250  
8251        return componentDidMount;
8252      }()
8253    }, {
8254      key: 'componentWillReceiveProps',
8255      value: function () {
8256        function componentWillReceiveProps(nextProps) {
8257          var _this2 = this;
8258  
8259          var initialMonth = nextProps.initialMonth,
8260              numberOfMonths = nextProps.numberOfMonths,
8261              orientation = nextProps.orientation;
8262          var months = this.state.months;
8263          var _props = this.props,
8264              prevInitialMonth = _props.initialMonth,
8265              prevNumberOfMonths = _props.numberOfMonths;
8266  
8267          var hasMonthChanged = !prevInitialMonth.isSame(initialMonth, 'month');
8268          var hasNumberOfMonthsChanged = prevNumberOfMonths !== numberOfMonths;
8269          var newMonths = months;
8270  
8271          if (hasMonthChanged && !hasNumberOfMonthsChanged) {
8272            if ((0, _isNextMonth2['default'])(prevInitialMonth, initialMonth)) {
8273              newMonths = months.slice(1);
8274              newMonths.push(months[months.length - 1].clone().add(1, 'month'));
8275            } else if ((0, _isPrevMonth2['default'])(prevInitialMonth, initialMonth)) {
8276              newMonths = months.slice(0, months.length - 1);
8277              newMonths.unshift(months[0].clone().subtract(1, 'month'));
8278            } else {
8279              var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
8280              newMonths = getMonths(initialMonth, numberOfMonths, withoutTransitionMonths);
8281            }
8282          }
8283  
8284          if (hasNumberOfMonthsChanged) {
8285            var _withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
8286            newMonths = getMonths(initialMonth, numberOfMonths, _withoutTransitionMonths);
8287          }
8288  
8289