[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

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

   1  /******/ (function() { // webpackBootstrap
   2  /******/     var __webpack_modules__ = ({
   3  
   4  /***/ 5096:
   5  /***/ (function(module) {
   6  
   7  "use strict";
   8  
   9  
  10  function noop() {
  11    return null;
  12  }
  13  
  14  noop.isRequired = noop;
  15  
  16  function noopThunk() {
  17    return noop;
  18  }
  19  
  20  module.exports = {
  21    and: noopThunk,
  22    between: noopThunk,
  23    booleanSome: noopThunk,
  24    childrenHavePropXorChildren: noopThunk,
  25    childrenOf: noopThunk,
  26    childrenOfType: noopThunk,
  27    childrenSequenceOf: noopThunk,
  28    componentWithName: noopThunk,
  29    disallowedIf: noopThunk,
  30    elementType: noopThunk,
  31    empty: noopThunk,
  32    explicitNull: noopThunk,
  33    forbidExtraProps: Object,
  34    integer: noopThunk,
  35    keysOf: noopThunk,
  36    mutuallyExclusiveProps: noopThunk,
  37    mutuallyExclusiveTrueProps: noopThunk,
  38    nChildren: noopThunk,
  39    nonNegativeInteger: noop,
  40    nonNegativeNumber: noopThunk,
  41    numericString: noopThunk,
  42    object: noopThunk,
  43    or: noopThunk,
  44    predicate: noopThunk,
  45    range: noopThunk,
  46    ref: noopThunk,
  47    requiredBy: noopThunk,
  48    restrictedProp: noopThunk,
  49    sequenceOf: noopThunk,
  50    shape: noopThunk,
  51    stringEndsWith: noopThunk,
  52    stringStartsWith: noopThunk,
  53    uniqueArray: noopThunk,
  54    uniqueArrayOf: noopThunk,
  55    valuesOf: noopThunk,
  56    withShape: noopThunk
  57  };
  58  
  59  
  60  /***/ }),
  61  
  62  /***/ 4882:
  63  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
  64  
  65  module.exports =  true ? __webpack_require__(5096) : 0;
  66  
  67  
  68  
  69  /***/ }),
  70  
  71  /***/ 4485:
  72  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
  73  
  74  "use strict";
  75  
  76  
  77  var ArraySpeciesCreate = __webpack_require__(1539);
  78  var FlattenIntoArray = __webpack_require__(6739);
  79  var Get = __webpack_require__(6448);
  80  var ToIntegerOrInfinity = __webpack_require__(1723);
  81  var ToLength = __webpack_require__(6840);
  82  var ToObject = __webpack_require__(1283);
  83  
  84  module.exports = function flat() {
  85      var O = ToObject(this);
  86      var sourceLen = ToLength(Get(O, 'length'));
  87  
  88      var depthNum = 1;
  89      if (arguments.length > 0 && typeof arguments[0] !== 'undefined') {
  90          depthNum = ToIntegerOrInfinity(arguments[0]);
  91      }
  92  
  93      var A = ArraySpeciesCreate(O, 0);
  94      FlattenIntoArray(A, O, sourceLen, 0, depthNum);
  95      return A;
  96  };
  97  
  98  
  99  /***/ }),
 100  
 101  /***/ 116:
 102  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
 103  
 104  "use strict";
 105  
 106  
 107  var define = __webpack_require__(9170);
 108  var callBind = __webpack_require__(9961);
 109  
 110  var implementation = __webpack_require__(4485);
 111  var getPolyfill = __webpack_require__(616);
 112  var polyfill = getPolyfill();
 113  var shim = __webpack_require__(2059);
 114  
 115  var boundFlat = callBind(polyfill);
 116  
 117  define(boundFlat, {
 118      getPolyfill: getPolyfill,
 119      implementation: implementation,
 120      shim: shim
 121  });
 122  
 123  module.exports = boundFlat;
 124  
 125  
 126  /***/ }),
 127  
 128  /***/ 9630:
 129  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
 130  
 131  "use strict";
 132  
 133  
 134  var GetIntrinsic = __webpack_require__(1801);
 135  
 136  var callBind = __webpack_require__(9961);
 137  
 138  var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));
 139  
 140  module.exports = function callBoundIntrinsic(name, allowMissing) {
 141      var intrinsic = GetIntrinsic(name, !!allowMissing);
 142      if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {
 143          return callBind(intrinsic);
 144      }
 145      return intrinsic;
 146  };
 147  
 148  
 149  /***/ }),
 150  
 151  /***/ 9961:
 152  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
 153  
 154  "use strict";
 155  
 156  
 157  var bind = __webpack_require__(1930);
 158  var GetIntrinsic = __webpack_require__(1801);
 159  
 160  var $apply = GetIntrinsic('%Function.prototype.apply%');
 161  var $call = GetIntrinsic('%Function.prototype.call%');
 162  var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
 163  
 164  var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);
 165  var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
 166  var $max = GetIntrinsic('%Math.max%');
 167  
 168  if ($defineProperty) {
 169      try {
 170          $defineProperty({}, 'a', { value: 1 });
 171      } catch (e) {
 172          // IE 8 has a broken defineProperty
 173          $defineProperty = null;
 174      }
 175  }
 176  
 177  module.exports = function callBind(originalFunction) {
 178      var func = $reflectApply(bind, $call, arguments);
 179      if ($gOPD && $defineProperty) {
 180          var desc = $gOPD(func, 'length');
 181          if (desc.configurable) {
 182              // original length, plus the receiver, minus any additional arguments (after the receiver)
 183              $defineProperty(
 184                  func,
 185                  'length',
 186                  { value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }
 187              );
 188          }
 189      }
 190      return func;
 191  };
 192  
 193  var applyBind = function applyBind() {
 194      return $reflectApply(bind, $apply, arguments);
 195  };
 196  
 197  if ($defineProperty) {
 198      $defineProperty(module.exports, 'apply', { value: applyBind });
 199  } else {
 200      module.exports.apply = applyBind;
 201  }
 202  
 203  
 204  /***/ }),
 205  
 206  /***/ 4219:
 207  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
 208  
 209  "use strict";
 210  
 211  
 212  var undefined;
 213  
 214  var $SyntaxError = SyntaxError;
 215  var $Function = Function;
 216  var $TypeError = TypeError;
 217  
 218  // eslint-disable-next-line consistent-return
 219  var getEvalledConstructor = function (expressionSyntax) {
 220      try {
 221          return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')();
 222      } catch (e) {}
 223  };
 224  
 225  var $gOPD = Object.getOwnPropertyDescriptor;
 226  if ($gOPD) {
 227      try {
 228          $gOPD({}, '');
 229      } catch (e) {
 230          $gOPD = null; // this is IE 8, which has a broken gOPD
 231      }
 232  }
 233  
 234  var throwTypeError = function () {
 235      throw new $TypeError();
 236  };
 237  var ThrowTypeError = $gOPD
 238      ? (function () {
 239          try {
 240              // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
 241              arguments.callee; // IE 8 does not throw here
 242              return throwTypeError;
 243          } catch (calleeThrows) {
 244              try {
 245                  // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
 246                  return $gOPD(arguments, 'callee').get;
 247              } catch (gOPDthrows) {
 248                  return throwTypeError;
 249              }
 250          }
 251      }())
 252      : throwTypeError;
 253  
 254  var hasSymbols = __webpack_require__(9828)();
 255  
 256  var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
 257  
 258  var needsEval = {};
 259  
 260  var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
 261  
 262  var INTRINSICS = {
 263      '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
 264      '%Array%': Array,
 265      '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
 266      '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
 267      '%AsyncFromSyncIteratorPrototype%': undefined,
 268      '%AsyncFunction%': needsEval,
 269      '%AsyncGenerator%': needsEval,
 270      '%AsyncGeneratorFunction%': needsEval,
 271      '%AsyncIteratorPrototype%': needsEval,
 272      '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
 273      '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,
 274      '%Boolean%': Boolean,
 275      '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,
 276      '%Date%': Date,
 277      '%decodeURI%': decodeURI,
 278      '%decodeURIComponent%': decodeURIComponent,
 279      '%encodeURI%': encodeURI,
 280      '%encodeURIComponent%': encodeURIComponent,
 281      '%Error%': Error,
 282      '%eval%': eval, // eslint-disable-line no-eval
 283      '%EvalError%': EvalError,
 284      '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
 285      '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
 286      '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
 287      '%Function%': $Function,
 288      '%GeneratorFunction%': needsEval,
 289      '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
 290      '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
 291      '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
 292      '%isFinite%': isFinite,
 293      '%isNaN%': isNaN,
 294      '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
 295      '%JSON%': typeof JSON === 'object' ? JSON : undefined,
 296      '%Map%': typeof Map === 'undefined' ? undefined : Map,
 297      '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
 298      '%Math%': Math,
 299      '%Number%': Number,
 300      '%Object%': Object,
 301      '%parseFloat%': parseFloat,
 302      '%parseInt%': parseInt,
 303      '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
 304      '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
 305      '%RangeError%': RangeError,
 306      '%ReferenceError%': ReferenceError,
 307      '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
 308      '%RegExp%': RegExp,
 309      '%Set%': typeof Set === 'undefined' ? undefined : Set,
 310      '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
 311      '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
 312      '%String%': String,
 313      '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
 314      '%Symbol%': hasSymbols ? Symbol : undefined,
 315      '%SyntaxError%': $SyntaxError,
 316      '%ThrowTypeError%': ThrowTypeError,
 317      '%TypedArray%': TypedArray,
 318      '%TypeError%': $TypeError,
 319      '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
 320      '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
 321      '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
 322      '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
 323      '%URIError%': URIError,
 324      '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
 325      '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
 326      '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
 327  };
 328  
 329  var doEval = function doEval(name) {
 330      var value;
 331      if (name === '%AsyncFunction%') {
 332          value = getEvalledConstructor('async function () {}');
 333      } else if (name === '%GeneratorFunction%') {
 334          value = getEvalledConstructor('function* () {}');
 335      } else if (name === '%AsyncGeneratorFunction%') {
 336          value = getEvalledConstructor('async function* () {}');
 337      } else if (name === '%AsyncGenerator%') {
 338          var fn = doEval('%AsyncGeneratorFunction%');
 339          if (fn) {
 340              value = fn.prototype;
 341          }
 342      } else if (name === '%AsyncIteratorPrototype%') {
 343          var gen = doEval('%AsyncGenerator%');
 344          if (gen) {
 345              value = getProto(gen.prototype);
 346          }
 347      }
 348  
 349      INTRINSICS[name] = value;
 350  
 351      return value;
 352  };
 353  
 354  var LEGACY_ALIASES = {
 355      '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
 356      '%ArrayPrototype%': ['Array', 'prototype'],
 357      '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
 358      '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
 359      '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
 360      '%ArrayProto_values%': ['Array', 'prototype', 'values'],
 361      '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
 362      '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
 363      '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],
 364      '%BooleanPrototype%': ['Boolean', 'prototype'],
 365      '%DataViewPrototype%': ['DataView', 'prototype'],
 366      '%DatePrototype%': ['Date', 'prototype'],
 367      '%ErrorPrototype%': ['Error', 'prototype'],
 368      '%EvalErrorPrototype%': ['EvalError', 'prototype'],
 369      '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
 370      '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
 371      '%FunctionPrototype%': ['Function', 'prototype'],
 372      '%Generator%': ['GeneratorFunction', 'prototype'],
 373      '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],
 374      '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
 375      '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
 376      '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
 377      '%JSONParse%': ['JSON', 'parse'],
 378      '%JSONStringify%': ['JSON', 'stringify'],
 379      '%MapPrototype%': ['Map', 'prototype'],
 380      '%NumberPrototype%': ['Number', 'prototype'],
 381      '%ObjectPrototype%': ['Object', 'prototype'],
 382      '%ObjProto_toString%': ['Object', 'prototype', 'toString'],
 383      '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
 384      '%PromisePrototype%': ['Promise', 'prototype'],
 385      '%PromiseProto_then%': ['Promise', 'prototype', 'then'],
 386      '%Promise_all%': ['Promise', 'all'],
 387      '%Promise_reject%': ['Promise', 'reject'],
 388      '%Promise_resolve%': ['Promise', 'resolve'],
 389      '%RangeErrorPrototype%': ['RangeError', 'prototype'],
 390      '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
 391      '%RegExpPrototype%': ['RegExp', 'prototype'],
 392      '%SetPrototype%': ['Set', 'prototype'],
 393      '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
 394      '%StringPrototype%': ['String', 'prototype'],
 395      '%SymbolPrototype%': ['Symbol', 'prototype'],
 396      '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
 397      '%TypedArrayPrototype%': ['TypedArray', 'prototype'],
 398      '%TypeErrorPrototype%': ['TypeError', 'prototype'],
 399      '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
 400      '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
 401      '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
 402      '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
 403      '%URIErrorPrototype%': ['URIError', 'prototype'],
 404      '%WeakMapPrototype%': ['WeakMap', 'prototype'],
 405      '%WeakSetPrototype%': ['WeakSet', 'prototype']
 406  };
 407  
 408  var bind = __webpack_require__(1930);
 409  var hasOwn = __webpack_require__(9284);
 410  var $concat = bind.call(Function.call, Array.prototype.concat);
 411  var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
 412  var $replace = bind.call(Function.call, String.prototype.replace);
 413  var $strSlice = bind.call(Function.call, String.prototype.slice);
 414  
 415  /* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
 416  var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
 417  var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
 418  var stringToPath = function stringToPath(string) {
 419      var first = $strSlice(string, 0, 1);
 420      var last = $strSlice(string, -1);
 421      if (first === '%' && last !== '%') {
 422          throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');
 423      } else if (last === '%' && first !== '%') {
 424          throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');
 425      }
 426      var result = [];
 427      $replace(string, rePropName, function (match, number, quote, subString) {
 428          result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;
 429      });
 430      return result;
 431  };
 432  /* end adaptation */
 433  
 434  var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
 435      var intrinsicName = name;
 436      var alias;
 437      if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
 438          alias = LEGACY_ALIASES[intrinsicName];
 439          intrinsicName = '%' + alias[0] + '%';
 440      }
 441  
 442      if (hasOwn(INTRINSICS, intrinsicName)) {
 443          var value = INTRINSICS[intrinsicName];
 444          if (value === needsEval) {
 445              value = doEval(intrinsicName);
 446          }
 447          if (typeof value === 'undefined' && !allowMissing) {
 448              throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
 449          }
 450  
 451          return {
 452              alias: alias,
 453              name: intrinsicName,
 454              value: value
 455          };
 456      }
 457  
 458      throw new $SyntaxError('intrinsic ' + name + ' does not exist!');
 459  };
 460  
 461  module.exports = function GetIntrinsic(name, allowMissing) {
 462      if (typeof name !== 'string' || name.length === 0) {
 463          throw new $TypeError('intrinsic name must be a non-empty string');
 464      }
 465      if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
 466          throw new $TypeError('"allowMissing" argument must be a boolean');
 467      }
 468  
 469      var parts = stringToPath(name);
 470      var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
 471  
 472      var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);
 473      var intrinsicRealName = intrinsic.name;
 474      var value = intrinsic.value;
 475      var skipFurtherCaching = false;
 476  
 477      var alias = intrinsic.alias;
 478      if (alias) {
 479          intrinsicBaseName = alias[0];
 480          $spliceApply(parts, $concat([0, 1], alias));
 481      }
 482  
 483      for (var i = 1, isOwn = true; i < parts.length; i += 1) {
 484          var part = parts[i];
 485          var first = $strSlice(part, 0, 1);
 486          var last = $strSlice(part, -1);
 487          if (
 488              (
 489                  (first === '"' || first === "'" || first === '`')
 490                  || (last === '"' || last === "'" || last === '`')
 491              )
 492              && first !== last
 493          ) {
 494              throw new $SyntaxError('property names with quotes must have matching quotes');
 495          }
 496          if (part === 'constructor' || !isOwn) {
 497              skipFurtherCaching = true;
 498          }
 499  
 500          intrinsicBaseName += '.' + part;
 501          intrinsicRealName = '%' + intrinsicBaseName + '%';
 502  
 503          if (hasOwn(INTRINSICS, intrinsicRealName)) {
 504              value = INTRINSICS[intrinsicRealName];
 505          } else if (value != null) {
 506              if (!(part in value)) {
 507                  if (!allowMissing) {
 508                      throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
 509                  }
 510                  return void undefined;
 511              }
 512              if ($gOPD && (i + 1) >= parts.length) {
 513                  var desc = $gOPD(value, part);
 514                  isOwn = !!desc;
 515  
 516                  // By convention, when a data property is converted to an accessor
 517                  // property to emulate a data property that does not suffer from
 518                  // the override mistake, that accessor's getter is marked with
 519                  // an `originalValue` property. Here, when we detect this, we
 520                  // uphold the illusion by pretending to see that original data
 521                  // property, i.e., returning the value rather than the getter
 522                  // itself.
 523                  if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {
 524                      value = desc.get;
 525                  } else {
 526                      value = value[part];
 527                  }
 528              } else {
 529                  isOwn = hasOwn(value, part);
 530                  value = value[part];
 531              }
 532  
 533              if (isOwn && !skipFurtherCaching) {
 534                  INTRINSICS[intrinsicRealName] = value;
 535              }
 536          }
 537      }
 538      return value;
 539  };
 540  
 541  
 542  /***/ }),
 543  
 544  /***/ 9828:
 545  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
 546  
 547  "use strict";
 548  
 549  
 550  var origSymbol = typeof Symbol !== 'undefined' && Symbol;
 551  var hasSymbolSham = __webpack_require__(5960);
 552  
 553  module.exports = function hasNativeSymbols() {
 554      if (typeof origSymbol !== 'function') { return false; }
 555      if (typeof Symbol !== 'function') { return false; }
 556      if (typeof origSymbol('foo') !== 'symbol') { return false; }
 557      if (typeof Symbol('bar') !== 'symbol') { return false; }
 558  
 559      return hasSymbolSham();
 560  };
 561  
 562  
 563  /***/ }),
 564  
 565  /***/ 5960:
 566  /***/ (function(module) {
 567  
 568  "use strict";
 569  
 570  
 571  /* eslint complexity: [2, 18], max-statements: [2, 33] */
 572  module.exports = function hasSymbols() {
 573      if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
 574      if (typeof Symbol.iterator === 'symbol') { return true; }
 575  
 576      var obj = {};
 577      var sym = Symbol('test');
 578      var symObj = Object(sym);
 579      if (typeof sym === 'string') { return false; }
 580  
 581      if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
 582      if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
 583  
 584      // temp disabled per https://github.com/ljharb/object.assign/issues/17
 585      // if (sym instanceof Symbol) { return false; }
 586      // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
 587      // if (!(symObj instanceof Symbol)) { return false; }
 588  
 589      // if (typeof Symbol.prototype.toString !== 'function') { return false; }
 590      // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
 591  
 592      var symVal = 42;
 593      obj[sym] = symVal;
 594      for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop
 595      if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
 596  
 597      if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
 598  
 599      var syms = Object.getOwnPropertySymbols(obj);
 600      if (syms.length !== 1 || syms[0] !== sym) { return false; }
 601  
 602      if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
 603  
 604      if (typeof Object.getOwnPropertyDescriptor === 'function') {
 605          var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
 606          if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
 607      }
 608  
 609      return true;
 610  };
 611  
 612  
 613  /***/ }),
 614  
 615  /***/ 4363:
 616  /***/ (function(module) {
 617  
 618  "use strict";
 619  
 620  
 621  var fnToStr = Function.prototype.toString;
 622  var reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;
 623  var badArrayLike;
 624  var isCallableMarker;
 625  if (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {
 626      try {
 627          badArrayLike = Object.defineProperty({}, 'length', {
 628              get: function () {
 629                  throw isCallableMarker;
 630              }
 631          });
 632          isCallableMarker = {};
 633          // eslint-disable-next-line no-throw-literal
 634          reflectApply(function () { throw 42; }, null, badArrayLike);
 635      } catch (_) {
 636          if (_ !== isCallableMarker) {
 637              reflectApply = null;
 638          }
 639      }
 640  } else {
 641      reflectApply = null;
 642  }
 643  
 644  var constructorRegex = /^\s*class\b/;
 645  var isES6ClassFn = function isES6ClassFunction(value) {
 646      try {
 647          var fnStr = fnToStr.call(value);
 648          return constructorRegex.test(fnStr);
 649      } catch (e) {
 650          return false; // not a function
 651      }
 652  };
 653  
 654  var tryFunctionObject = function tryFunctionToStr(value) {
 655      try {
 656          if (isES6ClassFn(value)) { return false; }
 657          fnToStr.call(value);
 658          return true;
 659      } catch (e) {
 660          return false;
 661      }
 662  };
 663  var toStr = Object.prototype.toString;
 664  var fnClass = '[object Function]';
 665  var genClass = '[object GeneratorFunction]';
 666  var hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`
 667  /* globals document: false */
 668  var documentDotAll = typeof document === 'object' && typeof document.all === 'undefined' && document.all !== undefined ? document.all : {};
 669  
 670  module.exports = reflectApply
 671      ? function isCallable(value) {
 672          if (value === documentDotAll) { return true; }
 673          if (!value) { return false; }
 674          if (typeof value !== 'function' && typeof value !== 'object') { return false; }
 675          if (typeof value === 'function' && !value.prototype) { return true; }
 676          try {
 677              reflectApply(value, null, badArrayLike);
 678          } catch (e) {
 679              if (e !== isCallableMarker) { return false; }
 680          }
 681          return !isES6ClassFn(value);
 682      }
 683      : function isCallable(value) {
 684          if (value === documentDotAll) { return true; }
 685          if (!value) { return false; }
 686          if (typeof value !== 'function' && typeof value !== 'object') { return false; }
 687          if (typeof value === 'function' && !value.prototype) { return true; }
 688          if (hasToStringTag) { return tryFunctionObject(value); }
 689          if (isES6ClassFn(value)) { return false; }
 690          var strClass = toStr.call(value);
 691          return strClass === fnClass || strClass === genClass;
 692      };
 693  
 694  
 695  /***/ }),
 696  
 697  /***/ 4221:
 698  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
 699  
 700  "use strict";
 701  
 702  
 703  var callBound = __webpack_require__(9630);
 704  var hasToStringTag = __webpack_require__(4111)();
 705  var has;
 706  var $exec;
 707  var isRegexMarker;
 708  var badStringifier;
 709  
 710  if (hasToStringTag) {
 711      has = callBound('Object.prototype.hasOwnProperty');
 712      $exec = callBound('RegExp.prototype.exec');
 713      isRegexMarker = {};
 714  
 715      var throwRegexMarker = function () {
 716          throw isRegexMarker;
 717      };
 718      badStringifier = {
 719          toString: throwRegexMarker,
 720          valueOf: throwRegexMarker
 721      };
 722  
 723      if (typeof Symbol.toPrimitive === 'symbol') {
 724          badStringifier[Symbol.toPrimitive] = throwRegexMarker;
 725      }
 726  }
 727  
 728  var $toString = callBound('Object.prototype.toString');
 729  var gOPD = Object.getOwnPropertyDescriptor;
 730  var regexClass = '[object RegExp]';
 731  
 732  module.exports = hasToStringTag
 733      // eslint-disable-next-line consistent-return
 734      ? function isRegex(value) {
 735          if (!value || typeof value !== 'object') {
 736              return false;
 737          }
 738  
 739          var descriptor = gOPD(value, 'lastIndex');
 740          var hasLastIndexDataProperty = descriptor && has(descriptor, 'value');
 741          if (!hasLastIndexDataProperty) {
 742              return false;
 743          }
 744  
 745          try {
 746              $exec(value, badStringifier);
 747          } catch (e) {
 748              return e === isRegexMarker;
 749          }
 750      }
 751      : function isRegex(value) {
 752          // In older browsers, typeof regex incorrectly returns 'function'
 753          if (!value || (typeof value !== 'object' && typeof value !== 'function')) {
 754              return false;
 755          }
 756  
 757          return $toString(value) === regexClass;
 758      };
 759  
 760  
 761  /***/ }),
 762  
 763  /***/ 3205:
 764  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
 765  
 766  var hasMap = typeof Map === 'function' && Map.prototype;
 767  var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;
 768  var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;
 769  var mapForEach = hasMap && Map.prototype.forEach;
 770  var hasSet = typeof Set === 'function' && Set.prototype;
 771  var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;
 772  var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;
 773  var setForEach = hasSet && Set.prototype.forEach;
 774  var hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;
 775  var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;
 776  var hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;
 777  var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;
 778  var hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;
 779  var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;
 780  var booleanValueOf = Boolean.prototype.valueOf;
 781  var objectToString = Object.prototype.toString;
 782  var functionToString = Function.prototype.toString;
 783  var $match = String.prototype.match;
 784  var $slice = String.prototype.slice;
 785  var $replace = String.prototype.replace;
 786  var $toUpperCase = String.prototype.toUpperCase;
 787  var $toLowerCase = String.prototype.toLowerCase;
 788  var $test = RegExp.prototype.test;
 789  var $concat = Array.prototype.concat;
 790  var $join = Array.prototype.join;
 791  var $arrSlice = Array.prototype.slice;
 792  var $floor = Math.floor;
 793  var bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;
 794  var gOPS = Object.getOwnPropertySymbols;
 795  var symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;
 796  var hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';
 797  // ie, `has-tostringtag/shams
 798  var toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')
 799      ? Symbol.toStringTag
 800      : null;
 801  var isEnumerable = Object.prototype.propertyIsEnumerable;
 802  
 803  var gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (
 804      [].__proto__ === Array.prototype // eslint-disable-line no-proto
 805          ? function (O) {
 806              return O.__proto__; // eslint-disable-line no-proto
 807          }
 808          : null
 809  );
 810  
 811  function addNumericSeparator(num, str) {
 812      if (
 813          num === Infinity
 814          || num === -Infinity
 815          || num !== num
 816          || (num && num > -1000 && num < 1000)
 817          || $test.call(/e/, str)
 818      ) {
 819          return str;
 820      }
 821      var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;
 822      if (typeof num === 'number') {
 823          var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)
 824          if (int !== num) {
 825              var intStr = String(int);
 826              var dec = $slice.call(str, intStr.length + 1);
 827              return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');
 828          }
 829      }
 830      return $replace.call(str, sepRegex, '$&_');
 831  }
 832  
 833  var inspectCustom = (__webpack_require__(4080).custom);
 834  var inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;
 835  
 836  module.exports = function inspect_(obj, options, depth, seen) {
 837      var opts = options || {};
 838  
 839      if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {
 840          throw new TypeError('option "quoteStyle" must be "single" or "double"');
 841      }
 842      if (
 843          has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'
 844              ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity
 845              : opts.maxStringLength !== null
 846          )
 847      ) {
 848          throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');
 849      }
 850      var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;
 851      if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {
 852          throw new TypeError('option "customInspect", if provided, must be `true`, `false`, or `\'symbol\'`');
 853      }
 854  
 855      if (
 856          has(opts, 'indent')
 857          && opts.indent !== null
 858          && opts.indent !== '\t'
 859          && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)
 860      ) {
 861          throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');
 862      }
 863      if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {
 864          throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');
 865      }
 866      var numericSeparator = opts.numericSeparator;
 867  
 868      if (typeof obj === 'undefined') {
 869          return 'undefined';
 870      }
 871      if (obj === null) {
 872          return 'null';
 873      }
 874      if (typeof obj === 'boolean') {
 875          return obj ? 'true' : 'false';
 876      }
 877  
 878      if (typeof obj === 'string') {
 879          return inspectString(obj, opts);
 880      }
 881      if (typeof obj === 'number') {
 882          if (obj === 0) {
 883              return Infinity / obj > 0 ? '0' : '-0';
 884          }
 885          var str = String(obj);
 886          return numericSeparator ? addNumericSeparator(obj, str) : str;
 887      }
 888      if (typeof obj === 'bigint') {
 889          var bigIntStr = String(obj) + 'n';
 890          return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;
 891      }
 892  
 893      var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;
 894      if (typeof depth === 'undefined') { depth = 0; }
 895      if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {
 896          return isArray(obj) ? '[Array]' : '[Object]';
 897      }
 898  
 899      var indent = getIndent(opts, depth);
 900  
 901      if (typeof seen === 'undefined') {
 902          seen = [];
 903      } else if (indexOf(seen, obj) >= 0) {
 904          return '[Circular]';
 905      }
 906  
 907      function inspect(value, from, noIndent) {
 908          if (from) {
 909              seen = $arrSlice.call(seen);
 910              seen.push(from);
 911          }
 912          if (noIndent) {
 913              var newOpts = {
 914                  depth: opts.depth
 915              };
 916              if (has(opts, 'quoteStyle')) {
 917                  newOpts.quoteStyle = opts.quoteStyle;
 918              }
 919              return inspect_(value, newOpts, depth + 1, seen);
 920          }
 921          return inspect_(value, opts, depth + 1, seen);
 922      }
 923  
 924      if (typeof obj === 'function') {
 925          var name = nameOf(obj);
 926          var keys = arrObjKeys(obj, inspect);
 927          return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');
 928      }
 929      if (isSymbol(obj)) {
 930          var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, '$1') : symToString.call(obj);
 931          return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;
 932      }
 933      if (isElement(obj)) {
 934          var s = '<' + $toLowerCase.call(String(obj.nodeName));
 935          var attrs = obj.attributes || [];
 936          for (var i = 0; i < attrs.length; i++) {
 937              s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);
 938          }
 939          s += '>';
 940          if (obj.childNodes && obj.childNodes.length) { s += '...'; }
 941          s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';
 942          return s;
 943      }
 944      if (isArray(obj)) {
 945          if (obj.length === 0) { return '[]'; }
 946          var xs = arrObjKeys(obj, inspect);
 947          if (indent && !singleLineValues(xs)) {
 948              return '[' + indentedJoin(xs, indent) + ']';
 949          }
 950          return '[ ' + $join.call(xs, ', ') + ' ]';
 951      }
 952      if (isError(obj)) {
 953          var parts = arrObjKeys(obj, inspect);
 954          if ('cause' in obj && !isEnumerable.call(obj, 'cause')) {
 955              return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';
 956          }
 957          if (parts.length === 0) { return '[' + String(obj) + ']'; }
 958          return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';
 959      }
 960      if (typeof obj === 'object' && customInspect) {
 961          if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {
 962              return obj[inspectSymbol]();
 963          } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {
 964              return obj.inspect();
 965          }
 966      }
 967      if (isMap(obj)) {
 968          var mapParts = [];
 969          mapForEach.call(obj, function (value, key) {
 970              mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));
 971          });
 972          return collectionOf('Map', mapSize.call(obj), mapParts, indent);
 973      }
 974      if (isSet(obj)) {
 975          var setParts = [];
 976          setForEach.call(obj, function (value) {
 977              setParts.push(inspect(value, obj));
 978          });
 979          return collectionOf('Set', setSize.call(obj), setParts, indent);
 980      }
 981      if (isWeakMap(obj)) {
 982          return weakCollectionOf('WeakMap');
 983      }
 984      if (isWeakSet(obj)) {
 985          return weakCollectionOf('WeakSet');
 986      }
 987      if (isWeakRef(obj)) {
 988          return weakCollectionOf('WeakRef');
 989      }
 990      if (isNumber(obj)) {
 991          return markBoxed(inspect(Number(obj)));
 992      }
 993      if (isBigInt(obj)) {
 994          return markBoxed(inspect(bigIntValueOf.call(obj)));
 995      }
 996      if (isBoolean(obj)) {
 997          return markBoxed(booleanValueOf.call(obj));
 998      }
 999      if (isString(obj)) {
1000          return markBoxed(inspect(String(obj)));
1001      }
1002      if (!isDate(obj) && !isRegExp(obj)) {
1003          var ys = arrObjKeys(obj, inspect);
1004          var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;
1005          var protoTag = obj instanceof Object ? '' : 'null prototype';
1006          var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';
1007          var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';
1008          var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');
1009          if (ys.length === 0) { return tag + '{}'; }
1010          if (indent) {
1011              return tag + '{' + indentedJoin(ys, indent) + '}';
1012          }
1013          return tag + '{ ' + $join.call(ys, ', ') + ' }';
1014      }
1015      return String(obj);
1016  };
1017  
1018  function wrapQuotes(s, defaultStyle, opts) {
1019      var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '"' : "'";
1020      return quoteChar + s + quoteChar;
1021  }
1022  
1023  function quote(s) {
1024      return $replace.call(String(s), /"/g, '&quot;');
1025  }
1026  
1027  function isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
1028  function isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
1029  function isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
1030  function isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
1031  function isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
1032  function isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
1033  function isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
1034  
1035  // Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives
1036  function isSymbol(obj) {
1037      if (hasShammedSymbols) {
1038          return obj && typeof obj === 'object' && obj instanceof Symbol;
1039      }
1040      if (typeof obj === 'symbol') {
1041          return true;
1042      }
1043      if (!obj || typeof obj !== 'object' || !symToString) {
1044          return false;
1045      }
1046      try {
1047          symToString.call(obj);
1048          return true;
1049      } catch (e) {}
1050      return false;
1051  }
1052  
1053  function isBigInt(obj) {
1054      if (!obj || typeof obj !== 'object' || !bigIntValueOf) {
1055          return false;
1056      }
1057      try {
1058          bigIntValueOf.call(obj);
1059          return true;
1060      } catch (e) {}
1061      return false;
1062  }
1063  
1064  var hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };
1065  function has(obj, key) {
1066      return hasOwn.call(obj, key);
1067  }
1068  
1069  function toStr(obj) {
1070      return objectToString.call(obj);
1071  }
1072  
1073  function nameOf(f) {
1074      if (f.name) { return f.name; }
1075      var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/);
1076      if (m) { return m[1]; }
1077      return null;
1078  }
1079  
1080  function indexOf(xs, x) {
1081      if (xs.indexOf) { return xs.indexOf(x); }
1082      for (var i = 0, l = xs.length; i < l; i++) {
1083          if (xs[i] === x) { return i; }
1084      }
1085      return -1;
1086  }
1087  
1088  function isMap(x) {
1089      if (!mapSize || !x || typeof x !== 'object') {
1090          return false;
1091      }
1092      try {
1093          mapSize.call(x);
1094          try {
1095              setSize.call(x);
1096          } catch (s) {
1097              return true;
1098          }
1099          return x instanceof Map; // core-js workaround, pre-v2.5.0
1100      } catch (e) {}
1101      return false;
1102  }
1103  
1104  function isWeakMap(x) {
1105      if (!weakMapHas || !x || typeof x !== 'object') {
1106          return false;
1107      }
1108      try {
1109          weakMapHas.call(x, weakMapHas);
1110          try {
1111              weakSetHas.call(x, weakSetHas);
1112          } catch (s) {
1113              return true;
1114          }
1115          return x instanceof WeakMap; // core-js workaround, pre-v2.5.0
1116      } catch (e) {}
1117      return false;
1118  }
1119  
1120  function isWeakRef(x) {
1121      if (!weakRefDeref || !x || typeof x !== 'object') {
1122          return false;
1123      }
1124      try {
1125          weakRefDeref.call(x);
1126          return true;
1127      } catch (e) {}
1128      return false;
1129  }
1130  
1131  function isSet(x) {
1132      if (!setSize || !x || typeof x !== 'object') {
1133          return false;
1134      }
1135      try {
1136          setSize.call(x);
1137          try {
1138              mapSize.call(x);
1139          } catch (m) {
1140              return true;
1141          }
1142          return x instanceof Set; // core-js workaround, pre-v2.5.0
1143      } catch (e) {}
1144      return false;
1145  }
1146  
1147  function isWeakSet(x) {
1148      if (!weakSetHas || !x || typeof x !== 'object') {
1149          return false;
1150      }
1151      try {
1152          weakSetHas.call(x, weakSetHas);
1153          try {
1154              weakMapHas.call(x, weakMapHas);
1155          } catch (s) {
1156              return true;
1157          }
1158          return x instanceof WeakSet; // core-js workaround, pre-v2.5.0
1159      } catch (e) {}
1160      return false;
1161  }
1162  
1163  function isElement(x) {
1164      if (!x || typeof x !== 'object') { return false; }
1165      if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {
1166          return true;
1167      }
1168      return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';
1169  }
1170  
1171  function inspectString(str, opts) {
1172      if (str.length > opts.maxStringLength) {
1173          var remaining = str.length - opts.maxStringLength;
1174          var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');
1175          return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;
1176      }
1177      // eslint-disable-next-line no-control-regex
1178      var s = $replace.call($replace.call(str, /(['\\])/g, '\\$1'), /[\x00-\x1f]/g, lowbyte);
1179      return wrapQuotes(s, 'single', opts);
1180  }
1181  
1182  function lowbyte(c) {
1183      var n = c.charCodeAt(0);
1184      var x = {
1185          8: 'b',
1186          9: 't',
1187          10: 'n',
1188          12: 'f',
1189          13: 'r'
1190      }[n];
1191      if (x) { return '\\' + x; }
1192      return '\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));
1193  }
1194  
1195  function markBoxed(str) {
1196      return 'Object(' + str + ')';
1197  }
1198  
1199  function weakCollectionOf(type) {
1200      return type + ' { ? }';
1201  }
1202  
1203  function collectionOf(type, size, entries, indent) {
1204      var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');
1205      return type + ' (' + size + ') {' + joinedEntries + '}';
1206  }
1207  
1208  function singleLineValues(xs) {
1209      for (var i = 0; i < xs.length; i++) {
1210          if (indexOf(xs[i], '\n') >= 0) {
1211              return false;
1212          }
1213      }
1214      return true;
1215  }
1216  
1217  function getIndent(opts, depth) {
1218      var baseIndent;
1219      if (opts.indent === '\t') {
1220          baseIndent = '\t';
1221      } else if (typeof opts.indent === 'number' && opts.indent > 0) {
1222          baseIndent = $join.call(Array(opts.indent + 1), ' ');
1223      } else {
1224          return null;
1225      }
1226      return {
1227          base: baseIndent,
1228          prev: $join.call(Array(depth + 1), baseIndent)
1229      };
1230  }
1231  
1232  function indentedJoin(xs, indent) {
1233      if (xs.length === 0) { return ''; }
1234      var lineJoiner = '\n' + indent.prev + indent.base;
1235      return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\n' + indent.prev;
1236  }
1237  
1238  function arrObjKeys(obj, inspect) {
1239      var isArr = isArray(obj);
1240      var xs = [];
1241      if (isArr) {
1242          xs.length = obj.length;
1243          for (var i = 0; i < obj.length; i++) {
1244              xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';
1245          }
1246      }
1247      var syms = typeof gOPS === 'function' ? gOPS(obj) : [];
1248      var symMap;
1249      if (hasShammedSymbols) {
1250          symMap = {};
1251          for (var k = 0; k < syms.length; k++) {
1252              symMap['$' + syms[k]] = syms[k];
1253          }
1254      }
1255  
1256      for (var key in obj) { // eslint-disable-line no-restricted-syntax
1257          if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue
1258          if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue
1259          if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {
1260              // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section
1261              continue; // eslint-disable-line no-restricted-syntax, no-continue
1262          } else if ($test.call(/[^\w$]/, key)) {
1263              xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));
1264          } else {
1265              xs.push(key + ': ' + inspect(obj[key], obj));
1266          }
1267      }
1268      if (typeof gOPS === 'function') {
1269          for (var j = 0; j < syms.length; j++) {
1270              if (isEnumerable.call(obj, syms[j])) {
1271                  xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));
1272              }
1273          }
1274      }
1275      return xs;
1276  }
1277  
1278  
1279  /***/ }),
1280  
1281  /***/ 616:
1282  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1283  
1284  "use strict";
1285  
1286  
1287  var implementation = __webpack_require__(4485);
1288  
1289  module.exports = function getPolyfill() {
1290      return Array.prototype.flat || implementation;
1291  };
1292  
1293  
1294  /***/ }),
1295  
1296  /***/ 2059:
1297  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1298  
1299  "use strict";
1300  
1301  
1302  var define = __webpack_require__(9170);
1303  var shimUnscopables = __webpack_require__(2505);
1304  
1305  var getPolyfill = __webpack_require__(616);
1306  
1307  module.exports = function shimFlat() {
1308      var polyfill = getPolyfill();
1309  
1310      define(
1311          Array.prototype,
1312          { flat: polyfill },
1313          { flat: function () { return Array.prototype.flat !== polyfill; } }
1314      );
1315  
1316      shimUnscopables('flat');
1317  
1318      return polyfill;
1319  };
1320  
1321  
1322  /***/ }),
1323  
1324  /***/ 7615:
1325  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1326  
1327  "use strict";
1328  
1329  
1330  var GetIntrinsic = __webpack_require__(1801);
1331  
1332  var callBind = __webpack_require__(2550);
1333  
1334  var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));
1335  
1336  module.exports = function callBoundIntrinsic(name, allowMissing) {
1337      var intrinsic = GetIntrinsic(name, !!allowMissing);
1338      if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {
1339          return callBind(intrinsic);
1340      }
1341      return intrinsic;
1342  };
1343  
1344  
1345  /***/ }),
1346  
1347  /***/ 2550:
1348  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1349  
1350  "use strict";
1351  
1352  
1353  var bind = __webpack_require__(1930);
1354  var GetIntrinsic = __webpack_require__(1801);
1355  
1356  var $apply = GetIntrinsic('%Function.prototype.apply%');
1357  var $call = GetIntrinsic('%Function.prototype.call%');
1358  var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
1359  
1360  var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
1361  
1362  if ($defineProperty) {
1363      try {
1364          $defineProperty({}, 'a', { value: 1 });
1365      } catch (e) {
1366          // IE 8 has a broken defineProperty
1367          $defineProperty = null;
1368      }
1369  }
1370  
1371  module.exports = function callBind() {
1372      return $reflectApply(bind, $call, arguments);
1373  };
1374  
1375  var applyBind = function applyBind() {
1376      return $reflectApply(bind, $apply, arguments);
1377  };
1378  
1379  if ($defineProperty) {
1380      $defineProperty(module.exports, 'apply', { value: applyBind });
1381  } else {
1382      module.exports.apply = applyBind;
1383  }
1384  
1385  
1386  /***/ }),
1387  
1388  /***/ 4403:
1389  /***/ (function(module, exports) {
1390  
1391  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
1392    Copyright (c) 2018 Jed Watson.
1393    Licensed under the MIT License (MIT), see
1394    http://jedwatson.github.io/classnames
1395  */
1396  /* global define */
1397  
1398  (function () {
1399      'use strict';
1400  
1401      var hasOwn = {}.hasOwnProperty;
1402  
1403  	function classNames() {
1404          var classes = [];
1405  
1406          for (var i = 0; i < arguments.length; i++) {
1407              var arg = arguments[i];
1408              if (!arg) continue;
1409  
1410              var argType = typeof arg;
1411  
1412              if (argType === 'string' || argType === 'number') {
1413                  classes.push(arg);
1414              } else if (Array.isArray(arg)) {
1415                  if (arg.length) {
1416                      var inner = classNames.apply(null, arg);
1417                      if (inner) {
1418                          classes.push(inner);
1419                      }
1420                  }
1421              } else if (argType === 'object') {
1422                  if (arg.toString === Object.prototype.toString) {
1423                      for (var key in arg) {
1424                          if (hasOwn.call(arg, key) && arg[key]) {
1425                              classes.push(key);
1426                          }
1427                      }
1428                  } else {
1429                      classes.push(arg.toString());
1430                  }
1431              }
1432          }
1433  
1434          return classes.join(' ');
1435      }
1436  
1437      if ( true && module.exports) {
1438          classNames.default = classNames;
1439          module.exports = classNames;
1440      } else if (true) {
1441          // register as 'classnames', consistent with npm package name
1442          !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
1443              return classNames;
1444          }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
1445          __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
1446      } else {}
1447  }());
1448  
1449  
1450  /***/ }),
1451  
1452  /***/ 8495:
1453  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1454  
1455  "use strict";
1456  __webpack_require__.r(__webpack_exports__);
1457  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1458  /* harmony export */   "addEventListener": function() { return /* binding */ addEventListener; }
1459  /* harmony export */ });
1460  var CAN_USE_DOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
1461  
1462  // Adapted from Modernizr
1463  // https://github.com/Modernizr/Modernizr/blob/acb3f0d9/feature-detects/dom/passiveeventlisteners.js#L26-L37
1464  function testPassiveEventListeners() {
1465    if (!CAN_USE_DOM) {
1466      return false;
1467    }
1468  
1469    if (!window.addEventListener || !window.removeEventListener || !Object.defineProperty) {
1470      return false;
1471    }
1472  
1473    var supportsPassiveOption = false;
1474    try {
1475      var opts = Object.defineProperty({}, 'passive', {
1476        // eslint-disable-next-line getter-return
1477        get: function () {
1478          function get() {
1479            supportsPassiveOption = true;
1480          }
1481  
1482          return get;
1483        }()
1484      });
1485      var noop = function noop() {};
1486      window.addEventListener('testPassiveEventSupport', noop, opts);
1487      window.removeEventListener('testPassiveEventSupport', noop, opts);
1488    } catch (e) {
1489      // do nothing
1490    }
1491  
1492    return supportsPassiveOption;
1493  }
1494  
1495  var memoized = void 0;
1496  
1497  function canUsePassiveEventListeners() {
1498    if (memoized === undefined) {
1499      memoized = testPassiveEventListeners();
1500    }
1501    return memoized;
1502  }
1503  
1504  function normalizeEventOptions(eventOptions) {
1505    if (!eventOptions) {
1506      return undefined;
1507    }
1508  
1509    if (!canUsePassiveEventListeners()) {
1510      // If the browser does not support the passive option, then it is expecting
1511      // a boolean for the options argument to specify whether it should use
1512      // capture or not. In more modern browsers, this is passed via the `capture`
1513      // option, so let's just hoist that value up.
1514      return !!eventOptions.capture;
1515    }
1516  
1517    return eventOptions;
1518  }
1519  
1520  /* eslint-disable no-bitwise */
1521  
1522  /**
1523   * Generate a unique key for any set of event options
1524   */
1525  function eventOptionsKey(normalizedEventOptions) {
1526    if (!normalizedEventOptions) {
1527      return 0;
1528    }
1529  
1530    // If the browser does not support passive event listeners, the normalized
1531    // event options will be a boolean.
1532    if (normalizedEventOptions === true) {
1533      return 100;
1534    }
1535  
1536    // At this point, the browser supports passive event listeners, so we expect
1537    // the event options to be an object with possible properties of capture,
1538    // passive, and once.
1539    //
1540    // We want to consistently return the same value, regardless of the order of
1541    // these properties, so let's use binary maths to assign each property to a
1542    // bit, and then add those together (with an offset to account for the
1543    // booleans at the beginning of this function).
1544    var capture = normalizedEventOptions.capture << 0;
1545    var passive = normalizedEventOptions.passive << 1;
1546    var once = normalizedEventOptions.once << 2;
1547    return capture + passive + once;
1548  }
1549  
1550  function ensureCanMutateNextEventHandlers(eventHandlers) {
1551    if (eventHandlers.handlers === eventHandlers.nextHandlers) {
1552      // eslint-disable-next-line no-param-reassign
1553      eventHandlers.nextHandlers = eventHandlers.handlers.slice();
1554    }
1555  }
1556  
1557  function TargetEventHandlers(target) {
1558    this.target = target;
1559    this.events = {};
1560  }
1561  
1562  TargetEventHandlers.prototype.getEventHandlers = function () {
1563    function getEventHandlers(eventName, options) {
1564      var key = String(eventName) + ' ' + String(eventOptionsKey(options));
1565  
1566      if (!this.events[key]) {
1567        this.events[key] = {
1568          handlers: [],
1569          handleEvent: undefined
1570        };
1571        this.events[key].nextHandlers = this.events[key].handlers;
1572      }
1573  
1574      return this.events[key];
1575    }
1576  
1577    return getEventHandlers;
1578  }();
1579  
1580  TargetEventHandlers.prototype.handleEvent = function () {
1581    function handleEvent(eventName, options, event) {
1582      var eventHandlers = this.getEventHandlers(eventName, options);
1583      eventHandlers.handlers = eventHandlers.nextHandlers;
1584      eventHandlers.handlers.forEach(function (handler) {
1585        if (handler) {
1586          // We need to check for presence here because a handler function may
1587          // cause later handlers to get removed. This can happen if you for
1588          // instance have a waypoint that unmounts another waypoint as part of an
1589          // onEnter/onLeave handler.
1590          handler(event);
1591        }
1592      });
1593    }
1594  
1595    return handleEvent;
1596  }();
1597  
1598  TargetEventHandlers.prototype.add = function () {
1599    function add(eventName, listener, options) {
1600      var _this = this;
1601  
1602      // options has already been normalized at this point.
1603      var eventHandlers = this.getEventHandlers(eventName, options);
1604  
1605      ensureCanMutateNextEventHandlers(eventHandlers);
1606  
1607      if (eventHandlers.nextHandlers.length === 0) {
1608        eventHandlers.handleEvent = this.handleEvent.bind(this, eventName, options);
1609  
1610        this.target.addEventListener(eventName, eventHandlers.handleEvent, options);
1611      }
1612  
1613      eventHandlers.nextHandlers.push(listener);
1614  
1615      var isSubscribed = true;
1616      var unsubscribe = function () {
1617        function unsubscribe() {
1618          if (!isSubscribed) {
1619            return;
1620          }
1621  
1622          isSubscribed = false;
1623  
1624          ensureCanMutateNextEventHandlers(eventHandlers);
1625          var index = eventHandlers.nextHandlers.indexOf(listener);
1626          eventHandlers.nextHandlers.splice(index, 1);
1627  
1628          if (eventHandlers.nextHandlers.length === 0) {
1629            // All event handlers have been removed, so we want to remove the event
1630            // listener from the target node.
1631  
1632            if (_this.target) {
1633              // There can be a race condition where the target may no longer exist
1634              // when this function is called, e.g. when a React component is
1635              // unmounting. Guarding against this prevents the following error:
1636              //
1637              //   Cannot read property 'removeEventListener' of undefined
1638              _this.target.removeEventListener(eventName, eventHandlers.handleEvent, options);
1639            }
1640  
1641            eventHandlers.handleEvent = undefined;
1642          }
1643        }
1644  
1645        return unsubscribe;
1646      }();
1647      return unsubscribe;
1648    }
1649  
1650    return add;
1651  }();
1652  
1653  var EVENT_HANDLERS_KEY = '__consolidated_events_handlers__';
1654  
1655  // eslint-disable-next-line import/prefer-default-export
1656  function addEventListener(target, eventName, listener, options) {
1657    if (!target[EVENT_HANDLERS_KEY]) {
1658      // eslint-disable-next-line no-param-reassign
1659      target[EVENT_HANDLERS_KEY] = new TargetEventHandlers(target);
1660    }
1661    var normalizedEventOptions = normalizeEventOptions(options);
1662    return target[EVENT_HANDLERS_KEY].add(eventName, listener, normalizedEventOptions);
1663  }
1664  
1665  
1666  
1667  
1668  /***/ }),
1669  
1670  /***/ 9170:
1671  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1672  
1673  "use strict";
1674  
1675  
1676  var keys = __webpack_require__(806);
1677  var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
1678  
1679  var toStr = Object.prototype.toString;
1680  var concat = Array.prototype.concat;
1681  var origDefineProperty = Object.defineProperty;
1682  
1683  var isFunction = function (fn) {
1684      return typeof fn === 'function' && toStr.call(fn) === '[object Function]';
1685  };
1686  
1687  var arePropertyDescriptorsSupported = function () {
1688      var obj = {};
1689      try {
1690          origDefineProperty(obj, 'x', { enumerable: false, value: obj });
1691          // eslint-disable-next-line no-unused-vars, no-restricted-syntax
1692          for (var _ in obj) { // jscs:ignore disallowUnusedVariables
1693              return false;
1694          }
1695          return obj.x === obj;
1696      } catch (e) { /* this is IE 8. */
1697          return false;
1698      }
1699  };
1700  var supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();
1701  
1702  var defineProperty = function (object, name, value, predicate) {
1703      if (name in object && (!isFunction(predicate) || !predicate())) {
1704          return;
1705      }
1706      if (supportsDescriptors) {
1707          origDefineProperty(object, name, {
1708              configurable: true,
1709              enumerable: false,
1710              value: value,
1711              writable: true
1712          });
1713      } else {
1714          object[name] = value;
1715      }
1716  };
1717  
1718  var defineProperties = function (object, map) {
1719      var predicates = arguments.length > 2 ? arguments[2] : {};
1720      var props = keys(map);
1721      if (hasSymbols) {
1722          props = concat.call(props, Object.getOwnPropertySymbols(map));
1723      }
1724      for (var i = 0; i < props.length; i += 1) {
1725          defineProperty(object, props[i], map[props[i]], predicates[props[i]]);
1726      }
1727  };
1728  
1729  defineProperties.supportsDescriptors = !!supportsDescriptors;
1730  
1731  module.exports = defineProperties;
1732  
1733  
1734  /***/ }),
1735  
1736  /***/ 8110:
1737  /***/ (function(module) {
1738  
1739  "use strict";
1740  
1741  
1742  module.exports = function contains(other) {
1743      if (arguments.length < 1) {
1744          throw new TypeError('1 argument is required');
1745      }
1746      if (typeof other !== 'object') {
1747          throw new TypeError('Argument 1 (”other“) to Node.contains must be an instance of Node');
1748      }
1749  
1750      var node = other;
1751      do {
1752          if (this === node) {
1753              return true;
1754          }
1755          if (node) {
1756              node = node.parentNode;
1757          }
1758      } while (node);
1759  
1760      return false;
1761  };
1762  
1763  
1764  /***/ }),
1765  
1766  /***/ 6789:
1767  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1768  
1769  "use strict";
1770  
1771  
1772  var define = __webpack_require__(9170);
1773  
1774  var implementation = __webpack_require__(8110);
1775  var getPolyfill = __webpack_require__(8267);
1776  var polyfill = getPolyfill();
1777  var shim = __webpack_require__(714);
1778  
1779  var boundContains = function contains(node, other) {
1780      return polyfill.apply(node, [other]);
1781  };
1782  
1783  define(boundContains, {
1784      getPolyfill: getPolyfill,
1785      implementation: implementation,
1786      shim: shim
1787  });
1788  
1789  module.exports = boundContains;
1790  
1791  
1792  /***/ }),
1793  
1794  /***/ 8267:
1795  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1796  
1797  "use strict";
1798  
1799  
1800  var implementation = __webpack_require__(8110);
1801  
1802  module.exports = function getPolyfill() {
1803      if (typeof document !== 'undefined') {
1804          if (document.contains) {
1805              return document.contains;
1806          }
1807          if (document.body && document.body.contains) {
1808              try {
1809                  if (typeof document.body.contains.call(document, '') === 'boolean') {
1810                      return document.body.contains;
1811                  }
1812              } catch (e) { /**/ }
1813          }
1814      }
1815      return implementation;
1816  };
1817  
1818  
1819  /***/ }),
1820  
1821  /***/ 714:
1822  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1823  
1824  "use strict";
1825  
1826  
1827  var define = __webpack_require__(9170);
1828  var getPolyfill = __webpack_require__(8267);
1829  
1830  module.exports = function shimContains() {
1831      var polyfill = getPolyfill();
1832      if (typeof document !== 'undefined') {
1833          define(
1834              document,
1835              { contains: polyfill },
1836              { contains: function () { return document.contains !== polyfill; } }
1837          );
1838          if (typeof Element !== 'undefined') {
1839              define(
1840                  Element.prototype,
1841                  { contains: polyfill },
1842                  { contains: function () { return Element.prototype.contains !== polyfill; } }
1843              );
1844          }
1845      }
1846      return polyfill;
1847  };
1848  
1849  
1850  /***/ }),
1851  
1852  /***/ 1345:
1853  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1854  
1855  "use strict";
1856  
1857  
1858  var util = __webpack_require__(5022);
1859  
1860  function scrollIntoView(elem, container, config) {
1861    config = config || {};
1862    // document 归一化到 window
1863    if (container.nodeType === 9) {
1864      container = util.getWindow(container);
1865    }
1866  
1867    var allowHorizontalScroll = config.allowHorizontalScroll;
1868    var onlyScrollIfNeeded = config.onlyScrollIfNeeded;
1869    var alignWithTop = config.alignWithTop;
1870    var alignWithLeft = config.alignWithLeft;
1871    var offsetTop = config.offsetTop || 0;
1872    var offsetLeft = config.offsetLeft || 0;
1873    var offsetBottom = config.offsetBottom || 0;
1874    var offsetRight = config.offsetRight || 0;
1875  
1876    allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll;
1877  
1878    var isWin = util.isWindow(container);
1879    var elemOffset = util.offset(elem);
1880    var eh = util.outerHeight(elem);
1881    var ew = util.outerWidth(elem);
1882    var containerOffset = undefined;
1883    var ch = undefined;
1884    var cw = undefined;
1885    var containerScroll = undefined;
1886    var diffTop = undefined;
1887    var diffBottom = undefined;
1888    var win = undefined;
1889    var winScroll = undefined;
1890    var ww = undefined;
1891    var wh = undefined;
1892  
1893    if (isWin) {
1894      win = container;
1895      wh = util.height(win);
1896      ww = util.width(win);
1897      winScroll = {
1898        left: util.scrollLeft(win),
1899        top: util.scrollTop(win)
1900      };
1901      // elem 相对 container 可视视窗的距离
1902      diffTop = {
1903        left: elemOffset.left - winScroll.left - offsetLeft,
1904        top: elemOffset.top - winScroll.top - offsetTop
1905      };
1906      diffBottom = {
1907        left: elemOffset.left + ew - (winScroll.left + ww) + offsetRight,
1908        top: elemOffset.top + eh - (winScroll.top + wh) + offsetBottom
1909      };
1910      containerScroll = winScroll;
1911    } else {
1912      containerOffset = util.offset(container);
1913      ch = container.clientHeight;
1914      cw = container.clientWidth;
1915      containerScroll = {
1916        left: container.scrollLeft,
1917        top: container.scrollTop
1918      };
1919      // elem 相对 container 可视视窗的距离
1920      // 注意边框, offset 是边框到根节点
1921      diffTop = {
1922        left: elemOffset.left - (containerOffset.left + (parseFloat(util.css(container, 'borderLeftWidth')) || 0)) - offsetLeft,
1923        top: elemOffset.top - (containerOffset.top + (parseFloat(util.css(container, 'borderTopWidth')) || 0)) - offsetTop
1924      };
1925      diffBottom = {
1926        left: elemOffset.left + ew - (containerOffset.left + cw + (parseFloat(util.css(container, 'borderRightWidth')) || 0)) + offsetRight,
1927        top: elemOffset.top + eh - (containerOffset.top + ch + (parseFloat(util.css(container, 'borderBottomWidth')) || 0)) + offsetBottom
1928      };
1929    }
1930  
1931    if (diffTop.top < 0 || diffBottom.top > 0) {
1932      // 强制向上
1933      if (alignWithTop === true) {
1934        util.scrollTop(container, containerScroll.top + diffTop.top);
1935      } else if (alignWithTop === false) {
1936        util.scrollTop(container, containerScroll.top + diffBottom.top);
1937      } else {
1938        // 自动调整
1939        if (diffTop.top < 0) {
1940          util.scrollTop(container, containerScroll.top + diffTop.top);
1941        } else {
1942          util.scrollTop(container, containerScroll.top + diffBottom.top);
1943        }
1944      }
1945    } else {
1946      if (!onlyScrollIfNeeded) {
1947        alignWithTop = alignWithTop === undefined ? true : !!alignWithTop;
1948        if (alignWithTop) {
1949          util.scrollTop(container, containerScroll.top + diffTop.top);
1950        } else {
1951          util.scrollTop(container, containerScroll.top + diffBottom.top);
1952        }
1953      }
1954    }
1955  
1956    if (allowHorizontalScroll) {
1957      if (diffTop.left < 0 || diffBottom.left > 0) {
1958        // 强制向上
1959        if (alignWithLeft === true) {
1960          util.scrollLeft(container, containerScroll.left + diffTop.left);
1961        } else if (alignWithLeft === false) {
1962          util.scrollLeft(container, containerScroll.left + diffBottom.left);
1963        } else {
1964          // 自动调整
1965          if (diffTop.left < 0) {
1966            util.scrollLeft(container, containerScroll.left + diffTop.left);
1967          } else {
1968            util.scrollLeft(container, containerScroll.left + diffBottom.left);
1969          }
1970        }
1971      } else {
1972        if (!onlyScrollIfNeeded) {
1973          alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft;
1974          if (alignWithLeft) {
1975            util.scrollLeft(container, containerScroll.left + diffTop.left);
1976          } else {
1977            util.scrollLeft(container, containerScroll.left + diffBottom.left);
1978          }
1979        }
1980      }
1981    }
1982  }
1983  
1984  module.exports = scrollIntoView;
1985  
1986  /***/ }),
1987  
1988  /***/ 5425:
1989  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1990  
1991  "use strict";
1992  
1993  
1994  module.exports = __webpack_require__(1345);
1995  
1996  /***/ }),
1997  
1998  /***/ 5022:
1999  /***/ (function(module) {
2000  
2001  "use strict";
2002  
2003  
2004  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; };
2005  
2006  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; };
2007  
2008  var RE_NUM = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source;
2009  
2010  function getClientPosition(elem) {
2011    var box = undefined;
2012    var x = undefined;
2013    var y = undefined;
2014    var doc = elem.ownerDocument;
2015    var body = doc.body;
2016    var docElem = doc && doc.documentElement;
2017    // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式
2018    box = elem.getBoundingClientRect();
2019  
2020    // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop
2021    // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确
2022    // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin
2023  
2024    x = box.left;
2025    y = box.top;
2026  
2027    // In IE, most of the time, 2 extra pixels are added to the top and left
2028    // due to the implicit 2-pixel inset border.  In IE6/7 quirks mode and
2029    // IE6 standards mode, this border can be overridden by setting the
2030    // document element's border to zero -- thus, we cannot rely on the
2031    // offset always being 2 pixels.
2032  
2033    // In quirks mode, the offset can be determined by querying the body's
2034    // clientLeft/clientTop, but in standards mode, it is found by querying
2035    // the document element's clientLeft/clientTop.  Since we already called
2036    // getClientBoundingRect we have already forced a reflow, so it is not
2037    // too expensive just to query them all.
2038  
2039    // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的
2040    // 窗口边框标准是设 documentElement ,quirks 时设置 body
2041    // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去
2042    // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置
2043    // 标准 ie 下 docElem.clientTop 就是 border-top
2044    // ie7 html 即窗口边框改变不了。永远为 2
2045    // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0
2046  
2047    x -= docElem.clientLeft || body.clientLeft || 0;
2048    y -= docElem.clientTop || body.clientTop || 0;
2049  
2050    return {
2051      left: x,
2052      top: y
2053    };
2054  }
2055  
2056  function getScroll(w, top) {
2057    var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];
2058    var method = 'scroll' + (top ? 'Top' : 'Left');
2059    if (typeof ret !== 'number') {
2060      var d = w.document;
2061      // ie6,7,8 standard mode
2062      ret = d.documentElement[method];
2063      if (typeof ret !== 'number') {
2064        // quirks mode
2065        ret = d.body[method];
2066      }
2067    }
2068    return ret;
2069  }
2070  
2071  function getScrollLeft(w) {
2072    return getScroll(w);
2073  }
2074  
2075  function getScrollTop(w) {
2076    return getScroll(w, true);
2077  }
2078  
2079  function getOffset(el) {
2080    var pos = getClientPosition(el);
2081    var doc = el.ownerDocument;
2082    var w = doc.defaultView || doc.parentWindow;
2083    pos.left += getScrollLeft(w);
2084    pos.top += getScrollTop(w);
2085    return pos;
2086  }
2087  function _getComputedStyle(elem, name, computedStyle_) {
2088    var val = '';
2089    var d = elem.ownerDocument;
2090    var computedStyle = computedStyle_ || d.defaultView.getComputedStyle(elem, null);
2091  
2092    // https://github.com/kissyteam/kissy/issues/61
2093    if (computedStyle) {
2094      val = computedStyle.getPropertyValue(name) || computedStyle[name];
2095    }
2096  
2097    return val;
2098  }
2099  
2100  var _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');
2101  var RE_POS = /^(top|right|bottom|left)$/;
2102  var CURRENT_STYLE = 'currentStyle';
2103  var RUNTIME_STYLE = 'runtimeStyle';
2104  var LEFT = 'left';
2105  var PX = 'px';
2106  
2107  function _getComputedStyleIE(elem, name) {
2108    // currentStyle maybe null
2109    // http://msdn.microsoft.com/en-us/library/ms535231.aspx
2110    var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];
2111  
2112    // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值
2113    // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19
2114    // 在 ie 下不对,需要直接用 offset 方式
2115    // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了
2116  
2117    // From the awesome hack by Dean Edwards
2118    // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
2119    // If we're not dealing with a regular pixel number
2120    // but a number that has a weird ending, we need to convert it to pixels
2121    // exclude left right for relativity
2122    if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {
2123      // Remember the original values
2124      var style = elem.style;
2125      var left = style[LEFT];
2126      var rsLeft = elem[RUNTIME_STYLE][LEFT];
2127  
2128      // prevent flashing of content
2129      elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];
2130  
2131      // Put in the new values to get a computed value out
2132      style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;
2133      ret = style.pixelLeft + PX;
2134  
2135      // Revert the changed values
2136      style[LEFT] = left;
2137  
2138      elem[RUNTIME_STYLE][LEFT] = rsLeft;
2139    }
2140    return ret === '' ? 'auto' : ret;
2141  }
2142  
2143  var getComputedStyleX = undefined;
2144  if (typeof window !== 'undefined') {
2145    getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;
2146  }
2147  
2148  function each(arr, fn) {
2149    for (var i = 0; i < arr.length; i++) {
2150      fn(arr[i]);
2151    }
2152  }
2153  
2154  function isBorderBoxFn(elem) {
2155    return getComputedStyleX(elem, 'boxSizing') === 'border-box';
2156  }
2157  
2158  var BOX_MODELS = ['margin', 'border', 'padding'];
2159  var CONTENT_INDEX = -1;
2160  var PADDING_INDEX = 2;
2161  var BORDER_INDEX = 1;
2162  var MARGIN_INDEX = 0;
2163  
2164  function swap(elem, options, callback) {
2165    var old = {};
2166    var style = elem.style;
2167    var name = undefined;
2168  
2169    // Remember the old values, and insert the new ones
2170    for (name in options) {
2171      if (options.hasOwnProperty(name)) {
2172        old[name] = style[name];
2173        style[name] = options[name];
2174      }
2175    }
2176  
2177    callback.call(elem);
2178  
2179    // Revert the old values
2180    for (name in options) {
2181      if (options.hasOwnProperty(name)) {
2182        style[name] = old[name];
2183      }
2184    }
2185  }
2186  
2187  function getPBMWidth(elem, props, which) {
2188    var value = 0;
2189    var prop = undefined;
2190    var j = undefined;
2191    var i = undefined;
2192    for (j = 0; j < props.length; j++) {
2193      prop = props[j];
2194      if (prop) {
2195        for (i = 0; i < which.length; i++) {
2196          var cssProp = undefined;
2197          if (prop === 'border') {
2198            cssProp = prop + which[i] + 'Width';
2199          } else {
2200            cssProp = prop + which[i];
2201          }
2202          value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;
2203        }
2204      }
2205    }
2206    return value;
2207  }
2208  
2209  /**
2210   * A crude way of determining if an object is a window
2211   * @member util
2212   */
2213  function isWindow(obj) {
2214    // must use == for ie8
2215    /* eslint eqeqeq:0 */
2216    return obj != null && obj == obj.window;
2217  }
2218  
2219  var domUtils = {};
2220  
2221  each(['Width', 'Height'], function (name) {
2222    domUtils['doc' + name] = function (refWin) {
2223      var d = refWin.document;
2224      return Math.max(
2225      // firefox chrome documentElement.scrollHeight< body.scrollHeight
2226      // ie standard mode : documentElement.scrollHeight> body.scrollHeight
2227      d.documentElement['scroll' + name],
2228      // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?
2229      d.body['scroll' + name], domUtils['viewport' + name](d));
2230    };
2231  
2232    domUtils['viewport' + name] = function (win) {
2233      // pc browser includes scrollbar in window.innerWidth
2234      var prop = 'client' + name;
2235      var doc = win.document;
2236      var body = doc.body;
2237      var documentElement = doc.documentElement;
2238      var documentElementProp = documentElement[prop];
2239      // 标准模式取 documentElement
2240      // backcompat 取 body
2241      return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;
2242    };
2243  });
2244  
2245  /*
2246   得到元素的大小信息
2247   @param elem
2248   @param name
2249   @param {String} [extra]  'padding' : (css width) + padding
2250   'border' : (css width) + padding + border
2251   'margin' : (css width) + padding + border + margin
2252   */
2253  function getWH(elem, name, extra) {
2254    if (isWindow(elem)) {
2255      return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);
2256    } else if (elem.nodeType === 9) {
2257      return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);
2258    }
2259    var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
2260    var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;
2261    var computedStyle = getComputedStyleX(elem);
2262    var isBorderBox = isBorderBoxFn(elem, computedStyle);
2263    var cssBoxValue = 0;
2264    if (borderBoxValue == null || borderBoxValue <= 0) {
2265      borderBoxValue = undefined;
2266      // Fall back to computed then un computed css if necessary
2267      cssBoxValue = getComputedStyleX(elem, name);
2268      if (cssBoxValue == null || Number(cssBoxValue) < 0) {
2269        cssBoxValue = elem.style[name] || 0;
2270      }
2271      // Normalize '', auto, and prepare for extra
2272      cssBoxValue = parseFloat(cssBoxValue) || 0;
2273    }
2274    if (extra === undefined) {
2275      extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;
2276    }
2277    var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;
2278    var val = borderBoxValue || cssBoxValue;
2279    if (extra === CONTENT_INDEX) {
2280      if (borderBoxValueOrIsBorderBox) {
2281        return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle);
2282      }
2283      return cssBoxValue;
2284    }
2285    if (borderBoxValueOrIsBorderBox) {
2286      var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle);
2287      return val + (extra === BORDER_INDEX ? 0 : padding);
2288    }
2289    return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);
2290  }
2291  
2292  var cssShow = {
2293    position: 'absolute',
2294    visibility: 'hidden',
2295    display: 'block'
2296  };
2297  
2298  // fix #119 : https://github.com/kissyteam/kissy/issues/119
2299  function getWHIgnoreDisplay(elem) {
2300    var val = undefined;
2301    var args = arguments;
2302    // in case elem is window
2303    // elem.offsetWidth === undefined
2304    if (elem.offsetWidth !== 0) {
2305      val = getWH.apply(undefined, args);
2306    } else {
2307      swap(elem, cssShow, function () {
2308        val = getWH.apply(undefined, args);
2309      });
2310    }
2311    return val;
2312  }
2313  
2314  function css(el, name, v) {
2315    var value = v;
2316    if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {
2317      for (var i in name) {
2318        if (name.hasOwnProperty(i)) {
2319          css(el, i, name[i]);
2320        }
2321      }
2322      return undefined;
2323    }
2324    if (typeof value !== 'undefined') {
2325      if (typeof value === 'number') {
2326        value += 'px';
2327      }
2328      el.style[name] = value;
2329      return undefined;
2330    }
2331    return getComputedStyleX(el, name);
2332  }
2333  
2334  each(['width', 'height'], function (name) {
2335    var first = name.charAt(0).toUpperCase() + name.slice(1);
2336    domUtils['outer' + first] = function (el, includeMargin) {
2337      return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);
2338    };
2339    var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
2340  
2341    domUtils[name] = function (elem, val) {
2342      if (val !== undefined) {
2343        if (elem) {
2344          var computedStyle = getComputedStyleX(elem);
2345          var isBorderBox = isBorderBoxFn(elem);
2346          if (isBorderBox) {
2347            val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);
2348          }
2349          return css(elem, name, val);
2350        }
2351        return undefined;
2352      }
2353      return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);
2354    };
2355  });
2356  
2357  // 设置 elem 相对 elem.ownerDocument 的坐标
2358  function setOffset(elem, offset) {
2359    // set position first, in-case top/left are set even on static elem
2360    if (css(elem, 'position') === 'static') {
2361      elem.style.position = 'relative';
2362    }
2363  
2364    var old = getOffset(elem);
2365    var ret = {};
2366    var current = undefined;
2367    var key = undefined;
2368  
2369    for (key in offset) {
2370      if (offset.hasOwnProperty(key)) {
2371        current = parseFloat(css(elem, key)) || 0;
2372        ret[key] = current + offset[key] - old[key];
2373      }
2374    }
2375    css(elem, ret);
2376  }
2377  
2378  module.exports = _extends({
2379    getWindow: function getWindow(node) {
2380      var doc = node.ownerDocument || node;
2381      return doc.defaultView || doc.parentWindow;
2382    },
2383    offset: function offset(el, value) {
2384      if (typeof value !== 'undefined') {
2385        setOffset(el, value);
2386      } else {
2387        return getOffset(el);
2388      }
2389    },
2390  
2391    isWindow: isWindow,
2392    each: each,
2393    css: css,
2394    clone: function clone(obj) {
2395      var ret = {};
2396      for (var i in obj) {
2397        if (obj.hasOwnProperty(i)) {
2398          ret[i] = obj[i];
2399        }
2400      }
2401      var overflow = obj.overflow;
2402      if (overflow) {
2403        for (var i in obj) {
2404          if (obj.hasOwnProperty(i)) {
2405            ret.overflow[i] = obj.overflow[i];
2406          }
2407        }
2408      }
2409      return ret;
2410    },
2411    scrollLeft: function scrollLeft(w, v) {
2412      if (isWindow(w)) {
2413        if (v === undefined) {
2414          return getScrollLeft(w);
2415        }
2416        window.scrollTo(v, getScrollTop(w));
2417      } else {
2418        if (v === undefined) {
2419          return w.scrollLeft;
2420        }
2421        w.scrollLeft = v;
2422      }
2423    },
2424    scrollTop: function scrollTop(w, v) {
2425      if (isWindow(w)) {
2426        if (v === undefined) {
2427          return getScrollTop(w);
2428        }
2429        window.scrollTo(getScrollLeft(w), v);
2430      } else {
2431        if (v === undefined) {
2432          return w.scrollTop;
2433        }
2434        w.scrollTop = v;
2435      }
2436    },
2437  
2438    viewportWidth: 0,
2439    viewportHeight: 0
2440  }, domUtils);
2441  
2442  /***/ }),
2443  
2444  /***/ 9214:
2445  /***/ (function(__unused_webpack_module, exports) {
2446  
2447  "use strict";
2448  var __webpack_unused_export__;
2449  /** @license React v17.0.2
2450   * react-is.production.min.js
2451   *
2452   * Copyright (c) Facebook, Inc. and its affiliates.
2453   *
2454   * This source code is licensed under the MIT license found in the
2455   * LICENSE file in the root directory of this source tree.
2456   */
2457  var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;
2458  if("function"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x("react.element");c=x("react.portal");d=x("react.fragment");e=x("react.strict_mode");f=x("react.profiler");g=x("react.provider");h=x("react.context");k=x("react.forward_ref");l=x("react.suspense");m=x("react.suspense_list");n=x("react.memo");p=x("react.lazy");q=x("react.block");r=x("react.server.block");u=x("react.fundamental");v=x("react.debug_trace_mode");w=x("react.legacy_hidden")}
2459  function y(a){if("object"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;__webpack_unused_export__=h;__webpack_unused_export__=z;__webpack_unused_export__=A;__webpack_unused_export__=B;__webpack_unused_export__=C;__webpack_unused_export__=D;__webpack_unused_export__=E;__webpack_unused_export__=F;__webpack_unused_export__=G;__webpack_unused_export__=H;
2460  __webpack_unused_export__=I;__webpack_unused_export__=function(){return!1};__webpack_unused_export__=function(){return!1};__webpack_unused_export__=function(a){return y(a)===h};__webpack_unused_export__=function(a){return y(a)===g};__webpack_unused_export__=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===b};__webpack_unused_export__=function(a){return y(a)===k};__webpack_unused_export__=function(a){return y(a)===d};__webpack_unused_export__=function(a){return y(a)===p};__webpack_unused_export__=function(a){return y(a)===n};
2461  __webpack_unused_export__=function(a){return y(a)===c};__webpack_unused_export__=function(a){return y(a)===f};__webpack_unused_export__=function(a){return y(a)===e};__webpack_unused_export__=function(a){return y(a)===l};__webpack_unused_export__=function(a){return"string"===typeof a||"function"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||"object"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};
2462  __webpack_unused_export__=y;
2463  
2464  
2465  /***/ }),
2466  
2467  /***/ 2797:
2468  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
2469  
2470  "use strict";
2471  
2472  
2473  if (true) {
2474    /* unused reexport */ __webpack_require__(9214);
2475  } else {}
2476  
2477  
2478  /***/ }),
2479  
2480  /***/ 2505:
2481  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
2482  
2483  "use strict";
2484  
2485  
2486  var has = __webpack_require__(9284);
2487  
2488  var hasUnscopables = typeof Symbol === 'function' && typeof Symbol.unscopables === 'symbol';
2489  
2490  var map = hasUnscopables && Array.prototype[Symbol.unscopables];
2491  
2492  var $TypeError = TypeError;
2493  
2494  module.exports = function shimUnscopables(method) {
2495      if (typeof method !== 'string' || !method) {
2496          throw new $TypeError('method must be a non-empty string');
2497      }
2498      if (!has(Array.prototype, method)) {
2499          throw new $TypeError('method must be on Array.prototype');
2500      }
2501      if (hasUnscopables) {
2502          map[method] = true;
2503      }
2504  };
2505  
2506  
2507  /***/ }),
2508  
2509  /***/ 5249:
2510  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
2511  
2512  "use strict";
2513  
2514  
2515  var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';
2516  
2517  var isPrimitive = __webpack_require__(3777);
2518  var isCallable = __webpack_require__(5443);
2519  var isDate = __webpack_require__(8659);
2520  var isSymbol = __webpack_require__(3082);
2521  
2522  var ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {
2523      if (typeof O === 'undefined' || O === null) {
2524          throw new TypeError('Cannot call method on ' + O);
2525      }
2526      if (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) {
2527          throw new TypeError('hint must be "string" or "number"');
2528      }
2529      var methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];
2530      var method, result, i;
2531      for (i = 0; i < methodNames.length; ++i) {
2532          method = O[methodNames[i]];
2533          if (isCallable(method)) {
2534              result = method.call(O);
2535              if (isPrimitive(result)) {
2536                  return result;
2537              }
2538          }
2539      }
2540      throw new TypeError('No default value');
2541  };
2542  
2543  var GetMethod = function GetMethod(O, P) {
2544      var func = O[P];
2545      if (func !== null && typeof func !== 'undefined') {
2546          if (!isCallable(func)) {
2547              throw new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');
2548          }
2549          return func;
2550      }
2551      return void 0;
2552  };
2553  
2554  // http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive
2555  module.exports = function ToPrimitive(input) {
2556      if (isPrimitive(input)) {
2557          return input;
2558      }
2559      var hint = 'default';
2560      if (arguments.length > 1) {
2561          if (arguments[1] === String) {
2562              hint = 'string';
2563          } else if (arguments[1] === Number) {
2564              hint = 'number';
2565          }
2566      }
2567  
2568      var exoticToPrim;
2569      if (hasSymbols) {
2570          if (Symbol.toPrimitive) {
2571              exoticToPrim = GetMethod(input, Symbol.toPrimitive);
2572          } else if (isSymbol(input)) {
2573              exoticToPrim = Symbol.prototype.valueOf;
2574          }
2575      }
2576      if (typeof exoticToPrim !== 'undefined') {
2577          var result = exoticToPrim.call(input, hint);
2578          if (isPrimitive(result)) {
2579              return result;
2580          }
2581          throw new TypeError('unable to convert exotic object to primitive');
2582      }
2583      if (hint === 'default' && (isDate(input) || isSymbol(input))) {
2584          hint = 'string';
2585      }
2586      return ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);
2587  };
2588  
2589  
2590  /***/ }),
2591  
2592  /***/ 3777:
2593  /***/ (function(module) {
2594  
2595  "use strict";
2596  
2597  
2598  module.exports = function isPrimitive(value) {
2599      return value === null || (typeof value !== 'function' && typeof value !== 'object');
2600  };
2601  
2602  
2603  /***/ }),
2604  
2605  /***/ 9930:
2606  /***/ (function(module) {
2607  
2608  "use strict";
2609  
2610  
2611  /* eslint no-invalid-this: 1 */
2612  
2613  var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';
2614  var slice = Array.prototype.slice;
2615  var toStr = Object.prototype.toString;
2616  var funcType = '[object Function]';
2617  
2618  module.exports = function bind(that) {
2619      var target = this;
2620      if (typeof target !== 'function' || toStr.call(target) !== funcType) {
2621          throw new TypeError(ERROR_MESSAGE + target);
2622      }
2623      var args = slice.call(arguments, 1);
2624  
2625      var bound;
2626      var binder = function () {
2627          if (this instanceof bound) {
2628              var result = target.apply(
2629                  this,
2630                  args.concat(slice.call(arguments))
2631              );
2632              if (Object(result) === result) {
2633                  return result;
2634              }
2635              return this;
2636          } else {
2637              return target.apply(
2638                  that,
2639                  args.concat(slice.call(arguments))
2640              );
2641          }
2642      };
2643  
2644      var boundLength = Math.max(0, target.length - args.length);
2645      var boundArgs = [];
2646      for (var i = 0; i < boundLength; i++) {
2647          boundArgs.push('$' + i);
2648      }
2649  
2650      bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);
2651  
2652      if (target.prototype) {
2653          var Empty = function Empty() {};
2654          Empty.prototype = target.prototype;
2655          bound.prototype = new Empty();
2656          Empty.prototype = null;
2657      }
2658  
2659      return bound;
2660  };
2661  
2662  
2663  /***/ }),
2664  
2665  /***/ 1930:
2666  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
2667  
2668  "use strict";
2669  
2670  
2671  var implementation = __webpack_require__(9930);
2672  
2673  module.exports = Function.prototype.bind || implementation;
2674  
2675  
2676  /***/ }),
2677  
2678  /***/ 1801:
2679  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
2680  
2681  "use strict";
2682  
2683  
2684  /* globals
2685      AggregateError,
2686      Atomics,
2687      FinalizationRegistry,
2688      SharedArrayBuffer,
2689      WeakRef,
2690  */
2691  
2692  var undefined;
2693  
2694  var $SyntaxError = SyntaxError;
2695  var $Function = Function;
2696  var $TypeError = TypeError;
2697  
2698  // eslint-disable-next-line consistent-return
2699  var getEvalledConstructor = function (expressionSyntax) {
2700      try {
2701          // eslint-disable-next-line no-new-func
2702          return Function('"use strict"; return (' + expressionSyntax + ').constructor;')();
2703      } catch (e) {}
2704  };
2705  
2706  var $gOPD = Object.getOwnPropertyDescriptor;
2707  if ($gOPD) {
2708      try {
2709          $gOPD({}, '');
2710      } catch (e) {
2711          $gOPD = null; // this is IE 8, which has a broken gOPD
2712      }
2713  }
2714  
2715  var throwTypeError = function () {
2716      throw new $TypeError();
2717  };
2718  var ThrowTypeError = $gOPD
2719      ? (function () {
2720          try {
2721              // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
2722              arguments.callee; // IE 8 does not throw here
2723              return throwTypeError;
2724          } catch (calleeThrows) {
2725              try {
2726                  // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
2727                  return $gOPD(arguments, 'callee').get;
2728              } catch (gOPDthrows) {
2729                  return throwTypeError;
2730              }
2731          }
2732      }())
2733      : throwTypeError;
2734  
2735  var hasSymbols = __webpack_require__(9905)();
2736  
2737  var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
2738  
2739  var asyncGenFunction = getEvalledConstructor('async function* () {}');
2740  var asyncGenFunctionPrototype = asyncGenFunction ? asyncGenFunction.prototype : undefined;
2741  var asyncGenPrototype = asyncGenFunctionPrototype ? asyncGenFunctionPrototype.prototype : undefined;
2742  
2743  var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
2744  
2745  var INTRINSICS = {
2746      '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
2747      '%Array%': Array,
2748      '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
2749      '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
2750      '%AsyncFromSyncIteratorPrototype%': undefined,
2751      '%AsyncFunction%': getEvalledConstructor('async function () {}'),
2752      '%AsyncGenerator%': asyncGenFunctionPrototype,
2753      '%AsyncGeneratorFunction%': asyncGenFunction,
2754      '%AsyncIteratorPrototype%': asyncGenPrototype ? getProto(asyncGenPrototype) : undefined,
2755      '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
2756      '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,
2757      '%Boolean%': Boolean,
2758      '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,
2759      '%Date%': Date,
2760      '%decodeURI%': decodeURI,
2761      '%decodeURIComponent%': decodeURIComponent,
2762      '%encodeURI%': encodeURI,
2763      '%encodeURIComponent%': encodeURIComponent,
2764      '%Error%': Error,
2765      '%eval%': eval, // eslint-disable-line no-eval
2766      '%EvalError%': EvalError,
2767      '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
2768      '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
2769      '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
2770      '%Function%': $Function,
2771      '%GeneratorFunction%': getEvalledConstructor('function* () {}'),
2772      '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
2773      '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
2774      '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
2775      '%isFinite%': isFinite,
2776      '%isNaN%': isNaN,
2777      '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
2778      '%JSON%': typeof JSON === 'object' ? JSON : undefined,
2779      '%Map%': typeof Map === 'undefined' ? undefined : Map,
2780      '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
2781      '%Math%': Math,
2782      '%Number%': Number,
2783      '%Object%': Object,
2784      '%parseFloat%': parseFloat,
2785      '%parseInt%': parseInt,
2786      '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
2787      '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
2788      '%RangeError%': RangeError,
2789      '%ReferenceError%': ReferenceError,
2790      '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
2791      '%RegExp%': RegExp,
2792      '%Set%': typeof Set === 'undefined' ? undefined : Set,
2793      '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
2794      '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
2795      '%String%': String,
2796      '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
2797      '%Symbol%': hasSymbols ? Symbol : undefined,
2798      '%SyntaxError%': $SyntaxError,
2799      '%ThrowTypeError%': ThrowTypeError,
2800      '%TypedArray%': TypedArray,
2801      '%TypeError%': $TypeError,
2802      '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
2803      '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
2804      '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
2805      '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
2806      '%URIError%': URIError,
2807      '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
2808      '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
2809      '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
2810  };
2811  
2812  var LEGACY_ALIASES = {
2813      '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
2814      '%ArrayPrototype%': ['Array', 'prototype'],
2815      '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
2816      '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
2817      '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
2818      '%ArrayProto_values%': ['Array', 'prototype', 'values'],
2819      '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
2820      '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
2821      '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],
2822      '%BooleanPrototype%': ['Boolean', 'prototype'],
2823      '%DataViewPrototype%': ['DataView', 'prototype'],
2824      '%DatePrototype%': ['Date', 'prototype'],
2825      '%ErrorPrototype%': ['Error', 'prototype'],
2826      '%EvalErrorPrototype%': ['EvalError', 'prototype'],
2827      '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
2828      '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
2829      '%FunctionPrototype%': ['Function', 'prototype'],
2830      '%Generator%': ['GeneratorFunction', 'prototype'],
2831      '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],
2832      '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
2833      '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
2834      '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
2835      '%JSONParse%': ['JSON', 'parse'],
2836      '%JSONStringify%': ['JSON', 'stringify'],
2837      '%MapPrototype%': ['Map', 'prototype'],
2838      '%NumberPrototype%': ['Number', 'prototype'],
2839      '%ObjectPrototype%': ['Object', 'prototype'],
2840      '%ObjProto_toString%': ['Object', 'prototype', 'toString'],
2841      '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
2842      '%PromisePrototype%': ['Promise', 'prototype'],
2843      '%PromiseProto_then%': ['Promise', 'prototype', 'then'],
2844      '%Promise_all%': ['Promise', 'all'],
2845      '%Promise_reject%': ['Promise', 'reject'],
2846      '%Promise_resolve%': ['Promise', 'resolve'],
2847      '%RangeErrorPrototype%': ['RangeError', 'prototype'],
2848      '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
2849      '%RegExpPrototype%': ['RegExp', 'prototype'],
2850      '%SetPrototype%': ['Set', 'prototype'],
2851      '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
2852      '%StringPrototype%': ['String', 'prototype'],
2853      '%SymbolPrototype%': ['Symbol', 'prototype'],
2854      '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
2855      '%TypedArrayPrototype%': ['TypedArray', 'prototype'],
2856      '%TypeErrorPrototype%': ['TypeError', 'prototype'],
2857      '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
2858      '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
2859      '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
2860      '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
2861      '%URIErrorPrototype%': ['URIError', 'prototype'],
2862      '%WeakMapPrototype%': ['WeakMap', 'prototype'],
2863      '%WeakSetPrototype%': ['WeakSet', 'prototype']
2864  };
2865  
2866  var bind = __webpack_require__(1930);
2867  var hasOwn = __webpack_require__(9284);
2868  var $concat = bind.call(Function.call, Array.prototype.concat);
2869  var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
2870  var $replace = bind.call(Function.call, String.prototype.replace);
2871  var $strSlice = bind.call(Function.call, String.prototype.slice);
2872  
2873  /* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
2874  var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
2875  var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
2876  var stringToPath = function stringToPath(string) {
2877      var first = $strSlice(string, 0, 1);
2878      var last = $strSlice(string, -1);
2879      if (first === '%' && last !== '%') {
2880          throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');
2881      } else if (last === '%' && first !== '%') {
2882          throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');
2883      }
2884      var result = [];
2885      $replace(string, rePropName, function (match, number, quote, subString) {
2886          result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;
2887      });
2888      return result;
2889  };
2890  /* end adaptation */
2891  
2892  var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
2893      var intrinsicName = name;
2894      var alias;
2895      if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
2896          alias = LEGACY_ALIASES[intrinsicName];
2897          intrinsicName = '%' + alias[0] + '%';
2898      }
2899  
2900      if (hasOwn(INTRINSICS, intrinsicName)) {
2901          var value = INTRINSICS[intrinsicName];
2902          if (typeof value === 'undefined' && !allowMissing) {
2903              throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
2904          }
2905  
2906          return {
2907              alias: alias,
2908              name: intrinsicName,
2909              value: value
2910          };
2911      }
2912  
2913      throw new $SyntaxError('intrinsic ' + name + ' does not exist!');
2914  };
2915  
2916  module.exports = function GetIntrinsic(name, allowMissing) {
2917      if (typeof name !== 'string' || name.length === 0) {
2918          throw new $TypeError('intrinsic name must be a non-empty string');
2919      }
2920      if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
2921          throw new $TypeError('"allowMissing" argument must be a boolean');
2922      }
2923  
2924      var parts = stringToPath(name);
2925      var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
2926  
2927      var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);
2928      var intrinsicRealName = intrinsic.name;
2929      var value = intrinsic.value;
2930      var skipFurtherCaching = false;
2931  
2932      var alias = intrinsic.alias;
2933      if (alias) {
2934          intrinsicBaseName = alias[0];
2935          $spliceApply(parts, $concat([0, 1], alias));
2936      }
2937  
2938      for (var i = 1, isOwn = true; i < parts.length; i += 1) {
2939          var part = parts[i];
2940          var first = $strSlice(part, 0, 1);
2941          var last = $strSlice(part, -1);
2942          if (
2943              (
2944                  (first === '"' || first === "'" || first === '`')
2945                  || (last === '"' || last === "'" || last === '`')
2946              )
2947              && first !== last
2948          ) {
2949              throw new $SyntaxError('property names with quotes must have matching quotes');
2950          }
2951          if (part === 'constructor' || !isOwn) {
2952              skipFurtherCaching = true;
2953          }
2954  
2955          intrinsicBaseName += '.' + part;
2956          intrinsicRealName = '%' + intrinsicBaseName + '%';
2957  
2958          if (hasOwn(INTRINSICS, intrinsicRealName)) {
2959              value = INTRINSICS[intrinsicRealName];
2960          } else if (value != null) {
2961              if (!(part in value)) {
2962                  if (!allowMissing) {
2963                      throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
2964                  }
2965                  return void undefined;
2966              }
2967              if ($gOPD && (i + 1) >= parts.length) {
2968                  var desc = $gOPD(value, part);
2969                  isOwn = !!desc;
2970  
2971                  // By convention, when a data property is converted to an accessor
2972                  // property to emulate a data property that does not suffer from
2973                  // the override mistake, that accessor's getter is marked with
2974                  // an `originalValue` property. Here, when we detect this, we
2975                  // uphold the illusion by pretending to see that original data
2976                  // property, i.e., returning the value rather than the getter
2977                  // itself.
2978                  if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {
2979                      value = desc.get;
2980                  } else {
2981                      value = value[part];
2982                  }
2983              } else {
2984                  isOwn = hasOwn(value, part);
2985                  value = value[part];
2986              }
2987  
2988              if (isOwn && !skipFurtherCaching) {
2989                  INTRINSICS[intrinsicRealName] = value;
2990              }
2991          }
2992      }
2993      return value;
2994  };
2995  
2996  
2997  /***/ }),
2998  
2999  /***/ 5371:
3000  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
3001  
3002  "use strict";
3003  
3004  
3005  var define = __webpack_require__(9170);
3006  var isSymbol = __webpack_require__(3082);
3007  
3008  var globalKey = '__ global cache key __';
3009  /* istanbul ignore else */
3010  // eslint-disable-next-line no-restricted-properties
3011  if (typeof Symbol === 'function' && isSymbol(Symbol('foo')) && typeof Symbol['for'] === 'function') {
3012      // eslint-disable-next-line no-restricted-properties
3013      globalKey = Symbol['for'](globalKey);
3014  }
3015  
3016  var trueThunk = function () {
3017      return true;
3018  };
3019  
3020  var ensureCache = function ensureCache() {
3021      if (!__webpack_require__.g[globalKey]) {
3022          var properties = {};
3023          properties[globalKey] = {};
3024          var predicates = {};
3025          predicates[globalKey] = trueThunk;
3026          define(__webpack_require__.g, properties, predicates);
3027      }
3028      return __webpack_require__.g[globalKey];
3029  };
3030  
3031  var cache = ensureCache();
3032  
3033  var isPrimitive = function isPrimitive(val) {
3034      return val === null || (typeof val !== 'object' && typeof val !== 'function');
3035  };
3036  
3037  var getPrimitiveKey = function getPrimitiveKey(val) {
3038      if (isSymbol(val)) {
3039          return Symbol.prototype.valueOf.call(val);
3040      }
3041      return typeof val + ' | ' + String(val);
3042  };
3043  
3044  var requirePrimitiveKey = function requirePrimitiveKey(val) {
3045      if (!isPrimitive(val)) {
3046          throw new TypeError('key must not be an object');
3047      }
3048  };
3049  
3050  var globalCache = {
3051      clear: function clear() {
3052          delete __webpack_require__.g[globalKey];
3053          cache = ensureCache();
3054      },
3055  
3056      'delete': function deleteKey(key) {
3057          requirePrimitiveKey(key);
3058          delete cache[getPrimitiveKey(key)];
3059          return !globalCache.has(key);
3060      },
3061  
3062      get: function get(key) {
3063          requirePrimitiveKey(key);
3064          return cache[getPrimitiveKey(key)];
3065      },
3066  
3067      has: function has(key) {
3068          requirePrimitiveKey(key);
3069          return getPrimitiveKey(key) in cache;
3070      },
3071  
3072      set: function set(key, value) {
3073          requirePrimitiveKey(key);
3074          var primitiveKey = getPrimitiveKey(key);
3075          var props = {};
3076          props[primitiveKey] = value;
3077          var predicates = {};
3078          predicates[primitiveKey] = trueThunk;
3079          define(cache, props, predicates);
3080          return globalCache.has(key);
3081      },
3082  
3083      setIfMissingThenGet: function setIfMissingThenGet(key, valueThunk) {
3084          if (globalCache.has(key)) {
3085              return globalCache.get(key);
3086          }
3087          var item = valueThunk();
3088          globalCache.set(key, item);
3089          return item;
3090      }
3091  };
3092  
3093  module.exports = globalCache;
3094  
3095  
3096  /***/ }),
3097  
3098  /***/ 7115:
3099  /***/ (function(__unused_webpack_module, exports) {
3100  
3101  // Copyright (c) 2014 Rafael Caricio. All rights reserved.
3102  // Use of this source code is governed by a BSD-style license that can be
3103  // found in the LICENSE file.
3104  
3105  var GradientParser = {};
3106  
3107  GradientParser.parse = (function() {
3108  
3109    var tokens = {
3110      linearGradient: /^(\-(webkit|o|ms|moz)\-)?(linear\-gradient)/i,
3111      repeatingLinearGradient: /^(\-(webkit|o|ms|moz)\-)?(repeating\-linear\-gradient)/i,
3112      radialGradient: /^(\-(webkit|o|ms|moz)\-)?(radial\-gradient)/i,
3113      repeatingRadialGradient: /^(\-(webkit|o|ms|moz)\-)?(repeating\-radial\-gradient)/i,
3114      sideOrCorner: /^to (left (top|bottom)|right (top|bottom)|left|right|top|bottom)/i,
3115      extentKeywords: /^(closest\-side|closest\-corner|farthest\-side|farthest\-corner|contain|cover)/,
3116      positionKeywords: /^(left|center|right|top|bottom)/i,
3117      pixelValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))px/,
3118      percentageValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))\%/,
3119      emValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))em/,
3120      angleValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))deg/,
3121      startCall: /^\(/,
3122      endCall: /^\)/,
3123      comma: /^,/,
3124      hexColor: /^\#([0-9a-fA-F]+)/,
3125      literalColor: /^([a-zA-Z]+)/,
3126      rgbColor: /^rgb/i,
3127      rgbaColor: /^rgba/i,
3128      number: /^(([0-9]*\.[0-9]+)|([0-9]+\.?))/
3129    };
3130  
3131    var input = '';
3132  
3133    function error(msg) {
3134      var err = new Error(input + ': ' + msg);
3135      err.source = input;
3136      throw err;
3137    }
3138  
3139    function getAST() {
3140      var ast = matchListDefinitions();
3141  
3142      if (input.length > 0) {
3143        error('Invalid input not EOF');
3144      }
3145  
3146      return ast;
3147    }
3148  
3149    function matchListDefinitions() {
3150      return matchListing(matchDefinition);
3151    }
3152  
3153    function matchDefinition() {
3154      return matchGradient(
3155              'linear-gradient',
3156              tokens.linearGradient,
3157              matchLinearOrientation) ||
3158  
3159            matchGradient(
3160              'repeating-linear-gradient',
3161              tokens.repeatingLinearGradient,
3162              matchLinearOrientation) ||
3163  
3164            matchGradient(
3165              'radial-gradient',
3166              tokens.radialGradient,
3167              matchListRadialOrientations) ||
3168  
3169            matchGradient(
3170              'repeating-radial-gradient',
3171              tokens.repeatingRadialGradient,
3172              matchListRadialOrientations);
3173    }
3174  
3175    function matchGradient(gradientType, pattern, orientationMatcher) {
3176      return matchCall(pattern, function(captures) {
3177  
3178        var orientation = orientationMatcher();
3179        if (orientation) {
3180          if (!scan(tokens.comma)) {
3181            error('Missing comma before color stops');
3182          }
3183        }
3184  
3185        return {
3186          type: gradientType,
3187          orientation: orientation,
3188          colorStops: matchListing(matchColorStop)
3189        };
3190      });
3191    }
3192  
3193    function matchCall(pattern, callback) {
3194      var captures = scan(pattern);
3195  
3196      if (captures) {
3197        if (!scan(tokens.startCall)) {
3198          error('Missing (');
3199        }
3200  
3201        result = callback(captures);
3202  
3203        if (!scan(tokens.endCall)) {
3204          error('Missing )');
3205        }
3206  
3207        return result;
3208      }
3209    }
3210  
3211    function matchLinearOrientation() {
3212      return matchSideOrCorner() ||
3213        matchAngle();
3214    }
3215  
3216    function matchSideOrCorner() {
3217      return match('directional', tokens.sideOrCorner, 1);
3218    }
3219  
3220    function matchAngle() {
3221      return match('angular', tokens.angleValue, 1);
3222    }
3223  
3224    function matchListRadialOrientations() {
3225      var radialOrientations,
3226          radialOrientation = matchRadialOrientation(),
3227          lookaheadCache;
3228  
3229      if (radialOrientation) {
3230        radialOrientations = [];
3231        radialOrientations.push(radialOrientation);
3232  
3233        lookaheadCache = input;
3234        if (scan(tokens.comma)) {
3235          radialOrientation = matchRadialOrientation();
3236          if (radialOrientation) {
3237            radialOrientations.push(radialOrientation);
3238          } else {
3239            input = lookaheadCache;
3240          }
3241        }
3242      }
3243  
3244      return radialOrientations;
3245    }
3246  
3247    function matchRadialOrientation() {
3248      var radialType = matchCircle() ||
3249        matchEllipse();
3250  
3251      if (radialType) {
3252        radialType.at = matchAtPosition();
3253      } else {
3254        var defaultPosition = matchPositioning();
3255        if (defaultPosition) {
3256          radialType = {
3257            type: 'default-radial',
3258            at: defaultPosition
3259          };
3260        }
3261      }
3262  
3263      return radialType;
3264    }
3265  
3266    function matchCircle() {
3267      var circle = match('shape', /^(circle)/i, 0);
3268  
3269      if (circle) {
3270        circle.style = matchLength() || matchExtentKeyword();
3271      }
3272  
3273      return circle;
3274    }
3275  
3276    function matchEllipse() {
3277      var ellipse = match('shape', /^(ellipse)/i, 0);
3278  
3279      if (ellipse) {
3280        ellipse.style =  matchDistance() || matchExtentKeyword();
3281      }
3282  
3283      return ellipse;
3284    }
3285  
3286    function matchExtentKeyword() {
3287      return match('extent-keyword', tokens.extentKeywords, 1);
3288    }
3289  
3290    function matchAtPosition() {
3291      if (match('position', /^at/, 0)) {
3292        var positioning = matchPositioning();
3293  
3294        if (!positioning) {
3295          error('Missing positioning value');
3296        }
3297  
3298        return positioning;
3299      }
3300    }
3301  
3302    function matchPositioning() {
3303      var location = matchCoordinates();
3304  
3305      if (location.x || location.y) {
3306        return {
3307          type: 'position',
3308          value: location
3309        };
3310      }
3311    }
3312  
3313    function matchCoordinates() {
3314      return {
3315        x: matchDistance(),
3316        y: matchDistance()
3317      };
3318    }
3319  
3320    function matchListing(matcher) {
3321      var captures = matcher(),
3322        result = [];
3323  
3324      if (captures) {
3325        result.push(captures);
3326        while (scan(tokens.comma)) {
3327          captures = matcher();
3328          if (captures) {
3329            result.push(captures);
3330          } else {
3331            error('One extra comma');
3332          }
3333        }
3334      }
3335  
3336      return result;
3337    }
3338  
3339    function matchColorStop() {
3340      var color = matchColor();
3341  
3342      if (!color) {
3343        error('Expected color definition');
3344      }
3345  
3346      color.length = matchDistance();
3347      return color;
3348    }
3349  
3350    function matchColor() {
3351      return matchHexColor() ||
3352        matchRGBAColor() ||
3353        matchRGBColor() ||
3354        matchLiteralColor();
3355    }
3356  
3357    function matchLiteralColor() {
3358      return match('literal', tokens.literalColor, 0);
3359    }
3360  
3361    function matchHexColor() {
3362      return match('hex', tokens.hexColor, 1);
3363    }
3364  
3365    function matchRGBColor() {
3366      return matchCall(tokens.rgbColor, function() {
3367        return  {
3368          type: 'rgb',
3369          value: matchListing(matchNumber)
3370        };
3371      });
3372    }
3373  
3374    function matchRGBAColor() {
3375      return matchCall(tokens.rgbaColor, function() {
3376        return  {
3377          type: 'rgba',
3378          value: matchListing(matchNumber)
3379        };
3380      });
3381    }
3382  
3383    function matchNumber() {
3384      return scan(tokens.number)[1];
3385    }
3386  
3387    function matchDistance() {
3388      return match('%', tokens.percentageValue, 1) ||
3389        matchPositionKeyword() ||
3390        matchLength();
3391    }
3392  
3393    function matchPositionKeyword() {
3394      return match('position-keyword', tokens.positionKeywords, 1);
3395    }
3396  
3397    function matchLength() {
3398      return match('px', tokens.pixelValue, 1) ||
3399        match('em', tokens.emValue, 1);
3400    }
3401  
3402    function match(type, pattern, captureIndex) {
3403      var captures = scan(pattern);
3404      if (captures) {
3405        return {
3406          type: type,
3407          value: captures[captureIndex]
3408        };
3409      }
3410    }
3411  
3412    function scan(regexp) {
3413      var captures,
3414          blankCaptures;
3415  
3416      blankCaptures = /^[\n\r\t\s]+/.exec(input);
3417      if (blankCaptures) {
3418          consume(blankCaptures[0].length);
3419      }
3420  
3421      captures = regexp.exec(input);
3422      if (captures) {
3423          consume(captures[0].length);
3424      }
3425  
3426      return captures;
3427    }
3428  
3429    function consume(size) {
3430      input = input.substr(size);
3431    }
3432  
3433    return function(code) {
3434      input = code.toString();
3435      return getAST();
3436    };
3437  })();
3438  
3439  exports.parse = (GradientParser || {}).parse;
3440  
3441  
3442  /***/ }),
3443  
3444  /***/ 9905:
3445  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
3446  
3447  "use strict";
3448  
3449  
3450  var origSymbol = __webpack_require__.g.Symbol;
3451  var hasSymbolSham = __webpack_require__(5682);
3452  
3453  module.exports = function hasNativeSymbols() {
3454      if (typeof origSymbol !== 'function') { return false; }
3455      if (typeof Symbol !== 'function') { return false; }
3456      if (typeof origSymbol('foo') !== 'symbol') { return false; }
3457      if (typeof Symbol('bar') !== 'symbol') { return false; }
3458  
3459      return hasSymbolSham();
3460  };
3461  
3462  
3463  /***/ }),
3464  
3465  /***/ 5682:
3466  /***/ (function(module) {
3467  
3468  "use strict";
3469  
3470  
3471  /* eslint complexity: [2, 18], max-statements: [2, 33] */
3472  module.exports = function hasSymbols() {
3473      if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
3474      if (typeof Symbol.iterator === 'symbol') { return true; }
3475  
3476      var obj = {};
3477      var sym = Symbol('test');
3478      var symObj = Object(sym);
3479      if (typeof sym === 'string') { return false; }
3480  
3481      if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
3482      if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
3483  
3484      // temp disabled per https://github.com/ljharb/object.assign/issues/17
3485      // if (sym instanceof Symbol) { return false; }
3486      // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
3487      // if (!(symObj instanceof Symbol)) { return false; }
3488  
3489      // if (typeof Symbol.prototype.toString !== 'function') { return false; }
3490      // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
3491  
3492      var symVal = 42;
3493      obj[sym] = symVal;
3494      for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax
3495      if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
3496  
3497      if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
3498  
3499      var syms = Object.getOwnPropertySymbols(obj);
3500      if (syms.length !== 1 || syms[0] !== sym) { return false; }
3501  
3502      if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
3503  
3504      if (typeof Object.getOwnPropertyDescriptor === 'function') {
3505          var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
3506          if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
3507      }
3508  
3509      return true;
3510  };
3511  
3512  
3513  /***/ }),
3514  
3515  /***/ 81:
3516  /***/ (function(module) {
3517  
3518  "use strict";
3519  
3520  
3521  /* eslint complexity: [2, 18], max-statements: [2, 33] */
3522  module.exports = function hasSymbols() {
3523      if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
3524      if (typeof Symbol.iterator === 'symbol') { return true; }
3525  
3526      var obj = {};
3527      var sym = Symbol('test');
3528      var symObj = Object(sym);
3529      if (typeof sym === 'string') { return false; }
3530  
3531      if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
3532      if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
3533  
3534      // temp disabled per https://github.com/ljharb/object.assign/issues/17
3535      // if (sym instanceof Symbol) { return false; }
3536      // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
3537      // if (!(symObj instanceof Symbol)) { return false; }
3538  
3539      // if (typeof Symbol.prototype.toString !== 'function') { return false; }
3540      // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
3541  
3542      var symVal = 42;
3543      obj[sym] = symVal;
3544      for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop
3545      if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
3546  
3547      if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
3548  
3549      var syms = Object.getOwnPropertySymbols(obj);
3550      if (syms.length !== 1 || syms[0] !== sym) { return false; }
3551  
3552      if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
3553  
3554      if (typeof Object.getOwnPropertyDescriptor === 'function') {
3555          var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
3556          if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
3557      }
3558  
3559      return true;
3560  };
3561  
3562  
3563  /***/ }),
3564  
3565  /***/ 4111:
3566  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
3567  
3568  "use strict";
3569  
3570  
3571  var hasSymbols = __webpack_require__(81);
3572  
3573  module.exports = function hasToStringTagShams() {
3574      return hasSymbols() && !!Symbol.toStringTag;
3575  };
3576  
3577  
3578  /***/ }),
3579  
3580  /***/ 9284:
3581  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
3582  
3583  "use strict";
3584  
3585  
3586  var bind = __webpack_require__(1930);
3587  
3588  module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);
3589  
3590  
3591  /***/ }),
3592  
3593  /***/ 3138:
3594  /***/ (function(module) {
3595  
3596  module.exports =
3597  /******/ (function(modules) { // webpackBootstrap
3598  /******/     // The module cache
3599  /******/     var installedModules = {};
3600  /******/
3601  /******/     // The require function
3602  /******/ 	function __nested_webpack_require_187__(moduleId) {
3603  /******/
3604  /******/         // Check if module is in cache
3605  /******/         if(installedModules[moduleId])
3606  /******/             return installedModules[moduleId].exports;
3607  /******/
3608  /******/         // Create a new module (and put it into the cache)
3609  /******/         var module = installedModules[moduleId] = {
3610  /******/             exports: {},
3611  /******/             id: moduleId,
3612  /******/             loaded: false
3613  /******/         };
3614  /******/
3615  /******/         // Execute the module function
3616  /******/         modules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_187__);
3617  /******/
3618  /******/         // Flag the module as loaded
3619  /******/         module.loaded = true;
3620  /******/
3621  /******/         // Return the exports of the module
3622  /******/         return module.exports;
3623  /******/     }
3624  /******/
3625  /******/
3626  /******/     // expose the modules object (__webpack_modules__)
3627  /******/     __nested_webpack_require_187__.m = modules;
3628  /******/
3629  /******/     // expose the module cache
3630  /******/     __nested_webpack_require_187__.c = installedModules;
3631  /******/
3632  /******/     // __webpack_public_path__
3633  /******/     __nested_webpack_require_187__.p = "";
3634  /******/
3635  /******/     // Load entry module and return exports
3636  /******/     return __nested_webpack_require_187__(0);
3637  /******/ })
3638  /************************************************************************/
3639  /******/ ([
3640  /* 0 */
3641  /***/ (function(module, exports, __nested_webpack_require_1468__) {
3642  
3643      module.exports = __nested_webpack_require_1468__(1);
3644  
3645  
3646  /***/ }),
3647  /* 1 */
3648  /***/ (function(module, exports, __nested_webpack_require_1587__) {
3649  
3650      'use strict';
3651      
3652      Object.defineProperty(exports, "__esModule", {
3653        value: true
3654      });
3655      
3656      var _utils = __nested_webpack_require_1587__(2);
3657      
3658      Object.defineProperty(exports, 'combineChunks', {
3659        enumerable: true,
3660        get: function get() {
3661          return _utils.combineChunks;
3662        }
3663      });
3664      Object.defineProperty(exports, 'fillInChunks', {
3665        enumerable: true,
3666        get: function get() {
3667          return _utils.fillInChunks;
3668        }
3669      });
3670      Object.defineProperty(exports, 'findAll', {
3671        enumerable: true,
3672        get: function get() {
3673          return _utils.findAll;
3674        }
3675      });
3676      Object.defineProperty(exports, 'findChunks', {
3677        enumerable: true,
3678        get: function get() {
3679          return _utils.findChunks;
3680        }
3681      });
3682  
3683  /***/ }),
3684  /* 2 */
3685  /***/ (function(module, exports) {
3686  
3687      'use strict';
3688      
3689      Object.defineProperty(exports, "__esModule", {
3690        value: true
3691      });
3692      
3693      
3694      /**
3695       * Creates an array of chunk objects representing both higlightable and non highlightable pieces of text that match each search word.
3696       * @return Array of "chunks" (where a Chunk is { start:number, end:number, highlight:boolean })
3697       */
3698      var findAll = exports.findAll = function findAll(_ref) {
3699        var autoEscape = _ref.autoEscape,
3700            _ref$caseSensitive = _ref.caseSensitive,
3701            caseSensitive = _ref$caseSensitive === undefined ? false : _ref$caseSensitive,
3702            _ref$findChunks = _ref.findChunks,
3703            findChunks = _ref$findChunks === undefined ? defaultFindChunks : _ref$findChunks,
3704            sanitize = _ref.sanitize,
3705            searchWords = _ref.searchWords,
3706            textToHighlight = _ref.textToHighlight;
3707        return fillInChunks({
3708          chunksToHighlight: combineChunks({
3709            chunks: findChunks({
3710              autoEscape: autoEscape,
3711              caseSensitive: caseSensitive,
3712              sanitize: sanitize,
3713              searchWords: searchWords,
3714              textToHighlight: textToHighlight
3715            })
3716          }),
3717          totalLength: textToHighlight ? textToHighlight.length : 0
3718        });
3719      };
3720      
3721      /**
3722       * Takes an array of {start:number, end:number} objects and combines chunks that overlap into single chunks.
3723       * @return {start:number, end:number}[]
3724       */
3725      
3726      
3727      var combineChunks = exports.combineChunks = function combineChunks(_ref2) {
3728        var chunks = _ref2.chunks;
3729      
3730        chunks = chunks.sort(function (first, second) {
3731          return first.start - second.start;
3732        }).reduce(function (processedChunks, nextChunk) {
3733          // First chunk just goes straight in the array...
3734          if (processedChunks.length === 0) {
3735            return [nextChunk];
3736          } else {
3737            // ... subsequent chunks get checked to see if they overlap...
3738            var prevChunk = processedChunks.pop();
3739            if (nextChunk.start <= prevChunk.end) {
3740              // It may be the case that prevChunk completely surrounds nextChunk, so take the
3741              // largest of the end indeces.
3742              var endIndex = Math.max(prevChunk.end, nextChunk.end);
3743              processedChunks.push({ highlight: false, start: prevChunk.start, end: endIndex });
3744            } else {
3745              processedChunks.push(prevChunk, nextChunk);
3746            }
3747            return processedChunks;
3748          }
3749        }, []);
3750      
3751        return chunks;
3752      };
3753      
3754      /**
3755       * Examine text for any matches.
3756       * If we find matches, add them to the returned array as a "chunk" object ({start:number, end:number}).
3757       * @return {start:number, end:number}[]
3758       */
3759      var defaultFindChunks = function defaultFindChunks(_ref3) {
3760        var autoEscape = _ref3.autoEscape,
3761            caseSensitive = _ref3.caseSensitive,
3762            _ref3$sanitize = _ref3.sanitize,
3763            sanitize = _ref3$sanitize === undefined ? defaultSanitize : _ref3$sanitize,
3764            searchWords = _ref3.searchWords,
3765            textToHighlight = _ref3.textToHighlight;
3766      
3767        textToHighlight = sanitize(textToHighlight);
3768      
3769        return searchWords.filter(function (searchWord) {
3770          return searchWord;
3771        }) // Remove empty words
3772        .reduce(function (chunks, searchWord) {
3773          searchWord = sanitize(searchWord);
3774      
3775          if (autoEscape) {
3776            searchWord = escapeRegExpFn(searchWord);
3777          }
3778      
3779          var regex = new RegExp(searchWord, caseSensitive ? 'g' : 'gi');
3780      
3781          var match = void 0;
3782          while (match = regex.exec(textToHighlight)) {
3783            var _start = match.index;
3784            var _end = regex.lastIndex;
3785            // We do not return zero-length matches
3786            if (_end > _start) {
3787              chunks.push({ highlight: false, start: _start, end: _end });
3788            }
3789      
3790            // Prevent browsers like Firefox from getting stuck in an infinite loop
3791            // See http://www.regexguru.com/2008/04/watch-out-for-zero-length-matches/
3792            if (match.index === regex.lastIndex) {
3793              regex.lastIndex++;
3794            }
3795          }
3796      
3797          return chunks;
3798        }, []);
3799      };
3800      // Allow the findChunks to be overridden in findAll,
3801      // but for backwards compatibility we export as the old name
3802      exports.findChunks = defaultFindChunks;
3803      
3804      /**
3805       * Given a set of chunks to highlight, create an additional set of chunks
3806       * to represent the bits of text between the highlighted text.
3807       * @param chunksToHighlight {start:number, end:number}[]
3808       * @param totalLength number
3809       * @return {start:number, end:number, highlight:boolean}[]
3810       */
3811      
3812      var fillInChunks = exports.fillInChunks = function fillInChunks(_ref4) {
3813        var chunksToHighlight = _ref4.chunksToHighlight,
3814            totalLength = _ref4.totalLength;
3815      
3816        var allChunks = [];
3817        var append = function append(start, end, highlight) {
3818          if (end - start > 0) {
3819            allChunks.push({
3820              start: start,
3821              end: end,
3822              highlight: highlight
3823            });
3824          }
3825        };
3826      
3827        if (chunksToHighlight.length === 0) {
3828          append(0, totalLength, false);
3829        } else {
3830          var lastIndex = 0;
3831          chunksToHighlight.forEach(function (chunk) {
3832            append(lastIndex, chunk.start, false);
3833            append(chunk.start, chunk.end, true);
3834            lastIndex = chunk.end;
3835          });
3836          append(lastIndex, totalLength, false);
3837        }
3838        return allChunks;
3839      };
3840      
3841  	function defaultSanitize(string) {
3842        return string;
3843      }
3844      
3845  	function escapeRegExpFn(string) {
3846        return string.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
3847      }
3848  
3849  /***/ })
3850  /******/ ]);
3851  
3852  
3853  /***/ }),
3854  
3855  /***/ 1281:
3856  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
3857  
3858  "use strict";
3859  
3860  
3861  var reactIs = __webpack_require__(338);
3862  
3863  /**
3864   * Copyright 2015, Yahoo! Inc.
3865   * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
3866   */
3867  var REACT_STATICS = {
3868    childContextTypes: true,
3869    contextType: true,
3870    contextTypes: true,
3871    defaultProps: true,
3872    displayName: true,
3873    getDefaultProps: true,
3874    getDerivedStateFromError: true,
3875    getDerivedStateFromProps: true,
3876    mixins: true,
3877    propTypes: true,
3878    type: true
3879  };
3880  var KNOWN_STATICS = {
3881    name: true,
3882    length: true,
3883    prototype: true,
3884    caller: true,
3885    callee: true,
3886    arguments: true,
3887    arity: true
3888  };
3889  var FORWARD_REF_STATICS = {
3890    '$$typeof': true,
3891    render: true,
3892    defaultProps: true,
3893    displayName: true,
3894    propTypes: true
3895  };
3896  var MEMO_STATICS = {
3897    '$$typeof': true,
3898    compare: true,
3899    defaultProps: true,
3900    displayName: true,
3901    propTypes: true,
3902    type: true
3903  };
3904  var TYPE_STATICS = {};
3905  TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
3906  TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;
3907  
3908  function getStatics(component) {
3909    // React v16.11 and below
3910    if (reactIs.isMemo(component)) {
3911      return MEMO_STATICS;
3912    } // React v16.12 and above
3913  
3914  
3915    return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
3916  }
3917  
3918  var defineProperty = Object.defineProperty;
3919  var getOwnPropertyNames = Object.getOwnPropertyNames;
3920  var getOwnPropertySymbols = Object.getOwnPropertySymbols;
3921  var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
3922  var getPrototypeOf = Object.getPrototypeOf;
3923  var objectPrototype = Object.prototype;
3924  function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
3925    if (typeof sourceComponent !== 'string') {
3926      // don't hoist over string (html) components
3927      if (objectPrototype) {
3928        var inheritedComponent = getPrototypeOf(sourceComponent);
3929  
3930        if (inheritedComponent && inheritedComponent !== objectPrototype) {
3931          hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
3932        }
3933      }
3934  
3935      var keys = getOwnPropertyNames(sourceComponent);
3936  
3937      if (getOwnPropertySymbols) {
3938        keys = keys.concat(getOwnPropertySymbols(sourceComponent));
3939      }
3940  
3941      var targetStatics = getStatics(targetComponent);
3942      var sourceStatics = getStatics(sourceComponent);
3943  
3944      for (var i = 0; i < keys.length; ++i) {
3945        var key = keys[i];
3946  
3947        if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
3948          var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
3949  
3950          try {
3951            // Avoid failures from read-only properties
3952            defineProperty(targetComponent, key, descriptor);
3953          } catch (e) {}
3954        }
3955      }
3956    }
3957  
3958    return targetComponent;
3959  }
3960  
3961  module.exports = hoistNonReactStatics;
3962  
3963  
3964  /***/ }),
3965  
3966  /***/ 5443:
3967  /***/ (function(module) {
3968  
3969  "use strict";
3970  
3971  
3972  var fnToStr = Function.prototype.toString;
3973  var reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;
3974  var badArrayLike;
3975  var isCallableMarker;
3976  if (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {
3977      try {
3978          badArrayLike = Object.defineProperty({}, 'length', {
3979              get: function () {
3980                  throw isCallableMarker;
3981              }
3982          });
3983          isCallableMarker = {};
3984          // eslint-disable-next-line no-throw-literal
3985          reflectApply(function () { throw 42; }, null, badArrayLike);
3986      } catch (_) {
3987          if (_ !== isCallableMarker) {
3988              reflectApply = null;
3989          }
3990      }
3991  } else {
3992      reflectApply = null;
3993  }
3994  
3995  var constructorRegex = /^\s*class\b/;
3996  var isES6ClassFn = function isES6ClassFunction(value) {
3997      try {
3998          var fnStr = fnToStr.call(value);
3999          return constructorRegex.test(fnStr);
4000      } catch (e) {
4001          return false; // not a function
4002      }
4003  };
4004  
4005  var tryFunctionObject = function tryFunctionToStr(value) {
4006      try {
4007          if (isES6ClassFn(value)) { return false; }
4008          fnToStr.call(value);
4009          return true;
4010      } catch (e) {
4011          return false;
4012      }
4013  };
4014  var toStr = Object.prototype.toString;
4015  var fnClass = '[object Function]';
4016  var genClass = '[object GeneratorFunction]';
4017  var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
4018  
4019  module.exports = reflectApply
4020      ? function isCallable(value) {
4021          if (!value) { return false; }
4022          if (typeof value !== 'function' && typeof value !== 'object') { return false; }
4023          if (typeof value === 'function' && !value.prototype) { return true; }
4024          try {
4025              reflectApply(value, null, badArrayLike);
4026          } catch (e) {
4027              if (e !== isCallableMarker) { return false; }
4028          }
4029          return !isES6ClassFn(value);
4030      }
4031      : function isCallable(value) {
4032          if (!value) { return false; }
4033          if (typeof value !== 'function' && typeof value !== 'object') { return false; }
4034          if (typeof value === 'function' && !value.prototype) { return true; }
4035          if (hasToStringTag) { return tryFunctionObject(value); }
4036          if (isES6ClassFn(value)) { return false; }
4037          var strClass = toStr.call(value);
4038          return strClass === fnClass || strClass === genClass;
4039      };
4040  
4041  
4042  /***/ }),
4043  
4044  /***/ 8659:
4045  /***/ (function(module) {
4046  
4047  "use strict";
4048  
4049  
4050  var getDay = Date.prototype.getDay;
4051  var tryDateObject = function tryDateGetDayCall(value) {
4052      try {
4053          getDay.call(value);
4054          return true;
4055      } catch (e) {
4056          return false;
4057      }
4058  };
4059  
4060  var toStr = Object.prototype.toString;
4061  var dateClass = '[object Date]';
4062  var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
4063  
4064  module.exports = function isDateObject(value) {
4065      if (typeof value !== 'object' || value === null) {
4066          return false;
4067      }
4068      return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;
4069  };
4070  
4071  
4072  /***/ }),
4073  
4074  /***/ 3082:
4075  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4076  
4077  "use strict";
4078  
4079  
4080  var toStr = Object.prototype.toString;
4081  var hasSymbols = __webpack_require__(9905)();
4082  
4083  if (hasSymbols) {
4084      var symToStr = Symbol.prototype.toString;
4085      var symStringRegex = /^Symbol\(.*\)$/;
4086      var isSymbolObject = function isRealSymbolObject(value) {
4087          if (typeof value.valueOf() !== 'symbol') {
4088              return false;
4089          }
4090          return symStringRegex.test(symToStr.call(value));
4091      };
4092  
4093      module.exports = function isSymbol(value) {
4094          if (typeof value === 'symbol') {
4095              return true;
4096          }
4097          if (toStr.call(value) !== '[object Symbol]') {
4098              return false;
4099          }
4100          try {
4101              return isSymbolObject(value);
4102          } catch (e) {
4103              return false;
4104          }
4105      };
4106  } else {
4107  
4108      module.exports = function isSymbol(value) {
4109          // this environment does not support Symbols.
4110          return  false && 0;
4111      };
4112  }
4113  
4114  
4115  /***/ }),
4116  
4117  /***/ 5834:
4118  /***/ (function(module, exports) {
4119  
4120  Object.defineProperty(exports, "__esModule", ({
4121    value: true
4122  }));
4123  exports["default"] = isTouchDevice;
4124  function isTouchDevice() {
4125    return !!(typeof window !== 'undefined' && ('ontouchstart' in window || window.DocumentTouch && typeof document !== 'undefined' && document instanceof window.DocumentTouch)) || !!(typeof navigator !== 'undefined' && (navigator.maxTouchPoints || navigator.msMaxTouchPoints));
4126  }
4127  module.exports = exports['default'];
4128  
4129  /***/ }),
4130  
4131  /***/ 4937:
4132  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4133  
4134  var root = __webpack_require__(158);
4135  
4136  /** Built-in value references. */
4137  var Symbol = root.Symbol;
4138  
4139  module.exports = Symbol;
4140  
4141  
4142  /***/ }),
4143  
4144  /***/ 194:
4145  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4146  
4147  var Symbol = __webpack_require__(4937),
4148      getRawTag = __webpack_require__(5401),
4149      objectToString = __webpack_require__(2445);
4150  
4151  /** `Object#toString` result references. */
4152  var nullTag = '[object Null]',
4153      undefinedTag = '[object Undefined]';
4154  
4155  /** Built-in value references. */
4156  var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
4157  
4158  /**
4159   * The base implementation of `getTag` without fallbacks for buggy environments.
4160   *
4161   * @private
4162   * @param {*} value The value to query.
4163   * @returns {string} Returns the `toStringTag`.
4164   */
4165  function baseGetTag(value) {
4166    if (value == null) {
4167      return value === undefined ? undefinedTag : nullTag;
4168    }
4169    return (symToStringTag && symToStringTag in Object(value))
4170      ? getRawTag(value)
4171      : objectToString(value);
4172  }
4173  
4174  module.exports = baseGetTag;
4175  
4176  
4177  /***/ }),
4178  
4179  /***/ 2383:
4180  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4181  
4182  var trimmedEndIndex = __webpack_require__(8725);
4183  
4184  /** Used to match leading whitespace. */
4185  var reTrimStart = /^\s+/;
4186  
4187  /**
4188   * The base implementation of `_.trim`.
4189   *
4190   * @private
4191   * @param {string} string The string to trim.
4192   * @returns {string} Returns the trimmed string.
4193   */
4194  function baseTrim(string) {
4195    return string
4196      ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')
4197      : string;
4198  }
4199  
4200  module.exports = baseTrim;
4201  
4202  
4203  /***/ }),
4204  
4205  /***/ 4528:
4206  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4207  
4208  /** Detect free variable `global` from Node.js. */
4209  var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;
4210  
4211  module.exports = freeGlobal;
4212  
4213  
4214  /***/ }),
4215  
4216  /***/ 5401:
4217  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4218  
4219  var Symbol = __webpack_require__(4937);
4220  
4221  /** Used for built-in method references. */
4222  var objectProto = Object.prototype;
4223  
4224  /** Used to check objects for own properties. */
4225  var hasOwnProperty = objectProto.hasOwnProperty;
4226  
4227  /**
4228   * Used to resolve the
4229   * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
4230   * of values.
4231   */
4232  var nativeObjectToString = objectProto.toString;
4233  
4234  /** Built-in value references. */
4235  var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
4236  
4237  /**
4238   * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
4239   *
4240   * @private
4241   * @param {*} value The value to query.
4242   * @returns {string} Returns the raw `toStringTag`.
4243   */
4244  function getRawTag(value) {
4245    var isOwn = hasOwnProperty.call(value, symToStringTag),
4246        tag = value[symToStringTag];
4247  
4248    try {
4249      value[symToStringTag] = undefined;
4250      var unmasked = true;
4251    } catch (e) {}
4252  
4253    var result = nativeObjectToString.call(value);
4254    if (unmasked) {
4255      if (isOwn) {
4256        value[symToStringTag] = tag;
4257      } else {
4258        delete value[symToStringTag];
4259      }
4260    }
4261    return result;
4262  }
4263  
4264  module.exports = getRawTag;
4265  
4266  
4267  /***/ }),
4268  
4269  /***/ 2445:
4270  /***/ (function(module) {
4271  
4272  /** Used for built-in method references. */
4273  var objectProto = Object.prototype;
4274  
4275  /**
4276   * Used to resolve the
4277   * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
4278   * of values.
4279   */
4280  var nativeObjectToString = objectProto.toString;
4281  
4282  /**
4283   * Converts `value` to a string using `Object.prototype.toString`.
4284   *
4285   * @private
4286   * @param {*} value The value to convert.
4287   * @returns {string} Returns the converted string.
4288   */
4289  function objectToString(value) {
4290    return nativeObjectToString.call(value);
4291  }
4292  
4293  module.exports = objectToString;
4294  
4295  
4296  /***/ }),
4297  
4298  /***/ 158:
4299  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4300  
4301  var freeGlobal = __webpack_require__(4528);
4302  
4303  /** Detect free variable `self`. */
4304  var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
4305  
4306  /** Used as a reference to the global object. */
4307  var root = freeGlobal || freeSelf || Function('return this')();
4308  
4309  module.exports = root;
4310  
4311  
4312  /***/ }),
4313  
4314  /***/ 8725:
4315  /***/ (function(module) {
4316  
4317  /** Used to match a single whitespace character. */
4318  var reWhitespace = /\s/;
4319  
4320  /**
4321   * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
4322   * character of `string`.
4323   *
4324   * @private
4325   * @param {string} string The string to inspect.
4326   * @returns {number} Returns the index of the last non-whitespace character.
4327   */
4328  function trimmedEndIndex(string) {
4329    var index = string.length;
4330  
4331    while (index-- && reWhitespace.test(string.charAt(index))) {}
4332    return index;
4333  }
4334  
4335  module.exports = trimmedEndIndex;
4336  
4337  
4338  /***/ }),
4339  
4340  /***/ 6897:
4341  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4342  
4343  var isObject = __webpack_require__(3619),
4344      now = __webpack_require__(8253),
4345      toNumber = __webpack_require__(5053);
4346  
4347  /** Error message constants. */
4348  var FUNC_ERROR_TEXT = 'Expected a function';
4349  
4350  /* Built-in method references for those with the same name as other `lodash` methods. */
4351  var nativeMax = Math.max,
4352      nativeMin = Math.min;
4353  
4354  /**
4355   * Creates a debounced function that delays invoking `func` until after `wait`
4356   * milliseconds have elapsed since the last time the debounced function was
4357   * invoked. The debounced function comes with a `cancel` method to cancel
4358   * delayed `func` invocations and a `flush` method to immediately invoke them.
4359   * Provide `options` to indicate whether `func` should be invoked on the
4360   * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
4361   * with the last arguments provided to the debounced function. Subsequent
4362   * calls to the debounced function return the result of the last `func`
4363   * invocation.
4364   *
4365   * **Note:** If `leading` and `trailing` options are `true`, `func` is
4366   * invoked on the trailing edge of the timeout only if the debounced function
4367   * is invoked more than once during the `wait` timeout.
4368   *
4369   * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
4370   * until to the next tick, similar to `setTimeout` with a timeout of `0`.
4371   *
4372   * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
4373   * for details over the differences between `_.debounce` and `_.throttle`.
4374   *
4375   * @static
4376   * @memberOf _
4377   * @since 0.1.0
4378   * @category Function
4379   * @param {Function} func The function to debounce.
4380   * @param {number} [wait=0] The number of milliseconds to delay.
4381   * @param {Object} [options={}] The options object.
4382   * @param {boolean} [options.leading=false]
4383   *  Specify invoking on the leading edge of the timeout.
4384   * @param {number} [options.maxWait]
4385   *  The maximum time `func` is allowed to be delayed before it's invoked.
4386   * @param {boolean} [options.trailing=true]
4387   *  Specify invoking on the trailing edge of the timeout.
4388   * @returns {Function} Returns the new debounced function.
4389   * @example
4390   *
4391   * // Avoid costly calculations while the window size is in flux.
4392   * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
4393   *
4394   * // Invoke `sendMail` when clicked, debouncing subsequent calls.
4395   * jQuery(element).on('click', _.debounce(sendMail, 300, {
4396   *   'leading': true,
4397   *   'trailing': false
4398   * }));
4399   *
4400   * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
4401   * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
4402   * var source = new EventSource('/stream');
4403   * jQuery(source).on('message', debounced);
4404   *
4405   * // Cancel the trailing debounced invocation.
4406   * jQuery(window).on('popstate', debounced.cancel);
4407   */
4408  function debounce(func, wait, options) {
4409    var lastArgs,
4410        lastThis,
4411        maxWait,
4412        result,
4413        timerId,
4414        lastCallTime,
4415        lastInvokeTime = 0,
4416        leading = false,
4417        maxing = false,
4418        trailing = true;
4419  
4420    if (typeof func != 'function') {
4421      throw new TypeError(FUNC_ERROR_TEXT);
4422    }
4423    wait = toNumber(wait) || 0;
4424    if (isObject(options)) {
4425      leading = !!options.leading;
4426      maxing = 'maxWait' in options;
4427      maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
4428      trailing = 'trailing' in options ? !!options.trailing : trailing;
4429    }
4430  
4431    function invokeFunc(time) {
4432      var args = lastArgs,
4433          thisArg = lastThis;
4434  
4435      lastArgs = lastThis = undefined;
4436      lastInvokeTime = time;
4437      result = func.apply(thisArg, args);
4438      return result;
4439    }
4440  
4441    function leadingEdge(time) {
4442      // Reset any `maxWait` timer.
4443      lastInvokeTime = time;
4444      // Start the timer for the trailing edge.
4445      timerId = setTimeout(timerExpired, wait);
4446      // Invoke the leading edge.
4447      return leading ? invokeFunc(time) : result;
4448    }
4449  
4450    function remainingWait(time) {
4451      var timeSinceLastCall = time - lastCallTime,
4452          timeSinceLastInvoke = time - lastInvokeTime,
4453          timeWaiting = wait - timeSinceLastCall;
4454  
4455      return maxing
4456        ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)
4457        : timeWaiting;
4458    }
4459  
4460    function shouldInvoke(time) {
4461      var timeSinceLastCall = time - lastCallTime,
4462          timeSinceLastInvoke = time - lastInvokeTime;
4463  
4464      // Either this is the first call, activity has stopped and we're at the
4465      // trailing edge, the system time has gone backwards and we're treating
4466      // it as the trailing edge, or we've hit the `maxWait` limit.
4467      return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
4468        (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
4469    }
4470  
4471    function timerExpired() {
4472      var time = now();
4473      if (shouldInvoke(time)) {
4474        return trailingEdge(time);
4475      }
4476      // Restart the timer.
4477      timerId = setTimeout(timerExpired, remainingWait(time));
4478    }
4479  
4480    function trailingEdge(time) {
4481      timerId = undefined;
4482  
4483      // Only invoke if we have `lastArgs` which means `func` has been
4484      // debounced at least once.
4485      if (trailing && lastArgs) {
4486        return invokeFunc(time);
4487      }
4488      lastArgs = lastThis = undefined;
4489      return result;
4490    }
4491  
4492    function cancel() {
4493      if (timerId !== undefined) {
4494        clearTimeout(timerId);
4495      }
4496      lastInvokeTime = 0;
4497      lastArgs = lastCallTime = lastThis = timerId = undefined;
4498    }
4499  
4500    function flush() {
4501      return timerId === undefined ? result : trailingEdge(now());
4502    }
4503  
4504    function debounced() {
4505      var time = now(),
4506          isInvoking = shouldInvoke(time);
4507  
4508      lastArgs = arguments;
4509      lastThis = this;
4510      lastCallTime = time;
4511  
4512      if (isInvoking) {
4513        if (timerId === undefined) {
4514          return leadingEdge(lastCallTime);
4515        }
4516        if (maxing) {
4517          // Handle invocations in a tight loop.
4518          clearTimeout(timerId);
4519          timerId = setTimeout(timerExpired, wait);
4520          return invokeFunc(lastCallTime);
4521        }
4522      }
4523      if (timerId === undefined) {
4524        timerId = setTimeout(timerExpired, wait);
4525      }
4526      return result;
4527    }
4528    debounced.cancel = cancel;
4529    debounced.flush = flush;
4530    return debounced;
4531  }
4532  
4533  module.exports = debounce;
4534  
4535  
4536  /***/ }),
4537  
4538  /***/ 3619:
4539  /***/ (function(module) {
4540  
4541  /**
4542   * Checks if `value` is the
4543   * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
4544   * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
4545   *
4546   * @static
4547   * @memberOf _
4548   * @since 0.1.0
4549   * @category Lang
4550   * @param {*} value The value to check.
4551   * @returns {boolean} Returns `true` if `value` is an object, else `false`.
4552   * @example
4553   *
4554   * _.isObject({});
4555   * // => true
4556   *
4557   * _.isObject([1, 2, 3]);
4558   * // => true
4559   *
4560   * _.isObject(_.noop);
4561   * // => true
4562   *
4563   * _.isObject(null);
4564   * // => false
4565   */
4566  function isObject(value) {
4567    var type = typeof value;
4568    return value != null && (type == 'object' || type == 'function');
4569  }
4570  
4571  module.exports = isObject;
4572  
4573  
4574  /***/ }),
4575  
4576  /***/ 1653:
4577  /***/ (function(module) {
4578  
4579  /**
4580   * Checks if `value` is object-like. A value is object-like if it's not `null`
4581   * and has a `typeof` result of "object".
4582   *
4583   * @static
4584   * @memberOf _
4585   * @since 4.0.0
4586   * @category Lang
4587   * @param {*} value The value to check.
4588   * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
4589   * @example
4590   *
4591   * _.isObjectLike({});
4592   * // => true
4593   *
4594   * _.isObjectLike([1, 2, 3]);
4595   * // => true
4596   *
4597   * _.isObjectLike(_.noop);
4598   * // => false
4599   *
4600   * _.isObjectLike(null);
4601   * // => false
4602   */
4603  function isObjectLike(value) {
4604    return value != null && typeof value == 'object';
4605  }
4606  
4607  module.exports = isObjectLike;
4608  
4609  
4610  /***/ }),
4611  
4612  /***/ 1878:
4613  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4614  
4615  var baseGetTag = __webpack_require__(194),
4616      isObjectLike = __webpack_require__(1653);
4617  
4618  /** `Object#toString` result references. */
4619  var symbolTag = '[object Symbol]';
4620  
4621  /**
4622   * Checks if `value` is classified as a `Symbol` primitive or object.
4623   *
4624   * @static
4625   * @memberOf _
4626   * @since 4.0.0
4627   * @category Lang
4628   * @param {*} value The value to check.
4629   * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
4630   * @example
4631   *
4632   * _.isSymbol(Symbol.iterator);
4633   * // => true
4634   *
4635   * _.isSymbol('abc');
4636   * // => false
4637   */
4638  function isSymbol(value) {
4639    return typeof value == 'symbol' ||
4640      (isObjectLike(value) && baseGetTag(value) == symbolTag);
4641  }
4642  
4643  module.exports = isSymbol;
4644  
4645  
4646  /***/ }),
4647  
4648  /***/ 8253:
4649  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4650  
4651  var root = __webpack_require__(158);
4652  
4653  /**
4654   * Gets the timestamp of the number of milliseconds that have elapsed since
4655   * the Unix epoch (1 January 1970 00:00:00 UTC).
4656   *
4657   * @static
4658   * @memberOf _
4659   * @since 2.4.0
4660   * @category Date
4661   * @returns {number} Returns the timestamp.
4662   * @example
4663   *
4664   * _.defer(function(stamp) {
4665   *   console.log(_.now() - stamp);
4666   * }, _.now());
4667   * // => Logs the number of milliseconds it took for the deferred invocation.
4668   */
4669  var now = function() {
4670    return root.Date.now();
4671  };
4672  
4673  module.exports = now;
4674  
4675  
4676  /***/ }),
4677  
4678  /***/ 8172:
4679  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4680  
4681  var debounce = __webpack_require__(6897),
4682      isObject = __webpack_require__(3619);
4683  
4684  /** Error message constants. */
4685  var FUNC_ERROR_TEXT = 'Expected a function';
4686  
4687  /**
4688   * Creates a throttled function that only invokes `func` at most once per
4689   * every `wait` milliseconds. The throttled function comes with a `cancel`
4690   * method to cancel delayed `func` invocations and a `flush` method to
4691   * immediately invoke them. Provide `options` to indicate whether `func`
4692   * should be invoked on the leading and/or trailing edge of the `wait`
4693   * timeout. The `func` is invoked with the last arguments provided to the
4694   * throttled function. Subsequent calls to the throttled function return the
4695   * result of the last `func` invocation.
4696   *
4697   * **Note:** If `leading` and `trailing` options are `true`, `func` is
4698   * invoked on the trailing edge of the timeout only if the throttled function
4699   * is invoked more than once during the `wait` timeout.
4700   *
4701   * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
4702   * until to the next tick, similar to `setTimeout` with a timeout of `0`.
4703   *
4704   * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
4705   * for details over the differences between `_.throttle` and `_.debounce`.
4706   *
4707   * @static
4708   * @memberOf _
4709   * @since 0.1.0
4710   * @category Function
4711   * @param {Function} func The function to throttle.
4712   * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
4713   * @param {Object} [options={}] The options object.
4714   * @param {boolean} [options.leading=true]
4715   *  Specify invoking on the leading edge of the timeout.
4716   * @param {boolean} [options.trailing=true]
4717   *  Specify invoking on the trailing edge of the timeout.
4718   * @returns {Function} Returns the new throttled function.
4719   * @example
4720   *
4721   * // Avoid excessively updating the position while scrolling.
4722   * jQuery(window).on('scroll', _.throttle(updatePosition, 100));
4723   *
4724   * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
4725   * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
4726   * jQuery(element).on('click', throttled);
4727   *
4728   * // Cancel the trailing throttled invocation.
4729   * jQuery(window).on('popstate', throttled.cancel);
4730   */
4731  function throttle(func, wait, options) {
4732    var leading = true,
4733        trailing = true;
4734  
4735    if (typeof func != 'function') {
4736      throw new TypeError(FUNC_ERROR_TEXT);
4737    }
4738    if (isObject(options)) {
4739      leading = 'leading' in options ? !!options.leading : leading;
4740      trailing = 'trailing' in options ? !!options.trailing : trailing;
4741    }
4742    return debounce(func, wait, {
4743      'leading': leading,
4744      'maxWait': wait,
4745      'trailing': trailing
4746    });
4747  }
4748  
4749  module.exports = throttle;
4750  
4751  
4752  /***/ }),
4753  
4754  /***/ 5053:
4755  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4756  
4757  var baseTrim = __webpack_require__(2383),
4758      isObject = __webpack_require__(3619),
4759      isSymbol = __webpack_require__(1878);
4760  
4761  /** Used as references for various `Number` constants. */
4762  var NAN = 0 / 0;
4763  
4764  /** Used to detect bad signed hexadecimal string values. */
4765  var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
4766  
4767  /** Used to detect binary string values. */
4768  var reIsBinary = /^0b[01]+$/i;
4769  
4770  /** Used to detect octal string values. */
4771  var reIsOctal = /^0o[0-7]+$/i;
4772  
4773  /** Built-in method references without a dependency on `root`. */
4774  var freeParseInt = parseInt;
4775  
4776  /**
4777   * Converts `value` to a number.
4778   *
4779   * @static
4780   * @memberOf _
4781   * @since 4.0.0
4782   * @category Lang
4783   * @param {*} value The value to process.
4784   * @returns {number} Returns the number.
4785   * @example
4786   *
4787   * _.toNumber(3.2);
4788   * // => 3.2
4789   *
4790   * _.toNumber(Number.MIN_VALUE);
4791   * // => 5e-324
4792   *
4793   * _.toNumber(Infinity);
4794   * // => Infinity
4795   *
4796   * _.toNumber('3.2');
4797   * // => 3.2
4798   */
4799  function toNumber(value) {
4800    if (typeof value == 'number') {
4801      return value;
4802    }
4803    if (isSymbol(value)) {
4804      return NAN;
4805    }
4806    if (isObject(value)) {
4807      var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
4808      value = isObject(other) ? (other + '') : other;
4809    }
4810    if (typeof value != 'string') {
4811      return value === 0 ? value : +value;
4812    }
4813    value = baseTrim(value);
4814    var isBinary = reIsBinary.test(value);
4815    return (isBinary || reIsOctal.test(value))
4816      ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
4817      : (reIsBadHex.test(value) ? NAN : +value);
4818  }
4819  
4820  module.exports = toNumber;
4821  
4822  
4823  /***/ }),
4824  
4825  /***/ 9756:
4826  /***/ (function(module) {
4827  
4828  /**
4829   * Memize options object.
4830   *
4831   * @typedef MemizeOptions
4832   *
4833   * @property {number} [maxSize] Maximum size of the cache.
4834   */
4835  
4836  /**
4837   * Internal cache entry.
4838   *
4839   * @typedef MemizeCacheNode
4840   *
4841   * @property {?MemizeCacheNode|undefined} [prev] Previous node.
4842   * @property {?MemizeCacheNode|undefined} [next] Next node.
4843   * @property {Array<*>}                   args   Function arguments for cache
4844   *                                               entry.
4845   * @property {*}                          val    Function result.
4846   */
4847  
4848  /**
4849   * Properties of the enhanced function for controlling cache.
4850   *
4851   * @typedef MemizeMemoizedFunction
4852   *
4853   * @property {()=>void} clear Clear the cache.
4854   */
4855  
4856  /**
4857   * Accepts a function to be memoized, and returns a new memoized function, with
4858   * optional options.
4859   *
4860   * @template {Function} F
4861   *
4862   * @param {F}             fn        Function to memoize.
4863   * @param {MemizeOptions} [options] Options object.
4864   *
4865   * @return {F & MemizeMemoizedFunction} Memoized function.
4866   */
4867  function memize( fn, options ) {
4868      var size = 0;
4869  
4870      /** @type {?MemizeCacheNode|undefined} */
4871      var head;
4872  
4873      /** @type {?MemizeCacheNode|undefined} */
4874      var tail;
4875  
4876      options = options || {};
4877  
4878  	function memoized( /* ...args */ ) {
4879          var node = head,
4880              len = arguments.length,
4881              args, i;
4882  
4883          searchCache: while ( node ) {
4884              // Perform a shallow equality test to confirm that whether the node
4885              // under test is a candidate for the arguments passed. Two arrays
4886              // are shallowly equal if their length matches and each entry is
4887              // strictly equal between the two sets. Avoid abstracting to a
4888              // function which could incur an arguments leaking deoptimization.
4889  
4890              // Check whether node arguments match arguments length
4891              if ( node.args.length !== arguments.length ) {
4892                  node = node.next;
4893                  continue;
4894              }
4895  
4896              // Check whether node arguments match arguments values
4897              for ( i = 0; i < len; i++ ) {
4898                  if ( node.args[ i ] !== arguments[ i ] ) {
4899                      node = node.next;
4900                      continue searchCache;
4901                  }
4902              }
4903  
4904              // At this point we can assume we've found a match
4905  
4906              // Surface matched node to head if not already
4907              if ( node !== head ) {
4908                  // As tail, shift to previous. Must only shift if not also
4909                  // head, since if both head and tail, there is no previous.
4910                  if ( node === tail ) {
4911                      tail = node.prev;
4912                  }
4913  
4914                  // Adjust siblings to point to each other. If node was tail,
4915                  // this also handles new tail's empty `next` assignment.
4916                  /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;
4917                  if ( node.next ) {
4918                      node.next.prev = node.prev;
4919                  }
4920  
4921                  node.next = head;
4922                  node.prev = null;
4923                  /** @type {MemizeCacheNode} */ ( head ).prev = node;
4924                  head = node;
4925              }
4926  
4927              // Return immediately
4928              return node.val;
4929          }
4930  
4931          // No cached value found. Continue to insertion phase:
4932  
4933          // Create a copy of arguments (avoid leaking deoptimization)
4934          args = new Array( len );
4935          for ( i = 0; i < len; i++ ) {
4936              args[ i ] = arguments[ i ];
4937          }
4938  
4939          node = {
4940              args: args,
4941  
4942              // Generate the result from original function
4943              val: fn.apply( null, args ),
4944          };
4945  
4946          // Don't need to check whether node is already head, since it would
4947          // have been returned above already if it was
4948  
4949          // Shift existing head down list
4950          if ( head ) {
4951              head.prev = node;
4952              node.next = head;
4953          } else {
4954              // If no head, follows that there's no tail (at initial or reset)
4955              tail = node;
4956          }
4957  
4958          // Trim tail if we're reached max size and are pending cache insertion
4959          if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {
4960              tail = /** @type {MemizeCacheNode} */ ( tail ).prev;
4961              /** @type {MemizeCacheNode} */ ( tail ).next = null;
4962          } else {
4963              size++;
4964          }
4965  
4966          head = node;
4967  
4968          return node.val;
4969      }
4970  
4971      memoized.clear = function() {
4972          head = null;
4973          tail = null;
4974          size = 0;
4975      };
4976  
4977      if ( false ) {}
4978  
4979      // Ignore reason: There's not a clear solution to create an intersection of
4980      // the function with additional properties, where the goal is to retain the
4981      // function signature of the incoming argument and add control properties
4982      // on the return value.
4983  
4984      // @ts-ignore
4985      return memoized;
4986  }
4987  
4988  module.exports = memize;
4989  
4990  
4991  /***/ }),
4992  
4993  /***/ 8383:
4994  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4995  
4996  "use strict";
4997  
4998  
4999  var keysShim;
5000  if (!Object.keys) {
5001      // modified from https://github.com/es-shims/es5-shim
5002      var has = Object.prototype.hasOwnProperty;
5003      var toStr = Object.prototype.toString;
5004      var isArgs = __webpack_require__(4418); // eslint-disable-line global-require
5005      var isEnumerable = Object.prototype.propertyIsEnumerable;
5006      var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');
5007      var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');
5008      var dontEnums = [
5009          'toString',
5010          'toLocaleString',
5011          'valueOf',
5012          'hasOwnProperty',
5013          'isPrototypeOf',
5014          'propertyIsEnumerable',
5015          'constructor'
5016      ];
5017      var equalsConstructorPrototype = function (o) {
5018          var ctor = o.constructor;
5019          return ctor && ctor.prototype === o;
5020      };
5021      var excludedKeys = {
5022          $applicationCache: true,
5023          $console: true,
5024          $external: true,
5025          $frame: true,
5026          $frameElement: true,
5027          $frames: true,
5028          $innerHeight: true,
5029          $innerWidth: true,
5030          $onmozfullscreenchange: true,
5031          $onmozfullscreenerror: true,
5032          $outerHeight: true,
5033          $outerWidth: true,
5034          $pageXOffset: true,
5035          $pageYOffset: true,
5036          $parent: true,
5037          $scrollLeft: true,
5038          $scrollTop: true,
5039          $scrollX: true,
5040          $scrollY: true,
5041          $self: true,
5042          $webkitIndexedDB: true,
5043          $webkitStorageInfo: true,
5044          $window: true
5045      };
5046      var hasAutomationEqualityBug = (function () {
5047          /* global window */
5048          if (typeof window === 'undefined') { return false; }
5049          for (var k in window) {
5050              try {
5051                  if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {
5052                      try {
5053                          equalsConstructorPrototype(window[k]);
5054                      } catch (e) {
5055                          return true;
5056                      }
5057                  }
5058              } catch (e) {
5059                  return true;
5060              }
5061          }
5062          return false;
5063      }());
5064      var equalsConstructorPrototypeIfNotBuggy = function (o) {
5065          /* global window */
5066          if (typeof window === 'undefined' || !hasAutomationEqualityBug) {
5067              return equalsConstructorPrototype(o);
5068          }
5069          try {
5070              return equalsConstructorPrototype(o);
5071          } catch (e) {
5072              return false;
5073          }
5074      };
5075  
5076      keysShim = function keys(object) {
5077          var isObject = object !== null && typeof object === 'object';
5078          var isFunction = toStr.call(object) === '[object Function]';
5079          var isArguments = isArgs(object);
5080          var isString = isObject && toStr.call(object) === '[object String]';
5081          var theKeys = [];
5082  
5083          if (!isObject && !isFunction && !isArguments) {
5084              throw new TypeError('Object.keys called on a non-object');
5085          }
5086  
5087          var skipProto = hasProtoEnumBug && isFunction;
5088          if (isString && object.length > 0 && !has.call(object, 0)) {
5089              for (var i = 0; i < object.length; ++i) {
5090                  theKeys.push(String(i));
5091              }
5092          }
5093  
5094          if (isArguments && object.length > 0) {
5095              for (var j = 0; j < object.length; ++j) {
5096                  theKeys.push(String(j));
5097              }
5098          } else {
5099              for (var name in object) {
5100                  if (!(skipProto && name === 'prototype') && has.call(object, name)) {
5101                      theKeys.push(String(name));
5102                  }
5103              }
5104          }
5105  
5106          if (hasDontEnumBug) {
5107              var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);
5108  
5109              for (var k = 0; k < dontEnums.length; ++k) {
5110                  if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {
5111                      theKeys.push(dontEnums[k]);
5112                  }
5113              }
5114          }
5115          return theKeys;
5116      };
5117  }
5118  module.exports = keysShim;
5119  
5120  
5121  /***/ }),
5122  
5123  /***/ 806:
5124  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5125  
5126  "use strict";
5127  
5128  
5129  var slice = Array.prototype.slice;
5130  var isArgs = __webpack_require__(4418);
5131  
5132  var origKeys = Object.keys;
5133  var keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__(8383);
5134  
5135  var originalKeys = Object.keys;
5136  
5137  keysShim.shim = function shimObjectKeys() {
5138      if (Object.keys) {
5139          var keysWorksWithArguments = (function () {
5140              // Safari 5.0 bug
5141              var args = Object.keys(arguments);
5142              return args && args.length === arguments.length;
5143          }(1, 2));
5144          if (!keysWorksWithArguments) {
5145              Object.keys = function keys(object) { // eslint-disable-line func-name-matching
5146                  if (isArgs(object)) {
5147                      return originalKeys(slice.call(object));
5148                  }
5149                  return originalKeys(object);
5150              };
5151          }
5152      } else {
5153          Object.keys = keysShim;
5154      }
5155      return Object.keys || keysShim;
5156  };
5157  
5158  module.exports = keysShim;
5159  
5160  
5161  /***/ }),
5162  
5163  /***/ 4418:
5164  /***/ (function(module) {
5165  
5166  "use strict";
5167  
5168  
5169  var toStr = Object.prototype.toString;
5170  
5171  module.exports = function isArguments(value) {
5172      var str = toStr.call(value);
5173      var isArgs = str === '[object Arguments]';
5174      if (!isArgs) {
5175          isArgs = str !== '[object Array]' &&
5176              value !== null &&
5177              typeof value === 'object' &&
5178              typeof value.length === 'number' &&
5179              value.length >= 0 &&
5180              toStr.call(value.callee) === '[object Function]';
5181      }
5182      return isArgs;
5183  };
5184  
5185  
5186  /***/ }),
5187  
5188  /***/ 2148:
5189  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5190  
5191  "use strict";
5192  
5193  
5194  // modified from https://github.com/es-shims/es6-shim
5195  var keys = __webpack_require__(806);
5196  var canBeObject = function (obj) {
5197      return typeof obj !== 'undefined' && obj !== null;
5198  };
5199  var hasSymbols = __webpack_require__(5682)();
5200  var callBound = __webpack_require__(7615);
5201  var toObject = Object;
5202  var $push = callBound('Array.prototype.push');
5203  var $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');
5204  var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;
5205  
5206  // eslint-disable-next-line no-unused-vars
5207  module.exports = function assign(target, source1) {
5208      if (!canBeObject(target)) { throw new TypeError('target must be an object'); }
5209      var objTarget = toObject(target);
5210      var s, source, i, props, syms, value, key;
5211      for (s = 1; s < arguments.length; ++s) {
5212          source = toObject(arguments[s]);
5213          props = keys(source);
5214          var getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);
5215          if (getSymbols) {
5216              syms = getSymbols(source);
5217              for (i = 0; i < syms.length; ++i) {
5218                  key = syms[i];
5219                  if ($propIsEnumerable(source, key)) {
5220                      $push(props, key);
5221                  }
5222              }
5223          }
5224          for (i = 0; i < props.length; ++i) {
5225              key = props[i];
5226              value = source[key];
5227              if ($propIsEnumerable(source, key)) {
5228                  objTarget[key] = value;
5229              }
5230          }
5231      }
5232      return objTarget;
5233  };
5234  
5235  
5236  /***/ }),
5237  
5238  /***/ 4011:
5239  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5240  
5241  "use strict";
5242  
5243  
5244  var defineProperties = __webpack_require__(9170);
5245  var callBind = __webpack_require__(2550);
5246  
5247  var implementation = __webpack_require__(2148);
5248  var getPolyfill = __webpack_require__(293);
5249  var shim = __webpack_require__(2666);
5250  
5251  var polyfill = callBind.apply(getPolyfill());
5252  // eslint-disable-next-line no-unused-vars
5253  var bound = function assign(target, source1) {
5254      return polyfill(Object, arguments);
5255  };
5256  
5257  defineProperties(bound, {
5258      getPolyfill: getPolyfill,
5259      implementation: implementation,
5260      shim: shim
5261  });
5262  
5263  module.exports = bound;
5264  
5265  
5266  /***/ }),
5267  
5268  /***/ 293:
5269  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5270  
5271  "use strict";
5272  
5273  
5274  var implementation = __webpack_require__(2148);
5275  
5276  var lacksProperEnumerationOrder = function () {
5277      if (!Object.assign) {
5278          return false;
5279      }
5280      /*
5281       * v8, specifically in node 4.x, has a bug with incorrect property enumeration order
5282       * note: this does not detect the bug unless there's 20 characters
5283       */
5284      var str = 'abcdefghijklmnopqrst';
5285      var letters = str.split('');
5286      var map = {};
5287      for (var i = 0; i < letters.length; ++i) {
5288          map[letters[i]] = letters[i];
5289      }
5290      var obj = Object.assign({}, map);
5291      var actual = '';
5292      for (var k in obj) {
5293          actual += k;
5294      }
5295      return str !== actual;
5296  };
5297  
5298  var assignHasPendingExceptions = function () {
5299      if (!Object.assign || !Object.preventExtensions) {
5300          return false;
5301      }
5302      /*
5303       * Firefox 37 still has "pending exception" logic in its Object.assign implementation,
5304       * which is 72% slower than our shim, and Firefox 40's native implementation.
5305       */
5306      var thrower = Object.preventExtensions({ 1: 2 });
5307      try {
5308          Object.assign(thrower, 'xy');
5309      } catch (e) {
5310          return thrower[1] === 'y';
5311      }
5312      return false;
5313  };
5314  
5315  module.exports = function getPolyfill() {
5316      if (!Object.assign) {
5317          return implementation;
5318      }
5319      if (lacksProperEnumerationOrder()) {
5320          return implementation;
5321      }
5322      if (assignHasPendingExceptions()) {
5323          return implementation;
5324      }
5325      return Object.assign;
5326  };
5327  
5328  
5329  /***/ }),
5330  
5331  /***/ 2666:
5332  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5333  
5334  "use strict";
5335  
5336  
5337  var define = __webpack_require__(9170);
5338  var getPolyfill = __webpack_require__(293);
5339  
5340  module.exports = function shimAssign() {
5341      var polyfill = getPolyfill();
5342      define(
5343          Object,
5344          { assign: polyfill },
5345          { assign: function () { return Object.assign !== polyfill; } }
5346      );
5347      return polyfill;
5348  };
5349  
5350  
5351  /***/ }),
5352  
5353  /***/ 1631:
5354  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5355  
5356  "use strict";
5357  
5358  
5359  var has = __webpack_require__(9284);
5360  var RequireObjectCoercible = __webpack_require__(604);
5361  var callBound = __webpack_require__(7615);
5362  
5363  var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
5364  
5365  module.exports = function values(O) {
5366      var obj = RequireObjectCoercible(O);
5367      var vals = [];
5368      for (var key in obj) {
5369          if (has(obj, key) && $isEnumerable(obj, key)) {
5370              vals.push(obj[key]);
5371          }
5372      }
5373      return vals;
5374  };
5375  
5376  
5377  /***/ }),
5378  
5379  /***/ 5861:
5380  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5381  
5382  "use strict";
5383  
5384  
5385  var define = __webpack_require__(9170);
5386  var callBind = __webpack_require__(2550);
5387  
5388  var implementation = __webpack_require__(1631);
5389  var getPolyfill = __webpack_require__(779);
5390  var shim = __webpack_require__(7256);
5391  
5392  var polyfill = callBind(getPolyfill(), Object);
5393  
5394  define(polyfill, {
5395      getPolyfill: getPolyfill,
5396      implementation: implementation,
5397      shim: shim
5398  });
5399  
5400  module.exports = polyfill;
5401  
5402  
5403  /***/ }),
5404  
5405  /***/ 604:
5406  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5407  
5408  "use strict";
5409  
5410  
5411  module.exports = __webpack_require__(2559);
5412  
5413  
5414  /***/ }),
5415  
5416  /***/ 2559:
5417  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5418  
5419  "use strict";
5420  
5421  
5422  var GetIntrinsic = __webpack_require__(6732);
5423  
5424  var $TypeError = GetIntrinsic('%TypeError%');
5425  
5426  // http://www.ecma-international.org/ecma-262/5.1/#sec-9.10
5427  
5428  module.exports = function CheckObjectCoercible(value, optMessage) {
5429      if (value == null) {
5430          throw new $TypeError(optMessage || ('Cannot call method on ' + value));
5431      }
5432      return value;
5433  };
5434  
5435  
5436  /***/ }),
5437  
5438  /***/ 6732:
5439  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5440  
5441  "use strict";
5442  
5443  
5444  /* globals
5445      AggregateError,
5446      Atomics,
5447      FinalizationRegistry,
5448      SharedArrayBuffer,
5449      WeakRef,
5450  */
5451  
5452  var undefined;
5453  
5454  var $SyntaxError = SyntaxError;
5455  var $Function = Function;
5456  var $TypeError = TypeError;
5457  
5458  // eslint-disable-next-line consistent-return
5459  var getEvalledConstructor = function (expressionSyntax) {
5460      try {
5461          // eslint-disable-next-line no-new-func
5462          return Function('"use strict"; return (' + expressionSyntax + ').constructor;')();
5463      } catch (e) {}
5464  };
5465  
5466  var $gOPD = Object.getOwnPropertyDescriptor;
5467  if ($gOPD) {
5468      try {
5469          $gOPD({}, '');
5470      } catch (e) {
5471          $gOPD = null; // this is IE 8, which has a broken gOPD
5472      }
5473  }
5474  
5475  var throwTypeError = function () { throw new $TypeError(); };
5476  var ThrowTypeError = $gOPD
5477      ? (function () {
5478          try {
5479              // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
5480              arguments.callee; // IE 8 does not throw here
5481              return throwTypeError;
5482          } catch (calleeThrows) {
5483              try {
5484                  // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
5485                  return $gOPD(arguments, 'callee').get;
5486              } catch (gOPDthrows) {
5487                  return throwTypeError;
5488              }
5489          }
5490      }())
5491      : throwTypeError;
5492  
5493  var hasSymbols = __webpack_require__(9905)();
5494  
5495  var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
5496  
5497  var asyncGenFunction = getEvalledConstructor('async function* () {}');
5498  var asyncGenFunctionPrototype = asyncGenFunction ? asyncGenFunction.prototype : undefined;
5499  var asyncGenPrototype = asyncGenFunctionPrototype ? asyncGenFunctionPrototype.prototype : undefined;
5500  
5501  var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
5502  
5503  var INTRINSICS = {
5504      '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
5505      '%Array%': Array,
5506      '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
5507      '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
5508      '%AsyncFromSyncIteratorPrototype%': undefined,
5509      '%AsyncFunction%': getEvalledConstructor('async function () {}'),
5510      '%AsyncGenerator%': asyncGenFunctionPrototype,
5511      '%AsyncGeneratorFunction%': asyncGenFunction,
5512      '%AsyncIteratorPrototype%': asyncGenPrototype ? getProto(asyncGenPrototype) : undefined,
5513      '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
5514      '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,
5515      '%Boolean%': Boolean,
5516      '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,
5517      '%Date%': Date,
5518      '%decodeURI%': decodeURI,
5519      '%decodeURIComponent%': decodeURIComponent,
5520      '%encodeURI%': encodeURI,
5521      '%encodeURIComponent%': encodeURIComponent,
5522      '%Error%': Error,
5523      '%eval%': eval, // eslint-disable-line no-eval
5524      '%EvalError%': EvalError,
5525      '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
5526      '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
5527      '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
5528      '%Function%': $Function,
5529      '%GeneratorFunction%': getEvalledConstructor('function* () {}'),
5530      '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
5531      '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
5532      '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
5533      '%isFinite%': isFinite,
5534      '%isNaN%': isNaN,
5535      '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
5536      '%JSON%': typeof JSON === 'object' ? JSON : undefined,
5537      '%Map%': typeof Map === 'undefined' ? undefined : Map,
5538      '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
5539      '%Math%': Math,
5540      '%Number%': Number,
5541      '%Object%': Object,
5542      '%parseFloat%': parseFloat,
5543      '%parseInt%': parseInt,
5544      '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
5545      '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
5546      '%RangeError%': RangeError,
5547      '%ReferenceError%': ReferenceError,
5548      '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
5549      '%RegExp%': RegExp,
5550      '%Set%': typeof Set === 'undefined' ? undefined : Set,
5551      '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
5552      '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
5553      '%String%': String,
5554      '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
5555      '%Symbol%': hasSymbols ? Symbol : undefined,
5556      '%SyntaxError%': $SyntaxError,
5557      '%ThrowTypeError%': ThrowTypeError,
5558      '%TypedArray%': TypedArray,
5559      '%TypeError%': $TypeError,
5560      '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
5561      '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
5562      '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
5563      '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
5564      '%URIError%': URIError,
5565      '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
5566      '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
5567      '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
5568  };
5569  
5570  var LEGACY_ALIASES = {
5571      '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
5572      '%ArrayPrototype%': ['Array', 'prototype'],
5573      '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
5574      '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
5575      '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
5576      '%ArrayProto_values%': ['Array', 'prototype', 'values'],
5577      '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
5578      '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
5579      '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],
5580      '%BooleanPrototype%': ['Boolean', 'prototype'],
5581      '%DataViewPrototype%': ['DataView', 'prototype'],
5582      '%DatePrototype%': ['Date', 'prototype'],
5583      '%ErrorPrototype%': ['Error', 'prototype'],
5584      '%EvalErrorPrototype%': ['EvalError', 'prototype'],
5585      '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
5586      '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
5587      '%FunctionPrototype%': ['Function', 'prototype'],
5588      '%Generator%': ['GeneratorFunction', 'prototype'],
5589      '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],
5590      '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
5591      '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
5592      '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
5593      '%JSONParse%': ['JSON', 'parse'],
5594      '%JSONStringify%': ['JSON', 'stringify'],
5595      '%MapPrototype%': ['Map', 'prototype'],
5596      '%NumberPrototype%': ['Number', 'prototype'],
5597      '%ObjectPrototype%': ['Object', 'prototype'],
5598      '%ObjProto_toString%': ['Object', 'prototype', 'toString'],
5599      '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
5600      '%PromisePrototype%': ['Promise', 'prototype'],
5601      '%PromiseProto_then%': ['Promise', 'prototype', 'then'],
5602      '%Promise_all%': ['Promise', 'all'],
5603      '%Promise_reject%': ['Promise', 'reject'],
5604      '%Promise_resolve%': ['Promise', 'resolve'],
5605      '%RangeErrorPrototype%': ['RangeError', 'prototype'],
5606      '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
5607      '%RegExpPrototype%': ['RegExp', 'prototype'],
5608      '%SetPrototype%': ['Set', 'prototype'],
5609      '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
5610      '%StringPrototype%': ['String', 'prototype'],
5611      '%SymbolPrototype%': ['Symbol', 'prototype'],
5612      '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
5613      '%TypedArrayPrototype%': ['TypedArray', 'prototype'],
5614      '%TypeErrorPrototype%': ['TypeError', 'prototype'],
5615      '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
5616      '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
5617      '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
5618      '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
5619      '%URIErrorPrototype%': ['URIError', 'prototype'],
5620      '%WeakMapPrototype%': ['WeakMap', 'prototype'],
5621      '%WeakSetPrototype%': ['WeakSet', 'prototype']
5622  };
5623  
5624  var bind = __webpack_require__(1930);
5625  var hasOwn = __webpack_require__(9284);
5626  var $concat = bind.call(Function.call, Array.prototype.concat);
5627  var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
5628  var $replace = bind.call(Function.call, String.prototype.replace);
5629  
5630  /* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
5631  var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
5632  var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
5633  var stringToPath = function stringToPath(string) {
5634      var result = [];
5635      $replace(string, rePropName, function (match, number, quote, subString) {
5636          result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;
5637      });
5638      return result;
5639  };
5640  /* end adaptation */
5641  
5642  var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
5643      var intrinsicName = name;
5644      var alias;
5645      if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
5646          alias = LEGACY_ALIASES[intrinsicName];
5647          intrinsicName = '%' + alias[0] + '%';
5648      }
5649  
5650      if (hasOwn(INTRINSICS, intrinsicName)) {
5651          var value = INTRINSICS[intrinsicName];
5652          if (typeof value === 'undefined' && !allowMissing) {
5653              throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
5654          }
5655  
5656          return {
5657              alias: alias,
5658              name: intrinsicName,
5659              value: value
5660          };
5661      }
5662  
5663      throw new $SyntaxError('intrinsic ' + name + ' does not exist!');
5664  };
5665  
5666  module.exports = function GetIntrinsic(name, allowMissing) {
5667      if (typeof name !== 'string' || name.length === 0) {
5668          throw new $TypeError('intrinsic name must be a non-empty string');
5669      }
5670      if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
5671          throw new $TypeError('"allowMissing" argument must be a boolean');
5672      }
5673  
5674      var parts = stringToPath(name);
5675      var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
5676  
5677      var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);
5678      var intrinsicRealName = intrinsic.name;
5679      var value = intrinsic.value;
5680      var skipFurtherCaching = false;
5681  
5682      var alias = intrinsic.alias;
5683      if (alias) {
5684          intrinsicBaseName = alias[0];
5685          $spliceApply(parts, $concat([0, 1], alias));
5686      }
5687  
5688      for (var i = 1, isOwn = true; i < parts.length; i += 1) {
5689          var part = parts[i];
5690          if (part === 'constructor' || !isOwn) {
5691              skipFurtherCaching = true;
5692          }
5693  
5694          intrinsicBaseName += '.' + part;
5695          intrinsicRealName = '%' + intrinsicBaseName + '%';
5696  
5697          if (hasOwn(INTRINSICS, intrinsicRealName)) {
5698              value = INTRINSICS[intrinsicRealName];
5699          } else if (value != null) {
5700              if ($gOPD && (i + 1) >= parts.length) {
5701                  var desc = $gOPD(value, part);
5702                  isOwn = !!desc;
5703  
5704                  if (!allowMissing && !(part in value)) {
5705                      throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
5706                  }
5707                  // By convention, when a data property is converted to an accessor
5708                  // property to emulate a data property that does not suffer from
5709                  // the override mistake, that accessor's getter is marked with
5710                  // an `originalValue` property. Here, when we detect this, we
5711                  // uphold the illusion by pretending to see that original data
5712                  // property, i.e., returning the value rather than the getter
5713                  // itself.
5714                  if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {
5715                      value = desc.get;
5716                  } else {
5717                      value = value[part];
5718                  }
5719              } else {
5720                  isOwn = hasOwn(value, part);
5721                  value = value[part];
5722              }
5723  
5724              if (isOwn && !skipFurtherCaching) {
5725                  INTRINSICS[intrinsicRealName] = value;
5726              }
5727          }
5728      }
5729      return value;
5730  };
5731  
5732  
5733  /***/ }),
5734  
5735  /***/ 779:
5736  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5737  
5738  "use strict";
5739  
5740  
5741  var implementation = __webpack_require__(1631);
5742  
5743  module.exports = function getPolyfill() {
5744      return typeof Object.values === 'function' ? Object.values : implementation;
5745  };
5746  
5747  
5748  /***/ }),
5749  
5750  /***/ 7256:
5751  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5752  
5753  "use strict";
5754  
5755  
5756  var getPolyfill = __webpack_require__(779);
5757  var define = __webpack_require__(9170);
5758  
5759  module.exports = function shimValues() {
5760      var polyfill = getPolyfill();
5761      define(Object, { values: polyfill }, {
5762          values: function testValues() {
5763              return Object.values !== polyfill;
5764          }
5765      });
5766      return polyfill;
5767  };
5768  
5769  
5770  /***/ }),
5771  
5772  /***/ 5372:
5773  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5774  
5775  "use strict";
5776  /**
5777   * Copyright (c) 2013-present, Facebook, Inc.
5778   *
5779   * This source code is licensed under the MIT license found in the
5780   * LICENSE file in the root directory of this source tree.
5781   */
5782  
5783  
5784  
5785  var ReactPropTypesSecret = __webpack_require__(9567);
5786  
5787  function emptyFunction() {}
5788  function emptyFunctionWithReset() {}
5789  emptyFunctionWithReset.resetWarningCache = emptyFunction;
5790  
5791  module.exports = function() {
5792    function shim(props, propName, componentName, location, propFullName, secret) {
5793      if (secret === ReactPropTypesSecret) {
5794        // It is still safe when called from React.
5795        return;
5796      }
5797      var err = new Error(
5798        'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
5799        'Use PropTypes.checkPropTypes() to call them. ' +
5800        'Read more at http://fb.me/use-check-prop-types'
5801      );
5802      err.name = 'Invariant Violation';
5803      throw err;
5804    };
5805    shim.isRequired = shim;
5806    function getShim() {
5807      return shim;
5808    };
5809    // Important!
5810    // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
5811    var ReactPropTypes = {
5812      array: shim,
5813      bigint: shim,
5814      bool: shim,
5815      func: shim,
5816      number: shim,
5817      object: shim,
5818      string: shim,
5819      symbol: shim,
5820  
5821      any: shim,
5822      arrayOf: getShim,
5823      element: shim,
5824      elementType: shim,
5825      instanceOf: getShim,
5826      node: shim,
5827      objectOf: getShim,
5828      oneOf: getShim,
5829      oneOfType: getShim,
5830      shape: getShim,
5831      exact: getShim,
5832  
5833      checkPropTypes: emptyFunctionWithReset,
5834      resetWarningCache: emptyFunction
5835    };
5836  
5837    ReactPropTypes.PropTypes = ReactPropTypes;
5838  
5839    return ReactPropTypes;
5840  };
5841  
5842  
5843  /***/ }),
5844  
5845  /***/ 2652:
5846  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5847  
5848  /**
5849   * Copyright (c) 2013-present, Facebook, Inc.
5850   *
5851   * This source code is licensed under the MIT license found in the
5852   * LICENSE file in the root directory of this source tree.
5853   */
5854  
5855  if (false) { var throwOnDirectAccess, ReactIs; } else {
5856    // By explicitly using `prop-types` you are opting into new production behavior.
5857    // http://fb.me/prop-types-in-prod
5858    module.exports = __webpack_require__(5372)();
5859  }
5860  
5861  
5862  /***/ }),
5863  
5864  /***/ 9567:
5865  /***/ (function(module) {
5866  
5867  "use strict";
5868  /**
5869   * Copyright (c) 2013-present, Facebook, Inc.
5870   *
5871   * This source code is licensed under the MIT license found in the
5872   * LICENSE file in the root directory of this source tree.
5873   */
5874  
5875  
5876  
5877  var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
5878  
5879  module.exports = ReactPropTypesSecret;
5880  
5881  
5882  /***/ }),
5883  
5884  /***/ 2541:
5885  /***/ (function(module) {
5886  
5887  "use strict";
5888  /**
5889   * Copyright (c) 2013-present, Facebook, Inc.
5890   *
5891   * This source code is licensed under the MIT license found in the
5892   * LICENSE file in the root directory of this source tree.
5893   *
5894   * @providesModule shallowCompare
5895   */
5896  
5897  
5898  
5899  var hasOwnProperty = Object.prototype.hasOwnProperty;
5900  
5901  /**
5902   * inlined Object.is polyfill to avoid requiring consumers ship their own
5903   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
5904   */
5905  function is(x, y) {
5906    // SameValue algorithm
5907    if (x === y) {
5908      // Steps 1-5, 7-10
5909      // Steps 6.b-6.e: +0 != -0
5910      // Added the nonzero y check to make Flow happy, but it is redundant
5911      return x !== 0 || y !== 0 || 1 / x === 1 / y;
5912    } else {
5913      // Step 6.a: NaN == NaN
5914      return x !== x && y !== y;
5915    }
5916  }
5917  
5918  /**
5919   * Performs equality by iterating through keys on an object and returning false
5920   * when any key has values which are not strictly equal between the arguments.
5921   * Returns true when the values of all keys are strictly equal.
5922   */
5923  function shallowEqual(objA, objB) {
5924    if (is(objA, objB)) {
5925      return true;
5926    }
5927  
5928    if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
5929      return false;
5930    }
5931  
5932    var keysA = Object.keys(objA);
5933    var keysB = Object.keys(objB);
5934  
5935    if (keysA.length !== keysB.length) {
5936      return false;
5937    }
5938  
5939    // Test for A's keys different from B.
5940    for (var i = 0; i < keysA.length; i++) {
5941      if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
5942        return false;
5943      }
5944    }
5945  
5946    return true;
5947  }
5948  
5949  /**
5950   * Does a shallow comparison for props and state.
5951   * See ReactComponentWithPureRenderMixin
5952   * See also https://facebook.github.io/react/docs/shallow-compare.html
5953   */
5954  function shallowCompare(instance, nextProps, nextState) {
5955    return (
5956      !shallowEqual(instance.props, nextProps) ||
5957      !shallowEqual(instance.state, nextState)
5958    );
5959  }
5960  
5961  module.exports = shallowCompare;
5962  
5963  
5964  /***/ }),
5965  
5966  /***/ 4185:
5967  /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
5968  
5969  // eslint-disable-next-line import/no-unresolved
5970  __webpack_require__(17);
5971  
5972  
5973  /***/ }),
5974  
5975  /***/ 7617:
5976  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5977  
5978  "use strict";
5979  
5980  
5981  Object.defineProperty(exports, "__esModule", ({
5982    value: true
5983  }));
5984  exports.PureCalendarDay = undefined;
5985  
5986  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; };
5987  
5988  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; }; }();
5989  
5990  var _object = __webpack_require__(4011);
5991  
5992  var _object2 = _interopRequireDefault(_object);
5993  
5994  var _react = __webpack_require__(9196);
5995  
5996  var _react2 = _interopRequireDefault(_react);
5997  
5998  var _propTypes = __webpack_require__(2652);
5999  
6000  var _propTypes2 = _interopRequireDefault(_propTypes);
6001  
6002  var _reactAddonsShallowCompare = __webpack_require__(2541);
6003  
6004  var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
6005  
6006  var _reactMomentProptypes = __webpack_require__(6150);
6007  
6008  var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
6009  
6010  var _airbnbPropTypes = __webpack_require__(4882);
6011  
6012  var _reactWithStyles = __webpack_require__(3576);
6013  
6014  var _moment = __webpack_require__(6292);
6015  
6016  var _moment2 = _interopRequireDefault(_moment);
6017  
6018  var _defaultPhrases = __webpack_require__(6030);
6019  
6020  var _getPhrasePropTypes = __webpack_require__(2893);
6021  
6022  var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
6023  
6024  var _getCalendarDaySettings = __webpack_require__(7475);
6025  
6026  var _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings);
6027  
6028  var _ModifiersShape = __webpack_require__(6747);
6029  
6030  var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
6031  
6032  var _constants = __webpack_require__(257);
6033  
6034  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
6035  
6036  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6037  
6038  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; }
6039  
6040  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; }
6041  
6042  var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
6043    day: _reactMomentProptypes2['default'].momentObj,
6044    daySize: _airbnbPropTypes.nonNegativeInteger,
6045    isOutsideDay: _propTypes2['default'].bool,
6046    modifiers: _ModifiersShape2['default'],
6047    isFocused: _propTypes2['default'].bool,
6048    tabIndex: _propTypes2['default'].oneOf([0, -1]),
6049    onDayClick: _propTypes2['default'].func,
6050    onDayMouseEnter: _propTypes2['default'].func,
6051    onDayMouseLeave: _propTypes2['default'].func,
6052    renderDayContents: _propTypes2['default'].func,
6053    ariaLabelFormat: _propTypes2['default'].string,
6054  
6055    // internationalization
6056    phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases))
6057  }));
6058  
6059  var defaultProps = {
6060    day: (0, _moment2['default'])(),
6061    daySize: _constants.DAY_SIZE,
6062    isOutsideDay: false,
6063    modifiers: new Set(),
6064    isFocused: false,
6065    tabIndex: -1,
6066    onDayClick: function () {
6067      function onDayClick() {}
6068  
6069      return onDayClick;
6070    }(),
6071    onDayMouseEnter: function () {
6072      function onDayMouseEnter() {}
6073  
6074      return onDayMouseEnter;
6075    }(),
6076    onDayMouseLeave: function () {
6077      function onDayMouseLeave() {}
6078  
6079      return onDayMouseLeave;
6080    }(),
6081  
6082    renderDayContents: null,
6083    ariaLabelFormat: 'dddd, LL',
6084  
6085    // internationalization
6086    phrases: _defaultPhrases.CalendarDayPhrases
6087  };
6088  
6089  var CalendarDay = function (_React$Component) {
6090    _inherits(CalendarDay, _React$Component);
6091  
6092    function CalendarDay() {
6093      var _ref;
6094  
6095      _classCallCheck(this, CalendarDay);
6096  
6097      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
6098        args[_key] = arguments[_key];
6099      }
6100  
6101      var _this = _possibleConstructorReturn(this, (_ref = CalendarDay.__proto__ || Object.getPrototypeOf(CalendarDay)).call.apply(_ref, [this].concat(args)));
6102  
6103      _this.setButtonRef = _this.setButtonRef.bind(_this);
6104      return _this;
6105    }
6106  
6107    _createClass(CalendarDay, [{
6108      key: 'shouldComponentUpdate',
6109      value: function () {
6110        function shouldComponentUpdate(nextProps, nextState) {
6111          return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
6112        }
6113  
6114        return shouldComponentUpdate;
6115      }()
6116    }, {
6117      key: 'componentDidUpdate',
6118      value: function () {
6119        function componentDidUpdate(prevProps) {
6120          var _props = this.props,
6121              isFocused = _props.isFocused,
6122              tabIndex = _props.tabIndex;
6123  
6124          if (tabIndex === 0) {
6125            if (isFocused || tabIndex !== prevProps.tabIndex) {
6126              this.buttonRef.focus();
6127            }
6128          }
6129        }
6130  
6131        return componentDidUpdate;
6132      }()
6133    }, {
6134      key: 'onDayClick',
6135      value: function () {
6136        function onDayClick(day, e) {
6137          var onDayClick = this.props.onDayClick;
6138  
6139          onDayClick(day, e);
6140        }
6141  
6142        return onDayClick;
6143      }()
6144    }, {
6145      key: 'onDayMouseEnter',
6146      value: function () {
6147        function onDayMouseEnter(day, e) {
6148          var onDayMouseEnter = this.props.onDayMouseEnter;
6149  
6150          onDayMouseEnter(day, e);
6151        }
6152  
6153        return onDayMouseEnter;
6154      }()
6155    }, {
6156      key: 'onDayMouseLeave',
6157      value: function () {
6158        function onDayMouseLeave(day, e) {
6159          var onDayMouseLeave = this.props.onDayMouseLeave;
6160  
6161          onDayMouseLeave(day, e);
6162        }
6163  
6164        return onDayMouseLeave;
6165      }()
6166    }, {
6167      key: 'onKeyDown',
6168      value: function () {
6169        function onKeyDown(day, e) {
6170          var onDayClick = this.props.onDayClick;
6171          var key = e.key;
6172  
6173          if (key === 'Enter' || key === ' ') {
6174            onDayClick(day, e);
6175          }
6176        }
6177  
6178        return onKeyDown;
6179      }()
6180    }, {
6181      key: 'setButtonRef',
6182      value: function () {
6183        function setButtonRef(ref) {
6184          this.buttonRef = ref;
6185        }
6186  
6187        return setButtonRef;
6188      }()
6189    }, {
6190      key: 'render',
6191      value: function () {
6192        function render() {
6193          var _this2 = this;
6194  
6195          var _props2 = this.props,
6196              day = _props2.day,
6197              ariaLabelFormat = _props2.ariaLabelFormat,
6198              daySize = _props2.daySize,
6199              isOutsideDay = _props2.isOutsideDay,
6200              modifiers = _props2.modifiers,
6201              renderDayContents = _props2.renderDayContents,
6202              tabIndex = _props2.tabIndex,
6203              styles = _props2.styles,
6204              phrases = _props2.phrases;
6205  
6206  
6207          if (!day) return _react2['default'].createElement('td', null);
6208  
6209          var _getCalendarDaySettin = (0, _getCalendarDaySettings2['default'])(day, ariaLabelFormat, daySize, modifiers, phrases),
6210              daySizeStyles = _getCalendarDaySettin.daySizeStyles,
6211              useDefaultCursor = _getCalendarDaySettin.useDefaultCursor,
6212              selected = _getCalendarDaySettin.selected,
6213              hoveredSpan = _getCalendarDaySettin.hoveredSpan,
6214              isOutsideRange = _getCalendarDaySettin.isOutsideRange,
6215              ariaLabel = _getCalendarDaySettin.ariaLabel;
6216  
6217          return _react2['default'].createElement(
6218            'td',
6219            _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), {
6220              role: 'button' // eslint-disable-line jsx-a11y/no-noninteractive-element-to-interactive-role
6221              , ref: this.setButtonRef,
6222              'aria-label': ariaLabel,
6223              onMouseEnter: function () {
6224                function onMouseEnter(e) {
6225                  _this2.onDayMouseEnter(day, e);
6226                }
6227  
6228                return onMouseEnter;
6229              }(),
6230              onMouseLeave: function () {
6231                function onMouseLeave(e) {
6232                  _this2.onDayMouseLeave(day, e);
6233                }
6234  
6235                return onMouseLeave;
6236              }(),
6237              onMouseUp: function () {
6238                function onMouseUp(e) {
6239                  e.currentTarget.blur();
6240                }
6241  
6242                return onMouseUp;
6243              }(),
6244              onClick: function () {
6245                function onClick(e) {
6246                  _this2.onDayClick(day, e);
6247                }
6248  
6249                return onClick;
6250              }(),
6251              onKeyDown: function () {
6252                function onKeyDown(e) {
6253                  _this2.onKeyDown(day, e);
6254                }
6255  
6256                return onKeyDown;
6257              }(),
6258              tabIndex: tabIndex
6259            }),
6260            renderDayContents ? renderDayContents(day, modifiers) : day.format('D')
6261          );
6262        }
6263  
6264        return render;
6265      }()
6266    }]);
6267  
6268    return CalendarDay;
6269  }(_react2['default'].Component);
6270  
6271  CalendarDay.propTypes = propTypes;
6272  CalendarDay.defaultProps = defaultProps;
6273  
6274  exports.PureCalendarDay = CalendarDay;
6275  exports["default"] = (0, _reactWithStyles.withStyles)(function (_ref2) {
6276    var _ref2$reactDates = _ref2.reactDates,
6277        color = _ref2$reactDates.color,
6278        font = _ref2$reactDates.font;
6279    return {
6280      CalendarDay: {
6281        boxSizing: 'border-box',
6282        cursor: 'pointer',
6283        fontSize: font.size,
6284        textAlign: 'center',
6285  
6286        ':active': {
6287          outline: 0
6288        }
6289      },
6290  
6291      CalendarDay__defaultCursor: {
6292        cursor: 'default'
6293      },
6294  
6295      CalendarDay__default: {
6296        border: '1px solid ' + String(color.core.borderLight),
6297        color: color.text,
6298        background: color.background,
6299  
6300        ':hover': {
6301          background: color.core.borderLight,
6302          border: '1px double ' + String(color.core.borderLight),
6303          color: 'inherit'
6304        }
6305      },
6306  
6307      CalendarDay__hovered_offset: {
6308        background: color.core.borderBright,
6309        border: '1px double ' + String(color.core.borderLight),
6310        color: 'inherit'
6311      },
6312  
6313      CalendarDay__outside: {
6314        border: 0,
6315        background: color.outside.backgroundColor,
6316        color: color.outside.color,
6317  
6318        ':hover': {
6319          border: 0
6320        }
6321      },
6322  
6323      CalendarDay__blocked_minimum_nights: {
6324        background: color.minimumNights.backgroundColor,
6325        border: '1px solid ' + String(color.minimumNights.borderColor),
6326        color: color.minimumNights.color,
6327  
6328        ':hover': {
6329          background: color.minimumNights.backgroundColor_hover,
6330          color: color.minimumNights.color_active
6331        },
6332  
6333        ':active': {
6334          background: color.minimumNights.backgroundColor_active,
6335          color: color.minimumNights.color_active
6336        }
6337      },
6338  
6339      CalendarDay__highlighted_calendar: {
6340        background: color.highlighted.backgroundColor,
6341        color: color.highlighted.color,
6342  
6343        ':hover': {
6344          background: color.highlighted.backgroundColor_hover,
6345          color: color.highlighted.color_active
6346        },
6347  
6348        ':active': {
6349          background: color.highlighted.backgroundColor_active,
6350          color: color.highlighted.color_active
6351        }
6352      },
6353  
6354      CalendarDay__selected_span: {
6355        background: color.selectedSpan.backgroundColor,
6356        border: '1px solid ' + String(color.selectedSpan.borderColor),
6357        color: color.selectedSpan.color,
6358  
6359        ':hover': {
6360          background: color.selectedSpan.backgroundColor_hover,
6361          border: '1px solid ' + String(color.selectedSpan.borderColor),
6362          color: color.selectedSpan.color_active
6363        },
6364  
6365        ':active': {
6366          background: color.selectedSpan.backgroundColor_active,
6367          border: '1px solid ' + String(color.selectedSpan.borderColor),
6368          color: color.selectedSpan.color_active
6369        }
6370      },
6371  
6372      CalendarDay__last_in_range: {
6373        borderRight: color.core.primary
6374      },
6375  
6376      CalendarDay__selected: {
6377        background: color.selected.backgroundColor,
6378        border: '1px solid ' + String(color.selected.borderColor),
6379        color: color.selected.color,
6380  
6381        ':hover': {
6382          background: color.selected.backgroundColor_hover,
6383          border: '1px solid ' + String(color.selected.borderColor),
6384          color: color.selected.color_active
6385        },
6386  
6387        ':active': {
6388          background: color.selected.backgroundColor_active,
6389          border: '1px solid ' + String(color.selected.borderColor),
6390          color: color.selected.color_active
6391        }
6392      },
6393  
6394      CalendarDay__hovered_span: {
6395        background: color.hoveredSpan.backgroundColor,
6396        border: '1px solid ' + String(color.hoveredSpan.borderColor),
6397        color: color.hoveredSpan.color,
6398  
6399        ':hover': {
6400          background: color.hoveredSpan.backgroundColor_hover,
6401          border: '1px solid ' + String(color.hoveredSpan.borderColor),
6402          color: color.hoveredSpan.color_active
6403        },
6404  
6405        ':active': {
6406          background: color.hoveredSpan.backgroundColor_active,
6407          border: '1px solid ' + String(color.hoveredSpan.borderColor),
6408          color: color.hoveredSpan.color_active
6409        }
6410      },
6411  
6412      CalendarDay__blocked_calendar: {
6413        background: color.blocked_calendar.backgroundColor,
6414        border: '1px solid ' + String(color.blocked_calendar.borderColor),
6415        color: color.blocked_calendar.color,
6416  
6417        ':hover': {
6418          background: color.blocked_calendar.backgroundColor_hover,
6419          border: '1px solid ' + String(color.blocked_calendar.borderColor),
6420          color: color.blocked_calendar.color_active
6421        },
6422  
6423        ':active': {
6424          background: color.blocked_calendar.backgroundColor_active,
6425          border: '1px solid ' + String(color.blocked_calendar.borderColor),
6426          color: color.blocked_calendar.color_active
6427        }
6428      },
6429  
6430      CalendarDay__blocked_out_of_range: {
6431        background: color.blocked_out_of_range.backgroundColor,
6432        border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
6433        color: color.blocked_out_of_range.color,
6434  
6435        ':hover': {
6436          background: color.blocked_out_of_range.backgroundColor_hover,
6437          border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
6438          color: color.blocked_out_of_range.color_active
6439        },
6440  
6441        ':active': {
6442          background: color.blocked_out_of_range.backgroundColor_active,
6443          border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
6444          color: color.blocked_out_of_range.color_active
6445        }
6446      },
6447  
6448      CalendarDay__selected_start: {},
6449      CalendarDay__selected_end: {},
6450      CalendarDay__today: {},
6451      CalendarDay__firstDayOfWeek: {},
6452      CalendarDay__lastDayOfWeek: {}
6453    };
6454  })(CalendarDay);
6455  
6456  /***/ }),
6457  
6458  /***/ 5986:
6459  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
6460  
6461  "use strict";
6462  
6463  
6464  Object.defineProperty(exports, "__esModule", ({
6465    value: true
6466  }));
6467  
6468  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; };
6469  
6470  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; }; }();
6471  
6472  var _object = __webpack_require__(4011);
6473  
6474  var _object2 = _interopRequireDefault(_object);
6475  
6476  var _react = __webpack_require__(9196);
6477  
6478  var _react2 = _interopRequireDefault(_react);
6479  
6480  var _propTypes = __webpack_require__(2652);
6481  
6482  var _propTypes2 = _interopRequireDefault(_propTypes);
6483  
6484  var _reactAddonsShallowCompare = __webpack_require__(2541);
6485  
6486  var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
6487  
6488  var _reactMomentProptypes = __webpack_require__(6150);
6489  
6490  var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
6491  
6492  var _airbnbPropTypes = __webpack_require__(4882);
6493  
6494  var _reactWithStyles = __webpack_require__(3576);
6495  
6496  var _moment = __webpack_require__(6292);
6497  
6498  var _moment2 = _interopRequireDefault(_moment);
6499  
6500  var _defaultPhrases = __webpack_require__(6030);
6501  
6502  var _getPhrasePropTypes = __webpack_require__(2893);
6503  
6504  var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
6505  
6506  var _CalendarWeek = __webpack_require__(4604);
6507  
6508  var _CalendarWeek2 = _interopRequireDefault(_CalendarWeek);
6509  
6510  var _CalendarDay = __webpack_require__(7617);
6511  
6512  var _CalendarDay2 = _interopRequireDefault(_CalendarDay);
6513  
6514  var _calculateDimension = __webpack_require__(8607);
6515  
6516  var _calculateDimension2 = _interopRequireDefault(_calculateDimension);
6517  
6518  var _getCalendarMonthWeeks = __webpack_require__(5644);
6519  
6520  var _getCalendarMonthWeeks2 = _interopRequireDefault(_getCalendarMonthWeeks);
6521  
6522  var _isSameDay = __webpack_require__(3923);
6523  
6524  var _isSameDay2 = _interopRequireDefault(_isSameDay);
6525  
6526  var _toISODateString = __webpack_require__(7310);
6527  
6528  var _toISODateString2 = _interopRequireDefault(_toISODateString);
6529  
6530  var _ModifiersShape = __webpack_require__(6747);
6531  
6532  var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
6533  
6534  var _ScrollableOrientationShape = __webpack_require__(6553);
6535  
6536  var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
6537  
6538  var _DayOfWeekShape = __webpack_require__(243);
6539  
6540  var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
6541  
6542  var _constants = __webpack_require__(257);
6543  
6544  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
6545  
6546  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6547  
6548  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; }
6549  
6550  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 */
6551  
6552  var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
6553    month: _reactMomentProptypes2['default'].momentObj,
6554    horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
6555    isVisible: _propTypes2['default'].bool,
6556    enableOutsideDays: _propTypes2['default'].bool,
6557    modifiers: _propTypes2['default'].objectOf(_ModifiersShape2['default']),
6558    orientation: _ScrollableOrientationShape2['default'],
6559    daySize: _airbnbPropTypes.nonNegativeInteger,
6560    onDayClick: _propTypes2['default'].func,
6561    onDayMouseEnter: _propTypes2['default'].func,
6562    onDayMouseLeave: _propTypes2['default'].func,
6563    onMonthSelect: _propTypes2['default'].func,
6564    onYearSelect: _propTypes2['default'].func,
6565    renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
6566    renderCalendarDay: _propTypes2['default'].func,
6567    renderDayContents: _propTypes2['default'].func,
6568    renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
6569    firstDayOfWeek: _DayOfWeekShape2['default'],
6570    setMonthTitleHeight: _propTypes2['default'].func,
6571    verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,
6572  
6573    focusedDate: _reactMomentProptypes2['default'].momentObj, // indicates focusable day
6574    isFocused: _propTypes2['default'].bool, // indicates whether or not to move focus to focusable day
6575  
6576    // i18n
6577    monthFormat: _propTypes2['default'].string,
6578    phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)),
6579    dayAriaLabelFormat: _propTypes2['default'].string
6580  }));
6581  
6582  var defaultProps = {
6583    month: (0, _moment2['default'])(),
6584    horizontalMonthPadding: 13,
6585    isVisible: true,
6586    enableOutsideDays: false,
6587    modifiers: {},
6588    orientation: _constants.HORIZONTAL_ORIENTATION,
6589    daySize: _constants.DAY_SIZE,
6590    onDayClick: function () {
6591      function onDayClick() {}
6592  
6593      return onDayClick;
6594    }(),
6595    onDayMouseEnter: function () {
6596      function onDayMouseEnter() {}
6597  
6598      return onDayMouseEnter;
6599    }(),
6600    onDayMouseLeave: function () {
6601      function onDayMouseLeave() {}
6602  
6603      return onDayMouseLeave;
6604    }(),
6605    onMonthSelect: function () {
6606      function onMonthSelect() {}
6607  
6608      return onMonthSelect;
6609    }(),
6610    onYearSelect: function () {
6611      function onYearSelect() {}
6612  
6613      return onYearSelect;
6614    }(),
6615  
6616    renderMonthText: null,
6617    renderCalendarDay: function () {
6618      function renderCalendarDay(props) {
6619        return _react2['default'].createElement(_CalendarDay2['default'], props);
6620      }
6621  
6622      return renderCalendarDay;
6623    }(),
6624    renderDayContents: null,
6625    renderMonthElement: null,
6626    firstDayOfWeek: null,
6627    setMonthTitleHeight: null,
6628  
6629    focusedDate: null,
6630    isFocused: false,
6631  
6632    // i18n
6633    monthFormat: 'MMMM YYYY', // english locale
6634    phrases: _defaultPhrases.CalendarDayPhrases,
6635    dayAriaLabelFormat: undefined,
6636    verticalBorderSpacing: undefined
6637  };
6638  
6639  var CalendarMonth = function (_React$Component) {
6640    _inherits(CalendarMonth, _React$Component);
6641  
6642    function CalendarMonth(props) {
6643      _classCallCheck(this, CalendarMonth);
6644  
6645      var _this = _possibleConstructorReturn(this, (CalendarMonth.__proto__ || Object.getPrototypeOf(CalendarMonth)).call(this, props));
6646  
6647      _this.state = {
6648        weeks: (0, _getCalendarMonthWeeks2['default'])(props.month, props.enableOutsideDays, props.firstDayOfWeek == null ? _moment2['default'].localeData().firstDayOfWeek() : props.firstDayOfWeek)
6649      };
6650  
6651      _this.setCaptionRef = _this.setCaptionRef.bind(_this);
6652      _this.setMonthTitleHeight = _this.setMonthTitleHeight.bind(_this);
6653      return _this;
6654    }
6655  
6656    _createClass(CalendarMonth, [{
6657      key: 'componentDidMount',
6658      value: function () {
6659        function componentDidMount() {
6660          this.setMonthTitleHeightTimeout = setTimeout(this.setMonthTitleHeight, 0);
6661        }
6662  
6663        return componentDidMount;
6664      }()
6665    }, {
6666      key: 'componentWillReceiveProps',
6667      value: function () {
6668        function componentWillReceiveProps(nextProps) {
6669          var month = nextProps.month,
6670              enableOutsideDays = nextProps.enableOutsideDays,
6671              firstDayOfWeek = nextProps.firstDayOfWeek;
6672          var _props = this.props,
6673              prevMonth = _props.month,
6674              prevEnableOutsideDays = _props.enableOutsideDays,
6675              prevFirstDayOfWeek = _props.firstDayOfWeek;
6676  
6677          if (!month.isSame(prevMonth) || enableOutsideDays !== prevEnableOutsideDays || firstDayOfWeek !== prevFirstDayOfWeek) {
6678            this.setState({
6679              weeks: (0, _getCalendarMonthWeeks2['default'])(month, enableOutsideDays, firstDayOfWeek == null ? _moment2['default'].localeData().firstDayOfWeek() : firstDayOfWeek)
6680            });
6681          }
6682        }
6683  
6684        return componentWillReceiveProps;
6685      }()
6686    }, {
6687      key: 'shouldComponentUpdate',
6688      value: function () {
6689        function shouldComponentUpdate(nextProps, nextState) {
6690          return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
6691        }
6692  
6693        return shouldComponentUpdate;
6694      }()
6695    }, {
6696      key: 'componentWillUnmount',
6697      value: function () {
6698        function componentWillUnmount() {
6699          if (this.setMonthTitleHeightTimeout) {
6700            clearTimeout(this.setMonthTitleHeightTimeout);
6701          }
6702        }
6703  
6704        return componentWillUnmount;
6705      }()
6706    }, {
6707      key: 'setMonthTitleHeight',
6708      value: function () {
6709        function setMonthTitleHeight() {
6710          var setMonthTitleHeight = this.props.setMonthTitleHeight;
6711  
6712          if (setMonthTitleHeight) {
6713            var captionHeight = (0, _calculateDimension2['default'])(this.captionRef, 'height', true, true);
6714            setMonthTitleHeight(captionHeight);
6715          }
6716        }
6717  
6718        return setMonthTitleHeight;
6719      }()
6720    }, {
6721      key: 'setCaptionRef',
6722      value: function () {
6723        function setCaptionRef(ref) {
6724          this.captionRef = ref;
6725        }
6726  
6727        return setCaptionRef;
6728      }()
6729    }, {
6730      key: 'render',
6731      value: function () {
6732        function render() {
6733          var _props2 = this.props,
6734              dayAriaLabelFormat = _props2.dayAriaLabelFormat,
6735              daySize = _props2.daySize,
6736              focusedDate = _props2.focusedDate,
6737              horizontalMonthPadding = _props2.horizontalMonthPadding,
6738              isFocused = _props2.isFocused,
6739              isVisible = _props2.isVisible,
6740              modifiers = _props2.modifiers,
6741              month = _props2.month,
6742              monthFormat = _props2.monthFormat,
6743              onDayClick = _props2.onDayClick,
6744              onDayMouseEnter = _props2.onDayMouseEnter,
6745              onDayMouseLeave = _props2.onDayMouseLeave,
6746              onMonthSelect = _props2.onMonthSelect,
6747              onYearSelect = _props2.onYearSelect,
6748              orientation = _props2.orientation,
6749              phrases = _props2.phrases,
6750              renderCalendarDay = _props2.renderCalendarDay,
6751              renderDayContents = _props2.renderDayContents,
6752              renderMonthElement = _props2.renderMonthElement,
6753              renderMonthText = _props2.renderMonthText,
6754              styles = _props2.styles,
6755              verticalBorderSpacing = _props2.verticalBorderSpacing;
6756          var weeks = this.state.weeks;
6757  
6758          var monthTitle = renderMonthText ? renderMonthText(month) : month.format(monthFormat);
6759  
6760          var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;
6761  
6762          return _react2['default'].createElement(
6763            'div',
6764            _extends({}, (0, _reactWithStyles.css)(styles.CalendarMonth, { padding: '0 ' + String(horizontalMonthPadding) + 'px' }), {
6765              'data-visible': isVisible
6766            }),
6767            _react2['default'].createElement(
6768              'div',
6769              _extends({
6770                ref: this.setCaptionRef
6771              }, (0, _reactWithStyles.css)(styles.CalendarMonth_caption, verticalScrollable && styles.CalendarMonth_caption__verticalScrollable)),
6772              renderMonthElement ? renderMonthElement({ month: month, onMonthSelect: onMonthSelect, onYearSelect: onYearSelect }) : _react2['default'].createElement(
6773                'strong',
6774                null,
6775                monthTitle
6776              )
6777            ),
6778            _react2['default'].createElement(
6779              'table',
6780              _extends({}, (0, _reactWithStyles.css)(!verticalBorderSpacing && styles.CalendarMonth_table, verticalBorderSpacing && styles.CalendarMonth_verticalSpacing, verticalBorderSpacing && { borderSpacing: '0px ' + String(verticalBorderSpacing) + 'px' }), {
6781                role: 'presentation'
6782              }),
6783              _react2['default'].createElement(
6784                'tbody',
6785                null,
6786                weeks.map(function (week, i) {
6787                  return _react2['default'].createElement(
6788                    _CalendarWeek2['default'],
6789                    { key: i },
6790                    week.map(function (day, dayOfWeek) {
6791                      return renderCalendarDay({
6792                        key: dayOfWeek,
6793                        day: day,
6794                        daySize: daySize,
6795                        isOutsideDay: !day || day.month() !== month.month(),
6796                        tabIndex: isVisible && (0, _isSameDay2['default'])(day, focusedDate) ? 0 : -1,
6797                        isFocused: isFocused,
6798                        onDayMouseEnter: onDayMouseEnter,
6799                        onDayMouseLeave: onDayMouseLeave,
6800                        onDayClick: onDayClick,
6801                        renderDayContents: renderDayContents,
6802                        phrases: phrases,
6803                        modifiers: modifiers[(0, _toISODateString2['default'])(day)],
6804                        ariaLabelFormat: dayAriaLabelFormat
6805                      });
6806                    })
6807                  );
6808                })
6809              )
6810            )
6811          );
6812        }
6813  
6814        return render;
6815      }()
6816    }]);
6817  
6818    return CalendarMonth;
6819  }(_react2['default'].Component);
6820  
6821  CalendarMonth.propTypes = propTypes;
6822  CalendarMonth.defaultProps = defaultProps;
6823  
6824  exports["default"] = (0, _reactWithStyles.withStyles)(function (_ref) {
6825    var _ref$reactDates = _ref.reactDates,
6826        color = _ref$reactDates.color,
6827        font = _ref$reactDates.font,
6828        spacing = _ref$reactDates.spacing;
6829    return {
6830      CalendarMonth: {
6831        background: color.background,
6832        textAlign: 'center',
6833        verticalAlign: 'top',
6834        userSelect: 'none'
6835      },
6836  
6837      CalendarMonth_table: {
6838        borderCollapse: 'collapse',
6839        borderSpacing: 0
6840      },
6841  
6842      CalendarMonth_verticalSpacing: {
6843        borderCollapse: 'separate'
6844      },
6845  
6846      CalendarMonth_caption: {
6847        color: color.text,
6848        fontSize: font.captionSize,
6849        textAlign: 'center',
6850        paddingTop: spacing.captionPaddingTop,
6851        paddingBottom: spacing.captionPaddingBottom,
6852        captionSide: 'initial'
6853      },
6854  
6855      CalendarMonth_caption__verticalScrollable: {
6856        paddingTop: 12,
6857        paddingBottom: 7
6858      }
6859    };
6860  })(CalendarMonth);
6861  
6862  /***/ }),
6863  
6864  /***/ 7938:
6865  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
6866  
6867  "use strict";
6868  
6869  
6870  Object.defineProperty(exports, "__esModule", ({
6871    value: true
6872  }));
6873  
6874  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; };
6875  
6876  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; }; }();
6877  
6878  var _object = __webpack_require__(4011);
6879  
6880  var _object2 = _interopRequireDefault(_object);
6881  
6882  var _react = __webpack_require__(9196);
6883  
6884  var _react2 = _interopRequireDefault(_react);
6885  
6886  var _propTypes = __webpack_require__(2652);
6887  
6888  var _propTypes2 = _interopRequireDefault(_propTypes);
6889  
6890  var _reactAddonsShallowCompare = __webpack_require__(2541);
6891  
6892  var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
6893  
6894  var _reactMomentProptypes = __webpack_require__(6150);
6895  
6896  var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
6897  
6898  var _airbnbPropTypes = __webpack_require__(4882);
6899  
6900  var _reactWithStyles = __webpack_require__(3576);
6901  
6902  var _moment = __webpack_require__(6292);
6903  
6904  var _moment2 = _interopRequireDefault(_moment);
6905  
6906  var _consolidatedEvents = __webpack_require__(8495);
6907  
6908  var _defaultPhrases = __webpack_require__(6030);
6909  
6910  var _getPhrasePropTypes = __webpack_require__(2893);
6911  
6912  var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
6913  
6914  var _CalendarMonth = __webpack_require__(5986);
6915  
6916  var _CalendarMonth2 = _interopRequireDefault(_CalendarMonth);
6917  
6918  var _isTransitionEndSupported = __webpack_require__(7978);
6919  
6920  var _isTransitionEndSupported2 = _interopRequireDefault(_isTransitionEndSupported);
6921  
6922  var _getTransformStyles = __webpack_require__(8304);
6923  
6924  var _getTransformStyles2 = _interopRequireDefault(_getTransformStyles);
6925  
6926  var _getCalendarMonthWidth = __webpack_require__(8964);
6927  
6928  var _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth);
6929  
6930  var _toISOMonthString = __webpack_require__(2705);
6931  
6932  var _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);
6933  
6934  var _isPrevMonth = __webpack_require__(3858);
6935  
6936  var _isPrevMonth2 = _interopRequireDefault(_isPrevMonth);
6937  
6938  var _isNextMonth = __webpack_require__(1310);
6939  
6940  var _isNextMonth2 = _interopRequireDefault(_isNextMonth);
6941  
6942  var _ModifiersShape = __webpack_require__(6747);
6943  
6944  var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
6945  
6946  var _ScrollableOrientationShape = __webpack_require__(6553);
6947  
6948  var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
6949  
6950  var _DayOfWeekShape = __webpack_require__(243);
6951  
6952  var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
6953  
6954  var _constants = __webpack_require__(257);
6955  
6956  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
6957  
6958  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6959  
6960  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; }
6961  
6962  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; }
6963  
6964  var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
6965    enableOutsideDays: _propTypes2['default'].bool,
6966    firstVisibleMonthIndex: _propTypes2['default'].number,
6967    horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
6968    initialMonth: _reactMomentProptypes2['default'].momentObj,
6969    isAnimating: _propTypes2['default'].bool,
6970    numberOfMonths: _propTypes2['default'].number,
6971    modifiers: _propTypes2['default'].objectOf(_propTypes2['default'].objectOf(_ModifiersShape2['default'])),
6972    orientation: _ScrollableOrientationShape2['default'],
6973    onDayClick: _propTypes2['default'].func,
6974    onDayMouseEnter: _propTypes2['default'].func,
6975    onDayMouseLeave: _propTypes2['default'].func,
6976    onMonthTransitionEnd: _propTypes2['default'].func,
6977    onMonthChange: _propTypes2['default'].func,
6978    onYearChange: _propTypes2['default'].func,
6979    renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
6980    renderCalendarDay: _propTypes2['default'].func,
6981    renderDayContents: _propTypes2['default'].func,
6982    translationValue: _propTypes2['default'].number,
6983    renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
6984    daySize: _airbnbPropTypes.nonNegativeInteger,
6985    focusedDate: _reactMomentProptypes2['default'].momentObj, // indicates focusable day
6986    isFocused: _propTypes2['default'].bool, // indicates whether or not to move focus to focusable day
6987    firstDayOfWeek: _DayOfWeekShape2['default'],
6988    setMonthTitleHeight: _propTypes2['default'].func,
6989    isRTL: _propTypes2['default'].bool,
6990    transitionDuration: _airbnbPropTypes.nonNegativeInteger,
6991    verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,
6992  
6993    // i18n
6994    monthFormat: _propTypes2['default'].string,
6995    phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)),
6996    dayAriaLabelFormat: _propTypes2['default'].string
6997  }));
6998  
6999  var defaultProps = {
7000    enableOutsideDays: false,
7001    firstVisibleMonthIndex: 0,
7002    horizontalMonthPadding: 13,
7003    initialMonth: (0, _moment2['default'])(),
7004    isAnimating: false,
7005    numberOfMonths: 1,
7006    modifiers: {},
7007    orientation: _constants.HORIZONTAL_ORIENTATION,
7008    onDayClick: function () {
7009      function onDayClick() {}
7010  
7011      return onDayClick;
7012    }(),
7013    onDayMouseEnter: function () {
7014      function onDayMouseEnter() {}
7015  
7016      return onDayMouseEnter;
7017    }(),
7018    onDayMouseLeave: function () {
7019      function onDayMouseLeave() {}
7020  
7021      return onDayMouseLeave;
7022    }(),
7023    onMonthChange: function () {
7024      function onMonthChange() {}
7025  
7026      return onMonthChange;
7027    }(),
7028    onYearChange: function () {
7029      function onYearChange() {}
7030  
7031      return onYearChange;
7032    }(),
7033    onMonthTransitionEnd: function () {
7034      function onMonthTransitionEnd() {}
7035  
7036      return onMonthTransitionEnd;
7037    }(),
7038  
7039    renderMonthText: null,
7040    renderCalendarDay: undefined,
7041    renderDayContents: null,
7042    translationValue: null,
7043    renderMonthElement: null,
7044    daySize: _constants.DAY_SIZE,
7045    focusedDate: null,
7046    isFocused: false,
7047    firstDayOfWeek: null,
7048    setMonthTitleHeight: null,
7049    isRTL: false,
7050    transitionDuration: 200,
7051    verticalBorderSpacing: undefined,
7052  
7053    // i18n
7054    monthFormat: 'MMMM YYYY', // english locale
7055    phrases: _defaultPhrases.CalendarDayPhrases,
7056    dayAriaLabelFormat: undefined
7057  };
7058  
7059  function getMonths(initialMonth, numberOfMonths, withoutTransitionMonths) {
7060    var month = initialMonth.clone();
7061    if (!withoutTransitionMonths) month = month.subtract(1, 'month');
7062  
7063    var months = [];
7064    for (var i = 0; i < (withoutTransitionMonths ? numberOfMonths : numberOfMonths + 2); i += 1) {
7065      months.push(month);
7066      month = month.clone().add(1, 'month');
7067    }
7068  
7069    return months;
7070  }
7071  
7072  var CalendarMonthGrid = function (_React$Component) {
7073    _inherits(CalendarMonthGrid, _React$Component);
7074  
7075    function CalendarMonthGrid(props) {
7076      _classCallCheck(this, CalendarMonthGrid);
7077  
7078      var _this = _possibleConstructorReturn(this, (CalendarMonthGrid.__proto__ || Object.getPrototypeOf(CalendarMonthGrid)).call(this, props));
7079  
7080      var withoutTransitionMonths = props.orientation === _constants.VERTICAL_SCROLLABLE;
7081      _this.state = {
7082        months: getMonths(props.initialMonth, props.numberOfMonths, withoutTransitionMonths)
7083      };
7084  
7085      _this.isTransitionEndSupported = (0, _isTransitionEndSupported2['default'])();
7086      _this.onTransitionEnd = _this.onTransitionEnd.bind(_this);
7087      _this.setContainerRef = _this.setContainerRef.bind(_this);
7088  
7089      _this.locale = _moment2['default'].locale();
7090      _this.onMonthSelect = _this.onMonthSelect.bind(_this);
7091      _this.onYearSelect = _this.onYearSelect.bind(_this);
7092      return _this;
7093    }
7094  
7095    _createClass(CalendarMonthGrid, [{
7096      key: 'componentDidMount',
7097      value: function () {
7098        function componentDidMount() {
7099          this.removeEventListener = (0, _consolidatedEvents.addEventListener)(this.container, 'transitionend', this.onTransitionEnd);
7100        }
7101  
7102        return componentDidMount;
7103      }()
7104    }, {
7105      key: 'componentWillReceiveProps',
7106      value: function () {
7107        function componentWillReceiveProps(nextProps) {
7108          var _this2 = this;
7109  
7110          var initialMonth = nextProps.initialMonth,
7111              numberOfMonths = nextProps.numberOfMonths,
7112              orientation = nextProps.orientation;
7113          var months = this.state.months;
7114          var _props = this.props,
7115              prevInitialMonth = _props.initialMonth,
7116              prevNumberOfMonths = _props.numberOfMonths;
7117  
7118          var hasMonthChanged = !prevInitialMonth.isSame(initialMonth, 'month');
7119          var hasNumberOfMonthsChanged = prevNumberOfMonths !== numberOfMonths;
7120          var newMonths = months;
7121  
7122          if (hasMonthChanged && !hasNumberOfMonthsChanged) {
7123            if ((0, _isNextMonth2['default'])(prevInitialMonth, initialMonth)) {
7124              newMonths = months.slice(1);
7125              newMonths.push(months[months.length - 1].clone().add(1, 'month'));
7126            } else if ((0, _isPrevMonth2['default'])(prevInitialMonth, initialMonth)) {
7127              newMonths = months.slice(0, months.length - 1);
7128              newMonths.unshift(months[0].clone().subtract(1, 'month'));
7129            } else {
7130              var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
7131              newMonths = getMonths(initialMonth, numberOfMonths, withoutTransitionMonths);
7132            }
7133          }
7134  
7135          if (hasNumberOfMonthsChanged) {
7136            var _withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
7137            newMonths = getMonths(initialMonth, numberOfMonths, _withoutTransitionMonths);
7138          }
7139  
7140          var momentLocale = _moment2['default'].locale();
7141          if (this.locale !== momentLocale) {
7142            this.locale = momentLocale;
7143            newMonths = newMonths.map(function (m) {
7144              return m.locale(_this2.locale);
7145            });
7146          }
7147  
7148          this.setState({
7149            months: newMonths
7150          });
7151        }
7152  
7153        return componentWillReceiveProps;
7154      }()
7155    }, {
7156      key: 'shouldComponentUpdate',
7157      value: function () {
7158        function shouldComponentUpdate(nextProps, nextState) {
7159          return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
7160        }
7161  
7162        return shouldComponentUpdate;
7163      }()
7164    }, {
7165      key: 'componentDidUpdate',
7166      value: function () {
7167        function componentDidUpdate() {
7168          var _props2 = this.props,
7169              isAnimating = _props2.isAnimating,
7170              transitionDuration = _props2.transitionDuration,
7171              onMonthTransitionEnd = _props2.onMonthTransitionEnd;
7172  
7173          // For IE9, immediately call onMonthTransitionEnd instead of
7174          // waiting for the animation to complete. Similarly, if transitionDuration
7175          // is set to 0, also immediately invoke the onMonthTransitionEnd callback
7176  
7177          if ((!this.isTransitionEndSupported || !transitionDuration) && isAnimating) {
7178            onMonthTransitionEnd();
7179          }
7180        }
7181  
7182        return componentDidUpdate;
7183      }()
7184    }, {
7185      key: 'componentWillUnmount',
7186      value: function () {
7187        function componentWillUnmount() {
7188          if (this.removeEventListener) this.removeEventListener();
7189        }
7190  
7191        return componentWillUnmount;
7192      }()
7193    }, {
7194      key: 'onTransitionEnd',
7195      value: function () {
7196        function onTransitionEnd() {
7197          var onMonthTransitionEnd = this.props.onMonthTransitionEnd;
7198  
7199          onMonthTransitionEnd();
7200        }
7201  
7202        return onTransitionEnd;
7203      }()
7204    }, {
7205      key: 'onMonthSelect',
7206      value: function () {
7207        function onMonthSelect(currentMonth, newMonthVal) {
7208          var newMonth = currentMonth.clone();
7209          var _props3 = this.props,
7210              onMonthChange = _props3.onMonthChange,
7211              orientation = _props3.orientation;
7212          var months = this.state.months;
7213  
7214          var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
7215          var initialMonthSubtraction = months.indexOf(currentMonth);
7216          if (!withoutTransitionMonths) {
7217            initialMonthSubtraction -= 1;
7218          }
7219          newMonth.set('month', newMonthVal).subtract(initialMonthSubtraction, 'months');
7220          onMonthChange(newMonth);
7221        }
7222  
7223        return onMonthSelect;
7224      }()
7225    }, {
7226      key: 'onYearSelect',
7227      value: function () {
7228        function onYearSelect(currentMonth, newYearVal) {
7229          var newMonth = currentMonth.clone();
7230          var _props4 = this.props,
7231              onYearChange = _props4.onYearChange,
7232              orientation = _props4.orientation;
7233          var months = this.state.months;
7234  
7235          var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;
7236          var initialMonthSubtraction = months.indexOf(currentMonth);
7237          if (!withoutTransitionMonths) {
7238            initialMonthSubtraction -= 1;
7239          }
7240          newMonth.set('year', newYearVal).subtract(initialMonthSubtraction, 'months');
7241          onYearChange(newMonth);
7242        }
7243  
7244        return onYearSelect;
7245      }()
7246    }, {
7247      key: 'setContainerRef',
7248      value: function () {
7249        function setContainerRef(ref) {
7250          this.container = ref;
7251        }
7252  
7253        return setContainerRef;
7254      }()
7255    }, {
7256      key: 'render',
7257      value: function () {
7258        function render() {
7259          var _this3 = this;
7260  
7261          var _props5 = this.props,
7262              enableOutsideDays = _props5.enableOutsideDays,
7263              firstVisibleMonthIndex = _props5.firstVisibleMonthIndex,
7264              horizontalMonthPadding = _props5.horizontalMonthPadding,
7265              isAnimating = _props5.isAnimating,
7266              modifiers = _props5.modifiers,
7267              numberOfMonths = _props5.numberOfMonths,
7268              monthFormat = _props5.monthFormat,
7269              orientation = _props5.orientation,
7270              translationValue = _props5.translationValue,
7271              daySize = _props5.daySize,
7272              onDayMouseEnter = _props5.onDayMouseEnter,
7273              onDayMouseLeave = _props5.onDayMouseLeave,
7274              onDayClick = _props5.onDayClick,
7275              renderMonthText = _props5.renderMonthText,
7276              renderCalendarDay = _props5.renderCalendarDay,
7277              renderDayContents = _props5.renderDayContents,
7278              renderMonthElement = _props5.renderMonthElement,
7279              onMonthTransitionEnd = _props5.onMonthTransitionEnd,
7280              firstDayOfWeek = _props5.firstDayOfWeek,
7281              focusedDate = _props5.focusedDate,
7282              isFocused = _props5.isFocused,
7283              isRTL = _props5.isRTL,
7284              styles = _props5.styles,
7285              phrases = _props5.phrases,
7286              dayAriaLabelFormat = _props5.dayAriaLabelFormat,
7287              transitionDuration = _props5.transitionDuration,
7288              verticalBorderSpacing = _props5.verticalBorderSpacing,
7289              setMonthTitleHeight = _props5.setMonthTitleHeight;
7290          var months = this.state.months;
7291  
7292          var isVertical = orientation === _constants.VERTICAL_ORIENTATION;
7293          var isVerticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;
7294          var isHorizontal = orientation === _constants.HORIZONTAL_ORIENTATION;
7295  
7296          var calendarMonthWidth = (0, _getCalendarMonthWidth2['default'])(daySize, horizontalMonthPadding);
7297  
7298          var width = isVertical || isVerticalScrollable ? calendarMonthWidth : (numberOfMonths + 2) * calendarMonthWidth;
7299  
7300          var transformType = isVertical || isVerticalScrollable ? 'translateY' : 'translateX';
7301          var transformValue = transformType + '(' + String(translationValue) + 'px)';
7302  
7303          return _react2['default'].createElement(
7304            'div',
7305            _extends({}, (0, _reactWithStyles.css)(styles.CalendarMonthGrid, isHorizontal && styles.CalendarMonthGrid__horizontal, isVertical && styles.CalendarMonthGrid__vertical, isVerticalScrollable && styles.CalendarMonthGrid__vertical_scrollable, isAnimating && styles.CalendarMonthGrid__animating, isAnimating && transitionDuration && {
7306              transition: 'transform ' + String(transitionDuration) + 'ms ease-in-out'
7307            }, (0, _object2['default'])({}, (0, _getTransformStyles2['default'])(transformValue), {
7308              width: width
7309            })), {
7310              ref: this.setContainerRef,
7311              onTransitionEnd: onMonthTransitionEnd
7312            }),
7313            months.map(function (month, i) {
7314              var isVisible = i >= firstVisibleMonthIndex && i < firstVisibleMonthIndex + numberOfMonths;
7315              var hideForAnimation = i === 0 && !isVisible;
7316              var showForAnimation = i === 0 && isAnimating && isVisible;
7317              var monthString = (0, _toISOMonthString2['default'])(month);
7318              return _react2['default'].createElement(
7319                'div',
7320                _extends({
7321                  key: monthString
7322                }, (0, _reactWithStyles.css)(isHorizontal && styles.CalendarMonthGrid_month__horizontal, hideForAnimation && styles.CalendarMonthGrid_month__hideForAnimation, showForAnimation && !isVertical && !isRTL && {
7323                  position: 'absolute',
7324                  left: -calendarMonthWidth
7325                }, showForAnimation && !isVertical && isRTL && {
7326                  position: 'absolute',
7327                  right: 0
7328                }, showForAnimation && isVertical && {
7329                  position: 'absolute',
7330                  top: -translationValue
7331                }, !isVisible && !isAnimating && styles.CalendarMonthGrid_month__hidden)),
7332                _react2['default'].createElement(_CalendarMonth2['default'], {
7333                  month: month,
7334                  isVisible: isVisible,
7335                  enableOutsideDays: enableOutsideDays,
7336                  modifiers: modifiers[monthString],
7337                  monthFormat: monthFormat,
7338                  orientation: orientation,
7339                  onDayMouseEnter: onDayMouseEnter,
7340                  onDayMouseLeave: onDayMouseLeave,
7341                  onDayClick: onDayClick,
7342                  onMonthSelect: _this3.onMonthSelect,
7343                  onYearSelect: _this3.onYearSelect,
7344                  renderMonthText: renderMonthText,
7345                  renderCalendarDay: renderCalendarDay,
7346                  renderDayContents: renderDayContents,
7347                  renderMonthElement: renderMonthElement,
7348                  firstDayOfWeek: firstDayOfWeek,
7349                  daySize: daySize,
7350                  focusedDate: isVisible ? focusedDate : null,
7351                  isFocused: isFocused,
7352                  phrases: phrases,
7353                  setMonthTitleHeight: setMonthTitleHeight,
7354                  dayAriaLabelFormat: dayAriaLabelFormat,
7355                  verticalBorderSpacing: verticalBorderSpacing,
7356                  horizontalMonthPadding: horizontalMonthPadding
7357                })
7358              );
7359            })
7360          );
7361        }
7362  
7363        return render;
7364      }()
7365    }]);
7366  
7367    return CalendarMonthGrid;
7368  }(_react2['default'].Component);
7369  
7370  CalendarMonthGrid.propTypes = propTypes;
7371  CalendarMonthGrid.defaultProps = defaultProps;
7372  
7373  exports["default"] = (0, _reactWithStyles.withStyles)(function (_ref) {
7374    var _ref$reactDates = _ref.reactDates,
7375        color = _ref$reactDates.color,
7376        noScrollBarOnVerticalScrollable = _ref$reactDates.noScrollBarOnVerticalScrollable,
7377        spacing = _ref$reactDates.spacing,
7378        zIndex = _ref$reactDates.zIndex;
7379    return {
7380      CalendarMonthGrid: {
7381        background: color.background,
7382        textAlign: 'left',
7383        zIndex: zIndex
7384      },
7385  
7386      CalendarMonthGrid__animating: {
7387        zIndex: zIndex + 1
7388      },
7389  
7390      CalendarMonthGrid__horizontal: {
7391        position: 'absolute',
7392        left: spacing.dayPickerHorizontalPadding
7393      },
7394  
7395      CalendarMonthGrid__vertical: {
7396        margin: '0 auto'
7397      },
7398  
7399      CalendarMonthGrid__vertical_scrollable: (0, _object2['default'])({
7400        margin: '0 auto',
7401        overflowY: 'scroll'
7402      }, noScrollBarOnVerticalScrollable && {
7403        '-webkitOverflowScrolling': 'touch',
7404        '::-webkit-scrollbar': {
7405          '-webkit-appearance': 'none',
7406          display: 'none'
7407        }
7408      }),
7409  
7410      CalendarMonthGrid_month__horizontal: {
7411        display: 'inline-block',
7412        verticalAlign: 'top',
7413        minHeight: '100%'
7414      },
7415  
7416      CalendarMonthGrid_month__hideForAnimation: {
7417        position: 'absolute',
7418        zIndex: zIndex - 1,
7419        opacity: 0,
7420        pointerEvents: 'none'
7421      },
7422  
7423      CalendarMonthGrid_month__hidden: {
7424        visibility: 'hidden'
7425      }
7426    };
7427  })(CalendarMonthGrid);
7428  
7429  /***/ }),
7430  
7431  /***/ 4604:
7432  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7433  
7434  "use strict";
7435  
7436  
7437  Object.defineProperty(exports, "__esModule", ({
7438    value: true
7439  }));
7440  exports["default"] = CalendarWeek;
7441  
7442  var _react = __webpack_require__(9196);
7443  
7444  var _react2 = _interopRequireDefault(_react);
7445  
7446  var _airbnbPropTypes = __webpack_require__(4882);
7447  
7448  var _CalendarDay = __webpack_require__(7617);
7449  
7450  var _CalendarDay2 = _interopRequireDefault(_CalendarDay);
7451  
7452  var _CustomizableCalendarDay = __webpack_require__(6698);
7453  
7454  var _CustomizableCalendarDay2 = _interopRequireDefault(_CustomizableCalendarDay);
7455  
7456  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
7457  
7458  var propTypes = (0, _airbnbPropTypes.forbidExtraProps)({
7459    children: (0, _airbnbPropTypes.or)([(0, _airbnbPropTypes.childrenOfType)(_CalendarDay2['default']), (0, _airbnbPropTypes.childrenOfType)(_CustomizableCalendarDay2['default'])]).isRequired
7460  });
7461  
7462  function CalendarWeek(_ref) {
7463    var children = _ref.children;
7464  
7465    return _react2['default'].createElement(
7466      'tr',
7467      null,
7468      children
7469    );
7470  }
7471  
7472  CalendarWeek.propTypes = propTypes;
7473  
7474  /***/ }),
7475  
7476  /***/ 9588:
7477  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7478  
7479  "use strict";
7480  
7481  
7482  Object.defineProperty(exports, "__esModule", ({
7483    value: true
7484  }));
7485  
7486  var _react = __webpack_require__(9196);
7487  
7488  var _react2 = _interopRequireDefault(_react);
7489  
7490  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
7491  
7492  var ChevronDown = function () {
7493    function ChevronDown(props) {
7494      return _react2['default'].createElement(
7495        'svg',
7496        props,
7497        _react2['default'].createElement('path', {
7498          d: 'M967.5 288.5L514.3 740.7c-11 11-21 11-32 0L29.1 288.5c-4-5-6-11-6-16 0-13 10-23 23-23 6 0 11 2 15 7l437.2 436.2 437.2-436.2c4-5 9-7 16-7 6 0 11 2 16 7 9 10.9 9 21 0 32z'
7499        })
7500      );
7501    }
7502  
7503    return ChevronDown;
7504  }();
7505  
7506  ChevronDown.defaultProps = {
7507    viewBox: '0 0 1000 1000'
7508  };
7509  exports["default"] = ChevronDown;
7510  
7511  /***/ }),
7512  
7513  /***/ 1809:
7514  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7515  
7516  "use strict";
7517  
7518  
7519  Object.defineProperty(exports, "__esModule", ({
7520    value: true
7521  }));
7522  
7523  var _react = __webpack_require__(9196);
7524  
7525  var _react2 = _interopRequireDefault(_react);
7526  
7527  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
7528  
7529  var ChevronUp = function () {
7530    function ChevronUp(props) {
7531      return _react2['default'].createElement(
7532        'svg',
7533        props,
7534        _react2['default'].createElement('path', {
7535          d: 'M32.1 712.6l453.2-452.2c11-11 21-11 32 0l453.2 452.2c4 5 6 10 6 16 0 13-10 23-22 23-7 0-12-2-16-7L501.3 308.5 64.1 744.7c-4 5-9 7-15 7-7 0-12-2-17-7-9-11-9-21 0-32.1z'
7536        })
7537      );
7538    }
7539  
7540    return ChevronUp;
7541  }();
7542  
7543  ChevronUp.defaultProps = {
7544    viewBox: '0 0 1000 1000'
7545  };
7546  exports["default"] = ChevronUp;
7547  
7548  /***/ }),
7549  
7550  /***/ 6973:
7551  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7552  
7553  "use strict";
7554  
7555  
7556  Object.defineProperty(exports, "__esModule", ({
7557    value: true
7558  }));
7559  
7560  var _react = __webpack_require__(9196);
7561  
7562  var _react2 = _interopRequireDefault(_react);
7563  
7564  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
7565  
7566  var CloseButton = function () {
7567    function CloseButton(props) {
7568      return _react2['default'].createElement(
7569        'svg',
7570        props,
7571        _react2['default'].createElement('path', {
7572          fillRule: 'evenodd',
7573          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'
7574        })
7575      );
7576    }
7577  
7578    return CloseButton;
7579  }();
7580  
7581  CloseButton.defaultProps = {
7582    viewBox: '0 0 12 12'
7583  };
7584  exports["default"] = CloseButton;
7585  
7586  /***/ }),
7587  
7588  /***/ 6698:
7589  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7590  
7591  "use strict";
7592  
7593  
7594  Object.defineProperty(exports, "__esModule", ({
7595    value: true
7596  }));
7597  exports.PureCustomizableCalendarDay = exports.selectedStyles = exports.lastInRangeStyles = exports.selectedSpanStyles = exports.hoveredSpanStyles = exports.blockedOutOfRangeStyles = exports.blockedCalendarStyles = exports.blockedMinNightsStyles = exports.highlightedCalendarStyles = exports.outsideStyles = exports.defaultStyles = undefined;
7598  
7599  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; };
7600  
7601  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; }; }();
7602  
7603  var _object = __webpack_require__(4011);
7604  
7605  var _object2 = _interopRequireDefault(_object);
7606  
7607  var _react = __webpack_require__(9196);
7608  
7609  var _react2 = _interopRequireDefault(_react);
7610  
7611  var _propTypes = __webpack_require__(2652);
7612  
7613  var _propTypes2 = _interopRequireDefault(_propTypes);
7614  
7615  var _reactAddonsShallowCompare = __webpack_require__(2541);
7616  
7617  var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
7618  
7619  var _reactMomentProptypes = __webpack_require__(6150);
7620  
7621  var _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);
7622  
7623  var _airbnbPropTypes = __webpack_require__(4882);
7624  
7625  var _reactWithStyles = __webpack_require__(3576);
7626  
7627  var _moment = __webpack_require__(6292);
7628  
7629  var _moment2 = _interopRequireDefault(_moment);
7630  
7631  var _defaultPhrases = __webpack_require__(6030);
7632  
7633  var _getPhrasePropTypes = __webpack_require__(2893);
7634  
7635  var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
7636  
7637  var _getCalendarDaySettings = __webpack_require__(7475);
7638  
7639  var _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings);
7640  
7641  var _constants = __webpack_require__(257);
7642  
7643  var _DefaultTheme = __webpack_require__(8158);
7644  
7645  var _DefaultTheme2 = _interopRequireDefault(_DefaultTheme);
7646  
7647  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
7648  
7649  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7650  
7651  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; }
7652  
7653  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; }
7654  
7655  var color = _DefaultTheme2['default'].reactDates.color;
7656  
7657  
7658  function getStyles(stylesObj, isHovered) {
7659    if (!stylesObj) return null;
7660  
7661    var hover = stylesObj.hover;
7662  
7663    if (isHovered && hover) {
7664      return hover;
7665    }
7666  
7667    return stylesObj;
7668  }
7669  
7670  var DayStyleShape = _propTypes2['default'].shape({
7671    background: _propTypes2['default'].string,
7672    border: (0, _airbnbPropTypes.or)([_propTypes2['default'].string, _propTypes2['default'].number]),
7673    color: _propTypes2['default'].string,
7674  
7675    hover: _propTypes2['default'].shape({
7676      background: _propTypes2['default'].string,
7677      border: (0, _airbnbPropTypes.or)([_propTypes2['default'].string, _propTypes2['default'].number]),
7678      color: _propTypes2['default'].string
7679    })
7680  });
7681  
7682  var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
7683    day: _reactMomentProptypes2['default'].momentObj,
7684    daySize: _airbnbPropTypes.nonNegativeInteger,
7685    isOutsideDay: _propTypes2['default'].bool,
7686    modifiers: _propTypes2['default'].instanceOf(Set),
7687    isFocused: _propTypes2['default'].bool,
7688    tabIndex: _propTypes2['default'].oneOf([0, -1]),
7689    onDayClick: _propTypes2['default'].func,
7690    onDayMouseEnter: _propTypes2['default'].func,
7691    onDayMouseLeave: _propTypes2['default'].func,
7692    renderDayContents: _propTypes2['default'].func,
7693    ariaLabelFormat: _propTypes2['default'].string,
7694  
7695    // style overrides
7696    defaultStyles: DayStyleShape,
7697    outsideStyles: DayStyleShape,
7698    todayStyles: DayStyleShape,
7699    firstDayOfWeekStyles: DayStyleShape,
7700    lastDayOfWeekStyles: DayStyleShape,
7701    highlightedCalendarStyles: DayStyleShape,
7702    blockedMinNightsStyles: DayStyleShape,
7703    blockedCalendarStyles: DayStyleShape,
7704    blockedOutOfRangeStyles: DayStyleShape,
7705    hoveredSpanStyles: DayStyleShape,
7706    selectedSpanStyles: DayStyleShape,
7707    lastInRangeStyles: DayStyleShape,
7708    selectedStyles: DayStyleShape,
7709    selectedStartStyles: DayStyleShape,
7710    selectedEndStyles: DayStyleShape,
7711    afterHoveredStartStyles: DayStyleShape,
7712  
7713    // internationalization
7714    phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases))
7715  }));
7716  
7717  var defaultStyles = exports.defaultStyles = {
7718    border: '1px solid ' + String(color.core.borderLight),
7719    color: color.text,
7720    background: color.background,
7721  
7722    hover: {
7723      background: color.core.borderLight,
7724      border: '1px double ' + String(color.core.borderLight),
7725      color: 'inherit'
7726    }
7727  };
7728  
7729  var outsideStyles = exports.outsideStyles = {
7730    background: color.outside.backgroundColor,
7731    border: 0,
7732    color: color.outside.color
7733  };
7734  
7735  var highlightedCalendarStyles = exports.highlightedCalendarStyles = {
7736    background: color.highlighted.backgroundColor,
7737    color: color.highlighted.color,
7738  
7739    hover: {
7740      background: color.highlighted.backgroundColor_hover,
7741      color: color.highlighted.color_active
7742    }
7743  };
7744  
7745  var blockedMinNightsStyles = exports.blockedMinNightsStyles = {
7746    background: color.minimumNights.backgroundColor,
7747    border: '1px solid ' + String(color.minimumNights.borderColor),
7748    color: color.minimumNights.color,
7749  
7750    hover: {
7751      background: color.minimumNights.backgroundColor_hover,
7752      color: color.minimumNights.color_active
7753    }
7754  };
7755  
7756  var blockedCalendarStyles = exports.blockedCalendarStyles = {
7757    background: color.blocked_calendar.backgroundColor,
7758    border: '1px solid ' + String(color.blocked_calendar.borderColor),
7759    color: color.blocked_calendar.color,
7760  
7761    hover: {
7762      background: color.blocked_calendar.backgroundColor_hover,
7763      border: '1px solid ' + String(color.blocked_calendar.borderColor),
7764      color: color.blocked_calendar.color_active
7765    }
7766  };
7767  
7768  var blockedOutOfRangeStyles = exports.blockedOutOfRangeStyles = {
7769    background: color.blocked_out_of_range.backgroundColor,
7770    border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
7771    color: color.blocked_out_of_range.color,
7772  
7773    hover: {
7774      background: color.blocked_out_of_range.backgroundColor_hover,
7775      border: '1px solid ' + String(color.blocked_out_of_range.borderColor),
7776      color: color.blocked_out_of_range.color_active
7777    }
7778  };
7779  
7780  var hoveredSpanStyles = exports.hoveredSpanStyles = {
7781    background: color.hoveredSpan.backgroundColor,
7782    border: '1px solid ' + String(color.hoveredSpan.borderColor),
7783    color: color.hoveredSpan.color,
7784  
7785    hover: {
7786      background: color.hoveredSpan.backgroundColor_hover,
7787      border: '1px solid ' + String(color.hoveredSpan.borderColor),
7788      color: color.hoveredSpan.color_active
7789    }
7790  };
7791  
7792  var selectedSpanStyles = exports.selectedSpanStyles = {
7793    background: color.selectedSpan.backgroundColor,
7794    border: '1px solid ' + String(color.selectedSpan.borderColor),
7795    color: color.selectedSpan.color,
7796  
7797    hover: {
7798      background: color.selectedSpan.backgroundColor_hover,
7799      border: '1px solid ' + String(color.selectedSpan.borderColor),
7800      color: color.selectedSpan.color_active
7801    }
7802  };
7803  
7804  var lastInRangeStyles = exports.lastInRangeStyles = {
7805    borderRight: color.core.primary
7806  };
7807  
7808  var selectedStyles = exports.selectedStyles = {
7809    background: color.selected.backgroundColor,
7810    border: '1px solid ' + String(color.selected.borderColor),
7811    color: color.selected.color,
7812  
7813    hover: {
7814      background: color.selected.backgroundColor_hover,
7815      border: '1px solid ' + String(color.selected.borderColor),
7816      color: color.selected.color_active
7817    }
7818  };
7819  
7820  var defaultProps = {
7821    day: (0, _moment2['default'])(),
7822    daySize: _constants.DAY_SIZE,
7823    isOutsideDay: false,
7824    modifiers: new Set(),
7825    isFocused: false,
7826    tabIndex: -1,
7827    onDayClick: function () {
7828      function onDayClick() {}
7829  
7830      return onDayClick;
7831    }(),
7832    onDayMouseEnter: function () {
7833      function onDayMouseEnter() {}
7834  
7835      return onDayMouseEnter;
7836    }(),
7837    onDayMouseLeave: function () {
7838      function onDayMouseLeave() {}
7839  
7840      return onDayMouseLeave;
7841    }(),
7842  
7843    renderDayContents: null,
7844    ariaLabelFormat: 'dddd, LL',
7845  
7846    // style defaults
7847    defaultStyles: defaultStyles,
7848    outsideStyles: outsideStyles,
7849    todayStyles: {},
7850    highlightedCalendarStyles: highlightedCalendarStyles,
7851    blockedMinNightsStyles: blockedMinNightsStyles,
7852    blockedCalendarStyles: blockedCalendarStyles,
7853    blockedOutOfRangeStyles: blockedOutOfRangeStyles,
7854    hoveredSpanStyles: hoveredSpanStyles,
7855    selectedSpanStyles: selectedSpanStyles,
7856    lastInRangeStyles: lastInRangeStyles,
7857    selectedStyles: selectedStyles,
7858    selectedStartStyles: {},
7859    selectedEndStyles: {},
7860    afterHoveredStartStyles: {},
7861    firstDayOfWeekStyles: {},
7862    lastDayOfWeekStyles: {},
7863  
7864    // internationalization
7865    phrases: _defaultPhrases.CalendarDayPhrases
7866  };
7867  
7868  var CustomizableCalendarDay = function (_React$Component) {
7869    _inherits(CustomizableCalendarDay, _React$Component);
7870  
7871    function CustomizableCalendarDay() {
7872      var _ref;
7873  
7874      _classCallCheck(this, CustomizableCalendarDay);
7875  
7876      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
7877        args[_key] = arguments[_key];
7878      }
7879  
7880      var _this = _possibleConstructorReturn(this, (_ref = CustomizableCalendarDay.__proto__ || Object.getPrototypeOf(CustomizableCalendarDay)).call.apply(_ref, [this].concat(args)));
7881  
7882      _this.state = {
7883        isHovered: false
7884      };
7885  
7886      _this.setButtonRef = _this.setButtonRef.bind(_this);
7887      return _this;
7888    }
7889  
7890    _createClass(CustomizableCalendarDay, [{
7891      key: 'shouldComponentUpdate',
7892      value: function () {
7893        function shouldComponentUpdate(nextProps, nextState) {
7894          return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
7895        }
7896  
7897        return shouldComponentUpdate;
7898      }()
7899    }, {
7900      key: 'componentDidUpdate',
7901      value: function () {
7902        function componentDidUpdate(prevProps) {
7903          var _props = this.props,
7904              isFocused = _props.isFocused,
7905              tabIndex = _props.tabIndex;
7906  
7907          if (tabIndex === 0) {
7908            if (isFocused || tabIndex !== prevProps.tabIndex) {
7909              this.buttonRef.focus();
7910            }
7911          }
7912        }
7913  
7914        return componentDidUpdate;
7915      }()
7916    }, {
7917      key: 'onDayClick',
7918      value: function () {
7919        function onDayClick(day, e) {
7920          var onDayClick = this.props.onDayClick;
7921  
7922          onDayClick(day, e);
7923        }
7924  
7925        return onDayClick;
7926      }()
7927    }, {
7928      key: 'onDayMouseEnter',
7929      value: function () {
7930        function onDayMouseEnter(day, e) {
7931          var onDayMouseEnter = this.props.onDayMouseEnter;
7932  
7933          this.setState({ isHovered: true });
7934          onDayMouseEnter(day, e);
7935        }
7936  
7937        return onDayMouseEnter;
7938      }()
7939    }, {
7940      key: 'onDayMouseLeave',
7941      value: function () {
7942        function onDayMouseLeave(day, e) {
7943          var onDayMouseLeave = this.props.onDayMouseLeave;
7944  
7945          this.setState({ isHovered: false });
7946          onDayMouseLeave(day, e);
7947        }
7948  
7949        return onDayMouseLeave;
7950      }()
7951    }, {
7952      key: 'onKeyDown',
7953      value: function () {
7954        function onKeyDown(day, e) {
7955          var onDayClick = this.props.onDayClick;
7956          var key = e.key;
7957  
7958          if (key === 'Enter' || key === ' ') {
7959            onDayClick(day, e);
7960          }
7961        }
7962  
7963        return onKeyDown;
7964      }()
7965    }, {
7966      key: 'setButtonRef',
7967      value: function () {
7968        function setButtonRef(ref) {
7969          this.buttonRef = ref;
7970        }
7971  
7972        return setButtonRef;
7973      }()
7974    }, {
7975      key: 'render',
7976      value: function () {
7977        function render() {
7978          var _this2 = this;
7979  
7980          var _props2 = this.props,
7981              day = _props2.day,
7982              ariaLabelFormat = _props2.ariaLabelFormat,
7983              daySize = _props2.daySize,
7984              isOutsideDay = _props2.isOutsideDay,
7985              modifiers = _props2.modifiers,
7986              tabIndex = _props2.tabIndex,
7987              renderDayContents = _props2.renderDayContents,
7988              styles = _props2.styles,
7989              phrases = _props2.phrases,
7990              defaultStylesWithHover = _props2.defaultStyles,
7991              outsideStylesWithHover = _props2.outsideStyles,
7992              todayStylesWithHover = _props2.todayStyles,
7993              firstDayOfWeekStylesWithHover = _props2.firstDayOfWeekStyles,
7994              lastDayOfWeekStylesWithHover = _props2.lastDayOfWeekStyles,
7995              highlightedCalendarStylesWithHover = _props2.highlightedCalendarStyles,
7996              blockedMinNightsStylesWithHover = _props2.blockedMinNightsStyles,
7997              blockedCalendarStylesWithHover = _props2.blockedCalendarStyles,
7998              blockedOutOfRangeStylesWithHover = _props2.blockedOutOfRangeStyles,
7999              hoveredSpanStylesWithHover = _props2.hoveredSpanStyles,
8000              selectedSpanStylesWithHover = _props2.selectedSpanStyles,
8001              lastInRangeStylesWithHover = _props2.lastInRangeStyles,
8002              selectedStylesWithHover = _props2.selectedStyles,
8003              selectedStartStylesWithHover = _props2.selectedStartStyles,
8004              selectedEndStylesWithHover = _props2.selectedEndStyles,
8005              afterHoveredStartStylesWithHover = _props2.afterHoveredStartStyles;
8006          var isHovered = this.state.isHovered;
8007  
8008  
8009          if (!day) return _react2['default'].createElement('td', null);
8010  
8011          var _getCalendarDaySettin = (0, _getCalendarDaySettings2['default'])(day, ariaLabelFormat, daySize, modifiers, phrases),
8012              daySizeStyles = _getCalendarDaySettin.daySizeStyles,
8013              useDefaultCursor = _getCalendarDaySettin.useDefaultCursor,
8014              selected = _getCalendarDaySettin.selected,
8015              hoveredSpan = _getCalendarDaySettin.hoveredSpan,
8016              isOutsideRange = _getCalendarDaySettin.isOutsideRange,
8017              ariaLabel = _getCalendarDaySettin.ariaLabel;
8018  
8019          return _react2['default'].createElement(
8020            'td',
8021            _extends({}, (0, _reactWithStyles.css)(styles.CalendarDay, useDefaultCursor && styles.CalendarDay__defaultCursor, daySizeStyles, getStyles(defaultStylesWithHover, isHovered), isOutsideDay && getStyles(outsideStylesWithHover, isHovered), modifiers.has('today') && getStyles(todayStylesWithHover, isHovered), modifiers.has('first-day-of-week') && getStyles(firstDayOfWeekStylesWithHover, isHovered), modifiers.has('last-day-of-week') && getStyles(lastDayOfWeekStylesWithHover, isHovered), modifiers.has('highlighted-calendar') && getStyles(highlightedCalendarStylesWithHover, isHovered), modifiers.has('blocked-minimum-nights') && getStyles(blockedMinNightsStylesWithHover, isHovered), modifiers.has('blocked-calendar') && getStyles(blockedCalendarStylesWithHover, isHovered), hoveredSpan && getStyles(hoveredSpanStylesWithHover, isHovered), modifiers.has('after-hovered-start') && getStyles(afterHoveredStartStylesWithHover, isHovered), modifiers.has('selected-span') && getStyles(selectedSpanStylesWithHover, isHovered), modifiers.has('last-in-range') && getStyles(lastInRangeStylesWithHover, isHovered), selected && getStyles(selectedStylesWithHover, isHovered), modifiers.has('selected-start') && getStyles(selectedStartStylesWithHover, isHovered), modifiers.has('selected-end') && getStyles(selectedEndStylesWithHover, isHovered), isOutsideRange && getStyles(blockedOutOfRangeStylesWithHover, isHovered)), {
8022              role: 'button' // eslint-disable-line jsx-a11y/no-noninteractive-element-to-interactive-role
8023              , ref: this.setButtonRef,
8024              'aria-label': ariaLabel,
8025              onMouseEnter: function () {
8026                function onMouseEnter(e) {
8027                  _this2.onDayMouseEnter(day, e);
8028                }
8029  
8030                return onMouseEnter;
8031              }(),
8032              onMouseLeave: function () {
8033                function onMouseLeave(e) {
8034                  _this2.onDayMouseLeave(day, e);
8035                }
8036  
8037                return onMouseLeave;
8038              }(),
8039              onMouseUp: function () {
8040                function onMouseUp(e) {
8041                  e.currentTarget.blur();
8042                }
8043  
8044                return onMouseUp;
8045              }(),
8046              onClick: function () {
8047                function onClick(e) {
8048                  _this2.onDayClick(day, e);
8049                }
8050  
8051                return onClick;
8052              }(),
8053              onKeyDown: function () {
8054                function onKeyDown(e) {
8055                  _this2.onKeyDown(day, e);
8056                }
8057  
8058                return onKeyDown;
8059              }(),
8060              tabIndex: tabIndex
8061            }),
8062            renderDayContents ? renderDayContents(day, modifiers) : day.format('D')
8063          );
8064        }
8065  
8066        return render;
8067      }()
8068    }]);
8069  
8070    return CustomizableCalendarDay;
8071  }(_react2['default'].Component);
8072  
8073  CustomizableCalendarDay.propTypes = propTypes;
8074  CustomizableCalendarDay.defaultProps = defaultProps;
8075  
8076  exports.PureCustomizableCalendarDay = CustomizableCalendarDay;
8077  exports["default"] = (0, _reactWithStyles.withStyles)(function (_ref2) {
8078    var font = _ref2.reactDates.font;
8079    return {
8080      CalendarDay: {
8081        boxSizing: 'border-box',
8082        cursor: 'pointer',
8083        fontSize: font.size,
8084        textAlign: 'center',
8085  
8086        ':active': {
8087          outline: 0
8088        }
8089      },
8090  
8091      CalendarDay__defaultCursor: {
8092        cursor: 'default'
8093      }
8094    };
8095  })(CustomizableCalendarDay);
8096  
8097  /***/ }),
8098  
8099  /***/ 8665:
8100  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
8101  
8102  "use strict";
8103  
8104  
8105  Object.defineProperty(exports, "__esModule", ({
8106    value: true
8107  }));
8108  exports.PureDayPicker = exports.defaultProps = undefined;
8109  
8110  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; };
8111  
8112  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; }; }();
8113  
8114  var _object = __webpack_require__(4011);
8115  
8116  var _object2 = _interopRequireDefault(_object);
8117  
8118  var _react = __webpack_require__(9196);
8119  
8120  var _react2 = _interopRequireDefault(_react);
8121  
8122  var _propTypes = __webpack_require__(2652);
8123  
8124  var _propTypes2 = _interopRequireDefault(_propTypes);
8125  
8126  var _reactAddonsShallowCompare = __webpack_require__(2541);
8127  
8128  var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);
8129  
8130  var _airbnbPropTypes = __webpack_require__(4882);
8131  
8132  var _reactWithStyles = __webpack_require__(3576);
8133  
8134  var _moment = __webpack_require__(6292);
8135  
8136  var _moment2 = _interopRequireDefault(_moment);
8137  
8138  var _throttle = __webpack_require__(8172);
8139  
8140  var _throttle2 = _interopRequireDefault(_throttle);
8141  
8142  var _isTouchDevice = __webpack_require__(5834);
8143  
8144  var _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);
8145  
8146  var _reactOutsideClickHandler = __webpack_require__(6606);
8147  
8148  var _reactOutsideClickHandler2 = _interopRequireDefault(_reactOutsideClickHandler);
8149  
8150  var _defaultPhrases = __webpack_require__(6030);
8151  
8152  var _getPhrasePropTypes = __webpack_require__(2893);
8153  
8154  var _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);
8155  
8156  var _CalendarMonthGrid = __webpack_require__(7938);
8157  
8158  var _CalendarMonthGrid2 = _interopRequireDefault(_CalendarMonthGrid);
8159  
8160  var _DayPickerNavigation = __webpack_require__(3895);
8161  
8162  var _DayPickerNavigation2 = _interopRequireDefault(_DayPickerNavigation);
8163  
8164  var _DayPickerKeyboardShortcuts = __webpack_require__(600);
8165  
8166  var _DayPickerKeyboardShortcuts2 = _interopRequireDefault(_DayPickerKeyboardShortcuts);
8167  
8168  var _getNumberOfCalendarMonthWeeks = __webpack_require__(4112);
8169  
8170  var _getNumberOfCalendarMonthWeeks2 = _interopRequireDefault(_getNumberOfCalendarMonthWeeks);
8171  
8172  var _getCalendarMonthWidth = __webpack_require__(8964);
8173  
8174  var _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth);
8175  
8176  var _calculateDimension = __webpack_require__(8607);
8177  
8178  var _calculateDimension2 = _interopRequireDefault(_calculateDimension);
8179  
8180  var _getActiveElement = __webpack_require__(5814);
8181  
8182  var _getActiveElement2 = _interopRequireDefault(_getActiveElement);
8183  
8184  var _isDayVisible = __webpack_require__(5713);
8185  
8186  var _isDayVisible2 = _interopRequireDefault(_isDayVisible);
8187  
8188  var _ModifiersShape = __webpack_require__(6747);
8189  
8190  var _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);
8191  
8192  var _ScrollableOrientationShape = __webpack_require__(6553);
8193  
8194  var _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);
8195  
8196  var _DayOfWeekShape = __webpack_require__(243);
8197  
8198  var _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);
8199  
8200  var _CalendarInfoPositionShape = __webpack_require__(8182);
8201  
8202  var _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);
8203  
8204  var _constants = __webpack_require__(257);
8205  
8206  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
8207  
8208  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); } }
8209  
8210  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8211  
8212  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; }
8213  
8214  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; }
8215  
8216  var MONTH_PADDING = 23;
8217  var PREV_TRANSITION = 'prev';
8218  var NEXT_TRANSITION = 'next';
8219  var MONTH_SELECTION_TRANSITION = 'month_selection';
8220  var YEAR_SELECTION_TRANSITION = 'year_selection';
8221  
8222  var propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {
8223  
8224    // calendar presentation props
8225    enableOutsideDays: _propTypes2['default'].bool,
8226    numberOfMonths: _propTypes2['default'].number,
8227    orientation: _ScrollableOrientationShape2['default'],
8228    withPortal: _propTypes2['default'].bool,
8229    onOutsideClick: _propTypes2['default'].func,
8230    hidden: _propTypes2['default'].bool,
8231    initialVisibleMonth: _propTypes2['default'].func,
8232    firstDayOfWeek: _DayOfWeekShape2['default'],
8233    renderCalendarInfo: _propTypes2['default'].func,
8234    calendarInfoPosition: _CalendarInfoPositionShape2['default'],
8235    hideKeyboardShortcutsPanel: _propTypes2['default'].bool,
8236    daySize: _airbnbPropTypes.nonNegativeInteger,
8237    isRTL: _propTypes2['default'].bool,
8238    verticalHeight: _airbnbPropTypes.nonNegativeInteger,
8239    noBorder: _propTypes2['default'].bool,
8240    transitionDuration: _airbnbPropTypes.nonNegativeInteger,
8241    verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,
8242    horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
8243  
8244    // navigation props
8245    navPrev: _propTypes2['default'].node,
8246    navNext: _propTypes2['default'].node,
8247    noNavButtons: _propTypes2['default'].bool,
8248    onPrevMonthClick: _propTypes2['default'].func,
8249    onNextMonthClick: _propTypes2['default'].func,
8250    onMonthChange: _propTypes2['default'].func,
8251    onYearChange: _propTypes2['default'].func,
8252    onMultiplyScrollableMonths: _propTypes2['default'].func, // VERTICAL_SCROLLABLE daypickers only
8253  
8254    // month props
8255    renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
8256    renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),
8257  
8258    // day props
8259    modifiers: _propTypes2['default'].objectOf(_propTypes2['default'].objectOf(_ModifiersShape2['default'])),
8260    renderCalendarDay: _propTypes2['default'].func,
8261    renderDayContents: _propTypes2['default'].func,
8262    onDayClick: _propTypes2['default'].func,
8263    onDayMouseEnter: _propTypes2['default'].func,
8264    onDayMouseLeave: _propTypes2['default'].func,
8265  
8266    // accessibility props
8267    isFocused: _propTypes2['default'].bool,
8268    getFirstFocusableDay: _propTypes2['default'].func,
8269    onBlur: _propTypes2['default'].func,
8270    showKeyboardShortcuts: _propTypes2['default'].bool,
8271  
8272    // internationalization
8273    monthFormat: _propTypes2['default'].string,
8274    weekDayFormat: _propTypes2['default'].string,
8275    phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerPhrases)),
8276    dayAriaLabelFormat: _propTypes2['default'].string
8277  }));
8278  
8279  var defaultProps = exports.defaultProps = {
8280    // calendar presentation props
8281    enableOutsideDays: false,
8282    numberOfMonths: 2,
8283    orientation: _constants.HORIZONTAL_ORIENTATION,
8284    withPortal: false,
8285    onOutsideClick: function () {
8286      function onOutsideClick() {}
8287  
8288      return onOutsideClick;
8289    }(),
8290  
8291    hidden: false,
8292    initialVisibleMonth: function () {
8293      function initialVisibleMonth() {
8294        return (0, _moment2['default'])();
8295      }
8296  
8297      return initialVisibleMonth;
8298    }(),
8299    firstDayOfWeek: null,
8300    renderCalendarInfo: null,
8301    calendarInfoPosition: _constants.INFO_POSITION_BOTTOM,
8302    hideKeyboardShortcutsPanel: false,
8303    daySize: _constants.DAY_SIZE,
8304    isRTL: false,
8305    verticalHeight: null,
8306    noBorder: false,
8307    transitionDuration: undefined,
8308    verticalBorderSpacing: undefined,
8309    horizontalMonthPadding: 13,
8310  
8311    // navigation props
8312    navPrev: null,
8313    navNext: null,
8314    noNavButtons: false,
8315    onPrevMonthClick: function () {
8316      function onPrevMonthClick() {}
8317  
8318      return onPrevMonthClick;
8319    }(),
8320    onNextMonthClick: function () {
8321      function onNextMonthClick() {}
8322  
8323      return onNextMonthClick;
8324    }(),
8325    onMonthChange: function () {
8326      function onMonthChange() {}
8327  
8328      return onMonthChange;
8329    }(),
8330    onYearChange: function () {
8331      function onYearChange() {}
8332  
8333      return onYearChange;
8334    }(),
8335    onMultiplyScrollableMonths: function () {
8336      function onMultiplyScrollableMonths() {}
8337  
8338      return onMultiplyScrollableMonths;
8339    }(),
8340  
8341  
8342    // month props
8343    renderMonthText: null,
8344    renderMonthElement: null,
8345  
8346    // day props
8347    modifiers: {},
8348    renderCalendarDay: undefined,
8349    renderDayContents: null,
8350    onDayClick: function () {
8351      function onDayClick() {}
8352  
8353      return onDayClick;
8354    }(),
8355    onDayMouseEnter: function () {
8356      function onDayMouseEnter() {}
8357  
8358      return onDayMouseEnter;
8359    }(),
8360    onDayMouseLeave: function () {
8361      function onDayMouseLeave() {}
8362  
8363      return onDayMouseLeave;
8364    }(),
8365  
8366  
8367    // accessibility props
8368    isFocused: false,
8369    getFirstFocusableDay: null,
8370    onBlur: function () {
8371      function onBlur() {}
8372  
8373      return onBlur;
8374    }(),
8375  
8376    showKeyboardShortcuts: false,
8377  
8378    // internationalization
8379    monthFormat: 'MMMM YYYY',
8380    weekDayFormat: 'dd',
8381    phrases: _defaultPhrases.DayPickerPhrases,
8382    dayAriaLabelFormat: undefined
8383  };
8384  
8385  var DayPicker = function (_React$Component) {
8386    _inherits(DayPicker, _React$Component);
8387  
8388    function DayPicker(props) {
8389      _classCallCheck(this, DayPicker);
8390  
8391      var _this = _possibleConstructorReturn(this, (DayPicker.__proto__ || Object.getPrototypeOf(DayPicker)).call(this, props));
8392  
8393      var currentMonth = props.hidden ? (0, _moment2['default'])() : props.initialVisibleMonth();
8394  
8395      var focusedDate = currentMonth.clone().startOf('month');
8396      if (props.getFirstFocusableDay) {
8397        focusedDate = props.getFirstFocusableDay(currentMonth);
8398      }
8399  
8400      var horizontalMonthPadding = props.horizontalMonthPadding;
8401  
8402  
8403      var translationValue = props.isRTL && _this.isHorizontal() ? -(0, _getCalendarMonthWidth2['default'])(props.daySize, horizontalMonthPadding) : 0;
8404  
8405      _this.hasSetInitialVisibleMonth = !props.hidden;
8406      _this.state = {
8407        currentMonth: currentMonth,
8408        monthTransition: null,
8409        translationValue: translationValue,
8410        scrollableMonthMultiple: 1,
8411        calendarMonthWidth: (0, _getCalendarMonthWidth2['default'])(props.daySize, horizontalMonthPadding),
8412        focusedDate: !props.hidden || props.isFocused ? focusedDate : null,
8413        nextFocusedDate: null,
8414        showKeyboardShortcuts: props.showKeyboardShortcuts,
8415        onKeyboardShortcutsPanelClose: function () {
8416          function onKeyboardShortcutsPanelClose() {}
8417  
8418          return onKeyboardShortcutsPanelClose;
8419        }(),
8420  
8421        isTouchDevice: (0, _isTouchDevice2['default'])(),
8422        withMouseInteractions: true,
8423        calendarInfoWidth: 0,
8424        monthTitleHeight: null,
8425        hasSetHeight: false
8426      };
8427  
8428      _this.setCalendarMonthWeeks(currentMonth);
8429  
8430      _this.calendarMonthGridHeight = 0;
8431      _this.setCalendarInfoWidthTimeout = null;
8432  
8433      _this.onKeyDown = _this.onKeyDown.bind(_this);
8434      _this.throttledKeyDown = (0, _throttle2['default'])(_this.onFinalKeyDown, 200, { trailing: false });
8435      _this.onPrevMonthClick = _this.onPrevMonthClick.bind(_this);
8436      _this.onNextMonthClick = _this.onNextMonthClick.bind(_this);
8437      _this.onMonthChange = _this.onMonthChange.bind(_this);
8438      _this.onYearChange = _this.onYearChange.bind(_this);
8439  
8440      _this.multiplyScrollableMonths = _this.multiplyScrollableMonths.bind(_this);
8441      _this.updateStateAfterMonthTransition = _this.updateStateAfterMonthTransition.bind(_this);
8442  
8443      _this.openKeyboardShortcutsPanel = _this.openKeyboardShortcutsPanel.bind(_this);
8444      _this.closeKeyboardShortcutsPanel = _this.closeKeyboardShortcutsPanel.bind(_this);
8445  
8446      _this.setCalendarInfoRef = _this.setCalendarInfoRef.bind(_this);
8447      _this.setContainerRef = _this.setContainerRef.bind(_this);
8448      _this.setTransitionContainerRef = _this.setTransitionContainerRef.bind(_this);
8449      _this.setMonthTitleHeight = _this.setMonthTitleHeight.bind(_this);
8450      return _this;
8451    }
8452  
8453    _createClass(DayPicker, [{
8454      key: 'componentDidMount',
8455      value: function () {
8456        function componentDidMount() {
8457          var currentMonth = this.state.currentMonth;
8458  
8459          if (this.calendarInfo) {
8460            this.setState({
8461              isTouchDevice: (0, _isTouchDevice2['default'])(),
8462              calendarInfoWidth: (0, _calculateDimension2['default'])(this.calendarInfo, 'width', true, true)
8463            });
8464          } else {
8465            this.setState({ isTouchDevice: (0, _isTouchDevice2['default'])() });
8466          }
8467  
8468          this.setCalendarMonthWeeks(currentMonth);
8469        }
8470  
8471        return componentDidMount;
8472      }()
8473    }, {
8474      key: 'componentWillReceiveProps',
8475      value: function () {
8476        function componentWillReceiveProps(nextProps) {
8477          var hidden = nextProps.hidden,
8478              isFocused = nextProps.isFocused,
8479              showKeyboardShortcuts = nextProps.showKeyboardShortcuts,
8480              onBlur = nextProps.onBlur,
8481              renderMonthText = nextProps.renderMonthText,
8482              horizontalMonthPadding = nextProps.horizontalMonthPadding;
8483          var currentMonth = this.state.currentMonth;
8484  
8485  
8486          if (!hidden) {
8487            if (!this.hasSetInitialVisibleMonth) {
8488              this.hasSetInitialVisibleMonth = true;
8489              this.setState({
8490                currentMonth: nextProps.initialVisibleMonth()
8491              });
8492            }
8493          }
8494  
8495          var _props = this.props,
8496              daySize = _props.daySize,
8497              prevIsFocused = _props.isFocused,
8498              prevRenderMonthText = _props.renderMonthText;
8499  
8500  
8501          if (nextProps.daySize !== daySize) {
8502            this.setState({
8503              calendarMonthWidth: (0, _getCalendarMonthWidth2['default'])(nextProps.daySize, horizontalMonthPadding)
8504            });
8505          }
8506  
8507          if (isFocused !== prevIsFocused) {
8508            if (isFocused) {
8509              var focusedDate = this.getFocusedDay(currentMonth);
8510  
8511              var onKeyboardShortcutsPanelClose = this.state.onKeyboardShortcutsPanelClose;
8512  
8513              if (nextProps.showKeyboardShortcuts) {
8514                // the ? shortcut came from the input and we should return input there once it is close
8515                onKeyboardShortcutsPanelClose = onBlur;
8516              }
8517  
8518              this.setState({
8519                showKeyboardShortcuts: showKeyboardShortcuts,
8520                onKeyboardShortcutsPanelClose: onKeyboardShortcutsPanelClose,
8521                focusedDate: focusedDate,
8522                withMouseInteractions: false
8523              });
8524            } else {
8525              this.setState({ focusedDate: null });
8526            }
8527          }
8528  
8529          if (renderMonthText !== prevRenderMonthText) {
8530            this.setState({
8531              monthTitleHeight: null
8532            });
8533          }
8534        }
8535  
8536        return componentWillReceiveProps;
8537      }()
8538    }, {
8539      key: 'shouldComponentUpdate',
8540      value: function () {
8541        function shouldComponentUpdate(nextProps, nextState) {
8542          return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);
8543        }
8544  
8545        return shouldComponentUpdate;
8546      }()
8547    }, {
8548      key: 'componentWillUpdate',
8549      value: function () {
8550        function componentWillUpdate() {
8551          var _this2 = this;
8552  
8553          var transitionDuration = this.props.transitionDuration;
8554  
8555          // Calculating the dimensions trigger a DOM repaint which
8556          // breaks the CSS transition.
8557          // The setTimeout will wait until the transition ends.
8558  
8559          if (this.calendarInfo) {
8560            this.setCalendarInfoWidthTimeout = setTimeout(function () {
8561              var calendarInfoWidth = _this2.state.calendarInfoWidth;
8562  
8563              var calendarInfoPanelWidth = (0, _calculateDimension2['default'])(_this2.calendarInfo, 'width', true, true);
8564              if (calendarInfoWidth !== calendarInfoPanelWidth) {
8565                _this2.setState({
8566                  calendarInfoWidth: calendarInfoPanelWidth
8567                });
8568              }
8569            }, transitionDuration);
8570          }
8571        }
8572  
8573        return componentWillUpdate;
8574      }()
8575    }, {
8576      key: 'componentDidUpdate',
8577      value: function () {
8578        function componentDidUpdate(prevProps) {
8579          var _props2 = this.props,
8580              orientation = _props2.orientation,
8581              daySize = _props2.daySize,
8582              isFocused = _props2.isFocused,
8583              numberOfMonths = _props2.numberOfMonths;
8584          var _state = this.state,
8585              focusedDate = _state.focusedDate,
8586              monthTitleHeight = _state.monthTitleHeight;
8587  
8588  
8589          if (this.isHorizontal() && (orientation !== prevProps.orientation || daySize !== prevProps.daySize)) {
8590            var visibleCalendarWeeks = this.calendarMonthWeeks.slice(1, numberOfMonths + 1);
8591            var calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);
8592            var newMonthHeight = monthTitleHeight + calendarMonthWeeksHeight + 1;
8593            this.adjustDayPickerHeight(newMonthHeight);
8594          }
8595  
8596          if (!prevProps.isFocused && isFocused && !focusedDate) {
8597            this.container.focus();
8598          }
8599        }
8600  
8601        return componentDidUpdate;
8602      }()
8603    }, {
8604      key: 'componentWillUnmount',
8605      value: function () {
8606        function componentWillUnmount() {
8607          clearTimeout(this.setCalendarInfoWidthTimeout);
8608        }
8609  
8610        return componentWillUnmount;
8611      }()
8612    }, {
8613      key: 'onKeyDown',
8614      value: function () {
8615        function onKeyDown(e) {
8616          e.stopPropagation();
8617          if (!_constants.MODIFIER_KEY_NAMES.has(e.key)) {
8618            this.throttledKeyDown(e);
8619          }
8620        }
8621  
8622        return onKeyDown;
8623      }()
8624    }, {
8625      key: 'onFinalKeyDown',
8626      value: function () {
8627        function onFinalKeyDown(e) {
8628          this.setState({ withMouseInteractions: false });
8629  
8630          var _props3 = this.props,
8631              onBlur = _props3.onBlur,
8632              isRTL = _props3.isRTL;
8633          var _state2 = this.state,
8634              focusedDate = _state2.focusedDate,
8635              showKeyboardShortcuts = _state2.showKeyboardShortcuts;
8636  
8637          if (!focusedDate) return;
8638  
8639          var newFocusedDate = focusedDate.clone();
8640  
8641          var didTransitionMonth = false;
8642  
8643          // focus might be anywhere when the keyboard shortcuts panel is opened so we want to
8644          // return it to wherever it was before when the panel was opened
8645          var activeElement = (0, _getActiveElement2['default'])();
8646          var onKeyboardShortcutsPanelClose = function () {
8647            function onKeyboardShortcutsPanelClose() {
8648              if (activeElement) activeElement.focus();
8649            }
8650  
8651            return onKeyboardShortcutsPanelClose;
8652          }();
8653  
8654          switch (e.key) {
8655            case 'ArrowUp':
8656              e.preventDefault();
8657              newFocusedDate.subtract(1, 'week');
8658              didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);
8659              break;
8660            case 'ArrowLeft':
8661              e.preventDefault();
8662              if (isRTL) {
8663                newFocusedDate.add(1, 'day');
8664              } else {
8665                newFocusedDate.subtract(1, 'day');
8666              }
8667              didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);
8668              break;
8669            case 'Home':
8670              e.preventDefault();
8671              newFocusedDate.startOf('week');
8672              didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);
8673              break;
8674            case 'PageUp':
8675              e.preventDefault();
8676              newFocusedDate.subtract(1, 'month');
8677              didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);
8678              break;
8679  
8680            case 'ArrowDown':
8681              e.preventDefault();
8682              newFocusedDate.add(1, 'week');
8683              didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);
8684              break;
8685            case 'ArrowRight':
8686              e.preventDefault();
8687              if (isRTL) {
8688                newFocusedDate.subtract(1, 'day');
8689              } else {
8690                newFocusedDate.add(1, 'day');
8691              }
8692              didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);
8693              break;
8694            case 'End':
8695              e.preventDefault();
8696              newFocusedDate.endOf('week');
8697              didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);
8698              break;
8699            case 'PageDown':
8700              e.preventDefault();
8701              newFocusedDate.add(1, 'month');
8702              didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);
8703              break;
8704  
8705            case '?':
8706              this.openKeyboardShortcutsPanel(onKeyboardShortcutsPanelClose);
8707              break;
8708  
8709            case 'Escape':
8710              if (showKeyboardShortcuts) {
8711                this.closeKeyboardShortcutsPanel();
8712              } else {
8713                onBlur();
8714              }
8715              break;
8716  
8717            default:
8718              break;
8719          }
8720  
8721          // If there was a month transition, do not update the focused date until the transition has
8722          // completed. Otherwise, attempting to focus on a DOM node may interrupt the CSS animation. If
8723          // didTransitionMonth is true, the focusedDate gets updated in #updateStateAfterMonthTransition
8724          if (!didTransitionMonth) {
8725            this.setState({
8726              focusedDate: newFocusedDate
8727            });
8728          }
8729        }
8730  
8731        return onFinalKeyDown;
8732      }()
8733    }, {