UNPKG

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