svgedit/dist/editor/extensions/ext-storage/ext-storage.js.map

1 line
526 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{"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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"}