UNPKG

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