hv-monsterdb-userscript
Version:
M-M-M-MONSTER DATABASE!
1,508 lines (1,249 loc) • 251 kB
JavaScript
// ==UserScript==
// @name HentaiVerse Monster Database UserScript
// @description M-M-M-MONSTER DATABASE!
// @namespace https://hentaiverse.org
// @run-at document-idle
// @match *://*.hentaiverse.org/*
// @exclude http*://hentaiverse.org/pages/showequip.php?*
// @exclude *hentaiverse.org/equip/*
// @version 2.0.0
// @author Sukka <https://skk.moe>
// @grant unsafeWindow
// @grant GM.getValue
// @grant GM_getValue
// @grant GM.setValue
// @grant GM_setValue
// @grant GM.deleteValue
// @grant GM_deleteValue
// ==/UserScript==
// ============= vvv SETTINGS vvv =============
const SETTINGS = {
/**
* Debug
*
* true - enable verbose output in console, and access to debug method
* false - disable verbose output in console (default)
*/
debug: false,
/**
* Scan Expire Date
*
* Monsters that haven't been scanned in this number of days will be considered expired.
* In the Isekai, monsters will only expire once per season.
*/
scanExpireDays: 45,
/**
* Scan Highlight Color
*
* Highlight expired monsters (haven't been scanned in "scanExpireDays").
* Set to "false" (without quote) will disable the expired highlight feature.
*
* (In order to be compatible with Monsterbation's "monsterKeyword", only monster letters part will be highlighted)
*/
scanHighlightColor: 'coral',
/**
* Monster Info Box
*
* Monster Database Script provides a draggable float box during battle. If you don't
* like the ui, you can disable it here.
*/
showMonsterInfoBox: true,
/**
* Compact Monster Info Box
*
* true - only show trainer, PL, monster class in the float box, mitigation data will be hidden
* false - show all mitigation data along with trainer, PL, monster class in the float box (default)
*/
compactMonsterInfoBox: false,
/**
* Highlight Monster
*
* Similar to Monsterbation's "monsterKeyword" feature, highlight monsters where the name, id, class, attack matches.
* (In order to be compatible with Monsterbation's "monsterKeyword", only monster letters part will be highlighted)
*
* The configuration accepts an object. The key of the object accepts the color, supports any valid CSS color.
* The value of the object accepts a RegExp (same syntax as Monsterbation 1.3.2.1) or a function that returns boolean value.
*/
highlightMonster: {
/* This matches monsters whose trainer is Noni */
// '#66ccff': /"trainer":"Noni"/,
/**
* This matches monsters
* whose name (or whose trainer name) contains Meiling,
* OR whose PL is 2250,
* OR whose monster id is 70699,
* OR whose monster class is Undead AND attack type is Crushing
*/
// 'red': /(Meiling|"plvl":2250|"monsterId":70699|Undead.*Crushing)/
/**
* If you are an advanced player who can write javascript, I promise you will love this
*
* You can find the type definition of monsterInfo here:
* https://suka.js.org/hv-monsterdb-userscript/interfaces/hvmonsterdatabase.monsterinfo.html
*/
// 'rgb(28, 46, 69)': (monsterInfo) => {
// if (monsterInfo.monsterName.includes('Meiling')) return true;
// if (monsterInfo.plvl > 1700) return true;
// if (monsterInfo.monsterClass !== 'Giant') return true;
// if (monsterInfo.attack === 'Piercing' || monsterInfo.attack === 'Crushing') return true;
// return false
// }
},
/**
* Dark Mode
*
* Made by @raraha (https://forums.e-hentai.org/index.php?showuser=4071895)
* Enable Dark theme for the Monster Info Box
*/
darkMode: false
};
// ============= ^^^ SETTINGS ^^^ =============
/*
* The code below is generated by TypeScript Compiler (http://npm.im/typescript) and Rollup Bundler (https://rollupjs.org/guide/en/)
* If you want to make some modifications, it is recommeneded to build your own script from the source code. The source code is
* released on GitHub under MIT License: https://github.com/SukkaW/hv-monsterdb-userscript
*/
// -+-+-+ DO NOT EDIT THE CODE BELOW THE LINE BY HAND +-+-+-
this.unsafeWindow = this.unsafeWindow || {};
this.unsafeWindow.HVMonsterDB = (function (exports) {
'use strict';
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
var check = function (it) {
return it && it.Math == Math && it;
};
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global$N =
// eslint-disable-next-line es/no-global-this -- safe
check(typeof globalThis == 'object' && globalThis) ||
check(typeof window == 'object' && window) ||
// eslint-disable-next-line no-restricted-globals -- safe
check(typeof self == 'object' && self) ||
check(typeof commonjsGlobal == 'object' && commonjsGlobal) ||
// eslint-disable-next-line no-new-func -- fallback
(function () { return this; })() || Function('return this')();
var objectGetOwnPropertyDescriptor = {};
var fails$j = function (exec) {
try {
return !!exec();
} catch (error) {
return true;
}
};
var fails$i = fails$j;
// Detect IE8's incomplete defineProperty implementation
var descriptors = !fails$i(function () {
// eslint-disable-next-line es/no-object-defineproperty -- required for testing
return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
});
var fails$h = fails$j;
var functionBindNative = !fails$h(function () {
var test = (function () { /* empty */ }).bind();
// eslint-disable-next-line no-prototype-builtins -- safe
return typeof test != 'function' || test.hasOwnProperty('prototype');
});
var NATIVE_BIND$3 = functionBindNative;
var call$t = Function.prototype.call;
var functionCall = NATIVE_BIND$3 ? call$t.bind(call$t) : function () {
return call$t.apply(call$t, arguments);
};
var objectPropertyIsEnumerable = {};
var $propertyIsEnumerable = {}.propertyIsEnumerable;
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
var getOwnPropertyDescriptor$2 = Object.getOwnPropertyDescriptor;
// Nashorn ~ JDK8 bug
var NASHORN_BUG = getOwnPropertyDescriptor$2 && !$propertyIsEnumerable.call({ 1: 2 }, 1);
// `Object.prototype.propertyIsEnumerable` method implementation
// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable
objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
var descriptor = getOwnPropertyDescriptor$2(this, V);
return !!descriptor && descriptor.enumerable;
} : $propertyIsEnumerable;
var createPropertyDescriptor$4 = function (bitmap, value) {
return {
enumerable: !(bitmap & 1),
configurable: !(bitmap & 2),
writable: !(bitmap & 4),
value: value
};
};
var NATIVE_BIND$2 = functionBindNative;
var FunctionPrototype$2 = Function.prototype;
var bind$h = FunctionPrototype$2.bind;
var call$s = FunctionPrototype$2.call;
var uncurryThis$m = NATIVE_BIND$2 && bind$h.bind(call$s, call$s);
var functionUncurryThis = NATIVE_BIND$2 ? function (fn) {
return fn && uncurryThis$m(fn);
} : function (fn) {
return fn && function () {
return call$s.apply(fn, arguments);
};
};
var uncurryThis$l = functionUncurryThis;
var toString$9 = uncurryThis$l({}.toString);
var stringSlice$6 = uncurryThis$l(''.slice);
var classofRaw$1 = function (it) {
return stringSlice$6(toString$9(it), 8, -1);
};
var global$M = global$N;
var uncurryThis$k = functionUncurryThis;
var fails$g = fails$j;
var classof$7 = classofRaw$1;
var Object$5 = global$M.Object;
var split = uncurryThis$k(''.split);
// fallback for non-array-like ES3 and non-enumerable old V8 strings
var indexedObject = fails$g(function () {
// throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
// eslint-disable-next-line no-prototype-builtins -- safe
return !Object$5('z').propertyIsEnumerable(0);
}) ? function (it) {
return classof$7(it) == 'String' ? split(it, '') : Object$5(it);
} : Object$5;
var global$L = global$N;
var TypeError$j = global$L.TypeError;
// `RequireObjectCoercible` abstract operation
// https://tc39.es/ecma262/#sec-requireobjectcoercible
var requireObjectCoercible$5 = function (it) {
if (it == undefined) throw TypeError$j("Can't call method on " + it);
return it;
};
// toObject with fallback for non-array-like ES3 strings
var IndexedObject$1 = indexedObject;
var requireObjectCoercible$4 = requireObjectCoercible$5;
var toIndexedObject$5 = function (it) {
return IndexedObject$1(requireObjectCoercible$4(it));
};
// `IsCallable` abstract operation
// https://tc39.es/ecma262/#sec-iscallable
var isCallable$m = function (argument) {
return typeof argument == 'function';
};
var isCallable$l = isCallable$m;
var isObject$9 = function (it) {
return typeof it == 'object' ? it !== null : isCallable$l(it);
};
var global$K = global$N;
var isCallable$k = isCallable$m;
var aFunction = function (argument) {
return isCallable$k(argument) ? argument : undefined;
};
var getBuiltIn$h = function (namespace, method) {
return arguments.length < 2 ? aFunction(global$K[namespace]) : global$K[namespace] && global$K[namespace][method];
};
var uncurryThis$j = functionUncurryThis;
var objectIsPrototypeOf = uncurryThis$j({}.isPrototypeOf);
var getBuiltIn$g = getBuiltIn$h;
var engineUserAgent = getBuiltIn$g('navigator', 'userAgent') || '';
var global$J = global$N;
var userAgent$3 = engineUserAgent;
var process$4 = global$J.process;
var Deno = global$J.Deno;
var versions = process$4 && process$4.versions || Deno && Deno.version;
var v8 = versions && versions.v8;
var match, version;
if (v8) {
match = v8.split('.');
// in old Chrome, versions of V8 isn't V8 = Chrome / 10
// but their correct versions are not interesting for us
version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);
}
// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`
// so check `userAgent` even if `.v8` exists, but 0
if (!version && userAgent$3) {
match = userAgent$3.match(/Edge\/(\d+)/);
if (!match || match[1] >= 74) {
match = userAgent$3.match(/Chrome\/(\d+)/);
if (match) version = +match[1];
}
}
var engineV8Version = version;
/* eslint-disable es/no-symbol -- required for testing */
var V8_VERSION$1 = engineV8Version;
var fails$f = fails$j;
// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
var nativeSymbol = !!Object.getOwnPropertySymbols && !fails$f(function () {
var symbol = Symbol();
// Chrome 38 Symbol has incorrect toString conversion
// `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
return !String(symbol) || !(Object(symbol) instanceof Symbol) ||
// Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
!Symbol.sham && V8_VERSION$1 && V8_VERSION$1 < 41;
});
/* eslint-disable es/no-symbol -- required for testing */
var NATIVE_SYMBOL$2 = nativeSymbol;
var useSymbolAsUid = NATIVE_SYMBOL$2
&& !Symbol.sham
&& typeof Symbol.iterator == 'symbol';
var global$I = global$N;
var getBuiltIn$f = getBuiltIn$h;
var isCallable$j = isCallable$m;
var isPrototypeOf$4 = objectIsPrototypeOf;
var USE_SYMBOL_AS_UID$1 = useSymbolAsUid;
var Object$4 = global$I.Object;
var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) {
return typeof it == 'symbol';
} : function (it) {
var $Symbol = getBuiltIn$f('Symbol');
return isCallable$j($Symbol) && isPrototypeOf$4($Symbol.prototype, Object$4(it));
};
var global$H = global$N;
var String$5 = global$H.String;
var tryToString$4 = function (argument) {
try {
return String$5(argument);
} catch (error) {
return 'Object';
}
};
var global$G = global$N;
var isCallable$i = isCallable$m;
var tryToString$3 = tryToString$4;
var TypeError$i = global$G.TypeError;
// `Assert: IsCallable(argument) is true`
var aCallable$o = function (argument) {
if (isCallable$i(argument)) return argument;
throw TypeError$i(tryToString$3(argument) + ' is not a function');
};
var aCallable$n = aCallable$o;
// `GetMethod` abstract operation
// https://tc39.es/ecma262/#sec-getmethod
var getMethod$4 = function (V, P) {
var func = V[P];
return func == null ? undefined : aCallable$n(func);
};
var global$F = global$N;
var call$r = functionCall;
var isCallable$h = isCallable$m;
var isObject$8 = isObject$9;
var TypeError$h = global$F.TypeError;
// `OrdinaryToPrimitive` abstract operation
// https://tc39.es/ecma262/#sec-ordinarytoprimitive
var ordinaryToPrimitive$1 = function (input, pref) {
var fn, val;
if (pref === 'string' && isCallable$h(fn = input.toString) && !isObject$8(val = call$r(fn, input))) return val;
if (isCallable$h(fn = input.valueOf) && !isObject$8(val = call$r(fn, input))) return val;
if (pref !== 'string' && isCallable$h(fn = input.toString) && !isObject$8(val = call$r(fn, input))) return val;
throw TypeError$h("Can't convert object to primitive value");
};
var shared$4 = {exports: {}};
var global$E = global$N;
// eslint-disable-next-line es/no-object-defineproperty -- safe
var defineProperty$4 = Object.defineProperty;
var setGlobal$3 = function (key, value) {
try {
defineProperty$4(global$E, key, { value: value, configurable: true, writable: true });
} catch (error) {
global$E[key] = value;
} return value;
};
var global$D = global$N;
var setGlobal$2 = setGlobal$3;
var SHARED = '__core-js_shared__';
var store$3 = global$D[SHARED] || setGlobal$2(SHARED, {});
var sharedStore = store$3;
var store$2 = sharedStore;
(shared$4.exports = function (key, value) {
return store$2[key] || (store$2[key] = value !== undefined ? value : {});
})('versions', []).push({
version: '3.21.1',
mode: 'global',
copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',
license: 'https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE',
source: 'https://github.com/zloirock/core-js'
});
var global$C = global$N;
var requireObjectCoercible$3 = requireObjectCoercible$5;
var Object$3 = global$C.Object;
// `ToObject` abstract operation
// https://tc39.es/ecma262/#sec-toobject
var toObject$4 = function (argument) {
return Object$3(requireObjectCoercible$3(argument));
};
var uncurryThis$i = functionUncurryThis;
var toObject$3 = toObject$4;
var hasOwnProperty = uncurryThis$i({}.hasOwnProperty);
// `HasOwnProperty` abstract operation
// https://tc39.es/ecma262/#sec-hasownproperty
var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) {
return hasOwnProperty(toObject$3(it), key);
};
var uncurryThis$h = functionUncurryThis;
var id = 0;
var postfix = Math.random();
var toString$8 = uncurryThis$h(1.0.toString);
var uid$2 = function (key) {
return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$8(++id + postfix, 36);
};
var global$B = global$N;
var shared$3 = shared$4.exports;
var hasOwn$b = hasOwnProperty_1;
var uid$1 = uid$2;
var NATIVE_SYMBOL$1 = nativeSymbol;
var USE_SYMBOL_AS_UID = useSymbolAsUid;
var WellKnownSymbolsStore = shared$3('wks');
var Symbol$1 = global$B.Symbol;
var symbolFor = Symbol$1 && Symbol$1['for'];
var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1;
var wellKnownSymbol$i = function (name) {
if (!hasOwn$b(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL$1 || typeof WellKnownSymbolsStore[name] == 'string')) {
var description = 'Symbol.' + name;
if (NATIVE_SYMBOL$1 && hasOwn$b(Symbol$1, name)) {
WellKnownSymbolsStore[name] = Symbol$1[name];
} else if (USE_SYMBOL_AS_UID && symbolFor) {
WellKnownSymbolsStore[name] = symbolFor(description);
} else {
WellKnownSymbolsStore[name] = createWellKnownSymbol(description);
}
} return WellKnownSymbolsStore[name];
};
var global$A = global$N;
var call$q = functionCall;
var isObject$7 = isObject$9;
var isSymbol$1 = isSymbol$2;
var getMethod$3 = getMethod$4;
var ordinaryToPrimitive = ordinaryToPrimitive$1;
var wellKnownSymbol$h = wellKnownSymbol$i;
var TypeError$g = global$A.TypeError;
var TO_PRIMITIVE = wellKnownSymbol$h('toPrimitive');
// `ToPrimitive` abstract operation
// https://tc39.es/ecma262/#sec-toprimitive
var toPrimitive$1 = function (input, pref) {
if (!isObject$7(input) || isSymbol$1(input)) return input;
var exoticToPrim = getMethod$3(input, TO_PRIMITIVE);
var result;
if (exoticToPrim) {
if (pref === undefined) pref = 'default';
result = call$q(exoticToPrim, input, pref);
if (!isObject$7(result) || isSymbol$1(result)) return result;
throw TypeError$g("Can't convert object to primitive value");
}
if (pref === undefined) pref = 'number';
return ordinaryToPrimitive(input, pref);
};
var toPrimitive = toPrimitive$1;
var isSymbol = isSymbol$2;
// `ToPropertyKey` abstract operation
// https://tc39.es/ecma262/#sec-topropertykey
var toPropertyKey$3 = function (argument) {
var key = toPrimitive(argument, 'string');
return isSymbol(key) ? key : key + '';
};
var global$z = global$N;
var isObject$6 = isObject$9;
var document$3 = global$z.document;
// typeof document.createElement is 'object' in old IE
var EXISTS$1 = isObject$6(document$3) && isObject$6(document$3.createElement);
var documentCreateElement$2 = function (it) {
return EXISTS$1 ? document$3.createElement(it) : {};
};
var DESCRIPTORS$a = descriptors;
var fails$e = fails$j;
var createElement$2 = documentCreateElement$2;
// Thanks to IE8 for its funny defineProperty
var ie8DomDefine = !DESCRIPTORS$a && !fails$e(function () {
// eslint-disable-next-line es/no-object-defineproperty -- required for testing
return Object.defineProperty(createElement$2('div'), 'a', {
get: function () { return 7; }
}).a != 7;
});
var DESCRIPTORS$9 = descriptors;
var call$p = functionCall;
var propertyIsEnumerableModule = objectPropertyIsEnumerable;
var createPropertyDescriptor$3 = createPropertyDescriptor$4;
var toIndexedObject$4 = toIndexedObject$5;
var toPropertyKey$2 = toPropertyKey$3;
var hasOwn$a = hasOwnProperty_1;
var IE8_DOM_DEFINE$1 = ie8DomDefine;
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor;
// `Object.getOwnPropertyDescriptor` method
// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
objectGetOwnPropertyDescriptor.f = DESCRIPTORS$9 ? $getOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) {
O = toIndexedObject$4(O);
P = toPropertyKey$2(P);
if (IE8_DOM_DEFINE$1) try {
return $getOwnPropertyDescriptor$1(O, P);
} catch (error) { /* empty */ }
if (hasOwn$a(O, P)) return createPropertyDescriptor$3(!call$p(propertyIsEnumerableModule.f, O, P), O[P]);
};
var objectDefineProperty = {};
var DESCRIPTORS$8 = descriptors;
var fails$d = fails$j;
// V8 ~ Chrome 36-
// https://bugs.chromium.org/p/v8/issues/detail?id=3334
var v8PrototypeDefineBug = DESCRIPTORS$8 && fails$d(function () {
// eslint-disable-next-line es/no-object-defineproperty -- required for testing
return Object.defineProperty(function () { /* empty */ }, 'prototype', {
value: 42,
writable: false
}).prototype != 42;
});
var global$y = global$N;
var isObject$5 = isObject$9;
var String$4 = global$y.String;
var TypeError$f = global$y.TypeError;
// `Assert: Type(argument) is Object`
var anObject$F = function (argument) {
if (isObject$5(argument)) return argument;
throw TypeError$f(String$4(argument) + ' is not an object');
};
var global$x = global$N;
var DESCRIPTORS$7 = descriptors;
var IE8_DOM_DEFINE = ie8DomDefine;
var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug;
var anObject$E = anObject$F;
var toPropertyKey$1 = toPropertyKey$3;
var TypeError$e = global$x.TypeError;
// eslint-disable-next-line es/no-object-defineproperty -- safe
var $defineProperty = Object.defineProperty;
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
var ENUMERABLE = 'enumerable';
var CONFIGURABLE$1 = 'configurable';
var WRITABLE = 'writable';
// `Object.defineProperty` method
// https://tc39.es/ecma262/#sec-object.defineproperty
objectDefineProperty.f = DESCRIPTORS$7 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) {
anObject$E(O);
P = toPropertyKey$1(P);
anObject$E(Attributes);
if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {
var current = $getOwnPropertyDescriptor(O, P);
if (current && current[WRITABLE]) {
O[P] = Attributes.value;
Attributes = {
configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1],
enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],
writable: false
};
}
} return $defineProperty(O, P, Attributes);
} : $defineProperty : function defineProperty(O, P, Attributes) {
anObject$E(O);
P = toPropertyKey$1(P);
anObject$E(Attributes);
if (IE8_DOM_DEFINE) try {
return $defineProperty(O, P, Attributes);
} catch (error) { /* empty */ }
if ('get' in Attributes || 'set' in Attributes) throw TypeError$e('Accessors not supported');
if ('value' in Attributes) O[P] = Attributes.value;
return O;
};
var DESCRIPTORS$6 = descriptors;
var definePropertyModule$5 = objectDefineProperty;
var createPropertyDescriptor$2 = createPropertyDescriptor$4;
var createNonEnumerableProperty$7 = DESCRIPTORS$6 ? function (object, key, value) {
return definePropertyModule$5.f(object, key, createPropertyDescriptor$2(1, value));
} : function (object, key, value) {
object[key] = value;
return object;
};
var redefine$7 = {exports: {}};
var uncurryThis$g = functionUncurryThis;
var isCallable$g = isCallable$m;
var store$1 = sharedStore;
var functionToString = uncurryThis$g(Function.toString);
// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
if (!isCallable$g(store$1.inspectSource)) {
store$1.inspectSource = function (it) {
return functionToString(it);
};
}
var inspectSource$4 = store$1.inspectSource;
var global$w = global$N;
var isCallable$f = isCallable$m;
var inspectSource$3 = inspectSource$4;
var WeakMap$1 = global$w.WeakMap;
var nativeWeakMap = isCallable$f(WeakMap$1) && /native code/.test(inspectSource$3(WeakMap$1));
var shared$2 = shared$4.exports;
var uid = uid$2;
var keys$1 = shared$2('keys');
var sharedKey$3 = function (key) {
return keys$1[key] || (keys$1[key] = uid(key));
};
var hiddenKeys$4 = {};
var NATIVE_WEAK_MAP = nativeWeakMap;
var global$v = global$N;
var uncurryThis$f = functionUncurryThis;
var isObject$4 = isObject$9;
var createNonEnumerableProperty$6 = createNonEnumerableProperty$7;
var hasOwn$9 = hasOwnProperty_1;
var shared$1 = sharedStore;
var sharedKey$2 = sharedKey$3;
var hiddenKeys$3 = hiddenKeys$4;
var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
var TypeError$d = global$v.TypeError;
var WeakMap = global$v.WeakMap;
var set$1, get, has;
var enforce = function (it) {
return has(it) ? get(it) : set$1(it, {});
};
var getterFor = function (TYPE) {
return function (it) {
var state;
if (!isObject$4(it) || (state = get(it)).type !== TYPE) {
throw TypeError$d('Incompatible receiver, ' + TYPE + ' required');
} return state;
};
};
if (NATIVE_WEAK_MAP || shared$1.state) {
var store = shared$1.state || (shared$1.state = new WeakMap());
var wmget = uncurryThis$f(store.get);
var wmhas = uncurryThis$f(store.has);
var wmset = uncurryThis$f(store.set);
set$1 = function (it, metadata) {
if (wmhas(store, it)) throw new TypeError$d(OBJECT_ALREADY_INITIALIZED);
metadata.facade = it;
wmset(store, it, metadata);
return metadata;
};
get = function (it) {
return wmget(store, it) || {};
};
has = function (it) {
return wmhas(store, it);
};
} else {
var STATE = sharedKey$2('state');
hiddenKeys$3[STATE] = true;
set$1 = function (it, metadata) {
if (hasOwn$9(it, STATE)) throw new TypeError$d(OBJECT_ALREADY_INITIALIZED);
metadata.facade = it;
createNonEnumerableProperty$6(it, STATE, metadata);
return metadata;
};
get = function (it) {
return hasOwn$9(it, STATE) ? it[STATE] : {};
};
has = function (it) {
return hasOwn$9(it, STATE);
};
}
var internalState = {
set: set$1,
get: get,
has: has,
enforce: enforce,
getterFor: getterFor
};
var DESCRIPTORS$5 = descriptors;
var hasOwn$8 = hasOwnProperty_1;
var FunctionPrototype$1 = Function.prototype;
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
var getDescriptor = DESCRIPTORS$5 && Object.getOwnPropertyDescriptor;
var EXISTS = hasOwn$8(FunctionPrototype$1, 'name');
// additional protection from minified / mangled / dropped function names
var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';
var CONFIGURABLE = EXISTS && (!DESCRIPTORS$5 || (DESCRIPTORS$5 && getDescriptor(FunctionPrototype$1, 'name').configurable));
var functionName = {
EXISTS: EXISTS,
PROPER: PROPER,
CONFIGURABLE: CONFIGURABLE
};
var global$u = global$N;
var isCallable$e = isCallable$m;
var hasOwn$7 = hasOwnProperty_1;
var createNonEnumerableProperty$5 = createNonEnumerableProperty$7;
var setGlobal$1 = setGlobal$3;
var inspectSource$2 = inspectSource$4;
var InternalStateModule$2 = internalState;
var CONFIGURABLE_FUNCTION_NAME$1 = functionName.CONFIGURABLE;
var getInternalState$3 = InternalStateModule$2.get;
var enforceInternalState$1 = InternalStateModule$2.enforce;
var TEMPLATE = String(String).split('String');
(redefine$7.exports = function (O, key, value, options) {
var unsafe = options ? !!options.unsafe : false;
var simple = options ? !!options.enumerable : false;
var noTargetGet = options ? !!options.noTargetGet : false;
var name = options && options.name !== undefined ? options.name : key;
var state;
if (isCallable$e(value)) {
if (String(name).slice(0, 7) === 'Symbol(') {
name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']';
}
if (!hasOwn$7(value, 'name') || (CONFIGURABLE_FUNCTION_NAME$1 && value.name !== name)) {
createNonEnumerableProperty$5(value, 'name', name);
}
state = enforceInternalState$1(value);
if (!state.source) {
state.source = TEMPLATE.join(typeof name == 'string' ? name : '');
}
}
if (O === global$u) {
if (simple) O[key] = value;
else setGlobal$1(key, value);
return;
} else if (!unsafe) {
delete O[key];
} else if (!noTargetGet && O[key]) {
simple = true;
}
if (simple) O[key] = value;
else createNonEnumerableProperty$5(O, key, value);
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, 'toString', function toString() {
return isCallable$e(this) && getInternalState$3(this).source || inspectSource$2(this);
});
var objectGetOwnPropertyNames = {};
var ceil = Math.ceil;
var floor$1 = Math.floor;
// `ToIntegerOrInfinity` abstract operation
// https://tc39.es/ecma262/#sec-tointegerorinfinity
var toIntegerOrInfinity$4 = function (argument) {
var number = +argument;
// eslint-disable-next-line no-self-compare -- safe
return number !== number || number === 0 ? 0 : (number > 0 ? floor$1 : ceil)(number);
};
var toIntegerOrInfinity$3 = toIntegerOrInfinity$4;
var max$1 = Math.max;
var min$2 = Math.min;
// Helper for a popular repeating case of the spec:
// Let integer be ? ToInteger(index).
// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
var toAbsoluteIndex$1 = function (index, length) {
var integer = toIntegerOrInfinity$3(index);
return integer < 0 ? max$1(integer + length, 0) : min$2(integer, length);
};
var toIntegerOrInfinity$2 = toIntegerOrInfinity$4;
var min$1 = Math.min;
// `ToLength` abstract operation
// https://tc39.es/ecma262/#sec-tolength
var toLength$2 = function (argument) {
return argument > 0 ? min$1(toIntegerOrInfinity$2(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
};
var toLength$1 = toLength$2;
// `LengthOfArrayLike` abstract operation
// https://tc39.es/ecma262/#sec-lengthofarraylike
var lengthOfArrayLike$3 = function (obj) {
return toLength$1(obj.length);
};
var toIndexedObject$3 = toIndexedObject$5;
var toAbsoluteIndex = toAbsoluteIndex$1;
var lengthOfArrayLike$2 = lengthOfArrayLike$3;
// `Array.prototype.{ indexOf, includes }` methods implementation
var createMethod$3 = function (IS_INCLUDES) {
return function ($this, el, fromIndex) {
var O = toIndexedObject$3($this);
var length = lengthOfArrayLike$2(O);
var index = toAbsoluteIndex(fromIndex, length);
var value;
// Array#includes uses SameValueZero equality algorithm
// eslint-disable-next-line no-self-compare -- NaN check
if (IS_INCLUDES && el != el) while (length > index) {
value = O[index++];
// eslint-disable-next-line no-self-compare -- NaN check
if (value != value) return true;
// Array#indexOf ignores holes, Array#includes - not
} else for (;length > index; index++) {
if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
} return !IS_INCLUDES && -1;
};
};
var arrayIncludes = {
// `Array.prototype.includes` method
// https://tc39.es/ecma262/#sec-array.prototype.includes
includes: createMethod$3(true),
// `Array.prototype.indexOf` method
// https://tc39.es/ecma262/#sec-array.prototype.indexof
indexOf: createMethod$3(false)
};
var uncurryThis$e = functionUncurryThis;
var hasOwn$6 = hasOwnProperty_1;
var toIndexedObject$2 = toIndexedObject$5;
var indexOf$1 = arrayIncludes.indexOf;
var hiddenKeys$2 = hiddenKeys$4;
var push$2 = uncurryThis$e([].push);
var objectKeysInternal = function (object, names) {
var O = toIndexedObject$2(object);
var i = 0;
var result = [];
var key;
for (key in O) !hasOwn$6(hiddenKeys$2, key) && hasOwn$6(O, key) && push$2(result, key);
// Don't enum bug & hidden keys
while (names.length > i) if (hasOwn$6(O, key = names[i++])) {
~indexOf$1(result, key) || push$2(result, key);
}
return result;
};
// IE8- don't enum bug keys
var enumBugKeys$3 = [
'constructor',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'toLocaleString',
'toString',
'valueOf'
];
var internalObjectKeys$1 = objectKeysInternal;
var enumBugKeys$2 = enumBugKeys$3;
var hiddenKeys$1 = enumBugKeys$2.concat('length', 'prototype');
// `Object.getOwnPropertyNames` method
// https://tc39.es/ecma262/#sec-object.getownpropertynames
// eslint-disable-next-line es/no-object-getownpropertynames -- safe
objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
return internalObjectKeys$1(O, hiddenKeys$1);
};
var objectGetOwnPropertySymbols = {};
// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe
objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols;
var getBuiltIn$e = getBuiltIn$h;
var uncurryThis$d = functionUncurryThis;
var getOwnPropertyNamesModule = objectGetOwnPropertyNames;
var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols;
var anObject$D = anObject$F;
var concat$1 = uncurryThis$d([].concat);
// all object keys, includes non-enumerable and symbols
var ownKeys$1 = getBuiltIn$e('Reflect', 'ownKeys') || function ownKeys(it) {
var keys = getOwnPropertyNamesModule.f(anObject$D(it));
var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
return getOwnPropertySymbols ? concat$1(keys, getOwnPropertySymbols(it)) : keys;
};
var hasOwn$5 = hasOwnProperty_1;
var ownKeys = ownKeys$1;
var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor;
var definePropertyModule$4 = objectDefineProperty;
var copyConstructorProperties$2 = function (target, source, exceptions) {
var keys = ownKeys(source);
var defineProperty = definePropertyModule$4.f;
var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (!hasOwn$5(target, key) && !(exceptions && hasOwn$5(exceptions, key))) {
defineProperty(target, key, getOwnPropertyDescriptor(source, key));
}
}
};
var fails$c = fails$j;
var isCallable$d = isCallable$m;
var replacement = /#|\.prototype\./;
var isForced$3 = function (feature, detection) {
var value = data[normalize$1(feature)];
return value == POLYFILL ? true
: value == NATIVE ? false
: isCallable$d(detection) ? fails$c(detection)
: !!detection;
};
var normalize$1 = isForced$3.normalize = function (string) {
return String(string).replace(replacement, '.').toLowerCase();
};
var data = isForced$3.data = {};
var NATIVE = isForced$3.NATIVE = 'N';
var POLYFILL = isForced$3.POLYFILL = 'P';
var isForced_1 = isForced$3;
var global$t = global$N;
var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
var createNonEnumerableProperty$4 = createNonEnumerableProperty$7;
var redefine$6 = redefine$7.exports;
var setGlobal = setGlobal$3;
var copyConstructorProperties$1 = copyConstructorProperties$2;
var isForced$2 = isForced_1;
/*
options.target - name of the target object
options.global - target is the global object
options.stat - export as static methods of target
options.proto - export as prototype methods of target
options.real - real prototype method for the `pure` version
options.forced - export even if the native feature is available
options.bind - bind methods to the target, required for the `pure` version
options.wrap - wrap constructors to preventing global pollution, required for the `pure` version
options.unsafe - use the simple assignment of property instead of delete + defineProperty
options.sham - add a flag to not completely full polyfills
options.enumerable - export as enumerable property
options.noTargetGet - prevent calling a getter on target
options.name - the .name of the function if it does not match the key
*/
var _export = function (options, source) {
var TARGET = options.target;
var GLOBAL = options.global;
var STATIC = options.stat;
var FORCED, target, key, targetProperty, sourceProperty, descriptor;
if (GLOBAL) {
target = global$t;
} else if (STATIC) {
target = global$t[TARGET] || setGlobal(TARGET, {});
} else {
target = (global$t[TARGET] || {}).prototype;
}
if (target) for (key in source) {
sourceProperty = source[key];
if (options.noTargetGet) {
descriptor = getOwnPropertyDescriptor$1(target, key);
targetProperty = descriptor && descriptor.value;
} else targetProperty = target[key];
FORCED = isForced$2(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
// contained in target
if (!FORCED && targetProperty !== undefined) {
if (typeof sourceProperty == typeof targetProperty) continue;
copyConstructorProperties$1(sourceProperty, targetProperty);
}
// add a flag to not completely full polyfills
if (options.sham || (targetProperty && targetProperty.sham)) {
createNonEnumerableProperty$4(sourceProperty, 'sham', true);
}
// extend global
redefine$6(target, key, sourceProperty, options);
}
};
var global$s = global$N;
var nativePromiseConstructor = global$s.Promise;
var redefine$5 = redefine$7.exports;
var redefineAll$1 = function (target, src, options) {
for (var key in src) redefine$5(target, key, src[key], options);
return target;
};
var global$r = global$N;
var isCallable$c = isCallable$m;
var String$3 = global$r.String;
var TypeError$c = global$r.TypeError;
var aPossiblePrototype$1 = function (argument) {
if (typeof argument == 'object' || isCallable$c(argument)) return argument;
throw TypeError$c("Can't set " + String$3(argument) + ' as a prototype');
};
/* eslint-disable no-proto -- safe */
var uncurryThis$c = functionUncurryThis;
var anObject$C = anObject$F;
var aPossiblePrototype = aPossiblePrototype$1;
// `Object.setPrototypeOf` method
// https://tc39.es/ecma262/#sec-object.setprototypeof
// Works with __proto__ only. Old v8 can't work with null proto objects.
// eslint-disable-next-line es/no-object-setprototypeof -- safe
var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () {
var CORRECT_SETTER = false;
var test = {};
var setter;
try {
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
setter = uncurryThis$c(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);
setter(test, []);
CORRECT_SETTER = test instanceof Array;
} catch (error) { /* empty */ }
return function setPrototypeOf(O, proto) {
anObject$C(O);
aPossiblePrototype(proto);
if (CORRECT_SETTER) setter(O, proto);
else O.__proto__ = proto;
return O;
};
}() : undefined);
var defineProperty$3 = objectDefineProperty.f;
var hasOwn$4 = hasOwnProperty_1;
var wellKnownSymbol$g = wellKnownSymbol$i;
var TO_STRING_TAG$3 = wellKnownSymbol$g('toStringTag');
var setToStringTag$3 = function (target, TAG, STATIC) {
if (target && !STATIC) target = target.prototype;
if (target && !hasOwn$4(target, TO_STRING_TAG$3)) {
defineProperty$3(target, TO_STRING_TAG$3, { configurable: true, value: TAG });
}
};
var getBuiltIn$d = getBuiltIn$h;
var definePropertyModule$3 = objectDefineProperty;
var wellKnownSymbol$f = wellKnownSymbol$i;
var DESCRIPTORS$4 = descriptors;
var SPECIES$3 = wellKnownSymbol$f('species');
var setSpecies$2 = function (CONSTRUCTOR_NAME) {
var Constructor = getBuiltIn$d(CONSTRUCTOR_NAME);
var defineProperty = definePropertyModule$3.f;
if (DESCRIPTORS$4 && Constructor && !Constructor[SPECIES$3]) {
defineProperty(Constructor, SPECIES$3, {
configurable: true,
get: function () { return this; }
});
}
};
var global$q = global$N;
var isPrototypeOf$3 = objectIsPrototypeOf;
var TypeError$b = global$q.TypeError;
var anInstance$1 = function (it, Prototype) {
if (isPrototypeOf$3(Prototype, it)) return it;
throw TypeError$b('Incorrect invocation');
};
var uncurryThis$b = functionUncurryThis;
var aCallable$m = aCallable$o;
var NATIVE_BIND$1 = functionBindNative;
var bind$g = uncurryThis$b(uncurryThis$b.bind);
// optional / simple context binding
var functionBindContext = function (fn, that) {
aCallable$m(fn);
return that === undefined ? fn : NATIVE_BIND$1 ? bind$g(fn, that) : function (/* ...args */) {
return fn.apply(that, arguments);
};
};
var iterators = {};
var wellKnownSymbol$e = wellKnownSymbol$i;
var Iterators$4 = iterators;
var ITERATOR$5 = wellKnownSymbol$e('iterator');
var ArrayPrototype$1 = Array.prototype;
// check on default Array iterator
var isArrayIteratorMethod$1 = function (it) {
return it !== undefined && (Iterators$4.Array === it || ArrayPrototype$1[ITERATOR$5] === it);
};
var wellKnownSymbol$d = wellKnownSymbol$i;
var TO_STRING_TAG$2 = wellKnownSymbol$d('toStringTag');
var test = {};
test[TO_STRING_TAG$2] = 'z';
var toStringTagSupport = String(test) === '[object z]';
var global$p = global$N;
var TO_STRING_TAG_SUPPORT = toStringTagSupport;
var isCallable$b = isCallable$m;
var classofRaw = classofRaw$1;
var wellKnownSymbol$c = wellKnownSymbol$i;
var TO_STRING_TAG$1 = wellKnownSymbol$c('toStringTag');
var Object$2 = global$p.Object;
// ES3 wrong here
var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
try {
return it[key];
} catch (error) { /* empty */ }
};
// getting tag from ES6+ `Object.prototype.toString`
var classof$6 = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
var O, tag, result;
return it === undefined ? 'Undefined' : it === null ? 'Null'
// @@toStringTag case
: typeof (tag = tryGet(O = Object$2(it), TO_STRING_TAG$1)) == 'string' ? tag
// builtinTag case
: CORRECT_ARGUMENTS ? classofRaw(O)
// ES3 arguments fallback
: (result = classofRaw(O)) == 'Object' && isCallable$b(O.callee) ? 'Arguments' : result;
};
var classof$5 = classof$6;
var getMethod$2 = getMethod$4;
var Iterators$3 = iterators;
var wellKnownSymbol$b = wellKnownSymbol$i;
var ITERATOR$4 = wellKnownSymbol$b('iterator');
var getIteratorMethod$2 = function (it) {
if (it != undefined) return getMethod$2(it, ITERATOR$4)
|| getMethod$2(it, '@@iterator')
|| Iterators$3[classof$5(it)];
};
var global$o = global$N;
var call$o = functionCall;
var aCallable$l = aCallable$o;
var anObject$B = anObject$F;
var tryToString$2 = tryToString$4;
var getIteratorMethod$1 = getIteratorMethod$2;
var TypeError$a = global$o.TypeError;
var getIterator$2 = function (argument, usingIterator) {
var iteratorMethod = arguments.length < 2 ? getIteratorMethod$1(argument) : usingIterator;
if (aCallable$l(iteratorMethod)) return anObject$B(call$o(iteratorMethod, argument));
throw TypeError$a(tryToString$2(argument) + ' is not iterable');
};
var call$n = functionCall;
var anObject$A = anObject$F;
var getMethod$1 = getMethod$4;
var iteratorClose$1 = function (iterator, kind, value) {
var innerResult, innerError;
anObject$A(iterator);
try {
innerResult = getMethod$1(iterator, 'return');
if (!innerResult) {
if (kind === 'throw') throw value;
return value;
}
innerResult = call$n(innerResult, iterator);
} catch (error) {
innerError = true;
innerResult = error;
}
if (kind === 'throw') throw value;
if (innerError) throw innerResult;
anObject$A(innerResult);
return value;
};
var global$n = global$N;
var bind$f = functionBindContext;
var call$m = functionCall;
var anObject$z = anObject$F;
var tryToString$1 = tryToString$4;
var isArrayIteratorMethod = isArrayIteratorMethod$1;
var lengthOfArrayLike$1 = lengthOfArrayLike$3;
var isPrototypeOf$2 = objectIsPrototypeOf;
var getIterator$1 = getIterator$2;
var getIteratorMethod = getIteratorMethod$2;
var iteratorClose = iteratorClose$1;
var TypeError$9 = global$n.TypeError;
var Result = function (stopped, result) {
this.stopped = stopped;
this.result = result;
};
var ResultPrototype = Result.prototype;
var iterate$r = function (iterable, unboundFunction, options) {
var that = options && options.that;
var AS_ENTRIES = !!(options && options.AS_ENTRIES);
var IS_ITERATOR = !!(options && options.IS_ITERATOR);
var INTERRUPTED = !!(options && options.INTERRUPTED);
var fn = bind$f(unboundFunction, that);
var iterator, iterFn, index, length, result, next, step;
var stop = function (condition) {
if (iterator) iteratorClose(iterator, 'normal', condition);
return new Result(true, condition);
};
var callFn = function (value) {
if (AS_ENTRIES) {
anObject$z(value);
return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
} return INTERRUPTED ? fn(value, stop) : fn(value);
};
if (IS_ITERATOR) {
iterator = iterable;
} else {
iterFn = getIteratorMethod(iterable);
if (!iterFn) throw TypeError$9(tryToString$1(iterable) + ' is not iterable');
// optimisation for array iterators
if (isArrayIteratorMethod(iterFn)) {
for (index = 0, length = lengthOfArrayLike$1(iterable); length > index; index++) {
result = callFn(iterable[index]);
if (result && isPrototypeOf$2(ResultPrototype, result)) return result;
} return new Result(false);
}
iterator = getIterator$1(iterable, iterFn);
}
next = iterator.next;
while (!(step = call$m(next, iterator)).done) {
try {
result = callFn(step.value);
} catch (error) {
iteratorClose(iterator, 'throw', error);
}
if (typeof result == 'object' && result && isPrototypeOf$2(ResultPrototype, result)) return result;
} return new Result(false);
};
var wellKnownSymbol$a = wellKnownSymbol$i;
var ITERATOR$3 = wellKnownSymbol$a('iterator');
var SAFE_CLOSING = false;
try {
var called = 0;
var iteratorWithReturn = {
next: function () {
return { done: !!called++ };
},
'return': function () {
SAFE_CLOSING = true;
}
};
iteratorWithReturn[ITERATOR$3] = function () {
return this;
};
// eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing
Array.from(iteratorWithReturn, function () { throw 2; });
} catch (error) { /* empty */ }
var checkCorrectnessOfIteration$1 = function (exec, SKIP_CLOSING) {
if (!SKIP_CLOSING && !SAFE_CLOSING) return false;
var ITERATION_SUPPORT = false;
try {
var object = {};
object[ITERATOR$3] = function () {
return {
next: function () {
return { done: ITERATION_SUPPORT = true };
}
};
};
exec(object);
} catch (error) { /* empty */ }
return ITERATION_SUPPORT;
};
var uncurryThis$a = functionUncurryThis;
var fails$b = fails$j;
var isCallable$a = isCallable$m;
var classof$4 = classof$6;
var getBuiltIn$c = getBuiltIn$h;
var inspectSource$1 = inspectSource$4;
var noop = function () { /* empty */ };
var empty = [];
var construct = getBuiltIn$c('Reflect', 'construct');
var constructorRegExp = /^\s*(?:class|function)\b/;
var exec$2 = uncurryThis$a(constructorRegExp.exec);
var INCORRECT_TO_STRING = !constructorRegExp.exec(noop);
var isConstructorModern = function isConstructor(argument) {
if (!isCallable$a(argument)) return false;
try {
construct(noop, empty, argument);
return true;
} catch (error) {
return false;
}
};
var isConstructorLegacy = function isConstructor(argument) {
if (!isCallable$a(argument)) return false;
switch (classof$4(argument)) {
case 'AsyncFunction':
case 'GeneratorFunction':
case 'AsyncGeneratorFunction': return false;
}
try {
// we can't check .prototype since constructors produced by .bind haven't it
// `Function#toString` throws on some built-it function in some legacy engines
// (for example, `DOMQuad` and similar in FF41-)
return INCORRECT_TO_STRING || !!exec$2(constructorRegExp, inspectSource$1(argument));
} catch (error) {
return true;
}
};
isConstructorLegacy.sham = true;
// `IsConstructor` abstract operation
// https://tc39.es/ecma262/#sec-isconstructor
var isConstructor$1 = !construct || fails$b(function () {
var called;
return isConstructorModern(isConstructorModern.call)
|| !isConstructorModern(Object)
|| !isConstructorModern(function () { called = true; })
|| called;
}) ? isConstructorLegacy : isConstructorModern;
var global$m = global$N;
var isConstructor = isConstructor$1;
var tryToString = tryToString$4;
var TypeError$8 = global$m.TypeError;
// `Assert: IsConstructor(argument) is true`
var aConstructor$1 = function (argument) {
if (isConstructor(argument)) return argument;
throw TypeError$8(tryToString(argument) + ' is not a constructor');
};
var anObject$y = anObject$F;
var aConstructor = aConstructor$1;
var wellKnownSymbol$9 = wellKnownSymbol$i;
var SPECIES$2 = wellKnownSymbol$9('species');
// `SpeciesConstructor` abstract operation
// https://tc39.es/ecma262/#sec-speciesconstructor
var speciesConstructor$a = function (O, defaultConstructor) {
var C = anObject$y(O).constructor;
var S;
return C === undefined || (S = anObject$y(C)[SPECIES$2]) == undefined ? defaultConstructor : aConstructor(S);
};
var NATIVE_BIND = functionBindNative;
var FunctionPrototype = Function.prototype;
var apply$2 = FunctionPrototype.apply;
var call$l = FunctionPrototype.call;
// eslint-disable-next-line es/no-reflect -- safe
var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call$l.bind(apply$2) : function () {
return call$l.apply(apply$2, arguments);
});
var getBuiltIn$b = getBuiltIn$h;
var html$2 = getBuiltIn$b('document', 'documentElement');
var uncurryThis$9 = functionUncurryThis;
var arraySlice$1 = uncurryThis$9([].slice);
var global$l = global$N;
var TypeError$7 = global$l.TypeError;
var validateArgumentsLength$1 = function (passed, required) {
if (passed < required) throw TypeError$7('Not enough arguments');
return passed;
};
var userAgent$2 = engineUserAgent;
var engineIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$2);
var classof$3 = classofRaw$1;
var global$k = global$N;
var engineIsNode = classof$3(global$k.process) == 'process';
var global$j = global$N;
var apply$1 = functionApply;
var bind$e = functionBindContext;
var isCallable$9 = isCallable$m;
var hasOwn$3 = hasOwnProperty_1;
var fails$a = fails$j;
var html$1 = html$2;
var arraySlice = arraySlice$1;
var createElement$1 = documentCreateElement$2;
var validateArgumentsLength = validateArgumentsLength$1;
var IS_IOS$1 = engineIsIos;
var IS_NODE$3 =