UNPKG

76 kBJavaScriptView Raw
1(function (global, factory) {
2 typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
3 typeof define === 'function' && define.amd ? define(['jquery'], factory) :
4 (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jQuery));
5}(this, (function ($) { 'use strict';
6
7 function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
9 var $__default = /*#__PURE__*/_interopDefaultLegacy($);
10
11 var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
12
13 function createCommonjsModule(fn, module) {
14 return module = { exports: {} }, fn(module, module.exports), module.exports;
15 }
16
17 var check = function (it) {
18 return it && it.Math == Math && it;
19 };
20
21 // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
22 var global_1 =
23 // eslint-disable-next-line no-undef
24 check(typeof globalThis == 'object' && globalThis) ||
25 check(typeof window == 'object' && window) ||
26 check(typeof self == 'object' && self) ||
27 check(typeof commonjsGlobal == 'object' && commonjsGlobal) ||
28 // eslint-disable-next-line no-new-func
29 (function () { return this; })() || Function('return this')();
30
31 var fails = function (exec) {
32 try {
33 return !!exec();
34 } catch (error) {
35 return true;
36 }
37 };
38
39 // Thank's IE8 for his funny defineProperty
40 var descriptors = !fails(function () {
41 return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
42 });
43
44 var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
45 var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
46
47 // Nashorn ~ JDK8 bug
48 var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
49
50 // `Object.prototype.propertyIsEnumerable` method implementation
51 // https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
52 var f = NASHORN_BUG ? function propertyIsEnumerable(V) {
53 var descriptor = getOwnPropertyDescriptor(this, V);
54 return !!descriptor && descriptor.enumerable;
55 } : nativePropertyIsEnumerable;
56
57 var objectPropertyIsEnumerable = {
58 f: f
59 };
60
61 var createPropertyDescriptor = function (bitmap, value) {
62 return {
63 enumerable: !(bitmap & 1),
64 configurable: !(bitmap & 2),
65 writable: !(bitmap & 4),
66 value: value
67 };
68 };
69
70 var toString = {}.toString;
71
72 var classofRaw = function (it) {
73 return toString.call(it).slice(8, -1);
74 };
75
76 var split = ''.split;
77
78 // fallback for non-array-like ES3 and non-enumerable old V8 strings
79 var indexedObject = fails(function () {
80 // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
81 // eslint-disable-next-line no-prototype-builtins
82 return !Object('z').propertyIsEnumerable(0);
83 }) ? function (it) {
84 return classofRaw(it) == 'String' ? split.call(it, '') : Object(it);
85 } : Object;
86
87 // `RequireObjectCoercible` abstract operation
88 // https://tc39.github.io/ecma262/#sec-requireobjectcoercible
89 var requireObjectCoercible = function (it) {
90 if (it == undefined) throw TypeError("Can't call method on " + it);
91 return it;
92 };
93
94 // toObject with fallback for non-array-like ES3 strings
95
96
97
98 var toIndexedObject = function (it) {
99 return indexedObject(requireObjectCoercible(it));
100 };
101
102 var isObject = function (it) {
103 return typeof it === 'object' ? it !== null : typeof it === 'function';
104 };
105
106 // `ToPrimitive` abstract operation
107 // https://tc39.github.io/ecma262/#sec-toprimitive
108 // instead of the ES6 spec version, we didn't implement @@toPrimitive case
109 // and the second argument - flag - preferred type is a string
110 var toPrimitive = function (input, PREFERRED_STRING) {
111 if (!isObject(input)) return input;
112 var fn, val;
113 if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
114 if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
115 if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
116 throw TypeError("Can't convert object to primitive value");
117 };
118
119 var hasOwnProperty = {}.hasOwnProperty;
120
121 var has = function (it, key) {
122 return hasOwnProperty.call(it, key);
123 };
124
125 var document$1 = global_1.document;
126 // typeof document.createElement is 'object' in old IE
127 var EXISTS = isObject(document$1) && isObject(document$1.createElement);
128
129 var documentCreateElement = function (it) {
130 return EXISTS ? document$1.createElement(it) : {};
131 };
132
133 // Thank's IE8 for his funny defineProperty
134 var ie8DomDefine = !descriptors && !fails(function () {
135 return Object.defineProperty(documentCreateElement('div'), 'a', {
136 get: function () { return 7; }
137 }).a != 7;
138 });
139
140 var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
141
142 // `Object.getOwnPropertyDescriptor` method
143 // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
144 var f$1 = descriptors ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
145 O = toIndexedObject(O);
146 P = toPrimitive(P, true);
147 if (ie8DomDefine) try {
148 return nativeGetOwnPropertyDescriptor(O, P);
149 } catch (error) { /* empty */ }
150 if (has(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]);
151 };
152
153 var objectGetOwnPropertyDescriptor = {
154 f: f$1
155 };
156
157 var anObject = function (it) {
158 if (!isObject(it)) {
159 throw TypeError(String(it) + ' is not an object');
160 } return it;
161 };
162
163 var nativeDefineProperty = Object.defineProperty;
164
165 // `Object.defineProperty` method
166 // https://tc39.github.io/ecma262/#sec-object.defineproperty
167 var f$2 = descriptors ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
168 anObject(O);
169 P = toPrimitive(P, true);
170 anObject(Attributes);
171 if (ie8DomDefine) try {
172 return nativeDefineProperty(O, P, Attributes);
173 } catch (error) { /* empty */ }
174 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
175 if ('value' in Attributes) O[P] = Attributes.value;
176 return O;
177 };
178
179 var objectDefineProperty = {
180 f: f$2
181 };
182
183 var createNonEnumerableProperty = descriptors ? function (object, key, value) {
184 return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value));
185 } : function (object, key, value) {
186 object[key] = value;
187 return object;
188 };
189
190 var setGlobal = function (key, value) {
191 try {
192 createNonEnumerableProperty(global_1, key, value);
193 } catch (error) {
194 global_1[key] = value;
195 } return value;
196 };
197
198 var SHARED = '__core-js_shared__';
199 var store = global_1[SHARED] || setGlobal(SHARED, {});
200
201 var sharedStore = store;
202
203 var functionToString = Function.toString;
204
205 // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper
206 if (typeof sharedStore.inspectSource != 'function') {
207 sharedStore.inspectSource = function (it) {
208 return functionToString.call(it);
209 };
210 }
211
212 var inspectSource = sharedStore.inspectSource;
213
214 var WeakMap = global_1.WeakMap;
215
216 var nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));
217
218 var shared = createCommonjsModule(function (module) {
219 (module.exports = function (key, value) {
220 return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {});
221 })('versions', []).push({
222 version: '3.8.1',
223 mode: 'global',
224 copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
225 });
226 });
227
228 var id = 0;
229 var postfix = Math.random();
230
231 var uid = function (key) {
232 return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
233 };
234
235 var keys = shared('keys');
236
237 var sharedKey = function (key) {
238 return keys[key] || (keys[key] = uid(key));
239 };
240
241 var hiddenKeys = {};
242
243 var WeakMap$1 = global_1.WeakMap;
244 var set, get, has$1;
245
246 var enforce = function (it) {
247 return has$1(it) ? get(it) : set(it, {});
248 };
249
250 var getterFor = function (TYPE) {
251 return function (it) {
252 var state;
253 if (!isObject(it) || (state = get(it)).type !== TYPE) {
254 throw TypeError('Incompatible receiver, ' + TYPE + ' required');
255 } return state;
256 };
257 };
258
259 if (nativeWeakMap) {
260 var store$1 = sharedStore.state || (sharedStore.state = new WeakMap$1());
261 var wmget = store$1.get;
262 var wmhas = store$1.has;
263 var wmset = store$1.set;
264 set = function (it, metadata) {
265 metadata.facade = it;
266 wmset.call(store$1, it, metadata);
267 return metadata;
268 };
269 get = function (it) {
270 return wmget.call(store$1, it) || {};
271 };
272 has$1 = function (it) {
273 return wmhas.call(store$1, it);
274 };
275 } else {
276 var STATE = sharedKey('state');
277 hiddenKeys[STATE] = true;
278 set = function (it, metadata) {
279 metadata.facade = it;
280 createNonEnumerableProperty(it, STATE, metadata);
281 return metadata;
282 };
283 get = function (it) {
284 return has(it, STATE) ? it[STATE] : {};
285 };
286 has$1 = function (it) {
287 return has(it, STATE);
288 };
289 }
290
291 var internalState = {
292 set: set,
293 get: get,
294 has: has$1,
295 enforce: enforce,
296 getterFor: getterFor
297 };
298
299 var redefine = createCommonjsModule(function (module) {
300 var getInternalState = internalState.get;
301 var enforceInternalState = internalState.enforce;
302 var TEMPLATE = String(String).split('String');
303
304 (module.exports = function (O, key, value, options) {
305 var unsafe = options ? !!options.unsafe : false;
306 var simple = options ? !!options.enumerable : false;
307 var noTargetGet = options ? !!options.noTargetGet : false;
308 var state;
309 if (typeof value == 'function') {
310 if (typeof key == 'string' && !has(value, 'name')) {
311 createNonEnumerableProperty(value, 'name', key);
312 }
313 state = enforceInternalState(value);
314 if (!state.source) {
315 state.source = TEMPLATE.join(typeof key == 'string' ? key : '');
316 }
317 }
318 if (O === global_1) {
319 if (simple) O[key] = value;
320 else setGlobal(key, value);
321 return;
322 } else if (!unsafe) {
323 delete O[key];
324 } else if (!noTargetGet && O[key]) {
325 simple = true;
326 }
327 if (simple) O[key] = value;
328 else createNonEnumerableProperty(O, key, value);
329 // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
330 })(Function.prototype, 'toString', function toString() {
331 return typeof this == 'function' && getInternalState(this).source || inspectSource(this);
332 });
333 });
334
335 var path = global_1;
336
337 var aFunction = function (variable) {
338 return typeof variable == 'function' ? variable : undefined;
339 };
340
341 var getBuiltIn = function (namespace, method) {
342 return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global_1[namespace])
343 : path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method];
344 };
345
346 var ceil = Math.ceil;
347 var floor = Math.floor;
348
349 // `ToInteger` abstract operation
350 // https://tc39.github.io/ecma262/#sec-tointeger
351 var toInteger = function (argument) {
352 return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
353 };
354
355 var min = Math.min;
356
357 // `ToLength` abstract operation
358 // https://tc39.github.io/ecma262/#sec-tolength
359 var toLength = function (argument) {
360 return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
361 };
362
363 var max = Math.max;
364 var min$1 = Math.min;
365
366 // Helper for a popular repeating case of the spec:
367 // Let integer be ? ToInteger(index).
368 // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
369 var toAbsoluteIndex = function (index, length) {
370 var integer = toInteger(index);
371 return integer < 0 ? max(integer + length, 0) : min$1(integer, length);
372 };
373
374 // `Array.prototype.{ indexOf, includes }` methods implementation
375 var createMethod = function (IS_INCLUDES) {
376 return function ($this, el, fromIndex) {
377 var O = toIndexedObject($this);
378 var length = toLength(O.length);
379 var index = toAbsoluteIndex(fromIndex, length);
380 var value;
381 // Array#includes uses SameValueZero equality algorithm
382 // eslint-disable-next-line no-self-compare
383 if (IS_INCLUDES && el != el) while (length > index) {
384 value = O[index++];
385 // eslint-disable-next-line no-self-compare
386 if (value != value) return true;
387 // Array#indexOf ignores holes, Array#includes - not
388 } else for (;length > index; index++) {
389 if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
390 } return !IS_INCLUDES && -1;
391 };
392 };
393
394 var arrayIncludes = {
395 // `Array.prototype.includes` method
396 // https://tc39.github.io/ecma262/#sec-array.prototype.includes
397 includes: createMethod(true),
398 // `Array.prototype.indexOf` method
399 // https://tc39.github.io/ecma262/#sec-array.prototype.indexof
400 indexOf: createMethod(false)
401 };
402
403 var indexOf = arrayIncludes.indexOf;
404
405
406 var objectKeysInternal = function (object, names) {
407 var O = toIndexedObject(object);
408 var i = 0;
409 var result = [];
410 var key;
411 for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
412 // Don't enum bug & hidden keys
413 while (names.length > i) if (has(O, key = names[i++])) {
414 ~indexOf(result, key) || result.push(key);
415 }
416 return result;
417 };
418
419 // IE8- don't enum bug keys
420 var enumBugKeys = [
421 'constructor',
422 'hasOwnProperty',
423 'isPrototypeOf',
424 'propertyIsEnumerable',
425 'toLocaleString',
426 'toString',
427 'valueOf'
428 ];
429
430 var hiddenKeys$1 = enumBugKeys.concat('length', 'prototype');
431
432 // `Object.getOwnPropertyNames` method
433 // https://tc39.github.io/ecma262/#sec-object.getownpropertynames
434 var f$3 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
435 return objectKeysInternal(O, hiddenKeys$1);
436 };
437
438 var objectGetOwnPropertyNames = {
439 f: f$3
440 };
441
442 var f$4 = Object.getOwnPropertySymbols;
443
444 var objectGetOwnPropertySymbols = {
445 f: f$4
446 };
447
448 // all object keys, includes non-enumerable and symbols
449 var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
450 var keys = objectGetOwnPropertyNames.f(anObject(it));
451 var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
452 return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
453 };
454
455 var copyConstructorProperties = function (target, source) {
456 var keys = ownKeys(source);
457 var defineProperty = objectDefineProperty.f;
458 var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
459 for (var i = 0; i < keys.length; i++) {
460 var key = keys[i];
461 if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
462 }
463 };
464
465 var replacement = /#|\.prototype\./;
466
467 var isForced = function (feature, detection) {
468 var value = data[normalize(feature)];
469 return value == POLYFILL ? true
470 : value == NATIVE ? false
471 : typeof detection == 'function' ? fails(detection)
472 : !!detection;
473 };
474
475 var normalize = isForced.normalize = function (string) {
476 return String(string).replace(replacement, '.').toLowerCase();
477 };
478
479 var data = isForced.data = {};
480 var NATIVE = isForced.NATIVE = 'N';
481 var POLYFILL = isForced.POLYFILL = 'P';
482
483 var isForced_1 = isForced;
484
485 var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
486
487
488
489
490
491
492 /*
493 options.target - name of the target object
494 options.global - target is the global object
495 options.stat - export as static methods of target
496 options.proto - export as prototype methods of target
497 options.real - real prototype method for the `pure` version
498 options.forced - export even if the native feature is available
499 options.bind - bind methods to the target, required for the `pure` version
500 options.wrap - wrap constructors to preventing global pollution, required for the `pure` version
501 options.unsafe - use the simple assignment of property instead of delete + defineProperty
502 options.sham - add a flag to not completely full polyfills
503 options.enumerable - export as enumerable property
504 options.noTargetGet - prevent calling a getter on target
505 */
506 var _export = function (options, source) {
507 var TARGET = options.target;
508 var GLOBAL = options.global;
509 var STATIC = options.stat;
510 var FORCED, target, key, targetProperty, sourceProperty, descriptor;
511 if (GLOBAL) {
512 target = global_1;
513 } else if (STATIC) {
514 target = global_1[TARGET] || setGlobal(TARGET, {});
515 } else {
516 target = (global_1[TARGET] || {}).prototype;
517 }
518 if (target) for (key in source) {
519 sourceProperty = source[key];
520 if (options.noTargetGet) {
521 descriptor = getOwnPropertyDescriptor$1(target, key);
522 targetProperty = descriptor && descriptor.value;
523 } else targetProperty = target[key];
524 FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
525 // contained in target
526 if (!FORCED && targetProperty !== undefined) {
527 if (typeof sourceProperty === typeof targetProperty) continue;
528 copyConstructorProperties(sourceProperty, targetProperty);
529 }
530 // add a flag to not completely full polyfills
531 if (options.sham || (targetProperty && targetProperty.sham)) {
532 createNonEnumerableProperty(sourceProperty, 'sham', true);
533 }
534 // extend global
535 redefine(target, key, sourceProperty, options);
536 }
537 };
538
539 // `IsArray` abstract operation
540 // https://tc39.github.io/ecma262/#sec-isarray
541 var isArray = Array.isArray || function isArray(arg) {
542 return classofRaw(arg) == 'Array';
543 };
544
545 // `ToObject` abstract operation
546 // https://tc39.github.io/ecma262/#sec-toobject
547 var toObject = function (argument) {
548 return Object(requireObjectCoercible(argument));
549 };
550
551 var createProperty = function (object, key, value) {
552 var propertyKey = toPrimitive(key);
553 if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
554 else object[propertyKey] = value;
555 };
556
557 var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
558 // Chrome 38 Symbol has incorrect toString conversion
559 // eslint-disable-next-line no-undef
560 return !String(Symbol());
561 });
562
563 var useSymbolAsUid = nativeSymbol
564 // eslint-disable-next-line no-undef
565 && !Symbol.sham
566 // eslint-disable-next-line no-undef
567 && typeof Symbol.iterator == 'symbol';
568
569 var WellKnownSymbolsStore = shared('wks');
570 var Symbol$1 = global_1.Symbol;
571 var createWellKnownSymbol = useSymbolAsUid ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid;
572
573 var wellKnownSymbol = function (name) {
574 if (!has(WellKnownSymbolsStore, name)) {
575 if (nativeSymbol && has(Symbol$1, name)) WellKnownSymbolsStore[name] = Symbol$1[name];
576 else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
577 } return WellKnownSymbolsStore[name];
578 };
579
580 var SPECIES = wellKnownSymbol('species');
581
582 // `ArraySpeciesCreate` abstract operation
583 // https://tc39.github.io/ecma262/#sec-arrayspeciescreate
584 var arraySpeciesCreate = function (originalArray, length) {
585 var C;
586 if (isArray(originalArray)) {
587 C = originalArray.constructor;
588 // cross-realm fallback
589 if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
590 else if (isObject(C)) {
591 C = C[SPECIES];
592 if (C === null) C = undefined;
593 }
594 } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
595 };
596
597 var engineUserAgent = getBuiltIn('navigator', 'userAgent') || '';
598
599 var process = global_1.process;
600 var versions = process && process.versions;
601 var v8 = versions && versions.v8;
602 var match, version;
603
604 if (v8) {
605 match = v8.split('.');
606 version = match[0] + match[1];
607 } else if (engineUserAgent) {
608 match = engineUserAgent.match(/Edge\/(\d+)/);
609 if (!match || match[1] >= 74) {
610 match = engineUserAgent.match(/Chrome\/(\d+)/);
611 if (match) version = match[1];
612 }
613 }
614
615 var engineV8Version = version && +version;
616
617 var SPECIES$1 = wellKnownSymbol('species');
618
619 var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
620 // We can't use this feature detection in V8 since it causes
621 // deoptimization and serious performance degradation
622 // https://github.com/zloirock/core-js/issues/677
623 return engineV8Version >= 51 || !fails(function () {
624 var array = [];
625 var constructor = array.constructor = {};
626 constructor[SPECIES$1] = function () {
627 return { foo: 1 };
628 };
629 return array[METHOD_NAME](Boolean).foo !== 1;
630 });
631 };
632
633 var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
634 var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
635 var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
636
637 // We can't use this feature detection in V8 since it causes
638 // deoptimization and serious performance degradation
639 // https://github.com/zloirock/core-js/issues/679
640 var IS_CONCAT_SPREADABLE_SUPPORT = engineV8Version >= 51 || !fails(function () {
641 var array = [];
642 array[IS_CONCAT_SPREADABLE] = false;
643 return array.concat()[0] !== array;
644 });
645
646 var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
647
648 var isConcatSpreadable = function (O) {
649 if (!isObject(O)) return false;
650 var spreadable = O[IS_CONCAT_SPREADABLE];
651 return spreadable !== undefined ? !!spreadable : isArray(O);
652 };
653
654 var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
655
656 // `Array.prototype.concat` method
657 // https://tc39.github.io/ecma262/#sec-array.prototype.concat
658 // with adding support of @@isConcatSpreadable and @@species
659 _export({ target: 'Array', proto: true, forced: FORCED }, {
660 concat: function concat(arg) { // eslint-disable-line no-unused-vars
661 var O = toObject(this);
662 var A = arraySpeciesCreate(O, 0);
663 var n = 0;
664 var i, k, length, len, E;
665 for (i = -1, length = arguments.length; i < length; i++) {
666 E = i === -1 ? O : arguments[i];
667 if (isConcatSpreadable(E)) {
668 len = toLength(E.length);
669 if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
670 for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
671 } else {
672 if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
673 createProperty(A, n++, E);
674 }
675 }
676 A.length = n;
677 return A;
678 }
679 });
680
681 var aFunction$1 = function (it) {
682 if (typeof it != 'function') {
683 throw TypeError(String(it) + ' is not a function');
684 } return it;
685 };
686
687 // optional / simple context binding
688 var functionBindContext = function (fn, that, length) {
689 aFunction$1(fn);
690 if (that === undefined) return fn;
691 switch (length) {
692 case 0: return function () {
693 return fn.call(that);
694 };
695 case 1: return function (a) {
696 return fn.call(that, a);
697 };
698 case 2: return function (a, b) {
699 return fn.call(that, a, b);
700 };
701 case 3: return function (a, b, c) {
702 return fn.call(that, a, b, c);
703 };
704 }
705 return function (/* ...args */) {
706 return fn.apply(that, arguments);
707 };
708 };
709
710 var push = [].push;
711
712 // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation
713 var createMethod$1 = function (TYPE) {
714 var IS_MAP = TYPE == 1;
715 var IS_FILTER = TYPE == 2;
716 var IS_SOME = TYPE == 3;
717 var IS_EVERY = TYPE == 4;
718 var IS_FIND_INDEX = TYPE == 6;
719 var IS_FILTER_OUT = TYPE == 7;
720 var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
721 return function ($this, callbackfn, that, specificCreate) {
722 var O = toObject($this);
723 var self = indexedObject(O);
724 var boundFunction = functionBindContext(callbackfn, that, 3);
725 var length = toLength(self.length);
726 var index = 0;
727 var create = specificCreate || arraySpeciesCreate;
728 var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;
729 var value, result;
730 for (;length > index; index++) if (NO_HOLES || index in self) {
731 value = self[index];
732 result = boundFunction(value, index, O);
733 if (TYPE) {
734 if (IS_MAP) target[index] = result; // map
735 else if (result) switch (TYPE) {
736 case 3: return true; // some
737 case 5: return value; // find
738 case 6: return index; // findIndex
739 case 2: push.call(target, value); // filter
740 } else switch (TYPE) {
741 case 4: return false; // every
742 case 7: push.call(target, value); // filterOut
743 }
744 }
745 }
746 return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
747 };
748 };
749
750 var arrayIteration = {
751 // `Array.prototype.forEach` method
752 // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
753 forEach: createMethod$1(0),
754 // `Array.prototype.map` method
755 // https://tc39.github.io/ecma262/#sec-array.prototype.map
756 map: createMethod$1(1),
757 // `Array.prototype.filter` method
758 // https://tc39.github.io/ecma262/#sec-array.prototype.filter
759 filter: createMethod$1(2),
760 // `Array.prototype.some` method
761 // https://tc39.github.io/ecma262/#sec-array.prototype.some
762 some: createMethod$1(3),
763 // `Array.prototype.every` method
764 // https://tc39.github.io/ecma262/#sec-array.prototype.every
765 every: createMethod$1(4),
766 // `Array.prototype.find` method
767 // https://tc39.github.io/ecma262/#sec-array.prototype.find
768 find: createMethod$1(5),
769 // `Array.prototype.findIndex` method
770 // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
771 findIndex: createMethod$1(6),
772 // `Array.prototype.filterOut` method
773 // https://github.com/tc39/proposal-array-filtering
774 filterOut: createMethod$1(7)
775 };
776
777 // `Object.keys` method
778 // https://tc39.github.io/ecma262/#sec-object.keys
779 var objectKeys = Object.keys || function keys(O) {
780 return objectKeysInternal(O, enumBugKeys);
781 };
782
783 // `Object.defineProperties` method
784 // https://tc39.github.io/ecma262/#sec-object.defineproperties
785 var objectDefineProperties = descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
786 anObject(O);
787 var keys = objectKeys(Properties);
788 var length = keys.length;
789 var index = 0;
790 var key;
791 while (length > index) objectDefineProperty.f(O, key = keys[index++], Properties[key]);
792 return O;
793 };
794
795 var html = getBuiltIn('document', 'documentElement');
796
797 var GT = '>';
798 var LT = '<';
799 var PROTOTYPE = 'prototype';
800 var SCRIPT = 'script';
801 var IE_PROTO = sharedKey('IE_PROTO');
802
803 var EmptyConstructor = function () { /* empty */ };
804
805 var scriptTag = function (content) {
806 return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
807 };
808
809 // Create object with fake `null` prototype: use ActiveX Object with cleared prototype
810 var NullProtoObjectViaActiveX = function (activeXDocument) {
811 activeXDocument.write(scriptTag(''));
812 activeXDocument.close();
813 var temp = activeXDocument.parentWindow.Object;
814 activeXDocument = null; // avoid memory leak
815 return temp;
816 };
817
818 // Create object with fake `null` prototype: use iframe Object with cleared prototype
819 var NullProtoObjectViaIFrame = function () {
820 // Thrash, waste and sodomy: IE GC bug
821 var iframe = documentCreateElement('iframe');
822 var JS = 'java' + SCRIPT + ':';
823 var iframeDocument;
824 iframe.style.display = 'none';
825 html.appendChild(iframe);
826 // https://github.com/zloirock/core-js/issues/475
827 iframe.src = String(JS);
828 iframeDocument = iframe.contentWindow.document;
829 iframeDocument.open();
830 iframeDocument.write(scriptTag('document.F=Object'));
831 iframeDocument.close();
832 return iframeDocument.F;
833 };
834
835 // Check for document.domain and active x support
836 // No need to use active x approach when document.domain is not set
837 // see https://github.com/es-shims/es5-shim/issues/150
838 // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
839 // avoid IE GC bug
840 var activeXDocument;
841 var NullProtoObject = function () {
842 try {
843 /* global ActiveXObject */
844 activeXDocument = document.domain && new ActiveXObject('htmlfile');
845 } catch (error) { /* ignore */ }
846 NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
847 var length = enumBugKeys.length;
848 while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
849 return NullProtoObject();
850 };
851
852 hiddenKeys[IE_PROTO] = true;
853
854 // `Object.create` method
855 // https://tc39.github.io/ecma262/#sec-object.create
856 var objectCreate = Object.create || function create(O, Properties) {
857 var result;
858 if (O !== null) {
859 EmptyConstructor[PROTOTYPE] = anObject(O);
860 result = new EmptyConstructor();
861 EmptyConstructor[PROTOTYPE] = null;
862 // add "__proto__" for Object.getPrototypeOf polyfill
863 result[IE_PROTO] = O;
864 } else result = NullProtoObject();
865 return Properties === undefined ? result : objectDefineProperties(result, Properties);
866 };
867
868 var UNSCOPABLES = wellKnownSymbol('unscopables');
869 var ArrayPrototype = Array.prototype;
870
871 // Array.prototype[@@unscopables]
872 // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
873 if (ArrayPrototype[UNSCOPABLES] == undefined) {
874 objectDefineProperty.f(ArrayPrototype, UNSCOPABLES, {
875 configurable: true,
876 value: objectCreate(null)
877 });
878 }
879
880 // add a key to Array.prototype[@@unscopables]
881 var addToUnscopables = function (key) {
882 ArrayPrototype[UNSCOPABLES][key] = true;
883 };
884
885 var defineProperty = Object.defineProperty;
886 var cache = {};
887
888 var thrower = function (it) { throw it; };
889
890 var arrayMethodUsesToLength = function (METHOD_NAME, options) {
891 if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];
892 if (!options) options = {};
893 var method = [][METHOD_NAME];
894 var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;
895 var argument0 = has(options, 0) ? options[0] : thrower;
896 var argument1 = has(options, 1) ? options[1] : undefined;
897
898 return cache[METHOD_NAME] = !!method && !fails(function () {
899 if (ACCESSORS && !descriptors) return true;
900 var O = { length: -1 };
901
902 if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });
903 else O[1] = 1;
904
905 method.call(O, argument0, argument1);
906 });
907 };
908
909 var $find = arrayIteration.find;
910
911
912
913 var FIND = 'find';
914 var SKIPS_HOLES = true;
915
916 var USES_TO_LENGTH = arrayMethodUsesToLength(FIND);
917
918 // Shouldn't skip holes
919 if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });
920
921 // `Array.prototype.find` method
922 // https://tc39.github.io/ecma262/#sec-array.prototype.find
923 _export({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {
924 find: function find(callbackfn /* , that = undefined */) {
925 return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
926 }
927 });
928
929 // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
930 addToUnscopables(FIND);
931
932 var arrayMethodIsStrict = function (METHOD_NAME, argument) {
933 var method = [][METHOD_NAME];
934 return !!method && fails(function () {
935 // eslint-disable-next-line no-useless-call,no-throw-literal
936 method.call(null, argument || function () { throw 1; }, 1);
937 });
938 };
939
940 var $forEach = arrayIteration.forEach;
941
942
943
944 var STRICT_METHOD = arrayMethodIsStrict('forEach');
945 var USES_TO_LENGTH$1 = arrayMethodUsesToLength('forEach');
946
947 // `Array.prototype.forEach` method implementation
948 // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
949 var arrayForEach = (!STRICT_METHOD || !USES_TO_LENGTH$1) ? function forEach(callbackfn /* , thisArg */) {
950 return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
951 } : [].forEach;
952
953 // `Array.prototype.forEach` method
954 // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
955 _export({ target: 'Array', proto: true, forced: [].forEach != arrayForEach }, {
956 forEach: arrayForEach
957 });
958
959 var nativeJoin = [].join;
960
961 var ES3_STRINGS = indexedObject != Object;
962 var STRICT_METHOD$1 = arrayMethodIsStrict('join', ',');
963
964 // `Array.prototype.join` method
965 // https://tc39.github.io/ecma262/#sec-array.prototype.join
966 _export({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD$1 }, {
967 join: function join(separator) {
968 return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);
969 }
970 });
971
972 var $map = arrayIteration.map;
973
974
975
976 var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');
977 // FF49- issue
978 var USES_TO_LENGTH$2 = arrayMethodUsesToLength('map');
979
980 // `Array.prototype.map` method
981 // https://tc39.github.io/ecma262/#sec-array.prototype.map
982 // with adding support of @@species
983 _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH$2 }, {
984 map: function map(callbackfn /* , thisArg */) {
985 return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
986 }
987 });
988
989 var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport('slice');
990 var USES_TO_LENGTH$3 = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });
991
992 var SPECIES$2 = wellKnownSymbol('species');
993 var nativeSlice = [].slice;
994 var max$1 = Math.max;
995
996 // `Array.prototype.slice` method
997 // https://tc39.github.io/ecma262/#sec-array.prototype.slice
998 // fallback for not array-like ES3 strings and DOM objects
999 _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 || !USES_TO_LENGTH$3 }, {
1000 slice: function slice(start, end) {
1001 var O = toIndexedObject(this);
1002 var length = toLength(O.length);
1003 var k = toAbsoluteIndex(start, length);
1004 var fin = toAbsoluteIndex(end === undefined ? length : end, length);
1005 // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible
1006 var Constructor, result, n;
1007 if (isArray(O)) {
1008 Constructor = O.constructor;
1009 // cross-realm fallback
1010 if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {
1011 Constructor = undefined;
1012 } else if (isObject(Constructor)) {
1013 Constructor = Constructor[SPECIES$2];
1014 if (Constructor === null) Constructor = undefined;
1015 }
1016 if (Constructor === Array || Constructor === undefined) {
1017 return nativeSlice.call(O, k, fin);
1018 }
1019 }
1020 result = new (Constructor === undefined ? Array : Constructor)(max$1(fin - k, 0));
1021 for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);
1022 result.length = n;
1023 return result;
1024 }
1025 });
1026
1027 var nativeAssign = Object.assign;
1028 var defineProperty$1 = Object.defineProperty;
1029
1030 // `Object.assign` method
1031 // https://tc39.github.io/ecma262/#sec-object.assign
1032 var objectAssign = !nativeAssign || fails(function () {
1033 // should have correct order of operations (Edge bug)
1034 if (descriptors && nativeAssign({ b: 1 }, nativeAssign(defineProperty$1({}, 'a', {
1035 enumerable: true,
1036 get: function () {
1037 defineProperty$1(this, 'b', {
1038 value: 3,
1039 enumerable: false
1040 });
1041 }
1042 }), { b: 2 })).b !== 1) return true;
1043 // should work with symbols and should have deterministic property order (V8 bug)
1044 var A = {};
1045 var B = {};
1046 // eslint-disable-next-line no-undef
1047 var symbol = Symbol();
1048 var alphabet = 'abcdefghijklmnopqrst';
1049 A[symbol] = 7;
1050 alphabet.split('').forEach(function (chr) { B[chr] = chr; });
1051 return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;
1052 }) ? function assign(target, source) { // eslint-disable-line no-unused-vars
1053 var T = toObject(target);
1054 var argumentsLength = arguments.length;
1055 var index = 1;
1056 var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
1057 var propertyIsEnumerable = objectPropertyIsEnumerable.f;
1058 while (argumentsLength > index) {
1059 var S = indexedObject(arguments[index++]);
1060 var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);
1061 var length = keys.length;
1062 var j = 0;
1063 var key;
1064 while (length > j) {
1065 key = keys[j++];
1066 if (!descriptors || propertyIsEnumerable.call(S, key)) T[key] = S[key];
1067 }
1068 } return T;
1069 } : nativeAssign;
1070
1071 // `Object.assign` method
1072 // https://tc39.github.io/ecma262/#sec-object.assign
1073 _export({ target: 'Object', stat: true, forced: Object.assign !== objectAssign }, {
1074 assign: objectAssign
1075 });
1076
1077 // `RegExp.prototype.flags` getter implementation
1078 // https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags
1079 var regexpFlags = function () {
1080 var that = anObject(this);
1081 var result = '';
1082 if (that.global) result += 'g';
1083 if (that.ignoreCase) result += 'i';
1084 if (that.multiline) result += 'm';
1085 if (that.dotAll) result += 's';
1086 if (that.unicode) result += 'u';
1087 if (that.sticky) result += 'y';
1088 return result;
1089 };
1090
1091 // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,
1092 // so we use an intermediate function.
1093 function RE(s, f) {
1094 return RegExp(s, f);
1095 }
1096
1097 var UNSUPPORTED_Y = fails(function () {
1098 // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
1099 var re = RE('a', 'y');
1100 re.lastIndex = 2;
1101 return re.exec('abcd') != null;
1102 });
1103
1104 var BROKEN_CARET = fails(function () {
1105 // https://bugzilla.mozilla.org/show_bug.cgi?id=773687
1106 var re = RE('^r', 'gy');
1107 re.lastIndex = 2;
1108 return re.exec('str') != null;
1109 });
1110
1111 var regexpStickyHelpers = {
1112 UNSUPPORTED_Y: UNSUPPORTED_Y,
1113 BROKEN_CARET: BROKEN_CARET
1114 };
1115
1116 var nativeExec = RegExp.prototype.exec;
1117 // This always refers to the native implementation, because the
1118 // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
1119 // which loads this file before patching the method.
1120 var nativeReplace = String.prototype.replace;
1121
1122 var patchedExec = nativeExec;
1123
1124 var UPDATES_LAST_INDEX_WRONG = (function () {
1125 var re1 = /a/;
1126 var re2 = /b*/g;
1127 nativeExec.call(re1, 'a');
1128 nativeExec.call(re2, 'a');
1129 return re1.lastIndex !== 0 || re2.lastIndex !== 0;
1130 })();
1131
1132 var UNSUPPORTED_Y$1 = regexpStickyHelpers.UNSUPPORTED_Y || regexpStickyHelpers.BROKEN_CARET;
1133
1134 // nonparticipating capturing group, copied from es5-shim's String#split patch.
1135 var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
1136
1137 var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y$1;
1138
1139 if (PATCH) {
1140 patchedExec = function exec(str) {
1141 var re = this;
1142 var lastIndex, reCopy, match, i;
1143 var sticky = UNSUPPORTED_Y$1 && re.sticky;
1144 var flags = regexpFlags.call(re);
1145 var source = re.source;
1146 var charsAdded = 0;
1147 var strCopy = str;
1148
1149 if (sticky) {
1150 flags = flags.replace('y', '');
1151 if (flags.indexOf('g') === -1) {
1152 flags += 'g';
1153 }
1154
1155 strCopy = String(str).slice(re.lastIndex);
1156 // Support anchored sticky behavior.
1157 if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) {
1158 source = '(?: ' + source + ')';
1159 strCopy = ' ' + strCopy;
1160 charsAdded++;
1161 }
1162 // ^(? + rx + ) is needed, in combination with some str slicing, to
1163 // simulate the 'y' flag.
1164 reCopy = new RegExp('^(?:' + source + ')', flags);
1165 }
1166
1167 if (NPCG_INCLUDED) {
1168 reCopy = new RegExp('^' + source + '$(?!\\s)', flags);
1169 }
1170 if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
1171
1172 match = nativeExec.call(sticky ? reCopy : re, strCopy);
1173
1174 if (sticky) {
1175 if (match) {
1176 match.input = match.input.slice(charsAdded);
1177 match[0] = match[0].slice(charsAdded);
1178 match.index = re.lastIndex;
1179 re.lastIndex += match[0].length;
1180 } else re.lastIndex = 0;
1181 } else if (UPDATES_LAST_INDEX_WRONG && match) {
1182 re.lastIndex = re.global ? match.index + match[0].length : lastIndex;
1183 }
1184 if (NPCG_INCLUDED && match && match.length > 1) {
1185 // Fix browsers whose `exec` methods don't consistently return `undefined`
1186 // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
1187 nativeReplace.call(match[0], reCopy, function () {
1188 for (i = 1; i < arguments.length - 2; i++) {
1189 if (arguments[i] === undefined) match[i] = undefined;
1190 }
1191 });
1192 }
1193
1194 return match;
1195 };
1196 }
1197
1198 var regexpExec = patchedExec;
1199
1200 _export({ target: 'RegExp', proto: true, forced: /./.exec !== regexpExec }, {
1201 exec: regexpExec
1202 });
1203
1204 // TODO: Remove from `core-js@4` since it's moved to entry points
1205
1206
1207
1208
1209
1210
1211
1212 var SPECIES$3 = wellKnownSymbol('species');
1213
1214 var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
1215 // #replace needs built-in support for named groups.
1216 // #match works fine because it just return the exec results, even if it has
1217 // a "grops" property.
1218 var re = /./;
1219 re.exec = function () {
1220 var result = [];
1221 result.groups = { a: '7' };
1222 return result;
1223 };
1224 return ''.replace(re, '$<a>') !== '7';
1225 });
1226
1227 // IE <= 11 replaces $0 with the whole match, as if it was $&
1228 // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0
1229 var REPLACE_KEEPS_$0 = (function () {
1230 return 'a'.replace(/./, '$0') === '$0';
1231 })();
1232
1233 var REPLACE = wellKnownSymbol('replace');
1234 // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string
1235 var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {
1236 if (/./[REPLACE]) {
1237 return /./[REPLACE]('a', '$0') === '';
1238 }
1239 return false;
1240 })();
1241
1242 // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
1243 // Weex JS has frozen built-in prototypes, so use try / catch wrapper
1244 var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
1245 var re = /(?:)/;
1246 var originalExec = re.exec;
1247 re.exec = function () { return originalExec.apply(this, arguments); };
1248 var result = 'ab'.split(re);
1249 return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';
1250 });
1251
1252 var fixRegexpWellKnownSymbolLogic = function (KEY, length, exec, sham) {
1253 var SYMBOL = wellKnownSymbol(KEY);
1254
1255 var DELEGATES_TO_SYMBOL = !fails(function () {
1256 // String methods call symbol-named RegEp methods
1257 var O = {};
1258 O[SYMBOL] = function () { return 7; };
1259 return ''[KEY](O) != 7;
1260 });
1261
1262 var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {
1263 // Symbol-named RegExp methods call .exec
1264 var execCalled = false;
1265 var re = /a/;
1266
1267 if (KEY === 'split') {
1268 // We can't use real regex here since it causes deoptimization
1269 // and serious performance degradation in V8
1270 // https://github.com/zloirock/core-js/issues/306
1271 re = {};
1272 // RegExp[@@split] doesn't call the regex's exec method, but first creates
1273 // a new one. We need to return the patched regex when creating the new one.
1274 re.constructor = {};
1275 re.constructor[SPECIES$3] = function () { return re; };
1276 re.flags = '';
1277 re[SYMBOL] = /./[SYMBOL];
1278 }
1279
1280 re.exec = function () { execCalled = true; return null; };
1281
1282 re[SYMBOL]('');
1283 return !execCalled;
1284 });
1285
1286 if (
1287 !DELEGATES_TO_SYMBOL ||
1288 !DELEGATES_TO_EXEC ||
1289 (KEY === 'replace' && !(
1290 REPLACE_SUPPORTS_NAMED_GROUPS &&
1291 REPLACE_KEEPS_$0 &&
1292 !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
1293 )) ||
1294 (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
1295 ) {
1296 var nativeRegExpMethod = /./[SYMBOL];
1297 var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
1298 if (regexp.exec === regexpExec) {
1299 if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
1300 // The native String method already delegates to @@method (this
1301 // polyfilled function), leasing to infinite recursion.
1302 // We avoid it by directly calling the native @@method method.
1303 return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
1304 }
1305 return { done: true, value: nativeMethod.call(str, regexp, arg2) };
1306 }
1307 return { done: false };
1308 }, {
1309 REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,
1310 REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
1311 });
1312 var stringMethod = methods[0];
1313 var regexMethod = methods[1];
1314
1315 redefine(String.prototype, KEY, stringMethod);
1316 redefine(RegExp.prototype, SYMBOL, length == 2
1317 // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
1318 // 21.2.5.11 RegExp.prototype[@@split](string, limit)
1319 ? function (string, arg) { return regexMethod.call(string, this, arg); }
1320 // 21.2.5.6 RegExp.prototype[@@match](string)
1321 // 21.2.5.9 RegExp.prototype[@@search](string)
1322 : function (string) { return regexMethod.call(string, this); }
1323 );
1324 }
1325
1326 if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);
1327 };
1328
1329 // `String.prototype.{ codePointAt, at }` methods implementation
1330 var createMethod$2 = function (CONVERT_TO_STRING) {
1331 return function ($this, pos) {
1332 var S = String(requireObjectCoercible($this));
1333 var position = toInteger(pos);
1334 var size = S.length;
1335 var first, second;
1336 if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
1337 first = S.charCodeAt(position);
1338 return first < 0xD800 || first > 0xDBFF || position + 1 === size
1339 || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
1340 ? CONVERT_TO_STRING ? S.charAt(position) : first
1341 : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
1342 };
1343 };
1344
1345 var stringMultibyte = {
1346 // `String.prototype.codePointAt` method
1347 // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
1348 codeAt: createMethod$2(false),
1349 // `String.prototype.at` method
1350 // https://github.com/mathiasbynens/String.prototype.at
1351 charAt: createMethod$2(true)
1352 };
1353
1354 var charAt = stringMultibyte.charAt;
1355
1356 // `AdvanceStringIndex` abstract operation
1357 // https://tc39.github.io/ecma262/#sec-advancestringindex
1358 var advanceStringIndex = function (S, index, unicode) {
1359 return index + (unicode ? charAt(S, index).length : 1);
1360 };
1361
1362 // `RegExpExec` abstract operation
1363 // https://tc39.github.io/ecma262/#sec-regexpexec
1364 var regexpExecAbstract = function (R, S) {
1365 var exec = R.exec;
1366 if (typeof exec === 'function') {
1367 var result = exec.call(R, S);
1368 if (typeof result !== 'object') {
1369 throw TypeError('RegExp exec method returned something other than an Object or null');
1370 }
1371 return result;
1372 }
1373
1374 if (classofRaw(R) !== 'RegExp') {
1375 throw TypeError('RegExp#exec called on incompatible receiver');
1376 }
1377
1378 return regexpExec.call(R, S);
1379 };
1380
1381 var max$2 = Math.max;
1382 var min$2 = Math.min;
1383 var floor$1 = Math.floor;
1384 var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g;
1385 var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g;
1386
1387 var maybeToString = function (it) {
1388 return it === undefined ? it : String(it);
1389 };
1390
1391 // @@replace logic
1392 fixRegexpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {
1393 var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;
1394 var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;
1395 var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';
1396
1397 return [
1398 // `String.prototype.replace` method
1399 // https://tc39.github.io/ecma262/#sec-string.prototype.replace
1400 function replace(searchValue, replaceValue) {
1401 var O = requireObjectCoercible(this);
1402 var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];
1403 return replacer !== undefined
1404 ? replacer.call(searchValue, O, replaceValue)
1405 : nativeReplace.call(String(O), searchValue, replaceValue);
1406 },
1407 // `RegExp.prototype[@@replace]` method
1408 // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
1409 function (regexp, replaceValue) {
1410 if (
1411 (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||
1412 (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)
1413 ) {
1414 var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);
1415 if (res.done) return res.value;
1416 }
1417
1418 var rx = anObject(regexp);
1419 var S = String(this);
1420
1421 var functionalReplace = typeof replaceValue === 'function';
1422 if (!functionalReplace) replaceValue = String(replaceValue);
1423
1424 var global = rx.global;
1425 if (global) {
1426 var fullUnicode = rx.unicode;
1427 rx.lastIndex = 0;
1428 }
1429 var results = [];
1430 while (true) {
1431 var result = regexpExecAbstract(rx, S);
1432 if (result === null) break;
1433
1434 results.push(result);
1435 if (!global) break;
1436
1437 var matchStr = String(result[0]);
1438 if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
1439 }
1440
1441 var accumulatedResult = '';
1442 var nextSourcePosition = 0;
1443 for (var i = 0; i < results.length; i++) {
1444 result = results[i];
1445
1446 var matched = String(result[0]);
1447 var position = max$2(min$2(toInteger(result.index), S.length), 0);
1448 var captures = [];
1449 // NOTE: This is equivalent to
1450 // captures = result.slice(1).map(maybeToString)
1451 // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
1452 // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
1453 // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
1454 for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
1455 var namedCaptures = result.groups;
1456 if (functionalReplace) {
1457 var replacerArgs = [matched].concat(captures, position, S);
1458 if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
1459 var replacement = String(replaceValue.apply(undefined, replacerArgs));
1460 } else {
1461 replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
1462 }
1463 if (position >= nextSourcePosition) {
1464 accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
1465 nextSourcePosition = position + matched.length;
1466 }
1467 }
1468 return accumulatedResult + S.slice(nextSourcePosition);
1469 }
1470 ];
1471
1472 // https://tc39.github.io/ecma262/#sec-getsubstitution
1473 function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
1474 var tailPos = position + matched.length;
1475 var m = captures.length;
1476 var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
1477 if (namedCaptures !== undefined) {
1478 namedCaptures = toObject(namedCaptures);
1479 symbols = SUBSTITUTION_SYMBOLS;
1480 }
1481 return nativeReplace.call(replacement, symbols, function (match, ch) {
1482 var capture;
1483 switch (ch.charAt(0)) {
1484 case '$': return '$';
1485 case '&': return matched;
1486 case '`': return str.slice(0, position);
1487 case "'": return str.slice(tailPos);
1488 case '<':
1489 capture = namedCaptures[ch.slice(1, -1)];
1490 break;
1491 default: // \d\d?
1492 var n = +ch;
1493 if (n === 0) return match;
1494 if (n > m) {
1495 var f = floor$1(n / 10);
1496 if (f === 0) return match;
1497 if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
1498 return match;
1499 }
1500 capture = captures[n - 1];
1501 }
1502 return capture === undefined ? '' : capture;
1503 });
1504 }
1505 });
1506
1507 var MATCH = wellKnownSymbol('match');
1508
1509 // `IsRegExp` abstract operation
1510 // https://tc39.github.io/ecma262/#sec-isregexp
1511 var isRegexp = function (it) {
1512 var isRegExp;
1513 return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classofRaw(it) == 'RegExp');
1514 };
1515
1516 var SPECIES$4 = wellKnownSymbol('species');
1517
1518 // `SpeciesConstructor` abstract operation
1519 // https://tc39.github.io/ecma262/#sec-speciesconstructor
1520 var speciesConstructor = function (O, defaultConstructor) {
1521 var C = anObject(O).constructor;
1522 var S;
1523 return C === undefined || (S = anObject(C)[SPECIES$4]) == undefined ? defaultConstructor : aFunction$1(S);
1524 };
1525
1526 var arrayPush = [].push;
1527 var min$3 = Math.min;
1528 var MAX_UINT32 = 0xFFFFFFFF;
1529
1530 // babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
1531 var SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });
1532
1533 // @@split logic
1534 fixRegexpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {
1535 var internalSplit;
1536 if (
1537 'abbc'.split(/(b)*/)[1] == 'c' ||
1538 'test'.split(/(?:)/, -1).length != 4 ||
1539 'ab'.split(/(?:ab)*/).length != 2 ||
1540 '.'.split(/(.?)(.?)/).length != 4 ||
1541 '.'.split(/()()/).length > 1 ||
1542 ''.split(/.?/).length
1543 ) {
1544 // based on es5-shim implementation, need to rework it
1545 internalSplit = function (separator, limit) {
1546 var string = String(requireObjectCoercible(this));
1547 var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
1548 if (lim === 0) return [];
1549 if (separator === undefined) return [string];
1550 // If `separator` is not a regex, use native split
1551 if (!isRegexp(separator)) {
1552 return nativeSplit.call(string, separator, lim);
1553 }
1554 var output = [];
1555 var flags = (separator.ignoreCase ? 'i' : '') +
1556 (separator.multiline ? 'm' : '') +
1557 (separator.unicode ? 'u' : '') +
1558 (separator.sticky ? 'y' : '');
1559 var lastLastIndex = 0;
1560 // Make `global` and avoid `lastIndex` issues by working with a copy
1561 var separatorCopy = new RegExp(separator.source, flags + 'g');
1562 var match, lastIndex, lastLength;
1563 while (match = regexpExec.call(separatorCopy, string)) {
1564 lastIndex = separatorCopy.lastIndex;
1565 if (lastIndex > lastLastIndex) {
1566 output.push(string.slice(lastLastIndex, match.index));
1567 if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));
1568 lastLength = match[0].length;
1569 lastLastIndex = lastIndex;
1570 if (output.length >= lim) break;
1571 }
1572 if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop
1573 }
1574 if (lastLastIndex === string.length) {
1575 if (lastLength || !separatorCopy.test('')) output.push('');
1576 } else output.push(string.slice(lastLastIndex));
1577 return output.length > lim ? output.slice(0, lim) : output;
1578 };
1579 // Chakra, V8
1580 } else if ('0'.split(undefined, 0).length) {
1581 internalSplit = function (separator, limit) {
1582 return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);
1583 };
1584 } else internalSplit = nativeSplit;
1585
1586 return [
1587 // `String.prototype.split` method
1588 // https://tc39.github.io/ecma262/#sec-string.prototype.split
1589 function split(separator, limit) {
1590 var O = requireObjectCoercible(this);
1591 var splitter = separator == undefined ? undefined : separator[SPLIT];
1592 return splitter !== undefined
1593 ? splitter.call(separator, O, limit)
1594 : internalSplit.call(String(O), separator, limit);
1595 },
1596 // `RegExp.prototype[@@split]` method
1597 // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
1598 //
1599 // NOTE: This cannot be properly polyfilled in engines that don't support
1600 // the 'y' flag.
1601 function (regexp, limit) {
1602 var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);
1603 if (res.done) return res.value;
1604
1605 var rx = anObject(regexp);
1606 var S = String(this);
1607 var C = speciesConstructor(rx, RegExp);
1608
1609 var unicodeMatching = rx.unicode;
1610 var flags = (rx.ignoreCase ? 'i' : '') +
1611 (rx.multiline ? 'm' : '') +
1612 (rx.unicode ? 'u' : '') +
1613 (SUPPORTS_Y ? 'y' : 'g');
1614
1615 // ^(? + rx + ) is needed, in combination with some S slicing, to
1616 // simulate the 'y' flag.
1617 var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
1618 var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
1619 if (lim === 0) return [];
1620 if (S.length === 0) return regexpExecAbstract(splitter, S) === null ? [S] : [];
1621 var p = 0;
1622 var q = 0;
1623 var A = [];
1624 while (q < S.length) {
1625 splitter.lastIndex = SUPPORTS_Y ? q : 0;
1626 var z = regexpExecAbstract(splitter, SUPPORTS_Y ? S : S.slice(q));
1627 var e;
1628 if (
1629 z === null ||
1630 (e = min$3(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
1631 ) {
1632 q = advanceStringIndex(S, q, unicodeMatching);
1633 } else {
1634 A.push(S.slice(p, q));
1635 if (A.length === lim) return A;
1636 for (var i = 1; i <= z.length - 1; i++) {
1637 A.push(z[i]);
1638 if (A.length === lim) return A;
1639 }
1640 q = p = e;
1641 }
1642 }
1643 A.push(S.slice(p));
1644 return A;
1645 }
1646 ];
1647 }, !SUPPORTS_Y);
1648
1649 // iterable DOM collections
1650 // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods
1651 var domIterables = {
1652 CSSRuleList: 0,
1653 CSSStyleDeclaration: 0,
1654 CSSValueList: 0,
1655 ClientRectList: 0,
1656 DOMRectList: 0,
1657 DOMStringList: 0,
1658 DOMTokenList: 1,
1659 DataTransferItemList: 0,
1660 FileList: 0,
1661 HTMLAllCollection: 0,
1662 HTMLCollection: 0,
1663 HTMLFormElement: 0,
1664 HTMLSelectElement: 0,
1665 MediaList: 0,
1666 MimeTypeArray: 0,
1667 NamedNodeMap: 0,
1668 NodeList: 1,
1669 PaintRequestList: 0,
1670 Plugin: 0,
1671 PluginArray: 0,
1672 SVGLengthList: 0,
1673 SVGNumberList: 0,
1674 SVGPathSegList: 0,
1675 SVGPointList: 0,
1676 SVGStringList: 0,
1677 SVGTransformList: 0,
1678 SourceBufferList: 0,
1679 StyleSheetList: 0,
1680 TextTrackCueList: 0,
1681 TextTrackList: 0,
1682 TouchList: 0
1683 };
1684
1685 for (var COLLECTION_NAME in domIterables) {
1686 var Collection = global_1[COLLECTION_NAME];
1687 var CollectionPrototype = Collection && Collection.prototype;
1688 // some Chrome versions have non-configurable methods on DOMTokenList
1689 if (CollectionPrototype && CollectionPrototype.forEach !== arrayForEach) try {
1690 createNonEnumerableProperty(CollectionPrototype, 'forEach', arrayForEach);
1691 } catch (error) {
1692 CollectionPrototype.forEach = arrayForEach;
1693 }
1694 }
1695
1696 function _classCallCheck(instance, Constructor) {
1697 if (!(instance instanceof Constructor)) {
1698 throw new TypeError("Cannot call a class as a function");
1699 }
1700 }
1701
1702 function _defineProperties(target, props) {
1703 for (var i = 0; i < props.length; i++) {
1704 var descriptor = props[i];
1705 descriptor.enumerable = descriptor.enumerable || false;
1706 descriptor.configurable = true;
1707 if ("value" in descriptor) descriptor.writable = true;
1708 Object.defineProperty(target, descriptor.key, descriptor);
1709 }
1710 }
1711
1712 function _createClass(Constructor, protoProps, staticProps) {
1713 if (protoProps) _defineProperties(Constructor.prototype, protoProps);
1714 if (staticProps) _defineProperties(Constructor, staticProps);
1715 return Constructor;
1716 }
1717
1718 function _defineProperty(obj, key, value) {
1719 if (key in obj) {
1720 Object.defineProperty(obj, key, {
1721 value: value,
1722 enumerable: true,
1723 configurable: true,
1724 writable: true
1725 });
1726 } else {
1727 obj[key] = value;
1728 }
1729
1730 return obj;
1731 }
1732
1733 function _inherits(subClass, superClass) {
1734 if (typeof superClass !== "function" && superClass !== null) {
1735 throw new TypeError("Super expression must either be null or a function");
1736 }
1737
1738 subClass.prototype = Object.create(superClass && superClass.prototype, {
1739 constructor: {
1740 value: subClass,
1741 writable: true,
1742 configurable: true
1743 }
1744 });
1745 if (superClass) _setPrototypeOf(subClass, superClass);
1746 }
1747
1748 function _getPrototypeOf(o) {
1749 _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
1750 return o.__proto__ || Object.getPrototypeOf(o);
1751 };
1752 return _getPrototypeOf(o);
1753 }
1754
1755 function _setPrototypeOf(o, p) {
1756 _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
1757 o.__proto__ = p;
1758 return o;
1759 };
1760
1761 return _setPrototypeOf(o, p);
1762 }
1763
1764 function _isNativeReflectConstruct() {
1765 if (typeof Reflect === "undefined" || !Reflect.construct) return false;
1766 if (Reflect.construct.sham) return false;
1767 if (typeof Proxy === "function") return true;
1768
1769 try {
1770 Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
1771 return true;
1772 } catch (e) {
1773 return false;
1774 }
1775 }
1776
1777 function _assertThisInitialized(self) {
1778 if (self === void 0) {
1779 throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
1780 }
1781
1782 return self;
1783 }
1784
1785 function _possibleConstructorReturn(self, call) {
1786 if (call && (typeof call === "object" || typeof call === "function")) {
1787 return call;
1788 }
1789
1790 return _assertThisInitialized(self);
1791 }
1792
1793 function _createSuper(Derived) {
1794 var hasNativeReflectConstruct = _isNativeReflectConstruct();
1795
1796 return function _createSuperInternal() {
1797 var Super = _getPrototypeOf(Derived),
1798 result;
1799
1800 if (hasNativeReflectConstruct) {
1801 var NewTarget = _getPrototypeOf(this).constructor;
1802
1803 result = Reflect.construct(Super, arguments, NewTarget);
1804 } else {
1805 result = Super.apply(this, arguments);
1806 }
1807
1808 return _possibleConstructorReturn(this, result);
1809 };
1810 }
1811
1812 function _superPropBase(object, property) {
1813 while (!Object.prototype.hasOwnProperty.call(object, property)) {
1814 object = _getPrototypeOf(object);
1815 if (object === null) break;
1816 }
1817
1818 return object;
1819 }
1820
1821 function _get(target, property, receiver) {
1822 if (typeof Reflect !== "undefined" && Reflect.get) {
1823 _get = Reflect.get;
1824 } else {
1825 _get = function _get(target, property, receiver) {
1826 var base = _superPropBase(target, property);
1827
1828 if (!base) return;
1829 var desc = Object.getOwnPropertyDescriptor(base, property);
1830
1831 if (desc.get) {
1832 return desc.get.call(receiver);
1833 }
1834
1835 return desc.value;
1836 };
1837 }
1838
1839 return _get(target, property, receiver || target);
1840 }
1841
1842 function _unsupportedIterableToArray(o, minLen) {
1843 if (!o) return;
1844 if (typeof o === "string") return _arrayLikeToArray(o, minLen);
1845 var n = Object.prototype.toString.call(o).slice(8, -1);
1846 if (n === "Object" && o.constructor) n = o.constructor.name;
1847 if (n === "Map" || n === "Set") return Array.from(o);
1848 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
1849 }
1850
1851 function _arrayLikeToArray(arr, len) {
1852 if (len == null || len > arr.length) len = arr.length;
1853
1854 for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
1855
1856 return arr2;
1857 }
1858
1859 function _createForOfIteratorHelper(o, allowArrayLike) {
1860 var it;
1861
1862 if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
1863 if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
1864 if (it) o = it;
1865 var i = 0;
1866
1867 var F = function () {};
1868
1869 return {
1870 s: F,
1871 n: function () {
1872 if (i >= o.length) return {
1873 done: true
1874 };
1875 return {
1876 done: false,
1877 value: o[i++]
1878 };
1879 },
1880 e: function (e) {
1881 throw e;
1882 },
1883 f: F
1884 };
1885 }
1886
1887 throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1888 }
1889
1890 var normalCompletion = true,
1891 didErr = false,
1892 err;
1893 return {
1894 s: function () {
1895 it = o[Symbol.iterator]();
1896 },
1897 n: function () {
1898 var step = it.next();
1899 normalCompletion = step.done;
1900 return step;
1901 },
1902 e: function (e) {
1903 didErr = true;
1904 err = e;
1905 },
1906 f: function () {
1907 try {
1908 if (!normalCompletion && it.return != null) it.return();
1909 } finally {
1910 if (didErr) throw err;
1911 }
1912 }
1913 };
1914 }
1915
1916 /**
1917 * @author zhixin wen <wenzhixin2010@gmail.com>
1918 * extensions: https://github.com/hhurz/tableExport.jquery.plugin
1919 */
1920
1921 var Utils = $__default['default'].fn.bootstrapTable.utils;
1922 var TYPE_NAME = {
1923 json: 'JSON',
1924 xml: 'XML',
1925 png: 'PNG',
1926 csv: 'CSV',
1927 txt: 'TXT',
1928 sql: 'SQL',
1929 doc: 'MS-Word',
1930 excel: 'MS-Excel',
1931 xlsx: 'MS-Excel (OpenXML)',
1932 powerpoint: 'MS-Powerpoint',
1933 pdf: 'PDF'
1934 };
1935 $__default['default'].extend($__default['default'].fn.bootstrapTable.defaults, {
1936 showExport: false,
1937 exportDataType: 'basic',
1938 // basic, all, selected
1939 exportTypes: ['json', 'xml', 'csv', 'txt', 'sql', 'excel'],
1940 exportOptions: {
1941 onCellHtmlData: function onCellHtmlData(cell, rowIndex, colIndex, htmlData) {
1942 if (cell.is('th')) {
1943 return cell.find('.th-inner').text();
1944 }
1945
1946 return htmlData;
1947 }
1948 },
1949 exportFooter: false
1950 });
1951 $__default['default'].extend($__default['default'].fn.bootstrapTable.columnDefaults, {
1952 forceExport: false,
1953 forceHide: false
1954 });
1955 $__default['default'].extend($__default['default'].fn.bootstrapTable.defaults.icons, {
1956 export: {
1957 bootstrap3: 'glyphicon-export icon-share',
1958 materialize: 'file_download',
1959 'bootstrap-table': 'icon-download'
1960 }[$__default['default'].fn.bootstrapTable.theme] || 'fa-download'
1961 });
1962 $__default['default'].extend($__default['default'].fn.bootstrapTable.locales, {
1963 formatExport: function formatExport() {
1964 return 'Export data';
1965 }
1966 });
1967 $__default['default'].extend($__default['default'].fn.bootstrapTable.defaults, $__default['default'].fn.bootstrapTable.locales);
1968 $__default['default'].fn.bootstrapTable.methods.push('exportTable');
1969 $__default['default'].extend($__default['default'].fn.bootstrapTable.defaults, {
1970 // eslint-disable-next-line no-unused-vars
1971 onExportSaved: function onExportSaved(exportedRows) {
1972 return false;
1973 }
1974 });
1975 $__default['default'].extend($__default['default'].fn.bootstrapTable.Constructor.EVENTS, {
1976 'export-saved.bs.table': 'onExportSaved'
1977 });
1978
1979 $__default['default'].BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) {
1980 _inherits(_class, _$$BootstrapTable);
1981
1982 var _super = _createSuper(_class);
1983
1984 function _class() {
1985 _classCallCheck(this, _class);
1986
1987 return _super.apply(this, arguments);
1988 }
1989
1990 _createClass(_class, [{
1991 key: "initToolbar",
1992 value: function initToolbar() {
1993 var _get2,
1994 _this = this;
1995
1996 var o = this.options;
1997 var exportTypes = o.exportTypes;
1998 this.showToolbar = this.showToolbar || o.showExport;
1999
2000 if (this.options.showExport) {
2001 if (typeof exportTypes === 'string') {
2002 var types = exportTypes.slice(1, -1).replace(/ /g, '').split(',');
2003 exportTypes = types.map(function (t) {
2004 return t.slice(1, -1);
2005 });
2006 }
2007
2008 this.$export = this.$toolbar.find('>.columns div.export');
2009
2010 if (this.$export.length) {
2011 this.updateExportButton();
2012 return;
2013 }
2014
2015 this.buttons = Object.assign(this.buttons, {
2016 export: {
2017 html: exportTypes.length === 1 ? "\n <div class=\"export ".concat(this.constants.classes.buttonsDropdown, "\"\n data-type=\"").concat(exportTypes[0], "\">\n <button class=\"").concat(this.constants.buttonsClass, "\"\n aria-label=\"Export\"\n type=\"button\"\n title=\"").concat(o.formatExport(), "\">\n ").concat(o.showButtonIcons ? Utils.sprintf(this.constants.html.icon, o.iconsPrefix, o.icons.export) : '', "\n ").concat(o.showButtonText ? o.formatExport() : '', "\n </button>\n </div>\n ") : "\n <div class=\"export ".concat(this.constants.classes.buttonsDropdown, "\">\n <button class=\"").concat(this.constants.buttonsClass, " dropdown-toggle\"\n aria-label=\"Export\"\n ").concat(this.constants.dataToggle, "=\"dropdown\"\n type=\"button\"\n title=\"").concat(o.formatExport(), "\">\n ").concat(o.showButtonIcons ? Utils.sprintf(this.constants.html.icon, o.iconsPrefix, o.icons.export) : '', "\n ").concat(o.showButtonText ? o.formatExport() : '', "\n ").concat(this.constants.html.dropdownCaret, "\n </button>\n </div>\n ")
2018 }
2019 });
2020 }
2021
2022 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
2023 args[_key] = arguments[_key];
2024 }
2025
2026 (_get2 = _get(_getPrototypeOf(_class.prototype), "initToolbar", this)).call.apply(_get2, [this].concat(args));
2027
2028 this.$export = this.$toolbar.find('>.columns div.export');
2029
2030 if (!this.options.showExport) {
2031 return;
2032 }
2033
2034 var $menu = $__default['default'](this.constants.html.toolbarDropdown.join(''));
2035 var $items = this.$export;
2036
2037 if (exportTypes.length > 1) {
2038 this.$export.append($menu); // themes support
2039
2040 if ($menu.children().length) {
2041 $menu = $menu.children().eq(0);
2042 }
2043
2044 var _iterator = _createForOfIteratorHelper(exportTypes),
2045 _step;
2046
2047 try {
2048 for (_iterator.s(); !(_step = _iterator.n()).done;) {
2049 var type = _step.value;
2050
2051 if (TYPE_NAME.hasOwnProperty(type)) {
2052 var $item = $__default['default'](Utils.sprintf(this.constants.html.pageDropdownItem, '', TYPE_NAME[type]));
2053 $item.attr('data-type', type);
2054 $menu.append($item);
2055 }
2056 }
2057 } catch (err) {
2058 _iterator.e(err);
2059 } finally {
2060 _iterator.f();
2061 }
2062
2063 $items = $menu.children();
2064 }
2065
2066 this.updateExportButton();
2067 $items.click(function (e) {
2068 e.preventDefault();
2069 var type = $__default['default'](e.currentTarget).data('type');
2070 var exportOptions = {
2071 type: type,
2072 escape: false
2073 };
2074
2075 _this.exportTable(exportOptions);
2076 });
2077 this.handleToolbar();
2078 }
2079 }, {
2080 key: "handleToolbar",
2081 value: function handleToolbar() {
2082 if (!this.$export) {
2083 return;
2084 }
2085
2086 if (_get(_getPrototypeOf(_class.prototype), "handleToolbar", this)) {
2087 _get(_getPrototypeOf(_class.prototype), "handleToolbar", this).call(this);
2088 }
2089 }
2090 }, {
2091 key: "exportTable",
2092 value: function exportTable(options) {
2093 var _this2 = this;
2094
2095 var o = this.options;
2096 var stateField = this.header.stateField;
2097 var isCardView = o.cardView;
2098
2099 var doExport = function doExport(callback) {
2100 if (stateField) {
2101 _this2.hideColumn(stateField);
2102 }
2103
2104 if (isCardView) {
2105 _this2.toggleView();
2106 }
2107
2108 _this2.columns.forEach(function (row) {
2109 if (row.forceHide) {
2110 _this2.hideColumn(row.field);
2111 }
2112 });
2113
2114 var data = _this2.getData();
2115
2116 if (o.detailView && o.detailViewIcon) {
2117 var detailViewIndex = o.detailViewAlign === 'left' ? 0 : _this2.getVisibleFields().length + Utils.getDetailViewIndexOffset(_this2.options);
2118 o.exportOptions.ignoreColumn = [detailViewIndex].concat(o.exportOptions.ignoreColumn || []);
2119 }
2120
2121 if (o.exportFooter) {
2122 var $footerRow = _this2.$tableFooter.find('tr').first();
2123
2124 var footerData = {};
2125 var footerHtml = [];
2126 $__default['default'].each($footerRow.children(), function (index, footerCell) {
2127 var footerCellHtml = $__default['default'](footerCell).children('.th-inner').first().html();
2128 footerData[_this2.columns[index].field] = footerCellHtml === '&nbsp;' ? null : footerCellHtml; // grab footer cell text into cell index-based array
2129
2130 footerHtml.push(footerCellHtml);
2131 });
2132
2133 _this2.$body.append(_this2.$body.children().last()[0].outerHTML);
2134
2135 var $lastTableRow = _this2.$body.children().last();
2136
2137 $__default['default'].each($lastTableRow.children(), function (index, lastTableRowCell) {
2138 $__default['default'](lastTableRowCell).html(footerHtml[index]);
2139 });
2140 }
2141
2142 var hiddenColumns = _this2.getHiddenColumns();
2143
2144 hiddenColumns.forEach(function (row) {
2145 if (row.forceExport) {
2146 _this2.showColumn(row.field);
2147 }
2148 });
2149
2150 if (typeof o.exportOptions.fileName === 'function') {
2151 options.fileName = o.exportOptions.fileName();
2152 }
2153
2154 _this2.$el.tableExport($__default['default'].extend({
2155 onAfterSaveToFile: function onAfterSaveToFile() {
2156 if (o.exportFooter) {
2157 _this2.load(data);
2158 }
2159
2160 if (stateField) {
2161 _this2.showColumn(stateField);
2162 }
2163
2164 if (isCardView) {
2165 _this2.toggleView();
2166 }
2167
2168 hiddenColumns.forEach(function (row) {
2169 if (row.forceExport) {
2170 _this2.hideColumn(row.field);
2171 }
2172 });
2173
2174 _this2.columns.forEach(function (row) {
2175 if (row.forceHide) {
2176 _this2.showColumn(row.field);
2177 }
2178 });
2179
2180 if (callback) callback();
2181 }
2182 }, o.exportOptions, options));
2183 };
2184
2185 if (o.exportDataType === 'all' && o.pagination) {
2186 var eventName = o.sidePagination === 'server' ? 'post-body.bs.table' : 'page-change.bs.table';
2187 var virtualScroll = this.options.virtualScroll;
2188 this.$el.one(eventName, function () {
2189 setTimeout(function () {
2190 doExport(function () {
2191 _this2.options.virtualScroll = virtualScroll;
2192
2193 _this2.togglePagination();
2194 });
2195 }, 0);
2196 });
2197 this.options.virtualScroll = false;
2198 this.togglePagination();
2199 this.trigger('export-saved', this.getData());
2200 } else if (o.exportDataType === 'selected') {
2201 var data = this.getData();
2202 var selectedData = this.getSelections();
2203 var pagination = o.pagination;
2204
2205 if (!selectedData.length) {
2206 return;
2207 }
2208
2209 if (o.sidePagination === 'server') {
2210 data = _defineProperty({
2211 total: o.totalRows
2212 }, this.options.dataField, data);
2213 selectedData = _defineProperty({
2214 total: selectedData.length
2215 }, this.options.dataField, selectedData);
2216 }
2217
2218 this.load(selectedData);
2219
2220 if (pagination) {
2221 this.togglePagination();
2222 }
2223
2224 doExport(function () {
2225 if (pagination) {
2226 _this2.togglePagination();
2227 }
2228
2229 _this2.load(data);
2230 });
2231 this.trigger('export-saved', selectedData);
2232 } else {
2233 doExport();
2234 this.trigger('export-saved', this.getData(true));
2235 }
2236 }
2237 }, {
2238 key: "updateSelected",
2239 value: function updateSelected() {
2240 _get(_getPrototypeOf(_class.prototype), "updateSelected", this).call(this);
2241
2242 this.updateExportButton();
2243 }
2244 }, {
2245 key: "updateExportButton",
2246 value: function updateExportButton() {
2247 if (this.options.exportDataType === 'selected') {
2248 this.$export.find('> button').prop('disabled', !this.getSelections().length);
2249 }
2250 }
2251 }]);
2252
2253 return _class;
2254 }($__default['default'].BootstrapTable);
2255
2256})));