1 line
526 KiB
Plaintext
1 line
526 KiB
Plaintext
{"version":3,"file":"ext-storage.js","sources":["../../../../node_modules/core-js/internals/global.js","../../../../node_modules/core-js/internals/fails.js","../../../../node_modules/core-js/internals/descriptors.js","../../../../node_modules/core-js/internals/object-property-is-enumerable.js","../../../../node_modules/core-js/internals/create-property-descriptor.js","../../../../node_modules/core-js/internals/classof-raw.js","../../../../node_modules/core-js/internals/indexed-object.js","../../../../node_modules/core-js/internals/require-object-coercible.js","../../../../node_modules/core-js/internals/to-indexed-object.js","../../../../node_modules/core-js/internals/is-object.js","../../../../node_modules/core-js/internals/to-primitive.js","../../../../node_modules/core-js/internals/has.js","../../../../node_modules/core-js/internals/document-create-element.js","../../../../node_modules/core-js/internals/ie8-dom-define.js","../../../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../../../node_modules/core-js/internals/an-object.js","../../../../node_modules/core-js/internals/object-define-property.js","../../../../node_modules/core-js/internals/create-non-enumerable-property.js","../../../../node_modules/core-js/internals/set-global.js","../../../../node_modules/core-js/internals/shared-store.js","../../../../node_modules/core-js/internals/inspect-source.js","../../../../node_modules/core-js/internals/internal-state.js","../../../../node_modules/core-js/internals/native-weak-map.js","../../../../node_modules/core-js/internals/shared.js","../../../../node_modules/core-js/internals/uid.js","../../../../node_modules/core-js/internals/shared-key.js","../../../../node_modules/core-js/internals/hidden-keys.js","../../../../node_modules/core-js/internals/redefine.js","../../../../node_modules/core-js/internals/path.js","../../../../node_modules/core-js/internals/get-built-in.js","../../../../node_modules/core-js/internals/to-integer.js","../../../../node_modules/core-js/internals/to-length.js","../../../../node_modules/core-js/internals/to-absolute-index.js","../../../../node_modules/core-js/internals/array-includes.js","../../../../node_modules/core-js/internals/object-keys-internal.js","../../../../node_modules/core-js/internals/enum-bug-keys.js","../../../../node_modules/core-js/internals/object-get-own-property-names.js","../../../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../../../node_modules/core-js/internals/own-keys.js","../../../../node_modules/core-js/internals/copy-constructor-properties.js","../../../../node_modules/core-js/internals/is-forced.js","../../../../node_modules/core-js/internals/export.js","../../../../node_modules/core-js/internals/a-function.js","../../../../node_modules/core-js/internals/function-bind-context.js","../../../../node_modules/core-js/internals/to-object.js","../../../../node_modules/core-js/internals/is-array.js","../../../../node_modules/core-js/internals/native-symbol.js","../../../../node_modules/core-js/internals/use-symbol-as-uid.js","../../../../node_modules/core-js/internals/well-known-symbol.js","../../../../node_modules/core-js/internals/array-species-create.js","../../../../node_modules/core-js/internals/array-iteration.js","../../../../node_modules/core-js/internals/array-method-is-strict.js","../../../../node_modules/core-js/internals/array-method-uses-to-length.js","../../../../node_modules/core-js/internals/array-for-each.js","../../../../node_modules/core-js/modules/es.array.for-each.js","../../../../node_modules/core-js/internals/object-keys.js","../../../../node_modules/core-js/internals/object-create.js","../../../../node_modules/core-js/internals/object-define-properties.js","../../../../node_modules/core-js/internals/html.js","../../../../node_modules/core-js/internals/add-to-unscopables.js","../../../../node_modules/core-js/modules/es.array.includes.js","../../../../node_modules/core-js/internals/iterators.js","../../../../node_modules/core-js/internals/iterators-core.js","../../../../node_modules/core-js/internals/correct-prototype-getter.js","../../../../node_modules/core-js/internals/object-get-prototype-of.js","../../../../node_modules/core-js/internals/set-to-string-tag.js","../../../../node_modules/core-js/internals/create-iterator-constructor.js","../../../../node_modules/core-js/internals/object-set-prototype-of.js","../../../../node_modules/core-js/internals/a-possible-prototype.js","../../../../node_modules/core-js/internals/define-iterator.js","../../../../node_modules/core-js/modules/es.array.iterator.js","../../../../node_modules/core-js/internals/object-to-array.js","../../../../node_modules/core-js/modules/es.object.entries.js","../../../../node_modules/core-js/modules/es.object.keys.js","../../../../node_modules/core-js/internals/to-string-tag-support.js","../../../../node_modules/core-js/internals/classof.js","../../../../node_modules/core-js/internals/object-to-string.js","../../../../node_modules/core-js/modules/es.object.to-string.js","../../../../node_modules/core-js/internals/regexp-flags.js","../../../../node_modules/core-js/internals/regexp-sticky-helpers.js","../../../../node_modules/core-js/internals/regexp-exec.js","../../../../node_modules/core-js/modules/es.regexp.exec.js","../../../../node_modules/core-js/internals/is-regexp.js","../../../../node_modules/core-js/internals/not-a-regexp.js","../../../../node_modules/core-js/internals/correct-is-regexp-logic.js","../../../../node_modules/core-js/modules/es.string.includes.js","../../../../node_modules/core-js/internals/string-multibyte.js","../../../../node_modules/core-js/modules/es.string.iterator.js","../../../../node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","../../../../node_modules/core-js/internals/advance-string-index.js","../../../../node_modules/core-js/internals/get-substitution.js","../../../../node_modules/core-js/internals/regexp-exec-abstract.js","../../../../node_modules/core-js/modules/es.string.replace.js","../../../../node_modules/core-js/internals/dom-iterables.js","../../../../node_modules/core-js/modules/web.dom-collections.for-each.js","../../../../node_modules/core-js/modules/web.dom-collections.iterator.js","../../../../node_modules/core-js/internals/native-url.js","../../../../node_modules/core-js/internals/an-instance.js","../../../../node_modules/core-js/internals/object-assign.js","../../../../node_modules/core-js/internals/iterator-close.js","../../../../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../../../../node_modules/core-js/internals/is-array-iterator-method.js","../../../../node_modules/core-js/internals/create-property.js","../../../../node_modules/core-js/internals/get-iterator-method.js","../../../../node_modules/core-js/internals/array-from.js","../../../../node_modules/core-js/internals/string-punycode-to-ascii.js","../../../../node_modules/core-js/internals/redefine-all.js","../../../../node_modules/core-js/internals/get-iterator.js","../../../../node_modules/core-js/modules/web.url-search-params.js","../../../../node_modules/core-js/modules/web.url.js","../../../../node_modules/core-js/modules/es.object.assign.js","../../../../node_modules/core-js/internals/engine-user-agent.js","../../../../node_modules/core-js/internals/engine-v8-version.js","../../../../node_modules/core-js/internals/array-method-has-species-support.js","../../../../node_modules/core-js/modules/es.array.concat.js","../../../../node_modules/core-js/modules/es.string.raw.js","../../../../node_modules/elix/src/core/htmlLiterals.js","../../../../node_modules/core-js/internals/object-get-own-property-names-external.js","../../../../node_modules/core-js/internals/well-known-symbol-wrapped.js","../../../../node_modules/core-js/internals/define-well-known-symbol.js","../../../../node_modules/core-js/modules/es.symbol.js","../../../../node_modules/core-js/modules/es.symbol.description.js","../../../../node_modules/core-js/modules/es.array.filter.js","../../../../node_modules/core-js/modules/es.array.index-of.js","../../../../node_modules/core-js/modules/es.array.map.js","../../../../node_modules/core-js/modules/es.object.get-own-property-descriptor.js","../../../../node_modules/core-js/modules/es.object.get-own-property-names.js","../../../../node_modules/core-js/modules/es.object.get-prototype-of.js","../../../../node_modules/core-js/modules/es.array.find-index.js","../../../../node_modules/core-js/modules/es.symbol.async-iterator.js","../../../../node_modules/core-js/modules/es.symbol.iterator.js","../../../../node_modules/core-js/modules/es.symbol.to-string-tag.js","../../../../node_modules/core-js/modules/es.array.reverse.js","../../../../node_modules/core-js/modules/es.array.slice.js","../../../../node_modules/core-js/modules/es.function.name.js","../../../../node_modules/core-js/modules/es.json.to-string-tag.js","../../../../node_modules/core-js/modules/es.math.to-string-tag.js","../../../../node_modules/core-js/modules/es.object.set-prototype-of.js","../../../../node_modules/core-js/internals/native-promise-constructor.js","../../../../node_modules/core-js/internals/set-species.js","../../../../node_modules/core-js/internals/iterate.js","../../../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../../../node_modules/core-js/internals/task.js","../../../../node_modules/core-js/internals/species-constructor.js","../../../../node_modules/core-js/internals/engine-is-ios.js","../../../../node_modules/core-js/internals/engine-is-node.js","../../../../node_modules/core-js/internals/microtask.js","../../../../node_modules/core-js/internals/engine-is-webos-webkit.js","../../../../node_modules/core-js/modules/es.promise.js","../../../../node_modules/core-js/internals/new-promise-capability.js","../../../../node_modules/core-js/internals/promise-resolve.js","../../../../node_modules/core-js/internals/perform.js","../../../../node_modules/core-js/internals/host-report-errors.js","../../../../node_modules/core-js/modules/es.regexp.to-string.js","../../../../node_modules/regenerator-runtime/runtime.js","../../../../node_modules/elix/src/core/internal.js","../../../../node_modules/elix/src/core/dom.js","../../../../node_modules/elix/src/core/AttributeMarshallingMixin.js","../../../../node_modules/core-js/internals/freezing.js","../../../../node_modules/core-js/internals/internal-metadata.js","../../../../node_modules/core-js/modules/es.object.freeze.js","../../../../node_modules/core-js/internals/same-value.js","../../../../node_modules/core-js/modules/es.string.search.js","../../../../node_modules/elix/src/core/ReactiveMixin.js","../../../../node_modules/core-js/internals/inherit-if-required.js","../../../../node_modules/core-js/internals/collection-strong.js","../../../../node_modules/core-js/internals/collection.js","../../../../node_modules/core-js/modules/es.map.js","../../../../node_modules/elix/src/core/ShadowTemplateMixin.js","../../../../node_modules/elix/src/core/ReactiveElement.js","../../../../node_modules/elix/src/base/internal.js","../../../../node_modules/elix/src/base/DialogModalityMixin.js","../../../../node_modules/elix/src/base/FocusCaptureMixin.js","../../../../node_modules/core-js/internals/whitespaces.js","../../../../node_modules/core-js/internals/string-trim.js","../../../../node_modules/core-js/modules/es.number.constructor.js","../../../../node_modules/elix/src/base/Backdrop.js","../../../../node_modules/elix/src/base/AriaRoleMixin.js","../../../../node_modules/elix/src/base/ModalBackdrop.js","../../../../node_modules/core-js/modules/es.string.match.js","../../../../node_modules/elix/src/core/template.js","../../../../node_modules/elix/src/base/OpenCloseMixin.js","../../../../node_modules/elix/src/base/OverlayFrame.js","../../../../node_modules/core-js/modules/es.array.from.js","../../../../node_modules/core-js/internals/number-parse-int.js","../../../../node_modules/core-js/modules/es.parse-int.js","../../../../node_modules/elix/src/base/OverlayMixin.js","../../../../node_modules/elix/src/base/Overlay.js","../../../../node_modules/elix/src/base/SlotContentMixin.js","../../../../node_modules/elix/src/base/Dialog.js","../../../../node_modules/elix/src/base/KeyboardMixin.js","../../../../node_modules/elix/src/plain/PlainModalBackdrop.js","../../../../node_modules/elix/src/plain/PlainOverlayFrame.js","../../../../node_modules/elix/src/plain/PlainModalOverlayMixin.js","../../../../node_modules/elix/src/plain/PlainDialog.js","../../../../node_modules/elix/define/Dialog.js","../../../../src/editor/extensions/ext-storage/storageDialog.js","../../../../src/editor/extensions/ext-storage/ext-storage.js"],"sourcesContent":["var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n (function () { return this; })() || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.8.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_OUT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterOut\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterOut` method\n // https://github.com/tc39/proposal-array-filtering\n filterOut: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","module.exports = {};\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n});\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n var args = [input];\n var init, body, headers;\n if (arguments.length > 1) {\n init = arguments[1];\n if (isObject(init)) {\n body = init.body;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n init = create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n }\n args.push(init);\n } return $fetch.apply(this, args);\n }\n });\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var $ = require('../internals/export');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `String.raw` method\n// https://tc39.es/ecma262/#sec-string.raw\n$({ target: 'String', stat: true }, {\n raw: function raw(template) {\n var rawTemplate = toIndexedObject(template.raw);\n var literalSegments = toLength(rawTemplate.length);\n var argumentsLength = arguments.length;\n var elements = [];\n var i = 0;\n while (literalSegments > i) {\n elements.push(String(rawTemplate[i++]));\n if (i < argumentsLength) elements.push(String(arguments[i]));\n } return elements.join('');\n }\n});\n","/**\n * JavaScript template literals for constructing DOM nodes from HTML\n *\n * @module html\n */\n\n/**\n * A JavaScript template string literal that returns an HTML document fragment.\n *\n * Example:\n *\n * const fragment = fragmentFrom.html`Hello, <em>world</em>.`\n *\n * returns a `DocumentFragment` whose `innerHTML` is `Hello, <em>world</em>.`\n *\n * This function is called `html` so that it can be easily used with HTML\n * syntax-highlighting extensions for various popular code editors.\n *\n * See also [templateFrom.html](template#html), which returns a similar result but\n * as an HTMLTemplateElement.\n *\n * @param {TemplateStringsArray} strings - the strings passed to the JavaScript template\n * literal\n * @param {string[]} substitutions - the variable values passed to the\n * JavaScript template literal\n * @returns {DocumentFragment}\n */\nexport const fragmentFrom = {\n html(strings, ...substitutions) {\n return templateFrom.html(strings, ...substitutions).content;\n },\n};\n\n/**\n * A JavaScript template string literal that returns an HTML template.\n *\n * Example:\n *\n * const myTemplate = templateFrom.html`Hello, <em>world</em>.`\n *\n * returns an `HTMLTemplateElement` whose `innerHTML` is `Hello, <em>world</em>.`\n *\n * This function is called `html` so that it can be easily used with HTML\n * syntax-highlighting extensions for various popular code editors.\n *\n * See also [html](html), a helper which returns a similar result but as an\n * DocumentFragment.\n *\n * @param {TemplateStringsArray} strings - the strings passed to the JavaScript template\n * literal\n * @param {string[]} substitutions - the variable values passed to the\n * JavaScript template literal\n * @returns {HTMLTemplateElement}\n */\nexport const templateFrom = {\n html(strings, ...substitutions) {\n const template = document.createElement(\"template\");\n template.innerHTML = String.raw(strings, ...substitutions);\n return template;\n },\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: nativeGetOwnPropertyNames\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND_INDEX);\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = [].reverse;\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign\n if (isArray(this)) this.length = this.length;\n return nativeReverse.call(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && !NATIVE_REJECTION_EVENT) return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","/**\n * Collection of shared Symbol objects for internal component communication.\n *\n * The shared `Symbol` objects in this module let mixins and a component\n * internally communicate without exposing these internal properties and methods\n * in the component's public API. They also help avoid unintentional name\n * collisions, as a component developer must specifically import the `internal`\n * module and reference one of its symbols.\n *\n * To use these `Symbol` objects in your own component, include this module and\n * then create a property or method whose key is the desired Symbol. E.g.,\n * [ShadowTemplateMixin](ShadowTemplateMixin) expects a component to define\n * a property called [template](#template):\n *\n * import { template } from 'elix/src/core/internal.js';\n * import { templateFrom } from 'elix/src/core/htmlLiterals.js'\n * import ShadowTemplateMixin from 'elix/src/core/ShadowTemplateMixin.js';\n *\n * class MyElement extends ShadowTemplateMixin(HTMLElement) {\n * [template]() {\n * return templateFrom.html`Hello, <em>world</em>.`;\n * }\n * }\n *\n * The above use of the internal `template` member lets the mixin find the\n * component's template in a way that will not pollute the component's public\n * API or interfere with other component logic. For example, if for some reason\n * the component wants to define a separate property with the plain string name,\n * \"template\", it can do so without affecting the above property setter.\n *\n * @module internal\n */\n\n/**\n * Symbol for the default state for this element.\n */\nexport const defaultState = Symbol(\"defaultState\");\n\n/**\n * Symbol for the `delegatesFocus` property.\n *\n * [DelegatesFocusMixin](DelegatesFocusMixin) defines this property, returning\n * true to indicate that the focus is being delegated, even in browsers that\n * don't support that natively. Mixins like [KeyboardMixin](KeyboardMixin) use\n * this to accommodate focus delegation.\n */\nexport const delegatesFocus = Symbol(\"delegatesFocus\");\n\n/**\n * Symbol for the `firstRender` property.\n *\n * [ReactiveMixin](ReactiveMixin) sets the property to `true` during the\n * element's first `render` and `rendered` callback, then `false` in subsequent\n * callbacks.\n *\n * You can inspect this property in your own `rendered` callback handler to do\n * work like wiring up events that should only happen once.\n */\nexport const firstRender = Symbol(\"firstRender\");\n\n/**\n * Symbol for the `focusTarget` property.\n *\n * [DelegatesFocusMixin](DelegatesFocusMixin) defines this property as either:\n * 1) the element itself, in browsers that support native focus delegation or,\n * 2) the shadow root's first focusable element.\n */\nexport const focusTarget = Symbol(\"focusTarget\");\n\n/**\n * Symbol for the `hasDynamicTemplate` property.\n *\n * If your component class does not always use the same template, define a\n * static class property getter with this symbol and have it return `true`.\n * This will disable template caching for your component.\n */\nexport const hasDynamicTemplate = Symbol(\"hasDynamicTemplate\");\n\n/**\n * Symbol for the `ids` property.\n *\n * [ShadowTemplateMixin](ShadowTemplateMixin) defines a shorthand function\n * `internal.ids` that can be used to obtain a reference to a shadow element with\n * a given ID.\n *\n * Example: if component's template contains a shadow element\n * `<button id=\"foo\">`, you can use the reference `this[ids].foo` to obtain\n * the corresponding button in the component instance's shadow tree.\n * The `ids` function is simply a shorthand for `getElementById`, so\n * `this[ids].foo` is the same as `this.shadowRoot.getElementById('foo')`.\n */\nexport const ids = Symbol(\"ids\");\n\n/**\n * Symbol for access to native HTML element internals.\n */\nexport const nativeInternals = Symbol(\"nativeInternals\");\n\n/**\n * Symbol for the `raiseChangeEvents` property.\n *\n * This property is used by mixins to determine whether they should raise\n * property change events. The standard HTML pattern is to only raise such\n * events in response to direct user interactions. For a detailed discussion\n * of this point, see the Gold Standard checklist item for\n * [Propery Change Events](https://github.com/webcomponents/gold-standard/wiki/Property%20Change%20Events).\n *\n * The above article describes a pattern for using a flag to track whether\n * work is being performed in response to internal component activity, and\n * whether the component should therefore raise property change events.\n * This `raiseChangeEvents` symbol is a shared flag used for that purpose by\n * all Elix mixins and components. Sharing this flag ensures that internal\n * activity (e.g., a UI event listener) in one mixin can signal other mixins\n * handling affected properties to raise change events.\n *\n * All UI event listeners (and other forms of internal handlers, such as\n * timeouts and async network handlers) should set `raiseChangeEvents` to\n * `true` at the start of the event handler, then `false` at the end:\n *\n * this.addEventListener('click', event => {\n * this[raiseChangeEvents] = true;\n * // Do work here, possibly setting properties, like:\n * this.foo = 'Hello';\n * this[raiseChangeEvents] = false;\n * });\n *\n * Elsewhere, property setters that raise change events should only do so it\n * this property is `true`:\n *\n * set foo(value) {\n * // Save foo value here, do any other work.\n * if (this[raiseChangeEvents]) {\n * export const event = new CustomEvent('foochange');\n * this.dispatchEvent(event);\n * }\n * }\n *\n * In this way, programmatic attempts to set the `foo` property will not trigger\n * the `foochange` event, but UI interactions that update that property will\n * cause those events to be raised.\n */\nexport const raiseChangeEvents = Symbol(\"raiseChangeEvents\");\n\n/**\n * Symbol for the `render` method.\n *\n * [ReactiveMixin](ReactiveMixin) invokes this `internal.render` method to give\n * the component a chance to render recent changes in component state.\n */\nexport const render = Symbol(\"render\");\n\n/**\n * Symbol for the `renderChanges` method.\n *\n * [ReactiveMixin](ReactiveMixin) invokes this method in response to a\n * `setState` call; you should generally not invoke this method yourself.\n */\nexport const renderChanges = Symbol(\"renderChanges\");\n\n/**\n * Symbol for the `rendered` method.\n *\n * [ReactiveMixin](ReactiveMixin) will invoke this method after your\n * element has completely finished rendering.\n *\n * If you only want to do work the first time rendering happens (for example, if\n * you want to wire up event handlers), your `internal.rendered` implementation\n * can inspect the `internal.firstRender` flag.\n */\nexport const rendered = Symbol(\"rendered\");\n\n/**\n * Symbol for the `rendering` property.\n *\n * [ReactiveMixin](ReactiveMixin) sets this property to true during rendering,\n * at other times it will be false.\n */\nexport const rendering = Symbol(\"rendering\");\n\n/**\n * Symbol for the `setState` method.\n *\n * A component using [ReactiveMixin](ReactiveMixin) can invoke this method to\n * apply changes to the element's current state.\n */\nexport const setState = Symbol(\"setState\");\n\n/**\n * Symbol for the `shadowRoot` property.\n *\n * This property holds a reference to an element's shadow root, like\n * `this.shadowRoot`. This propery exists because `this.shadowRoot` is not\n * available for components with closed shadow roots.\n * [ShadowTemplateMixin](ShadowTemplateMixin) creates open shadow roots by\n * default, but you can opt into creating closed shadow roots; see\n * [shadowRootMode](internal#internal.shadowRootMode).\n */\nexport const shadowRoot = Symbol(\"shadowRoot\");\n\n/**\n * Symbol for the `shadowRootMode` property.\n *\n * If true (the default), then [ShadowTemplateMixin](ShadowTemplateMixin) will\n * create an open shadow root when the component is instantiated. Set this to\n * false if you want to programmatically hide component internals in a closed\n * shadow root.\n */\nexport const shadowRootMode = Symbol(\"shadowRootMode\");\n\n/**\n * Symbol for the element's current state.\n *\n * This is managed by [ReactiveMixin](ReactiveMixin).\n */\nexport const state = Symbol(\"state\");\n\n/**\n * Symbol for the `stateEffects` method.\n *\n * See [stateEffects](ReactiveMixin#stateEffects).\n */\nexport const stateEffects = Symbol(\"stateEffects\");\n\n/**\n * Symbol for the `template` method.\n *\n * [ShadowTemplateMixin](ShadowTemplateMixin) uses this property to obtain a\n * component's template, which it will clone into a component's shadow root.\n */\nexport const template = Symbol(\"template\");\n","import { focusTarget, nativeInternals } from \"./internal.js\";\n\n/**\n * Miscellaneous DOM helpers for web components\n *\n * @module dom\n */\n\nconst mousedownListenerKey = Symbol(\"mousedownListener\");\n\n/**\n * Given a string value for a named boolean attribute, return `true` if the\n * value is either: a) the empty string, or b) a case-insensitive match for the\n * name.\n *\n * This is native HTML behavior; see the MDN documentation on [boolean\n * attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes#Boolean_Attributes)\n * for the reasoning.\n *\n * Given a null value, this return `false`.\n * Given a boolean value, this return the value as is.\n *\n * @param {string} name\n * @param {string|boolean|null} value\n */\nexport function booleanAttributeValue(name, value) {\n return typeof value === \"boolean\"\n ? value\n : typeof value === \"string\"\n ? value === \"\" || name.toLowerCase() === value.toLowerCase()\n : false;\n}\n\n/**\n * Return the closest focusable node that's either the node itself (if it's\n * focusable), or the closest focusable ancestor in the *composed* tree.\n *\n * If no focusable node is found, this returns null.\n *\n * @param {Node} node\n * @returns {HTMLElement|null}\n */\nexport function closestFocusableNode(node) {\n for (const current of selfAndComposedAncestors(node)) {\n // If the current element defines a focusTarget (e.g., via\n // DelegateFocusMixin), use that, otherwise use the element itself.\n const target = current[focusTarget] || current;\n // We want an element that has a tabIndex of 0 or more. We ignore disabled\n // elements, and slot elements (which oddly have a tabIndex of 0).\n /** @type {any} */ const cast = target;\n const focusable =\n target instanceof HTMLElement &&\n target.tabIndex >= 0 &&\n !cast.disabled &&\n !(target instanceof HTMLSlotElement);\n if (focusable) {\n return target;\n }\n }\n return null;\n}\n\n/**\n * Return the ancestors of the given node in the composed tree.\n *\n * In the composed tree, the ancestor of a node assigned to a slot is that slot,\n * not the node's DOM ancestor. The ancestor of a shadow root is its host.\n *\n * @param {Node} node\n * @returns {Iterable<Node>}\n */\nexport function* composedAncestors(node) {\n /** @type {Node|null} */\n let current = node;\n while (true) {\n current =\n current instanceof HTMLElement && current.assignedSlot\n ? current.assignedSlot\n : current instanceof ShadowRoot\n ? current.host\n : current.parentNode;\n if (current) {\n yield current;\n } else {\n break;\n }\n }\n}\n\n/**\n * Returns true if the first node contains the second, even if the second node\n * is in a shadow tree.\n *\n * The standard Node.contains() function does not account for Shadow DOM, and\n * returns false if the supplied target node is sitting inside a shadow tree\n * within the container.\n *\n * @param {Node} container - The container to search within.\n * @param {Node} target - The node that may be inside the container.\n * @returns {boolean} - True if the container contains the target node.\n */\nexport function deepContains(container, target) {\n /** @type {any} */\n let current = target;\n while (current) {\n const parent = current.assignedSlot || current.parentNode || current.host;\n if (parent === container) {\n return true;\n }\n current = parent;\n }\n return false;\n}\n\n/**\n * Return the first focusable element in the composed tree below the given root.\n * The composed tree includes nodes assigned to slots.\n *\n * This heuristic considers only the document order of the elements below the\n * root and whether a given element is focusable. It currently does not respect\n * the tab sort order defined by tabindex values greater than zero.\n *\n * @param {Node} root - the root of the tree in which to search\n * @returns {HTMLElement|null} - the first focusable element, or null if none\n * was found\n */\nexport function firstFocusableElement(root) {\n // CSS selectors for focusable elements from\n // https://stackoverflow.com/a/30753870/76472\n const focusableQuery =\n 'a[href],area[href],button:not([disabled]),details,iframe,input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[contentEditable=\"true\"],[tabindex]';\n // Walk the tree looking for nodes that match the above selectors.\n const walker = walkComposedTree(\n root,\n (/** @type {Node} */ node) =>\n node instanceof HTMLElement &&\n node.matches(focusableQuery) &&\n node.tabIndex >= 0\n );\n // We only actually need the first matching value.\n const { value } = walker.next();\n // value, if defined, will always be an HTMLElement, but we do the following\n // check to pass static type checking.\n return value instanceof HTMLElement ? value : null;\n}\n\n/**\n * Trap any `mousedown` events on the `origin` element and prevent the default\n * behavior from setting the focus on that element. Instead, put the focus on\n * the `target` element (or, if the `target` is not focusable, on the target's\n * closest focusable ancestor).\n *\n * If this method is called again with the same `origin` element, the old\n * forwarding is overridden, and focus will now go to the new `target` element.\n *\n * If the `target` parameter is `null`, focus handling will be removed from the\n * indicated `origin`.\n *\n * @param {HTMLElement} origin\n * @param {HTMLElement|null} target\n */\nexport function forwardFocus(origin, target) {\n if (origin[mousedownListenerKey]) {\n // Origin was previously forwarding focus, probably to a different target.\n // Remove the previous event listener.\n origin.removeEventListener(\"mousedown\", origin[mousedownListenerKey]);\n }\n if (target) {\n origin[mousedownListenerKey] = (/** @type {MouseEvent} */ event) => {\n // Only process events for the main (usually left) button.\n if (event.button !== 0) {\n return;\n }\n // What element wants the focus?\n const desiredTarget = target[focusTarget] || target;\n // What ancestor can actually take the focus?\n const focusableTarget = closestFocusableNode(desiredTarget);\n if (focusableTarget) {\n focusableTarget.focus();\n event.preventDefault();\n }\n };\n origin.addEventListener(\"mousedown\", origin[mousedownListenerKey]);\n }\n}\n\n/**\n * Search a list element for the item that contains the specified target.\n *\n * When dealing with UI events (e.g., mouse clicks) that may occur in\n * subelements inside a list item, you can use this routine to obtain the\n * containing list item.\n *\n * @param {NodeList|Node[]} items - A list element containing a set of items\n * @param {Node} target - A target element that may or may not be an item in the\n * list.\n * @returns {number} - The index of the list child that is or contains the\n * indicated target node. Returns -1 if not found.\n */\nexport function indexOfItemContainingTarget(items, target) {\n return Array.prototype.findIndex.call(\n items,\n (/** @type Node */ item) => item === target || deepContains(item, target)\n );\n}\n\n/**\n * Return true if the event came from within the node (or from the node itself);\n * false otherwise.\n *\n * @param {Node} node - The node to consider in relation to the event\n * @param {Event} event - The event which may have been raised within/by the\n * node\n * @returns {boolean} - True if the event was raised within or by the node\n */\nexport function ownEvent(node, event) {\n /** @type {any} */\n const cast = event;\n const eventSource = cast.composedPath()[0];\n return node === eventSource || deepContains(node, eventSource);\n}\n\n/**\n * Returns the set that includes the given node and all of its ancestors in the\n * composed tree. See [composedAncestors](#composedAncestors) for details on the\n * latter.\n *\n * @param {Node} node\n * @returns {Iterable<Node>}\n */\nexport function* selfAndComposedAncestors(node) {\n if (node) {\n yield node;\n yield* composedAncestors(node);\n }\n}\n\n/**\n * Set an internal state for browsers that support the `:state` selector, as\n * well as an attribute of the same name to permit state-based styling on older\n * browsers.\n *\n * When all browsers support that, we'd like to deprecate use of attributes.\n *\n * @param {Element} element\n * @param {string} name\n * @param {boolean} value\n */\nexport function setInternalState(element, name, value) {\n element.toggleAttribute(name, value);\n if (element[nativeInternals] && element[nativeInternals].states) {\n element[nativeInternals].states.toggle(name, value);\n }\n}\n\n/** @type {IndexedObject<boolean>} */\nexport const standardBooleanAttributes = {\n checked: true,\n defer: true,\n disabled: true,\n hidden: true,\n ismap: true,\n multiple: true,\n noresize: true,\n readonly: true,\n selected: true,\n};\n\n/**\n * Adds or removes the element's `childNodes` as necessary to match the nodes\n * indicated in the `childNodes` parameter.\n *\n * This operation is useful in cases where you maintain your own set of nodes\n * which should be rendered as the children of some element. When you insert or\n * remove nodes in that set, you can invoke this function to efficiently apply\n * the new set as a delta to the existing children. Only the items in the set\n * that have actually changed will be added or removed.\n *\n * @param {Element} element - the element to update\n * @param {(NodeList|Node[])} childNodes - the set of nodes to apply\n */\nexport function updateChildNodes(element, childNodes) {\n // If the childNodes parameter is the actual childNodes of an element, then as\n // we append those nodes to the indicated target element, they'll get removed\n // from the original set. To keep the list stable, we make a copy.\n const copy = [...childNodes];\n\n const oldLength = element.childNodes.length;\n const newLength = copy.length;\n const length = Math.max(oldLength, newLength);\n for (let i = 0; i < length; i++) {\n const oldChild = element.childNodes[i];\n const newChild = copy[i];\n if (i >= oldLength) {\n // Add new item not in old set.\n element.append(newChild);\n } else if (i >= newLength) {\n // Remove old item past end of new set.\n element.removeChild(element.childNodes[newLength]);\n } else if (oldChild !== newChild) {\n if (copy.indexOf(oldChild, i) >= i) {\n // Old node comes later in final set. Insert the new node rather than\n // replacing it so that we don't detach the old node only to have to\n // reattach it later.\n element.insertBefore(newChild, oldChild);\n } else {\n // Replace old item with new item.\n element.replaceChild(newChild, oldChild);\n }\n }\n }\n}\n\n/**\n * Walk the composed tree at the root for elements that pass the given filter.\n *\n * Note: the jsDoc types required for the filter function are too complex for\n * the current jsDoc parser to support strong type-checking.\n *\n * @private\n * @param {Node} node\n * @param {function} filter\n * @returns {IterableIterator<Node>}\n */\nfunction* walkComposedTree(node, filter) {\n if (filter(node)) {\n yield node;\n }\n let children;\n if (node instanceof HTMLElement && node.shadowRoot) {\n // Walk the shadow instead of the light DOM.\n children = node.shadowRoot.children;\n } else {\n const assignedNodes =\n node instanceof HTMLSlotElement\n ? node.assignedNodes({ flatten: true })\n : [];\n children =\n assignedNodes.length > 0\n ? // Walk light DOM nodes assigned to this slot.\n assignedNodes\n : // Walk light DOM children.\n node.childNodes;\n }\n if (children) {\n for (let i = 0; i < children.length; i++) {\n yield* walkComposedTree(children[i], filter);\n }\n }\n}\n","import { booleanAttributeValue, standardBooleanAttributes } from \"./dom.js\";\nimport { rendering } from \"./internal.js\";\n\n// Memoized maps of attribute to property names and vice versa.\n// We initialize this with the special case of the tabindex (lowercase \"i\")\n// attribute, which is mapped to the tabIndex (capital \"I\") property.\n/** @type {IndexedObject<string>} */\nconst attributeToPropertyNames = {\n tabindex: \"tabIndex\",\n};\n/** @type {IndexedObject<string>} */\nconst propertyNamesToAttributes = {\n tabIndex: \"tabindex\",\n};\n\n/**\n * Sets properties when the corresponding attributes change\n *\n * If your component exposes a setter for a property, it's generally a good\n * idea to let devs using your component be able to set that property in HTML\n * via an element attribute. You can code that yourself by writing an\n * `attributeChangedCallback`, or you can use this mixin to get a degree of\n * automatic support.\n *\n * This mixin implements an `attributeChangedCallback` that will attempt to\n * convert a change in an element attribute into a call to the corresponding\n * property setter. Attributes typically follow hyphenated names (\"foo-bar\"),\n * whereas properties typically use camelCase names (\"fooBar\"). This mixin\n * respects that convention, automatically mapping the hyphenated attribute\n * name to the corresponding camelCase property name.\n *\n * Example: You define a component using this mixin:\n *\n * class MyElement extends AttributeMarshallingMixin(HTMLElement) {\n * get fooBar() { return this._fooBar; }\n * set fooBar(value) { this._fooBar = value; }\n * }\n *\n * If someone then instantiates your component in HTML:\n *\n * <my-element foo-bar=\"Hello\"></my-element>\n *\n * Then, after the element has been upgraded, the `fooBar` setter will\n * automatically be invoked with the initial value \"Hello\".\n *\n * Attributes can only have string values. If you'd like to convert string\n * attributes to other types (numbers, booleans), you must implement parsing\n * yourself.\n *\n * @module AttributeMarshallingMixin\n * @param {Constructor<CustomElement>} Base\n */\nexport default function AttributeMarshallingMixin(Base) {\n // The class prototype added by the mixin.\n class AttributeMarshalling extends Base {\n /**\n * Handle a change to the attribute with the given name.\n *\n * @ignore\n * @param {string} attributeName\n * @param {string} oldValue\n * @param {string} newValue\n */\n attributeChangedCallback(attributeName, oldValue, newValue) {\n if (super.attributeChangedCallback) {\n super.attributeChangedCallback(attributeName, oldValue, newValue);\n }\n\n // Sometimes this callback is invoked when there's not actually any\n // change, in which we skip invoking the property setter.\n //\n // We also skip setting properties if we're rendering. A component may\n // want to reflect property values to attributes during rendering, but\n // such attribute changes shouldn't trigger property updates.\n if (newValue !== oldValue && !this[rendering]) {\n const propertyName = attributeToPropertyName(attributeName);\n // If the attribute name corresponds to a property name, set the property.\n if (propertyName in this) {\n // Parse standard boolean attributes.\n const parsed = standardBooleanAttributes[attributeName]\n ? booleanAttributeValue(attributeName, newValue)\n : newValue;\n this[propertyName] = parsed;\n }\n }\n }\n\n // Because maintaining the mapping of attributes to properties is tedious,\n // this provides a default implementation for `observedAttributes` that\n // assumes that your component will want to expose all public properties in\n // your component's API as properties.\n //\n // You can override this default implementation of `observedAttributes`. For\n // example, if you have a system that can statically analyze which\n // properties are available to your component, you could hand-author or\n // programmatically generate a definition for `observedAttributes` that\n // avoids the minor run-time performance cost of inspecting the component\n // prototype to determine your component's public properties.\n static get observedAttributes() {\n return attributesForClass(this);\n }\n }\n\n return AttributeMarshalling;\n}\n\n/**\n * Return the custom attributes for the given class.\n *\n * E.g., if the supplied class defines a `fooBar` property, then the resulting\n * array of attribute names will include the \"foo-bar\" attribute.\n *\n * @private\n * @param {Constructor<HTMLElement>} classFn\n * @returns {string[]}\n */\nfunction attributesForClass(classFn) {\n // We treat the HTMLElement base class as if it has no attributes, since we\n // don't want to receive attributeChangedCallback for it (or anything further\n // up the protoype chain).\n if (classFn === HTMLElement) {\n return [];\n }\n\n // Get attributes for parent class.\n const baseClass = Object.getPrototypeOf(classFn.prototype).constructor;\n\n // See if parent class defines observedAttributes manually.\n let baseAttributes = baseClass.observedAttributes;\n if (!baseAttributes) {\n // Calculate parent class attributes ourselves.\n baseAttributes = attributesForClass(baseClass);\n }\n\n // Get the properties for this particular class.\n const propertyNames = Object.getOwnPropertyNames(classFn.prototype);\n const setterNames = propertyNames.filter((propertyName) => {\n const descriptor = Object.getOwnPropertyDescriptor(\n classFn.prototype,\n propertyName\n );\n return descriptor && typeof descriptor.set === \"function\";\n });\n\n // Map the property names to attribute names.\n const attributes = setterNames.map((setterName) =>\n propertyNameToAttribute(setterName)\n );\n\n // Merge the attribute for this class and its base class.\n const diff = attributes.filter(\n (attribute) => baseAttributes.indexOf(attribute) < 0\n );\n const result = baseAttributes.concat(diff);\n\n return result;\n}\n\n/**\n * Convert hyphenated foo-bar attribute name to camel case fooBar property name.\n *\n * @private\n * @param {string} attributeName\n */\nfunction attributeToPropertyName(attributeName) {\n let propertyName = attributeToPropertyNames[attributeName];\n if (!propertyName) {\n // Convert and memoize.\n const hyphenRegEx = /-([a-z])/g;\n propertyName = attributeName.replace(hyphenRegEx, (match) =>\n match[1].toUpperCase()\n );\n attributeToPropertyNames[attributeName] = propertyName;\n }\n return propertyName;\n}\n\n/**\n * Convert a camel case fooBar property name to a hyphenated foo-bar attribute.\n *\n * @private\n * @param {string} propertyName\n */\nfunction propertyNameToAttribute(propertyName) {\n let attribute = propertyNamesToAttributes[propertyName];\n if (!attribute) {\n // Convert and memoize.\n const uppercaseRegEx = /([A-Z])/g;\n attribute = propertyName.replace(uppercaseRegEx, \"-$1\").toLowerCase();\n propertyNamesToAttributes[propertyName] = attribute;\n }\n return attribute;\n}\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\nvar nativeFreeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeFreeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return nativeFreeze && isObject(it) ? nativeFreeze(onFreeze(it)) : it;\n }\n});\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","import {\n defaultState,\n firstRender,\n raiseChangeEvents,\n render,\n renderChanges,\n rendered,\n rendering,\n setState,\n state,\n stateEffects,\n} from \"./internal.js\";\n\n/** @type {any} */\nconst stateKey = Symbol(\"state\");\n/** @type {any} */\nconst raiseChangeEventsInNextRenderKey = Symbol(\n \"raiseChangeEventsInNextRender\"\n);\n// Tracks total set of changes made to elements since their last render.\n/** @type {any} */\nconst changedSinceLastRenderKey = Symbol(\"changedSinceLastRender\");\n\n/**\n * Manages component state and renders changes in state\n *\n * This is modeled after React/Preact's state management, and is adapted for\n * use with web components. Applying this mixin to a component will give it\n * FRP behavior comparable to React's.\n *\n * This model is very basic. It's key aspects are:\n * * an immutable `state` property updated via `setState` calls.\n * * a `render` method that will be invoked asynchronously when state changes.\n *\n * @module ReactiveMixin\n * @param {Constructor<CustomElement>} Base\n */\nexport default function ReactiveMixin(Base) {\n class Reactive extends Base {\n constructor() {\n super();\n\n // Components can inspect `firstRender` during rendering to do special\n // work the first time (like wire up event handlers). Until the first\n // render actually happens, we set that flag to be undefined so we have a\n // way of distinguishing between a component that has never rendered and\n // one that is being rendered for the nth time.\n this[firstRender] = undefined;\n\n // We want to support the standard HTML pattern of only raising events in\n // response to direct user interactions. For a detailed discussion of this\n // point, see the Gold Standard checklist item for [Propery Change\n // Events](https://github.com/webcomponents/gold-standard/wiki/Property%20Change%20Events).\n //\n // To support this pattern, we define a flag indicating whether change\n // events should be raised. By default, we want the flag to be false. In\n // UI event handlers, a component can temporarily set the flag to true. If\n // a setState call is made while the flag is true, then that fact will be\n // remembered and passed the subsequent render/rendered methods. That will\n // let the methods know whether they should raise property change events.\n this[raiseChangeEvents] = false;\n\n // Maintain a change log of all fields which have changed since the\n // component was last rendered.\n this[changedSinceLastRenderKey] = null;\n\n // Set the initial state from the default state defined by the component\n // and its mixins/base classes.\n this[setState](this[defaultState]);\n }\n\n // When the component is attached to the document (or upgraded), we will\n // generally render the component for the first time. That operation will\n // include rendering of the default state and any state changes that\n // happened between constructor time and this connectedCallback.\n connectedCallback() {\n if (super.connectedCallback) {\n super.connectedCallback();\n }\n\n // Render the component.\n //\n // If the component was forced to render before this point, and the state\n // hasn't changed, this call will be a no-op.\n this[renderChanges]();\n }\n\n /**\n * The default state for the component. This can be extended by mixins and\n * classes to provide additional default state.\n *\n * @type {PlainObject}\n */\n // @ts-ignore\n get [defaultState]() {\n // Defer to base implementation if defined.\n return super[defaultState] || {};\n }\n\n /**\n * Render the indicated changes in state to the DOM.\n *\n * The default implementation of this method does nothing. Override this\n * method in your component to update your component's host element and\n * any shadow elements to reflect the component's new state. See the\n * [rendering example](ReactiveMixin#rendering).\n *\n * Be sure to call `super` in your method implementation so that your\n * component's base classes and mixins have a chance to perform their own\n * render work.\n *\n * @param {ChangedFlags} changed - dictionary of flags indicating which state\n * members have changed since the last render\n */\n [render](changed) {\n if (super[render]) {\n super[render](changed);\n }\n }\n\n /**\n * Render any pending component changes to the DOM.\n *\n * This method does nothing if the state has not changed since the last\n * render call.\n *\n * ReactiveMixin will invoke this method following a `setState` call;\n * you should not need to invoke this method yourself.\n *\n * This method invokes the internal `render` method, then invokes the\n * `rendered` method.\n */\n [renderChanges]() {\n if (this[firstRender] === undefined) {\n // First render.\n this[firstRender] = true;\n }\n\n // Get the log of which fields have changed since the last render.\n const changed = this[changedSinceLastRenderKey];\n\n // We only render if this is the first render, or state has changed since\n // the last render.\n if (this[firstRender] || changed) {\n // If at least one of the[setState] calls was made in response\n // to user interaction or some other component-internal event, set the\n // raiseChangeEvents flag so that render/rendered methods know whether\n // to raise property change events. See the comments in the component\n // constructor where we initialize this flag for details.\n const saveRaiseChangeEvents = this[raiseChangeEvents];\n this[raiseChangeEvents] = this[raiseChangeEventsInNextRenderKey];\n\n // We set a flag to indicate that rendering is happening. The component\n // may use this to avoid triggering other updates during the render.\n this[rendering] = true;\n\n // Invoke any internal render implementations.\n this[render](changed);\n\n this[rendering] = false;\n\n // Since we've now rendered all changes, clear the change log. If other\n // async render calls are queued up behind this call, they'll see an\n // empty change log, and so skip unnecessary render work.\n this[changedSinceLastRenderKey] = null;\n\n // Let the component know it was rendered.\n this[rendered](changed);\n\n // We've now rendered for the first time.\n this[firstRender] = false;\n\n // Restore state of event flags.\n this[raiseChangeEvents] = saveRaiseChangeEvents;\n this[raiseChangeEventsInNextRenderKey] = saveRaiseChangeEvents;\n }\n }\n\n /**\n * Perform any work that must happen after state changes have been rendered\n * to the DOM.\n *\n * The default implementation of this method does nothing. Override this\n * method in your component to perform work that requires the component to\n * be fully rendered, such as setting focus on a shadow element or\n * inspecting the computed style of an element. If such work should result\n * in a change in component state, you can safely call `setState` during the\n * `rendered` method.\n *\n * Be sure to call `super` in your method implementation so that your\n * component's base classes and mixins have a chance to perform their own\n * post-render work.\n *\n * @param {ChangedFlags} changed\n */\n [rendered](changed) {\n if (super[rendered]) {\n super[rendered](changed);\n }\n }\n\n /**\n * Update the component's state by merging the specified changes on\n * top of the existing state. If the component is connected to the document,\n * and the new state has changed, this returns a promise to asynchronously\n * render the component. Otherwise, this returns a resolved promise.\n *\n * @param {PlainObject} changes - the changes to apply to the element's state\n * @returns {Promise} - resolves when the new state has been rendered\n */\n async [setState](changes) {\n // There's no good reason to have a render method update state.\n if (this[rendering]) {\n /* eslint-disable no-console */\n console.warn(\n `${this.constructor.name} called [setState] during rendering, which you should avoid.\\nSee https://elix.org/documentation/ReactiveMixin.`\n );\n }\n\n // Apply the changes to a copy of the component's current state to produce\n // a new, updated state and a dictionary of flags indicating which fields\n // actually changed.\n const { state, changed } = copyStateWithChanges(this, changes);\n\n // We only need to apply the changes to the component state if: a) the\n // current state is undefined (this is the first time setState has been\n // called), or b) the supplied changes parameter actually contains\n // substantive changes.\n if (this[stateKey] && Object.keys(changed).length === 0) {\n // No need to update state.\n return;\n }\n\n // Freeze the new state so it's immutable. This prevents accidental\n // attempts to set state without going through setState.\n Object.freeze(state);\n\n // Set this as the component's new state.\n this[stateKey] = state;\n\n // If setState was called with the raiseChangeEvents flag set, record that\n // fact for use in rendering. See the comments in the component\n // constructor for details.\n if (this[raiseChangeEvents]) {\n this[raiseChangeEventsInNextRenderKey] = true;\n }\n\n // Look to see whether the component is already set up to render.\n const willRender =\n this[firstRender] === undefined ||\n this[changedSinceLastRenderKey] !== null;\n\n // Add this round of changed fields to the complete log of fields that\n // have changed since the component was last rendered.\n this[changedSinceLastRenderKey] = Object.assign(\n this[changedSinceLastRenderKey] || {},\n changed\n );\n\n // We only need to queue a render if we're in the document and a render\n // operation hasn't already been queued for this component. If we're not\n // in the document yet, when the component is eventually added to the\n // document, the connectedCallback will ensure we render at that point.\n const needsRender = this.isConnected && !willRender;\n if (needsRender) {\n // Yield with promise timing. This lets any *synchronous* setState calls\n // that happen after this current setState call complete first. Their\n // effects on the state will be batched up, and accumulate in the change\n // log stored under this[changedSinceLastRenderKey].\n await Promise.resolve();\n\n // Now that the above promise has resolved, render the component. By the\n // time this line is reached, the complete log of batched changes can be\n // applied in a single render call.\n this[renderChanges]();\n }\n }\n\n /**\n * The component's current state.\n *\n * The returned state object is immutable. To update it, invoke\n * `internal.setState`.\n *\n * It's extremely useful to be able to inspect component state while\n * debugging. If you append `?elixdebug=true` to a page's URL, then\n * ReactiveMixin will conditionally expose a public `state` property that\n * returns the component's state. You can then access the state in your\n * browser's debug console.\n *\n * @type {PlainObject}\n */\n get [state]() {\n return this[stateKey];\n }\n\n /**\n * Ask the component whether a state with a set of recently-changed fields\n * implies that additional second-order changes should be applied to that\n * state to make it consistent.\n *\n * This method is invoked during a call to `internal.setState` to give all\n * of a component's mixins and classes a chance to respond to changes in\n * state. If one mixin/class updates state that it controls, another\n * mixin/class may want to respond by updating some other state member that\n * *it* controls.\n *\n * This method should return a dictionary of changes that should be applied\n * to the state. If the dictionary object is not empty, the\n * `internal.setState` method will apply the changes to the state, and\n * invoke this `stateEffects` method again to determine whether there are\n * any third-order effects that should be applied. This process repeats\n * until all mixins/classes report that they have no additional changes to\n * make.\n *\n * See an example of how `ReactiveMixin` invokes the `stateEffects` to\n * [ensure state consistency](ReactiveMixin#ensuring-state-consistency).\n *\n * @param {PlainObject} state - a proposal for a new state\n * @param {ChangedFlags} changed - the set of fields changed in this\n * latest proposal for the new state\n * @returns {PlainObject}\n */\n [stateEffects](state, changed) {\n return super[stateEffects] ? super[stateEffects](state, changed) : {};\n }\n }\n\n // Expose state when debugging; see note for `[state]` getter.\n const elixdebug = new URLSearchParams(location.search).get(\"elixdebug\");\n if (elixdebug === \"true\") {\n Object.defineProperty(Reactive.prototype, \"state\", {\n get() {\n return this[state];\n },\n });\n }\n\n return Reactive;\n}\n\n/**\n * Create a copy of the component's state with the indicated changes applied.\n * Ask the component whether the new state implies any second-order effects. If\n * so, apply those and loop again until the state has stabilized. Return the new\n * state and a dictionary of flags indicating which fields were actually\n * changed.\n *\n * @private\n * @param {Element} element\n * @param {PlainObject} changes\n */\nexport function copyStateWithChanges(element, changes) {\n // Start with a copy of the current state.\n /** @type {PlainObject} */\n const state = Object.assign({}, element[stateKey]);\n /** @type {ChangedFlags} */\n const changed = {};\n // Take the supplied changes as the first round of effects.\n let effects = changes;\n // Loop until there are no effects to apply.\n /* eslint-disable no-constant-condition */\n while (true) {\n // See whether the effects actually changed anything in state.\n const changedByEffects = fieldsChanged(state, effects);\n if (Object.keys(changedByEffects).length === 0) {\n // No more effects to apply; we're done.\n break;\n }\n // Apply the effects.\n Object.assign(state, effects);\n Object.assign(changed, changedByEffects);\n // Ask the component if there are any second- (or third-, etc.) order\n // effects that should be applied.\n effects = element[stateEffects](state, changedByEffects);\n }\n return { state, changed };\n}\n\n/**\n * Return true if the two values are equal.\n *\n * @private\n * @param {any} value1\n * @param {any} value2\n * @returns {boolean}\n */\nfunction equal(value1, value2) {\n if (value1 instanceof Date && value2 instanceof Date) {\n return value1.getTime() === value2.getTime();\n }\n return value1 === value2;\n}\n\n/**\n * Return a dictionary of flags indicating which of the indicated changes to the\n * state are actually substantive changes.\n *\n * @private\n * @param {PlainObject} state\n * @param {PlainObject} changes\n */\nfunction fieldsChanged(state, changes) {\n /** @type {ChangedFlags} */\n const changed = {};\n for (const field in changes) {\n if (!equal(changes[field], state[field])) {\n changed[field] = true;\n }\n }\n return changed;\n}\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","import {\n delegatesFocus,\n hasDynamicTemplate,\n ids,\n render,\n shadowRoot,\n shadowRootMode,\n template,\n} from \"./internal.js\";\n\n// A cache of processed templates, indexed by element class.\nconst classTemplateMap = new Map();\n\n// A Proxy that maps shadow element IDs to shadow elements.\n// This will be return as the element's `this[ids]` property;\n// see comments in that property below.\n/** @type {any} */\nconst shadowIdProxyKey = Symbol(\"shadowIdProxy\");\n\n// A reference stored on the shadow element proxy target to get to the actual\n// element. We use a Symbol here instead of a string name to avoid naming\n// conflicts with the element's internal shadow element IDs.\nconst proxyElementKey = Symbol(\"proxyElement\");\n\n// A handler used for the shadow element ID proxy.\nconst shadowIdProxyHandler = {\n get(target, id) {\n // From this proxy, obtain a reference to the original component.\n const element = target[proxyElementKey];\n\n // Get a reference to the component's open or closed shadow root.\n const root = element[shadowRoot];\n\n // Look for a shadow element with the indicated ID.\n return root && typeof id === \"string\" ? root.getElementById(id) : null;\n },\n};\n\n/**\n * Stamps a template into a component's Shadow DOM when instantiated\n *\n * To use this mixin, define a `template` method that returns a string or HTML\n * `<template>` element:\n *\n * import { createElement, replace, transmute } from 'elix/src/template.js';\n *\n * class MyElement extends ShadowTemplateMixin(HTMLElement) {\n * get [template]() {\n * return templateFrom.html`Hello, <em>world</em>.`;\n * }\n * }\n *\n * When your component class is instantiated, a shadow root will be created on\n * the instance, and the contents of the template will be cloned into the\n * shadow root. If your component does not define a `template` method, this\n * mixin has no effect.\n *\n * This adds a member on the component called `this[ids]` that can be used to\n * reference shadow elements with IDs. E.g., if component's shadow contains an\n * element `<button id=\"foo\">`, then this mixin will create a member\n * `this[ids].foo` that points to that button.\n *\n * @module ShadowTemplateMixin\n * @param {Constructor<HTMLElement>} Base\n */\nexport default function ShadowTemplateMixin(Base) {\n // The class prototype added by the mixin.\n class ShadowTemplate extends Base {\n /**\n * A convenient shortcut for looking up an element by ID in the component's\n * Shadow DOM subtree.\n *\n * Example: if component's template contains a shadow element `<button\n * id=\"foo\">`, you can use the reference `this[ids].foo` to obtain\n * the corresponding button in the component instance's shadow tree. The\n * `ids` property is simply a shorthand for `getElementById`, so\n * `this[ids].foo` is the same as\n * `this[shadowRoot].getElementById('foo')`.\n *\n * @type {object} - a dictionary mapping shadow element IDs to elements\n */\n get [ids]() {\n if (!this[shadowIdProxyKey]) {\n // Construct a proxy that maps to getElementById.\n const target = {\n // Give the proxy a means of refering to this element via the target.\n [proxyElementKey]: this,\n };\n this[shadowIdProxyKey] = new Proxy(target, shadowIdProxyHandler);\n }\n return this[shadowIdProxyKey];\n }\n\n /*\n * If the component defines a template, a shadow root will be created on the\n * component instance, and the template stamped into it.\n */\n [render](/** @type {ChangedFlags} */ changed) {\n if (super[render]) {\n super[render](changed);\n }\n\n // We populate the shadow root if the component doesn't have a shadow;\n // i.e., the first time the component is rendered. For this check, we use\n // an internal reference we maintain for the shadow root; see below.\n if (!this[shadowRoot]) {\n // If this type of element defines a template, prepare it for use.\n const template = getTemplate(this);\n\n if (template) {\n // Stamp the template into a new shadow root.\n const root = this.attachShadow({\n delegatesFocus: this[delegatesFocus],\n mode: this[shadowRootMode],\n });\n const clone = document.importNode(template.content, true);\n root.append(clone);\n\n // After this call, we won't be able to rely on being able to access\n // the shadow root via `this.shadowRoot`, because the component may\n // have asked for a closed shadow root. We save a reference to the\n // shadow root now so that the component always has a consistent means\n // to reference its own shadow root.\n this[shadowRoot] = root;\n } else {\n // No template. Set shadow root to null (instead of undefined) so we\n // won't try to render shadow on next render.\n this[shadowRoot] = null;\n }\n }\n }\n\n /**\n * @type {ShadowRootMode}\n * @default \"open\"\n */\n get [shadowRootMode]() {\n return \"open\";\n }\n }\n\n return ShadowTemplate;\n}\n\n/**\n * Return the template for the element being instantiated.\n *\n * If this is the first time we're creating this type of element, or the\n * component has indicated that its template is dynamic (and should be retrieved\n * each time), ask the component class for the template and cache the result.\n * Otherwise, immediately return the cached template.\n *\n * @private\n * @param {HTMLElement} element\n * @returns {HTMLTemplateElement}\n */\nfunction getTemplate(element) {\n let t = element[hasDynamicTemplate]\n ? undefined // Always retrieve template\n : classTemplateMap.get(element.constructor); // See if we've cached it\n if (t === undefined) {\n // Ask the component for its template.\n t = element[template];\n // A component using this mixin isn't required to supply a template --\n // if they don't, they simply won't end up with a shadow root.\n if (t) {\n // But if the component does supply a template, it needs to be an\n // HTMLTemplateElement instance.\n if (!(t instanceof HTMLTemplateElement)) {\n throw `Warning: the [template] property for ${element.constructor.name} must return an HTMLTemplateElement.`;\n }\n }\n if (!element[hasDynamicTemplate]) {\n // Store prepared template for next creation of same type of element.\n // If the component didn't define a template, store null so that we skip\n // the template retrieval next time.\n classTemplateMap.set(element.constructor, t || null);\n }\n }\n return t;\n}\n","import AttributeMarshallingMixin from \"./AttributeMarshallingMixin.js\";\nimport ReactiveMixin from \"./ReactiveMixin.js\";\nimport ShadowTemplateMixin from \"./ShadowTemplateMixin.js\";\n\n/**\n * General-purpose base for writing components in functional-reactive style\n *\n * This base class lets you create web components in a functional-reactive\n * programming (FRP) style. It simply bundles a small set of mixins:\n *\n * const ReactiveElement =\n * AttributeMarshallingMixin(\n * ReactiveMixin(\n * ShadowTemplateMixin(\n * HTMLElement\n * )))));\n *\n * `ReactiveElement` is provided as a convenience. You can achieve the same\n * result by applying the mixins yourself to `HTMLElement`.\n *\n * @inherits HTMLElement\n * @mixes AttributeMarshallingMixin\n * @mixes ReactiveMixin\n * @mixes ShadowTemplateMixin\n */\nconst ReactiveElement = AttributeMarshallingMixin(\n ReactiveMixin(ShadowTemplateMixin(HTMLElement))\n);\n\nexport default ReactiveElement;\n","/**\n * Collection of shared Symbol objects for internal component communication.\n *\n * The shared `Symbol` objects in this module let mixins and a component\n * internally communicate without exposing these internal properties and methods\n * in the component's public API. They also help avoid unintentional name\n * collisions, as a component developer must specifically import the `internal`\n * module and reference one of its symbols.\n *\n * To use these `Symbol` objects in your own component, include this module and\n * then create a property or method whose key is the desired Symbol. E.g.,\n * [ShadowTemplateMixin](ShadowTemplateMixin) expects a component to define\n * a property called [template](#template):\n *\n * import { template } from 'elix/src/core/internal.js';\n * import { templateFrom } from 'elix/src/core/htmlLiterals.js'\n * import ShadowTemplateMixin from 'elix/src/core/ShadowTemplateMixin.js';\n *\n * class MyElement extends ShadowTemplateMixin(HTMLElement) {\n * [template]() {\n * return templateFrom.html`Hello, <em>world</em>.`;\n * }\n * }\n *\n * The above use of the internal `template` member lets the mixin find the\n * component's template in a way that will not pollute the component's public\n * API or interfere with other component logic. For example, if for some reason\n * the component wants to define a separate property with the plain string name,\n * \"template\", it can do so without affecting the above property setter.\n *\n * @module internal\n */\n\nimport * as coreInternal from \"../core/internal.js\";\n\n/**\n * Symbol for the `applyElementData` method.\n *\n * Components that want to be able to apply data from one element to another\n * can support this method. E.g., [DropdownList](DropdownList) uses this to\n * apply data from the selected item to the component's value part.\n */\nexport const applyElementData = Symbol(\"applyElementData\");\n\n/**\n * Symbol for the `checkSize` method.\n *\n * If defined, this method will be invoked by [ResizeMixin](ResizeMixin)\n * when an element's size may have changed. The default implementation of\n * this method compares the element's current `clientHeight` and `clientWidth`\n * properties against the last known values of those properties (saved in\n * `state.clienHeight` and `state.clientWidth`).\n *\n * Components should override this method if they contain elements that may need\n * to know about size changes as well. For example, when an [Overlay](Overlay)\n * mixin opens, it invokes this method on any content elements that define it.\n * This gives the contents a chance to resize in response to being displayed.\n */\nexport const checkSize = Symbol(\"checkSize\");\n\n/**\n * Symbol for the `closestAvailableItemIndex` method.\n *\n * This method is defined by [ItemsCursorMixin](ItemsCursorMixin). You can call\n * this if you want to find an item at a particular location, but may need to\n * account for the fact that the item at that position is not available, and\n * would like to find the closest item that is available.\n */\nexport const closestAvailableItemIndex = Symbol(\"closestAvailableItemIndex\");\n\n/**\n * Symbol for the `contentSlot` property.\n *\n * [SlotContentMixin](SlotContentMixin) uses this to identify which slot\n * element in the component's shadow tree that holds the component's content.\n * By default, this is the first slot element with no \"name\" attribute. You\n * can override this to return a different slot.\n */\nexport const contentSlot = Symbol(\"contentSlot\");\n\n/**\n * The default state for this element.\n */\nexport const defaultState = coreInternal.defaultState;\n\n/**\n * Symbol for the `defaultTabIndex` property.\n *\n * [KeyboardMixin](KeyboardMixin) uses this if it is unable to successfully\n * parse a string tabindex attribute.\n */\nexport const defaultTabIndex = Symbol(\"defaultTabIndex\");\n\n/**\n * Symbol for the `delegatesFocus` property.\n *\n * [DelegatesFocusMixin](DelegatesFocusMixin) defines this property, returning\n * true to indicate that the focus is being delegated, even in browsers that\n * don't support that natively. Mixins like [KeyboardMixin](KeyboardMixin) use\n * this to accommodate focus delegation.\n */\nexport const delegatesFocus = coreInternal.delegatesFocus;\n\n/**\n * Symbol for the `effectEndTarget` property.\n *\n * [TransitionEffectMixin](TransitionEffectMixin) inspects this property to\n * determine which element's `transitionend` event will signal the end of a\n * transition effect.\n */\nexport const effectEndTarget = Symbol(\"effectEndTarget\");\n\n/**\n * Symbol for the `firstRender` property.\n *\n * [ReactiveMixin](ReactiveMixin) sets the property to `true` during the\n * element's first `connectedCallback`, then `false` in subsequent callbacks.\n *\n * You can inspect this property in your own `connectedCallback` handler\n * to do work like wiring up events that should only happen once.\n */\nexport const firstRender = coreInternal.firstRender;\n\n/**\n * Symbol for the `focusTarget` property.\n *\n * [DelegatesFocusMixin](DelegatesFocusMixin) defines this property as either:\n * 1) the element itself, in browsers that support native focus delegation or,\n * 2) the shadow root's first focusable element.\n */\nexport const focusTarget = coreInternal.focusTarget;\n\n/**\n * Symbol for the `getItemText` method.\n *\n * This method can be applied to an item to return its text.\n * [KeyboardPrefixCursorMixin](KeyboardPrefixCursorMixin) uses this to\n * obtain the text for each item in a list, then matches keypresses again that\n * text.\n *\n * This method takes a single parameter: the `HTMLElement` of the item from\n * which text should be extracted.\n */\nexport const getItemText = Symbol(\"getItemText\");\n\n/**\n * Symbol for the `goDown` method.\n *\n * This method is invoked when the user wants to go/navigate down.\n */\nexport const goDown = Symbol(\"goDown\");\n\n/**\n * Symbol for the `goEnd` method.\n *\n * This method is invoked when the user wants to go/navigate to the end (e.g.,\n * of a list).\n */\nexport const goEnd = Symbol(\"goEnd\");\n\n/**\n * Symbol for the `goFirst` method.\n *\n * This method is invoked when the user wants to go to the first item in a list.\n */\nexport const goFirst = Symbol(\"goFirst\");\n\n/**\n * Symbol for the `goLast` method.\n *\n * This method is invoked when the user wants to go to the last item in a list.\n */\nexport const goLast = Symbol(\"goLast\");\n\n/**\n * Symbol for the `goLeft` method.\n *\n * This method is invoked when the user wants to go/navigate left. Mixins that\n * make use of this method include\n * [KeyboardDirectionMixin](KeyboardDirectionMixin) and\n * [SwipeDirectionMixin](SwipeDirectionMixin).\n */\nexport const goLeft = Symbol(\"goLeft\");\n\n/**\n * Symbol for the `goNext` method.\n *\n * This method is invoked when the user wants to go/navigate to the next item.\n */\nexport const goNext = Symbol(\"goNext\");\n\n/**\n * Symbol for the `goPrevious` method.\n *\n * This method is invoked when the user wants to go/navigate to the previous item.\n */\nexport const goPrevious = Symbol(\"goPrevious\");\n\n/**\n * Symbol for the `goRight` method.\n *\n * This method is invoked when the user wants to go/navigate right. Mixins\n * that make use of this method include\n * [KeyboardDirectionMixin](KeyboardDirectionMixin) and\n * [SwipeDirectionMixin](SwipeDirectionMixin).\n */\nexport const goRight = Symbol(\"goRight\");\n\n/**\n * Symbol for the `goStart` method.\n *\n * This method is invoked when the user wants to go/navigate to the start\n * (e.g., of a list).\n */\nexport const goStart = Symbol(\"goStart\");\n\n/**\n * Symbol for the `goToItemWithPrefix` method.\n *\n * This method is invoked by\n * [KeyboardPrefixCursorMixin](KeyboardPrefixCursorMixin) when the user types\n * text characters.\n */\nexport const goToItemWithPrefix = Symbol(\"goToItemWithPrefix\");\n\n/**\n * Symbol for the `goUp` method.\n *\n * This method is invoked when the user wants to go/navigate up.\n */\nexport const goUp = Symbol(\"goUp\");\n\n/**\n * Symbol for the `hasDynamicTemplate` property.\n *\n * If your component class does not always use the same template, define a\n * static class property getter with this symbol and have it return `true`.\n * This will disable template caching for your component.\n */\nexport const hasDynamicTemplate = coreInternal.hasDynamicTemplate;\n\n/**\n * Symbol for the `ids` property.\n *\n * [ShadowTemplateMixin](ShadowTemplateMixin) defines a shorthand function\n * `internal.ids` that can be used to obtain a reference to a shadow element with\n * a given ID.\n *\n * Example: if component's template contains a shadow element\n * `<button id=\"foo\">`, you can use the reference `this[ids].foo` to obtain\n * the corresponding button in the component instance's shadow tree.\n * The `ids` function is simply a shorthand for `getElementById`, so\n * `this[ids].foo` is the same as `this.shadowRoot.getElementById('foo')`.\n */\nexport const ids = coreInternal.ids;\n\n/**\n * Symbol for the `inputDelegate` property.\n *\n * [DelegateInputSelectionMixin](DelegateInputSelectionMixin) uses this property\n * to indicate which shadow element is the input-type element to which text\n * selection methods and properties should be delegated.\n */\nexport const inputDelegate = Symbol(\"inputDelegate\");\n\n/**\n * Symbol for the `itemsDelegate` property.\n *\n * A component using [DelegateItemsMixin](DelegateItemsMixin) uses this property\n * to indicate which one of its shadow elements is the one whose `items`\n * property will be treated as the component's own `items`.\n */\nexport const itemsDelegate = Symbol(\"itemsDelegate\");\n\n/**\n * Symbol for the `keydown` method.\n *\n * This method is invoked when an element receives a `keydown` event.\n *\n * An implementation of `internal.keydown` should return `true` if it handled\n * the event, and `false` otherwise. If `true` is returned (the event was\n * handled), `KeyboardMixin` invokes the event's `preventDefault` and\n * `stopPropagation` methods to let the browser know the event was handled.\n *\n * The convention for handling `internal.keydown` is that the last mixin\n * applied wins. That is, if an implementation of `internal.keydown` *did*\n * handle the event, it can return immediately. If it did not, it should\n * invoke `super` to let implementations further up the prototype chain have\n * their chance.\n *\n * This method takes a `KeyboardEvent` parameter that contains the event being\n * processed.\n */\nexport const keydown = Symbol(\"keydown\");\n\n/**\n * Symbol for the `matchText` method.\n *\n * [AutoCompleteInput](AutoCompleteInput) invokes this method when trying\n * to find a match for a given input string against its set of texts.\n */\nexport const matchText = Symbol(\"matchText\");\n\n/**\n * Symbol for the `mouseenter` method.\n *\n * [HoverMixin](HoverMixin) invokes this method when the user moves the\n * mouse over a component. That mixin provides a base implementation of this\n * method, but you can extend it to do additional work on `mouseenter`.\n *\n * This method takes a `MouseEvent` parameter that contains the event being\n * processed.\n */\nexport const mouseenter = Symbol(\"mouseenter\");\n\n/**\n * Symbol for the `mouseleave` method.\n *\n * [HoverMixin](HoverMixin) invokes this method when the user moves off a\n * component. That mixin provides a base implementation of this method, but\n * you can extend it to do additional work on `mouseleave`.\n *\n * This method takes a `MouseEvent` parameter that contains the event being\n * processed.\n */\nexport const mouseleave = Symbol(\"mouseleave\");\n\n/**\n * Symbol for access to native HTML element internals.\n */\nexport const nativeInternals = coreInternal.nativeInternals;\n\n/**\n * Symbol for the `raiseChangeEvents` property.\n *\n * This property is used by mixins to determine whether they should raise\n * property change events. The standard HTML pattern is to only raise such\n * events in response to direct user interactions. For a detailed discussion\n * of this point, see the Gold Standard checklist item for\n * [Propery Change Events](https://github.com/webcomponents/gold-standard/wiki/Property%20Change%20Events).\n *\n * The above article describes a pattern for using a flag to track whether\n * work is being performed in response to internal component activity, and\n * whether the component should therefore raise property change events.\n * This `raiseChangeEvents` symbol is a shared flag used for that purpose by\n * all Elix mixins and components. Sharing this flag ensures that internal\n * activity (e.g., a UI event listener) in one mixin can signal other mixins\n * handling affected properties to raise change events.\n *\n * All UI event listeners (and other forms of internal handlers, such as\n * timeouts and async network handlers) should set `raiseChangeEvents` to\n * `true` at the start of the event handler, then `false` at the end:\n *\n * this.addEventListener('click', event => {\n * this[raiseChangeEvents] = true;\n * // Do work here, possibly setting properties, like:\n * this.foo = 'Hello';\n * this[raiseChangeEvents] = false;\n * });\n *\n * Elsewhere, property setters that raise change events should only do so it\n * this property is `true`:\n *\n * set foo(value) {\n * // Save foo value here, do any other work.\n * if (this[raiseChangeEvents]) {\n * export const event = new CustomEvent('foochange');\n * this.dispatchEvent(event);\n * }\n * }\n *\n * In this way, programmatic attempts to set the `foo` property will not trigger\n * the `foochange` event, but UI interactions that update that property will\n * cause those events to be raised.\n */\nexport const raiseChangeEvents = coreInternal.raiseChangeEvents;\n\n/**\n * Symbol for the `render` method.\n *\n * [ReactiveMixin](ReactiveMixin) invokes this `internal.render` method to give\n * the component a chance to render recent changes in component state.\n */\nexport const render = coreInternal.render;\n\n/**\n * Symbol for the `renderChanges` method.\n *\n * [ReactiveMixin](ReactiveMixin) invokes this method in response to a\n * `setState` call; you should generally not invoke this method yourself.\n */\nexport const renderChanges = coreInternal.renderChanges;\n\n/**\n * Symbol for the `renderDataToElement` method.\n *\n * [DataItemsMixin](DataItemsMixin) invokes this method to render data to an\n * element being used as an item in a list.\n */\nexport const renderDataToElement = Symbol(\"renderDataToElement\");\n\n/**\n * Symbol for the `rendered` method.\n *\n * [ReactiveMixin](ReactiveMixin) will invoke this method after your\n * element has completely finished rendering.\n */\nexport const rendered = coreInternal.rendered;\n\n/**\n * Symbol for the `rendering` property.\n *\n * [ReactiveMixin](ReactiveMixin) sets this property to true during rendering,\n * at other times it will be false.\n */\nexport const rendering = coreInternal.rendering;\n\n/**\n * Symbol for the `scrollTarget` property.\n *\n * This property indicates which element in a component's shadow subtree\n * should be scrolled. [CursorInViewMixin](CursorInViewMixin) can use\n * this property to determine which element should be scrolled to keep the\n * selected item in view.\n */\nexport const scrollTarget = Symbol(\"scrollTarget\");\n\n/**\n * Symbol for the `setState` method.\n *\n * A component using [ReactiveMixin](ReactiveMixin) can invoke this method to\n * apply changes to the element's current state.\n */\nexport const setState = coreInternal.setState;\n\n/**\n * Symbol for the `shadowRoot` property.\n *\n * This property holds a reference to an element's shadow root, like\n * `this.shadowRoot`. This propery exists because `this.shadowRoot` is not\n * available for components with closed shadow roots.\n * [ShadowTemplateMixin](ShadowTemplateMixin) creates open shadow roots by\n * default, but you can opt into creating closed shadow roots; see\n * [shadowRootMode](internal#internal.shadowRootMode).\n */\nexport const shadowRoot = coreInternal.shadowRoot;\n\n/**\n * Symbol for the `shadowRootMode` property.\n *\n * If true (the default), then [ShadowTemplateMixin](ShadowTemplateMixin) will\n * create an open shadow root when the component is instantiated. Set this to\n * false if you want to programmatically hide component internals in a closed\n * shadow root.\n */\nexport const shadowRootMode = coreInternal.shadowRootMode;\n\n/**\n * Symbol for the `startEffect` method.\n *\n * A component using [TransitionEffectMixin](TransitionEffectMixin) can invoke\n * this method to trigger the application of a named, asynchronous CSS\n * transition effect.\n *\n * This method takes a single `string` parameter giving the name of the effect\n * to start.\n */\nexport const startEffect = Symbol(\"startEffect\");\n\n/**\n * The element's current state.\n *\n * This is managed by [ReactiveMixin](ReactiveMixin).\n */\nexport const state = coreInternal.state;\n\nexport const stateEffects = coreInternal.stateEffects;\n\n/**\n * Symbol for the `swipeDown` method.\n *\n * The swipe mixin [TouchSwipeMixin](TouchSwipeMixin) invokes this method when\n * the user finishes a gesture to swipe down.\n */\nexport const swipeDown = Symbol(\"swipeDown\");\n\n/**\n * Symbol for the `swipeDownComplete` method.\n *\n * [SwipeCommandsMixin](SwipeCommandsMixin) invokes this method after any\n * animated transition associated with a swipe down has completed.\n */\nexport const swipeDownComplete = Symbol(\"swipeDownComplete\");\n\n/**\n * Symbol for the `swipeLeft` method.\n *\n * The swipe mixins [TouchSwipeMixin](TouchSwipeMixin) and\n * [TrackpadSwipeMixin](TrackpadSwipeMixin) invoke this method when the user\n * finishes a gesture to swipe left.\n */\nexport const swipeLeft = Symbol(\"swipeLeft\");\n\n/**\n * Symbol for the `swipeLeftTransitionEnd` method.\n *\n * [SwipeCommandsMixin](SwipeCommandsMixin) invokes this method after any\n * animated transition associated with a swipe left has completed.\n */\nexport const swipeLeftTransitionEnd = Symbol(\"swipeLeftTransitionEnd\");\n\n/**\n * Symbol for the `swipeRight` method.\n *\n * The swipe mixins [TouchSwipeMixin](TouchSwipeMixin) and\n * [TrackpadSwipeMixin](TrackpadSwipeMixin) invoke this method when the user\n * finishes a gesture to swipe right.\n */\nexport const swipeRight = Symbol(\"swipeRight\");\n\n/**\n * Symbol for the `swipeRightTransitionEnd` method.\n *\n * [SwipeCommandsMixin](SwipeCommandsMixin) invokes this method after any\n * animated transition associated with a swipe right has completed.\n */\nexport const swipeRightTransitionEnd = Symbol(\"swipeRightTransitionEnd\");\n\n/**\n * Symbol for the `swipeUp` method.\n *\n * The swipe mixin [TouchSwipeMixin](TouchSwipeMixin) invokes this method when\n * the user finishes a gesture to swipe up.\n */\nexport const swipeUp = Symbol(\"swipeUp\");\n\n/**\n * Symbol for the `swipeUpComplete` method.\n *\n * [SwipeCommandsMixin](SwipeCommandsMixin) invokes this method after any\n * animated transition associated with a swipe up has completed.\n */\nexport const swipeUpComplete = Symbol(\"swipeUpComplete\");\n\n/**\n * Symbol for the `swipeStart` method.\n *\n * [TouchSwipeMixin](TouchSwipeMixin) and\n * [TrackpadSwipeMixin](TrackpadSwipeMixin) invoke this method when a swipe\n * is starting, passing in the starting (x, y) client coordinate.\n */\nexport const swipeStart = Symbol(\"swipeStart\");\n\n/**\n * Symbol for the `swipeTarget` property.\n *\n * By default, the swipe mixins [TouchSwipeMixin](TouchSwipeMixin) and\n * [TrackpadSwipeMixin](TrackpadSwipeMixin) assume that the element the user\n * is swiping the top-level element. In some cases (e.g., [Drawer](Drawer)),\n * the component wants to let the user swipe a shadow element. In such cases,\n * this property should return the element that should be swiped.\n *\n * The swipe target's `offsetWidth` is used by the mixin to calculate the\n * `state.swipeFraction` member when the user drags their finger. The\n * `swipeFraction` is the distance the user has dragged in the current drag\n * operation over that `offsetWidth`.\n */\nexport const swipeTarget = Symbol(\"swipeTarget\");\n\n/**\n * Symbol for the `tap` method.\n *\n * This method is invoked when an element receives an operation that should\n * be interpreted as a tap. [TapCursorMixin](TapCursorMixin)\n * invokes this when the element receives a `mousedown` event, for example.\n */\nexport const tap = Symbol(\"tap\");\n\n/**\n * Symbol for the `template` method.\n *\n * [ShadowTemplateMixin](ShadowTemplateMixin) uses this property to obtain a\n * component's template, which it will clone into a component's shadow root.\n */\nexport const template = coreInternal.template;\n\n/**\n * Symbol for the `toggleSelectedFlag` method.\n *\n * [ItemsMultiSelectMixin](ItemsMultiSelectMixin) exposes this method to let\n * other mixins like [MultiSelectAPIMixin](MultiSelectAPIMixin) toggle the\n * selected state of an individual item.\n */\nexport const toggleSelectedFlag = Symbol(\"toggleSelectedFlag\");\n\n// Expose internals as a global when debugging.\nconst elixdebug = new URLSearchParams(location.search).get(\"elixdebug\");\nif (elixdebug === \"true\") {\n /** @type {any} */ (window).elix = {\n internal: {\n checkSize,\n closestAvailableItemIndex,\n contentSlot,\n defaultState,\n defaultTabIndex,\n delegatesFocus,\n effectEndTarget,\n firstRender,\n focusTarget,\n getItemText,\n goDown,\n goEnd,\n goFirst,\n goLast,\n goLeft,\n goNext,\n goPrevious,\n goRight,\n goStart,\n goToItemWithPrefix,\n goUp,\n hasDynamicTemplate,\n ids,\n inputDelegate,\n itemsDelegate,\n keydown,\n mouseenter,\n mouseleave,\n nativeInternals,\n event,\n raiseChangeEvents,\n render,\n renderChanges,\n renderDataToElement,\n rendered,\n rendering,\n scrollTarget,\n setState,\n shadowRoot,\n shadowRootMode,\n startEffect,\n state,\n stateEffects,\n swipeDown,\n swipeDownComplete,\n swipeLeft,\n swipeLeftTransitionEnd,\n swipeRight,\n swipeRightTransitionEnd,\n swipeUp,\n swipeUpComplete,\n swipeStart,\n swipeTarget,\n tap,\n template,\n toggleSelectedFlag,\n },\n };\n}\n","import ReactiveElement from \"../core/ReactiveElement.js\"; // eslint-disable-line no-unused-vars\nimport {\n defaultState,\n keydown,\n render,\n rendering,\n setState,\n state,\n} from \"./internal.js\";\n\n// Symbols for private data members.\n/** @type {any} */\nconst previousBodyOverflowKey = Symbol(\"previousBodyStyleOverflow\");\n/** @type {any} */\nconst previousDocumentMarginRightKey = Symbol(\"previousDocumentMarginRight\");\n\n/**\n * Gives an overlay modal behavior.\n *\n * This blocks various user interactions to make an overlay behave like a modal\n * dialog:\n *\n * * Disables scrolling on the background document. **This is a global\n * side-effect of opening the component.**\n * * A default ARIA role of `dialog`.\n * * Closes the element if user presses the Esc key.\n *\n * For modeless overlays, see `PopupModalityMixin` instead.\n *\n * @module DialogModalityMixin\n * @param {Constructor<ReactiveElement>} Base\n */\nexport default function DialogModalityMixin(Base) {\n return class DialogModality extends Base {\n // @ts-ignore\n get [defaultState]() {\n return Object.assign(super[defaultState] || {}, {\n role: \"dialog\",\n });\n }\n\n [keydown](/** @type {KeyboardEvent} */ event) {\n let handled = false;\n\n switch (event.key) {\n case \"Escape\":\n // Close on Esc key.\n this.close({\n canceled: \"Escape\",\n });\n handled = true;\n break;\n }\n\n // Prefer mixin result if it's defined, otherwise use base result.\n return handled || (super[keydown] && super[keydown](event)) || false;\n }\n\n [render](/** @type {ChangedFlags} */ changed) {\n if (super[render]) {\n super[render](changed);\n }\n if (changed.opened) {\n if (this[state].opened && document.documentElement) {\n // Disable body scrolling to absorb space bar keypresses and other\n // means of scrolling the top-level document.\n const documentWidth = document.documentElement.clientWidth;\n const scrollBarWidth = window.innerWidth - documentWidth;\n this[previousBodyOverflowKey] = document.body.style.overflow;\n this[previousDocumentMarginRightKey] =\n scrollBarWidth > 0\n ? document.documentElement.style.marginRight\n : null;\n document.body.style.overflow = \"hidden\";\n if (scrollBarWidth > 0) {\n document.documentElement.style.marginRight = `${scrollBarWidth}px`;\n }\n } else {\n // Reenable body scrolling.\n if (this[previousBodyOverflowKey] != null) {\n document.body.style.overflow = this[previousBodyOverflowKey];\n this[previousBodyOverflowKey] = null;\n }\n if (this[previousDocumentMarginRightKey] != null) {\n document.documentElement.style.marginRight = this[\n previousDocumentMarginRightKey\n ];\n this[previousDocumentMarginRightKey] = null;\n }\n }\n }\n if (changed.role) {\n // Apply top-level role.\n const { role } = this[state];\n this.setAttribute(\"role\", role);\n }\n }\n\n // Setting the standard role attribute will invoke this property setter,\n // which will allow us to update our state.\n get role() {\n return super.role;\n }\n set role(role) {\n super.role = role;\n if (!this[rendering]) {\n this[setState]({ role });\n }\n }\n };\n}\n","import { deepContains, firstFocusableElement } from \"../core/dom.js\";\nimport { fragmentFrom } from \"../core/htmlLiterals.js\";\nimport ReactiveElement from \"../core/ReactiveElement.js\"; // eslint-disable-line no-unused-vars\nimport { firstRender, ids, keydown, render, shadowRoot } from \"./internal.js\";\n\n// Symbols for private data members on an element.\nconst wrap = Symbol(\"wrap\");\n/** @type {any} */\nconst wrappingFocusKey = Symbol(\"wrappingFocus\");\n\n/**\n * Allows Tab and Shift+Tab operations to cycle the focus within the component.\n *\n * This mixin expects the component to provide:\n *\n * * A template-stamping mechanism compatible with `ShadowTemplateMixin`.\n *\n * The mixin provides these features to the component:\n *\n * * Template elements and event handlers that will cause the keyboard focus to wrap.\n *\n * This mixin [contributes to a component's template](mixins#mixins-that-contribute-to-a-component-s-template).\n * See that discussion for details on how to use such a mixin.\n *\n * @module FocusCaptureMixin\n * @param {Constructor<ReactiveElement>} Base\n */\nfunction FocusCaptureMixin(Base) {\n class FocusCapture extends Base {\n [keydown](/** @type {KeyboardEvent} */ event) {\n const firstElement = firstFocusableElement(this[shadowRoot]);\n // We need to check both the document active element (to handle case where\n // the user is tabbing through light DOM nodes assigned to a slot) and the\n // shadow active element (to handle case where the user is tabbing through\n // shadow nodes).\n if (firstElement) {\n const firstElementIsDocumentActive =\n document.activeElement &&\n (document.activeElement === firstElement ||\n document.activeElement.contains(firstElement));\n const shadowActiveElement = this[shadowRoot].activeElement;\n const firstElementIsShadowActive =\n shadowActiveElement &&\n (shadowActiveElement === firstElement ||\n deepContains(shadowActiveElement, firstElement));\n const firstElementIsActive =\n firstElementIsDocumentActive || firstElementIsShadowActive;\n if (firstElementIsActive && event.key === \"Tab\" && event.shiftKey) {\n // Set focus to focus catcher.\n // The Shift+Tab keydown event should continue bubbling, and the default\n // behavior should cause it to end up on the last focusable element.\n this[wrappingFocusKey] = true;\n this[ids].focusCatcher.focus();\n this[wrappingFocusKey] = false;\n // Don't mark the event as handled, since we want it to keep bubbling up.\n }\n }\n\n // Prefer mixin result if it's defined, otherwise use base result.\n return (super[keydown] && super[keydown](event)) || false;\n }\n\n [render](/** @type {ChangedFlags} */ changed) {\n if (super[render]) {\n super[render](changed);\n }\n if (this[firstRender]) {\n this[ids].focusCatcher.addEventListener(\"focus\", () => {\n if (!this[wrappingFocusKey]) {\n // Wrap focus back to the first focusable element.\n const focusElement = firstFocusableElement(this[shadowRoot]);\n if (focusElement) {\n focusElement.focus();\n }\n }\n });\n }\n }\n\n /**\n * Destructively wrap a node with elements necessary to capture focus.\n *\n * Call this method in a components `internal.template` property.\n * Invoke this method as `this[FocusCaptureMixin.wrap](element)`.\n *\n * @param {Element} target - the element within which focus should wrap\n */\n [wrap](target) {\n const focusCapture = fragmentFrom.html`\n <style>\n #focusCapture {\n display: flex;\n height: 100%;\n overflow: hidden;\n width: 100%;\n }\n\n #focusCaptureContainer {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: center;\n position: relative;\n }\n </style>\n <div id=\"focusCapture\">\n <div id=\"focusCaptureContainer\"></div>\n <div id=\"focusCatcher\" tabindex=\"0\"></div>\n </div>\n `;\n\n // Wrap the target with the focus capture elements.\n const container = focusCapture.getElementById(\"focusCaptureContainer\");\n if (container) {\n target.replaceWith(focusCapture);\n container.append(target);\n }\n }\n }\n\n return FocusCapture;\n}\n\nFocusCaptureMixin.wrap = wrap;\n\nexport default FocusCaptureMixin;\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","import { templateFrom } from \"../core/htmlLiterals.js\";\nimport ReactiveElement from \"../core/ReactiveElement.js\";\nimport AriaRoleMixin from \"./AriaRoleMixin.js\";\nimport { defaultState, template } from \"./internal.js\";\n\nconst Base = AriaRoleMixin(ReactiveElement);\n\n/**\n * Background element shown behind an overlay's primary content\n *\n * The backdrop is transparent by default, suggesting to the user that the\n * overlay is modeless, and they can click through it to reach the background\n * elements. For a modal variant, see [ModalBackdrop](ModalBackdrop).\n *\n * @inherits ReactiveElement\n * @mixes AriaRoleMixin\n */\nclass Backdrop extends Base {\n // @ts-ignore\n get [defaultState]() {\n return Object.assign(super[defaultState], {\n role: \"none\",\n });\n }\n\n get [template]() {\n return templateFrom.html`\n <style>\n :host {\n display: inline-block;\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n touch-action: manipulation;\n width: 100%;\n }\n </style>\n <slot></slot>\n `;\n }\n}\n\nexport default Backdrop;\n","import ReactiveElement from \"../core/ReactiveElement.js\"; // eslint-disable-line no-unused-vars\nimport {\n defaultState,\n render,\n rendering,\n setState,\n state,\n} from \"./internal.js\";\n\n/**\n * Lets a component define its ARIA role through a `role` state member\n *\n * Among other things, this allows a class or mixin to define a default\n * role through the component's `defaultState`.\n *\n * Some mixins come with identicial support for managing an ARIA role. Those\n * mixins include [AriaListMixin](AriaListMixin),\n * [AriaMenuMixin](AriaMenuMixin), [DialogModalityMixin](DialogModalityMixin),\n * and [PopupModalityMixin](PopupModalityMixin). If you're using one of those\n * mixins, you do *not* need to use this mixin.\n *\n * @module AriaRoleMixin\n * @param {Constructor<ReactiveElement>} Base\n */\nexport default function AriaRoleMixin(Base) {\n // The class prototype added by the mixin.\n class AriaRole extends Base {\n // @ts-ignore\n get [defaultState]() {\n return Object.assign(super[defaultState] || {}, {\n role: null,\n });\n }\n\n [render](/** @type {ChangedFlags} */ changed) {\n if (super[render]) {\n super[render](changed);\n }\n if (changed.role) {\n // Apply top-level role.\n const { role } = this[state];\n if (role) {\n this.setAttribute(\"role\", role);\n } else {\n this.removeAttribute(\"role\");\n }\n }\n }\n\n // Setting the standard role attribute will invoke this property setter,\n // which will allow us to update our state.\n get role() {\n return super.role;\n }\n set role(role) {\n const s = String(role);\n super.role = s;\n if (!this[rendering]) {\n this[setState]({ s });\n }\n }\n }\n\n return AriaRole;\n}\n","import Backdrop from \"./Backdrop.js\";\n\n/**\n * Semi-transparent backdrop for a modal overlay\n *\n * This type of backdrop is used by [Dialog](Dialog) and [Drawer](Drawer). The\n * backdrop slightly obscures the background elements, focusing the user's\n * attention on the overlay.\n *\n * @inherits Backdrop\n */\nclass ModalBackdrop extends Backdrop {\n constructor() {\n super();\n\n // As of Sep 2018, Mobile Safari allows the user to drag on the backdrop to\n // scroll the page behind it, which violates the modality. To correct this,\n // we prevent touchmove events with one touch from performing the default\n // page scrolling.\n //\n // Android Chrome already correctly prevents drags from reaching the page,\n // so we only engage this workaround if we don't see support for pointer\n // events -- in which case we assume we're in Safari.\n if (!(\"PointerEvent\" in window)) {\n this.addEventListener(\"touchmove\", (event) => {\n if (event.touches.length === 1) {\n event.preventDefault();\n }\n });\n }\n }\n}\n\nexport default ModalBackdrop;\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","/**\n * Helpers for dynamically creating and patching component templates.\n *\n * The [ShadowTemplateMixin](ShadowTemplateMixin) lets you define a component\n * template that will be used to popuplate the shadow subtree of new component\n * instances. These helpers, especially the [html](#html) function, are intended\n * to simplify the creation of such templates.\n *\n * In particular, these helpers can be useful in [patching\n * templates](customizing#template-patching) inherited from a base class.\n *\n * Some of these functions take _descriptors_ that can either be a class, a tag\n * name, or an HTML template. These are generally used to fill specific roles in\n * an element's template; see [element roles](customizing#element-part-types).\n *\n * @module template\n */\n\nimport { templateFrom } from \"./htmlLiterals.js\";\n\n// Used by registerCustomElement.\nconst mapBaseTagToCount = new Map();\n\n/**\n * Create an element from a role descriptor (a component class constructor or\n * an HTML tag name).\n *\n * If the descriptor is an HTML template, and the resulting document fragment\n * contains a single top-level node, that node is returned directly (instead of\n * the fragment).\n *\n * @param {PartDescriptor} descriptor - the descriptor that will be used to\n * create the element\n * @returns {Element} the new element\n */\nexport function createElement(descriptor) {\n if (typeof descriptor === \"function\") {\n // Instantiable component class constructor\n let element;\n try {\n element = new descriptor();\n } catch (e) {\n if (e.name === \"TypeError\") {\n // Most likely this error results from the fact that the indicated\n // component class hasn't been registered. Register it now with a random\n // name and try again.\n registerCustomElement(descriptor);\n element = new descriptor();\n } else {\n // The exception was for some other reason.\n throw e;\n }\n }\n return element;\n // @ts-ignore\n } else {\n // String tag name: e.g., 'div'\n return document.createElement(descriptor);\n }\n}\n\nexport function html(strings, ...substitutions) {\n /* eslint-disable no-console */\n console.warn(\n `The template.html helper has moved to htmlLiterals.js, and is now called \\`templateFrom.html\\`. Please update your imports.`\n );\n return templateFrom.html(strings, ...substitutions);\n}\n\n/**\n * Register the indicated constructor as a custom element class.\n *\n * This function generates a suitable string tag for the class. If the\n * constructor is a named function (which is typical for hand-authored code),\n * the function's `name` will be used as the base for the tag. If the\n * constructor is an anonymous function (which often happens in\n * generated/minified code), the tag base will be \"custom-element\".\n *\n * In either case, this function adds a uniquifying number to the end of the\n * base to produce a complete tag.\n *\n * @private\n * @param {Constructor<HTMLElement>} classFn\n */\nfunction registerCustomElement(classFn) {\n let baseTag;\n // HTML places more restrictions on the first character in a tag than\n // JavaScript places on the first character of a class name. We apply this\n // more restrictive condition to the class names we'll convert to tags. Class\n // names that fail this check -- often generated class names -- will result in\n // a base tag name of \"custom-element\".\n const classNameRegex = /^[A-Za-z][A-Za-z0-9_$]*$/;\n const classNameMatch = classFn.name && classFn.name.match(classNameRegex);\n if (classNameMatch) {\n // Given the class name `FooBar`, calculate the base tag name `foo-bar`.\n const className = classNameMatch[0];\n const uppercaseRegEx = /([A-Z])/g;\n const hyphenated = className.replace(\n uppercaseRegEx,\n (match, letter, offset) => (offset > 0 ? `-${letter}` : letter)\n );\n baseTag = hyphenated.toLowerCase();\n } else {\n baseTag = \"custom-element\";\n }\n // Add a uniquifying number to the end of the tag until we find a tag\n // that hasn't been registered yet.\n let count = mapBaseTagToCount.get(baseTag) || 0;\n let tag;\n for (; ; count++) {\n tag = `${baseTag}-${count}`;\n if (!customElements.get(tag)) {\n // Not in use.\n break;\n }\n }\n // Register with the generated tag.\n customElements.define(tag, /** @type {any} */ classFn);\n // Bump number and remember it. If we see the same base tag again later, we'll\n // start counting at that number in our search for a uniquifying number.\n mapBaseTagToCount.set(baseTag, count + 1);\n}\n\n/**\n * Replace an original node in a tree or document fragment with the indicated\n * replacement node. The attributes, classes, styles, and child nodes of the\n * original node will be moved to the replacement.\n *\n * @param {Node} original - an existing node to be replaced\n * @param {Node} replacement - the node to replace the existing node with\n * @returns {Node} the updated replacement node\n */\nexport function replace(original, replacement) {\n const parent = original.parentNode;\n if (!parent) {\n throw \"An element must have a parent before it can be substituted.\";\n }\n if (\n (original instanceof HTMLElement || original instanceof SVGElement) &&\n (replacement instanceof HTMLElement || replacement instanceof SVGElement)\n ) {\n // Merge attributes from original to replacement, letting replacement win\n // conflicts. Handle classes and styles separately (below).\n Array.prototype.forEach.call(original.attributes, (\n /** @type {Attr} */ attribute\n ) => {\n if (\n !replacement.getAttribute(attribute.name) &&\n attribute.name !== \"class\" &&\n attribute.name !== \"style\"\n ) {\n replacement.setAttribute(attribute.name, attribute.value);\n }\n });\n // Copy classes/styles from original to replacement, letting replacement win\n // conflicts.\n Array.prototype.forEach.call(original.classList, (\n /** @type {string} */ className\n ) => {\n replacement.classList.add(className);\n });\n Array.prototype.forEach.call(original.style, (\n /** @type {number} */ key\n ) => {\n if (!replacement.style[key]) {\n replacement.style[key] = original.style[key];\n }\n });\n }\n // Copy over children.\n // @ts-ignore\n replacement.append(...original.childNodes);\n\n parent.replaceChild(replacement, original);\n return replacement;\n}\n\n/**\n * Replace a node with a new element, transferring all attributes, classes,\n * styles, and child nodes from the original(s) to the replacement(s).\n *\n * The descriptor used for the replacements can be a 1) component class\n * constructor, 2) an HTML tag name, or 3) an HTML template. For #1 and #2, if\n * the existing elements that match the selector are already of the desired\n * class/tag name, the replacement operation is skipped.\n *\n * @param {Element} original - the node to replace\n * @param {PartDescriptor} descriptor - the descriptor used to generate the\n * replacement element\n * @returns {Element} the replacement node(s)\n */\nexport function transmute(original, descriptor) {\n if (\n (typeof descriptor === \"function\" && original.constructor === descriptor) ||\n (typeof descriptor === \"string\" &&\n original instanceof Element &&\n original.localName === descriptor)\n ) {\n // Already correct type of element, no transmutation necessary.\n return original;\n } else {\n // Transmute the single node.\n const replacement = createElement(descriptor);\n replace(original, replacement);\n return replacement;\n }\n}\n","import { booleanAttributeValue, setInternalState } from \"../core/dom.js\";\nimport ReactiveElement from \"../core/ReactiveElement.js\"; // eslint-disable-line no-unused-vars\nimport {\n defaultState,\n raiseChangeEvents,\n render,\n rendered,\n setState,\n startEffect,\n state,\n stateEffects,\n} from \"./internal.js\";\n\n/** @type {any} */\nconst closePromiseKey = Symbol(\"closePromise\");\n/** @type {any} */\nconst closeResolveKey = Symbol(\"closeResolve\");\n\n/**\n * Tracks the open/close state of a component.\n *\n * @module OpenCloseMixin\n * @param {Constructor<ReactiveElement>} Base\n */\nexport default function OpenCloseMixin(Base) {\n // The class prototype added by the mixin.\n class OpenClose extends Base {\n attributeChangedCallback(name, oldValue, newValue) {\n if (name === \"opened\") {\n const value = booleanAttributeValue(name, newValue);\n if (this.opened !== value) {\n this.opened = value;\n }\n } else {\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n }\n\n /**\n * Close the component (if not already closed).\n *\n * Some components like [AlertDialog](AlertDialog) want to indicate why or\n * how they were closed. To support such scenarios, you can supply a value\n * to the optional `closeResult` parameter. This closeResult will be made\n * available in the `whenClosed` promise and the `state.closeResult` member.\n *\n * @param {object} [closeResult] - an indication of how or why the element closed\n */\n async close(closeResult) {\n if (super.close) {\n await super.close();\n }\n this[setState]({ closeResult });\n await this.toggle(false);\n }\n\n /**\n * True if the element is currently closed.\n *\n * This read-only property is provided as a convenient inverse of `opened`.\n *\n * @type {boolean}\n */\n get closed() {\n return this[state] && !this[state].opened;\n }\n\n /**\n * True if the element has completely closed.\n *\n * For components not using asynchronous open/close effects, this property\n * returns the same value as the `closed` property. For elements that have a\n * true value of `state.openCloseEffects` (e.g., elements using\n * [TransitionEffectMixin](TransitionEffectMixin)), this property returns\n * true only if `state.effect` is \"close\" and `state.effectPhase` is\n * \"after\".\n *\n * @type {boolean}\n */\n get closeFinished() {\n return this[state].closeFinished;\n }\n\n get closeResult() {\n return this[state].closeResult;\n }\n\n // @ts-ignore\n get [defaultState]() {\n const defaults = {\n closeResult: null,\n opened: false,\n };\n // If this component defines a `startEffect` method (e.g., by using\n // TransitionEffectMixin), include default state for open/close effects.\n // Since the component is closed by default, the default effect state is\n // after the close effect has completed.\n if (this[startEffect]) {\n Object.assign(defaults, {\n closeFinished: true,\n effect: \"close\",\n effectPhase: \"after\",\n openCloseEffects: true,\n });\n }\n return Object.assign(super[defaultState] || {}, defaults);\n }\n\n /**\n * Open the element (if not already opened).\n */\n async open() {\n if (super.open) {\n await super.open();\n }\n this[setState]({ closeResult: undefined });\n await this.toggle(true);\n }\n\n /**\n * True if the element is currently opened.\n *\n * This property can be set as a boolean attribute\n *\n * @type {boolean}\n * @default false\n */\n get opened() {\n return this[state] && this[state].opened;\n }\n set opened(opened) {\n this[setState]({ closeResult: undefined });\n this.toggle(opened);\n }\n\n [render](changed) {\n super[render](changed);\n\n // Reflect opened state.\n if (changed.opened) {\n const { opened } = this[state];\n setInternalState(this, \"opened\", opened);\n }\n\n // Reflect closed state. To handle asynchronous close effects, we reflect\n // the inverse of closeFinished instead of reflecting closed.\n if (changed.closeFinished) {\n const { closeFinished } = this[state];\n setInternalState(this, \"closed\", closeFinished);\n }\n }\n\n [rendered](/** @type {ChangedFlags} */ changed) {\n if (super[rendered]) {\n super[rendered](changed);\n }\n\n if (changed.opened && this[raiseChangeEvents]) {\n const oldEvent = new CustomEvent(\"opened-changed\", {\n bubbles: true,\n detail: {\n closeResult: this[state].closeResult,\n opened: this[state].opened,\n },\n });\n this.dispatchEvent(oldEvent);\n /**\n * Raised when the opened/closed state of the component changes.\n *\n * @event openedchange\n */\n const openedChangeEvent = new CustomEvent(\"openedchange\", {\n bubbles: true,\n detail: {\n closeResult: this[state].closeResult,\n opened: this[state].opened,\n },\n });\n this.dispatchEvent(openedChangeEvent);\n\n if (this[state].opened) {\n const oldOpenedEvent = new CustomEvent(\"opened\", {\n bubbles: true,\n });\n this.dispatchEvent(oldOpenedEvent);\n /**\n * Raised when the component opens.\n *\n * @event open\n */\n const openEvent = new CustomEvent(\"open\", {\n bubbles: true,\n });\n this.dispatchEvent(openEvent);\n } else {\n const oldClosedEvent = new CustomEvent(\"closed\", {\n bubbles: true,\n detail: {\n closeResult: this[state].closeResult,\n },\n });\n this.dispatchEvent(oldClosedEvent);\n /**\n * Raised when the component closes.\n *\n * @event close\n */\n const closeEvent = new CustomEvent(\"close\", {\n bubbles: true,\n detail: {\n closeResult: this[state].closeResult,\n },\n });\n this.dispatchEvent(closeEvent);\n }\n }\n\n // If someone's waiting for the component to close, and it's completely\n // finished closing, then resolve the close promise.\n const closeResolve = this[closeResolveKey];\n if (this.closeFinished && closeResolve) {\n this[closeResolveKey] = null;\n this[closePromiseKey] = null;\n closeResolve(this[state].closeResult);\n }\n }\n\n [stateEffects](state, changed) {\n const effects = super[stateEffects]\n ? super[stateEffects](state, changed)\n : {};\n\n // Update our notion of closeFinished to track the closed state for\n // components with synchronous open/close effects and components with\n // asynchronous open/close effects.\n if (\n changed.openCloseEffects ||\n changed.effect ||\n changed.effectPhase ||\n changed.opened\n ) {\n const { effect, effectPhase, openCloseEffects, opened } = state;\n const closeFinished = openCloseEffects\n ? effect === \"close\" && effectPhase === \"after\"\n : !opened;\n Object.assign(effects, { closeFinished });\n }\n\n return effects;\n }\n\n /**\n * Toggle the open/close state of the element.\n *\n * @param {boolean} [opened] - true if the element should be opened, false\n * if closed.\n */\n async toggle(opened = !this.opened) {\n if (super.toggle) {\n await super.toggle(opened);\n }\n const changed = opened !== this[state].opened;\n if (changed) {\n /** @type {PlainObject} */ const changes = { opened };\n if (this[state].openCloseEffects) {\n changes.effect = opened ? \"open\" : \"close\";\n if (this[state].effectPhase === \"after\") {\n changes.effectPhase = \"before\";\n }\n }\n await this[setState](changes);\n }\n }\n\n /**\n * This method can be used as an alternative to listening to the\n * \"openedchange\" event, particularly in situations where you want to only\n * handle the next time the component is closed.\n *\n * @returns {Promise} A promise that resolves when the element has\n * completely closed, including the completion of any asynchronous opening\n * effect.\n */\n whenClosed() {\n if (!this[closePromiseKey]) {\n this[closePromiseKey] = new Promise((resolve) => {\n this[closeResolveKey] = resolve;\n });\n }\n return this[closePromiseKey];\n }\n }\n\n return OpenClose;\n}\n","import { templateFrom } from \"../core/htmlLiterals.js\";\nimport ReactiveElement from \"../core/ReactiveElement.js\";\nimport { template } from \"./internal.js\";\n\n/**\n * A simple frame for overlay content.\n *\n * The default appearance of `OverlayFrame` uses a simple drop-shadow to let the\n * user see the framed content as being on top of the background page content.\n *\n * @inherits ReactiveElement\n */\nclass OverlayFrame extends ReactiveElement {\n get [template]() {\n return templateFrom.html`\n <style>\n :host {\n display: inline-block;\n position: relative;\n }\n </style>\n <slot></slot>\n `;\n }\n}\n\nexport default OverlayFrame;\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar hex = /^[+-]?0[Xx]/;\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(String(string));\n return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));\n} : $parseInt;\n","var $ = require('../internals/export');\nvar parseIntImplementation = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != parseIntImplementation }, {\n parseInt: parseIntImplementation\n});\n","import { deepContains, firstFocusableElement } from \"../core/dom.js\";\nimport { fragmentFrom, templateFrom } from \"../core/htmlLiterals.js\";\nimport ReactiveElement from \"../core/ReactiveElement.js\"; // eslint-disable-line no-unused-vars\nimport {\n defaultState,\n firstRender,\n render,\n rendered,\n setState,\n state,\n template,\n} from \"./internal.js\";\n\n/** @type {any} */\nconst appendedToDocumentKey = Symbol(\"appendedToDocument\");\n/** @type {any} */\nconst defaultZIndexKey = Symbol(\"assignedZIndex\");\n/** @type {any} */\nconst restoreFocusToElementKey = Symbol(\"restoreFocusToElement\");\n\n/**\n * Displays an opened element on top of other page elements.\n *\n * This mixin handles showing and hiding an overlay element. It, together with\n * [OpenCloseMixin](OpenCloseMixin), form the core behavior for [Overlay](Overlay),\n * which in turn forms the basis of Elix's overlay components.\n *\n * @module OverlayMixin\n * @param {Constructor<ReactiveElement>} Base\n */\nexport default function OverlayMixin(Base) {\n // The class prototype added by the mixin.\n class Overlay extends Base {\n // TODO: Document\n get autoFocus() {\n return this[state].autoFocus;\n }\n set autoFocus(autoFocus) {\n this[setState]({ autoFocus });\n }\n\n // @ts-ignore\n get [defaultState]() {\n return Object.assign(super[defaultState] || {}, {\n autoFocus: true,\n persistent: false,\n });\n }\n\n async open() {\n if (!this[state].persistent && !this.isConnected) {\n // Overlay isn't in document yet.\n this[appendedToDocumentKey] = true;\n document.body.append(this);\n }\n if (super.open) {\n await super.open();\n }\n }\n\n [render](/** @type {ChangedFlags} */ changed) {\n if (super[render]) {\n super[render](changed);\n }\n\n if (this[firstRender]) {\n this.addEventListener(\"blur\", (event) => {\n // What has the focus now?\n const newFocusedElement =\n event.relatedTarget || document.activeElement;\n /** @type {any} */\n const node = this;\n if (newFocusedElement instanceof HTMLElement) {\n const focusInside = deepContains(node, newFocusedElement);\n if (!focusInside) {\n if (this.opened) {\n // The user has most likely clicked on something in the background\n // of a modeless overlay. Remember that element, and restore focus\n // to it when the overlay finishes closing.\n this[restoreFocusToElementKey] = newFocusedElement;\n } else {\n // A blur event fired, but the overlay closed itself before the blur\n // event could be processed. In closing, we may have already\n // restored the focus to the element that originally invoked the\n // overlay. Since the user has clicked somewhere else to close the\n // overlay, put the focus where they wanted it.\n newFocusedElement.focus();\n this[restoreFocusToElementKey] = null;\n }\n }\n }\n });\n }\n\n if (changed.effectPhase || changed.opened || changed.persistent) {\n if (!this[state].persistent) {\n // Temporary overlay\n const closed =\n typeof this.closeFinished === \"undefined\"\n ? this.closed\n : this.closeFinished;\n\n if (closed) {\n if (this[defaultZIndexKey]) {\n // Remove default z-index.\n this.style.zIndex = \"\";\n this[defaultZIndexKey] = null;\n }\n } else if (this[defaultZIndexKey]) {\n this.style.zIndex = this[defaultZIndexKey];\n } else {\n if (!hasZIndex(this)) {\n bringToFront(this);\n }\n }\n }\n }\n }\n\n [rendered](/** @type {ChangedFlags} */ changed) {\n if (super[rendered]) {\n super[rendered](changed);\n }\n\n if (this[firstRender]) {\n // Perform one-time check to see if component needs a default z-index.\n if (this[state].persistent && !hasZIndex(this)) {\n bringToFront(this);\n }\n }\n\n if (changed.opened) {\n if (this[state].autoFocus) {\n if (this[state].opened) {\n // Opened\n if (\n !this[restoreFocusToElementKey] &&\n document.activeElement !== document.body\n ) {\n // Remember which element had the focus before we were opened.\n this[restoreFocusToElementKey] = document.activeElement;\n }\n // Focus on the element itself (if it's focusable), or the first focusable\n // element inside it.\n // TODO: We'd prefer to require that overlays (like the Overlay base\n // class) make use of delegatesFocus via DelegateFocusMixin, which would\n // let us drop the need for this mixin here to do anything special with\n // focus. However, an initial trial of this revealed an issue in\n // MenuButton, where invoking the menu did not put the focus on the first\n // menu item as expected. Needs more investigation.\n const focusElement = firstFocusableElement(this);\n if (focusElement) {\n focusElement.focus();\n }\n } else {\n // Closed\n if (this[restoreFocusToElementKey]) {\n // Restore focus to the element that had the focus before the overlay was\n // opened.\n this[restoreFocusToElementKey].focus();\n this[restoreFocusToElementKey] = null;\n }\n }\n }\n }\n\n // If we're finished closing an overlay that was automatically added to the\n // document, remove it now. Note: we only do this when the component\n // updates, not when it mounts, because we don't want an automatically-added\n // element to be immediately removed during its connectedCallback.\n if (\n !this[firstRender] &&\n !this[state].persistent &&\n this.closeFinished &&\n this[appendedToDocumentKey]\n ) {\n this[appendedToDocumentKey] = false;\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n }\n }\n\n get [template]() {\n const result = super[template] || templateFrom.html``;\n\n // We'd like to just use the `hidden` attribute, but a side-effect of\n // styling with the hidden attribute is that naive styling of the\n // component from the outside (to change to display: flex, say) will\n // override the display: none implied by hidden. To work around this\n // problem, we use display: none when the overlay is closed.\n result.content.append(fragmentFrom.html`\n <style>\n :host([closed]) {\n display: none;\n }\n </style>\n `);\n\n return result;\n }\n }\n\n return Overlay;\n}\n\n// Pick a default z-index, remember it, and apply it.\nfunction bringToFront(element) {\n const defaultZIndex = maxZIndexInUse() + 1;\n element[defaultZIndexKey] = defaultZIndex;\n element.style.zIndex = defaultZIndex.toString();\n}\n\n/**\n * If the element has or inherits an explicit numeric z-index, return true.\n * Otherwise, return false.\n *\n * @private\n * @param {HTMLElement} element\n * @returns {boolean}\n */\nfunction hasZIndex(element) {\n const computedZIndex = getComputedStyle(element).zIndex;\n const explicitZIndex = element.style.zIndex;\n const isExplicitZIndexNumeric = !isNaN(parseInt(explicitZIndex));\n if (computedZIndex === \"auto\") {\n return isExplicitZIndexNumeric;\n }\n if (computedZIndex === \"0\" && !isExplicitZIndexNumeric) {\n // Might be on Safari, which reports a computed z-index of zero even in\n // cases where no z-index has been inherited but the element creates a\n // stacking context. Inspect the composed tree parent to infer whether the\n // element is really inheriting a z-index.\n const parent =\n element.assignedSlot ||\n (element instanceof ShadowRoot ? element.host : element.parentNode);\n if (!(parent instanceof HTMLElement)) {\n // Theoretical edge case, assume zero z-index is real.\n return true;\n }\n if (!hasZIndex(parent)) {\n // The parent doesn't have a numeric z-index, and the element itself\n // doesn't have a numeric z-index, so the \"0\" value for the computed\n // z-index is simulated, not a real assigned numeric z-index.\n return false;\n }\n }\n // Element has a non-zero numeric z-index.\n return true;\n}\n\n/*\n * Return the highest z-index currently in use in the document's light DOM.\n *\n * This calculation looks at all light DOM elements, so is theoretically\n * expensive. That said, it only runs when an overlay is opening, and is only used\n * if an overlay doesn't have a z-index already. In cases where performance is\n * an issue, this calculation can be completely circumvented by manually\n * applying a z-index to an overlay.\n */\nfunction maxZIndexInUse() {\n const elements = document.body.querySelectorAll(\"*\");\n const zIndices = Array.from(elements, (element) => {\n const style = getComputedStyle(element);\n let zIndex = 0;\n if (style.position !== \"static\" && style.zIndex !== \"auto\") {\n const parsed = style.zIndex ? parseInt(style.zIndex) : 0;\n zIndex = !isNaN(parsed) ? parsed : 0;\n }\n return zIndex;\n });\n return Math.max(...zIndices);\n}\n","import { fragmentFrom } from \"../core/htmlLiterals.js\";\nimport ReactiveElement from \"../core/ReactiveElement.js\";\nimport { transmute } from \"../core/template.js\";\nimport Backdrop from \"./Backdrop.js\";\nimport {\n checkSize,\n defaultState,\n ids,\n render,\n rendered,\n setState,\n shadowRoot,\n state,\n template,\n} from \"./internal.js\";\nimport OpenCloseMixin from \"./OpenCloseMixin.js\";\nimport OverlayFrame from \"./OverlayFrame.js\";\nimport OverlayMixin from \"./OverlayMixin.js\";\nimport SlotContentMixin from \"./SlotContentMixin.js\";\n\n// TODO: We'd like to use DelegateFocusMixin in this component, but see the note\n// at OverlayMixin's openedChanged function.\nconst Base = OpenCloseMixin(OverlayMixin(SlotContentMixin(ReactiveElement)));\n\n/**\n * An element that appears over other page elements\n *\n * The main overlay content is presented within a frame on top of an optional\n * backdrop.\n *\n * The overlay logic is provided by [OverlayMixin](OverlayMixin). `Overlay` adds\n * the definition of customizable element tags: [frameTag](#frameTag) for the\n * frame around the overlay content, and [backdropTag](#backdropTag) (if\n * defined) for the optional element covering the page elements behind the\n * overlay.\n *\n * As a convenience, the `open` method of `Overlay` will automatically add the\n * overlay to the end of the document body if the overlay isn't already in the\n * document. If the overlay is automatically attached in this way, then when it\n * closes, it will automatically be removed.\n *\n * See [Dialog](Dialog) and [Popup](Popup) for modal and modeless subclasses,\n * respectively.\n *\n * @inherits ReactiveElement\n * @mixes OpenCloseMixin\n * @mixes OverlayMixin\n * @mixes SlotContentMixin\n * @part {Backdrop} backdrop - the backdrop behind the overlay\n * @part {OverlayFrame} frame - the frame around the overlay\n */\nclass Overlay extends Base {\n get backdrop() {\n return this[ids] && this[ids].backdrop;\n }\n\n /**\n * The class or tag used for the `backdrop` part - the optional\n * element shown behind the overlay.\n *\n * This can help focus the user's attention on the overlay content.\n * Additionally, a backdrop can be used to absorb clicks on background page\n * elements. For example, [Dialog](Dialog) uses [ModalBackdrop](ModalBackdrop)\n * as an overlay backdrop in such a way.\n *\n * @type {PartDescriptor}\n * @default Backdrop\n */\n get backdropPartType() {\n return this[state].backdropPartType;\n }\n set backdropPartType(backdropPartType) {\n this[setState]({ backdropPartType });\n }\n\n // @ts-ignore\n get [defaultState]() {\n return Object.assign(super[defaultState], {\n backdropPartType: Backdrop,\n framePartType: OverlayFrame,\n });\n }\n\n get frame() {\n return this[ids].frame;\n }\n\n /**\n * The class or tag used to create the `frame` part – the overlay's\n * primary content.\n *\n * The frame element can be used to provide a border around the overlay\n * content, and to provide visual effects such as a drop-shadow to help\n * distinguish overlay content from background page elements.\n *\n * @type {PartDescriptor}\n * @default OverlayFrame\n */\n get framePartType() {\n return this[state].framePartType;\n }\n set framePartType(framePartType) {\n this[setState]({ framePartType });\n }\n\n [render](/** @type {ChangedFlags} */ changed) {\n super[render](changed);\n renderParts(this[shadowRoot], this[state], changed);\n }\n\n [rendered](/** @type {ChangedFlags} */ changed) {\n super[rendered](changed);\n\n if (changed.opened && this[state].content) {\n // If contents know how to size themselves, ask them to check their size.\n this[state].content.forEach((element) => {\n if (element[checkSize]) {\n element[checkSize]();\n }\n });\n }\n }\n\n get [template]() {\n const result = super[template];\n\n // TODO: Consider moving frameContent div to Drawer.\n result.content.append(fragmentFrom.html`\n <style>\n :host {\n display: inline-grid;\n /* Constrain content if overlay's height is constrained. */\n grid-template: minmax(0, 1fr) / minmax(0, 1fr);\n max-height: 100vh;\n max-width: 100vw;\n outline: none;\n position: fixed;\n -webkit-tap-highlight-color: transparent;\n }\n\n [part~=\"frame\"] {\n box-sizing: border-box;\n display: grid;\n overscroll-behavior: contain;\n pointer-events: initial;\n position: relative;\n }\n\n #frameContent {\n display: grid;\n grid-template: minmax(0, 1fr) / minmax(0, 1fr);\n overflow: hidden;\n }\n </style>\n <div id=\"backdrop\" part=\"backdrop\" tabindex=\"-1\"></div>\n <div id=\"frame\" part=\"frame\" role=\"none\">\n <div id=\"frameContent\">\n <slot></slot>\n </div>\n </div>\n `);\n\n renderParts(result.content, this[state]);\n\n return result;\n }\n}\n\n/**\n * Render parts for the template or an instance.\n *\n * @private\n * @param {DocumentFragment} root\n * @param {PlainObject} state\n * @param {ChangedFlags} [changed]\n */\nfunction renderParts(root, state, changed) {\n if (!changed || changed.backdropPartType) {\n const { backdropPartType } = state;\n const backdrop = root.getElementById(\"backdrop\");\n if (backdrop) {\n transmute(backdrop, backdropPartType);\n }\n }\n if (!changed || changed.framePartType) {\n const { framePartType } = state;\n const frame = root.getElementById(\"frame\");\n if (frame) {\n transmute(frame, framePartType);\n }\n }\n}\n\nexport default Overlay;\n","import ReactiveElement from \"../core/ReactiveElement.js\"; // eslint-disable-line no-unused-vars\nimport {\n contentSlot,\n defaultState,\n firstRender,\n raiseChangeEvents,\n rendered,\n setState,\n shadowRoot,\n} from \"./internal.js\";\n\n/**\n * Defines a component's content as the flattened set of nodes assigned to a\n * slot.\n *\n * This mixin defines a component's `content` state member as the flattened\n * set of nodes assigned to a slot, typically the default slot.\n *\n * If the set of assigned nodes changes, the `content` state will be updated.\n * This helps a component satisfy the Gold Standard checklist item for\n * monitoring\n * [Content Changes](https://github.com/webcomponents/gold-standard/wiki/Content-Changes).\n *\n * By default, the mixin looks in the component's shadow subtree for a default\n * (unnamed) `slot` element. You can specify that a different slot should be\n * used by overriding the `internal.contentSlot` property.\n *\n * Most Elix [elements](elements) use `SlotContentMixin`, including\n * [ListBox](ListBox), [Modes](Modes), and [Tabs](Tabs).\n *\n * @module SlotContentMixin\n * @param {Constructor<ReactiveElement>} Base\n */\nexport default function SlotContentMixin(Base) {\n // The class prototype added by the mixin.\n class SlotContent extends Base {\n /**\n * See [contentSlot](internal#internal.contentSlot).\n */\n get [contentSlot]() {\n /** @type {HTMLSlotElement|null} */ const slot =\n this[shadowRoot] && this[shadowRoot].querySelector(\"slot:not([name])\");\n if (!this[shadowRoot] || !slot) {\n /* eslint-disable no-console */\n console.warn(\n `SlotContentMixin expects ${this.constructor.name} to define a shadow tree that includes a default (unnamed) slot.\\nSee https://elix.org/documentation/SlotContentMixin.`\n );\n }\n return slot;\n }\n\n // @ts-ignore\n get [defaultState]() {\n return Object.assign(super[defaultState] || {}, {\n content: null,\n });\n }\n\n [rendered](/** @type {ChangedFlags} */ changed) {\n if (super[rendered]) {\n super[rendered](changed);\n }\n\n if (this[firstRender]) {\n // Listen to changes on the default slot.\n const slot = this[contentSlot];\n if (slot) {\n slot.addEventListener(\"slotchange\", async () => {\n // Although slotchange isn't generally a user-driven event, it's\n // impossible for us to know whether a change in slot content is going\n // to result in effects that the host of this element can predict.\n // To be on the safe side, we raise any change events that come up\n // during the processing of this event.\n this[raiseChangeEvents] = true;\n\n // The nodes assigned to the given component have changed.\n // Update the component's state to reflect the new content.\n const content = slot.assignedNodes({ flatten: true });\n Object.freeze(content);\n this[setState]({ content });\n\n await Promise.resolve();\n this[raiseChangeEvents] = false;\n });\n }\n }\n }\n }\n\n return SlotContent;\n}\n","import { fragmentFrom } from \"../core/htmlLiterals.js\";\nimport DialogModalityMixin from \"./DialogModalityMixin.js\";\nimport FocusCaptureMixin from \"./FocusCaptureMixin.js\";\nimport { defaultState, template } from \"./internal.js\";\nimport KeyboardMixin from \"./KeyboardMixin.js\";\nimport ModalBackdrop from \"./ModalBackdrop.js\";\nimport Overlay from \"./Overlay.js\";\n\nconst Base = DialogModalityMixin(FocusCaptureMixin(KeyboardMixin(Overlay)));\n\n/**\n * Basic modal overlay that the user typically dismisses with an explicit action.\n *\n * This component presents its children as a basic modal dialog which appears on\n * top of the main page content and which the user must interact with before\n * they can return to the page.\n *\n * @inherits Overlay\n * @mixes DialogModalityMixin\n * @mixes FocusCaptureMixin\n * @mixes KeyboardMixin\n * @part {ModalBackdrop} backdrop\n */\nclass Dialog extends Base {\n // @ts-ignore\n get [defaultState]() {\n return Object.assign(super[defaultState], {\n backdropPartType: ModalBackdrop,\n tabIndex: -1,\n });\n }\n\n get [template]() {\n const result = super[template];\n\n const frame = result.content.querySelector(\"#frame\");\n /** @type {any} */ const cast = this;\n cast[FocusCaptureMixin.wrap](frame);\n\n result.content.append(\n fragmentFrom.html`\n <style>\n :host {\n height: 100%;\n left: 0;\n pointer-events: initial;\n top: 0;\n width: 100%;\n }\n </style>\n `\n );\n\n return result;\n }\n}\n\nexport default Dialog;\n","import ReactiveElement from \"../core/ReactiveElement.js\"; // eslint-disable-line no-unused-vars\nimport {\n defaultState,\n defaultTabIndex,\n delegatesFocus,\n keydown,\n raiseChangeEvents,\n render,\n rendering,\n setState,\n state,\n} from \"./internal.js\";\n\n/**\n * Manages keyboard handling for a component.\n *\n * This mixin handles several keyboard-related features.\n *\n * First, it wires up a single keydown event handler that can be shared by\n * multiple mixins on a component. The event handler will invoke a `keydown`\n * method with the event object, and any mixin along the prototype chain that\n * wants to handle that method can do so.\n *\n * If a mixin wants to indicate that keyboard event has been handled, and that\n * other mixins should *not* handle it, the mixin's `keydown` handler should\n * return a value of true. The convention that seems to work well is that a\n * mixin should see if it wants to handle the event and, if not, then ask the\n * superclass to see if it wants to handle the event. This has the effect of\n * giving the mixin that was applied last the first chance at handling a\n * keyboard event.\n *\n * Example:\n *\n * [keydown](event) {\n * let handled;\n * switch (event.key) {\n * // Handle the keys you want, setting handled = true if appropriate.\n * }\n * // Prefer mixin result if it's defined, otherwise use base result.\n * return handled || (super[keydown] && super[keydown](event));\n * }\n *\n * A second feature provided by this mixin is that it implicitly makes the\n * component a tab stop if it isn't already, by setting `tabindex` to 0. This\n * has the effect of adding the component to the tab order in document order.\n *\n * @module KeyboardMixin\n * @param {Constructor<ReactiveElement>} Base\n */\nexport default function KeyboardMixin(Base) {\n // The class prototype added by the mixin.\n class Keyboard extends Base {\n constructor() {\n // @ts-ignore\n super();\n this.addEventListener(\"keydown\", async (event) => {\n this[raiseChangeEvents] = true;\n // For use with FocusVisibleMixin.\n if (!this[state].focusVisible) {\n // The user may have begun interacting with this element using the\n // mouse/touch, but has now begun using the keyboard, so show focus.\n this[setState]({\n focusVisible: true,\n });\n }\n const handled = this[keydown](event);\n if (handled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n await Promise.resolve();\n this[raiseChangeEvents] = false;\n });\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n if (name === \"tabindex\") {\n // Parse the passed value, which could be a string or null.\n let parsed;\n if (newValue === null) {\n // tabindex attribute was removed.\n parsed = -1;\n } else {\n parsed = Number(newValue);\n if (isNaN(parsed)) {\n // Non-numeric tabindex falls back to default value (if defined).\n parsed = this[defaultTabIndex] ? this[defaultTabIndex] : 0;\n }\n }\n this.tabIndex = parsed;\n } else {\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n }\n\n // @ts-ignore\n get [defaultState]() {\n // If we're using DelegateFocusMixin, we don't need or want to set a\n // tabindex on the host; we'll rely on the inner shadow elements to take\n // the focus and raise keyboard events. Otherwise, we do set a tabindex on\n // the host, so that we can get keyboard events.\n const tabIndex = this[delegatesFocus] ? -1 : 0;\n const state = Object.assign(super[defaultState] || {}, {\n tabIndex,\n });\n\n return state;\n }\n\n /**\n * See the [symbols](internal#internal.keydown) documentation for details.\n */\n [keydown](/** @type {KeyboardEvent} */ event) {\n if (super[keydown]) {\n return super[keydown](event);\n }\n return false;\n }\n\n [render](/** @type {ChangedFlags} */ changed) {\n if (super[render]) {\n super[render](changed);\n }\n if (changed.tabIndex) {\n this.tabIndex = this[state].tabIndex;\n }\n }\n\n // Record our own notion of the state of the tabIndex property so we can\n // rerender if necessary.\n get tabIndex() {\n return super.tabIndex;\n }\n set tabIndex(tabIndex) {\n // If value has changed, invoke the super setter.\n if (super.tabIndex !== tabIndex) {\n super.tabIndex = tabIndex;\n }\n\n // The tabIndex setter can get called during rendering when we render our\n // own notion of the tabIndex state, in which case we don't need or want\n // to set state again.\n if (!this[rendering]) {\n // Record the new tabIndex in our state.\n this[setState]({\n tabIndex,\n });\n }\n }\n }\n\n return Keyboard;\n}\n","import { template } from \"../base/internal.js\";\nimport ModalBackdrop from \"../base/ModalBackdrop.js\";\nimport { fragmentFrom } from \"../core/htmlLiterals.js\";\n\n/**\n * ModalBackdrop component in the Plain reference design system\n *\n * @inherits ModalBackdrop\n */\nclass PlainModalBackdrop extends ModalBackdrop {\n get [template]() {\n const result = super[template];\n result.content.append(\n fragmentFrom.html`\n <style>\n :host {\n background: rgba(0, 0, 0, 0.2);\n }\n </style>\n `\n );\n return result;\n }\n}\n\nexport default PlainModalBackdrop;\n","import { template } from \"../base/internal.js\";\nimport OverlayFrame from \"../base/OverlayFrame.js\";\nimport { fragmentFrom } from \"../core/htmlLiterals.js\";\n\n/**\n * OverlayFrame component in the Plain reference design system\n *\n * The default appearance of `OverlayFrame` uses a simple drop-shadow to let the\n * user see the framed content as being on top of the background page content.\n *\n * @inherits OverlayFrame\n */\nclass PlainOverlayFrame extends OverlayFrame {\n get [template]() {\n const result = super[template];\n result.content.append(\n fragmentFrom.html`\n <style>\n :host {\n background: white;\n border: 1px solid rgba(0, 0, 0, 0.2);\n box-shadow: 0 0px 10px rgba(0, 0, 0, 0.5);\n box-sizing: border-box;\n }\n </style>\n `\n );\n return result;\n }\n}\n\nexport default PlainOverlayFrame;\n","import { defaultState } from \"../base/internal.js\";\nimport ReactiveElement from \"../core/ReactiveElement.js\"; // eslint-disable-line no-unused-vars\nimport PlainModalBackdrop from \"./PlainModalBackdrop.js\";\nimport PlainOverlayFrame from \"./PlainOverlayFrame.js\";\n\n/**\n * Modal overlay styles for the Plain reference design system\n *\n * @module PlainModalOverlayMixin\n * @part {PlainModalBackdrop} backdrop\n * @part {PlainOverlayFrame} frame\n * @param {Constructor<ReactiveElement>} Base\n */\nexport default function PlainModalOverlayMixin(Base) {\n return class PlainModalOverlay extends Base {\n // @ts-ignore\n get [defaultState]() {\n return Object.assign(super[defaultState] || {}, {\n backdropPartType: PlainModalBackdrop,\n framePartType: PlainOverlayFrame,\n });\n }\n };\n}\n","import Dialog from \"../base/Dialog.js\";\nimport PlainModalOverlayMixin from \"./PlainModalOverlayMixin.js\";\n\n/**\n * Dialog component in the Plain reference design system\n *\n * @inherits Dialog\n * @mixes PlainModalOverlayMixin\n */\nclass PlainDialog extends PlainModalOverlayMixin(Dialog) {}\n\nexport default PlainDialog;\n","import PlainDialog from \"../src/plain/PlainDialog.js\";\nexport default class ElixDialog extends PlainDialog {}\ncustomElements.define(\"elix-dialog\", ElixDialog);\n","/* eslint-disable max-len */\nimport 'elix/define/Dialog.js';\n\nconst template = document.createElement('template');\ntemplate.innerHTML = `\n <style>\n \n #dialog_content {\n margin: 10px 10px 5px 10px;\n background: #DDD;\n overflow: auto;\n text-align: left;\n border: 1px solid #B0B0B0;\n }\n\n #dialog_content p, #dialog_content select, #dialog_content label {\n margin: 10px;\n line-height: 1.3em;\n }\n \n #dialog_container {\n font-family: Verdana;\n text-align: center;\n left: 50%;\n top: 50%;\n max-width: 400px;\n z-index: 50001;\n background: #CCC;\n border: 1px outset #777;\n font-family:Verdana,Helvetica,sans-serif;\n font-size:0.8em;\n }\n \n #dialog_container, #dialog_content {\n border-radius: 5px;\n -moz-border-radius: 5px;\n -webkit-border-radius: 5px;\n }\n \n #dialog_buttons input[type=text] {\n width: 90%;\n display: block;\n margin: 0 0 5px 11px;\n }\n \n #dialog_buttons input[type=button] {\n margin: 0 1em;\n }\n </style>\n <elix-dialog id=\"dialog_box\" aria-label=\"SVG-Edit storage preferences\" closed>\n <div class=\"overlay\"></div>\n <div id=\"dialog_container\">\n <div id=\"dialog_content\">\n <p> \n By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.\n </p>\n <select id=\"se-storage-pref\">\n <option value=\"prefsAndContent\">Store preferences and SVG content locally</option>\n <option value=\"prefsOnly\">Only store preferences locally</option>\n <option value=\"noPrefsOrContent\">Do not store my preferences or SVG content locally</option>\n </select> \n <label title=\"If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.\">\n Remember this choice?<input type=\"checkbox\" id=\"se-remember\" value=\"\" checked>\n </label> \n </div>\n <div id=\"dialog_buttons\">\n <button id=\"storage_ok\">\n <img class=\"svg_icon\" src=\"./images/ok.svg\" alt=\"icon\" width=\"16\" height=\"16\" />\n Ok\n </button>\n <button id=\"storage_cancel\">\n <img class=\"svg_icon\" src=\"./images/cancel.svg\" alt=\"icon\" width=\"16\" height=\"16\" />\n Cancel\n </button>\n </div>\n </div>\n </elix-dialog>\n`;\n/**\n * @class SeStorageDialog\n */\nexport class SeStorageDialog extends HTMLElement {\n /**\n * @function constructor\n */\n constructor () {\n super();\n // create the shadowDom and insert the template\n this._shadowRoot = this.attachShadow({mode: 'open'});\n this._shadowRoot.append(template.content.cloneNode(true));\n this.$dialog = this._shadowRoot.querySelector('#dialog_box');\n this.$storage = this._shadowRoot.querySelector('#js-storage');\n this.$okBtn = this._shadowRoot.querySelector('#storage_ok');\n this.$cancelBtn = this._shadowRoot.querySelector('#storage_cancel');\n this.$storageInput = this._shadowRoot.querySelector('#se-storage-pref');\n this.$rememberInput = this._shadowRoot.querySelector('#se-remember');\n }\n /**\n * @function observedAttributes\n * @returns {any} observed\n */\n static get observedAttributes () {\n return ['dialog', 'storage'];\n }\n /**\n * @function attributeChangedCallback\n * @param {string} name\n * @param {string} oldValue\n * @param {string} newValue\n * @returns {void}\n */\n attributeChangedCallback (name, oldValue, newValue) {\n switch (name) {\n case 'dialog':\n if (newValue === 'open') {\n this.$dialog.open();\n } else {\n this.$dialog.close();\n }\n break;\n case 'storage':\n if (newValue === 'true') {\n this.$storageInput.options[0].disabled = false;\n } else {\n this.$storageInput.options[0].disabled = true;\n }\n break;\n default:\n // super.attributeChangedCallback(name, oldValue, newValue);\n break;\n }\n }\n /**\n * @function get\n * @returns {any}\n */\n get dialog () {\n return this.getAttribute('dialog');\n }\n /**\n * @function set\n * @returns {void}\n */\n set dialog (value) {\n this.setAttribute('dialog', value);\n }\n /**\n * @function connectedCallback\n * @returns {void}\n */\n connectedCallback () {\n const onSubmitHandler = (e, action) => {\n const triggerEvent = new CustomEvent('change', {detail: {\n trigger: action,\n select: this.$storageInput.value,\n checkbox: this.$rememberInput.checked\n }});\n this.dispatchEvent(triggerEvent);\n };\n this.$okBtn.addEventListener('click', (evt) => onSubmitHandler(evt, 'ok'));\n this.$cancelBtn.addEventListener('click', (evt) => onSubmitHandler(evt, 'cancel'));\n }\n /**\n * Sets SVG content as a string with \"svgedit-\" and the current\n * canvas name as namespace.\n * @param {string} val\n * @returns {void}\n */\n setSVGContentStorage (val) {\n if (this.storage) {\n const name = 'svgedit-' + this.configObj.curConfig.canvasName;\n if (!val) {\n this.storage.removeItem(name);\n } else {\n this.storage.setItem(name, val);\n }\n }\n }\n}\n\n// Register\ncustomElements.define('se-storage-dialog', SeStorageDialog);\n","/**\n * @file ext-storage.js\n *\n * This extension allows automatic saving of the SVG canvas contents upon\n * page unload (which can later be automatically retrieved upon future\n * editor loads).\n *\n * The functionality was originally part of the SVG Editor, but moved to a\n * separate extension to make the setting behavior optional, and adapted\n * to inform the user of its setting of local data.\n *\n * @license MIT\n *\n * @copyright 2010 Brett Zamir\n * @todo Revisit on whether to use `svgEditor.pref` over directly setting\n * `curConfig` in all extensions for a more public API (not only for `extPath`\n * and `imagePath`, but other currently used config in the extensions)\n * @todo We might provide control of storage settings through the UI besides the\n * initial (or URL-forced) dialog. *\n*/\nimport './storageDialog.js';\n\n/**\n * Expire the storage cookie.\n * @returns {void}\n */\nconst removeStoragePrefCookie = () => {\n expireCookie('svgeditstore');\n};\n/**\n * Set the cookie to expire.\n * @param {string} cookie\n * @returns {void}\n */\nconst expireCookie = (cookie) => {\n document.cookie = encodeURIComponent(cookie) + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT';\n};\n\n/**\n * Replace `storagePrompt` parameter within URL.\n * @param {string} val\n * @returns {void}\n * @todo Replace the string manipulation with `searchParams.set`\n */\nconst replaceStoragePrompt = (val) => {\n val = val ? 'storagePrompt=' + val : '';\n const loc = top.location; // Allow this to work with the embedded editor as well\n if (loc.href.includes('storagePrompt=')) {\n loc.href = loc.href.replace(/([&?])storagePrompt=[^&]*(&?)/, function (n0, n1, amp) {\n return (val ? n1 : '') + val + (!val && amp ? n1 : (amp || ''));\n });\n } else {\n loc.href += (loc.href.includes('?') ? '&' : '?') + val;\n }\n};\n\nexport default {\n name: 'storage',\n init ({$}) {\n const svgEditor = this;\n const {svgCanvas} = svgEditor;\n\n // We could empty any already-set data for users when they decline storage,\n // but it would be a risk for users who wanted to store but accidentally\n // said \"no\"; instead, we'll let those who already set it, delete it themselves;\n // to change, set the \"emptyStorageOnDecline\" config setting to true\n // in svgedit-config-iife.js/svgedit-config-es.js.\n const {\n // When the code in svg-editor.js prevents local storage on load per\n // user request, we also prevent storing on unload here so as to\n // avoid third-party sites making XSRF requests or providing links\n // which would cause the user's local storage not to load and then\n // upon page unload (such as the user closing the window), the storage\n // would thereby be set with an empty value, erasing any of the\n // user's prior work. To change this behavior so that no use of storage\n // or adding of new storage takes place regardless of settings, set\n // the \"noStorageOnLoad\" config setting to true in svgedit-config-*.js.\n noStorageOnLoad,\n forceStorage\n } = svgEditor.configObj.curConfig;\n const {storage} = svgEditor;\n\n // storageDialog added to DOM\n const storageBox = document.createElement('se-storage-dialog');\n storageBox.setAttribute('id', 'se-storage-dialog');\n document.body.append(storageBox);\n\n // manage the change in the storageDialog\n\n storageBox.addEventListener('change', (e) => {\n storageBox.setAttribute('dialog', 'close');\n if (e?.detail?.trigger === 'ok') {\n if (e?.detail?.select !== 'noPrefsOrContent') {\n const storagePrompt = new URL(top.location).searchParams.get('storagePrompt');\n document.cookie = 'svgeditstore=' + encodeURIComponent(e.detail.select) + '; expires=Fri, 31 Dec 9999 23:59:59 GMT';\n if (storagePrompt === 'true' && e?.detail?.checkbox) {\n replaceStoragePrompt();\n return;\n }\n } else {\n removeStoragePrefCookie();\n if (svgEditor.configObj.curConfig.emptyStorageOnDecline && e?.detail?.checkbox) {\n this.setSVGContentStorage('');\n Object.keys(svgEditor.curPrefs).forEach((name) => {\n name = 'svg-edit-' + name;\n if (svgEditor.storage) {\n svgEditor.storage.removeItem(name);\n }\n expireCookie(name);\n });\n }\n if (e?.detail?.select && e?.detail?.checkbox) {\n replaceStoragePrompt('false');\n return;\n }\n }\n } else if (e?.detail?.trigger === 'cancel') {\n removeStoragePrefCookie();\n }\n setupBeforeUnloadListener();\n svgEditor.storagePromptState = 'closed';\n svgEditor.updateCanvas(true);\n });\n\n /**\n * Sets SVG content as a string with \"svgedit-\" and the current\n * canvas name as namespace.\n * @param {string} val\n * @returns {void}\n */\n function setSVGContentStorage (val) {\n if (storage) {\n const name = 'svgedit-' + svgEditor.configObj.curConfig.canvasName;\n if (!val) {\n storage.removeItem(name);\n } else {\n storage.setItem(name, val);\n }\n }\n }\n\n /**\n * Listen for unloading: If and only if opted in by the user, set the content\n * document and preferences into storage:\n * 1. Prevent save warnings (since we're automatically saving unsaved\n * content into storage)\n * 2. Use localStorage to set SVG contents (potentially too large to allow in cookies)\n * 3. Use localStorage (where available) or cookies to set preferences.\n * @returns {void}\n */\n function setupBeforeUnloadListener () {\n window.addEventListener('beforeunload', function (e) {\n // Don't save anything unless the user opted in to storage\n if (!(/(?:^|;\\s*)svgeditstore=(?:prefsAndContent|prefsOnly)/).test(document.cookie)) {\n return;\n }\n if ((/(?:^|;\\s*)svgeditstore=prefsAndContent/).test(document.cookie)) {\n setSVGContentStorage(svgCanvas.getSvgString());\n }\n\n svgEditor.setConfig({no_save_warning: true}); // No need for explicit saving at all once storage is on\n // svgEditor.showSaveWarning = false;\n\n const {curPrefs} = svgEditor.configObj;\n\n Object.entries(curPrefs).forEach(([key, val]) => {\n const store = (val !== undefined);\n key = 'svg-edit-' + key;\n if (!store) {\n return;\n }\n if (storage) {\n storage.setItem(key, val);\n } else if (window.widget) {\n window.widget.setPreferenceForKey(val, key);\n } else {\n val = encodeURIComponent(val);\n document.cookie = encodeURIComponent(key) + '=' + val + '; expires=Fri, 31 Dec 9999 23:59:59 GMT';\n }\n });\n });\n }\n\n let loaded = false;\n return {\n name: 'storage',\n langReady ({lang}) {\n const storagePrompt = new URL(top.location).searchParams.get('storagePrompt');\n // No need to run this one-time dialog again just because the user\n // changes the language\n if (loaded) {\n return;\n }\n loaded = true;\n\n // Note that the following can load even if \"noStorageOnLoad\" is\n // set to false; to avoid any chance of storage, avoid this\n // extension! (and to avoid using any prior storage, set the\n // config option \"noStorageOnLoad\" to true).\n if (!forceStorage && (\n // If the URL has been explicitly set to always prompt the\n // user (e.g., so one can be pointed to a URL where one\n // can alter one's settings, say to prevent future storage)...\n storagePrompt === 'true' ||\n (\n // ...or...if the URL at least doesn't explicitly prevent a\n // storage prompt (as we use for users who\n // don't want to set cookies at all but who don't want\n // continual prompts about it)...\n storagePrompt !== 'false' &&\n // ...and this user hasn't previously indicated a desire for storage\n !(/(?:^|;\\s*)svgeditstore=(?:prefsAndContent|prefsOnly)/).test(document.cookie)\n )\n // ...then show the storage prompt.\n )) {\n const options = Boolean(storage);\n // Open select-with-checkbox dialog\n // From svg-editor.js\n svgEditor.storagePromptState = 'waiting';\n const $storageDialog = document.getElementById('se-storage-dialog');\n $storageDialog.setAttribute('dialog', 'open');\n $storageDialog.setAttribute('storage', options);\n } else if (!noStorageOnLoad || forceStorage) {\n setupBeforeUnloadListener();\n }\n }\n };\n }\n};\n"],"names":["check","it","Math","globalThis","window","self","global","this","Function","exec","error","fails","Object","defineProperty","get","nativePropertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","call","1","V","descriptor","enumerable","bitmap","value","configurable","writable","toString","slice","split","classof","undefined","TypeError","IndexedObject","requireObjectCoercible","input","PREFERRED_STRING","isObject","fn","val","valueOf","hasOwnProperty","key","document","EXISTS","createElement","DESCRIPTORS","a","nativeGetOwnPropertyDescriptor","O","P","toIndexedObject","toPrimitive","IE8_DOM_DEFINE","has","createPropertyDescriptor","propertyIsEnumerableModule","f","String","nativeDefineProperty","Attributes","anObject","object","definePropertyModule","createNonEnumerableProperty","setGlobal","functionToString","store","inspectSource","set","WeakMap","test","module","push","version","mode","copyright","id","postfix","random","keys","shared","uid","NATIVE_WEAK_MAP","state","wmget","wmhas","wmset","metadata","facade","STATE","sharedKey","hiddenKeys","objectHas","enforce","getterFor","TYPE","type","getInternalState","InternalStateModule","enforceInternalState","TEMPLATE","options","unsafe","simple","noTargetGet","source","join","prototype","aFunction","variable","namespace","method","arguments","length","path","ceil","floor","argument","isNaN","min","toInteger","max","index","integer","createMethod","IS_INCLUDES","$this","el","fromIndex","toLength","toAbsoluteIndex","includes","indexOf","require$$0","names","i","result","enumBugKeys","concat","getOwnPropertyNames","internalObjectKeys","getOwnPropertySymbols","getBuiltIn","ownKeys","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","target","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","forced","copyConstructorProperties","sham","redefine","that","b","c","apply","Array","isArray","arg","Symbol","NATIVE_SYMBOL","iterator","WellKnownSymbolsStore","createWellKnownSymbol","USE_SYMBOL_AS_UID","withoutSetter","name","SPECIES","wellKnownSymbol","originalArray","C","constructor","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","callbackfn","specificCreate","toObject","boundFunction","bind","create","arraySpeciesCreate","forEach","map","filter","some","every","find","findIndex","filterOut","METHOD_NAME","cache","thrower","ACCESSORS","argument0","argument1","$forEach","STRICT_METHOD","arrayMethodIsStrict","USES_TO_LENGTH","arrayMethodUsesToLength","$","proto","activeXDocument","defineProperties","Properties","objectKeys","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObject","domain","ActiveXObject","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","documentCreateElement","style","display","html","appendChild","src","contentWindow","open","F","UNSCOPABLES","ArrayPrototype","$includes","addToUnscopables","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","getPrototypeOf","ObjectPrototype","CORRECT_PROTOTYPE_GETTER","ITERATOR","BUGGY_SAFARI_ITERATORS","TO_STRING_TAG","TAG","returnThis","IteratorConstructor","NAME","next","setToStringTag","Iterators","setPrototypeOf","setter","CORRECT_SETTER","aPossiblePrototype","__proto__","IteratorsCore","Iterable","DEFAULT","IS_SET","FORCED","createIteratorConstructor","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","values","entries","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","setInternalState","defineIterator","iterated","kind","done","Arguments","TO_ENTRIES","$entries","FAILS_ON_PRIMITIVES","nativeKeys","CORRECT_ARGUMENTS","classofRaw","TO_STRING_TAG_SUPPORT","tag","tryGet","callee","ignoreCase","multiline","dotAll","unicode","sticky","RE","s","RegExp","re1","re2","re","lastIndex","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","UNSUPPORTED_Y","stickyHelpers","BROKEN_CARET","NPCG_INCLUDED","str","reCopy","match","flags","regexpFlags","charsAdded","strCopy","MATCH","isRegExp","regexp","error1","error2","correctIsRegExpLogic","searchString","notARegExp","CONVERT_TO_STRING","pos","first","second","S","position","size","charCodeAt","charAt","codeAt","point","REPLACE_SUPPORTS_NAMED_GROUPS","groups","REPLACE_KEEPS_$0","REPLACE","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","regexpExec","stringMethod","regexMethod","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","captures","namedCaptures","tailPos","m","symbols","ch","capture","n","R","fixRegExpWellKnownSymbolLogic","maybeCallNative","reason","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","res","rx","functionalReplace","fullUnicode","results","regExpExec","advanceStringIndex","accumulatedResult","nextSourcePosition","j","replacerArgs","getSubstitution","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","COLLECTION_NAME","DOMIterables","Collection","CollectionPrototype","ArrayValues","ArrayIteratorMethods","url","URL","searchParams","pathname","sort","href","URLSearchParams","username","host","hash","Constructor","nativeAssign","assign","A","B","symbol","alphabet","chr","T","argumentsLength","returnMethod","ENTRIES","iteratorClose","propertyKey","from","arrayLike","step","mapfn","mapping","iteratorMethod","getIteratorMethod","isArrayIteratorMethod","createProperty","callWithSafeIterationClosing","regexNonASCII","regexSeparators","OVERFLOW_ERROR","stringFromCharCode","fromCharCode","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","baseMinusTMin","base","encode","currentValue","output","inputLength","counter","extra","ucs2decode","bias","basicLength","handledCPCount","handledCPCountPlusOne","RangeError","q","t","qMinusT","baseMinusT","$fetch","Headers","getInternalParamsState","getInternalIteratorState","URL_SEARCH_PARAMS","plus","sequences","percentSequence","bytes","percentDecode","sequence","decodeURIComponent","deserialize","!","'","(",")","~","%20","serialize","encodeURIComponent","parseSearchParams","query","attribute","entry","attributes","shift","updateSearchParams","validateArgumentsLength","passed","required","URLSearchParamsIterator","Iterator","params","getIterator","URLSearchParamsConstructor","anInstance","entryIterator","entryNext","init","updateURL","hasOwn","URLSearchParamsPrototype","redefineAll","append","delete","splice","getAll","found","entriesIndex","sliceIndex","callback","USE_NATIVE_URL","fetch","body","headers","args","EOF","getState","NativeURL","URLSearchParamsModule","getInternalSearchParamsState","getInternalURLState","pow","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","codePoints","parseIPv6","isSpecial","label","encoded","labels","toASCII","parseIPv4","arrayFrom","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","radix","number","ipv4","parts","pop","parseInt","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","serializeHost","ignore0","unshift","ipv6","maxIndex","maxLength","currStart","currLength","findLongestZeroSequence","fragmentPercentEncodeSet"," ","\"","<",">","`","pathPercentEncodeSet","#","?","{","}","userinfoPercentEncodeSet","/",":",";","=","@","[","\\","]","^","|","code","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","bufferCodePoints","failure","buffer","seenAt","seenBracket","seenPasswordToken","port","fragment","codePoint","encodedCodePoints","URLConstructor","baseState","urlString","searchParamsState","serializeURL","origin","getOrigin","protocol","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","search","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","getter","toJSON","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","process","versions","v8","userAgent","V8_VERSION","array","foo","Boolean","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","arrayMethodHasSpeciesSupport","isConcatSpreadable","spreadable","len","E","raw","template","rawTemplate","literalSegments","elements","fragmentFrom","strings","substitutions","templateFrom","innerHTML","nativeGetOwnPropertyNames","windowNames","getWindowNames","wrappedWellKnownSymbolModule","HIDDEN","TO_PRIMITIVE","$Symbol","$stringify","getOwnPropertyNamesExternal","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","nativeObjectCreate","ObjectPrototypeDescriptor","wrap","description","isSymbol","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","defineWellKnownSymbol","for","keyFor","sym","useSetter","useSimple","FORCED_JSON_STRINGIFY","stringify","space","$replacer","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","desc","$filter","HAS_SPECIES_SUPPORT","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","$map","nativeGetPrototypeOf","$findIndex","SKIPS_HOLES","nativeReverse","reverse","0","nativeSlice","start","end","fin","FunctionPrototype","FunctionPrototypeToString","nameRE","JSON","Promise","CONSTRUCTOR_NAME","Result","stopped","iterable","unboundFunction","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","SAFE_CLOSING","called","iteratorWithReturn","return","defer","channel","SKIP_CLOSING","ITERATION_SUPPORT","location","setImmediate","clear","clearImmediate","MessageChannel","Dispatch","queue","run","runner","listener","event","post","postMessage","IS_NODE","nextTick","now","IS_IOS","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","flush","head","last","notify","toggle","node","promise","then","macrotask","require$$1","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","parent","exit","enter","IS_WEBOS_WEBKIT","resolve","createTextNode","observe","characterData","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","task","PromiseCapability","reject","$$resolve","$$reject","x","promiseCapability","newPromiseCapability","PROMISE","getInternalPromiseState","PromiseConstructor","NativePromise","newPromiseCapabilityModule","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","FakePromise","INCORRECT_ITERATION","checkCorrectnessOfIteration","all","isThenable","isReject","notified","chain","reactions","microtask","ok","exited","reaction","handler","fail","rejection","onHandleUnhandled","onUnhandled","initEvent","console","hostReportErrors","isUnhandled","perform","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","defaultConstructor","catch","promiseResolve","setSpecies","r","capability","$promiseResolve","remaining","iterate","alreadyCalled","race","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","p","rf","runtime","exports","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","err","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","GenStateSuspendedStart","invoke","GenStateExecuting","Error","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","enqueue","callInvokeWithMethodAndArg","_typeof","__await","unwrapped","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","skipTempReset","prev","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","defaultState","delegatesFocus","firstRender","focusTarget","hasDynamicTemplate","ids","nativeInternals","raiseChangeEvents","render","renderChanges","rendered","rendering","setState","shadowRoot","shadowRootMode","stateEffects","walkComposedTree","booleanAttributeValue","deepContains","container","current","assignedSlot","parentNode","firstFocusableElement","root","HTMLElement","matches","tabIndex","element","toggleAttribute","states","standardBooleanAttributes","checked","disabled","hidden","ismap","multiple","noresize","readonly","selected","children","assignedNodes","HTMLSlotElement","flatten","childNodes","attributeToPropertyNames","tabindex","propertyNamesToAttributes","isExtensible","preventExtensions","METADATA","setMetadata","objectID","weakData","meta","REQUIRED","fastKey","getWeakData","onFreeze","FREEZING","nativeFreeze","freeze","is","y","SEARCH","nativeSearch","searcher","previousLastIndex","sameValue","stateKey","raiseChangeEventsInNextRenderKey","changedSinceLastRenderKey","copyStateWithChanges","changes","changed","effects","changedByEffects","fieldsChanged","value1","value2","field","Date","getTime","dummy","Wrapper","NewTarget","NewTargetPrototype","internalStateGetterFor","common","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","add","getConstructor","InternalMetadataModule","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","inheritIfRequired","setStrong","collection","Map","previous","getEntry","removed","ITERATOR_NAME","getInternalCollectionState","classTemplateMap","shadowIdProxyKey","proxyElementKey","shadowIdProxyHandler","getElementById","ReactiveElement","AttributeMarshallingMixin","Base","attributeName","oldValue","newValue","propertyName","attributeToPropertyName","hyphenRegEx","toUpperCase","parsed","attributesForClass","classFn","baseClass","baseAttributes","observedAttributes","diff","setterName","propertyNameToAttribute","uppercaseRegEx","ReactiveMixin","Reactive","_this","saveRaiseChangeEvents","warn","willRender","isConnected","_get","ShadowTemplateMixin","getTemplate","HTMLTemplateElement","attachShadow","clone","importNode","Proxy","checkSize","closestAvailableItemIndex","contentSlot","coreInternal","defaultTabIndex","effectEndTarget","getItemText","goDown","goEnd","goFirst","goLast","goLeft","goNext","goPrevious","goRight","goStart","goToItemWithPrefix","goUp","inputDelegate","itemsDelegate","keydown","mouseenter","mouseleave","renderDataToElement","scrollTarget","startEffect","swipeDown","swipeDownComplete","swipeLeft","swipeLeftTransitionEnd","swipeRight","swipeRightTransitionEnd","swipeUp","swipeUpComplete","swipeStart","swipeTarget","tap","toggleSelectedFlag","elix","internal","previousBodyOverflowKey","previousDocumentMarginRightKey","wrappingFocusKey","FocusCaptureMixin","firstElement","firstElementIsDocumentActive","activeElement","contains","shadowActiveElement","firstElementIsShadowActive","shiftKey","focusCatcher","focus","focusElement","focusCapture","replaceWith","whitespace","whitespaces","ltrim","rtrim","trim","require$$2","require$$3","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","maxCode","digits","NaN","NumberWrapper","Number","AriaRoleMixin","role","setAttribute","removeAttribute","Backdrop","ModalBackdrop","touches","preventDefault","nativeMatch","matcher","matchStr","mapBaseTagToCount","e","registerCustomElement","baseTag","classNameRegex","classNameMatch","letter","offset","count","customElements","transmute","original","Element","localName","SVGElement","getAttribute","classList","className","replaceChild","closePromiseKey","closeResolveKey","OverlayFrame","$parseInt","hex","parseIntImplementation","appendedToDocumentKey","defaultZIndexKey","restoreFocusToElementKey","bringToFront","defaultZIndex","maxZIndexInUse","querySelectorAll","zIndices","getComputedStyle","zIndex","hasZIndex","computedZIndex","explicitZIndex","isExplicitZIndexNumeric","ShadowRoot","OpenCloseMixin","opened","closeResult","closeFinished","oldEvent","CustomEvent","bubbles","detail","openedChangeEvent","oldOpenedEvent","openEvent","oldClosedEvent","closeEvent","closeResolve","openCloseEffects","effect","effectPhase","defaults","OverlayMixin","persistent","newFocusedElement","relatedTarget","closed","autoFocus","SlotContentMixin","slot","querySelector","renderParts","backdropPartType","backdrop","framePartType","frame","DialogModalityMixin","handled","canceled","documentElement","documentWidth","clientWidth","scrollBarWidth","innerWidth","overflow","marginRight","KeyboardMixin","focusVisible","stopImmediatePropagation","Dialog","PlainModalBackdrop","PlainOverlayFrame","PlainModalOverlayMixin","PlainDialog","ElixDialog","SeStorageDialog","_shadowRoot","cloneNode","$dialog","$storage","$okBtn","$cancelBtn","$storageInput","$rememberInput","onSubmitHandler","action","triggerEvent","trigger","select","_this2","checkbox","evt","storage","configObj","curConfig","canvasName","setItem","removeItem","removeStoragePrefCookie","expireCookie","cookie","replaceStoragePrompt","top","n0","n1","amp","svgEditor","svgCanvas","noStorageOnLoad","forceStorage","storageBox","setupBeforeUnloadListener","setSVGContentStorage","getSvgString","setConfig","no_save_warning","curPrefs","widget","setPreferenceForKey","storagePrompt","_e$detail3","emptyStorageOnDecline","_e$detail4","_e$detail6","storagePromptState","updateCanvas","loaded","langReady","lang","$storageDialog"],"mappings":"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"} |