UNPKG

221 kBJavaScriptView Raw
1module.exports =
2/******/ (function(modules) { // webpackBootstrap
3/******/ // The module cache
4/******/ var installedModules = {};
5/******/
6/******/ // The require function
7/******/ function __webpack_require__(moduleId) {
8/******/
9/******/ // Check if module is in cache
10/******/ if(installedModules[moduleId]) {
11/******/ return installedModules[moduleId].exports;
12/******/ }
13/******/ // Create a new module (and put it into the cache)
14/******/ var module = installedModules[moduleId] = {
15/******/ i: moduleId,
16/******/ l: false,
17/******/ exports: {}
18/******/ };
19/******/
20/******/ // Execute the module function
21/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
22/******/
23/******/ // Flag the module as loaded
24/******/ module.l = true;
25/******/
26/******/ // Return the exports of the module
27/******/ return module.exports;
28/******/ }
29/******/
30/******/
31/******/ // expose the modules object (__webpack_modules__)
32/******/ __webpack_require__.m = modules;
33/******/
34/******/ // expose the module cache
35/******/ __webpack_require__.c = installedModules;
36/******/
37/******/ // define getter function for harmony exports
38/******/ __webpack_require__.d = function(exports, name, getter) {
39/******/ if(!__webpack_require__.o(exports, name)) {
40/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
41/******/ }
42/******/ };
43/******/
44/******/ // define __esModule on exports
45/******/ __webpack_require__.r = function(exports) {
46/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
47/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
48/******/ }
49/******/ Object.defineProperty(exports, '__esModule', { value: true });
50/******/ };
51/******/
52/******/ // create a fake namespace object
53/******/ // mode & 1: value is a module id, require it
54/******/ // mode & 2: merge all properties of value into the ns
55/******/ // mode & 4: return value when already ns object
56/******/ // mode & 8|1: behave like require
57/******/ __webpack_require__.t = function(value, mode) {
58/******/ if(mode & 1) value = __webpack_require__(value);
59/******/ if(mode & 8) return value;
60/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
61/******/ var ns = Object.create(null);
62/******/ __webpack_require__.r(ns);
63/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
64/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
65/******/ return ns;
66/******/ };
67/******/
68/******/ // getDefaultExport function for compatibility with non-harmony modules
69/******/ __webpack_require__.n = function(module) {
70/******/ var getter = module && module.__esModule ?
71/******/ function getDefault() { return module['default']; } :
72/******/ function getModuleExports() { return module; };
73/******/ __webpack_require__.d(getter, 'a', getter);
74/******/ return getter;
75/******/ };
76/******/
77/******/ // Object.prototype.hasOwnProperty.call
78/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
79/******/
80/******/ // __webpack_public_path__
81/******/ __webpack_require__.p = "";
82/******/
83/******/
84/******/ // Load entry module and return exports
85/******/ return __webpack_require__(__webpack_require__.s = "c267");
86/******/ })
87/************************************************************************/
88/******/ ({
89
90/***/ "026c":
91/***/ (function(module, exports, __webpack_require__) {
92
93// all enumerable object keys, includes symbols
94var getKeys = __webpack_require__("a828");
95var gOPS = __webpack_require__("2dae");
96var pIE = __webpack_require__("e60e");
97module.exports = function (it) {
98 var result = getKeys(it);
99 var getSymbols = gOPS.f;
100 if (getSymbols) {
101 var symbols = getSymbols(it);
102 var isEnum = pIE.f;
103 var i = 0;
104 var key;
105 while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
106 } return result;
107};
108
109
110/***/ }),
111
112/***/ "038b":
113/***/ (function(module, exports, __webpack_require__) {
114
115module.exports = __webpack_require__("7676");
116
117/***/ }),
118
119/***/ "03bc":
120/***/ (function(module, exports, __webpack_require__) {
121
122// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
123var toIObject = __webpack_require__("c5f8");
124var gOPN = __webpack_require__("d9e5").f;
125var toString = {}.toString;
126
127var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
128 ? Object.getOwnPropertyNames(window) : [];
129
130var getWindowNames = function (it) {
131 try {
132 return gOPN(it);
133 } catch (e) {
134 return windowNames.slice();
135 }
136};
137
138module.exports.f = function getOwnPropertyNames(it) {
139 return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
140};
141
142
143/***/ }),
144
145/***/ "0746":
146/***/ (function(module, exports, __webpack_require__) {
147
148// false -> Array#indexOf
149// true -> Array#includes
150var toIObject = __webpack_require__("672a");
151var toLength = __webpack_require__("64d2");
152var toAbsoluteIndex = __webpack_require__("fc06");
153module.exports = function (IS_INCLUDES) {
154 return function ($this, el, fromIndex) {
155 var O = toIObject($this);
156 var length = toLength(O.length);
157 var index = toAbsoluteIndex(fromIndex, length);
158 var value;
159 // Array#includes uses SameValueZero equality algorithm
160 // eslint-disable-next-line no-self-compare
161 if (IS_INCLUDES && el != el) while (length > index) {
162 value = O[index++];
163 // eslint-disable-next-line no-self-compare
164 if (value != value) return true;
165 // Array#indexOf ignores holes, Array#includes - not
166 } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
167 if (O[index] === el) return IS_INCLUDES || index || 0;
168 } return !IS_INCLUDES && -1;
169 };
170};
171
172
173/***/ }),
174
175/***/ "07fd":
176/***/ (function(module, exports) {
177
178var hasOwnProperty = {}.hasOwnProperty;
179module.exports = function (it, key) {
180 return hasOwnProperty.call(it, key);
181};
182
183
184/***/ }),
185
186/***/ "081c":
187/***/ (function(module, exports, __webpack_require__) {
188
189var anObject = __webpack_require__("3cc5");
190var get = __webpack_require__("dfcb");
191module.exports = __webpack_require__("947c").getIterator = function (it) {
192 var iterFn = get(it);
193 if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');
194 return anObject(iterFn.call(it));
195};
196
197
198/***/ }),
199
200/***/ "0a04":
201/***/ (function(module, exports, __webpack_require__) {
202
203"use strict";
204
205var $export = __webpack_require__("62cf");
206var $forEach = __webpack_require__("f13c")(0);
207var STRICT = __webpack_require__("14f6")([].forEach, true);
208
209$export($export.P + $export.F * !STRICT, 'Array', {
210 // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
211 forEach: function forEach(callbackfn /* , thisArg */) {
212 return $forEach(this, callbackfn, arguments[1]);
213 }
214});
215
216
217/***/ }),
218
219/***/ "0a85":
220/***/ (function(module, exports, __webpack_require__) {
221
222module.exports = __webpack_require__("bc7f");
223
224/***/ }),
225
226/***/ "0aad":
227/***/ (function(module, exports, __webpack_require__) {
228
229"use strict";
230
231
232var isRegExp = __webpack_require__("a8ae");
233var anObject = __webpack_require__("d1f8");
234var speciesConstructor = __webpack_require__("2cc2");
235var advanceStringIndex = __webpack_require__("ce64");
236var toLength = __webpack_require__("64d2");
237var callRegExpExec = __webpack_require__("dd3b");
238var regexpExec = __webpack_require__("2bfe");
239var fails = __webpack_require__("910c");
240var $min = Math.min;
241var $push = [].push;
242var $SPLIT = 'split';
243var LENGTH = 'length';
244var LAST_INDEX = 'lastIndex';
245var MAX_UINT32 = 0xffffffff;
246
247// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
248var SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });
249
250// @@split logic
251__webpack_require__("e002")('split', 2, function (defined, SPLIT, $split, maybeCallNative) {
252 var internalSplit;
253 if (
254 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
255 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
256 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
257 '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
258 '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
259 ''[$SPLIT](/.?/)[LENGTH]
260 ) {
261 // based on es5-shim implementation, need to rework it
262 internalSplit = function (separator, limit) {
263 var string = String(this);
264 if (separator === undefined && limit === 0) return [];
265 // If `separator` is not a regex, use native split
266 if (!isRegExp(separator)) return $split.call(string, separator, limit);
267 var output = [];
268 var flags = (separator.ignoreCase ? 'i' : '') +
269 (separator.multiline ? 'm' : '') +
270 (separator.unicode ? 'u' : '') +
271 (separator.sticky ? 'y' : '');
272 var lastLastIndex = 0;
273 var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;
274 // Make `global` and avoid `lastIndex` issues by working with a copy
275 var separatorCopy = new RegExp(separator.source, flags + 'g');
276 var match, lastIndex, lastLength;
277 while (match = regexpExec.call(separatorCopy, string)) {
278 lastIndex = separatorCopy[LAST_INDEX];
279 if (lastIndex > lastLastIndex) {
280 output.push(string.slice(lastLastIndex, match.index));
281 if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
282 lastLength = match[0][LENGTH];
283 lastLastIndex = lastIndex;
284 if (output[LENGTH] >= splitLimit) break;
285 }
286 if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
287 }
288 if (lastLastIndex === string[LENGTH]) {
289 if (lastLength || !separatorCopy.test('')) output.push('');
290 } else output.push(string.slice(lastLastIndex));
291 return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
292 };
293 // Chakra, V8
294 } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
295 internalSplit = function (separator, limit) {
296 return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);
297 };
298 } else {
299 internalSplit = $split;
300 }
301
302 return [
303 // `String.prototype.split` method
304 // https://tc39.github.io/ecma262/#sec-string.prototype.split
305 function split(separator, limit) {
306 var O = defined(this);
307 var splitter = separator == undefined ? undefined : separator[SPLIT];
308 return splitter !== undefined
309 ? splitter.call(separator, O, limit)
310 : internalSplit.call(String(O), separator, limit);
311 },
312 // `RegExp.prototype[@@split]` method
313 // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
314 //
315 // NOTE: This cannot be properly polyfilled in engines that don't support
316 // the 'y' flag.
317 function (regexp, limit) {
318 var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);
319 if (res.done) return res.value;
320
321 var rx = anObject(regexp);
322 var S = String(this);
323 var C = speciesConstructor(rx, RegExp);
324
325 var unicodeMatching = rx.unicode;
326 var flags = (rx.ignoreCase ? 'i' : '') +
327 (rx.multiline ? 'm' : '') +
328 (rx.unicode ? 'u' : '') +
329 (SUPPORTS_Y ? 'y' : 'g');
330
331 // ^(? + rx + ) is needed, in combination with some S slicing, to
332 // simulate the 'y' flag.
333 var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
334 var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
335 if (lim === 0) return [];
336 if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];
337 var p = 0;
338 var q = 0;
339 var A = [];
340 while (q < S.length) {
341 splitter.lastIndex = SUPPORTS_Y ? q : 0;
342 var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));
343 var e;
344 if (
345 z === null ||
346 (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
347 ) {
348 q = advanceStringIndex(S, q, unicodeMatching);
349 } else {
350 A.push(S.slice(p, q));
351 if (A.length === lim) return A;
352 for (var i = 1; i <= z.length - 1; i++) {
353 A.push(z[i]);
354 if (A.length === lim) return A;
355 }
356 q = p = e;
357 }
358 }
359 A.push(S.slice(p));
360 return A;
361 }
362 ];
363});
364
365
366/***/ }),
367
368/***/ "0acd":
369/***/ (function(module, exports) {
370
371// 7.2.1 RequireObjectCoercible(argument)
372module.exports = function (it) {
373 if (it == undefined) throw TypeError("Can't call method on " + it);
374 return it;
375};
376
377
378/***/ }),
379
380/***/ "1331":
381/***/ (function(module, exports, __webpack_require__) {
382
383var dP = __webpack_require__("3c7a");
384var anObject = __webpack_require__("d1f8");
385var getKeys = __webpack_require__("2369");
386
387module.exports = __webpack_require__("66b6") ? Object.defineProperties : function defineProperties(O, Properties) {
388 anObject(O);
389 var keys = getKeys(Properties);
390 var length = keys.length;
391 var i = 0;
392 var P;
393 while (length > i) dP.f(O, P = keys[i++], Properties[P]);
394 return O;
395};
396
397
398/***/ }),
399
400/***/ "14f6":
401/***/ (function(module, exports, __webpack_require__) {
402
403"use strict";
404
405var fails = __webpack_require__("910c");
406
407module.exports = function (method, arg) {
408 return !!method && fails(function () {
409 // eslint-disable-next-line no-useless-call
410 arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);
411 });
412};
413
414
415/***/ }),
416
417/***/ "157a":
418/***/ (function(module, exports, __webpack_require__) {
419
420var has = __webpack_require__("5b85");
421var toIObject = __webpack_require__("c5f8");
422var arrayIndexOf = __webpack_require__("c5be")(false);
423var IE_PROTO = __webpack_require__("d0bc")('IE_PROTO');
424
425module.exports = function (object, names) {
426 var O = toIObject(object);
427 var i = 0;
428 var result = [];
429 var key;
430 for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
431 // Don't enum bug & hidden keys
432 while (names.length > i) if (has(O, key = names[i++])) {
433 ~arrayIndexOf(result, key) || result.push(key);
434 }
435 return result;
436};
437
438
439/***/ }),
440
441/***/ "166f":
442/***/ (function(module, exports, __webpack_require__) {
443
444// 7.1.1 ToPrimitive(input [, PreferredType])
445var isObject = __webpack_require__("df98");
446// instead of the ES6 spec version, we didn't implement @@toPrimitive case
447// and the second argument - flag - preferred type is a string
448module.exports = function (it, S) {
449 if (!isObject(it)) return it;
450 var fn, val;
451 if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
452 if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
453 if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
454 throw TypeError("Can't convert object to primitive value");
455};
456
457
458/***/ }),
459
460/***/ "16a8":
461/***/ (function(module, exports, __webpack_require__) {
462
463// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
464var anObject = __webpack_require__("3cc5");
465var dPs = __webpack_require__("56d8");
466var enumBugKeys = __webpack_require__("7ffd");
467var IE_PROTO = __webpack_require__("d0bc")('IE_PROTO');
468var Empty = function () { /* empty */ };
469var PROTOTYPE = 'prototype';
470
471// Create object with fake `null` prototype: use iframe Object with cleared prototype
472var createDict = function () {
473 // Thrash, waste and sodomy: IE GC bug
474 var iframe = __webpack_require__("8cb6")('iframe');
475 var i = enumBugKeys.length;
476 var lt = '<';
477 var gt = '>';
478 var iframeDocument;
479 iframe.style.display = 'none';
480 __webpack_require__("6bf9").appendChild(iframe);
481 iframe.src = 'javascript:'; // eslint-disable-line no-script-url
482 // createDict = iframe.contentWindow.Object;
483 // html.removeChild(iframe);
484 iframeDocument = iframe.contentWindow.document;
485 iframeDocument.open();
486 iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
487 iframeDocument.close();
488 createDict = iframeDocument.F;
489 while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
490 return createDict();
491};
492
493module.exports = Object.create || function create(O, Properties) {
494 var result;
495 if (O !== null) {
496 Empty[PROTOTYPE] = anObject(O);
497 result = new Empty();
498 Empty[PROTOTYPE] = null;
499 // add "__proto__" for Object.getPrototypeOf polyfill
500 result[IE_PROTO] = O;
501 } else result = createDict();
502 return Properties === undefined ? result : dPs(result, Properties);
503};
504
505
506/***/ }),
507
508/***/ "1ae2":
509/***/ (function(module, exports, __webpack_require__) {
510
511"use strict";
512
513// ECMAScript 6 symbols shim
514var global = __webpack_require__("adad");
515var has = __webpack_require__("5b85");
516var DESCRIPTORS = __webpack_require__("fa25");
517var $export = __webpack_require__("1c03");
518var redefine = __webpack_require__("c76b");
519var META = __webpack_require__("2590").KEY;
520var $fails = __webpack_require__("3f9f");
521var shared = __webpack_require__("564f");
522var setToStringTag = __webpack_require__("a0f7");
523var uid = __webpack_require__("edac");
524var wks = __webpack_require__("eb5c");
525var wksExt = __webpack_require__("26c6");
526var wksDefine = __webpack_require__("b978");
527var enumKeys = __webpack_require__("026c");
528var isArray = __webpack_require__("29b7");
529var anObject = __webpack_require__("3cc5");
530var isObject = __webpack_require__("bc08");
531var toIObject = __webpack_require__("c5f8");
532var toPrimitive = __webpack_require__("8e7e");
533var createDesc = __webpack_require__("2ae9");
534var _create = __webpack_require__("16a8");
535var gOPNExt = __webpack_require__("03bc");
536var $GOPD = __webpack_require__("e369");
537var $DP = __webpack_require__("4b11");
538var $keys = __webpack_require__("a828");
539var gOPD = $GOPD.f;
540var dP = $DP.f;
541var gOPN = gOPNExt.f;
542var $Symbol = global.Symbol;
543var $JSON = global.JSON;
544var _stringify = $JSON && $JSON.stringify;
545var PROTOTYPE = 'prototype';
546var HIDDEN = wks('_hidden');
547var TO_PRIMITIVE = wks('toPrimitive');
548var isEnum = {}.propertyIsEnumerable;
549var SymbolRegistry = shared('symbol-registry');
550var AllSymbols = shared('symbols');
551var OPSymbols = shared('op-symbols');
552var ObjectProto = Object[PROTOTYPE];
553var USE_NATIVE = typeof $Symbol == 'function';
554var QObject = global.QObject;
555// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
556var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
557
558// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
559var setSymbolDesc = DESCRIPTORS && $fails(function () {
560 return _create(dP({}, 'a', {
561 get: function () { return dP(this, 'a', { value: 7 }).a; }
562 })).a != 7;
563}) ? function (it, key, D) {
564 var protoDesc = gOPD(ObjectProto, key);
565 if (protoDesc) delete ObjectProto[key];
566 dP(it, key, D);
567 if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
568} : dP;
569
570var wrap = function (tag) {
571 var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
572 sym._k = tag;
573 return sym;
574};
575
576var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
577 return typeof it == 'symbol';
578} : function (it) {
579 return it instanceof $Symbol;
580};
581
582var $defineProperty = function defineProperty(it, key, D) {
583 if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
584 anObject(it);
585 key = toPrimitive(key, true);
586 anObject(D);
587 if (has(AllSymbols, key)) {
588 if (!D.enumerable) {
589 if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
590 it[HIDDEN][key] = true;
591 } else {
592 if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
593 D = _create(D, { enumerable: createDesc(0, false) });
594 } return setSymbolDesc(it, key, D);
595 } return dP(it, key, D);
596};
597var $defineProperties = function defineProperties(it, P) {
598 anObject(it);
599 var keys = enumKeys(P = toIObject(P));
600 var i = 0;
601 var l = keys.length;
602 var key;
603 while (l > i) $defineProperty(it, key = keys[i++], P[key]);
604 return it;
605};
606var $create = function create(it, P) {
607 return P === undefined ? _create(it) : $defineProperties(_create(it), P);
608};
609var $propertyIsEnumerable = function propertyIsEnumerable(key) {
610 var E = isEnum.call(this, key = toPrimitive(key, true));
611 if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
612 return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
613};
614var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
615 it = toIObject(it);
616 key = toPrimitive(key, true);
617 if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
618 var D = gOPD(it, key);
619 if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
620 return D;
621};
622var $getOwnPropertyNames = function getOwnPropertyNames(it) {
623 var names = gOPN(toIObject(it));
624 var result = [];
625 var i = 0;
626 var key;
627 while (names.length > i) {
628 if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
629 } return result;
630};
631var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
632 var IS_OP = it === ObjectProto;
633 var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
634 var result = [];
635 var i = 0;
636 var key;
637 while (names.length > i) {
638 if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
639 } return result;
640};
641
642// 19.4.1.1 Symbol([description])
643if (!USE_NATIVE) {
644 $Symbol = function Symbol() {
645 if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
646 var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
647 var $set = function (value) {
648 if (this === ObjectProto) $set.call(OPSymbols, value);
649 if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
650 setSymbolDesc(this, tag, createDesc(1, value));
651 };
652 if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
653 return wrap(tag);
654 };
655 redefine($Symbol[PROTOTYPE], 'toString', function toString() {
656 return this._k;
657 });
658
659 $GOPD.f = $getOwnPropertyDescriptor;
660 $DP.f = $defineProperty;
661 __webpack_require__("d9e5").f = gOPNExt.f = $getOwnPropertyNames;
662 __webpack_require__("e60e").f = $propertyIsEnumerable;
663 __webpack_require__("2dae").f = $getOwnPropertySymbols;
664
665 if (DESCRIPTORS && !__webpack_require__("5cde")) {
666 redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
667 }
668
669 wksExt.f = function (name) {
670 return wrap(wks(name));
671 };
672}
673
674$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });
675
676for (var es6Symbols = (
677 // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
678 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
679).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);
680
681for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);
682
683$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
684 // 19.4.2.1 Symbol.for(key)
685 'for': function (key) {
686 return has(SymbolRegistry, key += '')
687 ? SymbolRegistry[key]
688 : SymbolRegistry[key] = $Symbol(key);
689 },
690 // 19.4.2.5 Symbol.keyFor(sym)
691 keyFor: function keyFor(sym) {
692 if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
693 for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
694 },
695 useSetter: function () { setter = true; },
696 useSimple: function () { setter = false; }
697});
698
699$export($export.S + $export.F * !USE_NATIVE, 'Object', {
700 // 19.1.2.2 Object.create(O [, Properties])
701 create: $create,
702 // 19.1.2.4 Object.defineProperty(O, P, Attributes)
703 defineProperty: $defineProperty,
704 // 19.1.2.3 Object.defineProperties(O, Properties)
705 defineProperties: $defineProperties,
706 // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
707 getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
708 // 19.1.2.7 Object.getOwnPropertyNames(O)
709 getOwnPropertyNames: $getOwnPropertyNames,
710 // 19.1.2.8 Object.getOwnPropertySymbols(O)
711 getOwnPropertySymbols: $getOwnPropertySymbols
712});
713
714// 24.3.2 JSON.stringify(value [, replacer [, space]])
715$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
716 var S = $Symbol();
717 // MS Edge converts symbol values to JSON as {}
718 // WebKit converts symbol values to JSON as null
719 // V8 throws on boxed symbols
720 return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
721})), 'JSON', {
722 stringify: function stringify(it) {
723 var args = [it];
724 var i = 1;
725 var replacer, $replacer;
726 while (arguments.length > i) args.push(arguments[i++]);
727 $replacer = replacer = args[1];
728 if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
729 if (!isArray(replacer)) replacer = function (key, value) {
730 if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
731 if (!isSymbol(value)) return value;
732 };
733 args[1] = replacer;
734 return _stringify.apply($JSON, args);
735 }
736});
737
738// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
739$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__("e0ed")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
740// 19.4.3.5 Symbol.prototype[@@toStringTag]
741setToStringTag($Symbol, 'Symbol');
742// 20.2.1.9 Math[@@toStringTag]
743setToStringTag(Math, 'Math', true);
744// 24.3.3 JSON[@@toStringTag]
745setToStringTag(global.JSON, 'JSON', true);
746
747
748/***/ }),
749
750/***/ "1c03":
751/***/ (function(module, exports, __webpack_require__) {
752
753var global = __webpack_require__("adad");
754var core = __webpack_require__("947c");
755var ctx = __webpack_require__("499c");
756var hide = __webpack_require__("e0ed");
757var has = __webpack_require__("5b85");
758var PROTOTYPE = 'prototype';
759
760var $export = function (type, name, source) {
761 var IS_FORCED = type & $export.F;
762 var IS_GLOBAL = type & $export.G;
763 var IS_STATIC = type & $export.S;
764 var IS_PROTO = type & $export.P;
765 var IS_BIND = type & $export.B;
766 var IS_WRAP = type & $export.W;
767 var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
768 var expProto = exports[PROTOTYPE];
769 var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
770 var key, own, out;
771 if (IS_GLOBAL) source = name;
772 for (key in source) {
773 // contains in native
774 own = !IS_FORCED && target && target[key] !== undefined;
775 if (own && has(exports, key)) continue;
776 // export native or passed
777 out = own ? target[key] : source[key];
778 // prevent global pollution for namespaces
779 exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
780 // bind timers to global for call from export context
781 : IS_BIND && own ? ctx(out, global)
782 // wrap global constructors for prevent change them in library
783 : IS_WRAP && target[key] == out ? (function (C) {
784 var F = function (a, b, c) {
785 if (this instanceof C) {
786 switch (arguments.length) {
787 case 0: return new C();
788 case 1: return new C(a);
789 case 2: return new C(a, b);
790 } return new C(a, b, c);
791 } return C.apply(this, arguments);
792 };
793 F[PROTOTYPE] = C[PROTOTYPE];
794 return F;
795 // make static versions for prototype methods
796 })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
797 // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
798 if (IS_PROTO) {
799 (exports.virtual || (exports.virtual = {}))[key] = out;
800 // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
801 if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
802 }
803 }
804};
805// type bitmap
806$export.F = 1; // forced
807$export.G = 2; // global
808$export.S = 4; // static
809$export.P = 8; // proto
810$export.B = 16; // bind
811$export.W = 32; // wrap
812$export.U = 64; // safe
813$export.R = 128; // real proto method for `library`
814module.exports = $export;
815
816
817/***/ }),
818
819/***/ "1c53":
820/***/ (function(module, exports, __webpack_require__) {
821
822__webpack_require__("d613");
823var global = __webpack_require__("adad");
824var hide = __webpack_require__("e0ed");
825var Iterators = __webpack_require__("de2e");
826var TO_STRING_TAG = __webpack_require__("eb5c")('toStringTag');
827
828var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
829 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
830 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
831 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
832 'TextTrackList,TouchList').split(',');
833
834for (var i = 0; i < DOMIterables.length; i++) {
835 var NAME = DOMIterables[i];
836 var Collection = global[NAME];
837 var proto = Collection && Collection.prototype;
838 if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
839 Iterators[NAME] = Iterators.Array;
840}
841
842
843/***/ }),
844
845/***/ "1e81":
846/***/ (function(module, exports, __webpack_require__) {
847
848__webpack_require__("3389");
849var $Object = __webpack_require__("947c").Object;
850module.exports = function defineProperty(it, key, desc) {
851 return $Object.defineProperty(it, key, desc);
852};
853
854
855/***/ }),
856
857/***/ "1f38":
858/***/ (function(module, exports, __webpack_require__) {
859
860// getting tag from 19.1.3.6 Object.prototype.toString()
861var cof = __webpack_require__("9081");
862var TAG = __webpack_require__("7d30")('toStringTag');
863// ES3 wrong here
864var ARG = cof(function () { return arguments; }()) == 'Arguments';
865
866// fallback for IE11 Script Access Denied error
867var tryGet = function (it, key) {
868 try {
869 return it[key];
870 } catch (e) { /* empty */ }
871};
872
873module.exports = function (it) {
874 var O, T, B;
875 return it === undefined ? 'Undefined' : it === null ? 'Null'
876 // @@toStringTag case
877 : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
878 // builtinTag case
879 : ARG ? cof(O)
880 // ES3 arguments fallback
881 : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
882};
883
884
885/***/ }),
886
887/***/ "21e4":
888/***/ (function(module, exports) {
889
890var core = module.exports = { version: '2.6.4' };
891if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
892
893
894/***/ }),
895
896/***/ "2369":
897/***/ (function(module, exports, __webpack_require__) {
898
899// 19.1.2.14 / 15.2.3.14 Object.keys(O)
900var $keys = __webpack_require__("b691");
901var enumBugKeys = __webpack_require__("7321");
902
903module.exports = Object.keys || function keys(O) {
904 return $keys(O, enumBugKeys);
905};
906
907
908/***/ }),
909
910/***/ "24b2":
911/***/ (function(module, exports, __webpack_require__) {
912
913var shared = __webpack_require__("ad1c")('keys');
914var uid = __webpack_require__("ea59");
915module.exports = function (key) {
916 return shared[key] || (shared[key] = uid(key));
917};
918
919
920/***/ }),
921
922/***/ "2590":
923/***/ (function(module, exports, __webpack_require__) {
924
925var META = __webpack_require__("edac")('meta');
926var isObject = __webpack_require__("bc08");
927var has = __webpack_require__("5b85");
928var setDesc = __webpack_require__("4b11").f;
929var id = 0;
930var isExtensible = Object.isExtensible || function () {
931 return true;
932};
933var FREEZE = !__webpack_require__("3f9f")(function () {
934 return isExtensible(Object.preventExtensions({}));
935});
936var setMeta = function (it) {
937 setDesc(it, META, { value: {
938 i: 'O' + ++id, // object ID
939 w: {} // weak collections IDs
940 } });
941};
942var fastKey = function (it, create) {
943 // return primitive with prefix
944 if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
945 if (!has(it, META)) {
946 // can't set metadata to uncaught frozen object
947 if (!isExtensible(it)) return 'F';
948 // not necessary to add metadata
949 if (!create) return 'E';
950 // add missing metadata
951 setMeta(it);
952 // return object ID
953 } return it[META].i;
954};
955var getWeak = function (it, create) {
956 if (!has(it, META)) {
957 // can't set metadata to uncaught frozen object
958 if (!isExtensible(it)) return true;
959 // not necessary to add metadata
960 if (!create) return false;
961 // add missing metadata
962 setMeta(it);
963 // return hash weak collections IDs
964 } return it[META].w;
965};
966// add metadata on freeze-family methods calling
967var onFreeze = function (it) {
968 if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
969 return it;
970};
971var meta = module.exports = {
972 KEY: META,
973 NEED: false,
974 fastKey: fastKey,
975 getWeak: getWeak,
976 onFreeze: onFreeze
977};
978
979
980/***/ }),
981
982/***/ "2624":
983/***/ (function(module, exports, __webpack_require__) {
984
985module.exports = __webpack_require__("2a8a");
986
987/***/ }),
988
989/***/ "26c6":
990/***/ (function(module, exports, __webpack_require__) {
991
992exports.f = __webpack_require__("eb5c");
993
994
995/***/ }),
996
997/***/ "28a8":
998/***/ (function(module, exports, __webpack_require__) {
999
1000var isObject = __webpack_require__("df98");
1001var isArray = __webpack_require__("2de7");
1002var SPECIES = __webpack_require__("7d30")('species');
1003
1004module.exports = function (original) {
1005 var C;
1006 if (isArray(original)) {
1007 C = original.constructor;
1008 // cross-realm fallback
1009 if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
1010 if (isObject(C)) {
1011 C = C[SPECIES];
1012 if (C === null) C = undefined;
1013 }
1014 } return C === undefined ? Array : C;
1015};
1016
1017
1018/***/ }),
1019
1020/***/ "29b7":
1021/***/ (function(module, exports, __webpack_require__) {
1022
1023// 7.2.2 IsArray(argument)
1024var cof = __webpack_require__("985c");
1025module.exports = Array.isArray || function isArray(arg) {
1026 return cof(arg) == 'Array';
1027};
1028
1029
1030/***/ }),
1031
1032/***/ "2a8a":
1033/***/ (function(module, exports, __webpack_require__) {
1034
1035__webpack_require__("c158");
1036var $Object = __webpack_require__("947c").Object;
1037module.exports = function getOwnPropertyDescriptor(it, key) {
1038 return $Object.getOwnPropertyDescriptor(it, key);
1039};
1040
1041
1042/***/ }),
1043
1044/***/ "2ae9":
1045/***/ (function(module, exports) {
1046
1047module.exports = function (bitmap, value) {
1048 return {
1049 enumerable: !(bitmap & 1),
1050 configurable: !(bitmap & 2),
1051 writable: !(bitmap & 4),
1052 value: value
1053 };
1054};
1055
1056
1057/***/ }),
1058
1059/***/ "2bfe":
1060/***/ (function(module, exports, __webpack_require__) {
1061
1062"use strict";
1063
1064
1065var regexpFlags = __webpack_require__("64bd");
1066
1067var nativeExec = RegExp.prototype.exec;
1068// This always refers to the native implementation, because the
1069// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
1070// which loads this file before patching the method.
1071var nativeReplace = String.prototype.replace;
1072
1073var patchedExec = nativeExec;
1074
1075var LAST_INDEX = 'lastIndex';
1076
1077var UPDATES_LAST_INDEX_WRONG = (function () {
1078 var re1 = /a/,
1079 re2 = /b*/g;
1080 nativeExec.call(re1, 'a');
1081 nativeExec.call(re2, 'a');
1082 return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;
1083})();
1084
1085// nonparticipating capturing group, copied from es5-shim's String#split patch.
1086var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
1087
1088var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;
1089
1090if (PATCH) {
1091 patchedExec = function exec(str) {
1092 var re = this;
1093 var lastIndex, reCopy, match, i;
1094
1095 if (NPCG_INCLUDED) {
1096 reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re));
1097 }
1098 if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];
1099
1100 match = nativeExec.call(re, str);
1101
1102 if (UPDATES_LAST_INDEX_WRONG && match) {
1103 re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;
1104 }
1105 if (NPCG_INCLUDED && match && match.length > 1) {
1106 // Fix browsers whose `exec` methods don't consistently return `undefined`
1107 // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
1108 // eslint-disable-next-line no-loop-func
1109 nativeReplace.call(match[0], reCopy, function () {
1110 for (i = 1; i < arguments.length - 2; i++) {
1111 if (arguments[i] === undefined) match[i] = undefined;
1112 }
1113 });
1114 }
1115
1116 return match;
1117 };
1118}
1119
1120module.exports = patchedExec;
1121
1122
1123/***/ }),
1124
1125/***/ "2cc2":
1126/***/ (function(module, exports, __webpack_require__) {
1127
1128// 7.3.20 SpeciesConstructor(O, defaultConstructor)
1129var anObject = __webpack_require__("d1f8");
1130var aFunction = __webpack_require__("f49a");
1131var SPECIES = __webpack_require__("7d30")('species');
1132module.exports = function (O, D) {
1133 var C = anObject(O).constructor;
1134 var S;
1135 return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
1136};
1137
1138
1139/***/ }),
1140
1141/***/ "2dae":
1142/***/ (function(module, exports) {
1143
1144exports.f = Object.getOwnPropertySymbols;
1145
1146
1147/***/ }),
1148
1149/***/ "2de7":
1150/***/ (function(module, exports, __webpack_require__) {
1151
1152// 7.2.2 IsArray(argument)
1153var cof = __webpack_require__("9081");
1154module.exports = Array.isArray || function isArray(arg) {
1155 return cof(arg) == 'Array';
1156};
1157
1158
1159/***/ }),
1160
1161/***/ "3389":
1162/***/ (function(module, exports, __webpack_require__) {
1163
1164var $export = __webpack_require__("1c03");
1165// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
1166$export($export.S + $export.F * !__webpack_require__("fa25"), 'Object', { defineProperty: __webpack_require__("4b11").f });
1167
1168
1169/***/ }),
1170
1171/***/ "339d":
1172/***/ (function(module, exports, __webpack_require__) {
1173
1174"use strict";
1175
1176var LIBRARY = __webpack_require__("c616");
1177var $export = __webpack_require__("62cf");
1178var redefine = __webpack_require__("ede6");
1179var hide = __webpack_require__("f650");
1180var Iterators = __webpack_require__("ee07");
1181var $iterCreate = __webpack_require__("d0b6");
1182var setToStringTag = __webpack_require__("bc59");
1183var getPrototypeOf = __webpack_require__("6aa4");
1184var ITERATOR = __webpack_require__("7d30")('iterator');
1185var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
1186var FF_ITERATOR = '@@iterator';
1187var KEYS = 'keys';
1188var VALUES = 'values';
1189
1190var returnThis = function () { return this; };
1191
1192module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
1193 $iterCreate(Constructor, NAME, next);
1194 var getMethod = function (kind) {
1195 if (!BUGGY && kind in proto) return proto[kind];
1196 switch (kind) {
1197 case KEYS: return function keys() { return new Constructor(this, kind); };
1198 case VALUES: return function values() { return new Constructor(this, kind); };
1199 } return function entries() { return new Constructor(this, kind); };
1200 };
1201 var TAG = NAME + ' Iterator';
1202 var DEF_VALUES = DEFAULT == VALUES;
1203 var VALUES_BUG = false;
1204 var proto = Base.prototype;
1205 var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
1206 var $default = $native || getMethod(DEFAULT);
1207 var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
1208 var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
1209 var methods, key, IteratorPrototype;
1210 // Fix native
1211 if ($anyNative) {
1212 IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
1213 if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
1214 // Set @@toStringTag to native iterators
1215 setToStringTag(IteratorPrototype, TAG, true);
1216 // fix for some old engines
1217 if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
1218 }
1219 }
1220 // fix Array#{values, @@iterator}.name in V8 / FF
1221 if (DEF_VALUES && $native && $native.name !== VALUES) {
1222 VALUES_BUG = true;
1223 $default = function values() { return $native.call(this); };
1224 }
1225 // Define iterator
1226 if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
1227 hide(proto, ITERATOR, $default);
1228 }
1229 // Plug for library
1230 Iterators[NAME] = $default;
1231 Iterators[TAG] = returnThis;
1232 if (DEFAULT) {
1233 methods = {
1234 values: DEF_VALUES ? $default : getMethod(VALUES),
1235 keys: IS_SET ? $default : getMethod(KEYS),
1236 entries: $entries
1237 };
1238 if (FORCED) for (key in methods) {
1239 if (!(key in proto)) redefine(proto, key, methods[key]);
1240 } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
1241 }
1242 return methods;
1243};
1244
1245
1246/***/ }),
1247
1248/***/ "33ca":
1249/***/ (function(module, exports, __webpack_require__) {
1250
1251// 7.1.15 ToLength
1252var toInteger = __webpack_require__("97d8");
1253var min = Math.min;
1254module.exports = function (it) {
1255 return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
1256};
1257
1258
1259/***/ }),
1260
1261/***/ "3c7a":
1262/***/ (function(module, exports, __webpack_require__) {
1263
1264var anObject = __webpack_require__("d1f8");
1265var IE8_DOM_DEFINE = __webpack_require__("e258");
1266var toPrimitive = __webpack_require__("166f");
1267var dP = Object.defineProperty;
1268
1269exports.f = __webpack_require__("66b6") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
1270 anObject(O);
1271 P = toPrimitive(P, true);
1272 anObject(Attributes);
1273 if (IE8_DOM_DEFINE) try {
1274 return dP(O, P, Attributes);
1275 } catch (e) { /* empty */ }
1276 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
1277 if ('value' in Attributes) O[P] = Attributes.value;
1278 return O;
1279};
1280
1281
1282/***/ }),
1283
1284/***/ "3cc5":
1285/***/ (function(module, exports, __webpack_require__) {
1286
1287var isObject = __webpack_require__("bc08");
1288module.exports = function (it) {
1289 if (!isObject(it)) throw TypeError(it + ' is not an object!');
1290 return it;
1291};
1292
1293
1294/***/ }),
1295
1296/***/ "3e85":
1297/***/ (function(module, exports) {
1298
1299// 7.2.1 RequireObjectCoercible(argument)
1300module.exports = function (it) {
1301 if (it == undefined) throw TypeError("Can't call method on " + it);
1302 return it;
1303};
1304
1305
1306/***/ }),
1307
1308/***/ "3f25":
1309/***/ (function(module, exports, __webpack_require__) {
1310
1311// most Object methods by ES6 should accept primitives
1312var $export = __webpack_require__("62cf");
1313var core = __webpack_require__("21e4");
1314var fails = __webpack_require__("910c");
1315module.exports = function (KEY, exec) {
1316 var fn = (core.Object || {})[KEY] || Object[KEY];
1317 var exp = {};
1318 exp[KEY] = exec(fn);
1319 $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
1320};
1321
1322
1323/***/ }),
1324
1325/***/ "3f9f":
1326/***/ (function(module, exports) {
1327
1328module.exports = function (exec) {
1329 try {
1330 return !!exec();
1331 } catch (e) {
1332 return true;
1333 }
1334};
1335
1336
1337/***/ }),
1338
1339/***/ "4051":
1340/***/ (function(module, exports, __webpack_require__) {
1341
1342// 7.1.13 ToObject(argument)
1343var defined = __webpack_require__("3e85");
1344module.exports = function (it) {
1345 return Object(defined(it));
1346};
1347
1348
1349/***/ }),
1350
1351/***/ "4821":
1352/***/ (function(module, exports, __webpack_require__) {
1353
1354var $iterators = __webpack_require__("8a52");
1355var getKeys = __webpack_require__("2369");
1356var redefine = __webpack_require__("ede6");
1357var global = __webpack_require__("898f");
1358var hide = __webpack_require__("f650");
1359var Iterators = __webpack_require__("ee07");
1360var wks = __webpack_require__("7d30");
1361var ITERATOR = wks('iterator');
1362var TO_STRING_TAG = wks('toStringTag');
1363var ArrayValues = Iterators.Array;
1364
1365var DOMIterables = {
1366 CSSRuleList: true, // TODO: Not spec compliant, should be false.
1367 CSSStyleDeclaration: false,
1368 CSSValueList: false,
1369 ClientRectList: false,
1370 DOMRectList: false,
1371 DOMStringList: false,
1372 DOMTokenList: true,
1373 DataTransferItemList: false,
1374 FileList: false,
1375 HTMLAllCollection: false,
1376 HTMLCollection: false,
1377 HTMLFormElement: false,
1378 HTMLSelectElement: false,
1379 MediaList: true, // TODO: Not spec compliant, should be false.
1380 MimeTypeArray: false,
1381 NamedNodeMap: false,
1382 NodeList: true,
1383 PaintRequestList: false,
1384 Plugin: false,
1385 PluginArray: false,
1386 SVGLengthList: false,
1387 SVGNumberList: false,
1388 SVGPathSegList: false,
1389 SVGPointList: false,
1390 SVGStringList: false,
1391 SVGTransformList: false,
1392 SourceBufferList: false,
1393 StyleSheetList: true, // TODO: Not spec compliant, should be false.
1394 TextTrackCueList: false,
1395 TextTrackList: false,
1396 TouchList: false
1397};
1398
1399for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {
1400 var NAME = collections[i];
1401 var explicit = DOMIterables[NAME];
1402 var Collection = global[NAME];
1403 var proto = Collection && Collection.prototype;
1404 var key;
1405 if (proto) {
1406 if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
1407 if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
1408 Iterators[NAME] = ArrayValues;
1409 if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);
1410 }
1411}
1412
1413
1414/***/ }),
1415
1416/***/ "491a":
1417/***/ (function(module, exports, __webpack_require__) {
1418
1419// 22.1.3.31 Array.prototype[@@unscopables]
1420var UNSCOPABLES = __webpack_require__("7d30")('unscopables');
1421var ArrayProto = Array.prototype;
1422if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__("f650")(ArrayProto, UNSCOPABLES, {});
1423module.exports = function (key) {
1424 ArrayProto[UNSCOPABLES][key] = true;
1425};
1426
1427
1428/***/ }),
1429
1430/***/ "4963":
1431/***/ (function(module, exports, __webpack_require__) {
1432
1433__webpack_require__("8c2a");
1434module.exports = __webpack_require__("947c").Array.isArray;
1435
1436
1437/***/ }),
1438
1439/***/ "499c":
1440/***/ (function(module, exports, __webpack_require__) {
1441
1442// optional / simple context binding
1443var aFunction = __webpack_require__("8d84");
1444module.exports = function (fn, that, length) {
1445 aFunction(fn);
1446 if (that === undefined) return fn;
1447 switch (length) {
1448 case 1: return function (a) {
1449 return fn.call(that, a);
1450 };
1451 case 2: return function (a, b) {
1452 return fn.call(that, a, b);
1453 };
1454 case 3: return function (a, b, c) {
1455 return fn.call(that, a, b, c);
1456 };
1457 }
1458 return function (/* ...args */) {
1459 return fn.apply(that, arguments);
1460 };
1461};
1462
1463
1464/***/ }),
1465
1466/***/ "4b11":
1467/***/ (function(module, exports, __webpack_require__) {
1468
1469var anObject = __webpack_require__("3cc5");
1470var IE8_DOM_DEFINE = __webpack_require__("d210");
1471var toPrimitive = __webpack_require__("8e7e");
1472var dP = Object.defineProperty;
1473
1474exports.f = __webpack_require__("fa25") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
1475 anObject(O);
1476 P = toPrimitive(P, true);
1477 anObject(Attributes);
1478 if (IE8_DOM_DEFINE) try {
1479 return dP(O, P, Attributes);
1480 } catch (e) { /* empty */ }
1481 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
1482 if ('value' in Attributes) O[P] = Attributes.value;
1483 return O;
1484};
1485
1486
1487/***/ }),
1488
1489/***/ "4baa":
1490/***/ (function(module, exports, __webpack_require__) {
1491
1492// fallback for non-array-like ES3 and non-enumerable old V8 strings
1493var cof = __webpack_require__("985c");
1494// eslint-disable-next-line no-prototype-builtins
1495module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
1496 return cof(it) == 'String' ? it.split('') : Object(it);
1497};
1498
1499
1500/***/ }),
1501
1502/***/ "4c0f":
1503/***/ (function(module, exports) {
1504
1505// document.currentScript polyfill by Adam Miller
1506
1507// MIT license
1508
1509(function(document){
1510 var currentScript = "currentScript",
1511 scripts = document.getElementsByTagName('script'); // Live NodeList collection
1512
1513 // If browser needs currentScript polyfill, add get currentScript() to the document object
1514 if (!(currentScript in document)) {
1515 Object.defineProperty(document, currentScript, {
1516 get: function(){
1517
1518 // IE 6-10 supports script readyState
1519 // IE 10+ support stack trace
1520 try { throw new Error(); }
1521 catch (err) {
1522
1523 // Find the second match for the "at" string to get file src url from stack.
1524 // Specifically works with the format of stack traces in IE.
1525 var i, res = ((/.*at [^\(]*\((.*):.+:.+\)$/ig).exec(err.stack) || [false])[1];
1526
1527 // For all scripts on the page, if src matches or if ready state is interactive, return the script tag
1528 for(i in scripts){
1529 if(scripts[i].src == res || scripts[i].readyState == "interactive"){
1530 return scripts[i];
1531 }
1532 }
1533
1534 // If no match, return null
1535 return null;
1536 }
1537 }
1538 });
1539 }
1540})(document);
1541
1542
1543/***/ }),
1544
1545/***/ "5532":
1546/***/ (function(module, exports, __webpack_require__) {
1547
1548// 20.3.3.1 / 15.9.4.4 Date.now()
1549var $export = __webpack_require__("62cf");
1550
1551$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });
1552
1553
1554/***/ }),
1555
1556/***/ "564f":
1557/***/ (function(module, exports, __webpack_require__) {
1558
1559var core = __webpack_require__("947c");
1560var global = __webpack_require__("adad");
1561var SHARED = '__core-js_shared__';
1562var store = global[SHARED] || (global[SHARED] = {});
1563
1564(module.exports = function (key, value) {
1565 return store[key] || (store[key] = value !== undefined ? value : {});
1566})('versions', []).push({
1567 version: core.version,
1568 mode: __webpack_require__("5cde") ? 'pure' : 'global',
1569 copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
1570});
1571
1572
1573/***/ }),
1574
1575/***/ "565f":
1576/***/ (function(module, exports) {
1577
1578
1579
1580/***/ }),
1581
1582/***/ "56d8":
1583/***/ (function(module, exports, __webpack_require__) {
1584
1585var dP = __webpack_require__("4b11");
1586var anObject = __webpack_require__("3cc5");
1587var getKeys = __webpack_require__("a828");
1588
1589module.exports = __webpack_require__("fa25") ? Object.defineProperties : function defineProperties(O, Properties) {
1590 anObject(O);
1591 var keys = getKeys(Properties);
1592 var length = keys.length;
1593 var i = 0;
1594 var P;
1595 while (length > i) dP.f(O, P = keys[i++], Properties[P]);
1596 return O;
1597};
1598
1599
1600/***/ }),
1601
1602/***/ "5a82":
1603/***/ (function(module, exports, __webpack_require__) {
1604
1605"use strict";
1606
1607
1608var anObject = __webpack_require__("d1f8");
1609var toObject = __webpack_require__("4051");
1610var toLength = __webpack_require__("64d2");
1611var toInteger = __webpack_require__("7c04");
1612var advanceStringIndex = __webpack_require__("ce64");
1613var regExpExec = __webpack_require__("dd3b");
1614var max = Math.max;
1615var min = Math.min;
1616var floor = Math.floor;
1617var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g;
1618var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g;
1619
1620var maybeToString = function (it) {
1621 return it === undefined ? it : String(it);
1622};
1623
1624// @@replace logic
1625__webpack_require__("e002")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {
1626 return [
1627 // `String.prototype.replace` method
1628 // https://tc39.github.io/ecma262/#sec-string.prototype.replace
1629 function replace(searchValue, replaceValue) {
1630 var O = defined(this);
1631 var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
1632 return fn !== undefined
1633 ? fn.call(searchValue, O, replaceValue)
1634 : $replace.call(String(O), searchValue, replaceValue);
1635 },
1636 // `RegExp.prototype[@@replace]` method
1637 // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
1638 function (regexp, replaceValue) {
1639 var res = maybeCallNative($replace, regexp, this, replaceValue);
1640 if (res.done) return res.value;
1641
1642 var rx = anObject(regexp);
1643 var S = String(this);
1644 var functionalReplace = typeof replaceValue === 'function';
1645 if (!functionalReplace) replaceValue = String(replaceValue);
1646 var global = rx.global;
1647 if (global) {
1648 var fullUnicode = rx.unicode;
1649 rx.lastIndex = 0;
1650 }
1651 var results = [];
1652 while (true) {
1653 var result = regExpExec(rx, S);
1654 if (result === null) break;
1655 results.push(result);
1656 if (!global) break;
1657 var matchStr = String(result[0]);
1658 if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
1659 }
1660 var accumulatedResult = '';
1661 var nextSourcePosition = 0;
1662 for (var i = 0; i < results.length; i++) {
1663 result = results[i];
1664 var matched = String(result[0]);
1665 var position = max(min(toInteger(result.index), S.length), 0);
1666 var captures = [];
1667 // NOTE: This is equivalent to
1668 // captures = result.slice(1).map(maybeToString)
1669 // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
1670 // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
1671 // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
1672 for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
1673 var namedCaptures = result.groups;
1674 if (functionalReplace) {
1675 var replacerArgs = [matched].concat(captures, position, S);
1676 if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
1677 var replacement = String(replaceValue.apply(undefined, replacerArgs));
1678 } else {
1679 replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
1680 }
1681 if (position >= nextSourcePosition) {
1682 accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
1683 nextSourcePosition = position + matched.length;
1684 }
1685 }
1686 return accumulatedResult + S.slice(nextSourcePosition);
1687 }
1688 ];
1689
1690 // https://tc39.github.io/ecma262/#sec-getsubstitution
1691 function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
1692 var tailPos = position + matched.length;
1693 var m = captures.length;
1694 var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
1695 if (namedCaptures !== undefined) {
1696 namedCaptures = toObject(namedCaptures);
1697 symbols = SUBSTITUTION_SYMBOLS;
1698 }
1699 return $replace.call(replacement, symbols, function (match, ch) {
1700 var capture;
1701 switch (ch.charAt(0)) {
1702 case '$': return '$';
1703 case '&': return matched;
1704 case '`': return str.slice(0, position);
1705 case "'": return str.slice(tailPos);
1706 case '<':
1707 capture = namedCaptures[ch.slice(1, -1)];
1708 break;
1709 default: // \d\d?
1710 var n = +ch;
1711 if (n === 0) return match;
1712 if (n > m) {
1713 var f = floor(n / 10);
1714 if (f === 0) return match;
1715 if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
1716 return match;
1717 }
1718 capture = captures[n - 1];
1719 }
1720 return capture === undefined ? '' : capture;
1721 });
1722 }
1723});
1724
1725
1726/***/ }),
1727
1728/***/ "5b85":
1729/***/ (function(module, exports) {
1730
1731var hasOwnProperty = {}.hasOwnProperty;
1732module.exports = function (it, key) {
1733 return hasOwnProperty.call(it, key);
1734};
1735
1736
1737/***/ }),
1738
1739/***/ "5cde":
1740/***/ (function(module, exports) {
1741
1742module.exports = true;
1743
1744
1745/***/ }),
1746
1747/***/ "6020":
1748/***/ (function(module, exports, __webpack_require__) {
1749
1750// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
1751var $export = __webpack_require__("62cf");
1752
1753$export($export.P, 'Function', { bind: __webpack_require__("da91") });
1754
1755
1756/***/ }),
1757
1758/***/ "62cf":
1759/***/ (function(module, exports, __webpack_require__) {
1760
1761var global = __webpack_require__("898f");
1762var core = __webpack_require__("21e4");
1763var hide = __webpack_require__("f650");
1764var redefine = __webpack_require__("ede6");
1765var ctx = __webpack_require__("dd29");
1766var PROTOTYPE = 'prototype';
1767
1768var $export = function (type, name, source) {
1769 var IS_FORCED = type & $export.F;
1770 var IS_GLOBAL = type & $export.G;
1771 var IS_STATIC = type & $export.S;
1772 var IS_PROTO = type & $export.P;
1773 var IS_BIND = type & $export.B;
1774 var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
1775 var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
1776 var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
1777 var key, own, out, exp;
1778 if (IS_GLOBAL) source = name;
1779 for (key in source) {
1780 // contains in native
1781 own = !IS_FORCED && target && target[key] !== undefined;
1782 // export native or passed
1783 out = (own ? target : source)[key];
1784 // bind timers to global for call from export context
1785 exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
1786 // extend global
1787 if (target) redefine(target, key, out, type & $export.U);
1788 // export
1789 if (exports[key] != out) hide(exports, key, exp);
1790 if (IS_PROTO && expProto[key] != out) expProto[key] = out;
1791 }
1792};
1793global.core = core;
1794// type bitmap
1795$export.F = 1; // forced
1796$export.G = 2; // global
1797$export.S = 4; // static
1798$export.P = 8; // proto
1799$export.B = 16; // bind
1800$export.W = 32; // wrap
1801$export.U = 64; // safe
1802$export.R = 128; // real proto method for `library`
1803module.exports = $export;
1804
1805
1806/***/ }),
1807
1808/***/ "64bd":
1809/***/ (function(module, exports, __webpack_require__) {
1810
1811"use strict";
1812
1813// 21.2.5.3 get RegExp.prototype.flags
1814var anObject = __webpack_require__("d1f8");
1815module.exports = function () {
1816 var that = anObject(this);
1817 var result = '';
1818 if (that.global) result += 'g';
1819 if (that.ignoreCase) result += 'i';
1820 if (that.multiline) result += 'm';
1821 if (that.unicode) result += 'u';
1822 if (that.sticky) result += 'y';
1823 return result;
1824};
1825
1826
1827/***/ }),
1828
1829/***/ "64d2":
1830/***/ (function(module, exports, __webpack_require__) {
1831
1832// 7.1.15 ToLength
1833var toInteger = __webpack_require__("7c04");
1834var min = Math.min;
1835module.exports = function (it) {
1836 return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
1837};
1838
1839
1840/***/ }),
1841
1842/***/ "66b6":
1843/***/ (function(module, exports, __webpack_require__) {
1844
1845// Thank's IE8 for his funny defineProperty
1846module.exports = !__webpack_require__("910c")(function () {
1847 return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
1848});
1849
1850
1851/***/ }),
1852
1853/***/ "672a":
1854/***/ (function(module, exports, __webpack_require__) {
1855
1856// to indexed object, toObject with fallback for non-array-like ES3 strings
1857var IObject = __webpack_require__("6815");
1858var defined = __webpack_require__("3e85");
1859module.exports = function (it) {
1860 return IObject(defined(it));
1861};
1862
1863
1864/***/ }),
1865
1866/***/ "6815":
1867/***/ (function(module, exports, __webpack_require__) {
1868
1869// fallback for non-array-like ES3 and non-enumerable old V8 strings
1870var cof = __webpack_require__("9081");
1871// eslint-disable-next-line no-prototype-builtins
1872module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
1873 return cof(it) == 'String' ? it.split('') : Object(it);
1874};
1875
1876
1877/***/ }),
1878
1879/***/ "6a0d":
1880/***/ (function(module, exports, __webpack_require__) {
1881
1882__webpack_require__("1ae2");
1883module.exports = __webpack_require__("947c").Object.getOwnPropertySymbols;
1884
1885
1886/***/ }),
1887
1888/***/ "6aa4":
1889/***/ (function(module, exports, __webpack_require__) {
1890
1891// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
1892var has = __webpack_require__("07fd");
1893var toObject = __webpack_require__("4051");
1894var IE_PROTO = __webpack_require__("24b2")('IE_PROTO');
1895var ObjectProto = Object.prototype;
1896
1897module.exports = Object.getPrototypeOf || function (O) {
1898 O = toObject(O);
1899 if (has(O, IE_PROTO)) return O[IE_PROTO];
1900 if (typeof O.constructor == 'function' && O instanceof O.constructor) {
1901 return O.constructor.prototype;
1902 } return O instanceof Object ? ObjectProto : null;
1903};
1904
1905
1906/***/ }),
1907
1908/***/ "6bf9":
1909/***/ (function(module, exports, __webpack_require__) {
1910
1911var document = __webpack_require__("adad").document;
1912module.exports = document && document.documentElement;
1913
1914
1915/***/ }),
1916
1917/***/ "7174":
1918/***/ (function(module, exports) {
1919
1920module.exports = function (bitmap, value) {
1921 return {
1922 enumerable: !(bitmap & 1),
1923 configurable: !(bitmap & 2),
1924 writable: !(bitmap & 4),
1925 value: value
1926 };
1927};
1928
1929
1930/***/ }),
1931
1932/***/ "7284":
1933/***/ (function(module, exports, __webpack_require__) {
1934
1935__webpack_require__("1c53");
1936__webpack_require__("e001");
1937module.exports = __webpack_require__("081c");
1938
1939
1940/***/ }),
1941
1942/***/ "7321":
1943/***/ (function(module, exports) {
1944
1945// IE 8- don't enum bug keys
1946module.exports = (
1947 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
1948).split(',');
1949
1950
1951/***/ }),
1952
1953/***/ "7359":
1954/***/ (function(module, exports, __webpack_require__) {
1955
1956__webpack_require__("b978")('asyncIterator');
1957
1958
1959/***/ }),
1960
1961/***/ "7676":
1962/***/ (function(module, exports, __webpack_require__) {
1963
1964__webpack_require__("1ae2");
1965__webpack_require__("565f");
1966__webpack_require__("7359");
1967__webpack_require__("b592");
1968module.exports = __webpack_require__("947c").Symbol;
1969
1970
1971/***/ }),
1972
1973/***/ "7c04":
1974/***/ (function(module, exports) {
1975
1976// 7.1.4 ToInteger
1977var ceil = Math.ceil;
1978var floor = Math.floor;
1979module.exports = function (it) {
1980 return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
1981};
1982
1983
1984/***/ }),
1985
1986/***/ "7c34":
1987/***/ (function(module, exports) {
1988
1989module.exports = function (done, value) {
1990 return { value: value, done: !!done };
1991};
1992
1993
1994/***/ }),
1995
1996/***/ "7d30":
1997/***/ (function(module, exports, __webpack_require__) {
1998
1999var store = __webpack_require__("ad1c")('wks');
2000var uid = __webpack_require__("ea59");
2001var Symbol = __webpack_require__("898f").Symbol;
2002var USE_SYMBOL = typeof Symbol == 'function';
2003
2004var $exports = module.exports = function (name) {
2005 return store[name] || (store[name] =
2006 USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
2007};
2008
2009$exports.store = store;
2010
2011
2012/***/ }),
2013
2014/***/ "7ffd":
2015/***/ (function(module, exports) {
2016
2017// IE 8- don't enum bug keys
2018module.exports = (
2019 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
2020).split(',');
2021
2022
2023/***/ }),
2024
2025/***/ "8273":
2026/***/ (function(module, exports, __webpack_require__) {
2027
2028var toInteger = __webpack_require__("97d8");
2029var defined = __webpack_require__("0acd");
2030// true -> String#at
2031// false -> String#codePointAt
2032module.exports = function (TO_STRING) {
2033 return function (that, pos) {
2034 var s = String(defined(that));
2035 var i = toInteger(pos);
2036 var l = s.length;
2037 var a, b;
2038 if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
2039 a = s.charCodeAt(i);
2040 return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
2041 ? TO_STRING ? s.charAt(i) : a
2042 : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
2043 };
2044};
2045
2046
2047/***/ }),
2048
2049/***/ "8371":
2050/***/ (function(module, exports, __webpack_require__) {
2051
2052// most Object methods by ES6 should accept primitives
2053var $export = __webpack_require__("1c03");
2054var core = __webpack_require__("947c");
2055var fails = __webpack_require__("3f9f");
2056module.exports = function (KEY, exec) {
2057 var fn = (core.Object || {})[KEY] || Object[KEY];
2058 var exp = {};
2059 exp[KEY] = exec(fn);
2060 $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
2061};
2062
2063
2064/***/ }),
2065
2066/***/ "8490":
2067/***/ (function(module, exports, __webpack_require__) {
2068
2069"use strict";
2070
2071var LIBRARY = __webpack_require__("5cde");
2072var $export = __webpack_require__("1c03");
2073var redefine = __webpack_require__("c76b");
2074var hide = __webpack_require__("e0ed");
2075var Iterators = __webpack_require__("de2e");
2076var $iterCreate = __webpack_require__("df7a");
2077var setToStringTag = __webpack_require__("a0f7");
2078var getPrototypeOf = __webpack_require__("e55f");
2079var ITERATOR = __webpack_require__("eb5c")('iterator');
2080var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
2081var FF_ITERATOR = '@@iterator';
2082var KEYS = 'keys';
2083var VALUES = 'values';
2084
2085var returnThis = function () { return this; };
2086
2087module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
2088 $iterCreate(Constructor, NAME, next);
2089 var getMethod = function (kind) {
2090 if (!BUGGY && kind in proto) return proto[kind];
2091 switch (kind) {
2092 case KEYS: return function keys() { return new Constructor(this, kind); };
2093 case VALUES: return function values() { return new Constructor(this, kind); };
2094 } return function entries() { return new Constructor(this, kind); };
2095 };
2096 var TAG = NAME + ' Iterator';
2097 var DEF_VALUES = DEFAULT == VALUES;
2098 var VALUES_BUG = false;
2099 var proto = Base.prototype;
2100 var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
2101 var $default = $native || getMethod(DEFAULT);
2102 var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
2103 var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
2104 var methods, key, IteratorPrototype;
2105 // Fix native
2106 if ($anyNative) {
2107 IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
2108 if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
2109 // Set @@toStringTag to native iterators
2110 setToStringTag(IteratorPrototype, TAG, true);
2111 // fix for some old engines
2112 if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
2113 }
2114 }
2115 // fix Array#{values, @@iterator}.name in V8 / FF
2116 if (DEF_VALUES && $native && $native.name !== VALUES) {
2117 VALUES_BUG = true;
2118 $default = function values() { return $native.call(this); };
2119 }
2120 // Define iterator
2121 if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
2122 hide(proto, ITERATOR, $default);
2123 }
2124 // Plug for library
2125 Iterators[NAME] = $default;
2126 Iterators[TAG] = returnThis;
2127 if (DEFAULT) {
2128 methods = {
2129 values: DEF_VALUES ? $default : getMethod(VALUES),
2130 keys: IS_SET ? $default : getMethod(KEYS),
2131 entries: $entries
2132 };
2133 if (FORCED) for (key in methods) {
2134 if (!(key in proto)) redefine(proto, key, methods[key]);
2135 } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
2136 }
2137 return methods;
2138};
2139
2140
2141/***/ }),
2142
2143/***/ "872b":
2144/***/ (function(module, exports, __webpack_require__) {
2145
2146// 7.1.13 ToObject(argument)
2147var defined = __webpack_require__("0acd");
2148module.exports = function (it) {
2149 return Object(defined(it));
2150};
2151
2152
2153/***/ }),
2154
2155/***/ "893c":
2156/***/ (function(module, exports, __webpack_require__) {
2157
2158module.exports = __webpack_require__("1e81");
2159
2160/***/ }),
2161
2162/***/ "898f":
2163/***/ (function(module, exports) {
2164
2165// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
2166var global = module.exports = typeof window != 'undefined' && window.Math == Math
2167 ? window : typeof self != 'undefined' && self.Math == Math ? self
2168 // eslint-disable-next-line no-new-func
2169 : Function('return this')();
2170if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
2171
2172
2173/***/ }),
2174
2175/***/ "8a52":
2176/***/ (function(module, exports, __webpack_require__) {
2177
2178"use strict";
2179
2180var addToUnscopables = __webpack_require__("491a");
2181var step = __webpack_require__("af65");
2182var Iterators = __webpack_require__("ee07");
2183var toIObject = __webpack_require__("672a");
2184
2185// 22.1.3.4 Array.prototype.entries()
2186// 22.1.3.13 Array.prototype.keys()
2187// 22.1.3.29 Array.prototype.values()
2188// 22.1.3.30 Array.prototype[@@iterator]()
2189module.exports = __webpack_require__("339d")(Array, 'Array', function (iterated, kind) {
2190 this._t = toIObject(iterated); // target
2191 this._i = 0; // next index
2192 this._k = kind; // kind
2193// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
2194}, function () {
2195 var O = this._t;
2196 var kind = this._k;
2197 var index = this._i++;
2198 if (!O || index >= O.length) {
2199 this._t = undefined;
2200 return step(1);
2201 }
2202 if (kind == 'keys') return step(0, index);
2203 if (kind == 'values') return step(0, O[index]);
2204 return step(0, [index, O[index]]);
2205}, 'values');
2206
2207// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
2208Iterators.Arguments = Iterators.Array;
2209
2210addToUnscopables('keys');
2211addToUnscopables('values');
2212addToUnscopables('entries');
2213
2214
2215/***/ }),
2216
2217/***/ "8a60":
2218/***/ (function(module, exports, __webpack_require__) {
2219
2220module.exports = __webpack_require__("ad1c")('native-function-to-string', Function.toString);
2221
2222
2223/***/ }),
2224
2225/***/ "8c2a":
2226/***/ (function(module, exports, __webpack_require__) {
2227
2228// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
2229var $export = __webpack_require__("1c03");
2230
2231$export($export.S, 'Array', { isArray: __webpack_require__("29b7") });
2232
2233
2234/***/ }),
2235
2236/***/ "8cb6":
2237/***/ (function(module, exports, __webpack_require__) {
2238
2239var isObject = __webpack_require__("bc08");
2240var document = __webpack_require__("adad").document;
2241// typeof document.createElement is 'object' in old IE
2242var is = isObject(document) && isObject(document.createElement);
2243module.exports = function (it) {
2244 return is ? document.createElement(it) : {};
2245};
2246
2247
2248/***/ }),
2249
2250/***/ "8d84":
2251/***/ (function(module, exports) {
2252
2253module.exports = function (it) {
2254 if (typeof it != 'function') throw TypeError(it + ' is not a function!');
2255 return it;
2256};
2257
2258
2259/***/ }),
2260
2261/***/ "8e7e":
2262/***/ (function(module, exports, __webpack_require__) {
2263
2264// 7.1.1 ToPrimitive(input [, PreferredType])
2265var isObject = __webpack_require__("bc08");
2266// instead of the ES6 spec version, we didn't implement @@toPrimitive case
2267// and the second argument - flag - preferred type is a string
2268module.exports = function (it, S) {
2269 if (!isObject(it)) return it;
2270 var fn, val;
2271 if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
2272 if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
2273 if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
2274 throw TypeError("Can't convert object to primitive value");
2275};
2276
2277
2278/***/ }),
2279
2280/***/ "9081":
2281/***/ (function(module, exports) {
2282
2283var toString = {}.toString;
2284
2285module.exports = function (it) {
2286 return toString.call(it).slice(8, -1);
2287};
2288
2289
2290/***/ }),
2291
2292/***/ "910c":
2293/***/ (function(module, exports) {
2294
2295module.exports = function (exec) {
2296 try {
2297 return !!exec();
2298 } catch (e) {
2299 return true;
2300 }
2301};
2302
2303
2304/***/ }),
2305
2306/***/ "947c":
2307/***/ (function(module, exports) {
2308
2309var core = module.exports = { version: '2.6.4' };
2310if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
2311
2312
2313/***/ }),
2314
2315/***/ "97d8":
2316/***/ (function(module, exports) {
2317
2318// 7.1.4 ToInteger
2319var ceil = Math.ceil;
2320var floor = Math.floor;
2321module.exports = function (it) {
2322 return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
2323};
2324
2325
2326/***/ }),
2327
2328/***/ "985c":
2329/***/ (function(module, exports) {
2330
2331var toString = {}.toString;
2332
2333module.exports = function (it) {
2334 return toString.call(it).slice(8, -1);
2335};
2336
2337
2338/***/ }),
2339
2340/***/ "9b5e":
2341/***/ (function(module, exports, __webpack_require__) {
2342
2343__webpack_require__("d147");
2344module.exports = __webpack_require__("947c").Object.keys;
2345
2346
2347/***/ }),
2348
2349/***/ "9be5":
2350/***/ (function(module, exports, __webpack_require__) {
2351
2352var toInteger = __webpack_require__("97d8");
2353var max = Math.max;
2354var min = Math.min;
2355module.exports = function (index, length) {
2356 index = toInteger(index);
2357 return index < 0 ? max(index + length, 0) : min(index, length);
2358};
2359
2360
2361/***/ }),
2362
2363/***/ "a0f7":
2364/***/ (function(module, exports, __webpack_require__) {
2365
2366var def = __webpack_require__("4b11").f;
2367var has = __webpack_require__("5b85");
2368var TAG = __webpack_require__("eb5c")('toStringTag');
2369
2370module.exports = function (it, tag, stat) {
2371 if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
2372};
2373
2374
2375/***/ }),
2376
2377/***/ "a634":
2378/***/ (function(module, exports) {
2379
2380// fast apply, http://jsperf.lnkit.com/fast-apply/5
2381module.exports = function (fn, args, that) {
2382 var un = that === undefined;
2383 switch (args.length) {
2384 case 0: return un ? fn()
2385 : fn.call(that);
2386 case 1: return un ? fn(args[0])
2387 : fn.call(that, args[0]);
2388 case 2: return un ? fn(args[0], args[1])
2389 : fn.call(that, args[0], args[1]);
2390 case 3: return un ? fn(args[0], args[1], args[2])
2391 : fn.call(that, args[0], args[1], args[2]);
2392 case 4: return un ? fn(args[0], args[1], args[2], args[3])
2393 : fn.call(that, args[0], args[1], args[2], args[3]);
2394 } return fn.apply(that, args);
2395};
2396
2397
2398/***/ }),
2399
2400/***/ "a828":
2401/***/ (function(module, exports, __webpack_require__) {
2402
2403// 19.1.2.14 / 15.2.3.14 Object.keys(O)
2404var $keys = __webpack_require__("157a");
2405var enumBugKeys = __webpack_require__("7ffd");
2406
2407module.exports = Object.keys || function keys(O) {
2408 return $keys(O, enumBugKeys);
2409};
2410
2411
2412/***/ }),
2413
2414/***/ "a8ae":
2415/***/ (function(module, exports, __webpack_require__) {
2416
2417// 7.2.8 IsRegExp(argument)
2418var isObject = __webpack_require__("df98");
2419var cof = __webpack_require__("9081");
2420var MATCH = __webpack_require__("7d30")('match');
2421module.exports = function (it) {
2422 var isRegExp;
2423 return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
2424};
2425
2426
2427/***/ }),
2428
2429/***/ "a8b1":
2430/***/ (function(module, exports, __webpack_require__) {
2431
2432module.exports = __webpack_require__("6a0d");
2433
2434/***/ }),
2435
2436/***/ "ad1c":
2437/***/ (function(module, exports, __webpack_require__) {
2438
2439var core = __webpack_require__("21e4");
2440var global = __webpack_require__("898f");
2441var SHARED = '__core-js_shared__';
2442var store = global[SHARED] || (global[SHARED] = {});
2443
2444(module.exports = function (key, value) {
2445 return store[key] || (store[key] = value !== undefined ? value : {});
2446})('versions', []).push({
2447 version: core.version,
2448 mode: __webpack_require__("c616") ? 'pure' : 'global',
2449 copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
2450});
2451
2452
2453/***/ }),
2454
2455/***/ "ad89":
2456/***/ (function(module, exports) {
2457
2458var g;
2459
2460// This works in non-strict mode
2461g = (function() {
2462 return this;
2463})();
2464
2465try {
2466 // This works if eval is allowed (see CSP)
2467 g = g || new Function("return this")();
2468} catch (e) {
2469 // This works if the window reference is available
2470 if (typeof window === "object") g = window;
2471}
2472
2473// g can still be undefined, but nothing to do about it...
2474// We return undefined, instead of nothing here, so it's
2475// easier to handle this case. if(!global) { ...}
2476
2477module.exports = g;
2478
2479
2480/***/ }),
2481
2482/***/ "adad":
2483/***/ (function(module, exports) {
2484
2485// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
2486var global = module.exports = typeof window != 'undefined' && window.Math == Math
2487 ? window : typeof self != 'undefined' && self.Math == Math ? self
2488 // eslint-disable-next-line no-new-func
2489 : Function('return this')();
2490if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
2491
2492
2493/***/ }),
2494
2495/***/ "af30":
2496/***/ (function(module, exports, __webpack_require__) {
2497
2498module.exports = __webpack_require__("4963");
2499
2500/***/ }),
2501
2502/***/ "af65":
2503/***/ (function(module, exports) {
2504
2505module.exports = function (done, value) {
2506 return { value: value, done: !!done };
2507};
2508
2509
2510/***/ }),
2511
2512/***/ "afd5":
2513/***/ (function(module, exports, __webpack_require__) {
2514
2515// getting tag from 19.1.3.6 Object.prototype.toString()
2516var cof = __webpack_require__("985c");
2517var TAG = __webpack_require__("eb5c")('toStringTag');
2518// ES3 wrong here
2519var ARG = cof(function () { return arguments; }()) == 'Arguments';
2520
2521// fallback for IE11 Script Access Denied error
2522var tryGet = function (it, key) {
2523 try {
2524 return it[key];
2525 } catch (e) { /* empty */ }
2526};
2527
2528module.exports = function (it) {
2529 var O, T, B;
2530 return it === undefined ? 'Undefined' : it === null ? 'Null'
2531 // @@toStringTag case
2532 : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
2533 // builtinTag case
2534 : ARG ? cof(O)
2535 // ES3 arguments fallback
2536 : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
2537};
2538
2539
2540/***/ }),
2541
2542/***/ "b00a":
2543/***/ (function(module, exports, __webpack_require__) {
2544
2545var toInteger = __webpack_require__("7c04");
2546var defined = __webpack_require__("3e85");
2547// true -> String#at
2548// false -> String#codePointAt
2549module.exports = function (TO_STRING) {
2550 return function (that, pos) {
2551 var s = String(defined(that));
2552 var i = toInteger(pos);
2553 var l = s.length;
2554 var a, b;
2555 if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
2556 a = s.charCodeAt(i);
2557 return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
2558 ? TO_STRING ? s.charAt(i) : a
2559 : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
2560 };
2561};
2562
2563
2564/***/ }),
2565
2566/***/ "b592":
2567/***/ (function(module, exports, __webpack_require__) {
2568
2569__webpack_require__("b978")('observable');
2570
2571
2572/***/ }),
2573
2574/***/ "b691":
2575/***/ (function(module, exports, __webpack_require__) {
2576
2577var has = __webpack_require__("07fd");
2578var toIObject = __webpack_require__("672a");
2579var arrayIndexOf = __webpack_require__("0746")(false);
2580var IE_PROTO = __webpack_require__("24b2")('IE_PROTO');
2581
2582module.exports = function (object, names) {
2583 var O = toIObject(object);
2584 var i = 0;
2585 var result = [];
2586 var key;
2587 for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
2588 // Don't enum bug & hidden keys
2589 while (names.length > i) if (has(O, key = names[i++])) {
2590 ~arrayIndexOf(result, key) || result.push(key);
2591 }
2592 return result;
2593};
2594
2595
2596/***/ }),
2597
2598/***/ "b978":
2599/***/ (function(module, exports, __webpack_require__) {
2600
2601var global = __webpack_require__("adad");
2602var core = __webpack_require__("947c");
2603var LIBRARY = __webpack_require__("5cde");
2604var wksExt = __webpack_require__("26c6");
2605var defineProperty = __webpack_require__("4b11").f;
2606module.exports = function (name) {
2607 var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
2608 if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
2609};
2610
2611
2612/***/ }),
2613
2614/***/ "bc08":
2615/***/ (function(module, exports) {
2616
2617module.exports = function (it) {
2618 return typeof it === 'object' ? it !== null : typeof it === 'function';
2619};
2620
2621
2622/***/ }),
2623
2624/***/ "bc59":
2625/***/ (function(module, exports, __webpack_require__) {
2626
2627var def = __webpack_require__("3c7a").f;
2628var has = __webpack_require__("07fd");
2629var TAG = __webpack_require__("7d30")('toStringTag');
2630
2631module.exports = function (it, tag, stat) {
2632 if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
2633};
2634
2635
2636/***/ }),
2637
2638/***/ "bc7f":
2639/***/ (function(module, exports, __webpack_require__) {
2640
2641__webpack_require__("e001");
2642__webpack_require__("1c53");
2643module.exports = __webpack_require__("26c6").f('iterator');
2644
2645
2646/***/ }),
2647
2648/***/ "c158":
2649/***/ (function(module, exports, __webpack_require__) {
2650
2651// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
2652var toIObject = __webpack_require__("c5f8");
2653var $getOwnPropertyDescriptor = __webpack_require__("e369").f;
2654
2655__webpack_require__("8371")('getOwnPropertyDescriptor', function () {
2656 return function getOwnPropertyDescriptor(it, key) {
2657 return $getOwnPropertyDescriptor(toIObject(it), key);
2658 };
2659});
2660
2661
2662/***/ }),
2663
2664/***/ "c267":
2665/***/ (function(module, __webpack_exports__, __webpack_require__) {
2666
2667"use strict";
2668__webpack_require__.r(__webpack_exports__);
2669
2670// CONCATENATED MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
2671// This file is imported into lib/wc client bundles.
2672
2673if (typeof window !== 'undefined') {
2674 if (true) {
2675 __webpack_require__("4c0f")
2676 }
2677
2678 var setPublicPath_i
2679 if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))) {
2680 __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line
2681 }
2682}
2683
2684// Indicate to webpack that this file can be concatenated
2685/* harmony default export */ var setPublicPath = (null);
2686
2687// EXTERNAL MODULE: ./src/css/index.scss
2688var css = __webpack_require__("e9cc");
2689
2690// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/core-js/modules/es6.regexp.replace.js
2691var es6_regexp_replace = __webpack_require__("5a82");
2692
2693// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/core-js/modules/es6.string.trim.js
2694var es6_string_trim = __webpack_require__("cf55");
2695
2696// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js
2697var iterator = __webpack_require__("0a85");
2698var iterator_default = /*#__PURE__*/__webpack_require__.n(iterator);
2699
2700// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/core-js/symbol.js
2701var symbol = __webpack_require__("038b");
2702var symbol_default = /*#__PURE__*/__webpack_require__.n(symbol);
2703
2704// CONCATENATED MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/helpers/esm/typeof.js
2705
2706
2707
2708function typeof_typeof2(obj) { if (typeof symbol_default.a === "function" && typeof iterator_default.a === "symbol") { typeof_typeof2 = function _typeof2(obj) { return typeof obj; }; } else { typeof_typeof2 = function _typeof2(obj) { return obj && typeof symbol_default.a === "function" && obj.constructor === symbol_default.a && obj !== symbol_default.a.prototype ? "symbol" : typeof obj; }; } return typeof_typeof2(obj); }
2709
2710function typeof_typeof(obj) {
2711 if (typeof symbol_default.a === "function" && typeof_typeof2(iterator_default.a) === "symbol") {
2712 typeof_typeof = function _typeof(obj) {
2713 return typeof_typeof2(obj);
2714 };
2715 } else {
2716 typeof_typeof = function _typeof(obj) {
2717 return obj && typeof symbol_default.a === "function" && obj.constructor === symbol_default.a && obj !== symbol_default.a.prototype ? "symbol" : typeof_typeof2(obj);
2718 };
2719 }
2720
2721 return typeof_typeof(obj);
2722}
2723// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/core-js/modules/es6.array.index-of.js
2724var es6_array_index_of = __webpack_require__("df15");
2725
2726// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/core-js/modules/es6.regexp.split.js
2727var es6_regexp_split = __webpack_require__("0aad");
2728
2729// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/core-js/modules/es6.array.iterator.js
2730var es6_array_iterator = __webpack_require__("8a52");
2731
2732// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/core-js/modules/es6.object.keys.js
2733var es6_object_keys = __webpack_require__("ca85");
2734
2735// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/core-js/modules/web.dom.iterable.js
2736var web_dom_iterable = __webpack_require__("4821");
2737
2738// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/core-js/modules/es6.array.for-each.js
2739var es6_array_for_each = __webpack_require__("0a04");
2740
2741// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/core-js/modules/es6.date.now.js
2742var es6_date_now = __webpack_require__("5532");
2743
2744// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/core-js/array/is-array.js
2745var is_array = __webpack_require__("af30");
2746var is_array_default = /*#__PURE__*/__webpack_require__.n(is_array);
2747
2748// CONCATENATED MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/helpers/esm/arrayWithHoles.js
2749
2750function _arrayWithHoles(arr) {
2751 if (is_array_default()(arr)) return arr;
2752}
2753// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/core-js/get-iterator.js
2754var get_iterator = __webpack_require__("d42b");
2755var get_iterator_default = /*#__PURE__*/__webpack_require__.n(get_iterator);
2756
2757// CONCATENATED MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/helpers/esm/iterableToArrayLimit.js
2758
2759function _iterableToArrayLimit(arr, i) {
2760 var _arr = [];
2761 var _n = true;
2762 var _d = false;
2763 var _e = undefined;
2764
2765 try {
2766 for (var _i = get_iterator_default()(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {
2767 _arr.push(_s.value);
2768
2769 if (i && _arr.length === i) break;
2770 }
2771 } catch (err) {
2772 _d = true;
2773 _e = err;
2774 } finally {
2775 try {
2776 if (!_n && _i["return"] != null) _i["return"]();
2777 } finally {
2778 if (_d) throw _e;
2779 }
2780 }
2781
2782 return _arr;
2783}
2784// CONCATENATED MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/helpers/esm/nonIterableRest.js
2785function _nonIterableRest() {
2786 throw new TypeError("Invalid attempt to destructure non-iterable instance");
2787}
2788// CONCATENATED MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray.js
2789
2790
2791
2792function _slicedToArray(arr, i) {
2793 return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
2794}
2795// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/core-js/modules/es6.array.map.js
2796var es6_array_map = __webpack_require__("d1ec");
2797
2798// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/core-js/modules/es6.function.bind.js
2799var es6_function_bind = __webpack_require__("6020");
2800
2801// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/core-js/modules/es6.array.is-array.js
2802var es6_array_is_array = __webpack_require__("ce3c");
2803
2804// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js
2805var get_own_property_descriptor = __webpack_require__("2624");
2806var get_own_property_descriptor_default = /*#__PURE__*/__webpack_require__.n(get_own_property_descriptor);
2807
2808// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js
2809var get_own_property_symbols = __webpack_require__("a8b1");
2810var get_own_property_symbols_default = /*#__PURE__*/__webpack_require__.n(get_own_property_symbols);
2811
2812// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/core-js/object/keys.js
2813var keys = __webpack_require__("fbac");
2814var keys_default = /*#__PURE__*/__webpack_require__.n(keys);
2815
2816// EXTERNAL MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/core-js/object/define-property.js
2817var define_property = __webpack_require__("893c");
2818var define_property_default = /*#__PURE__*/__webpack_require__.n(define_property);
2819
2820// CONCATENATED MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/helpers/esm/defineProperty.js
2821
2822function _defineProperty(obj, key, value) {
2823 if (key in obj) {
2824 define_property_default()(obj, key, {
2825 value: value,
2826 enumerable: true,
2827 configurable: true,
2828 writable: true
2829 });
2830 } else {
2831 obj[key] = value;
2832 }
2833
2834 return obj;
2835}
2836// CONCATENATED MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/helpers/esm/objectSpread.js
2837
2838
2839
2840
2841function _objectSpread(target) {
2842 for (var i = 1; i < arguments.length; i++) {
2843 var source = arguments[i] != null ? arguments[i] : {};
2844
2845 var ownKeys = keys_default()(source);
2846
2847 if (typeof get_own_property_symbols_default.a === 'function') {
2848 ownKeys = ownKeys.concat(get_own_property_symbols_default()(source).filter(function (sym) {
2849 return get_own_property_descriptor_default()(source, sym).enumerable;
2850 }));
2851 }
2852
2853 ownKeys.forEach(function (key) {
2854 _defineProperty(target, key, source[key]);
2855 });
2856 }
2857
2858 return target;
2859}
2860// CONCATENATED MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck.js
2861function _classCallCheck(instance, Constructor) {
2862 if (!(instance instanceof Constructor)) {
2863 throw new TypeError("Cannot call a class as a function");
2864 }
2865}
2866// CONCATENATED MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@babel/runtime-corejs2/helpers/esm/createClass.js
2867
2868
2869function _defineProperties(target, props) {
2870 for (var i = 0; i < props.length; i++) {
2871 var descriptor = props[i];
2872 descriptor.enumerable = descriptor.enumerable || false;
2873 descriptor.configurable = true;
2874 if ("value" in descriptor) descriptor.writable = true;
2875
2876 define_property_default()(target, descriptor.key, descriptor);
2877 }
2878}
2879
2880function _createClass(Constructor, protoProps, staticProps) {
2881 if (protoProps) _defineProperties(Constructor.prototype, protoProps);
2882 if (staticProps) _defineProperties(Constructor, staticProps);
2883 return Constructor;
2884}
2885// EXTERNAL MODULE: ./node_modules/popper.js/dist/esm/popper.js
2886var popper = __webpack_require__("f0bd");
2887
2888// CONCATENATED MODULE: ./src/directives/tooltip.js
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901var CSS = {
2902 HIDDEN: 'vue-tooltip-hidden',
2903 VISIBLE: 'vue-tooltip-visible'
2904};
2905var BASE_CLASS = "h-tooltip ".concat(CSS.HIDDEN);
2906var PLACEMENT = ['top', 'left', 'right', 'bottom', 'auto'];
2907var SUB_PLACEMENT = ['start', 'end'];
2908var EVENTS = {
2909 ADD: 1,
2910 REMOVE: 2
2911};
2912var DEFAULT_OPTIONS = {
2913 container: false,
2914 delay: 200,
2915 instance: null,
2916 // the popper.js instance
2917 fixIosSafari: false,
2918 eventsEnabled: false,
2919 html: false,
2920 modifiers: {
2921 arrow: {
2922 element: '.tooltip-arrow'
2923 }
2924 },
2925 placement: '',
2926 placementPostfix: null,
2927 // start | end
2928 removeOnDestroy: true,
2929 title: '',
2930 class: '',
2931 // ex: 'tooltip-custom tooltip-other-custom'
2932 triggers: ['hover', 'focus'],
2933 offset: 5
2934};
2935
2936var includes = function includes(stack, needle) {
2937 return stack.indexOf(needle) > -1;
2938};
2939
2940var tooltip_Tooltip =
2941/*#__PURE__*/
2942function () {
2943 function Tooltip(el) {
2944 var _this = this;
2945
2946 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2947
2948 _classCallCheck(this, Tooltip);
2949
2950 // Tooltip._defaults = DEFAULT_OPTIONS;
2951 this._options = _objectSpread({}, Tooltip._defaults, {
2952 onCreate: function onCreate(data) {
2953 _this.content(_this.tooltip.options.title); // this._$tt.update();
2954
2955 },
2956 onUpdate: function onUpdate(data) {
2957 _this.content(_this.tooltip.options.title); // this._$tt.update();
2958
2959 }
2960 }, Tooltip.filterOptions(options));
2961 this._$el = el;
2962 this._$tpl = this._createTooltipElement(this.options);
2963 this._$tt = new popper["a" /* default */](el, this._$tpl, this._options);
2964 this.setupPopper();
2965 }
2966
2967 _createClass(Tooltip, [{
2968 key: "setupPopper",
2969 value: function setupPopper() {
2970 // this._$el.insertAdjacentElement('afterend', this._$tpl);
2971 this.disabled = false;
2972 this._visible = false;
2973 this._clearDelay = null;
2974
2975 this._$tt.disableEventListeners();
2976
2977 this._setEvents();
2978 }
2979 }, {
2980 key: "destroy",
2981 value: function destroy() {
2982 this._cleanEvents();
2983
2984 if (this._$tpl && this._$tpl.parentNode) {
2985 this._$tpl.parentNode.removeChild(this._$tpl);
2986 }
2987 }
2988 }, {
2989 key: "show",
2990 value: function show() {
2991 this.toggle(true);
2992 }
2993 }, {
2994 key: "hide",
2995 value: function hide() {
2996 this.toggle(false);
2997 }
2998 }, {
2999 key: "toggle",
3000 value: function toggle(visible) {
3001 var _this2 = this;
3002
3003 var autoHide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
3004 var delay = this._options.delay;
3005
3006 if (this.disabled === true) {
3007 visible = false;
3008 delay = 0;
3009 }
3010
3011 if (typeof visible !== 'boolean') {
3012 visible = !this._visible;
3013 }
3014
3015 if (visible === true) {
3016 delay = 0;
3017 }
3018
3019 clearTimeout(this._clearDelay);
3020
3021 if (autoHide === true) {
3022 this._clearDelay = setTimeout(function () {
3023 _this2.visible = visible;
3024
3025 if (_this2.visible === true && _this2.disabled !== true) {
3026 // add tooltip node
3027 // this._$el.insertAdjacentElement('afterend', this._$tpl);
3028 document.querySelector('body').appendChild(_this2._$tpl); // Need the timeout to be sure that the element is inserted in the DOM
3029
3030 setTimeout(function () {
3031 // enable eventListeners
3032 _this2._$tt.enableEventListeners(); // only update if the tooltip is visible
3033
3034
3035 _this2._$tt.scheduleUpdate(); // switch CSS
3036
3037
3038 _this2._$tpl.classList.replace(CSS.HIDDEN, CSS.VISIBLE);
3039 }, 60);
3040 } else {
3041 _this2._$tpl.classList.replace(CSS.VISIBLE, CSS.HIDDEN); // remove tooltip node
3042
3043
3044 if (_this2._$tpl && _this2._$tpl.parentNode) {
3045 _this2._$tpl.parentNode.removeChild(_this2._$tpl);
3046 }
3047
3048 _this2._$tt.disableEventListeners();
3049 }
3050 }, delay);
3051 }
3052 }
3053 }, {
3054 key: "_createTooltipElement",
3055 value: function _createTooltipElement(options) {
3056 // wrapper
3057 var $popper = document.createElement('div');
3058 $popper.setAttribute('id', "tooltip-".concat(randomId()));
3059 $popper.setAttribute('class', "".concat(BASE_CLASS, " ").concat(this._options.class)); // make arrow
3060
3061 var $arrow = document.createElement('div');
3062 $arrow.setAttribute('class', 'tooltip-arrow');
3063 $arrow.setAttribute('x-arrow', '');
3064 $popper.appendChild($arrow); // make content container
3065
3066 var $content = document.createElement('div');
3067 $content.setAttribute('class', 'tooltip-content');
3068 $popper.appendChild($content);
3069 return $popper;
3070 }
3071 }, {
3072 key: "_events",
3073 value: function _events() {
3074 var _this3 = this;
3075
3076 var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EVENTS.ADD;
3077 var evtType = type === EVENTS.ADD ? 'addEventListener' : 'removeEventListener';
3078
3079 if (!Array.isArray(this.options.triggers)) {
3080 console.error('trigger should be an array', this.options.triggers); // eslint-disable-line
3081
3082 return;
3083 }
3084
3085 var lis = function lis() {
3086 var _this3$_$el;
3087
3088 return (_this3$_$el = _this3._$el)[evtType].apply(_this3$_$el, arguments);
3089 };
3090
3091 if (includes(this.options.triggers, 'manual')) {
3092 lis('click', this._onToggle.bind(this), false);
3093 } else {
3094 // For the strange iOS/safari behaviour, we remove any 'hover' and replace it by a 'click' event
3095 if (this.options.fixIosSafari && Tooltip.isIosSafari() && includes(this.options.triggers, 'hover')) {
3096 var pos = this.options.triggers.indexOf('hover');
3097 var click = includes(this.options.triggers, 'click');
3098 this._options.triggers[pos] = click !== -1 ? 'click' : null;
3099 }
3100
3101 this.options.triggers.map(function (evt) {
3102 switch (evt) {
3103 case 'click':
3104 lis('click', function (e) {
3105 _this3._onToggle(e);
3106 }, false); // document[evtType]('click', this._onDeactivate.bind(this), false);
3107
3108 break;
3109
3110 case 'hover':
3111 lis('mouseenter', _this3._onActivate.bind(_this3), false);
3112 lis('mouseleave', _this3._onDeactivate.bind(_this3), false);
3113 break;
3114
3115 case 'focus':
3116 lis('focus', _this3._onActivate.bind(_this3), false);
3117 lis('blur', _this3._onDeactivate.bind(_this3), true);
3118 break;
3119 }
3120 });
3121
3122 if (includes(this.options.triggers, 'hover') || includes(this.options.triggers, 'focus')) {
3123 this._$tpl[evtType]('mouseenter', this._onMouseOverTooltip.bind(this), false);
3124
3125 this._$tpl[evtType]('mouseleave', this._onMouseOutTooltip.bind(this), false);
3126 }
3127 }
3128 }
3129 }, {
3130 key: "_setEvents",
3131 value: function _setEvents() {
3132 this._events();
3133 }
3134 }, {
3135 key: "_cleanEvents",
3136 value: function _cleanEvents() {
3137 this._events(EVENTS.REMOVE);
3138 }
3139 }, {
3140 key: "_onActivate",
3141 value: function _onActivate(e) {
3142 this.show();
3143 }
3144 }, {
3145 key: "_onDeactivate",
3146 value: function _onDeactivate(e) {
3147 this.hide();
3148 }
3149 }, {
3150 key: "_onToggle",
3151 value: function _onToggle(e) {
3152 e.stopPropagation();
3153 e.preventDefault();
3154 this.toggle();
3155 }
3156 }, {
3157 key: "_onMouseOverTooltip",
3158 value: function _onMouseOverTooltip(e) {
3159 this.toggle(true, false);
3160 }
3161 }, {
3162 key: "_onMouseOutTooltip",
3163 value: function _onMouseOutTooltip(e) {
3164 this.toggle(false);
3165 }
3166 }, {
3167 key: "content",
3168 value: function content(_content) {
3169 var wrapper = this.tooltip.popper.querySelector('.tooltip-content');
3170
3171 if (typeof _content === 'string') {
3172 this.tooltip.options.title = _content;
3173 wrapper.textContent = _content;
3174 } else if (isElement(_content)) {
3175 if (_content !== wrapper.children[0]) {
3176 wrapper.innerHTML = ''; // this.tooltip.htmlContent = content.cloneNode(true);
3177
3178 this.tooltip.htmlContent = _content;
3179 wrapper.appendChild(this.tooltip.htmlContent);
3180 }
3181 } else {
3182 console.error('unsupported content type', _content); // eslint-disable-line
3183 }
3184 }
3185 }, {
3186 key: "options",
3187 get: function get() {
3188 return _objectSpread({}, this._options);
3189 }
3190 }, {
3191 key: "tooltip",
3192 get: function get() {
3193 return this._$tt;
3194 }
3195 }, {
3196 key: "visible",
3197 get: function get() {
3198 return this._visible;
3199 },
3200 set: function set(val) {
3201 if (typeof val === 'boolean') {
3202 this._visible = val;
3203 }
3204 }
3205 }, {
3206 key: "disabled",
3207 get: function get() {
3208 return this._disabled;
3209 },
3210 set: function set(val) {
3211 if (typeof val === 'boolean') {
3212 this._disabled = val;
3213 }
3214 }
3215 }, {
3216 key: "class",
3217 set: function set(val) {
3218 if (typeof val === 'string') {
3219 var classList = this._$tpl.classList.value.replace(this.options.class, val);
3220
3221 this._options.class = classList;
3222
3223 this._$tpl.setAttribute('class', classList);
3224 }
3225 }
3226 }], [{
3227 key: "filterOptions",
3228 value: function filterOptions(options) {
3229 var opt = _objectSpread({}, options);
3230
3231 opt.modifiers = {};
3232 var head = null;
3233 var tail = null;
3234
3235 if (opt.placement.indexOf('-') > -1) {
3236 var _opt$placement$split = opt.placement.split('-');
3237
3238 var _opt$placement$split2 = _slicedToArray(_opt$placement$split, 2);
3239
3240 head = _opt$placement$split2[0];
3241 tail = _opt$placement$split2[1];
3242 opt.placement = includes(PLACEMENT, head) && includes(SUB_PLACEMENT, tail) ? opt.placement : Tooltip._defaults.placement;
3243 } else {
3244 opt.placement = includes(PLACEMENT, opt.placement) ? opt.placement : Tooltip._defaults.placement;
3245 }
3246
3247 opt.modifiers.offset = {
3248 fn: Tooltip._setOffset
3249 };
3250 return opt;
3251 }
3252 }, {
3253 key: "_setOffset",
3254 value: function _setOffset(data, opts) {
3255 var offset = data.instance.options.offset;
3256
3257 if (window.isNaN(offset) || offset < 0) {
3258 offset = Tooltip._defaults.offset;
3259 }
3260
3261 if (data.placement.indexOf('top') !== -1) {
3262 data.offsets.popper.top -= offset;
3263 } else if (data.placement.indexOf('right') !== -1) {
3264 data.offsets.popper.left += offset;
3265 } else if (data.placement.indexOf('bottom') !== -1) {
3266 data.offsets.popper.top += offset;
3267 } else if (data.placement.indexOf('left') !== -1) {
3268 data.offsets.popper.left -= offset;
3269 }
3270
3271 return data;
3272 }
3273 }, {
3274 key: "isIosSafari",
3275 value: function isIosSafari() {
3276 return includes(navigator.userAgent.toLowerCase(), 'mobile') && includes(navigator.userAgent.toLowerCase(), 'safari') && (navigator.platform.toLowerCase() === 'iphone' || navigator.platform.toLowerCase() === 'ipad');
3277 }
3278 }, {
3279 key: "defaults",
3280 value: function defaults(data) {
3281 // if (data.placement) {
3282 // data.originalPlacement = data.placement;
3283 // }
3284 Tooltip._defaults = _objectSpread({}, Tooltip._defaults, data);
3285 }
3286 }]);
3287
3288 return Tooltip;
3289}();
3290
3291
3292tooltip_Tooltip._defaults = _objectSpread({}, DEFAULT_OPTIONS);
3293
3294function randomId() {
3295 return "".concat(Date.now(), "-").concat(Math.round(Math.random() * 100000000));
3296}
3297/**
3298 * Check if the variable is an html element
3299 * @param {*} value
3300 * @return Boolean
3301 */
3302
3303
3304function isElement(value) {
3305 return value instanceof window.Element;
3306}
3307// CONCATENATED MODULE: ./src/directives/tooltip-directive.js
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318/**
3319 * @author: laurent blanes <laurent.blanes@gmail.com>
3320 * @tutorial: https://hekigan.github.io/vue-directive-tooltip/
3321 */
3322
3323var tooltip_directive_BASE_CLASS = 'vue-tooltip';
3324var POSITIONS = ['auto', 'top', 'bottom', 'left', 'right'];
3325var SUB_POSITIONS = ['start', 'end'];
3326/**
3327 * usage:
3328 *
3329 * // basic usage:
3330 * <div v-tooltip="'my content'">
3331 * or
3332 * <div v-tooltip="{content: 'my content'}">
3333 *
3334 * // change position of tooltip
3335 * // options: auto (default) | bottom | top | left | right
3336 *
3337 * // change sub-position of tooltip
3338 * // options: start | end
3339 *
3340 * <div v-tooltip.top="{content: 'my content'}">
3341 *
3342 * // add custom class
3343 * <div v-tooltip="{class: 'custom-class', content: 'my content'}">
3344 *
3345 * // toggle visibility
3346 * <div v-tooltip="{visible: false, content: 'my content'}">
3347 */
3348
3349/* harmony default export */ var tooltip_directive = ({
3350 name: 'tooltip',
3351 config: {},
3352 install: function install(Vue, installOptions) {
3353 Vue.directive('tooltip', {
3354 bind: function bind(el, binding, vnode) {
3355 if (installOptions) {
3356 tooltip_Tooltip.defaults(installOptions);
3357 }
3358 },
3359 inserted: function inserted(el, binding, vnode, oldVnode) {
3360 if (installOptions) {
3361 tooltip_Tooltip.defaults(installOptions);
3362 }
3363
3364 var options = filterBindings(binding, vnode);
3365 el.tooltip = new tooltip_Tooltip(el, options);
3366
3367 if (binding.modifiers.notrigger && binding.value.visible === true) {
3368 el.tooltip.show();
3369 }
3370
3371 if (binding.value && binding.value.visible === false) {
3372 el.tooltip.disabled = true;
3373 }
3374 },
3375 componentUpdated: function componentUpdated(el, binding, vnode, oldVnode) {
3376 if (hasUpdated(binding.value, binding.oldValue)) {
3377 update(el, binding, vnode, oldVnode);
3378 }
3379 },
3380 unbind: function unbind(el, binding, vnode, oldVnode) {
3381 el.tooltip.destroy();
3382 }
3383 });
3384 }
3385});
3386/**
3387 *
3388 * @param {*} vnode component's properties
3389 * @param {*} oldvnode component's previous properties
3390 * @return boolean
3391 */
3392
3393function hasUpdated(value, oldValue) {
3394 var updated = false;
3395
3396 if (typeof value === 'string' && value !== oldValue) {
3397 updated = true;
3398 } else if (isObject(value)) {
3399 Object.keys(value).forEach(function (prop) {
3400 if (value[prop] !== oldValue[prop]) {
3401 updated = true;
3402 }
3403 });
3404 }
3405
3406 return updated;
3407}
3408/**
3409 * Sanitize data
3410 * @param {*} binding
3411 * @param {*} vnode
3412 * @return {*} filtered data object
3413 */
3414
3415
3416function filterBindings(binding, vnode) {
3417 var delay = !binding.value || isNaN(binding.value.delay) ? tooltip_Tooltip._defaults.delay : binding.value.delay;
3418
3419 if (binding.value.ref) {
3420 if (vnode.context.$refs[binding.value.ref]) {
3421 binding.value.html = vnode.context.$refs[binding.value.ref];
3422 } else {
3423 console.error("[Tooltip] no REF element [".concat(binding.value.ref, "]")); // eslint-disable-line
3424 }
3425 }
3426
3427 return {
3428 class: getClass(binding),
3429 id: binding.value ? binding.value.id : null,
3430 html: binding.value ? binding.value.html : null,
3431 placement: getPlacement(binding),
3432 title: getContent(binding),
3433 triggers: getTriggers(binding),
3434 fixIosSafari: binding.modifiers.ios || false,
3435 offset: binding.value && binding.value.offset ? binding.value.offset : tooltip_Tooltip._defaults.offset,
3436 delay: delay
3437 };
3438}
3439/**
3440 * Get placement from modifiers
3441 * @param {*} binding
3442 */
3443
3444
3445function getPlacement(_ref) {
3446 var modifiers = _ref.modifiers,
3447 value = _ref.value;
3448 var MODS = Object.keys(modifiers);
3449
3450 if (MODS.length === 0 && isObject(value) && typeof value.placement === 'string') {
3451 MODS = value.placement.split('.');
3452 }
3453
3454 var head = 'bottom';
3455 var tail = null;
3456
3457 for (var i = 0; i < MODS.length; i++) {
3458 var pos = MODS[i];
3459
3460 if (POSITIONS.indexOf(pos) > -1) {
3461 head = pos;
3462 }
3463
3464 if (SUB_POSITIONS.indexOf(pos) > -1) {
3465 tail = pos;
3466 }
3467 } // console.log((head && tail) ? `${head}-${tail}` : head);
3468 // return 'auto';
3469
3470
3471 return head && tail ? "".concat(head, "-").concat(tail) : head;
3472}
3473/**
3474 * Get trigger value from modifiers
3475 * @param {*} binding
3476 * @return String
3477 */
3478
3479
3480function getTriggers(_ref2) {
3481 var modifiers = _ref2.modifiers;
3482 var trigger = [];
3483
3484 if (modifiers.notrigger) {
3485 return trigger;
3486 } else if (modifiers.manual) {
3487 trigger.push('manual');
3488 } else {
3489 if (modifiers.click) {
3490 trigger.push('click');
3491 }
3492
3493 if (modifiers.hover) {
3494 trigger.push('hover');
3495 }
3496
3497 if (modifiers.focus) {
3498 trigger.push('focus');
3499 }
3500
3501 if (trigger.length === 0) {
3502 trigger.push('hover', 'focus');
3503 }
3504 }
3505
3506 return trigger;
3507}
3508/**
3509 * Check if the variable is an object
3510 * @param {*} value
3511 * @return Boolean
3512 */
3513
3514
3515function isObject(value) {
3516 return typeof_typeof(value) === 'object';
3517}
3518/**
3519 * Check if the variable is an html element
3520 * @param {*} value
3521 * @return Boolean
3522 */
3523
3524
3525function tooltip_directive_isElement(value) {
3526 return value instanceof window.Element;
3527}
3528/**
3529 * Get the css class
3530 * @param {*} binding
3531 * @return HTMLElement | String
3532 */
3533
3534
3535function getClass(_ref3) {
3536 var value = _ref3.value;
3537
3538 if (value === null) {
3539 return tooltip_directive_BASE_CLASS;
3540 } else if (isObject(value) && typeof value.class === 'string') {
3541 return "".concat(tooltip_directive_BASE_CLASS, " ").concat(value.class);
3542 } else if (tooltip_Tooltip._defaults.class) {
3543 return "".concat(tooltip_directive_BASE_CLASS, " ").concat(tooltip_Tooltip._defaults.class);
3544 } else {
3545 return tooltip_directive_BASE_CLASS;
3546 }
3547}
3548/**
3549 * Get the content
3550 * @param {*} binding
3551 * @return HTMLElement | String
3552 */
3553
3554
3555function getContent(_ref4, vnode) {
3556 var value = _ref4.value;
3557
3558 if (value !== null && isObject(value)) {
3559 if (value.content !== undefined) {
3560 return "".concat(value.content);
3561 } else if (value.id && document.getElementById(value.id)) {
3562 return document.getElementById(value.id);
3563 } else if (value.html && document.getElementById(value.html)) {
3564 return document.getElementById(value.html);
3565 } else if (tooltip_directive_isElement(value.html)) {
3566 return value.html;
3567 } else if (value.ref && vnode) {
3568 return vnode.context.$refs[value.ref] || '';
3569 } else {
3570 return '';
3571 }
3572 } else {
3573 return "".concat(value);
3574 }
3575}
3576/**
3577 * Action on element update
3578 * @param {*} el Vue element
3579 * @param {*} binding
3580 */
3581
3582
3583function update(el, binding, vnode, oldVnode) {
3584 if (typeof binding.value === 'string') {
3585 el.tooltip.content(binding.value);
3586 } else {
3587 if (binding.value && binding.value.class && binding.value.class.trim() !== el.tooltip.options.class.replace(tooltip_directive_BASE_CLASS, '').trim()) {
3588 el.tooltip.class = "".concat(tooltip_directive_BASE_CLASS, " ").concat(binding.value.class.trim());
3589 }
3590
3591 el.tooltip.content(getContent(binding, vnode));
3592
3593 if (!binding.modifiers.notrigger && binding.value && typeof binding.value.visible === 'boolean') {
3594 el.tooltip.disabled = !binding.value.visible;
3595 return;
3596 } else if (binding.modifiers.notrigger) {
3597 el.tooltip.disabled = false;
3598 }
3599
3600 var dir = vnode.data.directives[0];
3601
3602 if (dir.oldValue.visible !== dir.value.visible) {
3603 if (!el.tooltip.disabled) {
3604 el.tooltip.toggle(dir.value.visible);
3605 }
3606 }
3607 }
3608}
3609// CONCATENATED MODULE: ./src/index.js
3610
3611
3612/* harmony default export */ var src = (tooltip_directive);
3613// CONCATENATED MODULE: /Users/l-blanes/.config/yarn/global/node_modules/@vue/cli-service/lib/commands/build/entry-lib.js
3614
3615
3616/* harmony default export */ var entry_lib = __webpack_exports__["default"] = (src);
3617
3618
3619
3620/***/ }),
3621
3622/***/ "c298":
3623/***/ (function(module, exports, __webpack_require__) {
3624
3625// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
3626var anObject = __webpack_require__("d1f8");
3627var dPs = __webpack_require__("1331");
3628var enumBugKeys = __webpack_require__("7321");
3629var IE_PROTO = __webpack_require__("24b2")('IE_PROTO');
3630var Empty = function () { /* empty */ };
3631var PROTOTYPE = 'prototype';
3632
3633// Create object with fake `null` prototype: use iframe Object with cleared prototype
3634var createDict = function () {
3635 // Thrash, waste and sodomy: IE GC bug
3636 var iframe = __webpack_require__("f44d")('iframe');
3637 var i = enumBugKeys.length;
3638 var lt = '<';
3639 var gt = '>';
3640 var iframeDocument;
3641 iframe.style.display = 'none';
3642 __webpack_require__("cf14").appendChild(iframe);
3643 iframe.src = 'javascript:'; // eslint-disable-line no-script-url
3644 // createDict = iframe.contentWindow.Object;
3645 // html.removeChild(iframe);
3646 iframeDocument = iframe.contentWindow.document;
3647 iframeDocument.open();
3648 iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
3649 iframeDocument.close();
3650 createDict = iframeDocument.F;
3651 while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
3652 return createDict();
3653};
3654
3655module.exports = Object.create || function create(O, Properties) {
3656 var result;
3657 if (O !== null) {
3658 Empty[PROTOTYPE] = anObject(O);
3659 result = new Empty();
3660 Empty[PROTOTYPE] = null;
3661 // add "__proto__" for Object.getPrototypeOf polyfill
3662 result[IE_PROTO] = O;
3663 } else result = createDict();
3664 return Properties === undefined ? result : dPs(result, Properties);
3665};
3666
3667
3668/***/ }),
3669
3670/***/ "c49f":
3671/***/ (function(module, exports, __webpack_require__) {
3672
3673"use strict";
3674
3675var regexpExec = __webpack_require__("2bfe");
3676__webpack_require__("62cf")({
3677 target: 'RegExp',
3678 proto: true,
3679 forced: regexpExec !== /./.exec
3680}, {
3681 exec: regexpExec
3682});
3683
3684
3685/***/ }),
3686
3687/***/ "c5be":
3688/***/ (function(module, exports, __webpack_require__) {
3689
3690// false -> Array#indexOf
3691// true -> Array#includes
3692var toIObject = __webpack_require__("c5f8");
3693var toLength = __webpack_require__("33ca");
3694var toAbsoluteIndex = __webpack_require__("9be5");
3695module.exports = function (IS_INCLUDES) {
3696 return function ($this, el, fromIndex) {
3697 var O = toIObject($this);
3698 var length = toLength(O.length);
3699 var index = toAbsoluteIndex(fromIndex, length);
3700 var value;
3701 // Array#includes uses SameValueZero equality algorithm
3702 // eslint-disable-next-line no-self-compare
3703 if (IS_INCLUDES && el != el) while (length > index) {
3704 value = O[index++];
3705 // eslint-disable-next-line no-self-compare
3706 if (value != value) return true;
3707 // Array#indexOf ignores holes, Array#includes - not
3708 } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
3709 if (O[index] === el) return IS_INCLUDES || index || 0;
3710 } return !IS_INCLUDES && -1;
3711 };
3712};
3713
3714
3715/***/ }),
3716
3717/***/ "c5f8":
3718/***/ (function(module, exports, __webpack_require__) {
3719
3720// to indexed object, toObject with fallback for non-array-like ES3 strings
3721var IObject = __webpack_require__("4baa");
3722var defined = __webpack_require__("0acd");
3723module.exports = function (it) {
3724 return IObject(defined(it));
3725};
3726
3727
3728/***/ }),
3729
3730/***/ "c616":
3731/***/ (function(module, exports) {
3732
3733module.exports = false;
3734
3735
3736/***/ }),
3737
3738/***/ "c76b":
3739/***/ (function(module, exports, __webpack_require__) {
3740
3741module.exports = __webpack_require__("e0ed");
3742
3743
3744/***/ }),
3745
3746/***/ "ca85":
3747/***/ (function(module, exports, __webpack_require__) {
3748
3749// 19.1.2.14 Object.keys(O)
3750var toObject = __webpack_require__("4051");
3751var $keys = __webpack_require__("2369");
3752
3753__webpack_require__("3f25")('keys', function () {
3754 return function keys(it) {
3755 return $keys(toObject(it));
3756 };
3757});
3758
3759
3760/***/ }),
3761
3762/***/ "cad2":
3763/***/ (function(module, exports) {
3764
3765module.exports = function () { /* empty */ };
3766
3767
3768/***/ }),
3769
3770/***/ "ce3c":
3771/***/ (function(module, exports, __webpack_require__) {
3772
3773// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
3774var $export = __webpack_require__("62cf");
3775
3776$export($export.S, 'Array', { isArray: __webpack_require__("2de7") });
3777
3778
3779/***/ }),
3780
3781/***/ "ce64":
3782/***/ (function(module, exports, __webpack_require__) {
3783
3784"use strict";
3785
3786var at = __webpack_require__("b00a")(true);
3787
3788 // `AdvanceStringIndex` abstract operation
3789// https://tc39.github.io/ecma262/#sec-advancestringindex
3790module.exports = function (S, index, unicode) {
3791 return index + (unicode ? at(S, index).length : 1);
3792};
3793
3794
3795/***/ }),
3796
3797/***/ "cf14":
3798/***/ (function(module, exports, __webpack_require__) {
3799
3800var document = __webpack_require__("898f").document;
3801module.exports = document && document.documentElement;
3802
3803
3804/***/ }),
3805
3806/***/ "cf55":
3807/***/ (function(module, exports, __webpack_require__) {
3808
3809"use strict";
3810
3811// 21.1.3.25 String.prototype.trim()
3812__webpack_require__("d9df")('trim', function ($trim) {
3813 return function trim() {
3814 return $trim(this, 3);
3815 };
3816});
3817
3818
3819/***/ }),
3820
3821/***/ "d0b6":
3822/***/ (function(module, exports, __webpack_require__) {
3823
3824"use strict";
3825
3826var create = __webpack_require__("c298");
3827var descriptor = __webpack_require__("7174");
3828var setToStringTag = __webpack_require__("bc59");
3829var IteratorPrototype = {};
3830
3831// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
3832__webpack_require__("f650")(IteratorPrototype, __webpack_require__("7d30")('iterator'), function () { return this; });
3833
3834module.exports = function (Constructor, NAME, next) {
3835 Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
3836 setToStringTag(Constructor, NAME + ' Iterator');
3837};
3838
3839
3840/***/ }),
3841
3842/***/ "d0bc":
3843/***/ (function(module, exports, __webpack_require__) {
3844
3845var shared = __webpack_require__("564f")('keys');
3846var uid = __webpack_require__("edac");
3847module.exports = function (key) {
3848 return shared[key] || (shared[key] = uid(key));
3849};
3850
3851
3852/***/ }),
3853
3854/***/ "d147":
3855/***/ (function(module, exports, __webpack_require__) {
3856
3857// 19.1.2.14 Object.keys(O)
3858var toObject = __webpack_require__("872b");
3859var $keys = __webpack_require__("a828");
3860
3861__webpack_require__("8371")('keys', function () {
3862 return function keys(it) {
3863 return $keys(toObject(it));
3864 };
3865});
3866
3867
3868/***/ }),
3869
3870/***/ "d1ec":
3871/***/ (function(module, exports, __webpack_require__) {
3872
3873"use strict";
3874
3875var $export = __webpack_require__("62cf");
3876var $map = __webpack_require__("f13c")(1);
3877
3878$export($export.P + $export.F * !__webpack_require__("14f6")([].map, true), 'Array', {
3879 // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
3880 map: function map(callbackfn /* , thisArg */) {
3881 return $map(this, callbackfn, arguments[1]);
3882 }
3883});
3884
3885
3886/***/ }),
3887
3888/***/ "d1f8":
3889/***/ (function(module, exports, __webpack_require__) {
3890
3891var isObject = __webpack_require__("df98");
3892module.exports = function (it) {
3893 if (!isObject(it)) throw TypeError(it + ' is not an object!');
3894 return it;
3895};
3896
3897
3898/***/ }),
3899
3900/***/ "d210":
3901/***/ (function(module, exports, __webpack_require__) {
3902
3903module.exports = !__webpack_require__("fa25") && !__webpack_require__("3f9f")(function () {
3904 return Object.defineProperty(__webpack_require__("8cb6")('div'), 'a', { get: function () { return 7; } }).a != 7;
3905});
3906
3907
3908/***/ }),
3909
3910/***/ "d42b":
3911/***/ (function(module, exports, __webpack_require__) {
3912
3913module.exports = __webpack_require__("7284");
3914
3915/***/ }),
3916
3917/***/ "d613":
3918/***/ (function(module, exports, __webpack_require__) {
3919
3920"use strict";
3921
3922var addToUnscopables = __webpack_require__("cad2");
3923var step = __webpack_require__("7c34");
3924var Iterators = __webpack_require__("de2e");
3925var toIObject = __webpack_require__("c5f8");
3926
3927// 22.1.3.4 Array.prototype.entries()
3928// 22.1.3.13 Array.prototype.keys()
3929// 22.1.3.29 Array.prototype.values()
3930// 22.1.3.30 Array.prototype[@@iterator]()
3931module.exports = __webpack_require__("8490")(Array, 'Array', function (iterated, kind) {
3932 this._t = toIObject(iterated); // target
3933 this._i = 0; // next index
3934 this._k = kind; // kind
3935// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
3936}, function () {
3937 var O = this._t;
3938 var kind = this._k;
3939 var index = this._i++;
3940 if (!O || index >= O.length) {
3941 this._t = undefined;
3942 return step(1);
3943 }
3944 if (kind == 'keys') return step(0, index);
3945 if (kind == 'values') return step(0, O[index]);
3946 return step(0, [index, O[index]]);
3947}, 'values');
3948
3949// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
3950Iterators.Arguments = Iterators.Array;
3951
3952addToUnscopables('keys');
3953addToUnscopables('values');
3954addToUnscopables('entries');
3955
3956
3957/***/ }),
3958
3959/***/ "d9df":
3960/***/ (function(module, exports, __webpack_require__) {
3961
3962var $export = __webpack_require__("62cf");
3963var defined = __webpack_require__("3e85");
3964var fails = __webpack_require__("910c");
3965var spaces = __webpack_require__("dd46");
3966var space = '[' + spaces + ']';
3967var non = '\u200b\u0085';
3968var ltrim = RegExp('^' + space + space + '*');
3969var rtrim = RegExp(space + space + '*$');
3970
3971var exporter = function (KEY, exec, ALIAS) {
3972 var exp = {};
3973 var FORCE = fails(function () {
3974 return !!spaces[KEY]() || non[KEY]() != non;
3975 });
3976 var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
3977 if (ALIAS) exp[ALIAS] = fn;
3978 $export($export.P + $export.F * FORCE, 'String', exp);
3979};
3980
3981// 1 -> String#trimLeft
3982// 2 -> String#trimRight
3983// 3 -> String#trim
3984var trim = exporter.trim = function (string, TYPE) {
3985 string = String(defined(string));
3986 if (TYPE & 1) string = string.replace(ltrim, '');
3987 if (TYPE & 2) string = string.replace(rtrim, '');
3988 return string;
3989};
3990
3991module.exports = exporter;
3992
3993
3994/***/ }),
3995
3996/***/ "d9e5":
3997/***/ (function(module, exports, __webpack_require__) {
3998
3999// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
4000var $keys = __webpack_require__("157a");
4001var hiddenKeys = __webpack_require__("7ffd").concat('length', 'prototype');
4002
4003exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
4004 return $keys(O, hiddenKeys);
4005};
4006
4007
4008/***/ }),
4009
4010/***/ "da91":
4011/***/ (function(module, exports, __webpack_require__) {
4012
4013"use strict";
4014
4015var aFunction = __webpack_require__("f49a");
4016var isObject = __webpack_require__("df98");
4017var invoke = __webpack_require__("a634");
4018var arraySlice = [].slice;
4019var factories = {};
4020
4021var construct = function (F, len, args) {
4022 if (!(len in factories)) {
4023 for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';
4024 // eslint-disable-next-line no-new-func
4025 factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
4026 } return factories[len](F, args);
4027};
4028
4029module.exports = Function.bind || function bind(that /* , ...args */) {
4030 var fn = aFunction(this);
4031 var partArgs = arraySlice.call(arguments, 1);
4032 var bound = function (/* args... */) {
4033 var args = partArgs.concat(arraySlice.call(arguments));
4034 return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
4035 };
4036 if (isObject(fn.prototype)) bound.prototype = fn.prototype;
4037 return bound;
4038};
4039
4040
4041/***/ }),
4042
4043/***/ "dd29":
4044/***/ (function(module, exports, __webpack_require__) {
4045
4046// optional / simple context binding
4047var aFunction = __webpack_require__("f49a");
4048module.exports = function (fn, that, length) {
4049 aFunction(fn);
4050 if (that === undefined) return fn;
4051 switch (length) {
4052 case 1: return function (a) {
4053 return fn.call(that, a);
4054 };
4055 case 2: return function (a, b) {
4056 return fn.call(that, a, b);
4057 };
4058 case 3: return function (a, b, c) {
4059 return fn.call(that, a, b, c);
4060 };
4061 }
4062 return function (/* ...args */) {
4063 return fn.apply(that, arguments);
4064 };
4065};
4066
4067
4068/***/ }),
4069
4070/***/ "dd3b":
4071/***/ (function(module, exports, __webpack_require__) {
4072
4073"use strict";
4074
4075
4076var classof = __webpack_require__("1f38");
4077var builtinExec = RegExp.prototype.exec;
4078
4079 // `RegExpExec` abstract operation
4080// https://tc39.github.io/ecma262/#sec-regexpexec
4081module.exports = function (R, S) {
4082 var exec = R.exec;
4083 if (typeof exec === 'function') {
4084 var result = exec.call(R, S);
4085 if (typeof result !== 'object') {
4086 throw new TypeError('RegExp exec method returned something other than an Object or null');
4087 }
4088 return result;
4089 }
4090 if (classof(R) !== 'RegExp') {
4091 throw new TypeError('RegExp#exec called on incompatible receiver');
4092 }
4093 return builtinExec.call(R, S);
4094};
4095
4096
4097/***/ }),
4098
4099/***/ "dd46":
4100/***/ (function(module, exports) {
4101
4102module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
4103 '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
4104
4105
4106/***/ }),
4107
4108/***/ "de2e":
4109/***/ (function(module, exports) {
4110
4111module.exports = {};
4112
4113
4114/***/ }),
4115
4116/***/ "df15":
4117/***/ (function(module, exports, __webpack_require__) {
4118
4119"use strict";
4120
4121var $export = __webpack_require__("62cf");
4122var $indexOf = __webpack_require__("0746")(false);
4123var $native = [].indexOf;
4124var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
4125
4126$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__("14f6")($native)), 'Array', {
4127 // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
4128 indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
4129 return NEGATIVE_ZERO
4130 // convert -0 to +0
4131 ? $native.apply(this, arguments) || 0
4132 : $indexOf(this, searchElement, arguments[1]);
4133 }
4134});
4135
4136
4137/***/ }),
4138
4139/***/ "df7a":
4140/***/ (function(module, exports, __webpack_require__) {
4141
4142"use strict";
4143
4144var create = __webpack_require__("16a8");
4145var descriptor = __webpack_require__("2ae9");
4146var setToStringTag = __webpack_require__("a0f7");
4147var IteratorPrototype = {};
4148
4149// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
4150__webpack_require__("e0ed")(IteratorPrototype, __webpack_require__("eb5c")('iterator'), function () { return this; });
4151
4152module.exports = function (Constructor, NAME, next) {
4153 Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
4154 setToStringTag(Constructor, NAME + ' Iterator');
4155};
4156
4157
4158/***/ }),
4159
4160/***/ "df98":
4161/***/ (function(module, exports) {
4162
4163module.exports = function (it) {
4164 return typeof it === 'object' ? it !== null : typeof it === 'function';
4165};
4166
4167
4168/***/ }),
4169
4170/***/ "dfcb":
4171/***/ (function(module, exports, __webpack_require__) {
4172
4173var classof = __webpack_require__("afd5");
4174var ITERATOR = __webpack_require__("eb5c")('iterator');
4175var Iterators = __webpack_require__("de2e");
4176module.exports = __webpack_require__("947c").getIteratorMethod = function (it) {
4177 if (it != undefined) return it[ITERATOR]
4178 || it['@@iterator']
4179 || Iterators[classof(it)];
4180};
4181
4182
4183/***/ }),
4184
4185/***/ "e001":
4186/***/ (function(module, exports, __webpack_require__) {
4187
4188"use strict";
4189
4190var $at = __webpack_require__("8273")(true);
4191
4192// 21.1.3.27 String.prototype[@@iterator]()
4193__webpack_require__("8490")(String, 'String', function (iterated) {
4194 this._t = String(iterated); // target
4195 this._i = 0; // next index
4196// 21.1.5.2.1 %StringIteratorPrototype%.next()
4197}, function () {
4198 var O = this._t;
4199 var index = this._i;
4200 var point;
4201 if (index >= O.length) return { value: undefined, done: true };
4202 point = $at(O, index);
4203 this._i += point.length;
4204 return { value: point, done: false };
4205});
4206
4207
4208/***/ }),
4209
4210/***/ "e002":
4211/***/ (function(module, exports, __webpack_require__) {
4212
4213"use strict";
4214
4215__webpack_require__("c49f");
4216var redefine = __webpack_require__("ede6");
4217var hide = __webpack_require__("f650");
4218var fails = __webpack_require__("910c");
4219var defined = __webpack_require__("3e85");
4220var wks = __webpack_require__("7d30");
4221var regexpExec = __webpack_require__("2bfe");
4222
4223var SPECIES = wks('species');
4224
4225var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
4226 // #replace needs built-in support for named groups.
4227 // #match works fine because it just return the exec results, even if it has
4228 // a "grops" property.
4229 var re = /./;
4230 re.exec = function () {
4231 var result = [];
4232 result.groups = { a: '7' };
4233 return result;
4234 };
4235 return ''.replace(re, '$<a>') !== '7';
4236});
4237
4238var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {
4239 // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
4240 var re = /(?:)/;
4241 var originalExec = re.exec;
4242 re.exec = function () { return originalExec.apply(this, arguments); };
4243 var result = 'ab'.split(re);
4244 return result.length === 2 && result[0] === 'a' && result[1] === 'b';
4245})();
4246
4247module.exports = function (KEY, length, exec) {
4248 var SYMBOL = wks(KEY);
4249
4250 var DELEGATES_TO_SYMBOL = !fails(function () {
4251 // String methods call symbol-named RegEp methods
4252 var O = {};
4253 O[SYMBOL] = function () { return 7; };
4254 return ''[KEY](O) != 7;
4255 });
4256
4257 var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {
4258 // Symbol-named RegExp methods call .exec
4259 var execCalled = false;
4260 var re = /a/;
4261 re.exec = function () { execCalled = true; return null; };
4262 if (KEY === 'split') {
4263 // RegExp[@@split] doesn't call the regex's exec method, but first creates
4264 // a new one. We need to return the patched regex when creating the new one.
4265 re.constructor = {};
4266 re.constructor[SPECIES] = function () { return re; };
4267 }
4268 re[SYMBOL]('');
4269 return !execCalled;
4270 }) : undefined;
4271
4272 if (
4273 !DELEGATES_TO_SYMBOL ||
4274 !DELEGATES_TO_EXEC ||
4275 (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
4276 (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
4277 ) {
4278 var nativeRegExpMethod = /./[SYMBOL];
4279 var fns = exec(
4280 defined,
4281 SYMBOL,
4282 ''[KEY],
4283 function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {
4284 if (regexp.exec === regexpExec) {
4285 if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
4286 // The native String method already delegates to @@method (this
4287 // polyfilled function), leasing to infinite recursion.
4288 // We avoid it by directly calling the native @@method method.
4289 return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
4290 }
4291 return { done: true, value: nativeMethod.call(str, regexp, arg2) };
4292 }
4293 return { done: false };
4294 }
4295 );
4296 var strfn = fns[0];
4297 var rxfn = fns[1];
4298
4299 redefine(String.prototype, KEY, strfn);
4300 hide(RegExp.prototype, SYMBOL, length == 2
4301 // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
4302 // 21.2.5.11 RegExp.prototype[@@split](string, limit)
4303 ? function (string, arg) { return rxfn.call(string, this, arg); }
4304 // 21.2.5.6 RegExp.prototype[@@match](string)
4305 // 21.2.5.9 RegExp.prototype[@@search](string)
4306 : function (string) { return rxfn.call(string, this); }
4307 );
4308 }
4309};
4310
4311
4312/***/ }),
4313
4314/***/ "e0ed":
4315/***/ (function(module, exports, __webpack_require__) {
4316
4317var dP = __webpack_require__("4b11");
4318var createDesc = __webpack_require__("2ae9");
4319module.exports = __webpack_require__("fa25") ? function (object, key, value) {
4320 return dP.f(object, key, createDesc(1, value));
4321} : function (object, key, value) {
4322 object[key] = value;
4323 return object;
4324};
4325
4326
4327/***/ }),
4328
4329/***/ "e258":
4330/***/ (function(module, exports, __webpack_require__) {
4331
4332module.exports = !__webpack_require__("66b6") && !__webpack_require__("910c")(function () {
4333 return Object.defineProperty(__webpack_require__("f44d")('div'), 'a', { get: function () { return 7; } }).a != 7;
4334});
4335
4336
4337/***/ }),
4338
4339/***/ "e369":
4340/***/ (function(module, exports, __webpack_require__) {
4341
4342var pIE = __webpack_require__("e60e");
4343var createDesc = __webpack_require__("2ae9");
4344var toIObject = __webpack_require__("c5f8");
4345var toPrimitive = __webpack_require__("8e7e");
4346var has = __webpack_require__("5b85");
4347var IE8_DOM_DEFINE = __webpack_require__("d210");
4348var gOPD = Object.getOwnPropertyDescriptor;
4349
4350exports.f = __webpack_require__("fa25") ? gOPD : function getOwnPropertyDescriptor(O, P) {
4351 O = toIObject(O);
4352 P = toPrimitive(P, true);
4353 if (IE8_DOM_DEFINE) try {
4354 return gOPD(O, P);
4355 } catch (e) { /* empty */ }
4356 if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
4357};
4358
4359
4360/***/ }),
4361
4362/***/ "e55f":
4363/***/ (function(module, exports, __webpack_require__) {
4364
4365// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
4366var has = __webpack_require__("5b85");
4367var toObject = __webpack_require__("872b");
4368var IE_PROTO = __webpack_require__("d0bc")('IE_PROTO');
4369var ObjectProto = Object.prototype;
4370
4371module.exports = Object.getPrototypeOf || function (O) {
4372 O = toObject(O);
4373 if (has(O, IE_PROTO)) return O[IE_PROTO];
4374 if (typeof O.constructor == 'function' && O instanceof O.constructor) {
4375 return O.constructor.prototype;
4376 } return O instanceof Object ? ObjectProto : null;
4377};
4378
4379
4380/***/ }),
4381
4382/***/ "e60e":
4383/***/ (function(module, exports) {
4384
4385exports.f = {}.propertyIsEnumerable;
4386
4387
4388/***/ }),
4389
4390/***/ "e87c":
4391/***/ (function(module, exports, __webpack_require__) {
4392
4393// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
4394var speciesConstructor = __webpack_require__("28a8");
4395
4396module.exports = function (original, length) {
4397 return new (speciesConstructor(original))(length);
4398};
4399
4400
4401/***/ }),
4402
4403/***/ "e9cc":
4404/***/ (function(module, exports, __webpack_require__) {
4405
4406// extracted by mini-css-extract-plugin
4407
4408/***/ }),
4409
4410/***/ "ea59":
4411/***/ (function(module, exports) {
4412
4413var id = 0;
4414var px = Math.random();
4415module.exports = function (key) {
4416 return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
4417};
4418
4419
4420/***/ }),
4421
4422/***/ "eb5c":
4423/***/ (function(module, exports, __webpack_require__) {
4424
4425var store = __webpack_require__("564f")('wks');
4426var uid = __webpack_require__("edac");
4427var Symbol = __webpack_require__("adad").Symbol;
4428var USE_SYMBOL = typeof Symbol == 'function';
4429
4430var $exports = module.exports = function (name) {
4431 return store[name] || (store[name] =
4432 USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
4433};
4434
4435$exports.store = store;
4436
4437
4438/***/ }),
4439
4440/***/ "edac":
4441/***/ (function(module, exports) {
4442
4443var id = 0;
4444var px = Math.random();
4445module.exports = function (key) {
4446 return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
4447};
4448
4449
4450/***/ }),
4451
4452/***/ "ede6":
4453/***/ (function(module, exports, __webpack_require__) {
4454
4455var global = __webpack_require__("898f");
4456var hide = __webpack_require__("f650");
4457var has = __webpack_require__("07fd");
4458var SRC = __webpack_require__("ea59")('src');
4459var $toString = __webpack_require__("8a60");
4460var TO_STRING = 'toString';
4461var TPL = ('' + $toString).split(TO_STRING);
4462
4463__webpack_require__("21e4").inspectSource = function (it) {
4464 return $toString.call(it);
4465};
4466
4467(module.exports = function (O, key, val, safe) {
4468 var isFunction = typeof val == 'function';
4469 if (isFunction) has(val, 'name') || hide(val, 'name', key);
4470 if (O[key] === val) return;
4471 if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
4472 if (O === global) {
4473 O[key] = val;
4474 } else if (!safe) {
4475 delete O[key];
4476 hide(O, key, val);
4477 } else if (O[key]) {
4478 O[key] = val;
4479 } else {
4480 hide(O, key, val);
4481 }
4482// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
4483})(Function.prototype, TO_STRING, function toString() {
4484 return typeof this == 'function' && this[SRC] || $toString.call(this);
4485});
4486
4487
4488/***/ }),
4489
4490/***/ "ee07":
4491/***/ (function(module, exports) {
4492
4493module.exports = {};
4494
4495
4496/***/ }),
4497
4498/***/ "f0bd":
4499/***/ (function(module, __webpack_exports__, __webpack_require__) {
4500
4501"use strict";
4502/* WEBPACK VAR INJECTION */(function(global) {/**!
4503 * @fileOverview Kickass library to create and place poppers near their reference elements.
4504 * @version 1.15.0
4505 * @license
4506 * Copyright (c) 2016 Federico Zivolo and contributors
4507 *
4508 * Permission is hereby granted, free of charge, to any person obtaining a copy
4509 * of this software and associated documentation files (the "Software"), to deal
4510 * in the Software without restriction, including without limitation the rights
4511 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
4512 * copies of the Software, and to permit persons to whom the Software is
4513 * furnished to do so, subject to the following conditions:
4514 *
4515 * The above copyright notice and this permission notice shall be included in all
4516 * copies or substantial portions of the Software.
4517 *
4518 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
4519 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
4520 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
4521 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
4522 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
4523 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
4524 * SOFTWARE.
4525 */
4526var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
4527
4528var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
4529var timeoutDuration = 0;
4530for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
4531 if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
4532 timeoutDuration = 1;
4533 break;
4534 }
4535}
4536
4537function microtaskDebounce(fn) {
4538 var called = false;
4539 return function () {
4540 if (called) {
4541 return;
4542 }
4543 called = true;
4544 window.Promise.resolve().then(function () {
4545 called = false;
4546 fn();
4547 });
4548 };
4549}
4550
4551function taskDebounce(fn) {
4552 var scheduled = false;
4553 return function () {
4554 if (!scheduled) {
4555 scheduled = true;
4556 setTimeout(function () {
4557 scheduled = false;
4558 fn();
4559 }, timeoutDuration);
4560 }
4561 };
4562}
4563
4564var supportsMicroTasks = isBrowser && window.Promise;
4565
4566/**
4567* Create a debounced version of a method, that's asynchronously deferred
4568* but called in the minimum time possible.
4569*
4570* @method
4571* @memberof Popper.Utils
4572* @argument {Function} fn
4573* @returns {Function}
4574*/
4575var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;
4576
4577/**
4578 * Check if the given variable is a function
4579 * @method
4580 * @memberof Popper.Utils
4581 * @argument {Any} functionToCheck - variable to check
4582 * @returns {Boolean} answer to: is a function?
4583 */
4584function isFunction(functionToCheck) {
4585 var getType = {};
4586 return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
4587}
4588
4589/**
4590 * Get CSS computed property of the given element
4591 * @method
4592 * @memberof Popper.Utils
4593 * @argument {Eement} element
4594 * @argument {String} property
4595 */
4596function getStyleComputedProperty(element, property) {
4597 if (element.nodeType !== 1) {
4598 return [];
4599 }
4600 // NOTE: 1 DOM access here
4601 var window = element.ownerDocument.defaultView;
4602 var css = window.getComputedStyle(element, null);
4603 return property ? css[property] : css;
4604}
4605
4606/**
4607 * Returns the parentNode or the host of the element
4608 * @method
4609 * @memberof Popper.Utils
4610 * @argument {Element} element
4611 * @returns {Element} parent
4612 */
4613function getParentNode(element) {
4614 if (element.nodeName === 'HTML') {
4615 return element;
4616 }
4617 return element.parentNode || element.host;
4618}
4619
4620/**
4621 * Returns the scrolling parent of the given element
4622 * @method
4623 * @memberof Popper.Utils
4624 * @argument {Element} element
4625 * @returns {Element} scroll parent
4626 */
4627function getScrollParent(element) {
4628 // Return body, `getScroll` will take care to get the correct `scrollTop` from it
4629 if (!element) {
4630 return document.body;
4631 }
4632
4633 switch (element.nodeName) {
4634 case 'HTML':
4635 case 'BODY':
4636 return element.ownerDocument.body;
4637 case '#document':
4638 return element.body;
4639 }
4640
4641 // Firefox want us to check `-x` and `-y` variations as well
4642
4643 var _getStyleComputedProp = getStyleComputedProperty(element),
4644 overflow = _getStyleComputedProp.overflow,
4645 overflowX = _getStyleComputedProp.overflowX,
4646 overflowY = _getStyleComputedProp.overflowY;
4647
4648 if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
4649 return element;
4650 }
4651
4652 return getScrollParent(getParentNode(element));
4653}
4654
4655var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
4656var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);
4657
4658/**
4659 * Determines if the browser is Internet Explorer
4660 * @method
4661 * @memberof Popper.Utils
4662 * @param {Number} version to check
4663 * @returns {Boolean} isIE
4664 */
4665function isIE(version) {
4666 if (version === 11) {
4667 return isIE11;
4668 }
4669 if (version === 10) {
4670 return isIE10;
4671 }
4672 return isIE11 || isIE10;
4673}
4674
4675/**
4676 * Returns the offset parent of the given element
4677 * @method
4678 * @memberof Popper.Utils
4679 * @argument {Element} element
4680 * @returns {Element} offset parent
4681 */
4682function getOffsetParent(element) {
4683 if (!element) {
4684 return document.documentElement;
4685 }
4686
4687 var noOffsetParent = isIE(10) ? document.body : null;
4688
4689 // NOTE: 1 DOM access here
4690 var offsetParent = element.offsetParent || null;
4691 // Skip hidden elements which don't have an offsetParent
4692 while (offsetParent === noOffsetParent && element.nextElementSibling) {
4693 offsetParent = (element = element.nextElementSibling).offsetParent;
4694 }
4695
4696 var nodeName = offsetParent && offsetParent.nodeName;
4697
4698 if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
4699 return element ? element.ownerDocument.documentElement : document.documentElement;
4700 }
4701
4702 // .offsetParent will return the closest TH, TD or TABLE in case
4703 // no offsetParent is present, I hate this job...
4704 if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
4705 return getOffsetParent(offsetParent);
4706 }
4707
4708 return offsetParent;
4709}
4710
4711function isOffsetContainer(element) {
4712 var nodeName = element.nodeName;
4713
4714 if (nodeName === 'BODY') {
4715 return false;
4716 }
4717 return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
4718}
4719
4720/**
4721 * Finds the root node (document, shadowDOM root) of the given element
4722 * @method
4723 * @memberof Popper.Utils
4724 * @argument {Element} node
4725 * @returns {Element} root node
4726 */
4727function getRoot(node) {
4728 if (node.parentNode !== null) {
4729 return getRoot(node.parentNode);
4730 }
4731
4732 return node;
4733}
4734
4735/**
4736 * Finds the offset parent common to the two provided nodes
4737 * @method
4738 * @memberof Popper.Utils
4739 * @argument {Element} element1
4740 * @argument {Element} element2
4741 * @returns {Element} common offset parent
4742 */
4743function findCommonOffsetParent(element1, element2) {
4744 // This check is needed to avoid errors in case one of the elements isn't defined for any reason
4745 if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
4746 return document.documentElement;
4747 }
4748
4749 // Here we make sure to give as "start" the element that comes first in the DOM
4750 var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
4751 var start = order ? element1 : element2;
4752 var end = order ? element2 : element1;
4753
4754 // Get common ancestor container
4755 var range = document.createRange();
4756 range.setStart(start, 0);
4757 range.setEnd(end, 0);
4758 var commonAncestorContainer = range.commonAncestorContainer;
4759
4760 // Both nodes are inside #document
4761
4762 if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
4763 if (isOffsetContainer(commonAncestorContainer)) {
4764 return commonAncestorContainer;
4765 }
4766
4767 return getOffsetParent(commonAncestorContainer);
4768 }
4769
4770 // one of the nodes is inside shadowDOM, find which one
4771 var element1root = getRoot(element1);
4772 if (element1root.host) {
4773 return findCommonOffsetParent(element1root.host, element2);
4774 } else {
4775 return findCommonOffsetParent(element1, getRoot(element2).host);
4776 }
4777}
4778
4779/**
4780 * Gets the scroll value of the given element in the given side (top and left)
4781 * @method
4782 * @memberof Popper.Utils
4783 * @argument {Element} element
4784 * @argument {String} side `top` or `left`
4785 * @returns {number} amount of scrolled pixels
4786 */
4787function getScroll(element) {
4788 var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';
4789
4790 var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
4791 var nodeName = element.nodeName;
4792
4793 if (nodeName === 'BODY' || nodeName === 'HTML') {
4794 var html = element.ownerDocument.documentElement;
4795 var scrollingElement = element.ownerDocument.scrollingElement || html;
4796 return scrollingElement[upperSide];
4797 }
4798
4799 return element[upperSide];
4800}
4801
4802/*
4803 * Sum or subtract the element scroll values (left and top) from a given rect object
4804 * @method
4805 * @memberof Popper.Utils
4806 * @param {Object} rect - Rect object you want to change
4807 * @param {HTMLElement} element - The element from the function reads the scroll values
4808 * @param {Boolean} subtract - set to true if you want to subtract the scroll values
4809 * @return {Object} rect - The modifier rect object
4810 */
4811function includeScroll(rect, element) {
4812 var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
4813
4814 var scrollTop = getScroll(element, 'top');
4815 var scrollLeft = getScroll(element, 'left');
4816 var modifier = subtract ? -1 : 1;
4817 rect.top += scrollTop * modifier;
4818 rect.bottom += scrollTop * modifier;
4819 rect.left += scrollLeft * modifier;
4820 rect.right += scrollLeft * modifier;
4821 return rect;
4822}
4823
4824/*
4825 * Helper to detect borders of a given element
4826 * @method
4827 * @memberof Popper.Utils
4828 * @param {CSSStyleDeclaration} styles
4829 * Result of `getStyleComputedProperty` on the given element
4830 * @param {String} axis - `x` or `y`
4831 * @return {number} borders - The borders size of the given axis
4832 */
4833
4834function getBordersSize(styles, axis) {
4835 var sideA = axis === 'x' ? 'Left' : 'Top';
4836 var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
4837
4838 return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
4839}
4840
4841function getSize(axis, body, html, computedStyle) {
4842 return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);
4843}
4844
4845function getWindowSizes(document) {
4846 var body = document.body;
4847 var html = document.documentElement;
4848 var computedStyle = isIE(10) && getComputedStyle(html);
4849
4850 return {
4851 height: getSize('Height', body, html, computedStyle),
4852 width: getSize('Width', body, html, computedStyle)
4853 };
4854}
4855
4856var classCallCheck = function (instance, Constructor) {
4857 if (!(instance instanceof Constructor)) {
4858 throw new TypeError("Cannot call a class as a function");
4859 }
4860};
4861
4862var createClass = function () {
4863 function defineProperties(target, props) {
4864 for (var i = 0; i < props.length; i++) {
4865 var descriptor = props[i];
4866 descriptor.enumerable = descriptor.enumerable || false;
4867 descriptor.configurable = true;
4868 if ("value" in descriptor) descriptor.writable = true;
4869 Object.defineProperty(target, descriptor.key, descriptor);
4870 }
4871 }
4872
4873 return function (Constructor, protoProps, staticProps) {
4874 if (protoProps) defineProperties(Constructor.prototype, protoProps);
4875 if (staticProps) defineProperties(Constructor, staticProps);
4876 return Constructor;
4877 };
4878}();
4879
4880
4881
4882
4883
4884var defineProperty = function (obj, key, value) {
4885 if (key in obj) {
4886 Object.defineProperty(obj, key, {
4887 value: value,
4888 enumerable: true,
4889 configurable: true,
4890 writable: true
4891 });
4892 } else {
4893 obj[key] = value;
4894 }
4895
4896 return obj;
4897};
4898
4899var _extends = Object.assign || function (target) {
4900 for (var i = 1; i < arguments.length; i++) {
4901 var source = arguments[i];
4902
4903 for (var key in source) {
4904 if (Object.prototype.hasOwnProperty.call(source, key)) {
4905 target[key] = source[key];
4906 }
4907 }
4908 }
4909
4910 return target;
4911};
4912
4913/**
4914 * Given element offsets, generate an output similar to getBoundingClientRect
4915 * @method
4916 * @memberof Popper.Utils
4917 * @argument {Object} offsets
4918 * @returns {Object} ClientRect like output
4919 */
4920function getClientRect(offsets) {
4921 return _extends({}, offsets, {
4922 right: offsets.left + offsets.width,
4923 bottom: offsets.top + offsets.height
4924 });
4925}
4926
4927/**
4928 * Get bounding client rect of given element
4929 * @method
4930 * @memberof Popper.Utils
4931 * @param {HTMLElement} element
4932 * @return {Object} client rect
4933 */
4934function getBoundingClientRect(element) {
4935 var rect = {};
4936
4937 // IE10 10 FIX: Please, don't ask, the element isn't
4938 // considered in DOM in some circumstances...
4939 // This isn't reproducible in IE10 compatibility mode of IE11
4940 try {
4941 if (isIE(10)) {
4942 rect = element.getBoundingClientRect();
4943 var scrollTop = getScroll(element, 'top');
4944 var scrollLeft = getScroll(element, 'left');
4945 rect.top += scrollTop;
4946 rect.left += scrollLeft;
4947 rect.bottom += scrollTop;
4948 rect.right += scrollLeft;
4949 } else {
4950 rect = element.getBoundingClientRect();
4951 }
4952 } catch (e) {}
4953
4954 var result = {
4955 left: rect.left,
4956 top: rect.top,
4957 width: rect.right - rect.left,
4958 height: rect.bottom - rect.top
4959 };
4960
4961 // subtract scrollbar size from sizes
4962 var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
4963 var width = sizes.width || element.clientWidth || result.right - result.left;
4964 var height = sizes.height || element.clientHeight || result.bottom - result.top;
4965
4966 var horizScrollbar = element.offsetWidth - width;
4967 var vertScrollbar = element.offsetHeight - height;
4968
4969 // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
4970 // we make this check conditional for performance reasons
4971 if (horizScrollbar || vertScrollbar) {
4972 var styles = getStyleComputedProperty(element);
4973 horizScrollbar -= getBordersSize(styles, 'x');
4974 vertScrollbar -= getBordersSize(styles, 'y');
4975
4976 result.width -= horizScrollbar;
4977 result.height -= vertScrollbar;
4978 }
4979
4980 return getClientRect(result);
4981}
4982
4983function getOffsetRectRelativeToArbitraryNode(children, parent) {
4984 var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
4985
4986 var isIE10 = isIE(10);
4987 var isHTML = parent.nodeName === 'HTML';
4988 var childrenRect = getBoundingClientRect(children);
4989 var parentRect = getBoundingClientRect(parent);
4990 var scrollParent = getScrollParent(children);
4991
4992 var styles = getStyleComputedProperty(parent);
4993 var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
4994 var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);
4995
4996 // In cases where the parent is fixed, we must ignore negative scroll in offset calc
4997 if (fixedPosition && isHTML) {
4998 parentRect.top = Math.max(parentRect.top, 0);
4999 parentRect.left = Math.max(parentRect.left, 0);
5000 }
5001 var offsets = getClientRect({
5002 top: childrenRect.top - parentRect.top - borderTopWidth,
5003 left: childrenRect.left - parentRect.left - borderLeftWidth,
5004 width: childrenRect.width,
5005 height: childrenRect.height
5006 });
5007 offsets.marginTop = 0;
5008 offsets.marginLeft = 0;
5009
5010 // Subtract margins of documentElement in case it's being used as parent
5011 // we do this only on HTML because it's the only element that behaves
5012 // differently when margins are applied to it. The margins are included in
5013 // the box of the documentElement, in the other cases not.
5014 if (!isIE10 && isHTML) {
5015 var marginTop = parseFloat(styles.marginTop, 10);
5016 var marginLeft = parseFloat(styles.marginLeft, 10);
5017
5018 offsets.top -= borderTopWidth - marginTop;
5019 offsets.bottom -= borderTopWidth - marginTop;
5020 offsets.left -= borderLeftWidth - marginLeft;
5021 offsets.right -= borderLeftWidth - marginLeft;
5022
5023 // Attach marginTop and marginLeft because in some circumstances we may need them
5024 offsets.marginTop = marginTop;
5025 offsets.marginLeft = marginLeft;
5026 }
5027
5028 if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
5029 offsets = includeScroll(offsets, parent);
5030 }
5031
5032 return offsets;
5033}
5034
5035function getViewportOffsetRectRelativeToArtbitraryNode(element) {
5036 var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
5037
5038 var html = element.ownerDocument.documentElement;
5039 var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
5040 var width = Math.max(html.clientWidth, window.innerWidth || 0);
5041 var height = Math.max(html.clientHeight, window.innerHeight || 0);
5042
5043 var scrollTop = !excludeScroll ? getScroll(html) : 0;
5044 var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
5045
5046 var offset = {
5047 top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
5048 left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
5049 width: width,
5050 height: height
5051 };
5052
5053 return getClientRect(offset);
5054}
5055
5056/**
5057 * Check if the given element is fixed or is inside a fixed parent
5058 * @method
5059 * @memberof Popper.Utils
5060 * @argument {Element} element
5061 * @argument {Element} customContainer
5062 * @returns {Boolean} answer to "isFixed?"
5063 */
5064function isFixed(element) {
5065 var nodeName = element.nodeName;
5066 if (nodeName === 'BODY' || nodeName === 'HTML') {
5067 return false;
5068 }
5069 if (getStyleComputedProperty(element, 'position') === 'fixed') {
5070 return true;
5071 }
5072 var parentNode = getParentNode(element);
5073 if (!parentNode) {
5074 return false;
5075 }
5076 return isFixed(parentNode);
5077}
5078
5079/**
5080 * Finds the first parent of an element that has a transformed property defined
5081 * @method
5082 * @memberof Popper.Utils
5083 * @argument {Element} element
5084 * @returns {Element} first transformed parent or documentElement
5085 */
5086
5087function getFixedPositionOffsetParent(element) {
5088 // This check is needed to avoid errors in case one of the elements isn't defined for any reason
5089 if (!element || !element.parentElement || isIE()) {
5090 return document.documentElement;
5091 }
5092 var el = element.parentElement;
5093 while (el && getStyleComputedProperty(el, 'transform') === 'none') {
5094 el = el.parentElement;
5095 }
5096 return el || document.documentElement;
5097}
5098
5099/**
5100 * Computed the boundaries limits and return them
5101 * @method
5102 * @memberof Popper.Utils
5103 * @param {HTMLElement} popper
5104 * @param {HTMLElement} reference
5105 * @param {number} padding
5106 * @param {HTMLElement} boundariesElement - Element used to define the boundaries
5107 * @param {Boolean} fixedPosition - Is in fixed position mode
5108 * @returns {Object} Coordinates of the boundaries
5109 */
5110function getBoundaries(popper, reference, padding, boundariesElement) {
5111 var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
5112
5113 // NOTE: 1 DOM access here
5114
5115 var boundaries = { top: 0, left: 0 };
5116 var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
5117
5118 // Handle viewport case
5119 if (boundariesElement === 'viewport') {
5120 boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
5121 } else {
5122 // Handle other cases based on DOM element used as boundaries
5123 var boundariesNode = void 0;
5124 if (boundariesElement === 'scrollParent') {
5125 boundariesNode = getScrollParent(getParentNode(reference));
5126 if (boundariesNode.nodeName === 'BODY') {
5127 boundariesNode = popper.ownerDocument.documentElement;
5128 }
5129 } else if (boundariesElement === 'window') {
5130 boundariesNode = popper.ownerDocument.documentElement;
5131 } else {
5132 boundariesNode = boundariesElement;
5133 }
5134
5135 var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
5136
5137 // In case of HTML, we need a different computation
5138 if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
5139 var _getWindowSizes = getWindowSizes(popper.ownerDocument),
5140 height = _getWindowSizes.height,
5141 width = _getWindowSizes.width;
5142
5143 boundaries.top += offsets.top - offsets.marginTop;
5144 boundaries.bottom = height + offsets.top;
5145 boundaries.left += offsets.left - offsets.marginLeft;
5146 boundaries.right = width + offsets.left;
5147 } else {
5148 // for all the other DOM elements, this one is good
5149 boundaries = offsets;
5150 }
5151 }
5152
5153 // Add paddings
5154 padding = padding || 0;
5155 var isPaddingNumber = typeof padding === 'number';
5156 boundaries.left += isPaddingNumber ? padding : padding.left || 0;
5157 boundaries.top += isPaddingNumber ? padding : padding.top || 0;
5158 boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
5159 boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;
5160
5161 return boundaries;
5162}
5163
5164function getArea(_ref) {
5165 var width = _ref.width,
5166 height = _ref.height;
5167
5168 return width * height;
5169}
5170
5171/**
5172 * Utility used to transform the `auto` placement to the placement with more
5173 * available space.
5174 * @method
5175 * @memberof Popper.Utils
5176 * @argument {Object} data - The data object generated by update method
5177 * @argument {Object} options - Modifiers configuration and options
5178 * @returns {Object} The data object, properly modified
5179 */
5180function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
5181 var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
5182
5183 if (placement.indexOf('auto') === -1) {
5184 return placement;
5185 }
5186
5187 var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
5188
5189 var rects = {
5190 top: {
5191 width: boundaries.width,
5192 height: refRect.top - boundaries.top
5193 },
5194 right: {
5195 width: boundaries.right - refRect.right,
5196 height: boundaries.height
5197 },
5198 bottom: {
5199 width: boundaries.width,
5200 height: boundaries.bottom - refRect.bottom
5201 },
5202 left: {
5203 width: refRect.left - boundaries.left,
5204 height: boundaries.height
5205 }
5206 };
5207
5208 var sortedAreas = Object.keys(rects).map(function (key) {
5209 return _extends({
5210 key: key
5211 }, rects[key], {
5212 area: getArea(rects[key])
5213 });
5214 }).sort(function (a, b) {
5215 return b.area - a.area;
5216 });
5217
5218 var filteredAreas = sortedAreas.filter(function (_ref2) {
5219 var width = _ref2.width,
5220 height = _ref2.height;
5221 return width >= popper.clientWidth && height >= popper.clientHeight;
5222 });
5223
5224 var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
5225
5226 var variation = placement.split('-')[1];
5227
5228 return computedPlacement + (variation ? '-' + variation : '');
5229}
5230
5231/**
5232 * Get offsets to the reference element
5233 * @method
5234 * @memberof Popper.Utils
5235 * @param {Object} state
5236 * @param {Element} popper - the popper element
5237 * @param {Element} reference - the reference element (the popper will be relative to this)
5238 * @param {Element} fixedPosition - is in fixed position mode
5239 * @returns {Object} An object containing the offsets which will be applied to the popper
5240 */
5241function getReferenceOffsets(state, popper, reference) {
5242 var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
5243
5244 var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
5245 return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
5246}
5247
5248/**
5249 * Get the outer sizes of the given element (offset size + margins)
5250 * @method
5251 * @memberof Popper.Utils
5252 * @argument {Element} element
5253 * @returns {Object} object containing width and height properties
5254 */
5255function getOuterSizes(element) {
5256 var window = element.ownerDocument.defaultView;
5257 var styles = window.getComputedStyle(element);
5258 var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);
5259 var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);
5260 var result = {
5261 width: element.offsetWidth + y,
5262 height: element.offsetHeight + x
5263 };
5264 return result;
5265}
5266
5267/**
5268 * Get the opposite placement of the given one
5269 * @method
5270 * @memberof Popper.Utils
5271 * @argument {String} placement
5272 * @returns {String} flipped placement
5273 */
5274function getOppositePlacement(placement) {
5275 var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
5276 return placement.replace(/left|right|bottom|top/g, function (matched) {
5277 return hash[matched];
5278 });
5279}
5280
5281/**
5282 * Get offsets to the popper
5283 * @method
5284 * @memberof Popper.Utils
5285 * @param {Object} position - CSS position the Popper will get applied
5286 * @param {HTMLElement} popper - the popper element
5287 * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
5288 * @param {String} placement - one of the valid placement options
5289 * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
5290 */
5291function getPopperOffsets(popper, referenceOffsets, placement) {
5292 placement = placement.split('-')[0];
5293
5294 // Get popper node sizes
5295 var popperRect = getOuterSizes(popper);
5296
5297 // Add position, width and height to our offsets object
5298 var popperOffsets = {
5299 width: popperRect.width,
5300 height: popperRect.height
5301 };
5302
5303 // depending by the popper placement we have to compute its offsets slightly differently
5304 var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
5305 var mainSide = isHoriz ? 'top' : 'left';
5306 var secondarySide = isHoriz ? 'left' : 'top';
5307 var measurement = isHoriz ? 'height' : 'width';
5308 var secondaryMeasurement = !isHoriz ? 'height' : 'width';
5309
5310 popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
5311 if (placement === secondarySide) {
5312 popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
5313 } else {
5314 popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
5315 }
5316
5317 return popperOffsets;
5318}
5319
5320/**
5321 * Mimics the `find` method of Array
5322 * @method
5323 * @memberof Popper.Utils
5324 * @argument {Array} arr
5325 * @argument prop
5326 * @argument value
5327 * @returns index or -1
5328 */
5329function find(arr, check) {
5330 // use native find if supported
5331 if (Array.prototype.find) {
5332 return arr.find(check);
5333 }
5334
5335 // use `filter` to obtain the same behavior of `find`
5336 return arr.filter(check)[0];
5337}
5338
5339/**
5340 * Return the index of the matching object
5341 * @method
5342 * @memberof Popper.Utils
5343 * @argument {Array} arr
5344 * @argument prop
5345 * @argument value
5346 * @returns index or -1
5347 */
5348function findIndex(arr, prop, value) {
5349 // use native findIndex if supported
5350 if (Array.prototype.findIndex) {
5351 return arr.findIndex(function (cur) {
5352 return cur[prop] === value;
5353 });
5354 }
5355
5356 // use `find` + `indexOf` if `findIndex` isn't supported
5357 var match = find(arr, function (obj) {
5358 return obj[prop] === value;
5359 });
5360 return arr.indexOf(match);
5361}
5362
5363/**
5364 * Loop trough the list of modifiers and run them in order,
5365 * each of them will then edit the data object.
5366 * @method
5367 * @memberof Popper.Utils
5368 * @param {dataObject} data
5369 * @param {Array} modifiers
5370 * @param {String} ends - Optional modifier name used as stopper
5371 * @returns {dataObject}
5372 */
5373function runModifiers(modifiers, data, ends) {
5374 var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
5375
5376 modifiersToRun.forEach(function (modifier) {
5377 if (modifier['function']) {
5378 // eslint-disable-line dot-notation
5379 console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
5380 }
5381 var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
5382 if (modifier.enabled && isFunction(fn)) {
5383 // Add properties to offsets to make them a complete clientRect object
5384 // we do this before each modifier to make sure the previous one doesn't
5385 // mess with these values
5386 data.offsets.popper = getClientRect(data.offsets.popper);
5387 data.offsets.reference = getClientRect(data.offsets.reference);
5388
5389 data = fn(data, modifier);
5390 }
5391 });
5392
5393 return data;
5394}
5395
5396/**
5397 * Updates the position of the popper, computing the new offsets and applying
5398 * the new style.<br />
5399 * Prefer `scheduleUpdate` over `update` because of performance reasons.
5400 * @method
5401 * @memberof Popper
5402 */
5403function update() {
5404 // if popper is destroyed, don't perform any further update
5405 if (this.state.isDestroyed) {
5406 return;
5407 }
5408
5409 var data = {
5410 instance: this,
5411 styles: {},
5412 arrowStyles: {},
5413 attributes: {},
5414 flipped: false,
5415 offsets: {}
5416 };
5417
5418 // compute reference element offsets
5419 data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);
5420
5421 // compute auto placement, store placement inside the data object,
5422 // modifiers will be able to edit `placement` if needed
5423 // and refer to originalPlacement to know the original value
5424 data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
5425
5426 // store the computed placement inside `originalPlacement`
5427 data.originalPlacement = data.placement;
5428
5429 data.positionFixed = this.options.positionFixed;
5430
5431 // compute the popper offsets
5432 data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
5433
5434 data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';
5435
5436 // run the modifiers
5437 data = runModifiers(this.modifiers, data);
5438
5439 // the first `update` will call `onCreate` callback
5440 // the other ones will call `onUpdate` callback
5441 if (!this.state.isCreated) {
5442 this.state.isCreated = true;
5443 this.options.onCreate(data);
5444 } else {
5445 this.options.onUpdate(data);
5446 }
5447}
5448
5449/**
5450 * Helper used to know if the given modifier is enabled.
5451 * @method
5452 * @memberof Popper.Utils
5453 * @returns {Boolean}
5454 */
5455function isModifierEnabled(modifiers, modifierName) {
5456 return modifiers.some(function (_ref) {
5457 var name = _ref.name,
5458 enabled = _ref.enabled;
5459 return enabled && name === modifierName;
5460 });
5461}
5462
5463/**
5464 * Get the prefixed supported property name
5465 * @method
5466 * @memberof Popper.Utils
5467 * @argument {String} property (camelCase)
5468 * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
5469 */
5470function getSupportedPropertyName(property) {
5471 var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
5472 var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
5473
5474 for (var i = 0; i < prefixes.length; i++) {
5475 var prefix = prefixes[i];
5476 var toCheck = prefix ? '' + prefix + upperProp : property;
5477 if (typeof document.body.style[toCheck] !== 'undefined') {
5478 return toCheck;
5479 }
5480 }
5481 return null;
5482}
5483
5484/**
5485 * Destroys the popper.
5486 * @method
5487 * @memberof Popper
5488 */
5489function destroy() {
5490 this.state.isDestroyed = true;
5491
5492 // touch DOM only if `applyStyle` modifier is enabled
5493 if (isModifierEnabled(this.modifiers, 'applyStyle')) {
5494 this.popper.removeAttribute('x-placement');
5495 this.popper.style.position = '';
5496 this.popper.style.top = '';
5497 this.popper.style.left = '';
5498 this.popper.style.right = '';
5499 this.popper.style.bottom = '';
5500 this.popper.style.willChange = '';
5501 this.popper.style[getSupportedPropertyName('transform')] = '';
5502 }
5503
5504 this.disableEventListeners();
5505
5506 // remove the popper if user explicity asked for the deletion on destroy
5507 // do not use `remove` because IE11 doesn't support it
5508 if (this.options.removeOnDestroy) {
5509 this.popper.parentNode.removeChild(this.popper);
5510 }
5511 return this;
5512}
5513
5514/**
5515 * Get the window associated with the element
5516 * @argument {Element} element
5517 * @returns {Window}
5518 */
5519function getWindow(element) {
5520 var ownerDocument = element.ownerDocument;
5521 return ownerDocument ? ownerDocument.defaultView : window;
5522}
5523
5524function attachToScrollParents(scrollParent, event, callback, scrollParents) {
5525 var isBody = scrollParent.nodeName === 'BODY';
5526 var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
5527 target.addEventListener(event, callback, { passive: true });
5528
5529 if (!isBody) {
5530 attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
5531 }
5532 scrollParents.push(target);
5533}
5534
5535/**
5536 * Setup needed event listeners used to update the popper position
5537 * @method
5538 * @memberof Popper.Utils
5539 * @private
5540 */
5541function setupEventListeners(reference, options, state, updateBound) {
5542 // Resize event listener on window
5543 state.updateBound = updateBound;
5544 getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
5545
5546 // Scroll event listener on scroll parents
5547 var scrollElement = getScrollParent(reference);
5548 attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
5549 state.scrollElement = scrollElement;
5550 state.eventsEnabled = true;
5551
5552 return state;
5553}
5554
5555/**
5556 * It will add resize/scroll events and start recalculating
5557 * position of the popper element when they are triggered.
5558 * @method
5559 * @memberof Popper
5560 */
5561function enableEventListeners() {
5562 if (!this.state.eventsEnabled) {
5563 this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
5564 }
5565}
5566
5567/**
5568 * Remove event listeners used to update the popper position
5569 * @method
5570 * @memberof Popper.Utils
5571 * @private
5572 */
5573function removeEventListeners(reference, state) {
5574 // Remove resize event listener on window
5575 getWindow(reference).removeEventListener('resize', state.updateBound);
5576
5577 // Remove scroll event listener on scroll parents
5578 state.scrollParents.forEach(function (target) {
5579 target.removeEventListener('scroll', state.updateBound);
5580 });
5581
5582 // Reset state
5583 state.updateBound = null;
5584 state.scrollParents = [];
5585 state.scrollElement = null;
5586 state.eventsEnabled = false;
5587 return state;
5588}
5589
5590/**
5591 * It will remove resize/scroll events and won't recalculate popper position
5592 * when they are triggered. It also won't trigger `onUpdate` callback anymore,
5593 * unless you call `update` method manually.
5594 * @method
5595 * @memberof Popper
5596 */
5597function disableEventListeners() {
5598 if (this.state.eventsEnabled) {
5599 cancelAnimationFrame(this.scheduleUpdate);
5600 this.state = removeEventListeners(this.reference, this.state);
5601 }
5602}
5603
5604/**
5605 * Tells if a given input is a number
5606 * @method
5607 * @memberof Popper.Utils
5608 * @param {*} input to check
5609 * @return {Boolean}
5610 */
5611function isNumeric(n) {
5612 return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
5613}
5614
5615/**
5616 * Set the style to the given popper
5617 * @method
5618 * @memberof Popper.Utils
5619 * @argument {Element} element - Element to apply the style to
5620 * @argument {Object} styles
5621 * Object with a list of properties and values which will be applied to the element
5622 */
5623function setStyles(element, styles) {
5624 Object.keys(styles).forEach(function (prop) {
5625 var unit = '';
5626 // add unit if the value is numeric and is one of the following
5627 if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
5628 unit = 'px';
5629 }
5630 element.style[prop] = styles[prop] + unit;
5631 });
5632}
5633
5634/**
5635 * Set the attributes to the given popper
5636 * @method
5637 * @memberof Popper.Utils
5638 * @argument {Element} element - Element to apply the attributes to
5639 * @argument {Object} styles
5640 * Object with a list of properties and values which will be applied to the element
5641 */
5642function setAttributes(element, attributes) {
5643 Object.keys(attributes).forEach(function (prop) {
5644 var value = attributes[prop];
5645 if (value !== false) {
5646 element.setAttribute(prop, attributes[prop]);
5647 } else {
5648 element.removeAttribute(prop);
5649 }
5650 });
5651}
5652
5653/**
5654 * @function
5655 * @memberof Modifiers
5656 * @argument {Object} data - The data object generated by `update` method
5657 * @argument {Object} data.styles - List of style properties - values to apply to popper element
5658 * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
5659 * @argument {Object} options - Modifiers configuration and options
5660 * @returns {Object} The same data object
5661 */
5662function applyStyle(data) {
5663 // any property present in `data.styles` will be applied to the popper,
5664 // in this way we can make the 3rd party modifiers add custom styles to it
5665 // Be aware, modifiers could override the properties defined in the previous
5666 // lines of this modifier!
5667 setStyles(data.instance.popper, data.styles);
5668
5669 // any property present in `data.attributes` will be applied to the popper,
5670 // they will be set as HTML attributes of the element
5671 setAttributes(data.instance.popper, data.attributes);
5672
5673 // if arrowElement is defined and arrowStyles has some properties
5674 if (data.arrowElement && Object.keys(data.arrowStyles).length) {
5675 setStyles(data.arrowElement, data.arrowStyles);
5676 }
5677
5678 return data;
5679}
5680
5681/**
5682 * Set the x-placement attribute before everything else because it could be used
5683 * to add margins to the popper margins needs to be calculated to get the
5684 * correct popper offsets.
5685 * @method
5686 * @memberof Popper.modifiers
5687 * @param {HTMLElement} reference - The reference element used to position the popper
5688 * @param {HTMLElement} popper - The HTML element used as popper
5689 * @param {Object} options - Popper.js options
5690 */
5691function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
5692 // compute reference element offsets
5693 var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);
5694
5695 // compute auto placement, store placement inside the data object,
5696 // modifiers will be able to edit `placement` if needed
5697 // and refer to originalPlacement to know the original value
5698 var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
5699
5700 popper.setAttribute('x-placement', placement);
5701
5702 // Apply `position` to popper before anything else because
5703 // without the position applied we can't guarantee correct computations
5704 setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });
5705
5706 return options;
5707}
5708
5709/**
5710 * @function
5711 * @memberof Popper.Utils
5712 * @argument {Object} data - The data object generated by `update` method
5713 * @argument {Boolean} shouldRound - If the offsets should be rounded at all
5714 * @returns {Object} The popper's position offsets rounded
5715 *
5716 * The tale of pixel-perfect positioning. It's still not 100% perfect, but as
5717 * good as it can be within reason.
5718 * Discussion here: https://github.com/FezVrasta/popper.js/pull/715
5719 *
5720 * Low DPI screens cause a popper to be blurry if not using full pixels (Safari
5721 * as well on High DPI screens).
5722 *
5723 * Firefox prefers no rounding for positioning and does not have blurriness on
5724 * high DPI screens.
5725 *
5726 * Only horizontal placement and left/right values need to be considered.
5727 */
5728function getRoundedOffsets(data, shouldRound) {
5729 var _data$offsets = data.offsets,
5730 popper = _data$offsets.popper,
5731 reference = _data$offsets.reference;
5732 var round = Math.round,
5733 floor = Math.floor;
5734
5735 var noRound = function noRound(v) {
5736 return v;
5737 };
5738
5739 var referenceWidth = round(reference.width);
5740 var popperWidth = round(popper.width);
5741
5742 var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
5743 var isVariation = data.placement.indexOf('-') !== -1;
5744 var sameWidthParity = referenceWidth % 2 === popperWidth % 2;
5745 var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;
5746
5747 var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;
5748 var verticalToInteger = !shouldRound ? noRound : round;
5749
5750 return {
5751 left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),
5752 top: verticalToInteger(popper.top),
5753 bottom: verticalToInteger(popper.bottom),
5754 right: horizontalToInteger(popper.right)
5755 };
5756}
5757
5758var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);
5759
5760/**
5761 * @function
5762 * @memberof Modifiers
5763 * @argument {Object} data - The data object generated by `update` method
5764 * @argument {Object} options - Modifiers configuration and options
5765 * @returns {Object} The data object, properly modified
5766 */
5767function computeStyle(data, options) {
5768 var x = options.x,
5769 y = options.y;
5770 var popper = data.offsets.popper;
5771
5772 // Remove this legacy support in Popper.js v2
5773
5774 var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
5775 return modifier.name === 'applyStyle';
5776 }).gpuAcceleration;
5777 if (legacyGpuAccelerationOption !== undefined) {
5778 console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
5779 }
5780 var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
5781
5782 var offsetParent = getOffsetParent(data.instance.popper);
5783 var offsetParentRect = getBoundingClientRect(offsetParent);
5784
5785 // Styles
5786 var styles = {
5787 position: popper.position
5788 };
5789
5790 var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);
5791
5792 var sideA = x === 'bottom' ? 'top' : 'bottom';
5793 var sideB = y === 'right' ? 'left' : 'right';
5794
5795 // if gpuAcceleration is set to `true` and transform is supported,
5796 // we use `translate3d` to apply the position to the popper we
5797 // automatically use the supported prefixed version if needed
5798 var prefixedProperty = getSupportedPropertyName('transform');
5799
5800 // now, let's make a step back and look at this code closely (wtf?)
5801 // If the content of the popper grows once it's been positioned, it
5802 // may happen that the popper gets misplaced because of the new content
5803 // overflowing its reference element
5804 // To avoid this problem, we provide two options (x and y), which allow
5805 // the consumer to define the offset origin.
5806 // If we position a popper on top of a reference element, we can set
5807 // `x` to `top` to make the popper grow towards its top instead of
5808 // its bottom.
5809 var left = void 0,
5810 top = void 0;
5811 if (sideA === 'bottom') {
5812 // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)
5813 // and not the bottom of the html element
5814 if (offsetParent.nodeName === 'HTML') {
5815 top = -offsetParent.clientHeight + offsets.bottom;
5816 } else {
5817 top = -offsetParentRect.height + offsets.bottom;
5818 }
5819 } else {
5820 top = offsets.top;
5821 }
5822 if (sideB === 'right') {
5823 if (offsetParent.nodeName === 'HTML') {
5824 left = -offsetParent.clientWidth + offsets.right;
5825 } else {
5826 left = -offsetParentRect.width + offsets.right;
5827 }
5828 } else {
5829 left = offsets.left;
5830 }
5831 if (gpuAcceleration && prefixedProperty) {
5832 styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
5833 styles[sideA] = 0;
5834 styles[sideB] = 0;
5835 styles.willChange = 'transform';
5836 } else {
5837 // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
5838 var invertTop = sideA === 'bottom' ? -1 : 1;
5839 var invertLeft = sideB === 'right' ? -1 : 1;
5840 styles[sideA] = top * invertTop;
5841 styles[sideB] = left * invertLeft;
5842 styles.willChange = sideA + ', ' + sideB;
5843 }
5844
5845 // Attributes
5846 var attributes = {
5847 'x-placement': data.placement
5848 };
5849
5850 // Update `data` attributes, styles and arrowStyles
5851 data.attributes = _extends({}, attributes, data.attributes);
5852 data.styles = _extends({}, styles, data.styles);
5853 data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);
5854
5855 return data;
5856}
5857
5858/**
5859 * Helper used to know if the given modifier depends from another one.<br />
5860 * It checks if the needed modifier is listed and enabled.
5861 * @method
5862 * @memberof Popper.Utils
5863 * @param {Array} modifiers - list of modifiers
5864 * @param {String} requestingName - name of requesting modifier
5865 * @param {String} requestedName - name of requested modifier
5866 * @returns {Boolean}
5867 */
5868function isModifierRequired(modifiers, requestingName, requestedName) {
5869 var requesting = find(modifiers, function (_ref) {
5870 var name = _ref.name;
5871 return name === requestingName;
5872 });
5873
5874 var isRequired = !!requesting && modifiers.some(function (modifier) {
5875 return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
5876 });
5877
5878 if (!isRequired) {
5879 var _requesting = '`' + requestingName + '`';
5880 var requested = '`' + requestedName + '`';
5881 console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
5882 }
5883 return isRequired;
5884}
5885
5886/**
5887 * @function
5888 * @memberof Modifiers
5889 * @argument {Object} data - The data object generated by update method
5890 * @argument {Object} options - Modifiers configuration and options
5891 * @returns {Object} The data object, properly modified
5892 */
5893function arrow(data, options) {
5894 var _data$offsets$arrow;
5895
5896 // arrow depends on keepTogether in order to work
5897 if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
5898 return data;
5899 }
5900
5901 var arrowElement = options.element;
5902
5903 // if arrowElement is a string, suppose it's a CSS selector
5904 if (typeof arrowElement === 'string') {
5905 arrowElement = data.instance.popper.querySelector(arrowElement);
5906
5907 // if arrowElement is not found, don't run the modifier
5908 if (!arrowElement) {
5909 return data;
5910 }
5911 } else {
5912 // if the arrowElement isn't a query selector we must check that the
5913 // provided DOM node is child of its popper node
5914 if (!data.instance.popper.contains(arrowElement)) {
5915 console.warn('WARNING: `arrow.element` must be child of its popper element!');
5916 return data;
5917 }
5918 }
5919
5920 var placement = data.placement.split('-')[0];
5921 var _data$offsets = data.offsets,
5922 popper = _data$offsets.popper,
5923 reference = _data$offsets.reference;
5924
5925 var isVertical = ['left', 'right'].indexOf(placement) !== -1;
5926
5927 var len = isVertical ? 'height' : 'width';
5928 var sideCapitalized = isVertical ? 'Top' : 'Left';
5929 var side = sideCapitalized.toLowerCase();
5930 var altSide = isVertical ? 'left' : 'top';
5931 var opSide = isVertical ? 'bottom' : 'right';
5932 var arrowElementSize = getOuterSizes(arrowElement)[len];
5933
5934 //
5935 // extends keepTogether behavior making sure the popper and its
5936 // reference have enough pixels in conjunction
5937 //
5938
5939 // top/left side
5940 if (reference[opSide] - arrowElementSize < popper[side]) {
5941 data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
5942 }
5943 // bottom/right side
5944 if (reference[side] + arrowElementSize > popper[opSide]) {
5945 data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
5946 }
5947 data.offsets.popper = getClientRect(data.offsets.popper);
5948
5949 // compute center of the popper
5950 var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
5951
5952 // Compute the sideValue using the updated popper offsets
5953 // take popper margin in account because we don't have this info available
5954 var css = getStyleComputedProperty(data.instance.popper);
5955 var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);
5956 var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);
5957 var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
5958
5959 // prevent arrowElement from being placed not contiguously to its popper
5960 sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
5961
5962 data.arrowElement = arrowElement;
5963 data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);
5964
5965 return data;
5966}
5967
5968/**
5969 * Get the opposite placement variation of the given one
5970 * @method
5971 * @memberof Popper.Utils
5972 * @argument {String} placement variation
5973 * @returns {String} flipped placement variation
5974 */
5975function getOppositeVariation(variation) {
5976 if (variation === 'end') {
5977 return 'start';
5978 } else if (variation === 'start') {
5979 return 'end';
5980 }
5981 return variation;
5982}
5983
5984/**
5985 * List of accepted placements to use as values of the `placement` option.<br />
5986 * Valid placements are:
5987 * - `auto`
5988 * - `top`
5989 * - `right`
5990 * - `bottom`
5991 * - `left`
5992 *
5993 * Each placement can have a variation from this list:
5994 * - `-start`
5995 * - `-end`
5996 *
5997 * Variations are interpreted easily if you think of them as the left to right
5998 * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
5999 * is right.<br />
6000 * Vertically (`left` and `right`), `start` is top and `end` is bottom.
6001 *
6002 * Some valid examples are:
6003 * - `top-end` (on top of reference, right aligned)
6004 * - `right-start` (on right of reference, top aligned)
6005 * - `bottom` (on bottom, centered)
6006 * - `auto-end` (on the side with more space available, alignment depends by placement)
6007 *
6008 * @static
6009 * @type {Array}
6010 * @enum {String}
6011 * @readonly
6012 * @method placements
6013 * @memberof Popper
6014 */
6015var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
6016
6017// Get rid of `auto` `auto-start` and `auto-end`
6018var validPlacements = placements.slice(3);
6019
6020/**
6021 * Given an initial placement, returns all the subsequent placements
6022 * clockwise (or counter-clockwise).
6023 *
6024 * @method
6025 * @memberof Popper.Utils
6026 * @argument {String} placement - A valid placement (it accepts variations)
6027 * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
6028 * @returns {Array} placements including their variations
6029 */
6030function clockwise(placement) {
6031 var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
6032
6033 var index = validPlacements.indexOf(placement);
6034 var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
6035 return counter ? arr.reverse() : arr;
6036}
6037
6038var BEHAVIORS = {
6039 FLIP: 'flip',
6040 CLOCKWISE: 'clockwise',
6041 COUNTERCLOCKWISE: 'counterclockwise'
6042};
6043
6044/**
6045 * @function
6046 * @memberof Modifiers
6047 * @argument {Object} data - The data object generated by update method
6048 * @argument {Object} options - Modifiers configuration and options
6049 * @returns {Object} The data object, properly modified
6050 */
6051function flip(data, options) {
6052 // if `inner` modifier is enabled, we can't use the `flip` modifier
6053 if (isModifierEnabled(data.instance.modifiers, 'inner')) {
6054 return data;
6055 }
6056
6057 if (data.flipped && data.placement === data.originalPlacement) {
6058 // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
6059 return data;
6060 }
6061
6062 var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
6063
6064 var placement = data.placement.split('-')[0];
6065 var placementOpposite = getOppositePlacement(placement);
6066 var variation = data.placement.split('-')[1] || '';
6067
6068 var flipOrder = [];
6069
6070 switch (options.behavior) {
6071 case BEHAVIORS.FLIP:
6072 flipOrder = [placement, placementOpposite];
6073 break;
6074 case BEHAVIORS.CLOCKWISE:
6075 flipOrder = clockwise(placement);
6076 break;
6077 case BEHAVIORS.COUNTERCLOCKWISE:
6078 flipOrder = clockwise(placement, true);
6079 break;
6080 default:
6081 flipOrder = options.behavior;
6082 }
6083
6084 flipOrder.forEach(function (step, index) {
6085 if (placement !== step || flipOrder.length === index + 1) {
6086 return data;
6087 }
6088
6089 placement = data.placement.split('-')[0];
6090 placementOpposite = getOppositePlacement(placement);
6091
6092 var popperOffsets = data.offsets.popper;
6093 var refOffsets = data.offsets.reference;
6094
6095 // using floor because the reference offsets may contain decimals we are not going to consider here
6096 var floor = Math.floor;
6097 var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);
6098
6099 var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
6100 var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
6101 var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
6102 var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
6103
6104 var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
6105
6106 // flip the variation if required
6107 var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
6108
6109 // flips variation if reference element overflows boundaries
6110 var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
6111
6112 // flips variation if popper content overflows boundaries
6113 var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);
6114
6115 var flippedVariation = flippedVariationByRef || flippedVariationByContent;
6116
6117 if (overlapsRef || overflowsBoundaries || flippedVariation) {
6118 // this boolean to detect any flip loop
6119 data.flipped = true;
6120
6121 if (overlapsRef || overflowsBoundaries) {
6122 placement = flipOrder[index + 1];
6123 }
6124
6125 if (flippedVariation) {
6126 variation = getOppositeVariation(variation);
6127 }
6128
6129 data.placement = placement + (variation ? '-' + variation : '');
6130
6131 // this object contains `position`, we want to preserve it along with
6132 // any additional property we may add in the future
6133 data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
6134
6135 data = runModifiers(data.instance.modifiers, data, 'flip');
6136 }
6137 });
6138 return data;
6139}
6140
6141/**
6142 * @function
6143 * @memberof Modifiers
6144 * @argument {Object} data - The data object generated by update method
6145 * @argument {Object} options - Modifiers configuration and options
6146 * @returns {Object} The data object, properly modified
6147 */
6148function keepTogether(data) {
6149 var _data$offsets = data.offsets,
6150 popper = _data$offsets.popper,
6151 reference = _data$offsets.reference;
6152
6153 var placement = data.placement.split('-')[0];
6154 var floor = Math.floor;
6155 var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
6156 var side = isVertical ? 'right' : 'bottom';
6157 var opSide = isVertical ? 'left' : 'top';
6158 var measurement = isVertical ? 'width' : 'height';
6159
6160 if (popper[side] < floor(reference[opSide])) {
6161 data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
6162 }
6163 if (popper[opSide] > floor(reference[side])) {
6164 data.offsets.popper[opSide] = floor(reference[side]);
6165 }
6166
6167 return data;
6168}
6169
6170/**
6171 * Converts a string containing value + unit into a px value number
6172 * @function
6173 * @memberof {modifiers~offset}
6174 * @private
6175 * @argument {String} str - Value + unit string
6176 * @argument {String} measurement - `height` or `width`
6177 * @argument {Object} popperOffsets
6178 * @argument {Object} referenceOffsets
6179 * @returns {Number|String}
6180 * Value in pixels, or original string if no values were extracted
6181 */
6182function toValue(str, measurement, popperOffsets, referenceOffsets) {
6183 // separate value from unit
6184 var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
6185 var value = +split[1];
6186 var unit = split[2];
6187
6188 // If it's not a number it's an operator, I guess
6189 if (!value) {
6190 return str;
6191 }
6192
6193 if (unit.indexOf('%') === 0) {
6194 var element = void 0;
6195 switch (unit) {
6196 case '%p':
6197 element = popperOffsets;
6198 break;
6199 case '%':
6200 case '%r':
6201 default:
6202 element = referenceOffsets;
6203 }
6204
6205 var rect = getClientRect(element);
6206 return rect[measurement] / 100 * value;
6207 } else if (unit === 'vh' || unit === 'vw') {
6208 // if is a vh or vw, we calculate the size based on the viewport
6209 var size = void 0;
6210 if (unit === 'vh') {
6211 size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
6212 } else {
6213 size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
6214 }
6215 return size / 100 * value;
6216 } else {
6217 // if is an explicit pixel unit, we get rid of the unit and keep the value
6218 // if is an implicit unit, it's px, and we return just the value
6219 return value;
6220 }
6221}
6222
6223/**
6224 * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
6225 * @function
6226 * @memberof {modifiers~offset}
6227 * @private
6228 * @argument {String} offset
6229 * @argument {Object} popperOffsets
6230 * @argument {Object} referenceOffsets
6231 * @argument {String} basePlacement
6232 * @returns {Array} a two cells array with x and y offsets in numbers
6233 */
6234function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
6235 var offsets = [0, 0];
6236
6237 // Use height if placement is left or right and index is 0 otherwise use width
6238 // in this way the first offset will use an axis and the second one
6239 // will use the other one
6240 var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
6241
6242 // Split the offset string to obtain a list of values and operands
6243 // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
6244 var fragments = offset.split(/(\+|\-)/).map(function (frag) {
6245 return frag.trim();
6246 });
6247
6248 // Detect if the offset string contains a pair of values or a single one
6249 // they could be separated by comma or space
6250 var divider = fragments.indexOf(find(fragments, function (frag) {
6251 return frag.search(/,|\s/) !== -1;
6252 }));
6253
6254 if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
6255 console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
6256 }
6257
6258 // If divider is found, we divide the list of values and operands to divide
6259 // them by ofset X and Y.
6260 var splitRegex = /\s*,\s*|\s+/;
6261 var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];
6262
6263 // Convert the values with units to absolute pixels to allow our computations
6264 ops = ops.map(function (op, index) {
6265 // Most of the units rely on the orientation of the popper
6266 var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
6267 var mergeWithPrevious = false;
6268 return op
6269 // This aggregates any `+` or `-` sign that aren't considered operators
6270 // e.g.: 10 + +5 => [10, +, +5]
6271 .reduce(function (a, b) {
6272 if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
6273 a[a.length - 1] = b;
6274 mergeWithPrevious = true;
6275 return a;
6276 } else if (mergeWithPrevious) {
6277 a[a.length - 1] += b;
6278 mergeWithPrevious = false;
6279 return a;
6280 } else {
6281 return a.concat(b);
6282 }
6283 }, [])
6284 // Here we convert the string values into number values (in px)
6285 .map(function (str) {
6286 return toValue(str, measurement, popperOffsets, referenceOffsets);
6287 });
6288 });
6289
6290 // Loop trough the offsets arrays and execute the operations
6291 ops.forEach(function (op, index) {
6292 op.forEach(function (frag, index2) {
6293 if (isNumeric(frag)) {
6294 offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
6295 }
6296 });
6297 });
6298 return offsets;
6299}
6300
6301/**
6302 * @function
6303 * @memberof Modifiers
6304 * @argument {Object} data - The data object generated by update method
6305 * @argument {Object} options - Modifiers configuration and options
6306 * @argument {Number|String} options.offset=0
6307 * The offset value as described in the modifier description
6308 * @returns {Object} The data object, properly modified
6309 */
6310function offset(data, _ref) {
6311 var offset = _ref.offset;
6312 var placement = data.placement,
6313 _data$offsets = data.offsets,
6314 popper = _data$offsets.popper,
6315 reference = _data$offsets.reference;
6316
6317 var basePlacement = placement.split('-')[0];
6318
6319 var offsets = void 0;
6320 if (isNumeric(+offset)) {
6321 offsets = [+offset, 0];
6322 } else {
6323 offsets = parseOffset(offset, popper, reference, basePlacement);
6324 }
6325
6326 if (basePlacement === 'left') {
6327 popper.top += offsets[0];
6328 popper.left -= offsets[1];
6329 } else if (basePlacement === 'right') {
6330 popper.top += offsets[0];
6331 popper.left += offsets[1];
6332 } else if (basePlacement === 'top') {
6333 popper.left += offsets[0];
6334 popper.top -= offsets[1];
6335 } else if (basePlacement === 'bottom') {
6336 popper.left += offsets[0];
6337 popper.top += offsets[1];
6338 }
6339
6340 data.popper = popper;
6341 return data;
6342}
6343
6344/**
6345 * @function
6346 * @memberof Modifiers
6347 * @argument {Object} data - The data object generated by `update` method
6348 * @argument {Object} options - Modifiers configuration and options
6349 * @returns {Object} The data object, properly modified
6350 */
6351function preventOverflow(data, options) {
6352 var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
6353
6354 // If offsetParent is the reference element, we really want to
6355 // go one step up and use the next offsetParent as reference to
6356 // avoid to make this modifier completely useless and look like broken
6357 if (data.instance.reference === boundariesElement) {
6358 boundariesElement = getOffsetParent(boundariesElement);
6359 }
6360
6361 // NOTE: DOM access here
6362 // resets the popper's position so that the document size can be calculated excluding
6363 // the size of the popper element itself
6364 var transformProp = getSupportedPropertyName('transform');
6365 var popperStyles = data.instance.popper.style; // assignment to help minification
6366 var top = popperStyles.top,
6367 left = popperStyles.left,
6368 transform = popperStyles[transformProp];
6369
6370 popperStyles.top = '';
6371 popperStyles.left = '';
6372 popperStyles[transformProp] = '';
6373
6374 var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
6375
6376 // NOTE: DOM access here
6377 // restores the original style properties after the offsets have been computed
6378 popperStyles.top = top;
6379 popperStyles.left = left;
6380 popperStyles[transformProp] = transform;
6381
6382 options.boundaries = boundaries;
6383
6384 var order = options.priority;
6385 var popper = data.offsets.popper;
6386
6387 var check = {
6388 primary: function primary(placement) {
6389 var value = popper[placement];
6390 if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
6391 value = Math.max(popper[placement], boundaries[placement]);
6392 }
6393 return defineProperty({}, placement, value);
6394 },
6395 secondary: function secondary(placement) {
6396 var mainSide = placement === 'right' ? 'left' : 'top';
6397 var value = popper[mainSide];
6398 if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
6399 value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
6400 }
6401 return defineProperty({}, mainSide, value);
6402 }
6403 };
6404
6405 order.forEach(function (placement) {
6406 var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
6407 popper = _extends({}, popper, check[side](placement));
6408 });
6409
6410 data.offsets.popper = popper;
6411
6412 return data;
6413}
6414
6415/**
6416 * @function
6417 * @memberof Modifiers
6418 * @argument {Object} data - The data object generated by `update` method
6419 * @argument {Object} options - Modifiers configuration and options
6420 * @returns {Object} The data object, properly modified
6421 */
6422function shift(data) {
6423 var placement = data.placement;
6424 var basePlacement = placement.split('-')[0];
6425 var shiftvariation = placement.split('-')[1];
6426
6427 // if shift shiftvariation is specified, run the modifier
6428 if (shiftvariation) {
6429 var _data$offsets = data.offsets,
6430 reference = _data$offsets.reference,
6431 popper = _data$offsets.popper;
6432
6433 var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
6434 var side = isVertical ? 'left' : 'top';
6435 var measurement = isVertical ? 'width' : 'height';
6436
6437 var shiftOffsets = {
6438 start: defineProperty({}, side, reference[side]),
6439 end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
6440 };
6441
6442 data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
6443 }
6444
6445 return data;
6446}
6447
6448/**
6449 * @function
6450 * @memberof Modifiers
6451 * @argument {Object} data - The data object generated by update method
6452 * @argument {Object} options - Modifiers configuration and options
6453 * @returns {Object} The data object, properly modified
6454 */
6455function hide(data) {
6456 if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
6457 return data;
6458 }
6459
6460 var refRect = data.offsets.reference;
6461 var bound = find(data.instance.modifiers, function (modifier) {
6462 return modifier.name === 'preventOverflow';
6463 }).boundaries;
6464
6465 if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
6466 // Avoid unnecessary DOM access if visibility hasn't changed
6467 if (data.hide === true) {
6468 return data;
6469 }
6470
6471 data.hide = true;
6472 data.attributes['x-out-of-boundaries'] = '';
6473 } else {
6474 // Avoid unnecessary DOM access if visibility hasn't changed
6475 if (data.hide === false) {
6476 return data;
6477 }
6478
6479 data.hide = false;
6480 data.attributes['x-out-of-boundaries'] = false;
6481 }
6482
6483 return data;
6484}
6485
6486/**
6487 * @function
6488 * @memberof Modifiers
6489 * @argument {Object} data - The data object generated by `update` method
6490 * @argument {Object} options - Modifiers configuration and options
6491 * @returns {Object} The data object, properly modified
6492 */
6493function inner(data) {
6494 var placement = data.placement;
6495 var basePlacement = placement.split('-')[0];
6496 var _data$offsets = data.offsets,
6497 popper = _data$offsets.popper,
6498 reference = _data$offsets.reference;
6499
6500 var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
6501
6502 var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
6503
6504 popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
6505
6506 data.placement = getOppositePlacement(placement);
6507 data.offsets.popper = getClientRect(popper);
6508
6509 return data;
6510}
6511
6512/**
6513 * Modifier function, each modifier can have a function of this type assigned
6514 * to its `fn` property.<br />
6515 * These functions will be called on each update, this means that you must
6516 * make sure they are performant enough to avoid performance bottlenecks.
6517 *
6518 * @function ModifierFn
6519 * @argument {dataObject} data - The data object generated by `update` method
6520 * @argument {Object} options - Modifiers configuration and options
6521 * @returns {dataObject} The data object, properly modified
6522 */
6523
6524/**
6525 * Modifiers are plugins used to alter the behavior of your poppers.<br />
6526 * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
6527 * needed by the library.
6528 *
6529 * Usually you don't want to override the `order`, `fn` and `onLoad` props.
6530 * All the other properties are configurations that could be tweaked.
6531 * @namespace modifiers
6532 */
6533var modifiers = {
6534 /**
6535 * Modifier used to shift the popper on the start or end of its reference
6536 * element.<br />
6537 * It will read the variation of the `placement` property.<br />
6538 * It can be one either `-end` or `-start`.
6539 * @memberof modifiers
6540 * @inner
6541 */
6542 shift: {
6543 /** @prop {number} order=100 - Index used to define the order of execution */
6544 order: 100,
6545 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
6546 enabled: true,
6547 /** @prop {ModifierFn} */
6548 fn: shift
6549 },
6550
6551 /**
6552 * The `offset` modifier can shift your popper on both its axis.
6553 *
6554 * It accepts the following units:
6555 * - `px` or unit-less, interpreted as pixels
6556 * - `%` or `%r`, percentage relative to the length of the reference element
6557 * - `%p`, percentage relative to the length of the popper element
6558 * - `vw`, CSS viewport width unit
6559 * - `vh`, CSS viewport height unit
6560 *
6561 * For length is intended the main axis relative to the placement of the popper.<br />
6562 * This means that if the placement is `top` or `bottom`, the length will be the
6563 * `width`. In case of `left` or `right`, it will be the `height`.
6564 *
6565 * You can provide a single value (as `Number` or `String`), or a pair of values
6566 * as `String` divided by a comma or one (or more) white spaces.<br />
6567 * The latter is a deprecated method because it leads to confusion and will be
6568 * removed in v2.<br />
6569 * Additionally, it accepts additions and subtractions between different units.
6570 * Note that multiplications and divisions aren't supported.
6571 *
6572 * Valid examples are:
6573 * ```
6574 * 10
6575 * '10%'
6576 * '10, 10'
6577 * '10%, 10'
6578 * '10 + 10%'
6579 * '10 - 5vh + 3%'
6580 * '-10px + 5vh, 5px - 6%'
6581 * ```
6582 * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
6583 * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
6584 * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).
6585 *
6586 * @memberof modifiers
6587 * @inner
6588 */
6589 offset: {
6590 /** @prop {number} order=200 - Index used to define the order of execution */
6591 order: 200,
6592 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
6593 enabled: true,
6594 /** @prop {ModifierFn} */
6595 fn: offset,
6596 /** @prop {Number|String} offset=0
6597 * The offset value as described in the modifier description
6598 */
6599 offset: 0
6600 },
6601
6602 /**
6603 * Modifier used to prevent the popper from being positioned outside the boundary.
6604 *
6605 * A scenario exists where the reference itself is not within the boundaries.<br />
6606 * We can say it has "escaped the boundaries" — or just "escaped".<br />
6607 * In this case we need to decide whether the popper should either:
6608 *
6609 * - detach from the reference and remain "trapped" in the boundaries, or
6610 * - if it should ignore the boundary and "escape with its reference"
6611 *
6612 * When `escapeWithReference` is set to`true` and reference is completely
6613 * outside its boundaries, the popper will overflow (or completely leave)
6614 * the boundaries in order to remain attached to the edge of the reference.
6615 *
6616 * @memberof modifiers
6617 * @inner
6618 */
6619 preventOverflow: {
6620 /** @prop {number} order=300 - Index used to define the order of execution */
6621 order: 300,
6622 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
6623 enabled: true,
6624 /** @prop {ModifierFn} */
6625 fn: preventOverflow,
6626 /**
6627 * @prop {Array} [priority=['left','right','top','bottom']]
6628 * Popper will try to prevent overflow following these priorities by default,
6629 * then, it could overflow on the left and on top of the `boundariesElement`
6630 */
6631 priority: ['left', 'right', 'top', 'bottom'],
6632 /**
6633 * @prop {number} padding=5
6634 * Amount of pixel used to define a minimum distance between the boundaries
6635 * and the popper. This makes sure the popper always has a little padding
6636 * between the edges of its container
6637 */
6638 padding: 5,
6639 /**
6640 * @prop {String|HTMLElement} boundariesElement='scrollParent'
6641 * Boundaries used by the modifier. Can be `scrollParent`, `window`,
6642 * `viewport` or any DOM element.
6643 */
6644 boundariesElement: 'scrollParent'
6645 },
6646
6647 /**
6648 * Modifier used to make sure the reference and its popper stay near each other
6649 * without leaving any gap between the two. Especially useful when the arrow is
6650 * enabled and you want to ensure that it points to its reference element.
6651 * It cares only about the first axis. You can still have poppers with margin
6652 * between the popper and its reference element.
6653 * @memberof modifiers
6654 * @inner
6655 */
6656 keepTogether: {
6657 /** @prop {number} order=400 - Index used to define the order of execution */
6658 order: 400,
6659 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
6660 enabled: true,
6661 /** @prop {ModifierFn} */
6662 fn: keepTogether
6663 },
6664
6665 /**
6666 * This modifier is used to move the `arrowElement` of the popper to make
6667 * sure it is positioned between the reference element and its popper element.
6668 * It will read the outer size of the `arrowElement` node to detect how many
6669 * pixels of conjunction are needed.
6670 *
6671 * It has no effect if no `arrowElement` is provided.
6672 * @memberof modifiers
6673 * @inner
6674 */
6675 arrow: {
6676 /** @prop {number} order=500 - Index used to define the order of execution */
6677 order: 500,
6678 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
6679 enabled: true,
6680 /** @prop {ModifierFn} */
6681 fn: arrow,
6682 /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
6683 element: '[x-arrow]'
6684 },
6685
6686 /**
6687 * Modifier used to flip the popper's placement when it starts to overlap its
6688 * reference element.
6689 *
6690 * Requires the `preventOverflow` modifier before it in order to work.
6691 *
6692 * **NOTE:** this modifier will interrupt the current update cycle and will
6693 * restart it if it detects the need to flip the placement.
6694 * @memberof modifiers
6695 * @inner
6696 */
6697 flip: {
6698 /** @prop {number} order=600 - Index used to define the order of execution */
6699 order: 600,
6700 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
6701 enabled: true,
6702 /** @prop {ModifierFn} */
6703 fn: flip,
6704 /**
6705 * @prop {String|Array} behavior='flip'
6706 * The behavior used to change the popper's placement. It can be one of
6707 * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
6708 * placements (with optional variations)
6709 */
6710 behavior: 'flip',
6711 /**
6712 * @prop {number} padding=5
6713 * The popper will flip if it hits the edges of the `boundariesElement`
6714 */
6715 padding: 5,
6716 /**
6717 * @prop {String|HTMLElement} boundariesElement='viewport'
6718 * The element which will define the boundaries of the popper position.
6719 * The popper will never be placed outside of the defined boundaries
6720 * (except if `keepTogether` is enabled)
6721 */
6722 boundariesElement: 'viewport',
6723 /**
6724 * @prop {Boolean} flipVariations=false
6725 * The popper will switch placement variation between `-start` and `-end` when
6726 * the reference element overlaps its boundaries.
6727 *
6728 * The original placement should have a set variation.
6729 */
6730 flipVariations: false,
6731 /**
6732 * @prop {Boolean} flipVariationsByContent=false
6733 * The popper will switch placement variation between `-start` and `-end` when
6734 * the popper element overlaps its reference boundaries.
6735 *
6736 * The original placement should have a set variation.
6737 */
6738 flipVariationsByContent: false
6739 },
6740
6741 /**
6742 * Modifier used to make the popper flow toward the inner of the reference element.
6743 * By default, when this modifier is disabled, the popper will be placed outside
6744 * the reference element.
6745 * @memberof modifiers
6746 * @inner
6747 */
6748 inner: {
6749 /** @prop {number} order=700 - Index used to define the order of execution */
6750 order: 700,
6751 /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
6752 enabled: false,
6753 /** @prop {ModifierFn} */
6754 fn: inner
6755 },
6756
6757 /**
6758 * Modifier used to hide the popper when its reference element is outside of the
6759 * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
6760 * be used to hide with a CSS selector the popper when its reference is
6761 * out of boundaries.
6762 *
6763 * Requires the `preventOverflow` modifier before it in order to work.
6764 * @memberof modifiers
6765 * @inner
6766 */
6767 hide: {
6768 /** @prop {number} order=800 - Index used to define the order of execution */
6769 order: 800,
6770 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
6771 enabled: true,
6772 /** @prop {ModifierFn} */
6773 fn: hide
6774 },
6775
6776 /**
6777 * Computes the style that will be applied to the popper element to gets
6778 * properly positioned.
6779 *
6780 * Note that this modifier will not touch the DOM, it just prepares the styles
6781 * so that `applyStyle` modifier can apply it. This separation is useful
6782 * in case you need to replace `applyStyle` with a custom implementation.
6783 *
6784 * This modifier has `850` as `order` value to maintain backward compatibility
6785 * with previous versions of Popper.js. Expect the modifiers ordering method
6786 * to change in future major versions of the library.
6787 *
6788 * @memberof modifiers
6789 * @inner
6790 */
6791 computeStyle: {
6792 /** @prop {number} order=850 - Index used to define the order of execution */
6793 order: 850,
6794 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
6795 enabled: true,
6796 /** @prop {ModifierFn} */
6797 fn: computeStyle,
6798 /**
6799 * @prop {Boolean} gpuAcceleration=true
6800 * If true, it uses the CSS 3D transformation to position the popper.
6801 * Otherwise, it will use the `top` and `left` properties
6802 */
6803 gpuAcceleration: true,
6804 /**
6805 * @prop {string} [x='bottom']
6806 * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
6807 * Change this if your popper should grow in a direction different from `bottom`
6808 */
6809 x: 'bottom',
6810 /**
6811 * @prop {string} [x='left']
6812 * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
6813 * Change this if your popper should grow in a direction different from `right`
6814 */
6815 y: 'right'
6816 },
6817
6818 /**
6819 * Applies the computed styles to the popper element.
6820 *
6821 * All the DOM manipulations are limited to this modifier. This is useful in case
6822 * you want to integrate Popper.js inside a framework or view library and you
6823 * want to delegate all the DOM manipulations to it.
6824 *
6825 * Note that if you disable this modifier, you must make sure the popper element
6826 * has its position set to `absolute` before Popper.js can do its work!
6827 *
6828 * Just disable this modifier and define your own to achieve the desired effect.
6829 *
6830 * @memberof modifiers
6831 * @inner
6832 */
6833 applyStyle: {
6834 /** @prop {number} order=900 - Index used to define the order of execution */
6835 order: 900,
6836 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
6837 enabled: true,
6838 /** @prop {ModifierFn} */
6839 fn: applyStyle,
6840 /** @prop {Function} */
6841 onLoad: applyStyleOnLoad,
6842 /**
6843 * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
6844 * @prop {Boolean} gpuAcceleration=true
6845 * If true, it uses the CSS 3D transformation to position the popper.
6846 * Otherwise, it will use the `top` and `left` properties
6847 */
6848 gpuAcceleration: undefined
6849 }
6850};
6851
6852/**
6853 * The `dataObject` is an object containing all the information used by Popper.js.
6854 * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
6855 * @name dataObject
6856 * @property {Object} data.instance The Popper.js instance
6857 * @property {String} data.placement Placement applied to popper
6858 * @property {String} data.originalPlacement Placement originally defined on init
6859 * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
6860 * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper
6861 * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
6862 * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)
6863 * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)
6864 * @property {Object} data.boundaries Offsets of the popper boundaries
6865 * @property {Object} data.offsets The measurements of popper, reference and arrow elements
6866 * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
6867 * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
6868 * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
6869 */
6870
6871/**
6872 * Default options provided to Popper.js constructor.<br />
6873 * These can be overridden using the `options` argument of Popper.js.<br />
6874 * To override an option, simply pass an object with the same
6875 * structure of the `options` object, as the 3rd argument. For example:
6876 * ```
6877 * new Popper(ref, pop, {
6878 * modifiers: {
6879 * preventOverflow: { enabled: false }
6880 * }
6881 * })
6882 * ```
6883 * @type {Object}
6884 * @static
6885 * @memberof Popper
6886 */
6887var Defaults = {
6888 /**
6889 * Popper's placement.
6890 * @prop {Popper.placements} placement='bottom'
6891 */
6892 placement: 'bottom',
6893
6894 /**
6895 * Set this to true if you want popper to position it self in 'fixed' mode
6896 * @prop {Boolean} positionFixed=false
6897 */
6898 positionFixed: false,
6899
6900 /**
6901 * Whether events (resize, scroll) are initially enabled.
6902 * @prop {Boolean} eventsEnabled=true
6903 */
6904 eventsEnabled: true,
6905
6906 /**
6907 * Set to true if you want to automatically remove the popper when
6908 * you call the `destroy` method.
6909 * @prop {Boolean} removeOnDestroy=false
6910 */
6911 removeOnDestroy: false,
6912
6913 /**
6914 * Callback called when the popper is created.<br />
6915 * By default, it is set to no-op.<br />
6916 * Access Popper.js instance with `data.instance`.
6917 * @prop {onCreate}
6918 */
6919 onCreate: function onCreate() {},
6920
6921 /**
6922 * Callback called when the popper is updated. This callback is not called
6923 * on the initialization/creation of the popper, but only on subsequent
6924 * updates.<br />
6925 * By default, it is set to no-op.<br />
6926 * Access Popper.js instance with `data.instance`.
6927 * @prop {onUpdate}
6928 */
6929 onUpdate: function onUpdate() {},
6930
6931 /**
6932 * List of modifiers used to modify the offsets before they are applied to the popper.
6933 * They provide most of the functionalities of Popper.js.
6934 * @prop {modifiers}
6935 */
6936 modifiers: modifiers
6937};
6938
6939/**
6940 * @callback onCreate
6941 * @param {dataObject} data
6942 */
6943
6944/**
6945 * @callback onUpdate
6946 * @param {dataObject} data
6947 */
6948
6949// Utils
6950// Methods
6951var Popper = function () {
6952 /**
6953 * Creates a new Popper.js instance.
6954 * @class Popper
6955 * @param {Element|referenceObject} reference - The reference element used to position the popper
6956 * @param {Element} popper - The HTML / XML element used as the popper
6957 * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
6958 * @return {Object} instance - The generated Popper.js instance
6959 */
6960 function Popper(reference, popper) {
6961 var _this = this;
6962
6963 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
6964 classCallCheck(this, Popper);
6965
6966 this.scheduleUpdate = function () {
6967 return requestAnimationFrame(_this.update);
6968 };
6969
6970 // make update() debounced, so that it only runs at most once-per-tick
6971 this.update = debounce(this.update.bind(this));
6972
6973 // with {} we create a new object with the options inside it
6974 this.options = _extends({}, Popper.Defaults, options);
6975
6976 // init state
6977 this.state = {
6978 isDestroyed: false,
6979 isCreated: false,
6980 scrollParents: []
6981 };
6982
6983 // get reference and popper elements (allow jQuery wrappers)
6984 this.reference = reference && reference.jquery ? reference[0] : reference;
6985 this.popper = popper && popper.jquery ? popper[0] : popper;
6986
6987 // Deep merge modifiers options
6988 this.options.modifiers = {};
6989 Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
6990 _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
6991 });
6992
6993 // Refactoring modifiers' list (Object => Array)
6994 this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
6995 return _extends({
6996 name: name
6997 }, _this.options.modifiers[name]);
6998 })
6999 // sort the modifiers by order
7000 .sort(function (a, b) {
7001 return a.order - b.order;
7002 });
7003
7004 // modifiers have the ability to execute arbitrary code when Popper.js get inited
7005 // such code is executed in the same order of its modifier
7006 // they could add new properties to their options configuration
7007 // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
7008 this.modifiers.forEach(function (modifierOptions) {
7009 if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
7010 modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
7011 }
7012 });
7013
7014 // fire the first update to position the popper in the right place
7015 this.update();
7016
7017 var eventsEnabled = this.options.eventsEnabled;
7018 if (eventsEnabled) {
7019 // setup event listeners, they will take care of update the position in specific situations
7020 this.enableEventListeners();
7021 }
7022
7023 this.state.eventsEnabled = eventsEnabled;
7024 }
7025
7026 // We can't use class properties because they don't get listed in the
7027 // class prototype and break stuff like Sinon stubs
7028
7029
7030 createClass(Popper, [{
7031 key: 'update',
7032 value: function update$$1() {
7033 return update.call(this);
7034 }
7035 }, {
7036 key: 'destroy',
7037 value: function destroy$$1() {
7038 return destroy.call(this);
7039 }
7040 }, {
7041 key: 'enableEventListeners',
7042 value: function enableEventListeners$$1() {
7043 return enableEventListeners.call(this);
7044 }
7045 }, {
7046 key: 'disableEventListeners',
7047 value: function disableEventListeners$$1() {
7048 return disableEventListeners.call(this);
7049 }
7050
7051 /**
7052 * Schedules an update. It will run on the next UI update available.
7053 * @method scheduleUpdate
7054 * @memberof Popper
7055 */
7056
7057
7058 /**
7059 * Collection of utilities useful when writing custom modifiers.
7060 * Starting from version 1.7, this method is available only if you
7061 * include `popper-utils.js` before `popper.js`.
7062 *
7063 * **DEPRECATION**: This way to access PopperUtils is deprecated
7064 * and will be removed in v2! Use the PopperUtils module directly instead.
7065 * Due to the high instability of the methods contained in Utils, we can't
7066 * guarantee them to follow semver. Use them at your own risk!
7067 * @static
7068 * @private
7069 * @type {Object}
7070 * @deprecated since version 1.8
7071 * @member Utils
7072 * @memberof Popper
7073 */
7074
7075 }]);
7076 return Popper;
7077}();
7078
7079/**
7080 * The `referenceObject` is an object that provides an interface compatible with Popper.js
7081 * and lets you use it as replacement of a real DOM node.<br />
7082 * You can use this method to position a popper relatively to a set of coordinates
7083 * in case you don't have a DOM node to use as reference.
7084 *
7085 * ```
7086 * new Popper(referenceObject, popperNode);
7087 * ```
7088 *
7089 * NB: This feature isn't supported in Internet Explorer 10.
7090 * @name referenceObject
7091 * @property {Function} data.getBoundingClientRect
7092 * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
7093 * @property {number} data.clientWidth
7094 * An ES6 getter that will return the width of the virtual reference element.
7095 * @property {number} data.clientHeight
7096 * An ES6 getter that will return the height of the virtual reference element.
7097 */
7098
7099
7100Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
7101Popper.placements = placements;
7102Popper.Defaults = Defaults;
7103
7104/* harmony default export */ __webpack_exports__["a"] = (Popper);
7105//# sourceMappingURL=popper.js.map
7106
7107/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("ad89")))
7108
7109/***/ }),
7110
7111/***/ "f13c":
7112/***/ (function(module, exports, __webpack_require__) {
7113
7114// 0 -> Array#forEach
7115// 1 -> Array#map
7116// 2 -> Array#filter
7117// 3 -> Array#some
7118// 4 -> Array#every
7119// 5 -> Array#find
7120// 6 -> Array#findIndex
7121var ctx = __webpack_require__("dd29");
7122var IObject = __webpack_require__("6815");
7123var toObject = __webpack_require__("4051");
7124var toLength = __webpack_require__("64d2");
7125var asc = __webpack_require__("e87c");
7126module.exports = function (TYPE, $create) {
7127 var IS_MAP = TYPE == 1;
7128 var IS_FILTER = TYPE == 2;
7129 var IS_SOME = TYPE == 3;
7130 var IS_EVERY = TYPE == 4;
7131 var IS_FIND_INDEX = TYPE == 6;
7132 var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
7133 var create = $create || asc;
7134 return function ($this, callbackfn, that) {
7135 var O = toObject($this);
7136 var self = IObject(O);
7137 var f = ctx(callbackfn, that, 3);
7138 var length = toLength(self.length);
7139 var index = 0;
7140 var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
7141 var val, res;
7142 for (;length > index; index++) if (NO_HOLES || index in self) {
7143 val = self[index];
7144 res = f(val, index, O);
7145 if (TYPE) {
7146 if (IS_MAP) result[index] = res; // map
7147 else if (res) switch (TYPE) {
7148 case 3: return true; // some
7149 case 5: return val; // find
7150 case 6: return index; // findIndex
7151 case 2: result.push(val); // filter
7152 } else if (IS_EVERY) return false; // every
7153 }
7154 }
7155 return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
7156 };
7157};
7158
7159
7160/***/ }),
7161
7162/***/ "f44d":
7163/***/ (function(module, exports, __webpack_require__) {
7164
7165var isObject = __webpack_require__("df98");
7166var document = __webpack_require__("898f").document;
7167// typeof document.createElement is 'object' in old IE
7168var is = isObject(document) && isObject(document.createElement);
7169module.exports = function (it) {
7170 return is ? document.createElement(it) : {};
7171};
7172
7173
7174/***/ }),
7175
7176/***/ "f49a":
7177/***/ (function(module, exports) {
7178
7179module.exports = function (it) {
7180 if (typeof it != 'function') throw TypeError(it + ' is not a function!');
7181 return it;
7182};
7183
7184
7185/***/ }),
7186
7187/***/ "f650":
7188/***/ (function(module, exports, __webpack_require__) {
7189
7190var dP = __webpack_require__("3c7a");
7191var createDesc = __webpack_require__("7174");
7192module.exports = __webpack_require__("66b6") ? function (object, key, value) {
7193 return dP.f(object, key, createDesc(1, value));
7194} : function (object, key, value) {
7195 object[key] = value;
7196 return object;
7197};
7198
7199
7200/***/ }),
7201
7202/***/ "fa25":
7203/***/ (function(module, exports, __webpack_require__) {
7204
7205// Thank's IE8 for his funny defineProperty
7206module.exports = !__webpack_require__("3f9f")(function () {
7207 return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
7208});
7209
7210
7211/***/ }),
7212
7213/***/ "fbac":
7214/***/ (function(module, exports, __webpack_require__) {
7215
7216module.exports = __webpack_require__("9b5e");
7217
7218/***/ }),
7219
7220/***/ "fc06":
7221/***/ (function(module, exports, __webpack_require__) {
7222
7223var toInteger = __webpack_require__("7c04");
7224var max = Math.max;
7225var min = Math.min;
7226module.exports = function (index, length) {
7227 index = toInteger(index);
7228 return index < 0 ? max(index + length, 0) : min(index, length);
7229};
7230
7231
7232/***/ })
7233
7234/******/ })["default"];
7235//# sourceMappingURL=vueDirectiveTooltip.common.js.map
\No newline at end of file